Häufig gestellte Fragen

Allgemeine Fragen

Ich habe ein Problem und brauche Hilfe!

Stellen Sie eine Frage gemäß dieser Anleitung und geben Sie so viele Informationen wie möglich an (siehe Stack Overflow-Anleitung zum Stellen guter Fragen). Das bedeutet in der Regel:

  • Sie senden einen Link zu einem Skript im Code-Editor (klicken Sie auf die Schaltfläche „Link abrufen“, um ihn zu erhalten).

  • Freigabe aller Assets, die zum Ausführen des Skripts erforderlich sind

  • Bei fehlgeschlagenen Batchaufgaben geben Sie die ID der fehlgeschlagenen Aufgabe an. Aufgaben-IDs sehen so aus: 4C25GIJBMB52PXTEJTF4JLGL. Sie finden sie im Tab „Aufgabe“ des Code-Editors. Weitere Informationen

Wo kann ich mehr über die Earth Engine-Architektur erfahren?

Siehe dieses Papier: Gorelick et al. 2017.

Weitere Informationen finden Sie auf den Seiten EDU und Schulungsressourcen.

Dieser kostenlose EE-Kurs von Ujaval Gandhi enthält ein Video mit einer Einführung in die Fernerkundung.

Earth Engine-Programmierung

Was sind einige häufige Codierungsfehler?

Weitere Informationen finden Sie im Debugging-Leitfaden.

Warum erhalte ich die Fehlermeldung „… is not a function“?

Dieser Fehler tritt auf, wenn Earth Engine die aufgerufene Methode nicht finden kann. Prüfen Sie die folgenden häufigen Ursachen:

Rechtschreibung oder Groß-/Kleinschreibung: Bei Methoden wird zwischen Groß- und Kleinschreibung unterschieden. Prüfen Sie die Rechtschreibung anhand der API-Referenz.

Error: img.normalizedDiff(...) -> Correct: img.normalizedDifference(...)

Fehlende Typumwandlungen: Von Funktionen wie .get() zurückgegebene Werte sind generische ee.ComputedObject-Instanzen und müssen explizit umgewandelt werden. Weitere Informationen finden Sie unter Casting von unbekannten Objekttypen.

Error: dict.get('val').add(5) -> Correct: ee.Number(dict.get('val')).add(5)

Client- und Servermethoden mischen: Achten Sie darauf, dass Sie keine Standard-JavaScript- oder Python-Methoden (wie .push() oder .append()) für Earth Engine-Objekte verwenden. Weitere Informationen finden Sie unter Client- und Serverfunktionen nicht mischen.

Error: list.push(4) or list.append(4) -> Correct: list.add(4)

Nicht verfügbare Methoden: Wenn das Objekt richtig typisiert ist und die Methode in der Dokumentation vorhanden ist oder zuvor funktioniert hat, jetzt aber fehlschlägt, melden Sie einen Fehler.

Warum kann ich keine einfachen mathematischen Operationen wie ee.Image("image") * 2 verwenden?

In EE sollten Sie keine serverseitigen und clientseitigen Objekte oder Vorgänge mischen. Alle Vorgänge für EE-Objekte werden serverseitig ausgeführt. Clientseitige Berechnungen funktionieren nicht wie beabsichtigt. Weitere Informationen

Wie kann ich for-Schleifen oder if/else-Anweisungen verwenden?

Die Programmierung in Earth Engine erfolgt in einer funktionalen Sprache. Schleifen und bedingte Operationen sollten daher mit entsprechenden Konzepten wie map oder filter ausgedrückt werden. Weitere Informationen finden Sie auf dieser Seite.

Wie kann ich Textlabels in meinem Bild oder Video anzeigen lassen?

Es gibt keine integrierte Unterstützung für Textlabels, aber Sie haben folgende Möglichkeiten:

  • Verwenden Sie ein JS-Paket eines Drittanbieters. Beispiel ansehen
  • Verwenden Sie das Python-Paket geemap eines Drittanbieters.
  • QGIS verwenden und EE-Bilder mit dem EE QGIS-Plug-in importieren

Kann ich einige Standardfarbpaletten verwenden?

Verwenden Sie das JS-Paket ee-palettes eines Drittanbieters.

Wie erstelle ich eine eigene Website, die Earth Engine verwendet?

Verwenden Sie Earth Engine Apps für einfache Anwendungen. In komplexeren Fällen können Sie EE-basierte App Engine-Apps erstellen.

Wie funktionieren Karten-IDs?

Karten-IDs (in der API als mapid bezeichnet) sind Schlüssel, mit denen Clients Kartenkacheln abrufen können. Jede ID ist ein Hash, der durch Bereitstellung eines Bildausdrucks für den getMapId-Endpunkt erstellt wird. Die resultierenden IDs sind Schlüssel, die sowohl auf den Bildausdruck als auch auf die Nutzeranmeldedaten verweisen, die in einer späteren Phase zum Generieren von Kacheln verwendet werden.

Beim Anfordern von Kartenkacheln müssen Sie den Speicherort der Kachel (x, y, zoom) sowie den mapid (den Schlüssel für das Bild und die Anmeldedaten) angeben. Dieselbe ID kann zum Laden vieler Kartenkacheln wiederverwendet werden. Es gibt keine Einschränkungen für die Wiederverwendung von mapid-Schlüsseln, sie laufen jedoch nach einigen Stunden ab. Wir veröffentlichen keine genauen Zeiträume für die Gültigkeit, aber jeder von Ihnen geschriebene Code sollte so konzipiert sein, dass er auch dann funktioniert, wenn die ID abläuft.

Für das Erstellen dieser IDs ist das Speichern einer geringen Datenmenge und das Validieren von Anmeldedaten erforderlich. Daher ist es am besten, sie so lange wie möglich wiederzuverwenden. Es gibt kein API-Kontingent, das speziell mit dem getMapId-Endpunkt verknüpft ist. Bei jedem Workflow, bei dem mapid-Objekte mit einer Rate erstellt werden, die der Rate des Abrufens von Kacheln entspricht, liegt wahrscheinlich ein Fehler vor. Earth Engine hat keinen API-Endpunkt zum Entfernen, Auflisten oder Verwalten dieser IDs, da es sich um temporäre Ressourcen handelt.

Warum gibt ee.Algorithms.If() sowohl den „true“- als auch den „false“-Fall aus?

function a() { print("true"); }
function b() { print("false"); }
// Prints 'true' and 'false'.
ee.Algorithms.If(true, a(), b());

Der If()-Algorithmus funktioniert wie jeder andere Algorithmus in Earth Engine: Alle seine Argumente müssen ausgewertet werden, bevor der Algorithmus selbst ausgeführt werden kann. Der Algorithmus erhält sowohl die trueCase- als auch die falseCase-Ergebnisse und wählt dann eines basierend auf dem condition-Argument aus und gibt es zurück. Beide Pfade mussten jedoch ausgeführt werden, damit diese Werte überhaupt an den Algorithmus übergeben werden konnten.

Ich erhalte die Fehlermeldung „Größe der Anfragenutzlast überschreitet das Limit“

Sie versuchen, eine sehr große Anfrage an Earth Engine zu senden. Das passiert in der Regel, wenn im Code viele clientseitige „for“-Schleifen verwendet werden oder eine FeatureCollection aus vielen Geometrieobjekten erstellt wird. In diesem Fall sollten Sie die Geometrien nicht in Ihrem Skript erstellen, sondern eine CSV-Datei mit den Geometrien generieren und in ein Tabellen-Asset hochladen.

Was ist der Unterschied zwischen ee.Image.clip() und ee.Filter.bounds()?

Weitere Informationen Mit der Funktion ee.Image.clip() werden Pixel maskiert, die sich nicht mit einem bestimmten ee.Geometry oder ee.Feature überschneiden. Sie sind dann in Visualisierungen transparent und werden bei Berechnungen ausgeschlossen. Sie können sich das so vorstellen, dass Pixel von einem Bild abgeschnitten werden.

Mit der Funktion ee.Filter.bounds() werden ee.Image-Objekte aus einem ee.ImageCollection herausgefiltert, basierend auf der Überschneidung von Bildern mit einem ee.Geometry oder ee.Feature. Damit wird der Umfang einer Analyse auf die Bilder beschränkt, die sich mit einer bestimmten Region überschneiden. Das hilft, Ausdrücke zu optimieren.

Wie kann ich Bildpixel in Feature-Sammlungen mit einem Feature pro Pixel umwandeln?

Verwenden Sie die Funktion ee.Image.sample(). Beispiele für die Verwendung finden Sie auf der API-Referenzseite der Funktion.

Was ist der Unterschied zwischen ee.ImageCollection.merge() und ee.ImageCollection.combine()?

Mit der Funktion ee.ImageCollection.merge() werden alle Bilder aus zwei Sammlungen in einer Sammlung zusammengeführt, unabhängig davon, ob die jeweiligen Bilder übereinstimmende Bänder, Metadaten, Koordinatenreferenzsysteme oder Maßstäbe haben. Sie ist die Vereinigung zweier Sammlungen. Mit der Methode combine() werden die Bänder übereinstimmender Bilder aus zwei Sammlungen in einer einzigen Sammlung kombiniert. Übereinstimmende Bilder haben dieselbe ID (Attribut system:index). Es handelt sich um einen Inner Join von zwei Sammlungen auf Grundlage der Bild-ID, bei dem Bänder aus übereinstimmenden Bildern kombiniert werden. Bei übereinstimmenden Bildern werden die Bänder des sekundären Bildes an das primäre Bild angehängt (Überschreiben ist optional). Wenn es keine übereinstimmenden Bilder gibt, wird eine leere Sammlung zurückgegeben.

Wie filtere ich Bildsammlungen nach mehreren Zeiträumen?

Weitere Informationen Sie können entweder merge() mehrere Sammlungen zusammenführen oder ee.Filter.or() verwenden.

Wie erstelle ich einen Begrenzungsrahmen um einen bestimmten Punkt?

// 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

Kannst du Dataset X hinzufügen?

Reichen Sie einen Fehlerbericht für die Dataset-Anfrage ein. Folgen Sie dazu dieser Anleitung.

Sie können auch Daten in Ihren Earth Engine-Home-Ordner hochladen. Weitere Informationen finden Sie unter Rasterdaten importieren und Tabellendaten importieren.

Für ein vorhandenes Dataset ist eine neue Version verfügbar

Melden Sie einen Dataset-Fehler gemäß der Anleitung für Dataset-Anfragen und geben Sie an, dass Sie eine Dataset-Aktualisierung anfordern.

Ein vorhandenes Dataset wird nicht aktualisiert oder es fehlen Assets

Bevor Sie ein Problem melden, prüfen Sie nach Möglichkeit, ob die ausgewählten Assets tatsächlich auf der Website des Dataset-Anbieters vorhanden sind. Weitere Informationen finden Sie in diesem Leitfaden.

Wenn Sie nach einem Asset suchen, indem Sie ein ImageCollection filtern, achten Sie darauf, dass Ihre Filter nicht zu restriktiv sind.

Insbesondere ist Folgendes zu beachten:

  • Sentinel-2 SR-Daten (Level 2) wurden von der ESA nicht für frühe Level 1-Szenen erstellt.

  • Landsat bietet vor dem Jahr 2000 keine weltweite Abdeckung.

Ein vorhandenes Dataset enthält falsche Werte

Im Entwicklerforum posten Fügen Sie ein Skript ein, das die ursprüngliche Auflösung des Assets vergrößert, damit deutlich zu sehen ist, welche Werte falsch sind. Erklären Sie, wo genau Sie den alternativen Wert beobachtet haben.

Wo kann ich noch Fragen zu Datasets stellen?

Fragen zu NASA-Datasets können Sie im NASA Earth Data-Forum stellen.

Bei Fragen zur Funktionsweise der Toolboxes mit Copernicus-Datasets sehen Sie in den Foren S1, S2 und S3 nach.

Wie groß ist der EE-Katalog?

Seit Oktober 2023 enthält der Katalog über 1.000 Datasets. Die Dateigröße beträgt über 90 Petabyte (nach Berücksichtigung der verlustfreien Komprimierung).

Wie oft werden die Daten in EE aktualisiert?

Normalerweise werden alle laufenden Datasets mindestens täglich aktualisiert. Allerdings enthalten nicht alle dieser Datasets jeden Tag neue Daten. Einige Datasets werden mehrmals täglich aktualisiert. Es gibt jedoch keine Richtlinie, die das Vorhandensein der neuesten Assets im Katalog vorschreibt.

Wie kann ich den Inhalt des EE-Katalogs programmatisch aufrufen?

Die Liste der Datasets wird im STAC-Format in einen Google Cloud Storage-Bucket gs://earthengine-stac exportiert. Die Einstiegsdatei ist catalog.json.

Darf ich Google Maps-Daten oder ‑Bilder für Analysen verwenden?

Google lizenziert oder verkauft keine Grundkartendaten für Analysen.

Wie kann ich das Aufnahmedatum eines Assets herausfinden?

Das Asset-Attribut 'system:version' ist der Erfassungszeitstempel, formatiert als Mikrosekunden seit der Unix-Epoche. Im Folgenden sehen Sie ein Beispiel, in dem der Erfassungszeitstempel eines Landsat-Bildes in ein für Menschen lesbares Format konvertiert wird.

var image = ee.Image('LANDSAT/LC08/C02/T1_L2/LC08_044034_20210508');
print('Ingest date', ee.Date(image.getNumber('system:version').divide(1000)));

Sind im Earth Engine-Katalog JSON-LD-Metadaten verfügbar?

Ja, JSON-LD-Metadaten sind in die HTML-Seiten des Katalogs eingebettet. Die Sentinel-2-Seite enthält beispielsweise den folgenden Block:

<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

Wie wird der simpleComposite-Algorithmus implementiert?

Die serverseitige Implementierung entspricht diesem JavaScript-Code.

Wie kann ich wolkenfreie Composites aus Landsat-Daten zur Oberflächenreflexion erstellen?

Landsat-Daten der Stufe 2 (Oberflächenreflexionsvermögen) haben mehrere Qualitätsbänder, mit denen Wolken und andere unerwünschte Bildartefakte maskiert werden können. Ein Beispiel für die Verwendung dieser Bänder zum Verarbeiten von Landsat 8-SR-Bildern und zum Erstellen eines medianen wolkenfreien Composites finden Sie in diesem GIS Stack Exchange-Beitrag. Dasselbe Verfahren wird verwendet, um ein wolkenfreies Composite für die Beispiele für die überwachte Klassifizierung im Entwicklerleitfaden zu erstellen.

Ist eine sensorübergreifende Harmonisierung der Landsat-Oberflächenreflexion erforderlich?

Roy et al., 2016 enthielt eine Analyse der Unterschiede bei der Reflexion zwischen Landsat 7–8 TOA und der Oberflächenreflexion. Sie haben die OLS- und RMA-Koeffizienten veröffentlicht, damit Leser die Reflexionswerte der Daten eines Sensors in die eines anderen Sensors umwandeln können. In der letzten Zeile des Artikels heißt es: „Obwohl die Unterschiede zwischen den Sensoren recht gering sind, können sie je nach Anwendung der Landsat-Daten erhebliche Auswirkungen haben.“ Diese Analyse basierte jedoch auf Daten, die vor der Erhebung erhoben wurden.

Die Verbesserungen, die während der Neuverarbeitung von Collection 1 und Collection 2 vorgenommen wurden, können sich auf die Beziehung zwischen den Sensoren auswirken. Soweit uns bekannt ist, gab es jedoch keine Analysen, die denen von Roy et al. (2016) für Daten aus Collection 1 oder Collection 2 ähneln. Obwohl keine formelle Analyse durchgeführt wurde, scheint es einen allgemeinen Konsens unter einflussreichen Landsat-Nutzern zu geben, dass für Daten der Collection 2, Level 2 (Oberflächenreflexionsvermögen) keine Korrektur erforderlich ist. In einer Antwort auf eine Frage zur Notwendigkeit der Harmonisierung von Collection 2, Level 2, wies Mike Wulder vom Landsat Science Team beispielsweise darauf hin, dass die Oberflächenreflexionsprodukte von Collection 2 je nach Art der interessierenden Anwendung (einschließlich der Kartierung der Landbedeckung und der Änderungserkennung) sehr gut geeignet und zuverlässig sind, ohne dass eine sensorübergreifende Anpassung erforderlich ist.

Wie kann ich Wolken und Wolkenschatten in MSS-Bildern maskieren?

Das Drittanbieter-msslib-Modul für den JavaScript-Code-Editor enthält eine Implementierung des MSScvm-Algorithmus sowie weitere hilfreiche Funktionen zum Analysieren und Vorbereiten von MSS-Daten.

Datenverwaltung

Wem gehören die von mir hochgeladenen Daten?

Gemäß den Nutzungsbedingungen für Earth Engine sind Kunden Inhaber der Daten, die sie in Earth Engine hochladen.

Ich kann keine Daten hochladen.

Sehen Sie sich den Status der Upload-Aufgabe im Bereich „Aufgaben“ rechts oben im Code-Editor an. Sie können auch die Seite für die jeweilige Aufgabe aufrufen.

Wenn keine Aufgabe vorhanden ist, haben Sie die Datei wahrscheinlich über den Code-Editor hochgeladen. Aufgrund eines Netzwerkproblems wurde der Upload jedoch nie abgeschlossen und die Aufgabe wurde nicht erstellt. Versuchen Sie es mit einem anderen Browser oder einem anderen Computer.

Wenn eine Aufgabe fehlgeschlagen ist, sehen Sie sich den angezeigten Fehler an. Wenn keine bestimmte Fehlermeldung angezeigt wird, prüfen Sie zuerst, ob Ihre Datei beschädigt ist. Führen Sie dazu gdalinfo für Rasterdateien oder ogr2ogr für Vektordateien aus. Mit diesen Befehlen wird versucht, alle Daten aus den Quelldateien zu lesen. Wenn die Dateien beschädigt sind, werden Fehler angezeigt.

Beispiel für einen gdalinfo-Aufruf:

gdalinfo -mm -stats -checksum file.tif

Beispiel für einen ogr2ogr-Aufruf, mit dem in.shp in out.csv konvertiert wird:

ogr2ogr -lco GEOMETRY=AS_WKT -f CSV out.csv in.shp

Wenn die Datei gültig aussieht, posten Sie die ID der fehlgeschlagenen Aufgabe als Text (nicht als Screenshot) in der Mailingliste für Entwickler. Aufgaben-IDs haben das Format 4C25GIJBMB52PXTEJTF4JLGL. Machen Sie Ihre Quelldatei nach Möglichkeit öffentlich lesbar. Wenn es sich um eine private Datei handelt, geben Sie sie nur für earthengine@google.com frei, wenn das Earth Engine-Team sie prüfen soll. Wenn es nicht möglich ist, die Quelldatei freizugeben, geben Sie zumindest die Ausgabe von gdalinfo -mm -stats -checksum an.

Wenn Earth Engine eine bestimmte Projektion nicht unterstützt, müssen Sie die Daten vor dem Hochladen neu projizieren, z. B. mit gdalwarp.

Wie lade ich eine Datei im NetCDF- oder einem anderen nicht unterstützten Rasterformat hoch?

In Earth Engine können nur GeoTIFFs hochgeladen werden. Andere GDAL-kompatible Formate können mit gdal_translate in GeoTIFFs konvertiert werden. Beispiel:

gdal_translate -co COMPRESS=DEFLATE file.nc file.tif

Einige NetCDF- oder HDF-Dateien bestehen aus mehreren Unterdatasets, die mit gdalinfo ermittelt werden können. Der Befehl gdal_translate sieht in diesem Fall so aus (beachten Sie den Pfad zwischen den doppelten Anführungszeichen):

gdal_translate HDF4_EOS:EOS_GRID:"/tmp/MCD12Q1.A2001001.h00v08.005.2011055224312.hdf":MOD12Q1:Land_Cover_Type_1 file.tif

NetCDF-Dateien enthalten manchmal keine Projektion, die von GDAL erkannt wird. In diesem Fall müssen Sie die Projektion und die räumliche Ausdehnung in der Befehlszeile des Befehls gdal_translate festlegen. Beispiel:

gdal_translate -a_srs EPSG:4326 -a_ullr -180 90 180 -90 file.nc file.tid

Welche Komprimierungsalgorithmen kann ich für hochgeladene GeoTIFFs verwenden?

Für den Upload können GeoTIFFs mit DEFLATE, JPEG, JPEG-XL/JXL, LERC, LERC_DEFLATE, LERC_ZSTD, LZMA, LZW, WEBP oder ZSTD komprimiert werden. Für das Lesen von COGs in Echtzeit können Sie DEFLATE, JPEG, LZW oder ZSTD verwenden. ZSTD ist eine gute Wahl, da die Dekomprimierung schnell erfolgt und die meisten Bilder gut komprimiert werden.

Wenn Sie die ZSTD-Komprimierung bei Verwendung von gdal_translate anwenden möchten, fügen Sie diese Optionen hinzu. Wenn die Daten Gleitkommawerte enthalten, ändern Sie PREDICTOR in 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

Die Rasteraufnahme läuft seit Tagen und ist noch nicht abgeschlossen.

Prüfen Sie mit gdalinfo, ob für Ihre Datei die folgende GDAL-Option festgelegt ist: INTERLEAVE=PIXEL. Bei Dateien mit dieser Option und vielen Bändern kann die Aufnahme möglicherweise nie abgeschlossen werden, da das Layout solcher Dateien das Lesen sehr langsam macht.

Konvertieren Sie solche Dateien vor dem Hochladen in das Band-Interleaved-Layout:

gdal_translate -co "INTERLEAVE=BAND" src.tif dst.tif

Meine hochgeladenen Raster stimmen nicht mit der Basiskarte überein.

Wenn die Daten leicht von der Grundkarte abweichen, hat die Projektion wahrscheinlich ein falsches Bezugssystem (Annahme über die Form der Erde). Dies geschieht am häufigsten bei der sinusförmigen Projektion, die nicht vollständig in GDAL-Metadaten codiert werden kann. Wenn Sie wissen, welche Zielprojektion verwendet werden soll (z.B. SR-ORG:6974 für Dateien mit MODIS-Sinusprojektion), legen Sie das Flag --crs beim Befehlszeilen-Upload oder das Feld crs des Upload-Manifests fest.

Wenn die Daten stark verzerrt oder an der falschen Stelle angezeigt werden, ist die Projektion oder affine Transformation wahrscheinlich falsch.

Mein Raster wird nur über der östlichen Hemisphäre angezeigt.

Wahrscheinlich haben Sie ein globales Raster hochgeladen, das den Längengradbereich [0, 360] umfasst. In Earth Engine müssen Raster jedoch im Bereich [-180, 180] liegen. Tauschen Sie die linke und rechte Hälfte des Rasters vor der Aufnahme. GIS Stack Exchange-Vorschläge ansehen

Warum sieht mein aufgenommenes Klassifikationsbild gesprenkelt aus?

Wahrscheinlich haben Sie die Standardrichtlinie MEAN für die Pyramidisierung verwendet. Für Klassifizierungsbilder sollte die MODE-Pyramidenrichtlinie verwendet werden. Für QA-/Bitmaskenbilder sollte die SAMPLE-Pyramidenrichtlinie verwendet werden.

Ich erhalte den folgenden Fehler: „No data value -128.0 cannot be applied to band #0 of type Short<0, 255>.“

GDAL kann Einzelbyte-Bänder nicht als signierte Ganzzahlen behandeln. Daher werden solche Bänder als nicht signierte Ganzzahlen gelesen. Dies würde mit negativen Werten für „Keine Daten“ in Konflikt stehen.

Wenn Ihre Werte tatsächlich signierte Ganzzahlen sind, verwenden Sie den Manifest-Upload und fügen Sie Folgendes in den Kachelabschnitt ein, der Ihre Datei enthält: data_type: "INT8"

Wenn Ihre Werte vorzeichenlose Ganzzahlen sind, hat Ihre Datei einen ungültigen „nodata“-Wert. Sie können ihn beim Hochladen mit dem richtigen Datenwert (oder einem Wert, der nie vorkommt, falls vorhanden) überschreiben. Sie können auch gdal_translate -a_nodata verwenden, um den Nodata-Wert zu ändern, oder gdal_edit.py -unsetnodata, um ihn zu entfernen.

Wie lade ich eine Datei im GeoJSON- oder einem anderen nicht unterstützten Vektorformat hoch?

Mit ogr2ogr können Sie OGR-kompatible Formate in CSV oder SHP übersetzen. Beispiel:

or2ogr -f "ESRI Shapefile" file.shp file.kml

Bei CSV-Uploads kann die Geometriespalte GeoJSON enthalten.

Ich möchte Daten mit Python hochladen oder viele Dateien auf einmal hochladen.

Befehlszeilen-Upload verwenden Für solche Uploads müssen die Quelldateien zuerst in einen GCS-Bucket (Google Cloud Storage) hochgeladen werden. Die Nutzung von GCS ist kostenlos, solange Sie die Limits der kostenlosen Stufe nicht überschreiten. Weitere Informationen finden Sie auf der Preisseite.

Ich möchte ein großes Rastermosaik hochladen, das in viele Kacheln unterteilt ist.

Wenn alle Dateien dieselbe Projektion und Pixelgröße haben, laden Sie sie einfach zusammen in dasselbe Asset hoch. Sie werden automatisch mosaikiert.

Wenn die Dateien unterschiedliche Projektionen oder Pixelgrößen haben, können sie nicht zu einem einzelnen Raster-Asset zusammengefügt werden. Laden Sie stattdessen jede Kachel als separates Asset in dieselbe ImageCollection hoch, die mit ImageCollection.mosaic() mosaikiert werden kann.

Ich versuche, ein Mosaik hochzuladen, erhalte aber Fehlermeldungen zu nicht übereinstimmenden Kacheln.

Kacheln für Earth Engine-Rastermosaike müssen dieselbe Projektion und Pixelgröße haben. Außerdem müssen die Kacheln genau an den Pixelgrenzen ausgerichtet sein.

Ich versuche, eine Datei aus einem GCS-Bucket hochzuladen, aber Earth Engine kann sie nicht finden.

Möglicherweise haben Sie für den GCS-Upload und die Verbindung zu Earth Engine unterschiedliche Google-Konten verwendet. Die GCS-Datei muss für das Konto lesbar sein, mit dem Sie eine Verbindung zu Earth Engine herstellen. Wenn die Anmeldung bei mehreren Browsern die Sache unübersichtlich macht, stellen Sie die Verbindung zu Earth Engine in einem Inkognitofenster her.

Ich möchte viele Assets gleichzeitig exportieren.

Sie müssen jedes Bild einzeln exportieren.

Ich möchte ein Folder oder ein ImageCollection mit einem einzigen Befehl verschieben oder löschen.

Sie müssen zuerst jedes Asset verschieben oder löschen und dann den übergeordneten Ordner oder die übergeordnete Sammlung verschieben oder löschen. Wenn es viele untergeordnete Assets gibt, schreiben Sie eine Shell- oder Python-Schleife, um sie zu durchlaufen.

Ich möchte direkt von außerhalb von Earth Engine auf Earth Engine-Daten zugreifen.

QGIS hat ein Earth Engine-Plug-in.

GDAL hat einen Earth Engine-Treiber.

Andere Systeme können die REST API von EE verwenden.

Ich möchte einen Teil meines Earth Engine-Assets aktualisieren, ohne es vollständig neu aufzunehmen.

In Earth Engine hochgeladene Raster- oder Vektordaten können nicht aktualisiert werden. Es können nur Asset-Metadateneigenschaften aktualisiert werden.

Ich verliere den Zugriff auf mein Konto. Was mache ich mit meinen Assets?

Wenn die Richtlinien des ursprünglichen Kontos die Datenübertragung zulassen, geben Sie Ihre Assets für ein anderes Konto frei und kopieren Sie sie dann in das neue Konto. Verwenden Sie das Befehlszeilen-Kopiertool, wenn viele Assets verschoben werden müssen.

Wenn ein Konto gelöscht wird, kann nicht mehr auf die zugehörigen Assets zugegriffen werden.

Mein exportiertes Bild befindet sich am falschen Ort.

Bei einigen Projektionen, z. B. sinusförmigen oder kegelförmigen, können in GeoTIFF-Dateien manchmal nicht alle erforderlichen Projektionsparameter gespeichert werden. Das führt dazu, dass eine exportierte Datei an der falschen Stelle angezeigt wird, wenn sie in Desktop-GIS-Tools aufgerufen oder wieder in Earth Engine aufgenommen wird.

Um dieses Problem zu beheben, geben Sie einen Exportparameter crs an, der bekanntermaßen gut mit GeoTIFF-Dateien funktioniert. Verwenden Sie beispielsweise den EPSG-Code für die UTM-Zone, die Ihr Interessengebiet enthält.

Welchen Cloud Storage-Bucket-Standort sollte ich zum Speichern von COG-Assets verwenden?

Die Antwort hängt davon ab, was Sie optimieren möchten. Wenn Sie den Zugriff auf Berechnungen mit geringer Latenz optimieren, sind die besten GCS-Bucket-Standorte zum Speichern von COG-Assets US-CENTRAL*. Weitere Informationen finden Sie auf der Seite Bucket-Standorte.

Beim Exportieren von Assets für Sammlungen von Funktionen werden die von mir festgelegten Attribute nicht beibehalten.

Bei keiner Export.table.*-Funktion werden Eigenschaften auf Tabellenebene in der Ausgabe beibehalten. Für viele Ausgabeformate (z.B. CSV, GeoJSON) werden solche Metadaten nicht unterstützt. Die Funktion Export.table.toAsset könnte Eigenschaften auf Tabellenebene unterstützen, tut dies aber derzeit nicht.

Tabellen, die als CSV-Format nach Drive exportiert werden, werden in das XLSX-Format konvertiert.

Je nach Ihren Google Drive-Einstellungen können CSV-Tabellen, die Sie aus Earth Engine exportieren, in XLSX-Dateien konvertiert werden. Dies kann unerwünschte Auswirkungen haben, z. B. die Konvertierung von Datentypen. So ändern Sie das Verhalten für nachfolgende Exporte:

  1. Klicken Sie in Google Drive im Web rechts oben auf das Zahnradsymbol für die Einstellungen.
  2. Klicke auf „Einstellungen“.
  3. Scrollen Sie zu „Hochgeladene Dateien in das Google-Dokumentenformat konvertieren“ und deaktivieren Sie die Option.

Code-Editor

Ich kann mich nicht im Codeeditor anmelden, da ich aufgefordert werde, das falsche Konto zu verwenden.

Melden Sie sich ab, wählen Sie auf der Seite „Konto auswählen“ das Konto aus, das für die Verwendung von Earth Engine registriert ist, und wählen Sie dann auf der zweiten Seite „Konto auswählen, um mit Earth Engine Code Editor fortzufahren“ (die genaue Formulierung kann abweichen) dasselbe Konto noch einmal aus.

Ich möchte einen Screenshot einer Weltkarte erstellen, aber die Web-Mercator-Projektion gefällt mir nicht.

Die im Code-Editor verwendete Kartenprojektion ist Web Mercator („EPSG:3857“). Dadurch werden Objekte, die sich nicht in der Nähe des Äquators befinden, größer dargestellt. Regionen in hohen Breitengraden erscheinen im Vergleich zu Regionen in der Nähe des Äquators viel größer, als sie tatsächlich sind. Sie können die Projektion des Kartenbereichs des Code-Editors nicht ändern, aber Sie können mit der Methode ee.Image.changeProj ein Bild in der Projektion Ihrer Wahl auf den Web Mercator-Bereich „malen“. Ein Beispiel für die Darstellung eines globalen DEM auf der Code Editor-Karte in der Robinson-Projektion finden Sie auf der API-Referenzseite der Methode. Diese Technik sollte nur zu Visualisierungszwecken verwendet werden, da der Inspector und die Zeichenwerkzeuge des Code-Editors weiterhin in Web Mercator ausgeführt werden.

Mein Script wird nicht gespeichert (Script error: Unknown commit).

Wenn Sie beim Speichern eines Skripts eine Script error: Unknown commit-Meldung erhalten, bedeutet das wahrscheinlich, dass das Repository, in dem Sie das Skript speichern, nicht synchronisiert ist. Die Ursache für diesen Status ist variabel und schwer zu identifizieren. Um das Problem zu beheben, aktualisieren Sie die Script-Liste über die Schaltfläche rechts oben auf dem Tab „Script“. Wenn das nicht funktioniert, versuchen Sie, über die Schaltfläche „Neu“ auf dem Tab „Script“ ein neues Repository zu erstellen und Ihr Script dort zu speichern. Möglicherweise müssen Sie Scripts aus dem nicht synchronisierten Repository in das neue Repository verschieben.