Resim Koleksiyonları

Görüntü koleksiyonu, bir Earth Engine görüntüleri grubunu ifade eder. Örneğin, tüm Landsat 8 görüntülerinin koleksiyonu bir ee.ImageCollection nesnesidir. Üzerinde çalıştığınız SRTM görüntüsü gibi görüntü koleksiyonlarının da bir kimliği vardır. Tek görüntülerde olduğu gibi, Kod Düzenleyici'den Earth Engine Data Catalog'unda arama yaparak ve veri kümesinin ayrıntılar sayfasına bakarak bir görüntü koleksiyonunun kimliğini bulabilirsiniz. Örneğin, "landsat 8 toa" araması yapın ve ilk sonucu tıklayın. Bu sonuç, USGS Landsat 8 Collection 1 Tier 1 TOA Reflectance veri kümesine karşılık gelir. İçe aktar düğmesini kullanarak bu veri kümesini içe aktarın ve l8 olarak yeniden adlandırın ya da kimliği görüntü koleksiyonu oluşturucuya kopyalayın:

Kod Düzenleyici (JavaScript)

var l8 = ee.ImageCollection('LANDSAT/LC08/C02/T1_TOA');

Resim koleksiyonlarını filtreleme

Bu koleksiyonun, Dünya'nın her yerinden toplanan her Landsat 8 sahnesini temsil ettiğini belirtmekte fayda var. Algoritmaları test etmek için genellikle tek bir görüntüyü veya bir görüntü alt kümesini ayıklamak yararlı olur. Koleksiyonu zamana veya alana göre sınırlamak için filtreleme yapmanız gerekir. Örneğin, koleksiyonu belirli bir konumu kapsayan resimlere göre filtrelemek için önce geometri çizim araçlarını kullanarak ilgi alanınızı bir nokta (veya çizgi ya da poligon) ile tanımlayın. İlgilendiğiniz alana gidin, fareyle Geometri İçe Aktarmaları'nın üzerine gelin (tanımlanmış bir veya daha fazla geometriniz varsa) ve +yeni katman'ı tıklayın (içe aktarma işleminiz yoksa sonraki adıma geçin). Nokta çizim aracını () alın ve ilgilendiğiniz alanda bir nokta oluşturun. İçe aktarma işlemini point olarak adlandırın. Şimdi, l8 koleksiyonunu filtreleyerek yalnızca noktayla kesişen görüntüleri alın, ardından koleksiyonu yalnızca 2015'te alınan görüntülerle sınırlamak için ikinci bir filtre ekleyin:

Kod Düzenleyici (JavaScript)

var spatialFiltered = l8.filterBounds(point);
print('spatialFiltered', spatialFiltered);

var temporalFiltered = spatialFiltered.filterDate('2015-01-01', '2015-12-31');
print('temporalFiltered', temporalFiltered);

Burada filterBounds() ve filterDate(), resim koleksiyonlarında daha genel olan filter() yönteminin kısayol yöntemleridir. Bu yöntem, bağımsız değişken olarak ee.Filter() alır. Bu yöntemler hakkında daha fazla bilgi edinmek için Kod Düzenleyici'nin Docs (Dokümanlar) sekmesini inceleyin. filterBounds() işlevinin bağımsız değişkeni, dijitalleştirdiğiniz noktadır. filterDate() işlevinin bağımsız değişkenleri ise dize olarak ifade edilen iki tarihtir.

Filtrelenmiş koleksiyonları print(). Tek seferde 5.000'den fazla öğe yazdıramazsınız. Bu nedenle, örneğin l8 koleksiyonunun tamamını yazdıramazsınız. print() yöntemini çalıştırdıktan sonra konsolda yazdırılan koleksiyonları inceleyebilirsiniz. Zippy'yi () kullanarak ImageCollection öğesini genişlettiğinizde ve ardından features listesini genişlettiğinizde, her biri genişletilip incelenebilen bir resim listesi görürsünüz. Bu, tek bir resmin kimliğini bulmanın bir yoludur. Analiz için tek tek görüntüleri almanın daha programatik bir yolu da koleksiyonu sıralayarak en yeni, en eski veya belirli bir meta veri özelliğine göre en uygun görüntüyü elde etmektir. Örneğin, yazdırılan resim koleksiyonlarındaki resim nesnelerini inceleyerek CLOUD_COVER adlı bir meta veri özelliği görmüş olabilirsiniz. İlgilendiğiniz bölgede 2015'teki en az bulutlu görüntüyü elde etmek için bu özelliği kullanabilirsiniz:

Kod Düzenleyici (JavaScript)

// This will sort from least to most cloudy.
var sorted = temporalFiltered.sort('CLOUD_COVER');

// Get the first (least cloudy) image.
var scene = sorted.first();

Artık resmi görüntülemeye hazırsınız.

Konu dışı: RGB resimleri görüntüleme

Haritaya çok bantlı bir görüntü eklendiğinde Earth Engine, görüntünün ilk üç bandını seçer ve bunları varsayılan olarak kırmızı, yeşil ve mavi olarak gösterir. Bu bantları, daha önce açıklandığı gibi veri türüne göre genişletir. Genellikle bu yeterli olmaz. Örneğin, Landsat görüntüsünü (önceki örnekte scene) haritaya eklerseniz sonuç tatmin edici olmaz:

Kod Düzenleyici (JavaScript)

Map.centerObject(scene, 9);
Map.addLayer(scene, {}, 'default RGB');

İlk olarak, haritanın 9 yakınlaştırma ölçeğinde resmin ortasına yerleştirildiğini unutmayın. Ardından resim, visParams parametresi için boş bir nesneyle ({}) gösterilir (ayrıntılar için Map.addLayer() belgelerine bakın). Sonuç olarak görüntü, varsayılan görselleştirmeyle gösterilir: İlk üç bant sırasıyla R, G, B ile eşlenir ve bantlar float veri türü olduğundan [0, 1] aralığına genişletilir. Bu, kıyı aerosol bandının ("B1") kırmızı, mavi bandın ("B2") yeşil ve yeşil bandın ("B3") mavi olarak oluşturulduğu anlamına gelir. Görüntüyü gerçek renkli bir bileşik olarak oluşturmak için Earth Engine'e R, G ve B için sırasıyla Landsat 8 bantları "B4", "B3" ve "B2"yi kullanmasını söylemeniz gerekir. visParams nesnesinin bands özelliğini kullanarak hangi bantların kullanılacağını belirtin. Bu referanstan Landsat bantları hakkında daha fazla bilgi edinebilirsiniz.

Ayrıca, tipik Dünya yüzeyi hedeflerinden yansımayı göstermeye uygun min ve max değerleri sağlamanız gerekir. Listeler her bant için farklı değerler belirtmek amacıyla kullanılabilse de burada 0.3 değerini max olarak belirtmek ve min parametresi için varsayılan sıfır değerini kullanmak yeterlidir. Görselleştirme parametrelerini tek bir nesnede birleştirme ve görüntüleme:

Kod Düzenleyici (JavaScript)

var visParams = {bands: ['B4', 'B3', 'B2'], max: 0.3};
Map.addLayer(scene, visParams, 'true-color composite');

Sonuç, Şekil 5'e benzer şekilde görünmelidir. Bu kodun, görselleştirme parametreleri nesnesini gelecekte kullanmak üzere bir değişkene atadığını unutmayın. Kısa süre içinde göreceğiniz gibi, bu nesne görüntü koleksiyonlarını görselleştirirken işinize yarayacak.

Tutorial_api_05_true_color.png
Şekil 5. Landsat 8 TOA yansıma görüntüsü, gerçek renkli bir bileşik olarak [0, 0,3] aralığına genişletilmiştir.

Farklı bantları görselleştirmeyi deneyin. Sık kullanılan bir diğer kombinasyon ise "B5", "B4" ve "B3"tür. Bu kombinasyona yanlış renkli kompozit denir. Diğer ilginç yanlış renkli kompozitler burada açıklanmıştır.

Earth Engine, büyük ölçekli analizler yapmak için tasarlandığından yalnızca bir sahneyle çalışmak zorunda değilsiniz. Şimdi bir koleksiyonun tamamını RGB bileşimi olarak görüntüleme zamanı.

Resim koleksiyonları gösteriliyor

Haritaya görüntü koleksiyonu eklemek, haritaya görüntü eklemeye benzer. Örneğin, l8 koleksiyonundaki 2016 resimlerini ve daha önce tanımlanan visParams nesnesini kullanarak,

Kod Düzenleyici (JavaScript)

var l8 = ee.ImageCollection('LANDSAT/LC08/C02/T1_TOA');
var landsat2016 = l8.filterDate('2016-01-01', '2016-12-31');
Map.addLayer(landsat2016, visParams, 'l8 collection');

Artık uzaklaştırma yaparak Landsat görüntülerinin toplandığı (ör. kara üzerinde) kesintisiz bir mozaik görebilirsiniz. Ayrıca, Inspector (Denetleyici) sekmesini kullanıp resmi tıkladığınızda, denetleyicinin Pixels (Pikseller) bölümünde piksel değerlerinin bir listesini (veya bir grafik) ve Objects (Nesneler) bölümünde resim nesnelerinin bir listesini görürsünüz.

Yeterince uzaklaştırdıysanız mozaikte bazı bulutlar fark etmişsinizdir. Haritaya bir ImageCollection eklediğinizde bu, son değer bileşimi olarak gösterilir. Yani yalnızca en son pikseller gösterilir (koleksiyonda mosaic() çağrısı yapmak gibi). Bu nedenle, farklı zamanlarda edinilen yollar arasında süreksizlikler görebilirsiniz. Birçok alanın bulutlu görünmesinin nedeni de budur. Sonraki sayfada, can sıkıcı bulutlardan kurtulmak için görüntülerin birleştirilme şeklini nasıl değiştireceğinizi öğreneceksiniz.