[x] remove hat/lat example script and merge with kwk_process.py
import hatyan
import logging
logging.basicConfig(format='%(message)s') # for some reason calling basicConfig is required for hatyan, not for kenmerkendewaarden
logging.getLogger("hatyan").setLevel(level="INFO")
station = "HOEKVHLD"
df_meas = hatyan.read_dia(r"c:\DATA\kenmerkendewaarden\tests\testdata\HOEK_KW.dia")
df_meas_19y = df_meas.loc["2001":"2019"]
def calc_hat_lat_frommeasurements(df_meas_19y, freq="10min"):
num_years = len(df_meas_19y.index.year.unique())
if num_years != 19:
raise ValueError(f"please provide a timeseries of 19 years instead of {num_years} years")
# TODO: consider deviating from hatyan default settings: nodalfactors=True, fu_alltimes=True, xfac=False, source='schureman'
# fu_alltimes=False makes the process significantly faster
comp_avg, comp_all = hatyan.analysis(df_meas_19y, const_list="year", analysis_perperiod="Y", return_allperiods=True, fu_alltimes=False)
# TODO: decide on required prediction frequency, 1min is better in theory, but hat/lat values differ only 2mm for HOEKVHLD (1min vs 10 min)
df_pred = hatyan.prediction(comp_all, timestep=freq)
lat = df_pred["values"].min()
hat = df_pred["values"].max()
return hat, lat
hat, lat = calc_hat_lat_frommeasurements(df_meas_19y, freq="10min")
print(hat, lat)
Todo: