Commit 6a343afa authored by Fabian Kovac's avatar Fabian Kovac
Browse files

[f] added instantanious values Pinst for RAINLINK

parent 47fcc23a
...@@ -2,8 +2,8 @@ ...@@ -2,8 +2,8 @@
# Title: Data Preparation for LINK Configs and Transmissions # Title: Data Preparation for LINK Configs and Transmissions
# Author: Fabian Kovac <ds191008@fhstp.ac.at> # Author: Fabian Kovac <ds191008@fhstp.ac.at>
# Team: University of Applied Sciences St. Pölten # Team: University of Applied Sciences St. Pölten
# Version: 1.5 # Version: 2.1
# Last changed: 2021-06-28 # Last changed: 2021-07-05
# #
import sys import sys
...@@ -253,9 +253,9 @@ def lambert_to_inca_idx(x: np.array, y: np.array) -> tuple: ...@@ -253,9 +253,9 @@ def lambert_to_inca_idx(x: np.array, y: np.array) -> tuple:
x /= 1000 x /= 1000
y /= 1000 y /= 1000
# convert coordinates to INCA index (coordinates as int) # convert coordinates to INCA index (nearest coordinates as int)
ix = x.astype(int) ix = np.round(x, decimals = 0).astype(int)
iy = y.astype(int) iy = np.round(y, decimals = 0).astype(int)
return ix, iy return ix, iy
...@@ -431,10 +431,10 @@ def prep() -> None: ...@@ -431,10 +431,10 @@ def prep() -> None:
# convert RXFREQUENCY and TXFREQUENCY to float and from MHz to GHz # convert RXFREQUENCY and TXFREQUENCY to float and from MHz to GHz
# check if columns exists (only present with 2021-05) # check if columns exists (only present with 2021-05)
if 'TXFREQUENCY' in df_config.columns and 'RXFREQUENCY' in df_config.columns: if 'TXFREQUENCY' in df_config.columns and 'RXFREQUENCY' in df_config.columns:
df_config['TXFREQUENCY'] = df_config['TXFREQUENCY'].astype('float')
df_config['TXFREQUENCY'] = df_config['TXFREQUENCY']/1000
df_config['RXFREQUENCY'] = df_config['RXFREQUENCY'].astype('float') df_config['RXFREQUENCY'] = df_config['RXFREQUENCY'].astype('float')
df_config['RXFREQUENCY'] = df_config['RXFREQUENCY']/1000 df_config['RXFREQUENCY'] = df_config['RXFREQUENCY']/1000
df_config['TXFREQUENCY'] = df_config['TXFREQUENCY'].astype('float')
df_config['TXFREQUENCY'] = df_config['TXFREQUENCY']/1000
_log('Converted RXFREQUENCY and TXFREQUENCY to float and GHz') _log('Converted RXFREQUENCY and TXFREQUENCY to float and GHz')
...@@ -470,13 +470,13 @@ def prep() -> None: ...@@ -470,13 +470,13 @@ def prep() -> None:
# convert 3min windows to 15min windows # convert 3min windows to 15min windows
group_cols = [df_link['BEGINTIME'].dt.floor('15Min'), 'RADIOLINKID'] group_cols = [df_link['BEGINTIME'].dt.floor('15Min'), 'RADIOLINKID']
agg_cols = { agg_cols = {
'TXLEVEL' : 'mean',
'REMOTERXLEVEL' : 'mean',
'PMIN' : 'min', 'PMIN' : 'min',
'PMAX' : 'max', 'PMAX' : 'max',
'REMOTERXLEVEL' : 'mean',
'TXLEVEL' : 'mean',
'SPEED' : 'mean', 'SPEED' : 'mean',
'CURRTXBITRATE' : 'mean', 'CURRRXBITRATE' : 'mean',
'CURRRXBITRATE' : 'mean' 'CURRTXBITRATE' : 'mean'
} }
df_link = df_link.groupby(group_cols).agg(agg_cols).reset_index() df_link = df_link.groupby(group_cols).agg(agg_cols).reset_index()
_log('Converted 3min windows to 15min windows') _log('Converted 3min windows to 15min windows')
...@@ -488,17 +488,24 @@ def prep() -> None: ...@@ -488,17 +488,24 @@ def prep() -> None:
# build df with differences of sending and receiving levels # build df with differences of sending and receiving levels
df_diff = df_link[['RADIOLINKID', 'TXLEVEL', 'REMOTERXLEVEL']].copy() df_diff = df_link[['RADIOLINKID', 'TXLEVEL', 'REMOTERXLEVEL']].copy()
df_diff['MEANLINKDIFFLEVEL'] = df_diff['TXLEVEL'] - df_diff['REMOTERXLEVEL'] df_diff['PINSTMEAN'] = df_diff['TXLEVEL'] - df_diff['REMOTERXLEVEL']
_log('Built dataframe with mean link difference levels of TXLEVEL and REMOTERXLEVEL') _log('Built dataframe with mean link difference levels of TXLEVEL and REMOTERXLEVEL')
# get mean of differences # get mean of differences per link
df_diff = df_diff.groupby(['RADIOLINKID']).agg({'MEANLINKDIFFLEVEL' : 'mean'}).reset_index() df_diff = df_diff.groupby(['RADIOLINKID']).agg({'PINSTMEAN' : 'mean'}).reset_index()
_log('Merged mean link difference levels back to link dataframe') _log('Merged mean link difference levels back to link dataframe')
# merge differences to transmission dataframe # merge differences to transmission dataframe
df_link = pd.merge(df_link, df_diff, how = 'inner', left_on = 'RADIOLINKID', right_on = 'RADIOLINKID') df_link = pd.merge(df_link, df_diff, how = 'inner', left_on = 'RADIOLINKID', right_on = 'RADIOLINKID')
df_link['DIFFLEVEL'] = df_link['TXLEVEL'] - df_link['REMOTERXLEVEL'] - df_link['MEANLINKDIFFLEVEL']
_log('Calculated DIFFLEVEL as TXLEVEL - REMOTERXLEVEL - MEANLINKDIFFLEVEL')
# calculate instantaneous values from transmitted and received signal strength
df_link['PINST'] = df_link['TXLEVEL'] - df_link['REMOTERXLEVEL']
_log('Calculated instantaneous values PINST from transmitted and received signal strength')
# calculate differences from instantaneous values and mean link diff. levels
df_link['PDIFF'] = df_link['PINST'] - df_link['PINSTMEAN']
# merge config and link dataframe # merge config and link dataframe
...@@ -513,12 +520,13 @@ def prep() -> None: ...@@ -513,12 +520,13 @@ def prep() -> None:
'PMIN' : 'Pmin', 'PMIN' : 'Pmin',
'PMAX' : 'Pmax', 'PMAX' : 'Pmax',
'REMOTERXLEVEL' : 'Pmean', 'REMOTERXLEVEL' : 'Pmean',
'PINST' : 'Pinst',
'PINSTMEAN' : 'PinstMean',
'PDIFF' : 'Pdiff',
'TXLEVEL' : 'TxLevel', 'TXLEVEL' : 'TxLevel',
'MEANLINKDIFFLEVEL' : 'MeanLinkDiffLevel',
'DIFFLEVEL' : 'DiffLevel',
'SPEED' : 'Speed', 'SPEED' : 'Speed',
'CURRTXBITRATE' : 'TxBitrate',
'CURRRXBITRATE' : 'RxBitrate', 'CURRRXBITRATE' : 'RxBitrate',
'CURRTXBITRATE' : 'TxBitrate',
'LONGITUDE_A' : 'XStart', 'LONGITUDE_A' : 'XStart',
'LATITUDE_A' : 'YStart', 'LATITUDE_A' : 'YStart',
'LONGITUDE_MID' : 'XMid', 'LONGITUDE_MID' : 'XMid',
...@@ -532,8 +540,8 @@ def prep() -> None: ...@@ -532,8 +540,8 @@ def prep() -> None:
# check if RXFREQUENCY and TXFREQUENCY exists (only present with 2021-05) # check if RXFREQUENCY and TXFREQUENCY exists (only present with 2021-05)
if 'TXFREQUENCY' in df_link.columns and 'RXFREQUENCY' in df_link.columns: if 'TXFREQUENCY' in df_link.columns and 'RXFREQUENCY' in df_link.columns:
name_cols.update({ name_cols.update({
'TXFREQUENCY' : 'TxFrequency', 'RXFREQUENCY' : 'RxFrequency',
'RXFREQUENCY' : 'RxFrequency' 'TXFREQUENCY' : 'TxFrequency'
}) })
df_link = df_link.rename(columns = name_cols).reindex(columns = list(name_cols.values())) df_link = df_link.rename(columns = name_cols).reindex(columns = list(name_cols.values()))
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment