Show and Tell - Dash Apps for Processing Rainfall Data

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

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).

Setup fiako-stations

Sample data (input+output)

Input

Output

Rainfall Data Explorer (hidrokit-rainfall)

Short Demo 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.

Sample data (input+output)

Input

Output

Frequency Analysis (fiako-anfrek)

Short Demo 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.

Sample data (input+output)

Input

Output


General workflow using these dash apps

fiakodev-sipilpedia-pengolahan-data-hujan-68

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).

10 Likes

thanks for sharing your creations with us, @taruma

1 Like

beautiful apps!!

1 Like

Took a second look at these apps. I mean come on, this app is so nice! I wish the SF weather report was this detailed :heart_eyes_cat:

Some screenshots for those just passing through…





You’ve got a great eye for design & data viz @taruma !

7 Likes

Thank you so much! I work hard with this visualization (especially the “goodness of fit” visualization). It was challenging for me, but I’m enjoyed it.

Thanks all!


I have another app like fiako-stations (actually, this is my first project with dash and plotly):
Github: taruma/dash-data-explorer: dashboard :hut: data explorer (github.com)
Application: https://app-bmkg-exp.herokuapp.com/
warning: this dash app has lots of emoji and cuteness. :laughing:

3 Likes