#BelajarGEE8 —Multispectral Classification

Membuat Klasifikasi Tutupan Lahan (Land Cover) dengan Supervised Classification

Wahyu Ramadhan
8 min readMay 4, 2021

Halo Semuanya,

Tutupan lahan (land cover) menyediakan informasi bagi kita untuk dapat mengetahui dan memahami dinamika fenomena alam yang terjadi pada permukaan bumi dalam skala waktu (temporal) juga ruang (spasial). Contoh paling umum adalah memantau pola pemanfaatan ruang terhadap kondisi lingkungan serta perubahan luasan hutan dari tahun ke tahun.

Land cover menurut UU Nomor 4 Tahun 2011 Tentang Informasi Geospasial adalah :

Garis yang menggambarkan batas penampakan area tutupan diatas permukaan bumi yang terdiri dari bentang alam dan/atau bentang buatan.

Data land cover dapat diperoleh melalui pengolahan citra dengan interpretasi objek menggunakan metode klasifikasi multispektral terbimbing (supervised classification) atau tidak terbimbing (unsupervised classification). Singkatnya proses supervised classification lebih banyak melibatkan manusia dalam prosesnya.

Kenapa saya bilang supervised classification lebih banyak melibatkan manusia? Karena metode ini mengharuskan user untuk membuat training data (titik sampel) untuk “melatih” algoritma klasifikasi agar dapat mengenali dan membedakan objek.

Oke, kali ini saya akan mengolah citra satelit Landsat 8 menjadi data land cover dengan supervised classification.

Tahap Praproses

1. Membuat Region of Interest (ROI)

Buat point (geometry) sebagai Region of Interest (ROI) agar data yang di load hanya menampilkan pada wilayah tersebut. Disini saya membuat wilayah Kabupaten Banyuwangi, Jawa Timur sebagai ROI.

Membuat ROI dengan menggambar point (geometry)

2. Load Landsat 8

Gunakan script berikut untuk load data Landsat 8 di wilayah Kabupaten Banyuwangi.

//Load Landsat 8
var landsat8 = ee.Image(ee.ImageCollection('LANDSAT/LC08/C01/T1_SR')
.filterBounds(banyuwangi)
.filterDate('2020-05-01', '2020-09-30')
.sort('CLOUD_COVER')
.first());
var vis_param = {bands: ['B4', 'B3', 'B2'],min:0, max: 3000, gamma:1.5};
Map.centerObject(banyuwangi, 11);
Map.addLayer(landsat8, vis_param, 'Landsat 8 Kab Banyuwangi');
Memanggil data Landsat 8

3. Buat Training Data (Titik Sampel)

Selanjutnya buat sampel dari klasifikasi multipektral yang akan kita jalankan. Pengambilan sampel dilakukan dengan membuat titik-titik pada citra satelit Landsat 8 berdasarkan tampilan warna yang mewakili objek-objek tertentu di atas permukaan bumi.

Agar sesuai kaidah umum untuk menentukan ukuran sampel oleh Roscoe (1975), jumlah sampel memiliki batas minimal sebanyak 30 titik (semakin banyak saya pikir akan bagus karena berbanding lurus dengan tingkat akurasi). Sedangkan, jumlah kelasnya sebanyak lima dengan rincian antara lain adalah bangunan, badan air (laut), lahan pertanian (sawah), vegetasi dan awan.

Cara membuat titik sampel tidak jauh berbeda seperti menentukan ROI yakni dengan marker tool untuk membuat sebuah titik atau geometry. Pertama saya akan mengambil titik sampel dari kelas bangunan, klik new layer dan secara otomatis marker tool akan aktif, lalu mulai buat titik-titik sampel diatas citra satelit Landsat 8. Seperti yang sudah disebutkan diatas, buat sampel sebanyak 30 titik.

Pembuatan training data (titik sampel)

Perlu diperhatikan, titik sampel harus terdapat pada lokasi yang tepat sesuai dengan tiap kelas. Misalnya ketika kelas klasifikasi adalah bangunan, maka titik sampel pada citra Landsat 8 terletak di bagian yang merepresentasikan bahwa objek tersebut adalah sebuah bangunan. Faktor yang paling mudah untuk membedakan antar objek dalam citra satelit adalah melalui tampilan visual atau warna yang ditampilkan.

Sebenarnya dalam hal penentuan titik sampel seperti ini menurut saya sifatnya subjektif. Sebab kemampuan rekognisi objek setiap orang pasti tidak sama, tapi (mungkin) akan meningkat seiring berjalannya waktu dan pengalaman yang dimiliki.

Oleh karena itu, saya membuat dan mengambil titik sampel sesuai dengan identifikasi visual saya terhadap warna yang ditampilkan Landsat 8. Bangunan berwarna coklat, warna hijau muda adalah sawah sedangkan hijau agak pekat merupakan vegetasi. Kemudian objek yang menurut saya lebih mudah dikenali adalah badan air (laut), karena warna dan letaknya jelas berbeda daripada daratan.

Perbedaan tampilan objek pada citra (menurut pengamatan saya)

Kembali ke pembuatan sampel, setelah selesai membuat titik sampel, buka menu edit layer properties.

Edit layer properties

Ubah nama geometry menjadi kelas klasifikasi yang diinginkan, contohnya bangunan. Pilih opsi FeatureCollection untuk Import as, disini saya beri landcover sebagai Property dari titik sampel. Opsi Value adalah nomor kelas klasifikasi, sistem penomoran ini menggunakan bilangan bulat (integer). Berarti jika kelas klasifikasi yang saya buat berjumlah 5, nomor kelas akan berurutan dari 0, 1, 2, 3 dan 4.

Pengaturan layer properties

Ulangi langkah diatas untuk kelas lainnya, mulai dari pengambilan titik sampel sampai mengatur layer properties dan pastikan urutan nomor kelasnya tidak saling tertukar.

Titik sampel masing-masing kelas

Tahapan Pemrosesan

1. Klasifikasi Objek

Tulis script berikut ini untuk menggabungkan (merge) semua titik sampel dari masing-masing kelas klasifikasi agar menjadi kesatuan FeatureCollection yang sama. Bukan tiap kelas yaitu bangunan, laut, sawah, awan dan vegetasi berdiri sebagai FeatureCollection yang terpisah.

//Klasifikasi Objek
var kelas = bangunan.merge(laut).merge(sawah).merge(awan).merge(vegetasi);
print(kelas); //Menggabungkan Kelas Klasifikasi

Keterangan :

  • var kelas : nama variabel klasifikasi
  • bangunan.merge(laut).merge(sawah).merge(awan).merge(vegetasi) : merupakan nama dari kelas klasifikasi, .merge adalah perintah untuk merge titik sampel setiap kelas
  • print(kelas) : menampilkan hasil merge dalam tab Console, dapat dilihat bahwa semua titik sampel berada dalam satu feature yang sama
Hasil merge dari titik sampel

Berikutnya adalah ekstraksi nilai piksel dari band Landsat 8 menggunakan titik sampel. Mengacu kepada Afrin (2019), saya memasukkan enam band mulai dari band 2 (blue) sampai band 7 (SWIR-2) secara berurutan. Nantinya, setiap titik sampel akan mengambil nilai piksel Landsat 8 dari band yang disebutkan sebelumnya. Hasilnya ditampilkan pada tab Console.

//Ekstraksi Nilai Piksel ke Dalam Titik Sampel
var bands = ['B2', 'B3', 'B4', 'B5', 'B6', 'B7'];
var training = landsat8.select(bands).sampleRegions({
collection: kelas,
properties: ['landcover'],
scale: 30
});
print(training);

Keterangan :

  • var bands = [...] : nama perintah untuk memilih band yang digunakan untuk klasifikasi
  • [‘B2’, ‘B3’, ‘B4’, ‘B5’, ‘B6’, ‘B7’] : daftar band yang dipilih
  • var training : perintah untuk ekstraksi nilai piksel dengan titik sampel sehingga membuat training data
  • landsat8.select(bands). : data citra satelit yang beserta pilihan band
  • sampleRegions({…}) : function untuk mengatur parameter training data
  • collection: kelas : parameter untuk memilih variabel nama klasifikasi objek
  • properties: [‘landcover’] : nama variabel prediktor, nama ini harus sama seperti property yang diinput ketika membuat geometry titik sampel
  • scale: 30 : resolusi spasial Landsat 8 secara default yakni 30 meter
Ekstraksi nilai piksel band 2–7

2. Memilih dan Memasukkan Metode Klasifikasi

GEE menyediakan berbagai macam jenis metode klasifikasi yang dapat dicari pada tab Docs, kita dapat memilih dan mencoba satu per satu metode sesuai dengan kebutuhan.

Daftar metode klasifikasi di tab Docs

Sebagai contoh saya akan menggunakan metode Classification and Regression Trees (CART) dan Minimum Distance dengan menulis script perintah seperti berikut.

//Metode Klasifikasi
var cart = ee.Classifier.smileCart().train({
features: training,
classProperty: 'landcover',
inputProperties: bands
}); //CART
var min_distance = ee.Classifier.minimumDistance().train({
features: training,
classProperty: 'landcover',
inputProperties: bands
}); //Minimum Distance

Keterangan :

  • var cart : nama perintah yang berisi metode klasifikasi
  • ee.Classifier.smileCart dan ee.Classifier.minimumDistance : function metode klasifikasi yang berisi beberapa parameter tertentu. Nama dan parameter bisa saja berbeda tergantung jenis metode klasifikasi
  • features : parameter untuk memilih titik sampel (training data) yang digunakan untuk ekstraksi nilai piksel
  • classProperty : diisi dengan nama properti yang sama ketika membuat geometry titik sampel
  • inputProperties : perintah untuk memilih daftar band
Script klasifikasi di Code Editor

Kemudian lakukan klasifikasi ini kepada citra dengan menggunakan band yang di awal tadi kita pilih untuk diambil nilai pikselnya. Sehingga hasilnya akan menampilkan nilai piksel dalam panjang gelombang yang bervariasi.

//Klasifikasi Citra Menggunakan Band Terpilih
var train_cart = landsat8.select(bands).classify(cart);
var train_min_distance = landsat8.select(bands).classify(min_distance);

Keterangan :

  • landsat8 : data citra satelit yang dipilih
  • .select(…) : variabel seleksi band
  • .classify(…) : diisi dengan variabel metode klasifikasi
Script klasifikasi citra menggunakan band terpilih

Hasil Klasifikasi

Menampilkan Layer

Langkah terakhir adalah menampilkan layer dengan memasukkan script dibawah ini. Karena saya menggunakan metode CART dan Minimum Distance, maka akan ada dua layer yang ditampilkan.

//Menampilkan Layer
Map.addLayer(train_cart,{
min: 0,
max: 4,
palette: [‘red’, ‘blue’, ‘yellow’, ‘white’, ‘green’]
}, ‘Tutupan Lahan Banyuwangi — Metode CART’);
Map.addLayer(train_min_distance,{
min: 0,
max: 4,
palette: [‘red’, ‘blue’, ‘yellow’, ‘white’, ‘green’]
}, ‘Tutupan Lahan Banyuwangi — Metode Minimum Distance’);
Running script klasifikasi multispektral

Kesimpulan

Setelah script di eksekusi, tutupan lahan dari metode Minimum Distance dan CART segera ditampilkan pada peta. Hasil dari setiap metode langsung dapat dibandingkan secara kasat mata. Menurut saya metode CART lebih banyak mendeteksi bangunan (warna merah), sedangkan lahan pertanian atau sawah (warna kuning) banyak ditunjukkan oleh metode Minimum Distance. Bayangan yang disebabkan oleh awan malah terdeteksi sebagai laut (warna biru) di Minimum Distance, namun metode CART mengenali bayangan awan sebagai bangunan (warna merah).

Tampilan tutupan lahan menggunakan metode Minimum Distance (kiri) dan CART (kanan)

Kedua metode yang saya coba diatas memang memiliki kelebihan dan kekurangan dalam melakukan klasifikasi tutupan lahan. Selain itu, bisa jadi penambahan jumlah titik sampel maupun kelas klasifikasi seperti lahan kosong, perairan darat (sungai, danau) serta permukiman akan mempengaruhi hasil yang ditampilkan pada peta. Mungkin juga ada metode beserta parameter lain yang lebih baik dan dapat diimplementasikan.

Kalian dapat menyalin script dibawah sebagai latihan, atau bisa kunjungi link ini untuk melihat langsung dalam Code Editor.

Script klasifikasi multispektral

Terdapat cara lain untuk membandingkan hasil antar metode klasifikasi selain subjektif melalui tampilan visual saja yaitu dengan uji akurasi. Melalui hal tersebut kita dapat menentukan nilai akurasi dari suatu metode sudah sebaik apa dan sejauh mana hasilnya sesuai dengan keinginan kita.

Sampai Jumpa…

Referensi :

  • Achsan, A.C., 2017. Pemanfaatan Citra Landsat Untuk Klasifikasi Tutupan Lahan Lanskap Perkotaan Kota Palu. J. Arsit. Lansek. 58. https://doi.org/10.24843/JAL.2017.v03.i01.p07
  • Afrin, S., Gupta, A., Farjad, B., Ahmed, M., Achari, G., Hassan, Q.K., 2019. Development of Land-Use/Land-Cover Maps Using Landsat-8 and MODIS Data, and Their Integration for Hydro-Ecological Applications. Sensors 19, 4891. https://doi.org/10.3390/s19224891
  • Henriques, A.P.M., Dória Neto, A.D., Amaral, R.F., 2010. Classification of multispectral images in coral environments using a hybrid of classifier ensembles. Neurocomputing 73, 1256–1264. https://doi.org/10.1016/j.neucom.2010.01.003
  • Indonesia.2011. Undang-Undang Nomor 4 Tahun 2011 Tentang Informasi Geospasial. Lembaran Negara RI Tahun 2011, Nomor 4. Sekretariat Negara. Jakarta
  • Killeen, P.G., Mwenifumbo, C.J., Ford, K.L., 2015. Tools and Techniques: Radiometric Methods, in: Treatise on Geophysics. Elsevier, pp. 447–524. https://doi.org/10.1016/B978-0-444-53802-4.00209-8
  • Roscoe, J.T. 1975. Fundamentals Research Statistics For Behavioural Sciences. Performance Journal, 19(1), Pp 43–50 (Spring)
  • SNI 7645–1:2014, Klasifikasi Penutup Lahan — Bagian 1: Skala Kecil dan Menengah
  • Supervised Classification | Google Earth Engine | Google Developers

--

--

Wahyu Ramadhan
Wahyu Ramadhan

Written by Wahyu Ramadhan

Mapping my way through the GIScience universe. Join me on this journey!

Responses (1)