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
コード例 #7
0
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'))