Anda di halaman 1dari 55

Universitas Brawijaya

Fakultas Perikanan dan Ilmu Kelautan

MODUL PEMBELAJARAN
GOOGLE EARTH ENGINE UNTUK ILMU KELAUTAN
Seftiawan Samsu Rijal (NDH 20)
Peserta Latsar CPNS golongan III tahun 2020
Puslatbang KMP LAN - Makassar

Unit kerja:
Program studi Ilmu Kelautan
Jurusan Pemanfaatan Sumberdaya Perikanan dan Kelautan
Fakultas Perikanan dan Ilmu Kelautan
Universitas Brawijaya
seftiawan.sr@ub.ac.id

Kata Pengantar
Kemajuan teknologi telah membawa peradaban menuju era 4.0 dimana hampir seluruh
sendi kehidupan kini telah diliputi oleh internet (internet of things). Tidak terkecuali dengan
perkembangan keilmuan terkait eksplorasi laut dan pengolahan citra penginderaan jauh yang
menjadi sangat maju berkat adanya hal tersebut. Basis pengolahan citra kini dapat tidak lagi
dilakukan secara konvensional pada komputer (desktop) melainkan dilakukan pada komputasi
awan (cloud) yang aksesibel dan bersifat kolaboratif antar pembuat/pengguna peta.
Modul Google Earth Engine (GEE) ini berisi penjelasan mengenai cara memulai dan
menggunakan GEE untuk berbagai kajian ilmu kelautan. GEE adalah salah satu platform
pengolah data spasial berbasis cloud yang kini kegunaannya mulai dilirik oleh berbagai
kalangan untuk melakukan kerja profesional. Pemahaman mengenai GEE diperlukan sebagai
amunisi tambahan bagi mahasiswa program studi Ilmu Kelautan FPIK Universitas Brawijaya
khususnya agar mampu ikut bersaing di dunia kerja.
Penulis berharap modul ini dapat berguna bagi perkembangan kompetensi mahasiswa
dan program studi Ilmu Kelautan. Terlebih, pada masa pandemi ini kita terbatas dalam
melakukan aktivitas namun dituntut agar tetap produktif menjalankan tridharma perguruan
tinggi. Semoga dengan dukungan platform semacam ini dapat membuat kita selalu semangat
untuk berkontribusi pada ilmu pengetahuan. Masukan dan saran terhadap pengembangan
modul akan penulis terima dengan lapang dada.

Malang, Juli 2020

Seftiawan Samsu Rijal

2
seftiawan.sr@ub.ac.id

==================================================================

Daftar Isi

Kata Pengantar 2
01 Memulai Google Earth Engine 4
1.1. Login dan Signup 4
1.2. Pengenalan JavaScript 7
1.3. Cara memilih citra penginderaan jauh 10
1.4. Cara memilih data DEM dan menentukan Region of Interest (ROI) 12
1.5. Fungsi ekspor dan impor pada GEE 14
1.6. Melihat Dataset pada GEE 17
02 Aplikasi GEE Pada Ilmu Kelautan 19
2.1. Klasifikasi multispektral 19
2.2. Uji akurasi hasil klasifikasi multispektral 22
2.3. Layout 23
2.4. Normalized Difference Vegetation Index (NDVI) 26
2.5. Normalized Difference Water Index (NDWI) 30
2.6. Sea Surface Temperature (SST) dan Chlorophyll-a 33
2.7. Salinitas 36
2.8. Marikultur Ikan Kerapu 38
2.9. Sentinel 1A untuk Memantau Kapal 46
2.10. Ocean Colour SMI: MODIS Aqua 49
2.11. Zona Intertidal 50
2.12. Mangrove 52
2.13. Global Fishing and Vessel Watch 54
Referensi untuk mendapatkan source code 56
03 Latihan Membuat dan Memodifikasi Script 57
==================================================================

3
seftiawan.sr@ub.ac.id

01 Memulai Google Earth Engine


1.1. Login dan Signup
Google Earth Engine (GEE) adalah platform pengolahan citra digital berbasis
komputasi awan (cloud) yang memudahkan penggunanya untuk mengolah citra digital tanpa
harus mengunduhnya terlebih dahulu. Seluruh proses olah citra dilakukan secara daring. GEE
tidak memerlukan memori komputer yang besar dan spesifikasi laptop/PC yang tinggi.
Kestabilan koneksi internet adalah kebutuhan utamanya. Agar dapat memulai GEE, langkah
berikut dapat dilakukan:
1. Kunjungi https://earthengine.google.com/
2. Klik sign up pada pojok kanan atas tampilan web

3. Isi form yang bertanda bintang. Pada bagian yang diberi tanda panah, isi dengan
minimal 50 karakter. Berikut contoh isian yang dapat anda tulis di dalamnya: I want to
use Google Earth Engine to do a remote sensing satellite imagery processing

4
seftiawan.sr@ub.ac.id

4. Pada bagian ini, anda hanya perlu mencentang pilihan ‘I agree that my use of the Earth
Engine …’ dan TIDAK perlu mencentang pilihan ‘I am interested in …’ Kemudian
klik pilihan I’m not a robot’, kemudian Submit,

5. Apabila anda telah memilih Submit, selanjutnya ada pilihan Keep Exploring, klik
pilihan tersebut maka anda akan kembali ke jendela seperti tampak pada gambar 2.
Pada jendela tersebut anda dapat memilih Platform kemudian pilih Code Editor,

6. Pada jendela code editor, anda akan melihat tampilan berikut beserta penjelasannya,

5
seftiawan.sr@ub.ac.id

Selamat! Anda telah berhasil masuk ke dalam jendela pemrosesan citra penginderaan
jauh pada GEE. Pada jendela tersebut seluruh proses mulai pemanggilan citra yang terdapat di
dalam basis data GEE hingga proses ekspor hasil akan dilakukan. Apabila anda telah masuk ke
dalam jendela tersebut, artinya anda telah siap untuk memulai pengolahan citra penginderaan
jauh untuk kajian kelautan. Silahkan melihat bab selanjutnya untuk memulai proses
pembelajaran ini.

6
seftiawan.sr@ub.ac.id

1.2. Pengenalan JavaScript


Perlu diketahui bahwa pemrosesan citra penginderaan jauh pada GEE sepenuhnya
dilakukan menggunakan JavaScript. Anda diwajibkan untuk berkenalan dengan JavaScript agar
semakin familiar dengan bahasa pemrograman tersebut. JavaScript bersifat case sensitive,
artinya kapital atau tidaknya huruf ketika ia ditulis akan dikenali sebagai sebuah perintah yang
berbeda. Pada masa awal pembelajaran GEE, cukup penting untuk menumbuhkan sensitivitas
terhadap hal ini agar memudahkan pekerjaan selanjutnya.
Code editor dapat mulai ditulis dengan pendeklarasian variabel terlebih dahulu.
Penulisan variabel berfungsi untuk menghindari terjadinya error atau pesan yang bersifat
undefined. Variabel dapat ditulis dengan sintaks var (var …) serta dapat dipakai untuk
pendeklarasian yang bersifat lokal atau global. Contohnya sebagai berikut:

var salam = ‘Hello World’

Pendeklarasian Nilai dari sebuah


sebuah variabel variabel
bernama salam

Terdapat beberapa penanda dalam JavaScript yang akan digunakan dalam modul ini
yaitu:
1. Dua garis miring (// …) artinya komentar. Apabila terdapat kalimat yang diawali oleh
dua garis miring, maka kalimat tersebut tidak akan diproses sebagai perintah, sebab ia
hanya akan dikenali oleh JavaScript sebagai komentar,
2. Titik koma atau semicolon ( … ;) artinya akhir perintah. Setiap perintah sebaiknya
diakhiri dengan titik koma. Hal ini sebagai penanda bahwa perintah telah berakhir dan
siap dieksekusi. Apabila perintah yang kita buat belum ditutup dengan titik koma,
umumnya akan ada peringatan dari sistem untuk menutupnya,
3. Petik satu atau petik dua yang terletak sebelum dan setelah perintah (‘ … ‘ atau “ … “),
hal ini menandakan tipe data berupa string atau teks,
4. print ( … ), perintah ini digunakan saat kita akan memerintahkan sistem untuk
menampilkan properti data atau hasil yang kita peroleh pada tab console,
5. Kurung siku ( [ … ] ), digunakan untuk menampilkan properti data/hasil pada tab
console dalam bentuk list atau daftar menurun,

7
seftiawan.sr@ub.ac.id

6. Kurung kurawal ( { … } ), digunakan untuk menampilkan list dalam list pada tab
console,
7. Function, digunakan untuk menampilkan perintah yang disertai dengan parameter.
Parameter ditandai dengan kurung buka dan kurung tutup ( … ) sementara perintah
ditandai dengan kurung kurawal { … } yang diletakkan di dalam parameter kurung
buka dan kurung tutup. Contohnya adalah sebagai berikut:

var myFunction = function(input,{ … },’input’);


secara penerapan, dapat dicontohkan berikut ini:
Map.addLayer(elevation,{min: 0, max:1000},’elevation’)

Code diatas dapat dibaca seperti ini: masukkan layer pada peta, yaitu layer
elevasi dan atur rentang ketinggiannya mulai 0 hingga 1000 mdpl, kemudian hasilnya
beri nama dengan Elevation. Code ini biasa digunakan untuk menampilkan data/hasil
pada layar.

Nah, sekarang anda telah mengetahui 7 penanda yang digunakan dalam JavaScript pada
GEE. Agar semakin terbiasa dengan JavaScript lakukan latihan berikut. Caranya sangat mudah,
silahkan copy paste script/code 1 dibawah ini pada code editor GEE kemudian klik Run dan
lihat hasilnya.

Source code 1. Pengenalan JavaScript


//Salam pembuka
var salam = 'hello world';
print(salam);

//Angka
var nomor = 99;
print(nomor);

//List
var myList = ['GEE', salam, nomor];
print(myList);

8
seftiawan.sr@ub.ac.id

//Dictionary
var myDict = {'a': nomor, 'b': myList, 'c': 1, 'd': 'abc'};
print(myDict);

Bagaimana hasilnya? Mudah bukan? Selamat! anda telah berhasil menulis script
pertama anda pada GEE!. Sekarang saatnya berlatih membuat script anda sendiri.
Ganti nilai dari setiap variabel sesuai keinginan anda dan klik Run. Lihat apa yang
terjadi kemudian lakukan evaluasi. Dapatkah anda menjelaskannya kepada dosen/asisten?!
1.3. Cara memilih citra penginderaan jauh
Terdapat 7 petabyte data citra di dalam GEE. Kita dapat memilihnya sesuai kebutuhan
belajar / penelitian yang akan dilakukan. Cobalah script 2 dibawah ini untuk memilih citra,
komposit dan waktu perekaman citra.

Source code 2. Memilih citra, komposit dan waktu perekaman


// Ambil koleksi citra Landsat 8
var L8 = ee.ImageCollection("LANDSAT/LC08/C01/T1_TOA");

// Zoom ke Sulawesi
Map.setCenter(120.0928, -4.2466, 8);

//Filter data sesuai tanggal yang diinginkan


var filtered = L8.filterDate('2019-01-01', '2019-12-31');

// Tampilkan dengan kombinasi band


Map.addLayer(filtered, {min: 0, max :0.5, bands:['B6', 'B5',

9
seftiawan.sr@ub.ac.id

'B4']}, 'False Colour');

Apakah anda berhasil menerapkannya? Bagaimana jika nilai atau variabel diatas
diganti? Apa yang terjadi?
Script diatas berisi tentang perintah untuk memuat koleksi citra Landsat 8 dengan level
pemrosesan TOA (Top of Atmosphere). Selanjutnya, kita memerintahkan agar citra yang
ditampilkan tersebut berada di wilayah Sulawesi dengan koordinat titik tengah seperti yang
tertulis diatas (120.0928, -4.2466). Kemudian kita menentukan agar citra yang tampil berkisar
pada rentang tanggal 1 Januari 2019 hingga 31 Desember 2019. Terakhir, kita tampilkan citra
pada komposit warna semu (654). Hasilnya seperti dibawah ini.

Gambar 1. Menampilkan citra, komposit dan waktu perekaman

UJI COBA
1. Ubah parameter/nilai pada source code 2 sesuai keinginan anda masing - masing,
2. Evaluasi perubahan yang terjadi pada tampilan peta milik anda,
3. Deskripsikan perubahan yang terjadi pada form berikut: https://s.id/ujicoba_GEE

10
seftiawan.sr@ub.ac.id

1.4. Cara memilih data DEM dan menentukan Region of Interest (ROI)
Terdapat beberapa data Digital Elevation Model (DEM) pada GEE contohnya Shuttle
Radar Topographic Mission (SRTM), ALOS DSM, GTOPO30, GMTED2010, ETOPO1 dan
lainnya. Namun, tidak semua data DEM tersebut meliputi wilayah laut dan ada pula yang
hanya terbatas pada area/negara tertentu. Oleh karena itu, kita hanya akan mempraktekkan
penggunaan DEM ETOPO1 yang cakupannya global dan memiliki data DEM wilayah laut
serta daratan. Berikut ini script 3 untuk menampilkan DEM ETOPO1.

Source code 3. Menampilkan DEM ETOPO1


//Panggil data ETOPO1
var dataset = ee.Image('NOAA/NGDC/ETOPO1');

//Pilih band yang terdapat pada ETOPO1 untuk menampilkan


ketinggian
var elevation = dataset.select('bedrock');

//Atur warna elevasi


var elevationVis = {
min: -7000.0,
max: 4000.0,
palette: ['011de2', 'afafaf', '3603ff', 'fff477', 'b42109'],
};

//Zoom ke wilayah kajian


Map.centerObject(roi, 5);

//Tampilkan data pada peta


Map.addLayer(elevation, elevationVis, 'Elevation');

Setelah anda menyalin script diatas dan melakukan klik run pada code editor,
kemungkinan masih terdapat kegagalan proses yang ditandai dengan notifikasi merah pada
console. Hal ini terjadi karena anda belum menentukan Region of Interest (ROI) pada area
kajian anda. Agar dapat menentukan ROI ikuti langkah dibawah ini.

Langkah membuat ROI


1. Pilih Add a marker
2. Taruh pin point pada area kajian anda
3. Ubah nama ‘geometry’ pada bagian Import menjadi ‘roi’ seperti dibawah ini,

11
seftiawan.sr@ub.ac.id

4. Kemudian klik run dan lihatlah hasilnya

UJI COBA
1. Ubahlah angka pada perintah pengaturan minimum dan maximum yang terdapat pada
script 3 bagian //atur warna elevasi,
2. Ubahlah letak roi, letakkan dimanapun sesuai keinginan anda,
3. Ubah angka 5 dengan angka berapapun dalam rentang antara 1 - 24 pada perintah
Map.centerObject (roi, 5);
4. Evaluasi dan deskripsikan hasil nomor 1 - 3 pada form berikut:
https://s.id/ujicoba_GEE

12
seftiawan.sr@ub.ac.id

1.5. Fungsi ekspor dan impor pada GEE


GEE dilengkapi kemampuan untuk ekspor hasil pengolahan citra, memasukkan data
yang kita miliki dalam bentuk shapefile (*.shp) atau citra lainnya serta membuat tautan dari
script yang kita buat agar dapat digunakan secara kolaborasi dengan orang lain. Penjelasan dari
setiap kemampuan adalah sebagai berikut.

Ekspor Hasil
Ekspor hasil GEE dapat dilakukan menjadi beberapa macam seperti TIFF, shp, kml,
dan juga video. Selain itu, kita dapat mengatur penyimpanannya baik pada Google Drive, Asset
atau Cloud Storage. Dibawah ini adalah contoh script untuk menyimpan hasil GEE.

Source code 4. Ekspor hasil ke Google Drive


// Export the result to Google Drive
Export.image.toDrive({
image:sr,
description:'L8_sr_semarang',
folder:'GEE',
scale:30,
region: bbox,
maxPixels:1e12
});

Pada script tersebut, hasil pemrosesan GEE akan disimpan ke dalam Google Drive
sesuai dengan akun email yang kita gunakan. Nama image harus kita sesuaikan dengan nama
file yang akan kita simpan demikian pula dengan description. Perintah folder akan
memerintahkan Google Drive kita membuat sebuah folder untuk menyimpan hasil pemrosesan
yang diekspor. Besaran nilai scale disesuaikan dengan resolusi spasial citra yang digunakan.
Sementara itu, region adalah batas ekspor citra, sebagai batasan, kita dapat menggunakan
shapefile yang diunggah melalui Asset atau geometri yang kita buat langsung pada tampilan
peta. MaxPixels untuk membatasi besaran nilai citra agar terekspor sesuai dengan batasan yang
kita tetapkan.
Import data
GEE dapat menerima data yang dimiliki oleh user, atau hal ini dinamakan impor data.
Proses impor data dilakukan melalui tab Assets. Pada tab tersebut, kita dapat mengunggah file
dengan ekstensi *.shp, *.GeoTIFF dan *.csv. Berikut ini tampilan dari tab Assets.

13
seftiawan.sr@ub.ac.id

Share script / data pada GEE


GEE dapat melakukan sharing script sehingga pembuat/pengguna GEE yang lain dapat
mengoreksi/menggunakan script yang sama untuk melakukan pemetaan yang serupa pada area
yang berbeda. Caranya adalah dengan memilih Get Link kemudian pilih Copy dan kita telah
dapat membagikannya kepada orang lain. Contohnya dibawah ini.

Selain membagikan script yang telah kita buat pada Code Editor, kita juga dapat
membagikan data yang telah kita unggah pada Asset. Caranya adalah klik tab Asset, pilih
Share, centang pilihan Anyone can read kemudian pilih Done. Maka script dari data pada Asset
kita dapat dibagikan kepada orang lain. Berikut ini adalah gambarnya.

14
seftiawan.sr@ub.ac.id

15
seftiawan.sr@ub.ac.id

1.6. Melihat Dataset pada GEE


GEE terdiri atas 7 petabytes data citra yang dapat digunakan untuk mengekstrak
berbagai macam informasi. Agar kita mengetahui dataset apa saja yang terdapat pada GEE, kita
dapat mengecek ketersedian citra pada GEE dapat melalui langkah berikut.
1. Pilih Dataset pada tampilan awal Google Earth Engine

2. Maka kita akan masuk ke dalam Earth Engine Data Catalog

3. Pada Earth Engine Data Catalog, lakukan browsing atau search data citra sesuai
kebutuhan anda. Selain itu, pada tampilan Earth Engine Data Catalog, kita juga dapat

16
seftiawan.sr@ub.ac.id

mengecek API Doc yang berisi informasi dan petunjuk dalam pemrosesan citra pada
GEE. Berikut ini adalah contoh tampilan apabila kita memilih View All Dataset.

17
seftiawan.sr@ub.ac.id

02 Aplikasi GEE Pada Ilmu Kelautan


2.1. Klasifikasi multispektral
1. Salin script dibawah ini
var image =
ee.Image(ee.ImageCollection('LANDSAT/LC08/C01/T1_SR')
.filterBounds(roi)
.filterDate('2019-05-01', '2019-06-30')
.sort('CLOUD_COVER')
.first());
Map.centerObject(roi,12);
Map.addLayer(image, {bands: ['B4', 'B3', 'B2'],min:0,
max: 3000, gamma:1.5}, 'True colour image');

var kelas =
Bangunan.merge(Air).merge(Sawah).merge(Vegetasi);
print(kelas);

var bands = ['B2', 'B3', 'B4', 'B5', 'B6', 'B7'];


var training = image.select(bands).sampleRegions({
collection: kelas,
properties: ['tuplah'],
scale: 30
});
print(training);

var klasifikasi = ee.Classifier.randomForest().train({


features: training,
classProperty: 'tuplah',
inputProperties: bands
});

//Run the classification

18
seftiawan.sr@ub.ac.id

var classified =
image.select(bands).classify(klasifikasi);

//Display classification
Map.centerObject(roi,12);
Map.addLayer(classified,
{min: 0, max: 3, palette: ['red', 'blue',
'yellow','green']},
'klasifikasi');
2. Tentukan letak ROI. Pada modul ini, ROI berada di Kota Semarang
3. Buatlah sampel untuk penentuan kelas klasifikasi

4. Pada modul ini, ditentukan kelas klasifikasi sebanyak 4 kelas yaitu Bangunan, Air,
Sawah dan Vegetasi. Carilah sampel sebanyak minimal 30 titik untuk masing - masing
kelas,
5. Buka tab Geometry Import, arahkan kursor ke Bangunan, pilih roda gerigi (edit layer
properties) kemudian atur Configure Geometry Import. Ubah import as Geometry
menjadi FeatureCollection. Isi property dengan ‘tuplah’ tanpa tanda petik dan value 0
untuk Bangunan

19
seftiawan.sr@ub.ac.id

6. Ulangi langkah 5 untuk setiap kelas klasifikasi. Value Bangunan adalah 0, Air adalah 1,
Sawah adalah 2 dan Vegetasi adalah 3. Semua property pada setiap kelas klasifikasi
ditulis dengan ‘tuplah’ tanpa tanda petik.
7. Jalankan klasifikasi / klik Run
8. Ubah metode klasifikasi pada perintah berikut:
ee.Classifier.randomForest(), ganti randomForest dengan berbagai metode
klasifikasi lain yang terdapat pada tab Docs

9. Bandingkan hasil setiap metode klasifikasi yang anda coba. Adakah perbedaan?
Dibawah ini adalah contoh hasil klasifikasi randomForest.

20
seftiawan.sr@ub.ac.id

2.2. Uji akurasi hasil klasifikasi multispektral

1. Sub bab ini merupakan kelanjutan dari sub bab 2.1., jangan lakukan clear script,
2. Pengujian akurasi dapat dilakukan dengan membagi dua sampel yang telah kita
buat sebelumnya dengan komposisi 80 dan 20. 80% untuk membangun klasifikasi dan
20% untuk melakukan uji akurasi
3. Salin script berikut
//Membagi ROI menjadi 2 (80% untuk membuat model, 20%
untuk menguji model)
training = training.randomColumn({ seed: 1 });
var training = training.filter(ee.Filter.lt('random',
0.8)); // 80%
var validation = training.filter(ee.Filter.lt('random',
0.2)); // 20%

var trainAccuracy =
klasifikasi.confusionMatrix().accuracy();
print('trainAccuracy', trainAccuracy); // 1.0

var testAccuracy = validation


.classify(klasifikasi)
.errorMatrix('tuplah', 'classification')
.accuracy();
print('testAccuracy', testAccuracy); // 1.0

4. Jalankan script / klik Run


5. Ubah metode klasifikasi dan jalankan ulang script pada langkah 3. Evaluasi perubahan
tingkat akurasi pada setiap metode klasifikasi melalui angka trainAccuracy dan
testAccuracy yang muncul pada tab Console, mengapa demikian?

21
seftiawan.sr@ub.ac.id

2.3. Layout

1. Sub bab ini merupakan kelanjutan dari sub bab 2.2., jangan lakukan clear script,
2. Apabila telah selesai memproses citra, maka kita dapat melakukan layout
3. Salin script dibawah ini untuk dapat melakukan layout
// Tetapkan ukuran dan letak legenda
var legend = ui.Panel({
style: {
position: 'bottom-left',
padding: '8px 15px'
}
});

// Membuat judul
var legendTitle = ui.Label({
value: 'Legenda',
style: {
fontWeight: 'bold',
fontSize: '18px',
margin: '0 0 4px 0',
padding: '0'
}
});

// Menampilkan judul ke panel


legend.add(legendTitle);

// Membuat style
var makeRow = function(color, name) {

// Mewarnai box
var colorBox = ui.Label({
style: {
backgroundColor: '#' + color,

22
seftiawan.sr@ub.ac.id

// Use padding to give the box height and width.


padding: '8px',
margin: '0 0 4px 0'
}
});

// Membuat label
var description = ui.Label({
value: name,
style: {margin: '0 0 4px 6px'}
});

// Mengambalikan panel
return ui.Panel({
widgets: [colorBox, description],
layout: ui.Panel.Layout.Flow('horizontal')
});
};

// Memberi warna
var palette =['ff0000', '0000ff', 'ffff00', '008000'];

// Menamai legenda
var names = ['Bangunan','Air','Sawah','Vegetasi'];

// Menambahkan warna dan nama


for (var i = 0; i < 4; i++) {
legend.add(makeRow(palette[i], names[i]));
}

// Menambahkan legenda ke peta atau dapat juga di print


pada console
Map.add(legend);

23
seftiawan.sr@ub.ac.id

4. Anda dapat mengubah setelan legenda dan warna kemudian lihat perubahan yang
terjadi. Berikut ini adalah contoh hasil klasifikasi beserta layoutnya.

5. Apabila anda telah selesai melakukan semua proses diatas, Save script anda dan
lakukan Clear Script untuk melanjutkan sub bab selanjutnya.

24
seftiawan.sr@ub.ac.id

2.4. Normalized Difference Vegetation Index (NDVI)

1. Cari ‘Banyuwangi’ pada bagian Search Places and Datasets … kemudian klik,
2. Letakkan ROI berupa poin pada Kota Banyuwangi yang telah tampil pada peta, ubah
nama Geometry menjadi Banyuwangi

3. Cari ‘Sentinel 2’ pada bagian Search Places and Datasets … kemudian pilih Sentinel 2
MSI: MultiSpectral Instrument level 1 C, pilih import,

pada bagian Imports, ubah imageCollection menjadi Sent2, kemudian Enter

4. Salin script dibawah ini


// Pilih citra
var image = ee.Image(Sent2

25
seftiawan.sr@ub.ac.id

// Pilih tanggal
.filterDate("2015-07-01", "2017-09-30")

// Pilih tempat sesuai Region of Interest (ROI)


.filterBounds(Banyuwangi)

// Pilih property metadata


.sort("CLOUD_COVERAGE_ASSESSMENT")

// Pilih citra yang paling bersih dari awan


.first());

// Print citra
print("A Sentinel-2 scene:", image);

// Pilih komposit true colour


var trueColour = {
bands: ["B4", "B3", "B2"],
min: 0,
max: 3000
};

// Tampilkan citra true colour


Map.addLayer(image, trueColour, "true-colour
image");

// Pilih komposit false colour


var falseColour = {
bands: ["B8", "B4", "B3"],
min: 0,
max: 3000
};

// Tampilkan citra false colour

26
seftiawan.sr@ub.ac.id

Map.addLayer(image, falseColour, "false-color


composite");

//Hitung NDVI
var nir = image.select('B8'); //definisikan bandnya
var red = image.select('B4'); //definisikan bandnya
var NDVI =
nir.subtract(red).divide(nir.add(red)).rename('NDVI');

// Tampilkan hasil NDVI dari Sentinel


Map.addLayer(NDVI, {min: 0, max: 1}, "NDVI");
Map.centerObject(Banyuwangi,9);

5. Jalankan script / klik Run


6. Aktifkan tab Inspector, klik di sembarang tempat pada citra hasil pemrosesan, lihat dan
evaluasi nilai yang muncul. Pada contoh dibawah ini kursor diletakkan pada Alas
Purwo, Banyuwangi dan nilai NDVI yang muncul sebesar 0,68

7. Lakukan evaluasi hasil nilai NDVI pada beberapa titik. Nilai NDVI akan berkisar
antara -1 hingga +1 dimana mendekati nilai -1 (rona gelap) menunjukkan daerah lahan
terbuka sedangkan mendekati nilai +1 (rona putih / cerah) menandakan area bervegetasi
lebat. Dibawah ini adalah contoh citra hasil pengolahan NDVI (atas) dan citra false
colour komposit 843 (bawah).

27
seftiawan.sr@ub.ac.id

8. Save dan clear script untuk melanjutkan sub bab selanjutnya

28
seftiawan.sr@ub.ac.id

2.5. Normalized Difference Water Index (NDWI)

1. Unggah shp lewat Asset seperti yang telah dijelaskan pada sub bab 1.5. Fungsi ekspor
dan impor pada GEE, pada modul ini, shp yang diunggah adalah batas administrasi
Provinsi Kalimantan Selatan. Anda dapat menggunakan batas administrasi wilayah lain.
2. Setelah shp selesai diunggah, pilih Import into script

3. Ubah nama ‘table’ menjadi ‘kalsel’ pada Imports


4. Salin script dibawah ini
// Tampilkan sentinel2
// Tampilkan shp poligon batas kalsel yang telah
diupload
var sentinel2 = ee.ImageCollection("COPERNICUS/S2"),
kalsel =
ee.FeatureCollection("users/seftiawansr/Kalsel");

// Potong citra dan pilih periode perekaman


// Pilih citra dengan tutupan awan paling minimal
// Membuat mozaik citra
var image_wet = sentinel2
.filterBounds(kalsel)
.filterDate('2018-10-01', '2019-03-
30')
.sort('CLOUDY_PIXEL_PERCENTAGE',
false)
.map(function(image) {

29
seftiawan.sr@ub.ac.id

return
image.addBands(image.metadata('system:time_start'));
})
.mosaic()
.clip(kalsel);

var image_dry = sentinel2.filterDate('2019-04-01',


'2019-09-30')
.filterBounds(kalsel)
.sort('CLOUDY_PIXEL_PERCENTAGE',
false)
.map(function(image) {
return
image.addBands(image.metadata('system:time_start'));
})
.mosaic()
.clip(kalsel);

// Menghitung NDWI
var ndwi_wet = image_wet.normalizedDifference(['B3',
'B8']);
var ndwi_dry = image_dry.normalizedDifference(['B3',
'B8']);

// Tampilkan hasil NDWI


var waterPalette = ['red', 'yellow', 'green',
'blue'];
Map.addLayer(ndwi_wet, {min: -1, max: 0.5, palette:
waterPalette}, '2019 wet season NDWI');
Map.addLayer(ndwi_dry, {min: -1, max: 0.5, palette:
waterPalette}, '2019 dry season NDWI');
Map.centerObject(kalsel, 8);

5. Jalankan script / klik Run

30
seftiawan.sr@ub.ac.id

6. Evaluasi tampilan hasil pemrosesan citra demikian pula nilai statistiknya melalui tab
Console. Adakah perbedaan nilai area yang berair dan tidak berair pada tahun
perekaman yang berbeda? Mengapa demikian? Gambar berikut adalah contoh hasil
pemrosesan NDWI dry season (atas) dan wet season (bawah)

7. Save dan clear script anda

31
seftiawan.sr@ub.ac.id

2.6. Sea Surface Temperature (SST) dan Chlorophyll-a

1. Cari Indonesia pada Search Places and Datasets …, kemudian buat ROI berupa kotak
(draw a rectangle) di atas Negara Indonesia, ubah ‘geometry’ menjadi ‘batas’,
2. Salin script dibawah ini untuk identifikasi SST
var dataset = ee.ImageCollection('NASA/OCEANDATA/MODIS-
Aqua/L3SMI')
.filterDate('2019-01-01', '2019-12-31')
.map(function(dataset){return
dataset.clip(batas)});
var remoteSensingReflectance =
dataset.select(['sst']);
var remoteSensingReflectanceVis = {
min: -2,
max: 40,
palette:['040274', '040281', '0502a3', '0502b8',
'0502ce', '0502e6',
'0602ff', '235cb1', '307ef3', '269db1', '30c8e2',
'32d3ef',
'3be285', '3ff38f', '86e26f', '3ae237', 'b5e22e',
'd6e21f',
'fff705', 'ffd611', 'ffb613', 'ff8b13', 'ff6e08',
'ff500d',
'ff0000', 'de0101', 'c21301', 'a71001', '911003']
};

Map.centerObject(roi, 4);
Map.addLayer(
remoteSensingReflectance, remoteSensingReflectanceVis,
'MODIS SST 2019');

3. Salin script dibawah ini untuk identifikasi Klorofil-a


var dataset =
ee.ImageCollection('NASA/OCEANDATA/MODIS-Aqua/L3SMI')

32
seftiawan.sr@ub.ac.id

.filterDate('2019-01-01', '2019-12-
31')
.map(function(dataset){return
dataset.clip(batas)});
var remoteSensingReflectance =
dataset.select(['chlor_a']);
var remoteSensingReflectanceVis = {
min: 0,
max: 99.99,
palette:['040274', '040281', '0502a3', '0502b8',
'0502ce', '0502e6',
'0602ff', '235cb1', '307ef3', '269db1', '30c8e2',
'32d3ef',
'3be285', '3ff38f', '86e26f', '3ae237', 'b5e22e',
'd6e21f',
'fff705', 'ffd611', 'ffb613', 'ff8b13', 'ff6e08',
'ff500d',
'ff0000', 'de0101', 'c21301', 'a71001', '911003']
};

Map.centerObject(roi, 4);
Map.addLayer(
remoteSensingReflectance,
remoteSensingReflectanceVis,
'MODIS Chlor-a 2019');

4. Jalankan script poin 4 dan poin 5 / klik Run


5. Apabila anda mengamati, kedua script diatas dijalankan dengan menggunakan data
satelit MODIS namun band yang berbeda yaitu chlor-a dan sst,
6. Ganti chlor-a pada var remoteSensingReflectance =
dataset.select(['chlor_a']); dengan nflh dan poc. NFLH adalah
Normalized Fluorescence Line Height, sedangkan POC adalah Particulate Organic
Carbon. Lihat dan evaluasi hasil pemrosesan citra yang anda lakukan. Berikut adalah
contoh hasil identifikasi klorofil-a.

33
seftiawan.sr@ub.ac.id

7. Simpan script anda dan lakukan clear script

34
seftiawan.sr@ub.ac.id

2.7. Salinitas

1. Unggah shp yang mencakup wilayah laut melalui Asset. Pada modul ini, shp
yang diunggah adalah Batas WPP NKRI.
2. Setelah shp selesai diunggah, pilih Import into script
3. Ubah nama ‘table’ menjadi ‘WPP’
4. Salin script dibawah ini untuk identifikasi Salinitas
var dataset =
ee.ImageCollection('HYCOM/sea_temp_salinity')
.filter(ee.Filter.date('2018-08-01',
'2018-08-15'))
.map(function(dataset){return
dataset.clip(WPP)});
var seaWaterSalinity = dataset.select('salinity_4');
var visParams = {
min: -20000.0,
max: 15000.0,
palette: ['000000', '005aff', '43c8c8', 'fff700',
'ff0000'],
};
Map.centerObject(WPP,4);
Map.addLayer(seaWaterSalinity, visParams, 'Sea Water
Salinity');

5. klik Run
6. Script diatas menggunakan citra HYCOM. Citra HYCOM dapat merekam data
temperatur perairan dan salinitas mulai dari kedalaman 0 m - 5000 m. Anda dapat
mengecek dataset HYCOM seperti langkah pada sub bab 1.6.
7. Ubah salinity_4 pada var seaWaterSalinity =
dataset.select('salinity_4'); sesuai band yang dimiliki oleh Hycom dan
lihat hasilnya.

8. Berikut ini adalah contoh hasil pemrosesan script untuk Salinitas

35
seftiawan.sr@ub.ac.id

9. Simpan script dan clear script untuk melanjutkan ke sub bab berikutnya

36
seftiawan.sr@ub.ac.id

2.8. Marikultur Ikan Kerapu

1. Buka tab Assets, unggah shp WPP 713, kemudian Impor dan beri nama WPP_713.
Anda juga dapat mengganti shp tersebut dengan batas lainnya yang mencakup wilayah
laut,
2. Dari “Search Places and Dataset …” cari ETOPO1, kemudian Impor, ubah nama
“Image” menjadi ETOPO1, kemudian tekan Enter,
3. Dari “Search Places and Dataset …” cari Landsat Collection 1 Tier 1 TOA
Reflectance, kemudian Impor, ubah nama “Image” menjadi L8, kemudian tekan Enter
4. Salin script dibawah ini,
var L8filter = L8.filterDate("2018-01-01","2018-12-31")
.filterMetadata("CLOUD_COVER","less_than",10)
.mean();

//Masking dengan menggunakan polygon batas perairan


var datamask = ee.Image.constant(1).clip(WPP_713).mask();

//Masking dengan data Landsat 8 untuk menghilangkan area


yang tidak memiliki nilai dengan melihat salah satu nilai
band
var datamask2 = L8filter.expression('b4>=0?1:0',
{'b4':L8filter.select('B4')}).eq(1);

Map.centerObject(WPP_713);

//masking citra Landsat 8


var L8selection =
L8filter.updateMask(datamask).updateMask(datamask2);

//masking batimetri
var batimetri = ETOPO.select('bedrock')
.updateMask(datamask)
.updateMask(datamask2)
.rename('batimetri');

37
seftiawan.sr@ub.ac.id

//Chla
var Chla = L8selection.expression(
'(0.2818*((Merah/(NIR+SWIR))**3.497))',{
//'((2.41*(NIR/Merah))+0.187)',{
'NIR':L8selection.select('B5'),
'SWIR':L8selection.select('B6'),
'Merah':L8selection.select('B4'),
'Hijau':L8selection.select('B3'),
}
).rename('chlor_a');

//SPL1
var SPL1 = L8selection.expression(
'((BT10-273)+(2.946*((BT10-273)-(BT11-273)))-
0.038)',{
'BT10':L8selection.select('B10'),
'BT11':L8selection.select('B11'),
}).rename('SPL');

//MPT
var MPT = L8selection.expression('8.1429**(23.704*B4)',{
'B4':L8selection.select('B4')
}).rename('MPT');

//harkat batimetri
var harkatbati = batimetri.expression(
'batimetri>-5||batimetri<-35?1'+ //kedalaman <5m
atau >35 bobot 1
': batimetri<=-5&&batimetri>=-15||batimetri<=-
26&&batimetri>=-35?3'+ //kedalaman 5-15m bobot 3
': batimetri<=-15&&batimetri>=-25?5'+
//kedalaman 15-25m bobot 5
': 0',

38
seftiawan.sr@ub.ac.id

{'batimetri':batimetri.select('batimetri')}).rename('harka
tbati')

//harkat klorofil-a
var harkatklorofil = Chla.expression(
'chla<4?1'+ //klorofil <4 bobot 1
': chla>=4&&chla<=10?3'+ //klorofil 4-10 bobot 3
': chla>10?5'+ //klorofil >10 bobot 5
': 0',
{'chla':Chla.select('chlor_a')}
).rename('harkatklorofil')

//harkat suhu permukaan laut


var harkatspl = SPL1.expression(
'spl<25&&spl>35?1'+ //suhu <25C atau >35c bobot
1
': spl>=25&&spl<=27||spl>=31&&spl<=32?3' +
//suhu 25-27C atau 31-32C bobot 3
': spl>=28&&spl<=30?5'+ //suhu 28-30C bobot 5
': 0',
{'spl':SPL1.select('SPL')}
).rename('harkatspl')

//harkat muatan padatan tersuspensi


var harkatmpt = MPT.expression(
'mpt>50?1'+ //padatan tersuspensi >50mg/l bobot
1
': mpt>=26&&mpt<=50?3'+ //padatan tersuspensi
26-50mg/l bobot 3
': mpt<25?5'+ //padatan tersuspensi <25mg/l
bobot 5
': 0', {'mpt':MPT.select('MPT')}

39
seftiawan.sr@ub.ac.id

).rename('harkatmpt')

//pembobotan
var bobot =
harkatbati.multiply(3).add(harkatklorofil.multiply(1)).add
(harkatspl.multiply(2)).add(harkatmpt.multiply(3)).rename(
'bobot')
//bobot batimetri x3, klorofil x1, suhu x2, padatan
tersuspensi x3

//Mengkelaskan hasil pembobotan


var kesesuaian = bobot.expression(
'bobot<=11.25?1'+
': bobot<=22.5?2'+
': bobot<=33.75?3'+
': bobot<=45?4'+
': 0',{
'bobot':bobot.select('bobot')
}
).updateMask(datamask).updateMask(datamask2)

//menentukan simbol warna


var simbol = {"min":1,"max":4,"palette":
["ff2a1f","ffbb23","e6ff1b","19ff0a"]}

//menampilkan peta dengan menggunakan simbol


Map.addLayer(kesesuaian, simbol)

5. Jalankan script / klik Run


6. Kemudian salin kembali script dibawah ini untuk membuat layout pada hasil
pemrosesan,
//Membuat Legenda
//Menentukan Posisi Legenda
var legend = ui.Panel({

40
seftiawan.sr@ub.ac.id

style: {
position: 'bottom-left',
padding: '8px 15px'
}
});

//Membuat judul legenda


var legendTitle = ui.Label({
value: 'Kesesuaian',
style: {
fontWeight: 'bold',
fontSize: '18px',
margin: '0 0 4px 0',
padding: '0'
}
});
legend.add(legendTitle);

// Membuat baris legenda yang berisi kotak warna dan nama


kelas
var makeRow = function(color, name) {

// Membuat kotak simbol


var colorBox = ui.Label({
style: {
backgroundColor: '#' + color,
padding: '8px',
margin: '0 0 4px 0'
}
});

// Membuat nama kelas


var description = ui.Label({
value: name,

41
seftiawan.sr@ub.ac.id

style: {margin: '0 0 4px 6px'}


});

// memposisikan simbol dan nama kelas


return ui.Panel({
widgets: [colorBox, description],
layout: ui.Panel.Layout.Flow('horizontal')
});
};

// Menentukan warna kelas


var palette =['19ff0a','e6ff1b','ffbb23', 'ff2a1f'];

// Menentukan nama kelas


var names = ['Sangat Sesuai','Sesuai','Cukup
Sesuai','Tidak Sesuai'];

// Menambahkan warna dan nama kelas sesuai dengan urutan


for (var i = 0; i < 4; i++) {
legend.add(makeRow(palette[i], names[i]));
}
Map.add(legend);

//Membuat Judul Peta


//Menentukan posisi Judul Peta
var title = ui.Panel({
style: {
position: 'bottom-left',
padding: '8px 15px'
}
});

//Membuat isi Judul Peta


var textTitle = ui.Label({

42
seftiawan.sr@ub.ac.id

value: 'Kesesuaian Budidaya Ikan Kerapu',


style: {
fontWeight: 'bold',
fontSize: '20px',
margin: '0 0 4px 0',
padding: '0'
}
});
title.add(textTitle);
Map.add(title)

7. Berikut hasil yang diperoleh

8. Simpan script dan clear script untuk melanjutkan ke sub bab berikutnya

43
seftiawan.sr@ub.ac.id

2.9. Sentinel 1A untuk Memantau Kapal

1. Buatlah ROI berupa poin di dekat Pelabuhan Tanjung Perak, Surabaya


2. Salin script dibawah ini
// Filter citra VV dari descending track
var collectionVV =
ee.ImageCollection('COPERNICUS/S1_GRD')
.filter(ee.Filter.eq('instrumentMode', 'IW'))
.filter(ee.Filter.listContains('transmitterRecei
verPolarisation', 'VV'))
.filter(ee.Filter.eq('orbitProperties_pass',
'DESCENDING'))
.filterBounds(roi)
.select(['VV']);
print(collectionVV);

// Filter citra VH dari descending track


var collectionVH =
ee.ImageCollection('COPERNICUS/S1_GRD')
.filter(ee.Filter.eq('instrumentMode', 'IW'))
.filter(ee.Filter.listContains('transmitterRecei
verPolarisation', 'VH'))
.filter(ee.Filter.eq('orbitProperties_pass',
'DESCENDING'))
.filterBounds(roi)
.select(['VH']);
print(collectionVH);

// Menuju ROI
Map.centerObject(roi, 13);

var VV = collectionVV.median();

// Tampilkan citra VV

44
seftiawan.sr@ub.ac.id

Map.addLayer(VV, {min: -20, max: -5}, 'VV');

// Stack 3 citra dari 3 periode perekaman


var VV1 = ee.Image(collectionVV.filterDate('2018-01-
01', '2018-04-30').median());
var VV2 = ee.Image(collectionVV.filterDate('2018-05-
01', '2018-08-31').median());
var VV3 = ee.Image(collectionVV.filterDate('2018-09-
01', '2018-12-31').median());

// Tampilkan ke peta
Map.addLayer(VV1.addBands(VV2).addBands(VV3), {min: -
12, max: -7}, 'Season composite');

3. Klik Run
4. Contoh tampilan yang akan dihasilkan

5. Terdapat titik - titik berwarna biru, hijau, merah diatas perairan, itu adalah kapal yang
terekam oleh Sentinel - 1A

45
seftiawan.sr@ub.ac.id

6. Ubah tanggal perekaman sesuai keinginan kalian pada perintah berikut var VV1 =
ee.Image(collectionVV.filterDate('2018-01-01', '2018-04-
30').median());
var VV2 = ee.Image(collectionVV.filterDate('2018-05-
01', '2018-08-31').median());
var VV3 = ee.Image(collectionVV.filterDate('2018-09-
01', '2018-12-31').median());
7. Amati kembali kapal yang terekam, apakah sama dengan tanggal perekaman
sebelumnya? Mengapa demikian?
8. Simpan script dan clear script untuk melanjutkan ke sub bab berikutnya

46
seftiawan.sr@ub.ac.id

2.10. Ocean Colour SMI: MODIS Aqua

1. Unggah WPP 713 ke dalam Import dan beri nama dengan ‘batas’
2. Salin script dibawah ini:
var dataset =
ee.ImageCollection('NASA/OCEANDATA/MODIS-Aqua/L3SMI')
.filterDate('2020-01-01', '2020-05-
30')
.map(function(dataset){return
dataset.clip(batas)});
var remoteSensingReflectance =
dataset.select(['Rrs_645', 'Rrs_555',
'Rrs_443']);
var remoteSensingReflectanceVis = {
min: 0.0,
max: 0.011,
};

Map.centerObject(batas, 4);
Map.addLayer(
remoteSensingReflectance,
remoteSensingReflectanceVis,
'Remote Sensing Reflectance');

3. Klik Run
4. Contoh hasil yang akan ditampilkan

47
seftiawan.sr@ub.ac.id

2.11. Zona Intertidal

1. Ketik Indonesia pada Search places and datasets …


2. Buat sebuah poin ROI diatas Negara Indonesia, beri nama ‘roi’,
3. Salin script dibawah ini,
var dataset =
ee.ImageCollection('UQ/murray/Intertidal/v1_1/global_inter
tidal');

var visualization = {
bands: ['classification'],
min: 0.0,
max: 1.0,
palette: ['0000FF']
};

Map.centerObject(roi,4);

Map.addLayer(dataset, visualization, 'Intertidal


areas');

4. Klik Run,
5. Contoh hasil yang akan ditampilkan

48
seftiawan.sr@ub.ac.id

6. Lakukan perbesaran (zoom) pada beberapa pulau di Indonesia, kalian akan melihat
terdapat warna biru pada pesisir pantai di setiap pulau,
7. Area yang berwarna biru tersebut adalah Zona Intertidal hasil klasifikasi citra Landsat
sejak tahun 1984 - 2017 yang telah diproses dan disimpan dalam dataset GEE. Anda
dapat memanfaatkan dataset ini untuk penelitian dan membandingkannya dengan
kondisi saat ini.
8. Simpan script dan clear script untuk melanjutkan ke sub bab selanjutnya,

49
seftiawan.sr@ub.ac.id

2.12. Mangrove

1. Ketikkan Indonesia pada Search places and datasets …


2. Buat sebuah poin ROI diatas Indonesia dan beri nama ‘roi’,
3. Salin script dibawah ini,
var dataset =
ee.ImageCollection('LANDSAT/MANGROVE_FORESTS');
var mangrovesVis = {
min: 0,
max: 1.0,
palette: ['d40115'],
};
Map.centerObject(roi, 9);
Map.addLayer(dataset, mangrovesVis, 'Mangroves');

4. Klik Run
5. Hasil yang akan ditampilkan seperti ini,

6. Lakukan perbesaran pada beberapa pulau di Indonesia, akan terlihat warna merah di
wilayah pesisir
7. Area berwarna merah tersebut adalah wilayah yang ditumbuhi oleh Mangrove pada
tahun 2000 - 2001 hasil klasifikasi citra Landsat sebanyak 1000 scene dan telah

50
seftiawan.sr@ub.ac.id

disimpan dalam dataset GEE. Anda dapat memanfaatkan dataset ini untuk penelitian
dan membandingkannya dengan kondisi saat ini.
8. Simpan script dan clear script untuk melanjutkan ke sub bab selanjutnya,

51
seftiawan.sr@ub.ac.id

2.13. Global Fishing and Vessel Watch

1. Buka code editor yang baru / clear script


2. Salin script dibawah ini
var dataset =
ee.ImageCollection('GFW/GFF/V1/fishing_hours')
.filter(ee.Filter.date('2016-12-01',
'2017-01-01'));
var trawlers = dataset.select('trawlers');
var trawlersVis = {
min: 0.0,
max: 5.0,
};
Map.setCenter(16.201, 36.316, 7);
Map.addLayer(trawlers.max(), trawlersVis,
'Trawlers');

3. Klik Run
4. Akan muncul hasil seperti ini

5. Atur transparansi layer agar terlihat peta dasarnya,

52
seftiawan.sr@ub.ac.id

6. Ubah area menjadi Indonesia dan ubah var trawlers =


dataset.select('trawlers'); sesuai pilihan band pada dataset Global
Fishing Watch (GFW) di GEE. Anda dapat memanfaatkan dataset ini untuk penelitian
dan membandingkannya dengan kondisi saat ini.
7. Simpan script dan clear script untuk melanjutkan ke sub bab selanjutnya.

53
seftiawan.sr@ub.ac.id

Referensi untuk mendapatkan source code

https://github.com/CoralMapping/gee-mapping-source
https://sites.google.com/ugm.ac.id/gee-machine-learning/home
https://spatialmate.com/earth-engine-pemodelan-kesesuaian-lokasi-budidaya-kerapu/
https://www.geospatialecology.com/
https://www.intertidal.app/home

54
seftiawan.sr@ub.ac.id

03 Latihan Membuat dan Memodifikasi Script


Pada bab 3 anda diminta untuk membuat dan memodifikasi script yang sudah anda
ketahui pada bab 2. Modifikasi script dapat dilakukan seputar lokasi, waktu pemantauan,
perubahan parameter dan lainnya.

Pilihlah 3 topik dari bab 2 dan lakukan modifikasi terhadap hasil pemrosesan citra
tersebut. Deskripsikan hasilnya dan sertakan hasil print screen hasil pemrosesan. Kumpulkan
hasil pekerjaan anda kepada dosen pengampu / asisten. Selamat bekerja!

55

Anda mungkin juga menyukai