Grafikleri ve Resimleri Dışa Aktarma

Earth Engine güçlü bir analiz aracıdır ancak grafikleri, resimleri, haritaları vb. raporlara veya yayınlara yerleştirmek için analiz sonuçlarınızı dışa aktarmanız gerekebilir. Bu bölümde, diğer yazılımlarda dışa aktarılıp görüntülenebilen grafikler ve resimler oluşturmayı öğreneceksiniz. Önceki bölümde, bir koleksiyondaki her görüntüye NDVI bandı eklemek için aşağıdaki gibi bir kod kullandığınızı hatırlayın. Burada l8 değişkeni, Landsat 8 TOA yansıtma koleksiyonunu referans alır:

Kod Düzenleyici (JavaScript)

// Import the Landsat 8 TOA image collection.
var l8 = ee.ImageCollection('LANDSAT/LC08/C02/T1_TOA');

// Map a function over the Landsat 8 TOA collection to add an NDVI band.
var withNDVI = l8.map(function(image) {
  var ndvi = image.normalizedDifference(['B5', 'B4']).rename('NDVI');
  return image.addBands(ndvi);
});

Liste zirvesi

Belirli bir konumda zaman içinde NDVI grafiği istediğinizi varsayalım. Bu tür bir grafik oluşturmak için ilk adım, ilgilenilen bir konumu seçmektir. Nokta çizme aracını () kullanarak bir nokta oluşturun ve ilgi alanınızda tek bir nokta geometrisi oluşturun. (Daha önce içe aktarma işlemleriniz varsa Geometri İçe Aktarma İşlemleri'nin üzerine gelin ve önce + yeni katman'ı tıklayın). Noktayı tarım arazisi, yaprak döken orman, yıllık çayır veya yıllık döngüsü olan başka bir arazi örtüsü alanında bulun. İçe aktarma işlemine ad verin roi. (Geometrileri programatik olarak oluşturma hakkında bilgi için bu sayfaya bakın).

Şimdi de roi noktasını kullanarak bu noktanın altındaki pikselde zaman içinde NDVI grafiği oluşturalım. Earth Engine'de grafik oluşturmak için ui.Chart paketini kullanabilirsiniz. (Earth Engine'de grafik oluşturma hakkında daha fazla bilgi edinin). Özellikle zaman içinde bir grafik oluşturmak için ui.Chart.image.series() yöntemini kullanabilirsiniz:

Kod Düzenleyici (JavaScript)

// Create a chart.
var chart = ui.Chart.image.series({
  imageCollection: withNDVI.select('NDVI'),
  region: roi,
  reducer: ee.Reducer.first(),
  scale: 30
}).setOptions({title: 'NDVI over time'});

// Display the chart in the console.
print(chart);

roi geometrisi için tarım alanında bir nokta seçtik. Bu seçim, Şekil 10'daki gibi bir grafikle sonuçlandı. Grafik oluşturucuya iletilen parametrelerin, reduceRegion() gibi bir küçültücü ve ölçek içerdiğini unutmayın. Bölge olarak sağladığımız nokta yalnızca bir pikselle kesişebileceğinden "ilk" küçültücüyü kullanmak yeterlidir. Daha büyük bir bölgeniz varsa piksellerin nasıl toplanacağını belirten bir "ortalama" veya başka bir küçültücü kullanmanız gerekir. Ayrıca, bir grafiği görselleştirmek için yazdırmanız yeterlidir.

Tutorial_api_10_ndvi_chart.png
Şekil 10. Bir nokta geometrisinde zaman içinde Landsat NDVI grafiği.

Konu dışı: Landsat için basit bulut maskeleme

Bu grafikle ilgili olarak fark etmiş olabileceğiniz bir nokta, noktadaki NDVI değerlerinin zaman serisinin biraz gürültülü görünmesidir. Bu durum büyük olasılıkla bulutlardan kaynaklanmaktadır. Bu etkiyi azaltmak için Earth Engine, termal bant içeren Landsat sensörleri için bir bulut maskeleme algoritması içerir: ee.Algorithms.Landsat.simpleCloudScore(). Giriş olarak Landsat TOA yansıtma görüntüsünü alır ve cloud adlı bir bant ekler. Bu bant, pikseldeki bulutluluk durumunun sıfırdan 100'e kadar olan bir indeksidir (sırasıyla en az bulutlu olandan en çok bulutlu olana). Koleksiyonda eşlediğiniz işlevi değiştirerek grafiği biraz temizlemek için bulut dizininde rastgele bir eşik (20) kullanabilirsiniz:

Kod Düzenleyici (JavaScript)

var cloudlessNDVI = l8.map(function(image) {
  // Get a cloud score in [0, 100].
  var cloud = ee.Algorithms.Landsat.simpleCloudScore(image).select('cloud');

  // Create a mask of cloudy pixels from an arbitrary threshold.
  var mask = cloud.lte(20);

  // Compute NDVI.
  var ndvi = image.normalizedDifference(['B5', 'B4']).rename('NDVI');

  // Return the masked image with an NDVI band.
  return image.addBands(ndvi).updateMask(mask);
});

print(ui.Chart.image.series({
  imageCollection: cloudlessNDVI.select('NDVI'),
  region: roi,
  reducer: ee.Reducer.first(),
  scale: 30
}).setOptions({title: 'Cloud-masked NDVI over time'}));

Bulut maskeli sonuç Şekil 11'de gösterilmektedir. Zaman serisinin biraz daha düzgün göründüğünü ancak bulutlardan etkilenen pikseller içerebileceğini unutmayın. Bulut dizinindeki eşiği ayarlayın ve bu eşiğin sonuçlarınızı nasıl etkileyebileceğini öğrenmek için grafikteki zaman serisini inceleyin.

Tutorial_api_11_cloudless_chart.png
Şekil 11. Bir nokta geometrisinde zaman içinde bulut maskeli NDVI grafiği.

Resimleri dışa aktarma

Earth Engine tarafından hesaplanan verilerin grafiğini dışa aktarmanın bir yolunu gördünüz ancak tüm görüntüleri dışa aktarmak için ne yapmanız gerekir? Örneğin, önceki bölümde açıklandığı gibi en yeşil piksellerden oluşan bir bileşik oluşturduğunuzu varsayalım: bölümde açıklandığı gibi:

Kod Düzenleyici (JavaScript)

var greenest = cloudlessNDVI.qualityMosaic('NDVI');

Bu kodun daha önce yaptığınızdan tek farkı, artık bulut maskeli koleksiyonu kullanıyor olmamızdır. Export paketini kullanarak bu verilerin bir alt kümesini (bölgeye göre tanımlanır) dışa aktarabilirsiniz. (Earth Engine'den raster ve vektör verilerini dışa aktarma hakkında daha fazla bilgi edinin.) Örneğin, diğer dokümanlara kolayca yerleştirilebilecek bir resmi dışa aktarmak için daha önce yaptığınız gibi bir görselleştirme resmi oluşturup Google Drive klasörünüze aktaralım:

Kod Düzenleyici (JavaScript)

// Create a 3-band, 8-bit, color-IR composite to export.
var visualization = greenest.visualize({
  bands: ['B5', 'B4', 'B3'],
  max: 0.4
});

// Create a task that you can launch from the Tasks tab.
Export.image.toDrive({
  image: visualization,
  description: 'Greenest_pixel_composite',
  scale: 30
});

Bu kodu çalıştırdığınızda Görevler sekmesinde yeni bir görev oluşturulduğunu unutmayın. Dışa aktarma yapılandırma iletişim kutusunu başlatmak için Görevler sekmesinde ÇALIŞTIR düğmesini tıklayın. Görevi yapılandırdıktan sonra dışa aktarma işlemini başlatmak için iletişim kutusundaki Çalıştır düğmesini tıklayın. Ancak bunu yapmadan önce şu uyarıyı dikkate alın:

region argümanı olmadan dışa aktarırken dikkatli olmanızın nedeni, scale için nispeten küçük bir değer ayarlarsanız ve Harita büyük bir alan için uzaklaştırılırsa Drive klasörünüze çok büyük bir görüntü aktarmanızdır. Daha fazla bilgi ve olası yapılandırma parametrelerinin listesi için Export.image.toDrive() belgelerine Belgeler sekmesinden bakın.

Earth Engine API'ye giriş konulu bu makalenin sonuna geldik. Artık en yaygın Earth Engine işlevlerinin çoğunu gördünüz ve daha karmaşık analizlere güvenle geçebilirsiniz. Dokümanları okuduğunuzdan ve diğer sorularınızın yanıtlarını bulmak için forumu aradığınızdan emin olun. Keyifli kodlamalar!