Bevor Sie Anfragen an Earth Engine über eine Clientbibliothek 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 automatisch im Code-Editor verarbeitet. Sie können Anfragen über ein Cloud-Projekt weiterleiten, indem Sie sich rechts oben im Code-Editor anmelden.
Wenn Sie die JavaScript API außerhalb des Code-Editors verwenden, nutzen Sie einen der Authentifizierungs-Helfer 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, 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 kostenlose, nicht kommerzielle Nutzung als auch für die kostenpflichtige Nutzung verwendet. Führen Sie Folgendes aus, um sich zu authentifizieren und zu initialisieren:
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 über ee.Authenticate() erstellt wurden oder als Google-Standardanmeldedaten bereits vorhanden sind. Anschließend wird die Python-Clientbibliothek mit Methoden initialisiert, die vom Back-End-Server unterstützt werden. Sie müssen ein Projekt angeben, dessen Inhaber Sie sind oder für das Sie Berechtigungen haben. Unter Cloud-Projekt einrichten erfahren Sie, wie Sie das Projekt registrieren und die Earth Engine API aktivieren. Dieses Projekt wird für alle Earth Engine-Vorgänge verwendet.
In der Befehlszeile entspricht das dem Aufruf earthengine authenticate. Wenn 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 auch ein Projekt für alle zukünftigen Aufrufe konfigurieren, indem Sie earthengine
set_project {my-project} ausführen. Die Befehlszeile und ee.Initialize() verwenden dies, wenn ein Projekt nicht direkt angegeben wird. Wenn Sie die Authentifizierung über gcloud (siehe unten) verwenden, wird das von gcloud auth application-default
set-quota-project {my-project} festgelegte Projekt als letzter Fall verwendet.
Authentifizierungsdetails
Ziel der Earth Engine-Authentifizierungsabläufe ist es, ein Sicherheitstoken von Ihrem angemeldeten Konto zu erhalten, das gespeichert werden kann, um Ihren Skripts die Berechtigung zum Zugriff auf Ihre Daten zu erteilen. Aus Sicherheitsgründen werden solche Tokens vom Authentifizierungssystem von Google nur an Systeme weitergegeben, die gesichert werden können (siehe technische Hinweise unten).
Aufgrund der Sensibilität der betroffenen Systeme gibt es je nach Situation unterschiedliche Vorgehensweisen. 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.
Hinweis: 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 bieten nutzbare „Ambient Credentials“ und gcloud auth
application-default login erstellt sie ebenfalls.
ee.Authenticate() wird jedoch am Anfang aller Skripts empfohlen, um die Kompatibilität zu maximieren. Ohne den Parameter auth_mode ist der Standardmodus für die meisten Situationen geeignet. Wenn er nicht funktioniert, folgen Sie der Anleitung unten.
Der Standardmodus wird so ausgewählt:
colabwenn die Ausführung in einem Google Colab-Notebook erfolgtnotebook, wenn Sie andere Jupyter-Notebooks als Colab-Notebooks verwendenlocalhost, 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, vor dem Sie sitzen – oder genauer gesagt auf demselben Computer, auf dem Ihr Webbrowser ausgeführt wird. Das gilt auch für Remote-Desktop-Szenarien, in denen sich sowohl Python als auch der Browser auf demselben (Remote-)Computer befinden.
- Die Verwendung von
auth_mode=localhostist am einfachsten und wird standardmäßig ausgewählt, wenn gcloud nicht installiert ist. Ihr Skript funktioniert jedoch nur in lokalen Umgebungen. - Sowohl
auth_mode=gcloudals auchauth_mode=notebooksind verfügbar.
- Remote-Umgebung
- Remote bedeutet, dass sich Ihr Browser auf einem (lokalen) Computer befindet, Ihr Code jedoch an einem anderen Ort 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 Remotecomputer 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 ein Projekt nicht 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 Berechtigungen zum Erstellen eines Projekts zu gewähren.
In dieser Tabelle sehen Sie, welche Kombinationen von Funktionen von den einzelnen Modi unterstützt werden.
| Lokal oder remote? | Projekt erforderlich | Bereiche festlegbar | 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 aus google.auth.default() ab. Bei Bedarf können Sie jedoch ein credentials=-Argument übergeben, um Anmeldedaten von einem anderen Ort 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. Hier finden Sie weitere Informationen zur Verwendung von Dienstkonten mit Earth Engine. Andere 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 registrieren, um die Earth Engine zu verwenden, 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 ist dasselbe wie das Ausführen von gcloud auth application-default login mit den Standard-Earth Engine-Bereichen (earthengine, cloud-platform und drive) oder den Bereichen im scopes-Argument. Der gcloud-Modus funktioniert sowohl lokal als auch remote.
Schritt-für-Schritt-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 des lokalen Rechners
- Führen Sie in einem Terminal
earthengine authenticateaus. - Die Befehlsausgabe gibt an, dass gcloud zum Abrufen von Anmeldedaten verwendet wird.
- Ein Browserfenster mit einer Seite zur Kontoauswahl wird geöffnet. 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. Im Terminalfenster wird mit dem Befehl
earthengine authenticatedie Meldung „Successfully saved authorization token.“ (Autorisierungstoken erfolgreich gespeichert) ausgegeben. - In Remote-Fällen erhalten Sie auf der Webseite einen Code, den Sie wieder in die Python-Umgebung einfügen müssen.
- Im Browser wird eine Seite angezeigt, die bestätigt, dass Sie authentifiziert sind. Im Terminalfenster wird mit dem 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 werden dieselben Schritte wie bei gcloud ausgeführt, 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. Dieser Modus ist für den allgemeinen Gebrauch konzipiert und kann in Situationen verwendet werden, 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 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 Notebooks in verschiedenen Projekten 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 Authentifizierungsvorgang im Modus „notebook“ zu starten.
Klicken Sie auf den Link in der Zellausgabe, um die Seite „Notebook Authenticator“ in einem neuen Tab zu öffnen.import ee ee.Authenticate()
- Führen Sie in einer Notebook-Codezelle den folgenden Code aus, um einen Authentifizierungsvorgang im Modus „notebook“ 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 „Token generieren“.
- Browser: Kontoauswahl
- Ihnen wird eine Seite zur Kontoauswahl angezeigt. Klicken Sie auf das Nutzerkonto, dem Sie über das Notebook Zugriff gewähren möchten.
- Browser: Warnseite
- Es wird eine Warnseite angezeigt, auf der darauf hingewiesen wird, dass die App (d.h. der Code im Notebook) nicht von Google erstellt wurde. Klicken Sie auf „Weiter“, um die Änderungen zu bestätigen.
- Browser: Zustimmungsbildschirm
- Geben Sie an, ob Sie die angeforderten Bereiche gewähren möchten, und klicken Sie auf Weiter.
- Browser: Bildschirm für Autorisierungscode
- Autorisierungsbestätigungscode kopieren
- 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 Zellausgabe sollte „Successfully saved authorization token.“ (Autorisierungstoken wurde gespeichert) 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 Config Editor 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 identisch sein, das Sie für andere Aufgaben verwenden.
Aus Sicherheitsgründen ist die „OAuth-Clientkonfiguration“ im Authentifizierungsprojekt eine einmalige Einrichtung. Wenn Sie oder andere Nutzer einen OAuth-Client im Projekt aus anderen Gründen eingerichtet haben, kann er 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 Menge an Ressourcen und Vorgängen, 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: Schreibgeschützter Zugriff auf Earth Engine-Assets.
Mit beiden Bereichen können Skripts ausgeführt und Berechnungen durchgeführt werden, z. B. das Auswerten von Ausdrücken oder das Rendern von Kartendarstellungen.
Google Cloud- und Drive-Bereiche: Wenn in Ihren Earth Engine-Abfragen oder ‑Skripten auf externe Daten oder Assets verwiesen wird, 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-optimierten GeoTIFFs oder beim Exportieren von Task-Ausgaben):
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 oder Exportieren von Daten nach Google Drive):
https://www.googleapis.com/auth/drivehttps://www.googleapis.com/auth/drive.readonly
Google Cloud bietet auch umfassende 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 nicht von diesen Bereichen 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 Sicherheitsbeschrä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 gesteuert, wer Cloud-Projekte erstellen darf. Wenn Sie auf der Seite „Notebook Authenticator“ eine Fehlermeldung erhalten, wenn Sie versuchen, ein Projekt zu erstellen, können Sie Folgendes versuchen:
- Erstellen Sie ein Projekt, 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 mit einem Konto, das nicht zu Ihrer 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 aus 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. Für die von Cloud und Colab bereitgestellten Standardprojekte 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, indem Sie die OAuth 2.0-Client-IDs auf der Seite „Anmeldedaten“ aufrufen. Sie müssen entweder ein anderes Cloud-Projekt auswählen, in dem bereits eine kompatible Konfiguration durch den 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-Aufgaben verwendet wird. Dieser Fehler tritt im Colab-Modus nicht auf.
Fehler: „gcloud failed. Bitte prüfen Sie, ob oben Fehler aufgetreten sind, und installieren Sie gcloud bei Bedarf.“
Dieser Fehler kann auftreten, wenn gcloud nicht installiert ist oder sich nicht in Ihrem PATH befindet. Der Fehler kann auch auftreten, wenn Sie ee.Authenticate(auth_mode='gcloud') aus einer Codezelle in einem Notebook aufrufen. Verwenden Sie stattdessen ee.Authenticate(). Dadurch wird standardmäßig die Authentifizierung im Notebook-Modus verwendet. Wenn Sie kein Projekt erstellen können, lesen Sie die Lösung oben.
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 trotzdem ein Remote-Terminal verwenden müssen, können Sie das Befehlszeilentool initialisieren, indem Sie den Notebook-Modus mit dem Befehl earthengine
authenticate --auth_mode=notebook aufrufen.
Fehler 400: redirect_uri_mismatch
Dieser Fehler kann auftreten, wenn Sie sich auf einem Remotecomputer 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 auf einem Computer, der Zugriff auf einen Webbrowser hat, mit gcloud authentifizieren.
Fehler: „Ihre Anwendung wird mit lokalen Standardanmeldedaten für Anwendungen authentifiziert. Für die API „earthengine.googleapis.com“ ist ein Kontingentprojekt erforderlich, das nicht standardmäßig festgelegt ist.“
Dieser Fehler kann auftreten, wenn Earth Engine Ihre Projekt-ID nicht ermitteln kann. Wenn die Fehlerbehebungsoptionen von Google Cloud nicht funktionieren, führen Sie earthengine set_project YOUR_PROJECT_ID oder gcloud
auth application-default set-quota-project YOUR_PROJECT_ID aus.
Fehler: „Erforderliche Bereiche für [Cloud Storage / BigQuery] fehlen“
Dieser Fehler tritt auf, wenn in einer Earth Engine-Anfrage auf Cloud Storage- oder BigQuery-Ressourcen zugegriffen wird, die Anmeldedaten, die zum Initialisieren von Earth Engine verwendet werden, jedoch nicht die erforderlichen Bereiche für diesen Dienst (oder den Bereich cloud-platform, der alle Google Cloud-Dienste umfasst) enthalten. Das passiert in der Regel, wenn Sie den Parameter scopes während der Authentifizierung angepasst haben (z. B. 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 Standardskopes neu authentifizieren: Standardanmeldedaten für Earth Engine enthalten den
cloud-platform-Bereich, der sowohl Cloud Storage als auch BigQuery umfasst. 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 benutzerdefinierte Bereiche erforderlich sind, muss Ihre
scopes-Listehttps://www.googleapis.com/auth/cloud-platformoder den spezifischen Dienstbereich (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) enthalten.
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 finden Sie eine kurze Erläuterung der verschiedenen Fälle oben.
- Früher gab es den Modus
paste, mit dem Sie ein Token zum Einfügen an beliebiger Stelle erhalten haben. Dies wurde als zu riskant eingestuft und ist nicht mehr verfügbar. colab:auth.authenticate_user()fordert Sie auf, Anmeldedaten für den Auth-Client „Colab“ (die Notebook-Umgebung selbst) freizugeben. Diese sind dann übergoogle.auth.default()verfügbar und werden vonee.Initialize()verwendet.localhost: Anmeldedaten werden vom Browser an einen Port auf Ihrem lokalen Rechner übergeben. In diesem Fall hängt die Ende-zu-Ende-Sicherheit davon ab, dass Ihr lokaler Computer nicht kompromittiert wurde. Der angezeigte Authentifizierungsclient ist der „Earth Engine Authenticator“.gcloud: Hier wird der in der gcloud-Referenz beschriebene--launch-browser-Ablauf verwendet und--no-launch-browser, wenn Sie sich auf einem Remote-Computer befinden. Der verwendete Auth-Client ist die „Google Auth Library“.notebook: Wir erstellen einen neuen Autorisierungsclient speziell für Ihre Arbeit. Ihre E‑Mail-Adresse wird auf der Einwilligungsseite angezeigt. Dieser Client befindet sich im Entwicklermodus. Das ist ein Sonderfall, der die Verwendung der alten Einfügemodus-Tokens ermöglicht. Dazu müssen wir Ihr eigenes Projekt verwenden, da solche Clients nicht für eine große Anzahl von Nutzern freigegeben werden können.