Home » Data analysis » Calculating aerial rainfall

Calculating aerial rainfall

Dalam artikel ini saya berikan contoh bagaimana mendapatkan data hujan satelit dengan input luasan atau batasan area tinjauan, dan merata-ratakan seluas area tinjauan tersebut (misal seluas DAS, batas kabupaten/kota dsb).

Output dari data ini adalah besaran data hujan harian (dalam timeseries) yang telah direrata seluas area tinjuan. File output dapat berupa CSV atau tabular data yang dapat dibukan menggunakan notepad atau Microsoft Excel.

A. Menggunakan Giovanni

Kunjung website giovanni NASA https://giovanni.gsfc.nasa.gov/giovanni/.
Anda bisa mendownload data “Time Series, Area-averaged” dengan menginput batasan waktu dan lokasi luasan kordinat (lat,lon).

Dalam contoh dibawah saya isikan
Select Date Range: 2000-01-01 to 2021-09-30
Select Region: 114.4, -8.9, 115.8, -8 (wilayah pulau bali)

Lalu ketikkan “IMERG Final” pada kolom keyword. Pilih “GPM_3IMERGDF_v06” (lihat gambar dibawah).

Klik Plot data (dipojok kanan bawah)

Setelah proses selesai maka anda akan dapatkana plot timeseries seperti berikut. Data tersebut mewakili data hujan timeseries di area yang telah kita pilih (hujan aerial atau hujan area) di kordinat (114.4, -8.9, 115.8, -8). Dengan menggunakan GIOVANNI ini nampaknya kita tidak dapat menginput file poligon kita sendiri SHAPEFILE atau KMZ misal sebuah DAS atau batasan area tertentu.

Lalu untuk mendapatkan RAW data tersebut dalam bentuk tabel anda dapat pilih pilihan “Download”, pilih untuk file extension “CSV” seperti gambar berikut. Dari file CSV kita dapat melakukan analisis data hujan harian sesuai kebutuhan.

B. Mengolah data netCDF (menggunakan R)

Dalam bagian ini kita akan mengolah data hujan netCDF menggunakan R. Pastikan anda telah memiliki data netCDF yang berisi data spasial timeseries dan program R studio yang dapat diinstall pada environment Anaconda.

Untuk contoh data timeseries netCDF GPM untuk area pulau jawa dapat diunduh disini: https://drive.google.com/drive/folders/1TmowxQOyZbd4CcZ841B8rxV1U56uDBXu?usp=sharing

Data tersebut merupakan netCDF yang berisi data hujan di seluruh area pulau jawa dengan panjang data 2000 hingga 2021. Data tersebut merupakan data gabungan (merge) data individual per hari yang diunduh dengan menggunakan cara pada artikel sebelumnya dan dicompile sesuai dengan petunjuk di artikel ini.

1. Install dan memuat paket yang diperlukan

Library yang sangat bermanfaat untuk proses ini adalah library “raster”. Install dan import terlebih “raster” terlebih dahulu.

install.packages("raster")
install.packages("ncdf4")

library (raster)

2. Baca file NetCDF dan poligon sebagai mask

netCDF dapat dibaca sebagai file “Stack” atau “Brick” atau dalam raster sebagai matriks/array 3 multidimensi. Misal dalam hal ini netCDF saya letakkan di direktori berikut: “C:/Users/vempi/Downloads/3B-DAY.MS.MRG.3IMERG.20210930-S000000-E235959.V06.nc4.nc4”

# set direktori
setwd('D:/Research/Data/')

# baca file
nc_file <- brick("3B-DAY.MS.MRG.3IMERG.2000-2021.bali.nc")

# run code dibawah ini jika latitude dan longitude tertukar pada pembacaan netCDF
nc_t <- t(nc_file)

# coba plot netCDF tsb pada layer ke-30
plot(nc_t[[30]])
Hasil plotting untuk data GPM tanggal 30 September 2021 pada area Bali

3. Masking dan hitung rerata area

Masking atau crop file netCDF tersebut menggunakan Poligon dengan format SHP atau sejenis yang telah kita miliki (misal: DAS-citarum.shp).

# pilih file shp
mask_file <- shapefile("C:/Users/vempi/Downloads/DAS-bali.shp")  

# Konversi poligon menjadi objek Raster
mask <- raster(mask_file)  

# Menghitung rata-rata data di dalam poligon sepanjang waktu
mean_data <- zApply(nc_t, mask, fun = mean, na.rm = TRUE)  

Dalam langkah ini, mean_data akan berisi nilai rata-rata data NetCDF di dalam poligon untuk setiap titik waktu. Anda dapat menyesuaikan langkah-langkah ini sesuai dengan kebutuhan Anda, misalnya, mengubah fungsi perhitungan rata-rata atau melibatkan operasi lain seperti agregasi spasial atau statistik lainnya.

4. Export CSV

mean_df <- as.data.frame(mean_data, xy = TRUE)  # Mengubah objek mean_data menjadi data frame
write.csv(mean_df, "mean_data.csv", row.names = FALSE)  # Menyimpan data frame ke dalam file CSV dengan nama "mean_data.csv"

Setelah langkah-langkah ini, file CSV dengan nama “mean_data.csv” akan disimpan dalam direktori default anda (getwd() untuk mengetahui direktori default di program R anda).

File CSV ini akan berisi data rata-rata dari objek mean_data di dalam poligon untuk setiap titik waktu, dengan kolom yang mewakili koordinat X, Y, dan nilai rata-rata variabel hujan. Anda dapat menyesuaikan penamaan file dan lokasi penyimpanan sesuai dengan kebutuhan Anda.

Selamat mencoba!

Comments

comments