Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
oeigner
LINK - Forschungsprojekt Repo
Commits
92a3d7eb
Commit
92a3d7eb
authored
Sep 17, 2021
by
Fabian Kovac
Browse files
[i] reverted PinstMean for dry periods (research purposes) back to mean per link
parent
ba700154
Changes
3
Show whitespace changes
Inline
Side-by-side
FHSTP/.gitkeep
deleted
100644 → 0
View file @
ba700154
FHSTP/Datenvorverarbeitung.pdf
→
FHSTP/
01_data_preparation/
Datenvorverarbeitung.pdf
View file @
92a3d7eb
No preview for this file type
FHSTP/prep.py
→
FHSTP/
01_data_preparation/
prep.py
View file @
92a3d7eb
...
...
@@ -2,8 +2,8 @@
# Title: Data Preparation for LINK Configs and Transmissions
# Author: Fabian Kovac <ds191008@fhstp.ac.at>
# Team: University of Applied Sciences St. Pölten
# Version: 2.
4
# Last changed: 2021-09-
08
# Version: 2.
5
# Last changed: 2021-09-
27
#
import
sys
...
...
@@ -495,44 +495,21 @@ def prep() -> None:
_log
(
'Merged config data to link dataframe'
)
_log
(
'
\n
******************************** MERGE INCA ********************************'
)
# set INCA RR data for each km of link path
df_link
[
'RRpath'
]
=
get_inca_data
(
df_link
[
'BEGINTIME'
],
df_link
[
'LONGITUDE_A'
],
df_link
[
'LATITUDE_A'
],
df_link
[
'LONGITUDE_B'
],
df_link
[
'LATITUDE_B'
],
df_link
[
'LENGTH'
]
)
_log
(
'Merged INCA RR data to transmissions'
)
_log
(
'
\n
******************************** CALC POWER LEVELS *************************'
)
# build df with differences of sending and receiving levels
df_diff
=
df_link
[[
'LINKID'
,
'TXLEVEL'
,
'REMOTERXLEVEL'
,
'RRpath'
]].
copy
()
df_diff
=
df_link
[[
'LINKID'
,
'TXLEVEL'
,
'REMOTERXLEVEL'
]].
copy
()
df_diff
[
'PINSTMEAN'
]
=
df_diff
[
'TXLEVEL'
]
-
df_diff
[
'REMOTERXLEVEL'
]
_log
(
'Built dataframe with mean link difference levels of TXLEVEL and REMOTERXLEVEL'
)
# get min rainrate of LINK path
df_diff
[
'RRmin'
]
=
np
.
array
([
np
.
array
(
x
).
min
()
for
x
in
df_diff
[
'RRpath'
].
values
])
_log
(
'Calculate min rainrates for LINK path'
)
# get mean of differences per link
df_diff
=
df_diff
.
groupby
([
'LINKID'
]).
agg
({
'PINSTMEAN'
:
'mean'
}).
reset_index
()
# get mean of differences per link of dry periods
df_diff
=
df_diff
[
df_diff
[
'RRmin'
]
==
0.0
].
groupby
([
'LINKID'
]).
agg
({
'PINSTMEAN'
:
'mean'
}).
reset_index
()
_log
(
'Calculate mean difference levels of dry periods'
)
# merge differences to transmission dataframe
df_link
=
pd
.
merge
(
df_link
,
df_diff
,
how
=
'left'
,
left_on
=
'LINKID'
,
right_on
=
'LINKID'
)
_log
(
'Merged mean link difference levels back to link dataframe'
)
# if PINSTMEAN is NA, LINK only saw wet periods
# --> set to mean of all LINKS
df_link
[
'PINSTMEAN'
]
=
df_link
[
'PINSTMEAN'
].
fillna
(
df_link
[
'PINSTMEAN'
].
mean
())
_log
(
'Filled NAs of PINSTMEAN (exclusively wet periods) with daily mean of all LINKS'
)
# calculate instantaneous values from transmitted and received signal strength
df_link
[
'PINST'
]
=
df_link
[
'TXLEVEL'
]
-
df_link
[
'REMOTERXLEVEL'
]
...
...
@@ -588,13 +565,24 @@ def prep() -> None:
'TXFREQUENCY'
:
'TxFrequency'
})
# set RRpath as last column
name_cols
.
update
({
'RRpath'
:
'RRpath'
})
df_link
=
df_link
.
rename
(
columns
=
name_cols
).
reindex
(
columns
=
list
(
name_cols
.
values
()))
_log
(
'Converted link dataframe to RAINLINK format'
)
_log
(
'
\n
******************************** MERGE INCA ********************************'
)
# set INCA RR data for each km of link path
df_link
[
'RRpath'
]
=
get_inca_data
(
df_link
[
'DateTime'
],
df_link
[
'XStart'
],
df_link
[
'YStart'
],
df_link
[
'XEnd'
],
df_link
[
'YEnd'
],
df_link
[
'PathLength'
]
)
_log
(
'Merged INCA RR data to transmissions'
)
_log
(
'
\n
******************************** SAVE FILES ********************************'
)
# build path for clean config and transmissions destination files
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment