Hi everybody,
I want to share three applications that I have developed. These three applications can be used to help when processing rainfall data. From data management to frequency analysis. This application was developed based on books, references, and use case in Indonesia. Sorry if the documentation is currently in Indonesian (my English is quite limited, I hope someone can help me to translate), but the code itself is in English (hopefully it’s easy enough to read).
Rainfall Stations Explorer (fiako-stations)
Short Demo fiako-stations
This application is used to explore a database with HDF5 format containing daily rainfall data stations. Users can see what stations are available. In addition, users can see the completeness of daily rainfall data for each station (via heatmap or bar plot). In the end, users can download daily rainfall data for stations that will be used for a certain period (based on the completeness of the data).
- Github: GitHub - fiakoenjiniring/demo-stations: Rainfall Stations Explorer Web Application
- Dependencies: dash==2.3.1, dash_bootstrap_components, dash_bootstrap_template, geopy, numpy, pandas, plotly, python_box, tables/pytables, pyyaml
- Application: https://demo-stations.dev.fiako.engineering/
Rainfall Data Explorer (hidrokit-rainfall)
Short Demo hidrokit-rainfall
This application is used to analyze rainfall data. This analysis of rainfall data is more towards resampling data to obtain information on maximum rainfall, total rainfall, total of wet and dry days, date of maximum rainfall. Data resampling was carried out in three periods (biweekly, monthly, and yearly). This application uses a package called hidrokit, which was developed by me to make this process easier for me.
- Github: GitHub - fiakoenjiniring/rainfall: Rainfall Data Explorer Web Application
- Dependencies: dash==2.3.1, dash_bootstrap_components, dash_bootstrap_template, numpy, pandas, plotly, hidrokit, request, statmodels, python_box, pyyaml
- Application: https://rainfall.dev.fiako.engineering/
Frequency Analysis (fiako-anfrek)
Short Demo fiako-anfrek
This application is used to perform frequency analysis and goodness of fit. This application also relies on the hidrokit.
- Github: GitHub - fiakoenjiniring/anfrek: Frequency Analysis for Hydrology Web Application
- Dependencies: dash==2.4.1, dash_bootstrap_components, dash_bootstrap_template, numpy, pandas, plotly, scipy, hidrokit, python_box, pyyaml
- Application: https://anfrek.dev.fiako.engineering/
For the structure of the project itself, I separated the layouts to pylayout.py
, the functions for the layouts to pylayoutfunc.py
, the general functions to pyfunc.py
, and for the figure generator to be stored in pyfigure.py
, and for the figure templates to pytemplate.py
.
You can see all input (sample) and output in this folder: Folder Sample Data (input+output) on google drive.
I also have done webinar about these apps (in Bahasa Indonesia) (PDF presentation): Aplikasi Pengolahan Data Hujan Berbasis Web.
I’m still learning about python and dash+plotly, so I’m sorry if there are still many shortcomings and mistakes in these applications. Hopefully, it’s still useful to someone here.
A big thank you to the plotly team for providing dash and plotly open source.
Note: Application can be accessed until November 2022 (due to using free tier on Heroku).