hidrokit adalah proyek open source paket python yang dapat digunakan untuk membantu proses analisis hidrologi dimulai dari pengolahan data, analisis data, dan visualisasi data.
Saat ini, hidrokit masih dalam tahap aktif pengembangan dan pembelajaran. Akan tetapi, fitur yang tersedia di hidrokit sudah bisa digunakan untuk penggunaan praktis atau akademis.
Laporan Implementasi
Saya telah membuat contoh implementasi hidrokit dalam kasus hidrologi ataupun machine learning. Topik machine learning dikarenakan kebetulan merupakan fokus saya saat menyusun tesis terkait pemodelan curah hujan-limpasan. Untuk laporan yang fokus pada hidrologi bisa melihat pada LI-03.
no laporan | tanggal | versi hidrokit | judul | lihat (nbviewer) | |
---|---|---|---|---|---|
LI-04 | 11 Februari 2020 | 0.3.5 | Perbandingan Model Variasi Recurrent Neural Networks Pada Kasus Prediksi Debit Aliran | nbviewer | |
LI-03 | 16 Januari 2020 | 0.3.5 | Analisis Hidrologi Menggunakan hidrokit | nbviewer | |
LI-02 | 22 Oktober 2019 | 0.3.2 | Prediksi Debit Aliran Menggunakan Long Short-Term Memory (LSTM) | nbviewer | |
LI-01 | 13 Juli 2019 | 0.2.0 | Prediksi Kualitas Air Menggunakan Artificial Neural Networks | nbviewer |
Daftar ini bisa lihat di situs dokumentasi saya bernama vivaldi atau di academia.edu.
Daftar Fitur hidrokit (0.3.6
)
Daftar modul .contrib.taruma
Isu | Modul | Versi | Keterangan | Manual |
---|---|---|---|---|
#106 | .hk106 | 0.3.5 | Perhitungan evapotranspirasi | Gist |
#102 | .hk102 | 0.3.5 | Upsampling dataset | Gist |
#96 | .hk96 | 0.3.5 | Pemodelan F.J. Mock | Gist |
#98 | .hk98 | 0.3.5 | Rekap dataset deret waktu | Gist |
#99 | .hk99 | 0.3.5 | Perhitungan curah hujan dengan metode poligon Thiessen | Gist |
#90 | .hk90 | 0.3.5 | Kalibrasi Model (NRECA/FJ_MOCK) | Gist |
#89 | .hk89 | 0.3.5 | Pemodelan NRECA | Gist |
#87 | .hk87 | 0.3.5 | Perhitungan debit andalan menggunakan kurva durasi debit | Gist |
#88 | .hk88 | 0.3.5 | Ambil dataset hujan harian dari excel | Gist |
#84 | .hk84 | 0.3.4 | Meringkas informasi data hujan jam-jaman | Gist |
#79 | .hk79 | 0.3.3 | Mengekstrak informasi data jam-jaman dari excel | Gist |
#43 | .hk43 | 0.3.2 | Mengubah pivot table ke dataframe | Gist |
#53 | .hk53 | 0.3.2 | Membuat tensor input untuk pemodelan LSTM/RNN | Gist |
#73 | .hk73 | 0.3.2 | Mengolah berkas dari BMKG | Gist |
Untuk modul/fungsi selain subpaket .contrib
bisa dilihat di hidrokit documentation. Dengan catatan bahwa pengembangan dialihkan ke .contrib
terlebih dahulu untuk saat ini.
Sejarah hidrokit
Saya memulai proyek hidrokit dengan membuat repository di github pada tanggal 20 Oktober 2018. Pada saat itu, hidrokit hanya muncul sebagai ide dari perjalanan saya belajar python dan data science. Pada tanggal 9 Januari 2019, saya merilis versi 0.1.0
. Saya telah mengimplementasikan instalasi menggunakan pip
dan perencanaan penggunaan semantic versioning (meski ujung-ujungnya tidak begitu konsisten). Saya juga pada versi 0.1.0
, mulai mengajak bagi yang tertarik dengan penggunaan python di bidang hidrologi dengan tulisan ini (tautannya sudah banyak yang tidak aktif lagi). Saat itu, versi tersebut tidak begitu praktis gunakan. Tujuan waktu itu hanya ingin melihat engagement terkait penggunaan python di pekerjaan hidrologi (yang memiliki porsi signifikan dalam pengolahan spreadsheet).
Enam bulan berlalu, saya merilis versi 0.2.0
pada 11 Juli 2019, dan ini merupakan rilis menurut saya layak dipublikasikan atau disebarkan ke banyak orang melalui tulisan ini. Pada rilisnya versi tersebut saya telah membuat situs/website untuk hidrokit, situs untuk kumpulan notebook yang menggunakan python+hidrologi bernama hidrokit notebook. Tujuan membuat situs tersebut dengan harapan meningkatkan engagement, tapi sejauh ini yang berkontribusi hanya saya sendiri 🤣. Pada versi tersebut, saya mulai merekonstruksi struktur paket hidrokit agar lebih konsisten kedepannya. Membagi menjadi 3 subpaket utama yaitu .prep
, .viz
, dan .analysis
. Sejauh ini, hidrokit bisa digunakan untuk melakukan pemodelan ANN sederhana seperti contoh ini.
Setelah versi 0.2.0
, saya sadari bahwa untuk membuat suatu software yang layak publish itu cukup merepotkan. Selain harus mengikuti standar yang biasa diterapkan di software developement, saya juga tidak mau melakukan kesalahan seperti breaking changes dari versi 0.1.x
ke 0.2.0
. Maka dari itu, saya mulai berpikir untuk mencari solusi dimana saya bisa terus bereksperimen dan mengembangkan hidrokit tanpa melakukan perubahan yang merusak versi-versi sebelumnya.
Dan solusi yang saya temukan saat itu, membuat subpaket .contrib
untuk melakukan pengembangan mandiri tanpa mempengaruhi paket utama hidrokit. Hal ini, memberi waktu dan ruang untuk saya belajar bagaimana pengembangan paket python dan modul-modul yang dapat membantu proses analisis hidrologi.
Sekitar 3 bulan berlalu, saya merilis versi 0.3.2
pada tanggal 15 Oktober 2019, yang seharusnya versi 0.3.0, tapi karena sayanya melakukan kesalahan dalam mengintegrasikannya dengan zenodo, kekeliruan tersebut terjadi dan saya terpaksa untuk meningkatkan versinya. Yah, bagian dari pengalaman dan pembelajaran lah ya 😁. Pada versi 0.3.2
, saya rasanya tidak mempublikasikan dalam bentuk tulisan. Tapi pada versi ini, saya mulai bereksperimen dengan membuat laporan implementasi, yaitu notebook yang berisikan implementasi penggunaan hidrokit dan hidrologi/data science. Bagi yang penasaran laporan implementasi saya bisa lihat di situs vivaldi (proyek dokumentasi implementasi) atau bisa melalui academia.edu.
Dari versi 0.3.2
hingga 0.3.5
saya menambahkan beberapa modul yang menurut saya menarik untuk dicoba dalam workflow analisis hidrologi. Untuk daftar modul yang dikembangkan sampai versi 0.3.5
bisa dilihat di sini. Pada versi 0.3.5
yang saya rilis pada 15 Januari 2020, saya memutuskan untuk membuat proyek hidrokit dalam status hiatus (sempat terpikirkan untuk diarsip). Versi 0.3.5
ini membantu saya dalam beberapa penyelesaian kasus dalam menyelesaikan tesis (meski sejak versi 0.3.2
sudah mulai membantu). Saat itu saya sudah menuliskan kabar buruk tersebut disini . Saat saya bereksperimen dengan hidrokit, terutama hidrokit.timeseries.timestep_table()
saya menemukan bug yang kritis, sehingga mau tidak mau saya harus publish bugfix secepatnya. Dan rilislah versi 0.3.6
yang tidak direncanakan pada 13 Juli 2020.
Dan dua tahun berlalu (ditambah isu pandemi), kembali ke masa sekarang, tahun 2022, saya mulai membangkitkan lagi hidrokit. Hal ini karena dukungan dari PT. FIAKO Enjiniring Indonesia (FIAKO Engineering). Dengan dukungan tersebut, saya mulai bisa membuat hidrokit dalam status aktif pengembangan. Dan bulan April 2022 sudah direncanakan untuk merilis versi 0.3.7. Saya juga akan mulai memperkenalkan hidrokit melalui media seperti livestream atau zoom rencananya.
Dengan kerjasama dan dukungan tersebut. bisa jadi, setelah hidrokit ada paket python lainnya lagi untuk bidang sipil lainnya🤞.