Bevor Sie über eine Clientbibliothek Anfragen an Earth Engine senden können, müssen Sie sich authentifizieren und die resultierenden Anmeldedaten verwenden, um den Earth Engine-Client zu initialisieren.
Earth Engine-Code-Editor und JavaScript
Authentifizierung und Initialisierung werden im Code-Editor automatisch durchgeführt. Sie können Anfragen über ein Cloud-Projekt weiterleiten, indem Sie sich oben rechts im Code-Editor anmelden.
Wenn Sie die JavaScript API außerhalb des Code-Editors verwenden, nutzen Sie einen der Authentifizierungs-Hilfsprogramme in ee.data (z. B. ee.data.authenticateViaPopup()) gefolgt von ee.initialize(), wie in diesem Beispiel gezeigt.
Python und Befehlszeile
Bevor Sie die Earth Engine Python-Clientbibliothek verwenden können, müssen Sie sich authentifizieren (Ihre Identität bestätigen) und die resultierenden Anmeldedaten verwenden, um den Python-Client zu initialisieren. Die Authentifizierungsabläufe verwenden Cloud-Projekte zur Authentifizierung und werden sowohl für die unbezahlte (kostenlose, nicht kommerzielle) als auch für die kostenpflichtige Nutzung verwendet. Führen Sie zur Authentifizierung und Initialisierung Folgendes aus:
ee.Authenticate()
ee.Initialize(project='my-project')
Dadurch wird zuerst der beste Authentifizierungsmodus für Ihre Umgebung ausgewählt und Sie werden aufgefordert, den Zugriff für Ihre Skripts zu bestätigen. Wenn bereits Anmeldedaten vorhanden sind, werden sie automatisch wiederverwendet. Führen Sie ee.Authenticate(force=True) aus, um neue Anmeldedaten zu erstellen.
Im Initialisierungsschritt wird geprüft, ob gültige Anmeldedaten vorhanden sind, die entweder mit ee.Authenticate() erstellt wurden oder bereits als Google-Standardanmeldedaten vorhanden sind. Anschließend wird die Python-Clientbibliothek mit Methoden initialisiert, die der Backend-Server unterstützt. Sie müssen ein Projekt angeben, dessen Inhaber Sie sind oder für das Sie die Berechtigungen haben. Informationen zum Registrieren des Projekts und zum Aktivieren der Earth Engine API finden Sie unter Cloud-Projekt einrichten. Dieses Projekt wird für die Ausführung aller Earth Engine-Vorgänge verwendet.
In der Befehlszeile lautet der entsprechende Aufruf earthengine authenticate. Wenn die Anmeldedaten abgelaufen oder ungültig sind, müssen Sie möglicherweise earthengine
authenticate --force ausführen. Befehlszeilenaufrufe werden bei jedem Aufruf initialisiert. Sie können das Argument --project verwenden, um das Projekt festzulegen.
Sie können ein Projekt auch für alle zukünftigen Aufrufe konfigurieren, indem Sie earthengine
set_project {my-project} ausführen. Die Befehlszeile und ee.Initialize() verwenden diese, wenn ein Projekt nicht direkt angegeben wird. Wenn Sie die Authentifizierung über gcloud verwenden (siehe unten), wird das von gcloud auth application-default
set-quota-project {my-project} festgelegte Projekt als letzter Fall verwendet.
Authentifizierungsdetails
Das Ziel der Earth Engine-Authentifizierungsabläufe ist es, ein Sicherheitstoken von Ihrem angemeldeten Konto zu erhalten, das gespeichert werden kann, um Ihren Skripts Zugriff auf Ihre Daten zu gewähren. Aus Sicherheitsgründen werden solche Tokens vom Authentifizierungssystem von Google nur an Systeme weitergegeben, die gesichert werden können. Weitere Informationen finden Sie unten in den technischen Hinweisen.
Aufgrund der Sensibilität der beteiligten Systeme gibt es je nach Situation verschiedene Möglichkeiten, vorzugehen. Die meisten Optionen werden über den Parameter auth_mode gesteuert: entweder als ee.Authenticate(auth_mode=...) oder als earthengine authenticate --auth_mode=... in der Befehlszeile.
Wenn in Ihrer Umgebung bereits Google-Anmeldedaten vorhanden sind, müssen Sie ee.Authenticate() möglicherweise gar nicht aufrufen. Google Cloud-VMs, App Engine und andere Umgebungen stellen nutzbare „Umgebungsanmeldedaten“ bereit, die auch von gcloud auth
application-default login erstellt werden.
ee.Authenticate() wird jedoch am Anfang aller Skripts empfohlen, um die Kompatibilität zu maximieren. Ohne den Parameter auth_mode ist er für die meisten Situationen geeignet. Wenn der Standardmodus jedoch nicht funktioniert, folgen Sie der Anleitung unten.
Der Standardmodus wird so ausgewählt:
colab, wenn Sie ein Google Colab-Notebook verwendennotebook, wenn Sie andere Jupyter-Notebooks verwenden, die nicht von Colab stammenlocalhost, wenn ein Webbrowser erkannt wird und keine gcloud-Binärdatei installiert ist- Andernfalls
gcloud. Für diesen Modus müssen Sie gcloud installieren.
Kurzanleitung und Tabelle
In diesem Entscheidungsleitfaden werden die möglichen Optionen beschrieben, wenn der von ee.Authenticate() ausgewählte Standardmodus nicht funktioniert. Wenn Sie beispielsweise in anderen Notebook-Umgebungen arbeiten, müssen Sie notebook möglicherweise explizit angeben.
- Lokale Umgebung.
- „Lokal“ bedeutet, dass Sie Code in einer Python-Shell oder einem Python-Notebook auf dem Computer ausführen, der vor Ihnen steht, oder genauer gesagt, auf demselben Computer, auf dem Ihr Webbrowser ausgeführt wird. Dies gilt auch für Remote-Desktop-Szenarien, in denen sich sowohl Python als auch der Browser auf demselben (Remote-)Computer befinden.
auth_mode=localhostist am einfachsten und wird standardmäßig ausgewählt, wenn gcloud nicht installiert ist. Ihr Skript funktioniert dann aber nur in lokalen Umgebungen.- Sowohl
auth_mode=gcloudals auchauth_mode=notebooksind ebenfalls verfügbar.
- Remote-Umgebung.
- „Remote“ bedeutet, dass sich Ihr Browser auf einem (lokalen) Computer befindet, Ihr Code jedoch an anderer Stelle ausgeführt wird, z. B. auf einer Remote-Workstation oder in einem webbasierten Notebook.
- Verwenden Sie in Colab
auth_mode=colabodergcloud, wenn Siescopesfestlegen müssen, um andere APIs aufzurufen. - Wenn Sie gcloud sowohl auf dem Remote-Computer als auch auf Ihrem lokalen Computer installieren können, verwenden Sie
auth_mode=gcloud. - Wenn Sie ein Authentifizierungsprojekt verwenden können (siehe unten), verwenden Sie
auth_mode=notebook. - Wenn Sie kein Projekt verwenden, gcloud nicht installieren, Colab nicht verwenden oder keinen Browser auf demselben Computer verwenden können:
- Sprechen Sie (noch einmal) mit einem Administrator über das Erstellen von Projekten. Beispiel:
- Bitten Sie den Administrator, ein Projekt für Sie zu konfigurieren (als Inhaber, Bearbeiter oder OAuth-Konfigurationsbearbeiter).
- Oder bitten Sie den Administrator, Ihnen die Berechtigung zum Erstellen eines Projekts zu erteilen.
In dieser Tabelle sehen Sie, welche Kombinationen von Funktionen von den einzelnen Modi unterstützt werden.
| Für lokal oder remote? | Projekt erforderlich | Festlegbare Bereiche | Lokale Befehlszeile erforderlich | Project Owner | |
|---|---|---|---|---|---|
localhost |
lokal | J | Ja | Nein | N |
colab |
Remote | J | Nein | Nein | N |
gcloud |
beide | J | Ja | Nein | N |
notebook |
beide | J | Ja | Nein | J |
Anmeldedaten für Dienstkonten und Compute Engine
ee.Initialize() verwendet Earth Engine-Anmeldedaten (die ee.Authenticate() in ~/.config/earthengine/credentials speichert) oder ruft Anmeldedaten von google.auth.default() ab. Bei Bedarf können Sie jedoch ein credentials=-Argument übergeben, um Anmeldedaten von anderer Stelle zu verwenden und diese Standardeinstellungen zu umgehen.
Wenn Sie Python-Code authentifizieren, der unbeaufsichtigt ausgeführt wird, sollten Sie sich mit einem Dienstkonto anstelle eines Nutzerkontos authentifizieren. Weitere Informationen zur Verwendung von Dienstkonten mit Earth Engine finden Sie in dieser Dokumentation. Weitere Methoden sind authenticate_service_account im Colab-Authentifizierungsmodul und die Methoden, die im Cloud-Leitfaden zur Authentifizierung als Dienstkonto beschrieben werden.
Wenn Ihr Code auf einer Compute Engine-VM ausgeführt wird, wird für die Umgebung ein Standarddienstkonto erstellt, das ee.Initialize() standardmäßig verwendet. Möglicherweise müssen Sie das Dienstkonto für die Verwendung der Earth Engine registrieren, wenn das Cloud-Projekt, über das die VM gestartet wurde, nicht für die Verwendung mit der Earth Engine (kommerziell oder nicht kommerziell) registriert ist.
Details zu den Modi
auth_mode=colab. ee.Authenticate() erstellt oder ruft die von Colab unterstützten Standardanmeldedaten ab, indem bei Bedarf colab.auth.authenticate_user() ausgeführt wird. Die Anmeldedaten verwenden immer den Bereich cloud-platform und können auch zum Aufrufen anderer Cloud APIs verwendet werden.
auth_mode=gcloud. Dadurch wird die Authentifizierung an das gcloud-Tool delegiert. Das entspricht dem Ausführen von gcloud auth application-default login mit den Standardbereichen der Earth Engine (earthengine, cloud-platform und drive) oder den Bereichen im Argument scopes. Der gcloud-Modus funktioniert sowohl lokal als auch remote.
Detaillierte Anleitung für den gcloud-Modus (lokale und Remote-Fälle)
- Prüfen Sie, ob gcloud auf dem lokalen Computer installiert ist.
- Führen Sie in einem Terminal
gcloud helpaus. Wenn gcloud nicht installiert ist, folgen Sie dieser Anleitung, um gcloud zu installieren.
- Führen Sie in einem Terminal
- Terminal auf dem lokalen Rechner
- Führen Sie in einem Terminal
earthengine authenticateaus. - Die Befehlsausgabe gibt an, dass gcloud zum Abrufen von Anmeldedaten verwendet wird.
- Daraufhin öffnet sich ein Browserfenster mit einer Seite zur Kontoauswahl. Wenn der Browser nicht automatisch geöffnet wird, klicken Sie auf die URL.
- Führen Sie in einem Terminal
- Browser: Kontoauswahl
- Wählen Sie das Konto aus, das Sie für die Authentifizierung verwenden möchten.
- Browser: Zustimmungsbildschirm
- Geben Sie an, ob Sie die angeforderten Bereiche gewähren möchten, und klicken Sie auf „Zulassen“.
- Browser: Bestätigungsbildschirm
- Im Browser wird eine Seite angezeigt, die bestätigt, dass Sie authentifiziert sind. Der Befehl
earthengine authenticatein Ihrem Terminalfenster meldet „Successfully saved authorization token.“ (Autorisierungstoken erfolgreich gespeichert). - In seltenen Fällen erhalten Sie auf der Webseite einen Code, den Sie in die Python-Umgebung einfügen müssen.
- Im Browser wird eine Seite angezeigt, die bestätigt, dass Sie authentifiziert sind. Der Befehl
- Fahren Sie mit der Initialisierung fort.
auth_mode=localhost. Dies ist ein gcloud-ähnlicher Ablauf für Fälle, in denen gcloud nicht installiert ist. Es führt dieselben Schritte wie gcloud aus, funktioniert aber nur für den lokalen Fall. Sie können eine optionale Internetportnummer angeben, z. B. localhost:8086, oder localhost:0 verwenden, um einen Port automatisch auszuwählen. Der Standardport ist 8085.
auth_mode=notebook. Dies ist ein Modus für allgemeine Zwecke, der für Remote-Situationen entwickelt wurde, in denen keine lokalen Befehlszeilen verfügbar sind. Sie werden zur Seite „Notebook Authenticator“ weitergeleitet, auf der Sie ein „Authentifizierungsprojekt“ auswählen oder erstellen müssen. Weitere Informationen und eine Anleitung zur Fehlerbehebung finden Sie unten. Das an ee.Initialize() übergebene Projekt muss nicht mit diesem übereinstimmen. Sie können dasselbe Projekt für die Authentifizierung verwenden, während Sie in verschiedenen Projekten in verschiedenen Notebooks arbeiten. Es wird empfohlen, ein Projekt explizit an ee.Initialize() zu übergeben. Standardmäßig wird jedoch das Authentifizierungsprojekt verwendet.
Detaillierte Anleitung für den Notebook-Modus
- Browser: Notebook
- Führen Sie in einer Notebook-Codezelle den folgenden Code aus, um einen Authentifizierungsablauf im „Notebook“-Modus zu starten.
Klicken Sie auf den Link in der Zellenausgabe, um eine Notebook-Authentifizierungsseite in einem neuen Tab zu öffnen.import ee ee.Authenticate()
- Führen Sie in einer Notebook-Codezelle den folgenden Code aus, um einen Authentifizierungsablauf im „Notebook“-Modus zu starten.
- Browser: Notebook Authenticator
- Prüfen Sie, ob das richtige Nutzerkonto aufgeführt ist.
- Wählen Sie ein Google Cloud-Projekt für die Authentifizierung aus. Wenn Sie ein neues Projekt erstellen müssen, empfehlen wir die Namenskonvention „ee-xyz“, wobei xyz Ihr üblicher Earth Engine-Nutzername ist. (Wenn Sie kein Cloud-Projekt auswählen oder erstellen können, lesen Sie den Abschnitt zur Fehlerbehebung unten.)
- Klicken Sie auf „Generate Token“ (Token generieren).
- Browser: Kontoauswahl
- Es wird eine Seite zur Kontoauswahl angezeigt. Klicken Sie auf das Nutzerkonto, dem Sie Zugriff über das Notebook gewähren möchten.
- Browser: Warnseite
- Es wird eine Warnseite angezeigt, die darauf hinweist, dass Google die App (d.h. den Code im Notebook) nicht erstellt hat. Klicken Sie auf „Weiter“, um dies zu bestätigen.
- Browser: Zustimmungsbildschirm
- Geben Sie an, ob Sie die angeforderten Bereiche gewähren möchten, und klicken Sie auf Weiter.
- Browser: Bildschirm „Autorisierungscode“
- Kopieren Sie den Bestätigungscode für die Autorisierung.
- Browser: Notebook
- Wechseln Sie zurück zum Notebook-Tab und fügen Sie den Bestätigungscode in die Ausgabe der Notebook-Zelle ein.
- In der Zellenausgabe sollte „Successfully saved authorization token.“ angezeigt werden.
- Fahren Sie mit der Initialisierung fort.
Der Notebook-Modus hat einen selten verwendeten Parameter quiet: Wenn er festgelegt ist, wird er „nicht interaktiv“ ausgeführt und Sie werden nicht aufgefordert, den Autorisierungscode einzugeben.
Stattdessen wird ein Befehl zum Speichern des Codes ausgegeben.
Authentifizierungsprojekte
Sie müssen Inhaber, Bearbeiter oder OAuth-Konfigurationsbearbeiter des Authentifizierungsprojekts sein, das im Notebook-Modus verwendet wird. In vielen Fällen, insbesondere in kleineren Teams, kann das Authentifizierungsprojekt, das Sie auf der Seite „Notebook Authenticator“ verwenden, mit dem primären Projekt übereinstimmen, das Sie für andere Aufgaben verwenden.
Aus Sicherheitsgründen ist die „OAuth-Clientkonfiguration“ für das Authentifizierungsprojekt eine einmalige Einrichtung. Wenn Sie oder andere Nutzer aus anderen Gründen einen OAuth-Client für das Projekt eingerichtet haben, kann dieser nicht entfernt werden. Sie erhalten dann die Fehlermeldung „Inkompatible OAuth2-Clientkonfiguration“. Sie müssen ein anderes Projekt für die Authentifizierung verwenden oder die oben genannten Modi „colab“, „localhost“ oder „gcloud“ verwenden.
Details zu Bereichen
Die Standardauthentifizierungseinstellungen von Earth Engine umfassen alle verfügbaren Bereiche. Sie können diesen Abschnitt also überspringen, wenn die Standardeinstellungen Ihren Anforderungen entsprechen.
Earth Engine-Bereiche: Ein OAuth 2.0-Bereich definiert und beschränkt die Ressourcen und Vorgänge, auf die eine Anwendung im Namen eines Nutzers zugreifen darf. Wenn Sie OAuth zur Authentifizierung bei Earth Engine verwenden, müssen Sie einen oder mehrere der folgenden Bereiche anfordern:
https://www.googleapis.com/auth/earthengine: Lese- und Schreibzugriff auf Earth Engine-Assets und -Ressourcen. Erforderlich zum Erstellen, Ändern oder Löschen von Assets, zum Verwalten von Asset-Berechtigungen und zum Ausführen von Exportaufgaben.https://www.googleapis.com/auth/earthengine.readonly: Lesezugriff auf Earth Engine-Assets.
In beiden Bereichen können Skripts ausgeführt und Berechnungen durchgeführt werden (z. B. Ausdrücke auswerten oder Kartendarstellungen rendern).
Google Cloud- und Drive-Bereiche: Wenn Ihre Earth Engine-Abfragen oder -Skripts auf externe Daten oder Assets verweisen, müssen Ihre Anmeldedaten auch die entsprechenden Bereiche für diese Dienste enthalten:
- Cloud Storage (GCS) (beim Lesen aus oder Schreiben in Cloud Storage-Buckets, z. B. beim Laden von Cloud Optimized GeoTIFFs (COGs) oder beim Exportieren von Aufgabenausgaben):
https://www.googleapis.com/auth/devstorage.full_controlhttps://www.googleapis.com/auth/devstorage.read_writehttps://www.googleapis.com/auth/devstorage.read_only
- BigQuery (BQ) (beim Lesen von Tabellen oder Schreiben von Exporten in BigQuery):
https://www.googleapis.com/auth/bigquery
- Google Drive (beim Zugriff auf Daten oder beim Exportieren von Daten nach Google Drive):
https://www.googleapis.com/auth/drivehttps://www.googleapis.com/auth/drive.readonly
Google Cloud bietet auch allgemeine Bereiche, die alle Google Cloud-Dienste umfassen:
- Cloud Platform (umfassender Zugriff auf Google Cloud-Dienste, einschließlich Earth Engine, Cloud Storage und BigQuery; Google Drive ist ein separater Workspace-Dienst und wird von diesen Bereichen nicht abgedeckt):
https://www.googleapis.com/auth/cloud-platformhttps://www.googleapis.com/auth/cloud-platform.read-only
Standardbereiche: Die Standardbereiche, die sowohl vom Earth Engine Code-Editor als auch von Clientbibliotheken (z. B. ee.Authenticate()) konfiguriert werden, umfassen alle diese Bereiche: earthengine, cloud-platform und drive (siehe oben für Details).
Daher ist eine Anpassung des Bereichs (z. B. mit dem Parameter scopes in ee.Authenticate(scopes=[...])) nur erforderlich, wenn Sie bestimmte Sicherheitseinschränkungen oder Organisationsrichtlinien haben, die eine Einschränkung der Berechtigungen erfordern.
Fehlerbehebung
Was kann ich tun, wenn ich kein Cloud-Projekt erstellen kann?
In einigen Organisationen wird festgelegt, wer Cloud-Projekte erstellen darf. Wenn Sie beim Erstellen eines Projekts auf der Seite „Notebook Authenticator“ eine Fehlermeldung erhalten, können Sie Folgendes versuchen:
- Versuchen Sie, direkt ein Projekt zu erstellen, um zu prüfen, ob Sie die erforderlichen Berechtigungen haben.
- Wenden Sie sich an den Administrator Ihrer Organisation, um zu erfahren, welche Prozesse für die Erstellung eines Projekts verfügbar sind.
- Erstellen Sie ein Projekt über ein Konto, das nicht zu einer Organisation gehört, und fügen Sie das Konto, das Sie für die Arbeit verwenden, als Inhaber des Projekts hinzu. Hinweis: Einige Organisationen haben Sicherheitsrichtlinien, die den Zugriff auf OAuth-Clients von externen Projekten verhindern.
Fehler: „Earth Engine API has not been used in project XXX before or it is disabled“ (Die Earth Engine API wurde im Projekt XXX noch nicht verwendet oder ist deaktiviert)
Prüfen Sie zuerst, ob Sie ein Projekt in ee.Initialize() oder über die Befehlszeile konfiguriert haben. Bei den von Cloud und Colab bereitgestellten Standardprojekten ist Earth Engine nicht aktiviert. Zweitens muss die Earth Engine API für Ihr Projekt aktiviert sein.
Fehler: „Das Projekt hat eine inkompatible OAuth2-Clientkonfiguration“
Cloud-Projekte können nur eine OAuth2-Clientkonfiguration haben. Sie können prüfen, ob für ein Cloud-Projekt eine OAuth2-Clientkonfiguration festgelegt ist. Sehen Sie sich dazu die OAuth 2.0-Client-IDs auf der Seite „Anmeldedaten“ an. Sie müssen entweder ein anderes Cloud-Projekt auswählen, für das bereits eine kompatible Konfiguration vom Notebook Authenticator eingerichtet wurde, oder ein Cloud-Projekt ohne OAuth2-Clients auswählen oder erstellen. Der Authenticator konfiguriert dieses Projekt automatisch. Leider können Nutzer im OAuth-System keine Konfigurationen löschen. Sie müssen daher ein anderes Projekt verwenden. Es muss aber nicht dasselbe Projekt sein, das für andere Earth Engine-Arbeiten verwendet wird. Dieser Fehler tritt im Colab-Modus nicht auf.
Fehler: „gcloud failed. Prüfen Sie, ob oben Fehler aufgeführt sind, und installieren Sie gcloud, falls erforderlich.“
Dieser Fehler kann auftreten, wenn gcloud nicht installiert ist oder sich nicht in Ihrem PATH befindet. Er kann auch auftreten, wenn Sie ee.Authenticate(auth_mode='gcloud') aus einer Notebook-Codezelle aufrufen. Verwenden Sie stattdessen ee.Authenticate(), wobei standardmäßig die Authentifizierung im Notebook-Modus verwendet wird. Wenn Sie kein Projekt erstellen können, sehen Sie sich die Lösung oben an.
Was kann ich tun, wenn ich keinen Zugriff auf einen lokalen Computer habe, um gcloud zu installieren?
Wenn Sie in einer reinen Webumgebung ohne Zugriff auf ein lokales Terminal arbeiten und dennoch ein Remote-Terminal verwenden müssen, können Sie das Befehlszeilentool trotzdem initialisieren. Dazu müssen Sie den Notebook-Modus mit dem Befehl earthengine
authenticate --auth_mode=notebook auslösen.
Fehler 400: redirect_uri_mismatch
Dieser Fehler kann auftreten, wenn Sie sich auf einem Remote-Computer ohne Zugriff auf einen Webbrowser authentifizieren. Fügen Sie --quiet hinzu, wenn Sie earthengine authenticate über die Befehlszeile ausführen, oder ee.Authenticate(quiet=True), wenn Sie den Python-Client verwenden. Dazu müssen Sie sich mit gcloud von einem Computer aus authentifizieren, der Zugriff auf einen Webbrowser hat.
Fehler: „Ihre Anwendung wird mit lokalen Standardanmeldedaten für Anwendungen authentifiziert. Für die earthengine.googleapis.com API ist ein Kontingentprojekt erforderlich, das standardmäßig nicht festgelegt ist.“
Dieser Fehler kann auftreten, wenn Earth Engine Ihre Projekt-ID nicht ermitteln kann. Wenn die Optionen zur Fehlerbehebung von Google Cloud nicht funktionieren, versuchen Sie, earthengine set_project YOUR_PROJECT_ID oder gcloud
auth application-default set-quota-project YOUR_PROJECT_ID auszuführen.
Fehler: „Erforderliche Bereiche für [Cloud Storage/BigQuery] fehlen“
Dieser Fehler tritt auf, wenn eine Earth Engine-Anfrage auf Cloud Storage- oder BigQuery-Ressourcen zugreift, die zur Initialisierung von Earth Engine verwendeten Anmeldedaten jedoch nicht die erforderlichen Bereiche für diesen Dienst (oder den Bereich cloud-platform, der alle Google Cloud-Dienste umfasst) enthalten. Dies geschieht in der Regel, wenn Sie den Parameter scopes während der Authentifizierung angepasst haben (z. B. wenn Sie nur Earth Engine-Bereiche für ee.Authenticate(scopes=[...]) angegeben haben) oder wenn vorhandene Anmeldedaten ohne diese Bereiche erstellt wurden.
Es gibt zwei Möglichkeiten, dieses Problem zu beheben:
- Mit Standardbereichen neu authentifizieren: Die Standardanmeldedaten für Earth Engine umfassen den Bereich
cloud-platform, der sowohl Cloud Storage als auch BigQuery abdeckt. Authentifizieren Sie sich noch einmal mit den Standardeinstellungen:- In Python:
ee.Authenticate(force=True) - In der Befehlszeile:
earthengine authenticate --force
- In Python:
- Erforderliche Bereiche einbeziehen: Wenn in Ihrer Umgebung Bereiche angepasst werden müssen, muss die Liste
scopesden Bereichhttps://www.googleapis.com/auth/cloud-platformoder den spezifischen Dienstbereich enthalten (z. B.https://www.googleapis.com/auth/devstorage.full_controloderhttps://www.googleapis.com/auth/devstorage.read_onlyfür Cloud Storage oderhttps://www.googleapis.com/auth/bigqueryfür BigQuery).
Weitere Informationen zu den verfügbaren Bereichen finden Sie unter Details zu Bereichen.
Technische Hinweise
Für technisch Interessierte: Die Notwendigkeit dieser verschiedenen Mechanismen zur Erstellung von Anmeldedaten ergibt sich aus der Notwendigkeit, Anmeldedaten an eine bekannte und vertrauenswürdige Umgebung zu übergeben. Hier eine kurze Erläuterung der oben genannten Fälle.
- Früher gab es einen
paste-Modus, bei dem Sie ein Token erhielten, das Sie an einer beliebigen Stelle einfügen konnten. Dies wurde als zu riskant eingestuft und ist nicht mehr verfügbar. colab:auth.authenticate_user()fordert Sie auf, Anmeldedaten mit dem Auth-Client „Colab“, der Notebook-Umgebung selbst, zu teilen. Diese sind dann übergoogle.auth.default()verfügbar und werden vonee.Initialize()verwendet.localhost: Die Anmeldedaten werden vom Browser an einen Port auf Ihrem lokalen Computer übergeben. In diesem Fall hängt die Ende-zu-Ende-Sicherheit davon ab, dass Ihr lokaler Computer nicht manipuliert wurde. Der Authentifizierungsclient, den Sie sehen, ist der „Earth Engine Authenticator“.gcloud: Hier wird der Ablauf--launch-browserverwendet, der in der gcloud-Referenz beschrieben wird, und--no-launch-browser, wenn Sie sich auf einem Remote-Computer befinden. Der verwendete Authentifizierungsclient ist „Google Auth Library“.notebook: Wir erstellen einen neuen Authentifizierungsclient speziell für Ihre Arbeit. Ihre E-Mail-Adresse wird auf der Zustimmungsseite angezeigt. Dieser Client befindet sich im Entwicklungsmodus. Das ist ein Sonderfall, in dem die älteren Tokens für den Einfügemodus zulässig sind. Dafür müssen wir Ihr eigenes Projekt verwenden, da solche Clients nicht mit einer großen Anzahl von Nutzern geteilt werden können.