Anda di halaman 1dari 17

Disclaimer:

Dokumen ini digunakan hanya untuk kebutuhan


GeoSoftware Online Course (GOC). Konten ini
mengandung Kekayaan Intelektual, pengguna
tunduk kepada undang-undang hak cipta, merek
dagang atau hak kekayaan intelektual lainnya.
Dilarang untuk mereproduksi, memodifikasi,
menyebarluaskan, atau mengeksploitasi konten ini
dengan cara atau bentuk apapun tanpa persetujuan
tertulis dari GeoSoftware Community dan/atau PT
Geo Aps Indonesia.
Flood Risk Modelling with Earth Engine
By Ramadhan

1 Pemodelan Risiko Banjir


Risiko banjir adalah gabungan dari kerawanan, eksposur, dan kerentanan kondisi
banjir suatu wilayah. Umumnya kerawanan adalah bagian dari wilayah yang secara
langsung terkena banjir, misal dataran banjir di sisi sungai. Semakin sering banjir
mengenai suatu wilayah dapat dianggap bahwa kerawanan banjir tinggi. Eksposur
mengacu pada aset, penduduk, dll. yang terkena oleh banjir, semakin banyak
penduduk ataupun harta berharga yang terkena maka semakin tinggi eksposur banjir.
Kerentanan mengacu pada hal yang terdampak untuk dapat bertahan dari menangani
banjir, semakin rendah kemampuannya maka semakin tinggi Kerentanan banjir. Pada
akhirnya risiko adalah gabungan dari tiga variabel tersebut.
Pemodelan kerawanan banjir dapat dilakukan dengan membuat harkat atau nilai
dari gabungan variabel yang mendukung terjadinya banjir. Misalnya menggunakan
jarak dari air permanen atau sungai. Semakin dekat suatu titik dari sungai maka
kemungkinan kerawanan lebih tinggi. Selain jarak dari sungai dapat juga digunakan
elevasi. Apabila elevasi rendah, lebih besar kemungkinan untuk terkena banjir
daripada yang berada pada elevasi tinggi. Elevasi sebenarnya tidak cukup karena
terdapat faktor topografi lainnya seperti TPI (Topographic Position Index) yaitu nilai
yang menyatakan posisi suatu titik relatif dengan elevasi di sekitarnya. Vegetasi juga
kadang digunakan dalam pemodelan kerawanan banjir yang mana wilayah dengan
vegetasi padat memiliki tingkat kerawanan rendah daripada yang tandus atau yang
tidak dapat menyerap air. Vegetasi dapat dimodelkan dengan NDVI. Menggunakan
seluruh variabel ini dapat dilakukan harkat untuk menentukan tingkat kerawanan
banjir:
Tabel 1 Harkat Variabel Kerawanan Banjir
No. Variabel Keterangan Harkat
1 Jarak dari sungai >. 200 meter 1
150 – 200 meter 2
100 – 149 meter 3
50 – 99 meter 4
< 50 meter 5
2 Elevasi >. 20 meter 1
15 – 20 meter 2
10 – 14 meter 3
5 – 9 meter 4
< 5 meter 5
3 TPI >. 0 1
0 – -0.25 2
-0.25 – -0.5 3
-0.5 – -0.75 4
< -0.75 5
4 Vegetasi (NDVI) >. 0.5 1
0.25 – 0.5 2
0 – 0.25 3
-0.25 – 0 4
< -0.25 5
Setelah semua variabel telah dinilai. Maka dapat dimodelkan kerawanan banjir
dengan menjumlahkan seluruh harkat variabel dan dilakukan harkat kembali untuk
menentukan tingkat kerawanan. Penentuan harkat kerawanan banjir dapat dibaca
pada:

Tabel 2 Harkat Kerawanan Banjir


Harkat jumlah variabel Harkat Kerawanan Banjir Keterangan
<. 4 1 Sangat tidak berkerawanan
4–8 2 Tidak berkerawanan
9 – 12 3 Sedang
13 – 16 4 Berkerawanan
> 16 5 Sangat berkerawanan

Pemodelan eksposur banjir juga dilakukan dengan hal yang sama, yakni dengan
melakukan harkat variabel. Variabel yang dapat digunakan adalah jumlah penduduk,
lahan pertanian, dan lahan terbangun. Semakin banyak penduduk potensi terkena
banjir maka eksposur semakin tinggi begitu pula dengan semakin luas lahan
terbangun dan pertanian yang terdampak makan semakin tinggi eksposur. Contoh
pengharkatan variabel ekspor banjir:

Tabel 3 Harkat Variabel Eksposur Banjir


No. Variabel Keterangan Harkat
1 Penduduk < 10 penduduk 1
10 – 100 penduduk 2
101 – 200 penduduk 3
201 – 300 penduduk 4
> 300 penduduk 5
2 Luas lahan terbangun < 40 m^2 1
40 – 60 m^2 2
61 – 80 m^2 3
81 – 100 m^2 4
> 100 m^2 5
3 Luas lahan pertanian < 40 m^2 1
40 – 60 m^2 2
61 – 80 m^2 3
81 – 100 m^2 4
> 100 m^2 5

Apabila semua variabel telah dinilai maka selanjutnya adalah penjumlahan harkat
variabel dan melakukan harkat untuk tingkat eksposurnya. Contoh harkat eksposur:

Tabel 4 Harkat Eksposur Banjir


Harkat jumlah variabel Harkat Eksposur Banjir Keterangan
<. 3 1 Sangat tidak terekspos
3–6 2 Tidak terekspos
7–9 3 Sedang
10 – 12 4 Terekspos
> 12 5 Sangat terekspos
Pemodelan kerentanan banjir juga dilakukan dengan harkat berbagai variabel.
Harkat yang dapat digunakan adalah PDB (Produk Domestik Bruto) untuk ekonomi
dan IPM (Indeks Pembangunan Manusia) untuk tingkat sumberdaya manusia. Harkat
variabel:

Tabel 5 Harkat Variabel Kerentanan Banjir


No. Variabel Keterangan Harkat
1 PDB > 40 juta USD 1
31 – 40 juta USD 2
21 – 30 juta USD 3
10 – 20 juta USD 4
< 10 juta USD 5
2 IPM > 0.85 1
0.8 – 0.85 2
0.75 – 0.8 3
0.7 – 0.75 4
< 0.7 5

Setelah penjumlahan harkat variabel kerentanan banjir, nilainya dijumlahkan dan


dilakukan pengharkatan lagi untuk menjadi tingkat kerentanan banjir:

Tabel 6 Harkat Kerentanan Banjir


Harkat jumlah variabel Harkat Eksposur Banjir Keterangan
<. 2 1 Sangat tidak rentan
2–4 2 Tidak rentan
5–6 3 Sedang
7–8 4 Rentan
>8 5 Sangat rentan

Semua nilai harkat kerawanan, eksposur, dan kerentanan banjir dijumlahkan


untuk mendapatkan nilai risiko banjir final. Nilai harkat risiko banjir:

Tabel 7 Harkat Risiko Banjir


Harkat jumlah variabel Harkat Risiko Banjir Keterangan
<. 3 1 Sangat tidak berisiko
3–6 2 Tidak berisiko
7–9 3 Sedang
10 – 12 4 Berisiko
> 12 5 Sangat berisiko

2 Pengenalan Ulang Google Earth Engine


Pelatihan ini diarahkan untuk ahli penginderaan jauh yang telah memahami
Google Earth Engine tingkat medium. Namun perlu refreshing GEE bagi yang telah
lama belum menggunakan. GEE web dengan JavaScript dapat diakses melalui
code.earthengine.google.com. Pengguna perlu mendaftar dulu lalu membuat
repository dan membuat skrip baru.
Pada GEE terdapat 2 objek utama dalam analisis data: vektor dan raster. Vektor
umumnya seperti Shapefile namun dalam format GeoJSON versi GEE yakni
ee.FeatureCollection yang merupakan versi GEE dari GeoJSON feature
collection. ee.FeatureCollection biasanya terdiri dari beberapa ee.Feature
layaknya row pada Shapefile. Tiap ee.Feature memiliki informasi properties
layaknya kolom dan geometri dalam bentuk ee.Geometry yang menunjukkan
informasi dan bentuk geometri atau spasial begitu juga dengan referensi
spasial/sistem proyeksi.
Pada data raster, yakni inti utama dari GEE dibagi menjadi dua: ee.Image yang
merupakan satu kesatuan citra dengan beberapa saluran atau hanya satu. Layaknya
data format .tiff sedangkan ee.ImageCollection yang memiliki beberapa
ee.Image yang memiliki informasi lokasi, waktu, dan variabel lainnya. Umumnya
ketika menggunakan ee.ImageCollection akan di filter terlebih dahulu menurut
lokasi dan waktu untuk mengurangi jumlah citra yang dianalisis dan tidak
memberatkan komputasi. Contoh skrip:

// Lokasi yang digunakan untuk filter


var roi = ee.Geometry({
"geodesic": false,
"type": "Polygon",
"coordinates": [
[
[
103.47443690212873,
-1.7079691352593016
],
[
103.7202559939256,
-1.7079691352593016
],
[
103.7202559939256,
-1.469108505971908
],
[
103.47443690212873,
-1.469108505971908
],
[
103.47443690212873,
-1.7079691352593016
]
]
]
});

var l8 = ee.ImageCollection("LANDSAT/LC08/C02/T1_L2"); // Koleksi landsat 8

// Melakukan filter
var filtered = l8.filterBounds(roi).filterDate(“2022-01-01”, “2022-12-31”);
Skrip 1 Filter Citra

Ketika melakukan analisis dalam GEE, pengguna umumnya tidak menggunakan


satu citra murni namun suatu mosaik dari gabungan berbagai citra dengan mengambil
nilai piksel terbaik, umumnya menggunakan nilai median. Sebelum median kadang
juga dilakukan cloud masking atau penghapusan awan agar citra mosaik mediannya
menjadi lebih baik tanpa awan. Penghapusan dilakukan di tiap citra menggunakan
metode .map atau for loop untuk objek GEE. Pada metode .map dimasukkan
argumen fungsi untuk melakukan penghapusan awan layaknya for loop pada
umumnya. Fungsi adalah suatu hal yang menerima masukan dan mengeluarkan atau
melakukan sesuatu. Pada saat melakukan loop dapat dilakukan juga scaling ataau
mengubah nilai data citra ke 0-1 dari UInt16. Contoh skrip untuk melakukan
penghapusan awan dan membuat mosaik:

// Fungsi cloud masking untuk Landsat


function cloudMask(image){
var qa = image.select(“QA_PIXEL”); // Memilih citra QA untuk deteksi
awan dan objek lainnya

var dilated = 1 << 1;


var cirrus = 1 << 2;
var cloud = 1 << 3;
var shadow = 1 << 4;

var mask = qa.bitwiseAnd(dilated).eq(0)


.and(qa.bitwiseAnd(cirrus).eq(0))
.and(qa.bitwiseAnd(cloud).eq(0))
.and(qa.bitwiseAnd(shadow).eq(0));

// memilih hanya citra yang akan digunakan


var rename = image.select([“SR_B2”, “SR_B3”, “SR_B4”, “SR_B5”,
“SR_B6”, “SR_B7”], [“B2”, “B3”, “B4”, “B5”, “B6”, “B7”]);

// Scaling citra
var scaled = rename.multiply(0.0000275).add(-0.2);

// Mengembalikan citra yang sudah di masking


return scaled.updateMask(mask);
}

// Menerapkan fungsi cloud mask ke citra + mosaik


var median = filtered.map(cloudMask).median().clip(roi);
Skrip 2 Komposit Citra

Citra yang dihasilkan seperti hasil mosaik atau median dapat divisualkan ke dalam
tampilan GEE menggunakan skrip:

// Visual parameter untuk visualisasi


var vis = {
bands: [“B5”, “B6”, “B2”], // Band NIR, SWIR, dan BLUE
min: [0.1, 0.05, 0], // Stretch min untuk tiap band
max: [0.4, 0.3, 0.15] // Stretch max untuk tiap band
};

Map.addLayer(median, vis, “Image”)


Skrip 3 Menampilkan Citra
Gambar 1 Tampilan Citra

3 Pemetaan jarak dari sungai dan harkat tingkat kerawanan


// Kamus yang membantu menentukan nama variabel dan saluran citra yang
digunakan
var bandMap = {
NIR: image.select('B5'),
SWIR: image.select('B6'),
GREEN: image.select('B3'),
RED: image.select('B4'),
BLUE: image.select('B2')
};

// Perhitungan NDWI
var ndwi = image.expression('(GREEN - NIR) / (GREEN + NIR)', bandMap);

// Menampilkan NDBI
Map.addLayer(ndwi, { min: -1, max: 1, palette: ['red', 'white', 'blue']},
'NDWI', false);

// Air
var air = ndwi.gt(0.1);
Map.addLayer(air, { palette: ['black', 'blue'], min: 0, max: 1 }, 'Air',
false);

// Bukan air
var bukanAir = air.eq(0);

// Jarak dari air


var jarakAir =
air.fastDistanceTransform().updateMask(bukanAir).divide(30).clip(roi).reproje
ct('EPSG:4326', null, 30);
Map.addLayer(jarakAir, { min: 0, max: 1000, palette: ['red', 'yellow',
'green']}, 'Jarak dari air', false);

// Harkat jarak dari air


var harkatJarakAir = jarakAir.where(jarakAir.gt(200), 1)
.where(jarakAir.gt(150).and(jarakAir.lte(200)), 2)
.where(jarakAir.gt(100).and(jarakAir.lte(150)), 3)
.where(jarakAir.gt(50).and(jarakAir.lte(100)), 4)
.where(jarakAir.lte(50), 5);
Map.addLayer(harkatJarakAir, { min: 1, max: 5, palette: ['green', 'yellow',
'red']}, 'Harkat jarak dari air', false);

Gambar 2 NDWI (kiri) dan Air (kanan)

Gambar 3 Jarak dari air (kiri) dan Harkat jarak dari air (kanan)
4 Topografi untuk penilaian kerawanan banjir
// DEM
var srtm = ee.Image("USGS/SRTMGL1_003").clip(roi).updateMask(bukanAir);

// Tampilkan peta elevasi


Map.addLayer(srtm, { min: 0, max: 200, palette: ['green', 'yellow', 'red']},
'Elevasi', false);

// Harkat elevasi
var harkatElevasi = srtm.where(srtm.gt(20), 1)
.where(srtm.gt(15).and(srtm.lte(20)), 2)
.where(srtm.gt(10).and(srtm.lte(15)), 3)
.where(srtm.gt(5).and(srtm.lte(10)), 4)
.where(srtm.lte(5), 5);
Map.addLayer(harkatElevasi, { min: 1, max: 5, palette: ['green', 'yellow',
'red']}, 'Harkat elevasi', false);

// TPI
var tpi = srtm.subtract(srtm.focalMean(3)).reproject('EPSG:4326', null,
30).updateMask(bukanAir).clip(roi);
Map.addLayer(tpi, { min: -10, max: 10, palette: ['blue', 'yellow', 'red']},
'TPI', false);

// Harkat TPI
var harkatTPI = tpi.where(tpi.gt(0), 1)
.where(tpi.gt(-0.25).and(tpi.lte(0)), 2)
.where(tpi.gt(-0.5).and(tpi.lte(-0.25)), 3)
.where(tpi.gt(-0.75).and(tpi.lte(-0.5)), 4)
.where(tpi.lte(-0.75), 5);
Map.addLayer(harkatTPI, { min: 1, max: 5, palette: ['green', 'yellow',
'red']}, 'Harkat TPI', false);

Gambar 4 Elevasi (kiri) dan Harkat elevasi (kanan)


Gambar 5 TPI (kiri) dan Harkat TPI (kanan)

5 Pemodelan vegetasi untuk kerawanan banjir dan pemetaan kerawanan


banjir
// NDVI
var ndvi = image.expression('(NIR - RED) / (NIR + RED)',
bandMap).updateMask(bukanAir);
Map.addLayer(ndvi, { min: -1, max: 1, palette: ['blue', 'white', 'green']},
'NDVI', false);

// Harkat vegetasi
var harkatNDVI = ndvi.where(ndvi.gt(0.5), 1)
.where(ndvi.gt(0.25).and(ndvi.lte(0.5)), 2)
.where(ndvi.gt(0).and(ndvi.lte(0.25)), 3)
.where(ndvi.gt(-0.25).and(ndvi.lte(0)), 4)
.where(ndvi.lte(0), 5);
Map.addLayer(harkatNDVI, { min: 1, max: 5, palette: ['green', 'yellow',
'red']}, 'Harkat NDVI', false);

// Kerawanan
var kerawanan =
harkatJarakAir.add(harkatElevasi).add(harkatTPI).add(harkatNDVI);
Map.addLayer(kerawanan, { min: 1, max: 20, palette: ['green', 'yellow',
'red']}, 'Kerawanan', false);

// Kerawanan harkat
var harkatKerawanan = kerawanan.where(kerawanan.gt(16), 5)
.where(kerawanan.gt(12).and(kerawanan.lte(16)), 4)
.where(kerawanan.gt(8).and(kerawanan.lte(12)), 3)
.where(kerawanan.gt(4).and(kerawanan.lte(8)), 2)
.where(kerawanan.lte(4), 1);
Map.addLayer(harkatKerawanan, { min: 1, max: 5, palette: ['green', 'yellow',
'red']}, 'Harkat kerawanan', false);
Gambar 6 NDVI dan Harkat Vegetasi

Gambar 7 Kerawanan Banjir (kiri) dan Harkat Kerawanan Banjir

6 Pemodelan eksposur banjir menggunakan data penduduk, lahan pertanian,


dan lahan terbangun
// Penduduk
var penduduk =
ee.ImageCollection("JRC/GHSL/P2023A/GHS_POP").sort('system:time_start',
false)
.first().updateMask(bukanAir).clip(roi);
Map.addLayer(penduduk, { min: 0, max: 250, palette: ['black', 'red',
'white']}, 'Penduduk', false);

// Harkat penduduk
var harkatPenduduk = penduduk.where(penduduk.gt(300), 5)
.where(penduduk.gt(200).and(penduduk.lte(300)), 4)
.where(penduduk.gt(100).and(penduduk.lte(200)), 3)
.where(penduduk.gt(10).and(penduduk.lte(100)), 2)
.where(penduduk.lte(10), 1);
Map.addLayer(harkatPenduduk, { min: 1, max: 5, palette: ['green', 'yellow',
'red']}, 'Harkat penduduk', false);

// World cover
var wc =
ee.ImageCollection("ESA/WorldCover/v200").first().clip(roi).updateMask(bukanA
ir);

// Penutup lahan
var lahanTerbangun = wc.eq(50);
Map.addLayer(lahanTerbangun, { palette: ['black', 'red'], min: 0, max: 1},
'Lahan terbangun', false);
var pertanian = wc.eq(40);
Map.addLayer(pertanian, { palette: ['black', 'yellow'], min: 0, max: 1},
'Pertanian', false);

// Citra area
var area = ee.Image.pixelArea();

// Reduce area lahan terbangun


var lahanTerbangunArea =
lahanTerbangun.multiply(area).reduceResolution(ee.Reducer.sum(), true)
.reproject('EPSG:4326', null, 30);
Map.addLayer(lahanTerbangunArea, { min: 0, max: 100, palette: ['black',
'red', 'white'] }, 'Luas lahan terbangun', false);

// Harkat lahan terbangun


var harkatLahanTerbangun =
lahanTerbangunArea.where(lahanTerbangunArea.gt(100), 5)
.where(lahanTerbangunArea.gt(80).and(lahanTerbangunArea.lte(100)), 4)
.where(lahanTerbangunArea.gt(60).and(lahanTerbangunArea.lte(80)), 3)
.where(lahanTerbangunArea.gt(40).and(lahanTerbangunArea.lte(60)), 2)
.where(lahanTerbangunArea.lte(40), 1);
Map.addLayer(harkatLahanTerbangun, { min: 1, max: 5, palette: ['green',
'yellow', 'red'] }, 'Harkat lahan terbangun', false);

// Reduce area lahan terbangun


var pertanianArea =
pertanian.multiply(area).reduceResolution(ee.Reducer.sum(), true)
.reproject('EPSG:4326', null, 30);
Map.addLayer(pertanianArea, { min: 0, max: 100, palette: ['black', 'yellow',
'white'] }, 'Luas pertanian', false);

// Harkat lahan terbangun


var harkatPertanian = pertanianArea.where(pertanianArea.gt(100), 5)
.where(pertanianArea.gt(80).and(pertanianArea.lte(100)), 4)
.where(pertanianArea.gt(60).and(pertanianArea.lte(80)), 3)
.where(pertanianArea.gt(40).and(pertanianArea.lte(60)), 2)
.where(pertanianArea.lte(40), 1);
Map.addLayer(harkatPertanian, { min: 1, max: 5, palette: ['green', 'yellow',
'red'] }, 'Harkat pertanian', false);

// Eksposur
var eksposur = harkatPenduduk.add(harkatLahanTerbangun).add(harkatPertanian);
Map.addLayer(eksposur, { min: 1, max: 15, palette: ['green', 'yellow',
'red']}, 'Eksposur', false);

// Kerawanan harkat
var harkatEksposur = eksposur.where(eksposur.gt(12), 5)
.where(eksposur.gt(9).and(eksposur.lte(12)), 4)
.where(eksposur.gt(6).and(eksposur.lte(9)), 3)
.where(eksposur.gt(3).and(eksposur.lte(6)), 2)
.where(eksposur.lte(3), 1);
Map.addLayer(harkatEksposur, { min: 1, max: 5, palette: ['green', 'yellow',
'red']}, 'Harkat eksposur', false);
7 Pemodelan kerentanan banjir menggunakan data ekonomi dan indeks
pembangunan manusia (IPM)
// PDB
var pdb = ee.Image("projects/sat-io/open-
datasets/GRIDDED_HDI_GDP/GDP_PPP_1990_2015_5arcmin_v2")
.select('b26')
.clip(roi)
.updateMask(bukanAir);
Map.addLayer(pdb, { min: 0, max: 1e8, palette: ['black', 'green', 'white']},
'PDB', false);

// Harkat lahan terbangun


var harkatPDB = pdb.where(pdb.gt(40*1e6), 1)
.where(pdb.gt(30*1e6).and(pdb.lte(40*1e6)), 2)
.where(pdb.gt(20*1e6).and(pdb.lte(30*1e6)), 3)
.where(pdb.gt(10*1e6).and(pdb.lte(20*1e6)), 4)
.where(pdb.lte(10*1e6), 5);
Map.addLayer(harkatPDB, { min: 1, max: 5, palette: ['green', 'yellow', 'red']
}, 'Harkat PDB', false);

// IPM
var ipm = ee.Image("projects/sat-io/open-
datasets/GRIDDED_HDI_GDP/HDI_1990_2015_v2")
.select('b26')
.clip(roi)
.updateMask(bukanAir);
Map.addLayer(ipm, { min: 0.5, max: 1, palette: ['black', 'blue', 'white']},
'IPM', false);

// Harkat IPM
var harkatIPM = ipm.where(ipm.gt(0.85), 1)
.where(ipm.gt(0.8).and(ipm.lte(0.85)), 2)
.where(ipm.gt(0.75).and(ipm.lte(0.8)), 3)
.where(ipm.gt(0.7).and(ipm.lte(0.75)), 4)
.where(ipm.lte(0.7), 5);
Map.addLayer(harkatIPM, { min: 1, max: 5, palette: ['green', 'yellow', 'red']
}, 'Harkat IPM', false);

// Kerentanan banjir
var kerentanan = harkatPDB.add(harkatIPM);
Map.addLayer(kerentanan, { min: 1, max: 10, palette: ['green', 'yellow',
'red']}, 'Kerentanan', false);

// Harkat kerentanan banjir


var harkatKerentanan = kerentanan.where(kerentanan.gt(8), 5)
.where(kerentanan.gt(6).and(kerentanan.lte(8)), 4)
.where(kerentanan.gt(4).and(kerentanan.lte(6)), 3)
.where(kerentanan.gt(2).and(kerentanan.lte(4)), 2)
.where(kerentanan.lte(2), 1);
Map.addLayer(harkatKerentanan, { min: 1, max: 5, palette: ['green', 'yellow',
'red']}, 'Harkat kerentanan', false);
Gambar 8 Penduduk (kiri) dan Harkat penduduk (kanan)

Gambar 9 Luas Lahan Terbangun (kiri) dan Harkat luas lahan terbangun
(kanan)

Gambar 10 Luas Pertanian (kiri) dan Harkat luas pertanian (kanan)


Gambar 11 Eksposur Banjiir (kiri) dan Harkat eksposur banjir (kanan)

8 Pemodelan risiko banjir


// Risiko banjir
var risiko = harkatKerawanan.add(harkatEksposur);//.add(harkatKerentanan);
Map.addLayer(risiko, { min: 1, max: 10, palette: ['green', 'yellow', 'red']},
'Risiko banjir', false);

// Harkat risiko
var harkatRisiko = risiko.where(risiko.gt(8), 5)
.where(risiko.gt(6).and(risiko.lte(8)), 4)
.where(risiko.gt(4).and(risiko.lte(6)), 3)
.where(risiko.gt(2).and(risiko.lte(4)), 2)
.where(risiko.lte(2), 1);
Map.addLayer(harkatRisiko, { min: 1, max: 5, palette: ['green', 'yellow',
'red']}, 'Harkat risiko', false);

Gambar 12 Risiko Banjir (kiri) dan Harkat Risiko Banjir (kanan)

Anda mungkin juga menyukai