Skip to content
Snippets Groups Projects
Commit cb2bc705 authored by Michel Spils's avatar Michel Spils
Browse files

zrxp export function

parent 227b8a23
Branches
No related tags found
No related merge requests found
......@@ -2,12 +2,15 @@ main_config:
max_missing : 120
db_params:
user: c##mspils
#Passwort ist für eine lokale Datenbank ohne verbindung zum internet. Kann ruhig online stehen.
password: cobalt_deviancy
dsn: localhost/XE
# Auch als Liste möglich
zrxp_folder : ../data/dwd_ens_zrpx/
sensor_folder : ../data/db_in/
zrxp_out_folder : ../data/zrxp_out/
#If True exports the forecasts if successful to zrxp
export_zrxp : True
#if True tries to put all files in folder in the external forecast table
load_sensor : False
load_zrxp : True
......
......@@ -34,6 +34,7 @@ def get_configs(passed_args: argparse.Namespace) -> Tuple[dict, List[dict]]:
if isinstance(main_config["zrxp_folder"], str):
main_config["zrxp_folder"] = [main_config["zrxp_folder"]]
main_config["zrxp_folder"] = list(map(Path, main_config["zrxp_folder"]))
main_config["zrxp_out_folder"] = Path(main_config["zrxp_out_folder"])
main_config["sensor_folder"] = Path(main_config["sensor_folder"])
main_config["start"] = pd.to_datetime(main_config["start"])
if "end" in main_config:
......@@ -98,8 +99,8 @@ def parse_args() -> argparse.Namespace:
help="The start date for the prediction. Format: YYYY-MM-DD HH:MM, overwrites start/end/range in the config file.",
)
parser.add_argument(
"--zrxp", action="store_true", help="Save predictions as ZRXP files (not yet implemented)"
) #TODO: Implement ZRXP
"--zrxp", action="store_true", help="Save predictions as ZRXP files"
)
return parser.parse_args()
......
......@@ -432,6 +432,30 @@ class OracleWaVoConnection:
else:
fcst_values = {f"h{i}": forecast[i - 1].item() for i in range(1, 49)}
if self.main_config.get("export_zrxp"):
target_file =self.main_config["zrxp_out_folder"] / f"{end_time.strftime("%Y%m%d%H")}_{sensor_name}_{model_name}_{member}.zrx"
#2023 11 19 03
df_zrxp = pd.DataFrame(forecast,columns=["value"])
df_zrxp["timestamp"] = end_time
df_zrxp["forecast"] = pd.date_range(start=end_time,periods=49,freq="1h")[1:]
df_zrxp["member"] = member
df_zrxp = df_zrxp[['timestamp','forecast','member','value']]
with open(target_file , 'w', encoding="utf-8") as file:
file.write('#REXCHANGEWISKI.' + model_name.split("_")[0] + '.W.KNN|*|\n')
file.write('#RINVAL-777|*|\n')
file.write('#LAYOUT(timestamp,forecast, member,value)|*|\n')
df_zrxp.to_csv(path_or_buf = target_file,
header = False,
index=False,
mode='a',
sep = ' ',
date_format = '%Y%m%d%H%M')
stmt = select(PegelForecasts).where(
PegelForecasts.tstamp == bindparam("tstamp"),
PegelForecasts.sensor_name == bindparam("sensor_name"),
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment