Daha önce, Landsat 8 TOA koleksiyonunu ve ilgilenilen alan geometrisini temsil eden içe aktarmalar olan l8 ve point ile aşağıdaki gibi bir işlem yaparak tek tek Landsat sahnelerini nasıl alacağınızı öğrenmiştiniz:
Kod Düzenleyici (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() );
Şimdi Landsat görüntüsünden bir Normalleştirilmiş Fark Bitki Örtüsü İndeksi (NDVI) görüntüsü hesaplamak istediğinizi varsayalım. Bitki örtüsü, elektromanyetik spektrumun yakın kızılötesi (NIR) kısmındaki ışığı yansıtır ve kırmızı kısmındaki ışığı emer (Bitki örtüsünden NIR yansıması hakkında daha fazla bilgi edinin). NDVI, bir pikselde gerçekleşen fotosentetik aktiviteyi kabaca yansıtan tek bir değer oluşturmak için bu bilgiyi kullanır. Hesaplama (NIR - kırmızı) / (NIR + kırmızı) şeklindedir. Bu işlem, 1 ile -1 arasında bir sayı verir. Fotosentetik aktivitesi yüksek olan piksellerin NDVI değeri yüksektir. Earth Engine'de NDVI'yı hesaplamanın bir yolu şöyledir:
Kod Düzenleyici (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');
Sonuç, Şekil 8'e benzer şekilde görünmelidir. NIR ve kırmızı bantları elde etmek için maskeleme ile ilgili önceki bölümde öğrendiğiniz select() işlevini kullandığımızı, ardından Image matematiği ile ilgili bölümde gördüğünüz görüntü matematik operatörlerini kullanarak NDVI'yı hesapladığımızı unutmayın. Son olarak, görüntüyü bir paletle gösterin. Burada,
palette onaltılık dizeler yerine renk adları kullandık. (Ayrıntılar için CSS rengiyle ilgili bu harici referansa bakın.)
Normalleştirilmiş fark işlemi, uzaktan algılamada çok yaygın olarak kullanılır. ee.Image üzerinde, önceki örnekteki kodu basitleştirmek için kullanışlı bir kısayol işlevi vardır:
Kod Düzenleyici (JavaScript)
var ndvi = image.normalizedDifference(['B5', 'B4']).rename('NDVI');
Bir Koleksiyon Üzerinde İşlev Eşleme
Şimdi, bir görüntü koleksiyonundaki her görüntüye NDVI eklemek istediğinizi varsayalım. Earth Engine'da bunu yapmanın yolu, koleksiyon üzerinde bir işlevi map().
map() ile Map nesnesini karıştırmayın. İlki, bir koleksiyon üzerindeki bir yöntemdir ve bir koleksiyondaki her öğeye bir işlev uygulama anlamında paralel hesaplama için map'i kullanır. İşlev, koleksiyondaki her öğeye uygulanacak işlemleri tanımlar. JavaScript eğitiminde basit bir işlev görmüştünüz ancak şimdi Earth Engine işlevini içeren bir işlev oluşturacağız. Örneğin, önceki NDVI kodunu, giriş görüntüsünü NDVI bandıyla döndüren bir işleve kopyalayın:
Kod Düzenleyici (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');
Bu kod, tek bir görüntünün NDVI'sini hesaplamak için o kadar verimli olmayabilir ancak bu işlev, koleksiyondaki her görüntüye bir NDVI bandı eklemek için map() işlevine bağımsız değişken olarak kullanılabilir. İşlevin beklediğiniz gibi davrandığından emin olmak için genellikle önce tek bir görüntü üzerinde test etmek yararlı olur. İşlevi tek bir görüntüde test edip istediğiniz sonucu verdiğini belirledikten sonra koleksiyonla eşleyebilirsiniz:
Kod Düzenleyici (JavaScript)
var withNDVI = l8.map(addNDVI);
Bu işlemin, koleksiyondaki her görüntüye gerçekten bir NDVI bandı eklediğini doğrulamak için withNDVI koleksiyonunu haritaya ekleyebilir ve Denetleyici sekmesiyle rastgele bir konumu sorgulayabilirsiniz. Koleksiyondaki her görüntüde artık NDVI adlı bir bant olduğunu göreceksiniz.
En yeşil piksel bileşiği oluşturma
Her görüntünün bir NDVI bandına sahip olduğu bir görüntü koleksiyonu oluşturduğunuza göre, bileşik oluşturmanın yeni bir yolunu keşfedebiliriz: qualityMosaic(). Ortanca piksel bileşiminde bile Landsat yolları arasında süreksizlikler olduğunu fark etmiş olabilirsiniz. Bunun bir nedeni, bitişik yollardaki görüntülerin farklı zamanlarda (özellikle 8 gün arayla) toplanması sonucunda fenolojide oluşan farklılıklar olabilir. Bunu en aza indirmenin bir yolu, birleştirilmiş görüntüdeki piksel değerlerini kabaca aynı fenolojik aşamadan (ör. bitkilerin en yeşil olduğu, yaprakların çıktığı ve fotosentez yaptığı zaman) ayarlamaya çalışmaktır. Maksimum yeşilliğin maksimum NDVI ile tanımlanmasına izin verirsek her pikselin koleksiyondaki maksimum NDVI pikselini içerdiği bir bileşik oluşturmak için qualityMosaic() kullanabiliriz.
Artık withNDVI koleksiyonunuza eklenen NDVI bandını kullanabilirsiniz:
Kod Düzenleyici (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');
Bu kodun sonucu Şekil 9'daki gibi görünmelidir. Şekil 9'u Şekil 6'da gösterilen ortanca bileşik ile karşılaştırdığınızda en yeşil piksel bileşiğinin gerçekten çok daha yeşil olduğunu görebilirsiniz. Ancak su kütleleri yakından incelendiğinde farklı bir sorun ortaya çıkacaktır. Özellikle su kütleleri artık bulanık görünüyor. Bunun nedeni, qualityMosaic() yönteminin çalışma şeklidir: Her konumda tüm zaman serisi incelenir ve NDVI bandında maksimum değere sahip piksel, bileşik değer olarak ayarlanır. NDVI, bulutların üzerinde suya kıyasla daha yüksek olduğundan su alanları bulutlu pikseller alır. Pikseldeki bitki örtüsü fotosentetik olarak aktif olduğunda NDVI en yüksek seviyede olduğundan bitki örtüsü bulunan alanların tümü yeşil görünür.
Earth Engine'da görüntüleri birleştirmenin ve mozaik oluşturmanın birkaç yolunu gördünüz. Zamana ve yere göre filtrelenmiş resimlerden veya koleksiyondaki tüm resimlerden son değer, medyan veya en yeşil piksel bileşikleri oluşturabilirsiniz. Görüntüler üzerinde hesaplama yapmayı ve bilgi ayıklamayı öğrendiniz. Sonraki sayfada, Earth Engine'den bilgi alma yöntemleri (ör. grafik veya Google Drive klasörünüze aktarılan veri kümesi olarak) ele alınmaktadır.