diff --git a/plot_single_transmission_paper.py b/plot_single_transmission_paper.py index dcb6ad1..6e6dcaf 100755 --- a/plot_single_transmission_paper.py +++ b/plot_single_transmission_paper.py @@ -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]])