| @@ -123,48 +123,44 @@ if __name__ == "__main__": | |||
| serial_df.index = pd.to_datetime(serial_df.index) | |||
| serial_df.sort_index() | |||
| transmission_df = pd.merge_asof( | |||
| transmission_df, | |||
| serial_df, | |||
| tolerance=pd.Timedelta("1milliseconds"), | |||
| right_index=True, | |||
| left_index=True, | |||
| ) | |||
| # Select DataFrame rows between two dates | |||
| mask = (serial_df.index >= transmission_df.index[0]) & (serial_df.index <= transmission_df.index[-1]) | |||
| serial_df = serial_df.loc[mask] | |||
| transmission_df.index = transmission_df["arrival_time"] | |||
| # filter active state | |||
| for i in range(1, 5): | |||
| transmission_df["LTE_SCC{}_effective_bw".format(i)] = transmission_df[ | |||
| serial_df["LTE_SCC{}_effective_bw".format(i)] = serial_df[ | |||
| "LTE_SCC{}_bw".format(i) | |||
| ] | |||
| mask = transmission_df["LTE_SCC{}_state".format(i)].isin(["ACTIVE"]) | |||
| transmission_df["LTE_SCC{}_effective_bw".format(i)] = transmission_df[ | |||
| mask = serial_df["LTE_SCC{}_state".format(i)].isin(["ACTIVE"]) | |||
| serial_df["LTE_SCC{}_effective_bw".format(i)] = serial_df[ | |||
| "LTE_SCC{}_effective_bw".format(i) | |||
| ].where(mask, other=0) | |||
| # filter if sc is usesd for uplink | |||
| for i in range(1, 5): | |||
| mask = transmission_df["LTE_SCC{}_UL_Configured".format(i)].isin([False]) | |||
| transmission_df["LTE_SCC{}_effective_bw".format(i)] = transmission_df[ | |||
| mask = serial_df["LTE_SCC{}_UL_Configured".format(i)].isin([False]) | |||
| serial_df["LTE_SCC{}_effective_bw".format(i)] = serial_df[ | |||
| "LTE_SCC{}_effective_bw".format(i) | |||
| ].where(mask, other=0) | |||
| # sum all effective bandwidth for 5G and 4G | |||
| transmission_df["SCC1_NR5G_effective_bw"] = transmission_df[ | |||
| serial_df["SCC1_NR5G_effective_bw"] = serial_df[ | |||
| "SCC1_NR5G_bw" | |||
| ].fillna(0) | |||
| transmission_df["lte_effective_bw_sum"] = ( | |||
| transmission_df["LTE_SCC1_effective_bw"].fillna(0) | |||
| + transmission_df["LTE_SCC2_effective_bw"].fillna(0) | |||
| + transmission_df["LTE_SCC3_effective_bw"].fillna(0) | |||
| + transmission_df["LTE_SCC4_effective_bw"].fillna(0) | |||
| + transmission_df["LTE_bw"].fillna(0)) | |||
| transmission_df["nr_effective_bw_sum"] = transmission_df["SCC1_NR5G_effective_bw"] | |||
| serial_df["lte_effective_bw_sum"] = ( | |||
| serial_df["LTE_SCC1_effective_bw"].fillna(0) | |||
| + serial_df["LTE_SCC2_effective_bw"].fillna(0) | |||
| + serial_df["LTE_SCC3_effective_bw"].fillna(0) | |||
| + serial_df["LTE_SCC4_effective_bw"].fillna(0) | |||
| + serial_df["LTE_bw"].fillna(0)) | |||
| serial_df["nr_effective_bw_sum"] = serial_df["SCC1_NR5G_effective_bw"] | |||
| transmission_df["effective_bw_sum"] = transmission_df["nr_effective_bw_sum"] + transmission_df[ | |||
| serial_df["effective_bw_sum"] = serial_df["nr_effective_bw_sum"] + serial_df[ | |||
| "lte_effective_bw_sum"] | |||
| # transmission timeline | |||
| @@ -182,8 +178,6 @@ if __name__ == "__main__": | |||
| ax00 = ax[1] | |||
| snd_plot = ax0.plot( | |||
| transmission_df["snd_cwnd"].dropna(), | |||
| color="lime", | |||
| @@ -204,14 +198,14 @@ if __name__ == "__main__": | |||
| ) | |||
| # sum all effective bandwidth for 5G and 4G | |||
| transmission_df["SCC1_NR5G_effective_bw"] = transmission_df["SCC1_NR5G_bw"].fillna(0) | |||
| transmission_df["effective_bw_sum"] = ( | |||
| transmission_df["SCC1_NR5G_effective_bw"] | |||
| + transmission_df["LTE_SCC1_effective_bw"] | |||
| + transmission_df["LTE_SCC2_effective_bw"] | |||
| + transmission_df["LTE_SCC3_effective_bw"] | |||
| + transmission_df["LTE_SCC4_effective_bw"] | |||
| + transmission_df["LTE_bw"] | |||
| serial_df["SCC1_NR5G_effective_bw"] = serial_df["SCC1_NR5G_bw"].fillna(0) | |||
| serial_df["effective_bw_sum"] = ( | |||
| serial_df["SCC1_NR5G_effective_bw"] | |||
| + serial_df["LTE_SCC1_effective_bw"] | |||
| + serial_df["LTE_SCC2_effective_bw"] | |||
| + serial_df["LTE_SCC3_effective_bw"] | |||
| + serial_df["LTE_SCC4_effective_bw"] | |||
| + serial_df["LTE_bw"] | |||
| ) | |||
| bw_cols = [ | |||
| "SCC1_NR5G_effective_bw", | |||
| @@ -222,11 +216,10 @@ if __name__ == "__main__": | |||
| "LTE_SCC4_effective_bw", | |||
| ] | |||
| serial_df["time_rel"] = serial_df["time"] - serial_df["time"].iloc[0] | |||
| serial_df.index = serial_df["time_rel"] / 60 | |||
| transmission_df.to_csv("{}{}_plot.csv".format(args.save, csv.replace(".csv", ""))) | |||
| exit() | |||
| ax_stacked = transmission_df[bw_cols].plot.area(stacked=True, linewidth=0, ax=ax00) | |||
| ax_stacked = serial_df[bw_cols].plot.area(stacked=True, linewidth=0, ax=ax00) | |||
| ax00.set_ylabel("bandwidth [MHz]") | |||
| #ax.set_xlabel("time [minutes]") | |||
| #ax00.set_xlim([0, transmission_df.index[-1]]) | |||