Ringkasan statistik atas wilayah BESAR di Google Earth Engine

Aug 18 2020

Saya bergulat dengan masalah dalam mengurangi nilai NDVI untuk Amerika Selatan. Saya tertarik untuk mengetahui apa maksud NDVI untuk benua ini (nilai tunggal), tanpa harus kehilangan resolusi dengan meningkatkan skala piksel saya ke angka yang sangat besar. Pikiran saya mencoba untuk menempatkan beberapa jenis grid yang dapat membuat wilayah yang lebih kecil dan kemudian membuat kamus dan mengambil arti dari grid tersebut. Saya tidak yakin apakah logika saya benar-benar sehat di sini, tetapi saya berharap saya berada di jalur yang baik. Akankah GEE dapat melakukan ini, dan jika demikian, adakah cara untuk membuat fungsi untuk menyederhanakan tugas ini?

Kode ini tidak berfungsi karena alasan yang jelas ... waktu sistem habis dan batas memori.

var sam_mean = fit_year_ndvi.clip(sam).reduceRegion({
  reducer: ee.Reducer.mean(),
  geometry: sam,
  scale: 1000,
  maxPixels: 1e12
});

Ini link saya: https://code.earthengine.google.com/b8486d4ef347cde7555614254b143ec7

Ini tautan aset saya: https://code.earthengine.google.com/?asset=users/anna_odell/continents

Jawaban

1 KevinReid Aug 19 2020 at 03:05

Pikiran saya mencoba untuk menempatkan beberapa jenis grid yang dapat membuat wilayah yang lebih kecil dan kemudian membuat kamus dan mengambil arti dari grid tersebut.

Ini tidak perlu - Earth Engine sudah akan membagi reduceRegionoperasi Anda untuk menghitungnya secara efisien. Namun, Anda mungkin membutuhkan lebih banyak waktu untuk menyelesaikannya. Solusi untuk ini adalah menjalankan operasi sebagai tugas batch (ekspor). Jika hasil akhir Anda hanyalah angka dan bukan data yang lebih kompleks, Anda dapat memasukkannya ke dalam fitur agar dapat diekspor:

var collection_for_export = ee.FeatureCollection([
  ee.Feature(null, {'sam_mean': sam_mean})
]);
Export.table.toDrive({
  collection: collection_for_export,
  fileFormat: 'CSV',
});

Saya juga memperhatikan bahwa Anda memiliki:

var sam_mean = fit_year_ndvi.clip(sam).reduceRegion({
  geometry: sam,
  ...

Ini .clip(sam)tidak diperlukan karena reduceRegionsudah beroperasi hanya di wilayah tertentu, dan memotongnya secara terpisah akan melakukan penghitungan tambahan tanpa manfaat apa pun.