{ "cells": [ { "cell_type": "code", "execution_count": 11, "metadata": { "ExecuteTime": { "end_time": "2024-07-02T11:40:36.914661Z", "start_time": "2024-07-02T11:40:36.892058Z" } }, "outputs": [], "source": [ "from idf_analysis.idf_class import IntensityDurationFrequencyAnalyse\n", "from idf_analysis.definitions import *\n", "import pandas as pd\n", "from os import path\n", "%matplotlib inline\n", "import matplotlib.pyplot as plt\n", "plt.style.use('bmh')\n", "\n", "import matplotlib\n", "matplotlib.rcParams.update({\n", " 'figure.figsize': (10, 8),\n", " 'figure.dpi': 100,\n", " 'figure.constrained_layout.use': True,\n", "})" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "source": [ "# Intensity Duration Frequency Analyse - EXTENDED" ] }, { "cell_type": "code", "execution_count": 12, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false }, "pycharm": { "name": "#%%\n" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "_balance_parameter_change\n" ] } ], "source": [ "# sub-folder for the results\n", "output_directory = path.join('ehyd_112086_idf_data')\n", "\n", "# initialize of the analysis class\n", "idf = IntensityDurationFrequencyAnalyse(series_kind=SERIES.PARTIAL, worksheet=METHOD.KOSTRA, extended_durations=True)\n", "\n", "# reading the pandas series of the precipitation (data from ehyd.gv.at - ID=112086)\n", "# You need to install `pyarrow` or `fastparquet` to read and write parquet files.\n", "series = pd.read_parquet('ehyd_112086.parquet').squeeze('columns') # ['precipitation']\n", "\n", "# setting the series for the analysis\n", "idf.set_series(series)\n", "\n", "# auto-save the calculated parameter so save time for a later use\n", "idf.auto_save_parameters(path.join(output_directory, 'idf_parameters.yaml'))" ] }, { "cell_type": "code", "execution_count": 13, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false }, "pycharm": { "name": "#%%\n" } }, "outputs": [ { "data": { "text/plain": [ "('Columns: ',\n", " Index(['start', 'end', 'duration', 'rain_sum', 'last_event'], dtype='object'),\n", " '| Number of events: ',\n", " 1776)" ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" } ], "source": [ "events = idf.rain_events\n", "\"Columns: \", events.columns, \"| Number of events: \", events.index.size" ] }, { "cell_type": "code", "execution_count": 14, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false }, "pycharm": { "name": "#%%\n" } }, "outputs": [ { "data": { "text/plain": [ "('Columns: ',\n", " Index(['start', 'end', 'duration', 'rain_sum', 'last_event'], dtype='object'),\n", " '| Number of events: ',\n", " 311)" ] }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# reduce number of event by limiting the minimum sum of rainfall\n", "events = events[events[COL.LP] > 10].copy()\n", "\"Columns: \", events.columns, \"| Number of events: \", events.index.size" ] }, { "cell_type": "code", "execution_count": 15, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false }, "pycharm": { "name": "#%%\n" } }, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "291e23e444b34c2c9faa6e3938b81b5e", "version_major": 2, "version_minor": 0 }, "text/plain": [ "calculating rainfall_sum data-frame: 0%| | 0/21 [00:00, ?it/s]" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "4e39778f99e242ac885d3e3ee6b725c4", "version_major": 2, "version_minor": 0 }, "text/plain": [ "calculating return_periods data-frame: 0%| | 0/21 [00:00, ?it/s]" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/plain": [ "('Columns: ',\n", " Index(['start', 'end', 'duration', 'rain_sum', 'last_event',\n", " 'max_return_period', 'max_return_period_duration'],\n", " dtype='object'),\n", " '| Number of events: ',\n", " 311)" ] }, "execution_count": 15, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# add the maximum return period to the events and at which duration this period occurs\n", "idf.add_max_return_periods_to_events(events)\n", "\"Columns: \", events.columns, \"| Number of events: \", events.index.size" ] }, { "cell_type": "code", "execution_count": 16, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false }, "pycharm": { "name": "#%%\n" } }, "outputs": [ { "data": { "text/plain": [ "('Columns: ',\n", " Index(['start', 'end', 'duration', 'rain_sum', 'last_event',\n", " 'max_return_period', 'max_return_period_duration'],\n", " dtype='object'),\n", " '| Number of events: ',\n", " 21)" ] }, "execution_count": 16, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# reduce number of event by limiting the minimum return period of an event\n", "events = events[events[COL.MAX_PERIOD] > 2].copy()\n", "\"Columns: \", events.columns, \"| Number of events: \", events.index.size" ] }, { "cell_type": "code", "execution_count": 17, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false }, "pycharm": { "name": "#%%\n" } }, "outputs": [ { "data": { "text/html": [ "
\n", " | start | \n", "end | \n", "duration | \n", "rain_sum | \n", "last_event | \n", "max_return_period | \n", "max_return_period_duration | \n", "
---|---|---|---|---|---|---|---|
104 | \n", "2008-06-23 19:50:00 | \n", "2008-06-23 23:16:00 | \n", "0 days 03:26:00 | \n", "34.8 | \n", "2 days 21:52:00 | \n", "5.443256 | \n", "15 | \n", "
124 | \n", "2008-07-17 14:14:00 | \n", "2008-07-18 06:27:00 | \n", "0 days 16:13:00 | \n", "74.6 | \n", "0 days 04:09:00 | \n", "6.296477 | \n", "120 | \n", "
126 | \n", "2008-07-20 17:43:00 | \n", "2008-07-21 03:55:00 | \n", "0 days 10:12:00 | \n", "27.7 | \n", "2 days 02:48:00 | \n", "2.831020 | \n", "5760 | \n", "
271 | \n", "2009-07-18 08:55:00 | \n", "2009-07-18 13:19:00 | \n", "0 days 04:24:00 | \n", "58.0 | \n", "2 days 01:56:00 | \n", "3.379566 | \n", "240 | \n", "
279 | \n", "2009-08-21 19:49:00 | \n", "2009-08-21 20:29:00 | \n", "0 days 00:40:00 | \n", "34.2 | \n", "4 days 03:04:00 | \n", "3.975974 | \n", "20 | \n", "
282 | \n", "2009-08-28 23:41:00 | \n", "2009-08-29 00:42:00 | \n", "0 days 01:01:00 | \n", "49.3 | \n", "1 days 03:44:00 | \n", "19.719853 | \n", "20 | \n", "
284 | \n", "2009-09-04 00:31:00 | \n", "2009-09-04 18:18:00 | \n", "0 days 17:47:00 | \n", "69.0 | \n", "5 days 11:06:00 | \n", "2.605674 | \n", "1080 | \n", "
544 | \n", "2011-08-03 19:53:00 | \n", "2011-08-04 07:44:00 | \n", "0 days 11:51:00 | \n", "54.7 | \n", "1 days 23:11:00 | \n", "12.733190 | \n", "20 | \n", "
662 | \n", "2012-07-14 16:54:00 | \n", "2012-07-15 13:06:00 | \n", "0 days 20:12:00 | \n", "59.8 | \n", "1 days 01:15:00 | \n", "3.719740 | \n", "8640 | \n", "
772 | \n", "2013-05-05 20:47:00 | \n", "2013-05-07 12:40:00 | \n", "1 days 15:53:00 | \n", "119.5 | \n", "0 days 17:31:00 | \n", "30.573431 | \n", "2880 | \n", "
819 | \n", "2013-08-27 17:10:00 | \n", "2013-08-27 23:48:00 | \n", "0 days 06:38:00 | \n", "43.3 | \n", "0 days 13:58:00 | \n", "2.617407 | \n", "5 | \n", "
820 | \n", "2013-08-28 11:42:00 | \n", "2013-08-28 16:21:00 | \n", "0 days 04:39:00 | \n", "28.5 | \n", "0 days 11:54:00 | \n", "3.542479 | \n", "2880 | \n", "
921 | \n", "2014-05-11 10:21:00 | \n", "2014-05-11 23:17:00 | \n", "0 days 12:56:00 | \n", "55.6 | \n", "0 days 13:17:00 | \n", "2.082202 | \n", "2880 | \n", "
922 | \n", "2014-05-12 17:22:00 | \n", "2014-05-13 17:26:00 | \n", "1 days 00:04:00 | \n", "20.6 | \n", "0 days 18:05:00 | \n", "2.797981 | \n", "4320 | \n", "
1111 | \n", "2015-07-08 11:50:00 | \n", "2015-07-09 00:25:00 | \n", "0 days 12:35:00 | \n", "77.8 | \n", "8 days 13:53:00 | \n", "5.981488 | \n", "720 | \n", "
1236 | \n", "2016-06-05 11:03:00 | \n", "2016-06-05 14:56:00 | \n", "0 days 03:53:00 | \n", "40.4 | \n", "0 days 19:56:00 | \n", "6.794841 | \n", "5 | \n", "
1269 | \n", "2016-07-21 22:29:00 | \n", "2016-07-21 23:21:00 | \n", "0 days 00:52:00 | \n", "37.2 | \n", "5 days 00:05:00 | \n", "2.448124 | \n", "30 | \n", "
1273 | \n", "2016-07-25 10:18:00 | \n", "2016-07-25 15:47:00 | \n", "0 days 05:29:00 | \n", "33.8 | \n", "0 days 19:01:00 | \n", "3.399509 | \n", "5760 | \n", "
1275 | \n", "2016-07-27 15:25:00 | \n", "2016-07-27 20:24:00 | \n", "0 days 04:59:00 | \n", "12.2 | \n", "1 days 01:05:00 | \n", "4.663455 | \n", "8640 | \n", "
1531 | \n", "2018-06-12 17:00:00 | \n", "2018-06-12 17:31:00 | \n", "0 days 00:31:00 | \n", "21.6 | \n", "3 days 16:11:00 | \n", "3.070451 | \n", "5 | \n", "
1532 | \n", "2018-06-13 14:58:00 | \n", "2018-06-13 22:27:00 | \n", "0 days 07:29:00 | \n", "63.5 | \n", "0 days 21:27:00 | \n", "11.429391 | \n", "15 | \n", "