from idf_analysis import IntensityDurationFrequencyAnalyse from idf_analysis.definitions import * import pandas as pd from os import path import matplotlib.pyplot as plt # sub-folder for the results output_directory = path.join('ehyd_112086_idf_data') # initialize of the analysis class idf = IntensityDurationFrequencyAnalyse(series_kind=SERIES.PARTIAL, worksheet=METHOD.KOSTRA, extended_durations=True) # reading the pandas series of the precipitation (data from ehyd.gv.at - ID=112086) series = pd.read_parquet('ehyd_112086.parquet')['precipitation'] # setting the series for the analysis idf.set_series(series) # idf.write_parameters(path.join(output_directory, 'idf_parameters.yaml')) # exit() # auto-save the calculated parameter so save time for a later use idf.auto_save_parameters(path.join(output_directory, 'idf_parameters.yaml')) idf.result_figure(color=False) # -------- # plotting the IDF curves fig, ax = idf.result_figure(color=True) fig.set_size_inches(12, 8) fig.tight_layout() fig.savefig(path.join(output_directory, 'idf_curves_plot_color.png'), dpi=200) plt.close(fig)
if path.isfile(fn): df = pd.read_csv(fn, index_col=[0, 1]) df.columns = df.columns.astype(int) else: df = ehyd_design_rainfall_ascii_reader( get_ehyd_file(grid_point_number=grid_point_number)) df.to_csv(fn) idf_table = get_max_calculation_method(df) idf_table = df.xs('ÖKOSTRA', axis=0, level=INDICES.CALCULATION_METHOD, drop_level=True).copy() idf_reverse = IntensityDurationFrequencyAnalyse(series_kind=SERIES.PARTIAL, worksheet=METHOD.KOSTRA, extended_durations=True) idf_reverse._parameter.reverse_engineering(idf_table) output_directory = path.join(f'design_rain_ehyd_{grid_point_number}') idf_reverse.auto_save_parameters( path.join(output_directory, 'idf_parameters.yaml')) # exit() # ---------------------------------- max_duration = 2880 fig, ax = idf_reverse.result_figure(color=True, logx=True, max_duration=max_duration) fig.set_size_inches(12, 8) ax = idf_table.loc[:max_duration, [1, 2, 5, 10, 50, 100]].plot(ax=ax,
from idf_analysis import IntensityDurationFrequencyAnalyse from idf_analysis.definitions import * import pandas as pd from os import path # sub-folder for the results output_directory = path.join('ehyd_112086_idf_data') # initialize of the analysis class idf = IntensityDurationFrequencyAnalyse(series_kind=SERIES.PARTIAL, worksheet=METHOD.KOSTRA, extended_durations=True) # reading the pandas series of the precipitation (data from ehyd.gv.at - ID=112086) series = pd.read_parquet('ehyd_112086.parquet')['precipitation'] # setting the series for the analysis idf.set_series(series) # auto-save the calculated parameter so save time for a later use idf.auto_save_parameters(path.join(output_directory, 'idf_parameters.yaml')) # -------- # idf.write_return_periods_frame(path.join(output_directory, 'idf_return_periods_frame.parq')) # exit() # idf.auto_save_return_periods_frame(path.join(output_directory, 'idf_return_periods_frame.parq')) # -------- # events = idf.rain_events # idf.add_max_return_periods_to_events(events) # idf.write_rain_events(path.join(output_directory, 'events.csv'), sep=',', decimal='.') # exit() # idf.auto_save_rain_events(path.join(output_directory, 'events.csv'), sep=',', decimal='.')
from idf_analysis import IntensityDurationFrequencyAnalyse from idf_analysis.definitions import * import pandas as pd from os import path # sub-folder for the results output_directory = path.join('ehyd_112086_idf_data') # initialize of the analysis class idf = IntensityDurationFrequencyAnalyse(series_kind=PARTIAL, worksheet=DWA, extended_durations=True) # reading the pandas series of the precipitation (data from ehyd.gv.at - ID=112086) series = pd.read_parquet('ehyd_112086.parquet')['precipitation'] # setting the series for the analysis idf.set_series(series) # auto-save the calculated parameter so save time for a later use idf.auto_save_parameters(path.join(output_directory, 'idf_parameters.yaml')) # -------- # idf.write_return_periods_frame(path.join(output_directory, 'idf_return_periods_frame.parq')) # exit() idf.auto_save_return_periods_frame(path.join(output_directory, 'idf_return_periods_frame.parq')) # -------- # events = idf.rain_events # idf.add_max_return_periods_to_events(events) # idf.write_rain_events(path.join(output_directory, 'events.csv'), sep=',', decimal='.') # exit() idf.auto_save_rain_events(path.join(output_directory, 'events.csv'), sep=',', decimal='.')
def set_series(self, series): IntensityDurationFrequencyAnalyse.set_series(self, series) self._sri_frame = None
def __init__(self, *args, method=METHODS.SCHMITT, **kwargs): IntensityDurationFrequencyAnalyse.__init__(self, *args, **kwargs) self.method = method self._sri_frame = None
from idf_analysis import IntensityDurationFrequencyAnalyse from idf_analysis.definitions import * import pandas as pd from os import path # sub-folder for the results output_directory = path.join('ehyd_112086_idf_data') # initialize of the analysis class idf = IntensityDurationFrequencyAnalyse(series_kind=SERIES.PARTIAL, worksheet=METHOD.KOSTRA, extended_durations=True) # reading the pandas series of the precipitation (data from ehyd.gv.at - ID=112086) # series = pd.read_parquet('ehyd_112086.parquet')['precipitation'] # setting the series for the analysis # idf.set_series(series) # idf.write_parameters(path.join(output_directory, 'idf_parameters.yaml')) # exit() # auto-save the calculated parameter so save time for a later use idf.auto_save_parameters( path.join(output_directory, 'idf_parameters_OLD_test.yaml'))