Sebelumnya, Anda telah mempelajari cara mendapatkan scene Landsat individual dengan melakukan hal seperti ini,
dengan l8 dan point adalah impor yang mewakili koleksi TOA Landsat 8
dan geometri area minat:
Editor Kode (JavaScript)
// Define a point of interest. Use the UI Drawing Tools to import a point // geometry and name it "point" or set the point coordinates with the // ee.Geometry.Point() function as demonstrated here. var point = ee.Geometry.Point([-122.292, 37.9018]); // Import the Landsat 8 TOA image collection. var l8 = ee.ImageCollection('LANDSAT/LC08/C02/T1_TOA'); // Get the least cloudy image in 2015. var image = ee.Image( l8.filterBounds(point) .filterDate('2015-01-01', '2015-12-31') .sort('CLOUD_COVER') .first() );
Sekarang, anggaplah Anda ingin menghitung gambar Normalized Difference Vegetation Index (NDVI) dari gambar Landsat. Vegetasi memantulkan cahaya di bagian inframerah dekat (NIR) dari spektrum elektromagnetik dan menyerap cahaya di bagian merah (Pelajari lebih lanjut pantulan NIR dari vegetasi). NDVI menggunakan ini untuk membuat nilai tunggal yang kira-kira mencerminkan aktivitas fotosintesis yang terjadi pada piksel. Penghitungannya adalah (NIR - merah) / (NIR + merah). Hasilnya adalah angka antara 1 dan -1, dengan piksel yang memiliki aktivitas fotosintesis tinggi memiliki NDVI yang tinggi. Berikut adalah salah satu cara untuk menghitung NDVI di Earth Engine:
Editor Kode (JavaScript)
// Compute the Normalized Difference Vegetation Index (NDVI). var nir = image.select('B5'); var red = image.select('B4'); var ndvi = nir.subtract(red).divide(nir.add(red)).rename('NDVI'); // Display the result. Map.centerObject(image, 9); var ndviParams = {min: -1, max: 1, palette: ['blue', 'white', 'green']}; Map.addLayer(ndvi, ndviParams, 'NDVI image');
Hasilnya akan terlihat seperti Gambar 8. Perhatikan bahwa kami menggunakan fungsi select()
yang Anda pelajari di bagian sebelumnya tentang
masking untuk mendapatkan band NIR dan merah, lalu menghitung NDVI menggunakan operator matematika
gambar yang juga telah Anda lihat sebelumnya di
bagian matematika Image. Terakhir, tampilkan gambar dengan palet. Di sini,
kami menggunakan nama warna, bukan string hex dalam palet. (Lihat
referensi eksternal
tentang warna CSS ini untuk mengetahui detailnya.)
Operasi perbedaan yang dinormalisasi sangat umum dalam penginderaan jauh, ada
fungsi pintasan pada
ee.Image yang berguna untuk menyederhanakan kode dalam contoh sebelumnya:
Editor Kode (JavaScript)
var ndvi = image.normalizedDifference(['B5', 'B4']).rename('NDVI');
Memetakan Fungsi pada Koleksi
Sekarang, misalkan Anda ingin menambahkan NDVI ke setiap gambar dalam koleksi gambar. Cara melakukannya di Earth Engine adalah dengan map() fungsi pada koleksi.
Jangan salah mengira map() sebagai objek Map. Yang pertama adalah metode
pada koleksi, dan menggunakan map dalam
pengertian komputasi paralel
untuk menerapkan fungsi ke setiap elemen dalam koleksi. Fungsi ini menentukan operasi yang akan diterapkan ke setiap elemen dalam koleksi. Anda telah melihat
fungsi sederhana dalam tutorial JavaScript, tetapi
sekarang kita akan membuat fungsi yang menyertakan fungsi Earth Engine. Misalnya,
salin kode NDVI sebelumnya ke dalam fungsi yang menampilkan gambar input dengan band NDVI:
Editor Kode (JavaScript)
var addNDVI = function(image) { var ndvi = image.normalizedDifference(['B5', 'B4']).rename('NDVI'); return image.addBands(ndvi); }; // Test the addNDVI function on a single image. var ndvi = addNDVI(image).select('NDVI');
Kode ini mungkin tidak seefisien itu untuk menghitung NDVI untuk satu gambar, tetapi fungsi ini dapat digunakan sebagai argumen untuk map() guna menambahkan band NDVI ke setiap gambar dalam koleksi. Sering kali ada baiknya menguji fungsi terlebih dahulu pada satu gambar, untuk memastikan fungsi tersebut berperilaku seperti yang Anda harapkan. Setelah menguji fungsi pada setiap gambar dan menentukan bahwa fungsi tersebut melakukan apa yang Anda inginkan, Anda dapat memetakannya ke seluruh koleksi:
Editor Kode (JavaScript)
var withNDVI = l8.map(addNDVI);
Untuk memverifikasi bahwa tindakan ini memang menempatkan band NDVI di setiap gambar dalam koleksi ini,
Anda dapat menambahkan koleksi withNDVI ke peta dan mengkueri lokasi acak
dengan tab Inspector. Anda akan melihat bahwa setiap gambar dalam
koleksi kini memiliki band yang disebut NDVI.
Membuat komposit piksel paling hijau
Setelah Anda membuat koleksi gambar yang setiap gambarnya memiliki band NDVI, kita dapat
mengeksplorasi cara baru untuk membuat komposit: qualityMosaic(). Anda mungkin telah melihat
diskontinuitas antara jalur Landsat, bahkan dalam komposit piksel median. Salah satu alasannya mungkin karena perbedaan fenologi akibat gambar di jalur yang berdekatan dikumpulkan pada waktu yang berbeda (khususnya, selisih 8 hari). Salah satu cara untuk
meminimalkan hal ini adalah dengan mencoba menetapkan nilai piksel dalam komposit dari tahap fenologis yang kurang lebih sama, misalnya waktu kehijauan maksimum tanaman (saat daun
tumbuh dan aktif secara fotosintesis). Jika kita membiarkan kehijauan maksimum ditentukan oleh NDVI maksimum, kita dapat menggunakan qualityMosaic() untuk membuat komposit yang setiap pikselnya berisi piksel NDVI maksimum dari koleksi.
Sekarang Anda dapat menggunakan band NDVI yang ditambahkan dalam koleksi withNDVI:
Editor Kode (JavaScript)
// Make a "greenest" pixel composite. var greenest = withNDVI.qualityMosaic('NDVI'); // Display the result. var visParams = {bands: ['B4', 'B3', 'B2'], max: 0.3}; Map.addLayer(greenest, visParams, 'Greenest pixel composite');
Hasil kode ini akan terlihat seperti Gambar 9. Dengan membandingkan Gambar 9 dengan
komposit median yang ditampilkan di Gambar 6,
perhatikan bahwa komposit piksel paling hijau memang jauh lebih hijau. Namun, pemeriksaan
ketat terhadap badan air akan memperjelas masalah yang berbeda. Secara khusus,
perairan kini tampak keruh. Hal ini disebabkan oleh cara kerja metode qualityMosaic(): di setiap lokasi, seluruh deret waktu diperiksa dan piksel dengan nilai maksimum dalam band NDVI ditetapkan sebagai nilai komposit. Karena NDVI di atas awan lebih tinggi daripada di atas air, area air mendapatkan piksel berawan, sedangkan area vegetasi semuanya tampak hijau karena NDVI paling tinggi saat vegetasi dalam piksel aktif secara fotosintesis.
Sekarang Anda telah melihat beberapa cara untuk membuat komposit dan mosaik gambar di Earth Engine. Anda dapat membuat komposit nilai terbaru, median, atau piksel terhijau dari gambar yang difilter menurut waktu dan tempat atau semua gambar dalam koleksi. Anda telah mempelajari cara melakukan komputasi pada citra dan mengekstrak informasi. Halaman berikutnya membahas cara mendapatkan informasi dari Earth Engine, misalnya sebagai diagram atau set data yang diekspor ke folder Google Drive Anda.