PySheds

PySheds adalah sebuah pustaka (library) Python sumber terbuka yang dirancang khusus untuk memproses data model elevasi digital (DEM) secara cepat, terutama untuk keperluan analisis hidrologi, termasuk deliniasi (penentuan batas) daerah aliran sungai. Dengan pustaka ini, pengguna dapat secara otomatis menentukan batas-batas daerah tangkapan air (catchment area) dari data topografi.

pysheds dirancang untuk kinerja yang cepat, bahkan dengan kumpulan data elevasi yang besar, menjadikannya alat yang efisien untuk analisis hidrologi. Sebagai pustaka sumber terbuka, pysheds dapat digunakan dan dimodifikasi secara gratis, berbeda dengan perangkat lunak GIS komersial. Karena dibangun di Python, pysheds dapat dengan mudah diintegrasikan ke dalam alur kerja analisis data yang lebih besar menggunakan pustaka Python lainnya, seperti NumPy, Pandas, dan GeoPandas. Pustaka ini menawarkan berbagai fungsi tambahan untuk pemodelan hidrologi, seperti penghitungan jarak ke muara dan ekstraksi jaringan sungai.

 Sejarah 
Awal mula pysheds adalah sebagai pet project dari pengembang utamanya, Matt Bartos. Tujuannya adalah untuk membuat pustaka Python sumber terbuka yang cepat dan efisien untuk memproses data model elevasi digital (DEM) untuk keperluan analisis hidrologi.

 Latar belakang dan motivasi 
Pustaka ini diciptakan dengan mempertimbangkan kecepatan. Bartos menyatakan bahwa pysheds dirancang untuk mampu mendeliniasi grid arah aliran berukuran jutaan sel dalam hitungan detik, dan menghitung akumulasi aliran untuk grid puluhan juta sel dalam waktu kurang dari satu menit. pysheds dikembangkan sebagai alternatif sumber terbuka yang kuat dan mandiri untuk fungsi-fungsi hidrologi dasar yang biasanya ditawarkan oleh perangkat lunak GIS komersial, seperti ArcGIS. Sebagai pustaka Python, pysheds memudahkan pengguna untuk mengintegrasikan analisis hidrologi ke dalam alur kerja analisis data yang lebih luas, memanfaatkan ekosistem Python yang kaya dengan pustaka lain seperti NumPy, Pandas, dan Scikit-Image.

 Perjalanan dan rilis awal 
Versi awal pysheds (v0.1) dirilis pada tanggal 26 Juni 2018 di PyPI (Python Package Index). Pada 15 Mei 2018, sebelum rilis perdananya, Bartos mempresentasikan pysheds kepada komunitas Earth Science Information Partners (ESIP), di mana ia memamerkan kemampuan pustaka tersebut dan membagikan tautan ke repositori GitHub-nya. Ini menandai perkenalan resmi pysheds ke khalayak yang lebih luas. Sejak rilis awal, pustaka ini terus berkembang dengan penambahan fitur-fitur baru dan peningkatan performa. Versi-versi baru dirilis secara berkala, menambahkan dukungan untuk berbagai metode perutean aliran dan meningkatkan versatilitas dalam analisis.

 Posisi dalam ekosistem GIS 
pysheds dengan cepat mendapatkan pengakuan dalam komunitas Geospasial dengan Python karena kemudahannya, kecepatannya, dan sifatnya yang sumber terbuka. Pustaka ini menjadi alat yang berharga bagi para ilmuwan data, hidrolog, dan peneliti yang bekerja dengan data DEM, memungkinkan mereka untuk melakukan pemodelan hidrologi kompleks secara terprogram, reprodusibel, dan efisien.

 Cara kerja 
Proses deliniasi DAS dengan pysheds bekerja berdasarkan alur kerja hidrologi yang umum, yang umumnya dimulai dari data DEM, yaitu representasi permukaan bumi dalam bentuk grid sel-sel elevasi. Berikut adalah langkah-langkah utamanya:

 Pramuat data DEM: Data elevasi digital (DEM) dimuat ke dalam objek Grid pysheds. Data ini sering kali berasal dari file raster seperti .tif.
 Perbaikan topografi: DEM sering kali memiliki sink (cekungan tanpa jalan keluar) dan flat (area datar) yang dapat mengganggu analisis aliran air. pysheds menyediakan fungsi untuk memperbaiki area-area ini agar aliran air dapat mengalir secara benar.
 Penghitungan arah aliran (flow direction): pysheds menghitung arah aliran untuk setiap sel dalam grid. Secara default, ini dilakukan menggunakan skema D8 (delapan arah), yang mengarahkan aliran dari setiap sel ke satu dari delapan sel tetangga dengan penurunan elevasi tercuram.
 Penghitungan akumulasi aliran (flow accumulation): Dengan menggunakan grid arah aliran, pustaka ini menghitung berapa banyak sel di hulu yang mengalir ke setiap sel. Sel-sel dengan akumulasi aliran tinggi menunjukkan lokasi sungai atau saluran air.
 Deliniasi DAS: Setelah aliran dan akumulasi aliran diketahui, Pengguna dapat menentukan "titik curah" (pour point), yaitu titik di mana Pengguna ingin menentukan batas DAS-nya. pysheds kemudian akan melacak semua sel di hulu yang mengalir ke titik tersebut untuk menghasilkan batas DAS.

 Fitur pysheds 
Fitur-fitur hidrologi utama yang tersedia dalam pysheds mencakup berbagai tahap pemrosesan hidrologi, mulai dari pengkondisian DEM hingga analisis jaringan sungai dan pemetaan genangan.

Berikut adalah fungsi-fungsi hidrologi spesifik yang ditawarkan oleh pysheds:

 1. Pengkondisian DEM (DEM Conditioning) 
Fungsi-fungsi ini digunakan untuk mempersiapkan data elevasi digital (DEM) sebelum analisis aliran, seperti menghilangkan anomali yang dapat memengaruhi penentuan arah aliran:

 fill_pits: Mengisi lubang sel tunggal (single-celled pits) dalam DEM.
 fill_depressions: Mengisi depresi sel ganda (multi-celled depressions) dalam DEM.
 resolve_flats: Menghilangkan daerah datar (flats) dari DEM.
 detect_pits: Mendeteksi lubang sel tunggal.
 detect_depressions: Mendeteksi depresi sel ganda.
 detect_flats: Mendeteksi daerah datar.

 2. Arah Aliran dan Akumulasi (Flow Direction and Accumulation) 
Fungsi-fungsi ini menentukan bagaimana air mengalir melintasi permukaan dan seberapa banyak aliran yang terkumpul:

 flowdir: Menghasilkan kisi arah aliran (flow direction grid) dari DEM yang diberikan. pysheds mendukung skema perutean (routing) D8 dan D-infinity.
 accumulation: Menghitung akumulasi aliran (jumlah sel di hulu setiap sel). Jika bobot (weights) diberikan, fungsi ini menghitung jumlah sel berbobot di hulu setiap sel.

 3. Deliniasi Daerah Tangkapan (Catchment Delineation) dan Jarak Aliran 
Fungsi-fungsi ini berfokus pada penentuan batas DAS dan pengukuran jarak yang relevan secara hidrologi:

 catchment: Mendeliniasi daerah aliran sungai (watershed) untuk titik buangan (pour point) yang diberikan.
 distance_to_outlet: Menghitung jarak (berbobot) dari setiap sel ke titik buangan yang diberikan, bergerak ke hilir (downstream).
 distance_to_ridge: Menghitung jarak (berbobot) dari setiap sel ke batas drainase asalnya (originating drainage divide), bergerak ke hulu (upstream).

 4. Ekstraksi dan Analisis Jaringan Sungai (River Network Analysis) 
Fungsi-fungsi untuk menganalisis dan mengekstraksi fitur jaringan sungai:

 extract_river_network: Mengekstrak segmen sungai dari daerah tangkapan dan mengembalikan objek geojson.
 stream_order: Menghitung ordo sungai (stream order), biasanya menggunakan ordo Strahlerr.
 extract_profiles: Mengekstrak segmen sungai dan mengembalikan daftar indeks saluran bersama dengan kamus yang menjelaskan konektivitas.
 compute_hand: Menghitung ketinggian di atas drainase terdekat (height above nearest drainage, HAND). HAND dapat digunakan untuk pemetaan genangan.

 5. Metrik Sel Aliran (Cell Flow Metrics) 
Fungsi-fungsi ini menghitung karakteristik topografi lokal antar sel:

 cell_dh: Menghitung penurunan elevasi (drop in elevation) dari setiap sel ke sel tetangga di hilirnya.
 cell_distances: Menghitung jarak dari setiap sel ke sel tetangga di hilirnya.
 cell_slopes: Menghitung kemiringan (slope) antara setiap sel dan sel tetangga di hilirnya.

 Lihat pula 

 Badan Informasi Geospasial
 Google Earth
 Google Maps
 Google My Maps
 HEC-HMS
 OpenStreetMap
 Pemetaan Digital
 QGIS
 Sistem Informasi Geografis

 Referensi 

Kategori:Pustaka Python
Kategori:Geospasial
Kategori:Sistem informasi geografis
Kategori:Sistem Informasi Geografi