Statistiques récapitulatives sur la LARGE région dans Google Earth Engine
Je suis aux prises avec un problème de réduction des valeurs NDVI pour l'Amérique du Sud. Je suis intéressé de savoir quel est le NDVI moyen pour ce continent (valeur unique), sans avoir à perdre en résolution en augmentant mon échelle de pixels à un très grand nombre. Ma pensée était d'essayer de placer un type de grille qui pourrait créer des régions plus petites, puis de créer un dictionnaire et de prendre la moyenne des moyennes de la grille. Je ne suis pas sûr que ma logique soit totalement solide ici, mais j'espère que je suis sur une bonne voie. GEE serait-il en mesure de le faire, et si oui, existe-t-il un moyen de créer une fonction pour simplifier cette tâche?
Ce code ne fonctionne pas pour des raisons évidentes ... délai d'expiration du système et limites de mémoire.
var sam_mean = fit_year_ndvi.clip(sam).reduceRegion({
reducer: ee.Reducer.mean(),
geometry: sam,
scale: 1000,
maxPixels: 1e12
});
Voici mon lien: https://code.earthengine.google.com/b8486d4ef347cde7555614254b143ec7
Voici mon lien d'actif: https://code.earthengine.google.com/?asset=users/anna_odell/continents
Réponses
Ma pensée était d'essayer de placer un type de grille qui pourrait créer des régions plus petites, puis de créer un dictionnaire et de prendre la moyenne des moyennes de la grille.
Cela ne devrait pas être nécessaire - Earth Engine subdivisera déjà votre reduceRegion
opération pour la calculer efficacement. Cependant, vous aurez peut-être besoin de plus de temps pour le terminer. La solution consiste à exécuter l'opération en tant que travail par lots (exportation). Si votre résultat final est juste le nombre et non des données plus complexes, vous pouvez le mettre dans une fonctionnalité pour le rendre exportable:
var collection_for_export = ee.FeatureCollection([
ee.Feature(null, {'sam_mean': sam_mean})
]);
Export.table.toDrive({
collection: collection_for_export,
fileFormat: 'CSV',
});
Je remarque également que vous avez:
var sam_mean = fit_year_ndvi.clip(sam).reduceRegion({
geometry: sam,
...
Le .clip(sam)
n'est pas nécessaire car il reduceRegion
ne fonctionne déjà que sur la région spécifiée, et le découper séparément fera un calcul supplémentaire sans aucun avantage.