Questions générales
J'ai un problème, j'ai besoin d'aide !
Posez une question en suivant ce guide et en fournissant le plus d'informations possible (consultez le guide Stack Overflow pour poser de bonnes questions). Cela signifie généralement :
en envoyant un lien vers un script dans l'éditeur de code (cliquez sur le bouton "Obtenir le lien" pour l'obtenir)
partager les composants nécessaires à l'exécution du script ;
Pour les tâches par lot ayant échoué, indiquez l'ID de la tâche en échec. Les ID de tâches ressemblent à ceci :
4C25GIJBMB52PXTEJTF4JLGL. Vous les trouverez dans l'onglet "Tâche" de l'éditeur de code. En savoir plus
Où puis-je en savoir plus sur l'architecture Earth Engine ?
Consultez cet article : Gorelick et al. 2017.
Existe-t-il des tutoriels Earth Engine recommandés qui n'ont pas été créés par Google ?
Consultez les pages EDU et Ressources de formation.
Existe-t-il des tutoriels recommandés sur la télédétection ?
Consultez ce cours EE sans frais d'Ujaval Gandhi, qui inclut une vidéo d'introduction à la télédétection.
Programmation Earth Engine
Quelles sont les erreurs de codage courantes ?
Consultez le guide de débogage.
Pourquoi l'erreur "... n'est pas une fonction" s'affiche-t-elle ?
Cette erreur se produit lorsque Earth Engine ne trouve pas la méthode appelée. Vérifiez les causes courantes suivantes :
Orthographe ou sensibilité à la casse : les méthodes sont sensibles à la casse. Vérifiez l'orthographe dans la documentation de référence de l'API.
Error: img.normalizedDiff(...) -> Correct: img.normalizedDifference(...)
Casts de type manquants : les valeurs renvoyées par des fonctions telles que .get() sont des instances ee.ComputedObject génériques et doivent être castées de manière explicite. Consultez Casting de type d'objet inconnu.
Error: dict.get('val').add(5) -> Correct: ee.Number(dict.get('val')).add(5)
Mélange de méthodes client et serveur : assurez-vous de ne pas utiliser de méthodes JavaScript ou Python standards (comme .push() ou .append()) sur les objets Earth Engine. Consultez Éviter de mélanger les fonctions client et serveur.
Error: list.push(4) or list.append(4) -> Correct: list.add(4)
Méthodes indisponibles : si l'objet est correctement typé et que la méthode existe dans la documentation ou a fonctionné auparavant, mais échoue maintenant, signalez un bug.
Pourquoi ne puis-je pas utiliser des opérations mathématiques de base comme ee.Image("image") * 2 ?
Dans EE, vous ne devez pas mélanger les objets ni les opérations côté serveur et côté client. Toutes les opérations sur les objets EE sont effectuées côté serveur. Les calculs côté client ne produiront pas l'effet escompté. Pour en savoir plus, consultez cette page.
Comment utiliser les boucles for ou les instructions if/else ?
La programmation Earth Engine s'effectue à l'aide d'un langage fonctionnel. Les boucles et les opérations conditionnelles doivent donc être exprimées à l'aide de concepts équivalents tels que map ou filter. Pour en savoir plus, consultez cette page.
Comment afficher des libellés textuels dans mon image ou ma vidéo ?
Les libellés de texte ne sont pas pris en charge, mais vous pouvez :
- Utilisez un package JS tiers. Voir un exemple
- Utilisez un package Python tiers geemap.
- Utilisez QGIS pour importer des images EE à l'aide du plug-in EE QGIS.
Puis-je utiliser des palettes de couleurs standards ?
Utilisez un package JS tiers ee-palettes.
Comment créer mon propre site Web qui utilise Earth Engine ?
Utilisez Earth Engine Apps pour les applications de base. Dans des cas plus complexes, vous pouvez créer des applications App Engine optimisées par EE.
Comment fonctionnent les ID de carte ?
Les ID de carte (appelés mapid dans l'API) sont des clés qui permettent aux clients de récupérer des tuiles de carte. Chaque ID est un hachage créé en fournissant une expression d'image au point de terminaison getMapId. Les ID obtenus sont des clés qui pointent à la fois vers l'expression d'image et les identifiants utilisateur qui seront utilisés pour générer des tuiles à une étape ultérieure.
Pour demander des tuiles de carte, vous devez spécifier l'emplacement de la tuile (x, y, zoom) ainsi que la mapid (clé de l'image et des identifiants). Le même ID peut être réutilisé pour charger plusieurs tuiles de carte. Il n'y a pas de limite à la réutilisation des clés mapid, mais elles expirent au bout de quelques heures. Nous ne publions pas de délais spécifiques concernant leur durée de vie, mais tout code que vous écrivez doit être résistant à l'expiration de l'ID.
La création de ces ID implique le stockage d'une petite quantité de données et la validation des identifiants. Il est donc préférable de les réutiliser le plus longtemps possible. Il n'existe pas de quota d'API spécifiquement associé au point de terminaison getMapId, mais tout workflow impliquant la création d'objets mapid à un rythme proche de celui de la récupération des tuiles est probablement incorrect. Earth Engine ne dispose d'aucun point de terminaison d'API pour supprimer, lister ou gérer ces ID, car il s'agit de ressources transitoires.
Pourquoi ee.Algorithms.If() affiche-t-il à la fois le cas "true" et le cas "false" ?
function a() { print("true"); }
function b() { print("false"); }
// Prints 'true' and 'false'.
ee.Algorithms.If(true, a(), b());
L'algorithme If() fonctionne comme tous les autres algorithmes d'Earth Engine, c'est-à-dire que tous ses arguments doivent être évalués avant que l'algorithme lui-même puisse s'exécuter.
L'algorithme obtient les résultats trueCase et falseCase, puis en sélectionne et en renvoie un en fonction de l'argument condition. Toutefois, les deux chemins d'accès ont dû être exécutés pour que ces valeurs soient transmises à l'algorithme en premier lieu.
Le message d'erreur "La taille de la charge utile de la requête dépasse la limite" s'affiche
Vous essayez d'envoyer une très grande requête à Earth Engine. Cela se produit généralement lorsque le code utilise de nombreuses boucles "for" côté client ou construit une FeatureCollection à partir de nombreux objets géométriques. Dans ce dernier cas, au lieu de créer de telles géométries dans votre script, générez un fichier CSV les contenant et importez-le dans un asset de table.
Quelle est la différence entre ee.Image.clip() et ee.Filter.bounds() ?
Consultez ce fil de discussion sur GIS Stack Exchange.
La fonction ee.Image.clip() masque les pixels qui n'intersectent pas un ee.Geometry ou un ee.Feature donné, ce qui les rend transparents dans les visualisations et les exclut des calculs. Vous pouvez le considérer comme un découpage de pixels d'une image.
La fonction ee.Filter.bounds() filtre les objets ee.Image d'un ee.ImageCollection en fonction de l'intersection des images avec un ee.Geometry ou un ee.Feature. Il permet de limiter le champ d'application d'une analyse aux images qui croisent une région donnée, ce qui aide à optimiser les expressions.
Comment convertir des pixels d'image en collections d'entités, avec une entité par pixel ?
Utilisez la fonction ee.Image.sample(). Consultez des exemples d'utilisation sur la page de référence de l'API de la fonction.
Quelle est la différence entre ee.ImageCollection.merge() et ee.ImageCollection.combine() ?
La fonction ee.ImageCollection.merge() fusionne toutes les images de deux collections en une seule, que leurs images respectives aient des bandes, des métadonnées, un CRS ou une échelle coïncidents ou non. Il s'agit de l'union de deux collections. La méthode combine() combine les bandes d'images correspondantes de deux collections en une seule collection. Les images correspondantes partagent le même ID (propriété system:index). Il s'agit d'une jointure interne de deux collections basée sur l'ID d'image, où les bandes des images correspondantes sont combinées. Pour les images correspondantes, les bandes de l'image secondaire sont ajoutées à l'image principale (l'écrasement est facultatif). Si aucune image ne correspond, une collection vide est renvoyée.
Comment filtrer des collections d'images sur plusieurs intervalles de dates ?
Consultez ce fil de discussion sur GIS Stack Exchange.
merge() plusieurs collections ensemble ou utilisez ee.Filter.or().
Comment créer un cadre de délimitation autour d'un point donné ?
// Buffer the point by a chosen radius and then get the bounding box.
var LNG = -117.298;
var LAT = 45.162;
var point = ee.Geometry.Point([LNG, LAT]);
var buffer = point.buffer(30000); // half of box width as buffer input
var box = buffer.bounds(); // draw a bounding box around the buffered point
Map.centerObject(box);
Map.addLayer(point);
Map.addLayer(box);
// Map the buffer and bounds procedure over a point feature collection.
var pointCol = ee.FeatureCollection([
ee.Feature(ee.Geometry.Point([LNG + 1, LAT])),
ee.Feature(ee.Geometry.Point([LNG - 1, LAT]))
]);
var boxCol = pointCol.map(function(feature) {
var box = feature.buffer(30000).bounds();
return feature.setGeometry(box.geometry());
});
Map.addLayer(boxCol);
Data Catalog
Peux-tu ajouter l'ensemble de données X ?
Signalez un bug concernant une demande d'ensemble de données en suivant le guide des demandes d'ensembles de données.
Vous pouvez également importer des données dans votre dossier personnel Earth Engine. Consultez Importer des données raster et Importer des données de table.
Une nouvelle version d'un ensemble de données existant est disponible
Signalez un bug concernant un ensemble de données en suivant le guide de demande d'ensemble de données et indiquez que vous demandez une mise à jour de l'ensemble de données.
Un ensemble de données existant n'est pas mis à jour ou il manque des composants
Avant de signaler un problème, vérifiez, si possible, que les composants sélectionnés existent réellement sur le site du fournisseur de l'ensemble de données. Pour en savoir plus, consultez le guide sur les images manquantes.
Si vous recherchez un élément en filtrant un ImageCollection, assurez-vous que vos filtres ne sont pas trop restrictifs.
En particulier, notez les points suivants :
L'ESA n'a pas produit de données Sentinel-2 SR (niveau 2) pour les premières scènes de niveau 1.
Landsat ne couvre pas le monde entier avant l'an 2000.
Un ensemble de données existant contient des valeurs incorrectes
Publiez un message sur le forum des développeurs. Incluez un script qui effectue un zoom avant sur la résolution d'origine du composant et permet de voir clairement quelles valeurs sont incorrectes. Expliquez précisément où vous avez observé la valeur alternative.
Où puis-je poser d'autres questions sur les ensembles de données ?
Pour toute question concernant les ensembles de données de la NASA, consultez le forum NASA Earth Data.
Pour toute question concernant les boîtes à outils fonctionnant sur les ensembles de données Copernicus, consultez les forums S1, S2 et S3.
Quelle est la taille du catalogue EE ?
En octobre 2023, le catalogue contient plus de 1 000 ensembles de données. Sa taille sur le disque est supérieure à 90 pétaoctets (après prise en compte de la compression sans perte).
À quelle fréquence les données d'EE sont-elles mises à jour ?
En règle générale, tous les ensembles de données en cours sont mis à jour au moins une fois par jour (mais tous ces ensembles de données ne contiennent pas de nouvelles données tous les jours). Certains ensembles de données sont actualisés plusieurs fois par jour. Toutefois, aucune règle ne garantit la présence des assets les plus récents dans le catalogue.
Comment afficher le contenu du catalogue EE par programmation ?
La liste des ensembles de données est exportée au format STAC vers un bucket Google Cloud Storage gs://earthengine-stac.
Le fichier d'entrée est catalog.json.
Puis-je utiliser les données ou les images Google Maps pour effectuer des analyses ?
Google ne concède pas de licence ni ne vend de données de fond de carte pour l'analyse.
Comment trouver la date à laquelle un composant a été ingéré ?
La propriété 'system:version' de l'élément correspond au code temporel d'ingestion, au format microsecondes depuis l'époque Unix. Voici un exemple qui convertit l'horodatage d'ingestion d'une image Landsat dans un format lisible.
var image = ee.Image('LANDSAT/LC08/C02/T1_L2/LC08_044034_20210508');
print('Ingest date', ee.Date(image.getNumber('system:version').divide(1000)));
Le catalogue Earth Engine contient-il des métadonnées JSON-LD ?
Oui, les métadonnées JSON-LD sont intégrées aux pages HTML du catalogue. Par exemple, la page Sentinel-2 contient le bloc suivant :
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "BreadcrumbList",
"itemListElement": [{
"@type": "ListItem",
"position": 1,
"name": "Earth Engine Data Catalog",
"item": "https://developers.google.com/earth-engine/datasets"
},{
"@type": "ListItem",
"position": 2,
"name": "Harmonized Sentinel-2 MSI: MultiSpectral Instrument, Level-1C",
"item": "https://developers.google.com/earth-engine/datasets/catalog/COPERNICUS_S2_HARMONIZED"
}]
}
</script>
Landsat
Comment l'algorithme simpleComposite est-il implémenté ?
L'implémentation côté serveur est équivalente à ce code JavaScript.
Comment créer des composites sans nuages à partir des données de réflectance de surface Landsat ?
Les données Landsat de niveau 2 (réflectance de surface) comportent plusieurs bandes de qualité qui peuvent être utilisées pour masquer les nuages et autres artefacts d'image indésirables. Un exemple d'utilisation de ces bandes pour traiter les images Landsat 8 SR et créer un composite médian sans nuage est fourni dans ce post GIS Stack Exchange. La même procédure est utilisée pour créer un composite sans nuages à utiliser dans les exemples de classification supervisée du Guide du développeur.
L'harmonisation de la réflectance de surface Landsat entre les capteurs est-elle nécessaire ?
Roy et al., 2016 comprenait une analyse des différences de réflectance entre la réflectance de surface et la réflectance au sommet de l'atmosphère (TOA) de Landsat 7-8. Ils ont publié les coefficients OLS et RMA afin que les lecteurs puissent transformer les valeurs de réflectance des données d'un capteur en celles d'un autre. La dernière ligne de l'article indique : "Bien que les différences entre les capteurs soient minimes, elles peuvent avoir un impact significatif en fonction de l'application des données Landsat." Toutefois, cette analyse était basée sur des données pré-collectées.
Les améliorations apportées lors du retraitement des collections 1 et 2 peuvent influencer la relation entre les capteurs, mais à notre connaissance, aucune analyse semblable à celle de Roy et al. (2016) n'a été effectuée pour les données des collections 1 ou 2. Bien qu'aucune analyse formelle n'ait été effectuée, il semble y avoir un consensus général parmi les utilisateurs influents de Landsat selon lequel aucune correction n'est nécessaire pour les données de la collection 2, niveau 2 (réflectance de surface). Par exemple, en réponse à une question sur la nécessité d'une harmonisation de la collection 2, niveau 2, Mike Wulder de l'équipe scientifique Landsat a noté que, selon la nature de l'application concernée (y compris la cartographie de la couverture terrestre et la détection des changements), les produits de réflectance de surface de la collection 2 sont très adaptés et fiables, sans nécessiter d'ajustement inter-capteurs.
Comment masquer les nuages et leurs ombres dans les images MSS ?
Le module msslib tiers pour l'éditeur de code JavaScript inclut une implémentation de l'algorithme MSScvm, ainsi que d'autres fonctions utiles pour explorer et préparer les données MSS.
Gestion des données
À qui appartiennent les données que j'importe ?
Conformément aux Conditions d'utilisation d'Earth Engine, les clients sont propriétaires des données qu'ils importent dans Earth Engine.
Je n'arrive pas à importer de données.
Vérifiez l'état de la tâche d'importation dans le volet "Tâches" en haut à droite de l'éditeur de code. Vous pouvez également consulter la page dédiée aux tâches.
Si aucune tâche n'est affichée, vous avez probablement essayé d'importer votre fichier via l'éditeur de code, mais en raison d'un problème de réseau, l'importation n'a jamais abouti et la tâche n'a donc jamais été créée. Essayez d'utiliser un autre navigateur ou un autre ordinateur.
Si une tâche a échoué, examinez l'erreur affichée. Si aucun message d'erreur spécifique ne s'affiche, commencez par vérifier que votre fichier n'est pas corrompu en exécutant gdalinfo pour les fichiers raster ou ogr2ogr pour les fichiers vectoriels.
Ces commandes tenteront de lire toutes les données des fichiers sources et afficheront des erreurs si les fichiers sont corrompus.
Exemple d'appel gdalinfo :
gdalinfo -mm -stats -checksum file.tif
Exemple d'appel ogr2ogr qui convertira in.shp en out.csv :
ogr2ogr -lco GEOMETRY=AS_WKT -f CSV out.csv in.shp
Si le fichier semble valide, publiez l'ID de la tâche ayant échoué sous forme de texte (et non de capture d'écran) sur la liste de diffusion des développeurs.
Les ID de tâches sont au format suivant : 4C25GIJBMB52PXTEJTF4JLGL. Si possible, rendez votre fichier source lisible publiquement. S'il s'agit d'un fichier privé, partagez-le uniquement avec earthengine@google.com si vous souhaitez que l'équipe Earth Engine l'examine. Si vous ne pouvez pas partager le fichier source, fournissez au moins le résultat de gdalinfo -mm -stats -checksum.
Si Earth Engine ne prend pas en charge une projection spécifique, vous devrez reprojeter les données avant de les importer, par exemple à l'aide de gdalwarp.
Comment importer un fichier au format NetCDF ou dans un autre format raster non accepté ?
Seuls les fichiers GeoTIFF peuvent être importés dans Earth Engine. D'autres formats compatibles avec GDAL peuvent être convertis en GeoTIFF à l'aide de gdal_translate. Exemple :
gdal_translate -co COMPRESS=DEFLATE file.nc file.tif
Notez que certains fichiers NetCDF ou HDF sont constitués de plusieurs sous-ensembles de données qui peuvent être découverts avec gdalinfo. Dans ce cas, la commande gdal_translate se présentera comme suit (notez le chemin d'accès entre les guillemets doubles) :
gdal_translate HDF4_EOS:EOS_GRID:"/tmp/MCD12Q1.A2001001.h00v08.005.2011055224312.hdf":MOD12Q1:Land_Cover_Type_1 file.tif
Il arrive que les fichiers NetCDF ne comportent pas de projection reconnue par GDAL. Dans ce cas, vous devrez définir la projection et l'étendue spatiale dans la ligne de commande gdal_translate. Exemple :
gdal_translate -a_srs EPSG:4326 -a_ullr -180 90 180 -90 file.nc file.tid
Quels algorithmes de compression puis-je utiliser pour les fichiers GeoTIFF importés ?
Pour l'importation, les fichiers GeoTIFF peuvent être compressés avec DEFLATE, JPEG, JPEG-XL/JXL, LERC, LERC_DEFLATE, LERC_ZSTD, LZMA, LZW, WEBP ou ZSTD. Pour la lecture en direct des COG, vous pouvez utiliser DEFLATE, JPEG, LZW ou ZSTD. ZSTD est un bon choix global, car il est rapide à décompresser tout en offrant une bonne compression de la plupart des images.
Pour appliquer la compression ZSTD lorsque vous utilisez gdal_translate, ajoutez ces options. Si les données contiennent des valeurs à virgule flottante, remplacez PREDICTOR par 3.
gdal_translate in.tif out.tif \
-co COPY_SRC_OVERVIEWS=YES \
-co TILED=YES \
-co BLOCKXSIZE=512 \
-co BLOCKYSIZE=512 \
-co COMPRESS=ZSTD \
-co PREDICTOR=2 \
-co ZSTD_LEVEL=22 \
-co INTERLEAVE=BAND \
-co NUM_THREADS=ALL_CPUS
L'ingestion de mon raster est en cours depuis plusieurs jours et n'est pas terminée.
À l'aide de gdalinfo, vérifiez si l'option GDAL suivante est définie dans votre fichier : INTERLEAVE=PIXEL. Pour les fichiers avec cette option et de nombreuses bandes, l'ingestion peut ne jamais se terminer, car la mise en page de ces fichiers rend les lectures très lentes.
Essayez de convertir ces fichiers au format entrelacé par bande avant de les importer :
gdal_translate -co "INTERLEAVE=BAND" src.tif dst.tif
Les rasters que j'ai importés ne correspondent pas à la carte de base.
Si les données sont légèrement décalées par rapport à la carte de base, il est probable que la projection comporte un datum incorrect (hypothèse sur la forme de la Terre).
Cela se produit le plus souvent avec la projection sinusoïdale qui ne peut pas être entièrement encodée dans les métadonnées GDAL. Lorsque vous connaissez la projection cible (par exemple, SR-ORG:6974 pour les fichiers utilisant la projection sinusoïdale MODIS), définissez l'indicateur --crs lors de l'importation en ligne de commande ou le champ crs du fichier manifeste d'importation.
Si les données semblent très déformées ou complètement mal placées, il est probable que la projection ou la transformation affine soient incorrectes.
Mon raster ne s'affiche que sur l'hémisphère est.
Vous avez probablement importé un raster global qui couvre la plage de longitude [0, 360]. Cependant, Earth Engine exige que les rasters soient compris dans la plage [-180, 180]. Inversez les moitiés gauche et droite du raster avant l'ingestion. Consultez ces suggestions sur GIS Stack Exchange.
Pourquoi l'image de classification ingérée semble-t-elle mouchetée ?
Vous avez probablement utilisé la règle de pyramidation par défaut MEAN.
Pour les images de classification, la règle de pyramide MODE doit être utilisée. Pour les images QA/bitmask, la règle de pyramide SAMPLE doit être utilisée.
L'erreur suivante s'affiche : "La valeur de données -128.0 ne peut pas être appliquée à la bande #0 de type Short<0, 255>."
GDAL ne peut pas traiter les bandes d'un octet comme contenant des entiers signés. Il lit donc ces bandes comme des entiers non signés. Cela entrerait en conflit avec les valeurs négatives "aucune donnée".
Si vos valeurs sont en fait des entiers signés, utilisez manifest upload et ajoutez data_type: "INT8" à la section du tileset contenant votre fichier.
Si vos valeurs sont des entiers non signés, votre fichier comporte une valeur "nodata" incorrecte. Vous pouvez la remplacer lors de l'importation par la valeur de données correcte (ou une valeur qui ne se produit jamais, si elle existe). Vous pouvez également utiliser gdal_translate -a_nodata pour modifier la valeur "nodata" ou gdal_edit.py -unsetnodata pour la supprimer.
Comment importer un fichier au format GeoJSON ou dans un autre format vectoriel non compatible ?
Utilisez ogr2ogr pour traduire les formats compatibles avec OGR en CSV ou SHP. Exemple :
or2ogr -f "ESRI Shapefile" file.shp file.kml
Notez que dans les importations CSV, la colonne de géométrie peut contenir des données GeoJSON.
Je souhaite importer des données à l'aide de Python ou importer plusieurs fichiers à la fois.
Utilisez l'importation en ligne de commande. Pour ce type d'importation, les fichiers sources doivent d'abord être placés dans un bucket GCS (Google Cloud Storage). L'utilisation de GCS n'entraîne aucun frais si vous respectez les limites du niveau sans frais. Pour en savoir plus, consultez la page des tarifs.
Je souhaite importer une grande mosaïque raster divisée en plusieurs tuiles.
Si tous les fichiers ont la même projection et la même taille de pixel, il vous suffit de les importer ensemble dans le même composant. Ils seront mosaïqués automatiquement.
Si les fichiers ont des projections ou des tailles de pixels différentes, ils ne peuvent pas être mosaïqués en un seul élément raster. À la place, importez chaque tuile en tant qu'asset distinct dans le même ImageCollection, qui peut être mosaïqué à l'aide de ImageCollection.mosaic().
J'essaie d'importer une mosaïque et des erreurs concernant des tuiles non concordantes s'affichent.
Les tuiles des mosaïques raster Earth Engine doivent avoir la même projection et la même taille de pixel. De plus, les tuiles doivent être alignées exactement sur les limites des pixels.
J'essaie d'importer un fichier depuis un bucket GCS, mais Earth Engine ne le trouve pas.
Il est possible que vous ayez utilisé différents comptes Google pour l'importation GCS et pour la connexion à Earth Engine. Assurez-vous que le compte que vous utilisez pour vous connecter à Earth Engine peut lire le fichier GCS. Si la connexion multiple au navigateur rend la situation confuse, connectez-vous à Earth Engine dans une fenêtre de navigation privée.
Je souhaite exporter plusieurs composants à la fois.
Vous devez exporter chaque image séparément.
Je souhaite déplacer ou supprimer un Folder ou un ImageCollection à l'aide d'une seule commande.
Vous devez d'abord déplacer ou supprimer chaque composant, puis déplacer ou supprimer le dossier ou la collection parents. S'il existe de nombreux composants enfants, écrivez une boucle shell ou Python pour les parcourir.
Je souhaite accéder directement aux données Earth Engine depuis l'extérieur d'EE.
QGIS dispose d'un plug-in Earth Engine.
GDAL dispose d'un pilote Earth Engine.
D'autres systèmes peuvent utiliser l'API REST EE.
Je souhaite mettre à jour une partie de mon asset Earth Engine sans le réingérer complètement.
Il n'est pas possible de modifier les données raster ou vectorielles importées dans EE. Seules les propriétés des métadonnées de l'élément peuvent être mises à jour.
Je perds l'accès à mon compte. Que faire de mes composants ?
Si les règles du compte d'origine autorisent le transfert de données, veuillez partager vos composants avec un autre compte, puis les copier pour qu'ils appartiennent au nouveau compte. Utilisez l'utilitaire de copie en ligne de commande si vous devez déplacer de nombreux composants.
Si un compte est supprimé, les composants qu'il possède ne sont plus accessibles.
Mon image exportée ne se trouve pas au bon endroit.
Pour certaines projections, comme les projections sinusoïdales ou coniques, les fichiers GeoTIFF ne peuvent parfois pas stocker tous les paramètres de projection nécessaires. Cela entraîne l'exportation d'un fichier qui s'affiche au mauvais endroit lorsqu'il est consulté dans des outils SIG pour ordinateur ou réingéré dans EE.
Pour résoudre ce problème, spécifiez un paramètre d'exportation crs qui fonctionne bien avec les fichiers GeoTIFF. Par exemple, utilisez le code EPSG pour la zone UTM contenant votre zone d'intérêt.
Quel emplacement de bucket Cloud Storage dois-je utiliser pour stocker les éléments COG ?
La réponse dépend de ce que vous essayez d'optimiser. Si vous optimisez l'accès au calcul à faible latence, les meilleurs emplacements de bucket GCS pour stocker les ressources COG sont US-CENTRAL*. Pour en savoir plus sur les autres points à prendre en compte, consultez la page Emplacements des buckets.
Les propriétés que j'ai définies ne sont pas conservées dans les collections d'éléments exportées.
Aucune fonction Export.table.* ne conserve les propriétés au niveau de la table dans la sortie.
De nombreux formats de sortie (CSV, GeoJSON, etc.) ne sont pas compatibles avec ces métadonnées. La fonction Export.table.toAsset pourrait être compatible avec les propriétés au niveau de la table, mais ce n'est pas le cas pour le moment.
Les tableaux exportés vers Drive au format CSV sont convertis au format XLSX.
Selon vos paramètres Google Drive, les tableaux CSV que vous exportez depuis Earth Engine peuvent être convertis en fichiers XLSX, ce qui peut avoir des effets indésirables, comme des conversions de types de données. Pour modifier le comportement des exportations suivantes, procédez comme suit.
- Dans Google Drive sur le Web, cliquez sur l'icône en forme de roue dentée en haut à droite.
- Cliquez sur "Paramètres".
- Faites défiler la page jusqu'à "Convertir les fichiers importés au format Google Docs", puis décochez cette option.
Éditeur de code
Je ne parviens pas à me connecter à l'éditeur de code, car il m'invite à utiliser le mauvais compte.
Déconnectez-vous, sélectionnez le compte enregistré pour utiliser Earth Engine sur la page "Choisir un compte", puis resélectionnez le même compte sur la deuxième page "Choisir un compte pour continuer vers l'éditeur de code Earth Engine" (le libellé exact peut varier).
Je souhaite faire une capture d'écran d'une carte du monde, mais je n'aime pas la projection Web Mercator.
La projection cartographique utilisée dans l'éditeur de code est Web Mercator ("EPSG:3857"). Elle augmente la taille des objets loin de l'équateur, ce qui fait que les régions à haute latitude semblent beaucoup plus grandes qu'elles ne le sont en réalité, par rapport aux régions proches de l'équateur. Vous ne pouvez pas modifier la projection du canevas de carte de l'éditeur de code, mais vous pouvez "peindre" une image dans la projection de votre choix sur le canevas Web Mercator à l'aide de la méthode ee.Image.changeProj.
Consultez la documentation de référence de l'API de la méthode pour obtenir un exemple d'affichage d'un MNE global sur la carte de l'éditeur de code dans la projection Robinson.
Notez que cette technique ne doit être utilisée qu'à des fins de visualisation, car l'inspecteur et les outils de dessin de l'éditeur de code fonctionnent toujours dans Web Mercator.
Mon script ne s'enregistre pas (Script error: Unknown commit).
Si vous recevez un message Script error: Unknown commit lorsque vous enregistrez un script, cela signifie probablement que le dépôt dans lequel vous enregistrez le script n'est pas synchronisé.
La cause de cet état est variable et difficile à identifier. Pour résoudre le problème, essayez d'actualiser la liste des scripts à l'aide du bouton situé en haut à droite de l'onglet "Scripts". Si cela ne fonctionne pas, essayez de créer un dépôt à partir du bouton "Nouveau" de l'onglet "Script", puis d'y enregistrer votre script (vous devrez peut-être déplacer les scripts vers le nouveau dépôt à partir du dépôt non synchronisé).
Pourquoi l'éditeur de code affiche-t-il des erreurs 400 à plusieurs reprises ?
Si vous voyez des erreurs 400 répétées dans l'éditeur de code, accédez à https://myaccount.google.com/connections, recherchez "Éditeur de code Earth Engine" dans la liste des applications et services, sélectionnez-le, puis sélectionnez "Supprimer toutes les connexions avec l'Éditeur de code Earth Engine" et confirmez. Ouvrez ensuite l'éditeur de code et réauthentifiez-vous.
Comment récupérer des scripts et des dossiers supprimés ?
Si vous supprimez accidentellement un script ou un dossier dans un dépôt existant, l'historique complet des commits est conservé dans les journaux Git sur nos serveurs. Vous pouvez restaurer des scripts ou des dossiers supprimés en clonant le dépôt en local à l'aide des outils de ligne de commande Git standards.
Toutefois, la suppression d'un dépôt entier (users/username/repository) supprime définitivement le dépôt et son historique des commits de earthengine.googlesource.com. Cette opération est irréversible et ne peut pas être annulée.
Pour obtenir des instructions détaillées sur la génération d'identifiants Git, le clonage de votre dépôt et la restauration de fichiers ou de dossiers supprimés, consultez le guide Récupérer des scripts et migrer des dépôts.
Comment renommer la racine de mon dépôt de scripts ?
Votre répertoire racine de script (users/username) est lié à l'enregistrement de votre compte Earth Engine d'origine. Vous ne pouvez pas le renommer directement dans le backend, car cela interromprait les scripts externes ou les projets de collaborateurs qui importent votre code modulaire à l'aide du chemin d'accès require('users/username/repository:...').
Si vous avez besoin d'un nouvel espace de noms, la solution de contournement acceptée consiste à migrer votre travail vers un nouveau compte :
- Enregistrez un nouveau compte Earth Engine à l'aide de votre nouvelle identité Google (qui génère une racine
users/new_usernamepropre). - Suivez les instructions de migration du dépôt pour cloner votre ancien dépôt et transférer son historique complet vers le nouveau dépôt vide.
Remarques importantes :
- Modules publics : si vous avez des modules publics sur lesquels d'autres utilisateurs s'appuient, nous vous recommandons vivement de conserver votre ancien compte et votre ancien dépôt actifs afin de ne pas perturber leurs workflows.
- Scripts privés : si vos scripts sont entièrement privés, vous pouvez mettre à jour vos instructions d'importation
require()pour faire référence au nouveau chemin d'accès au dépôt, puis supprimer les anciens dépôts sans risque.