Narzędzie wiersza poleceń

Narzędzie earthengine to program narzędziowy, który umożliwia zarządzanie zasobami i zadaniami Earth Engine z poziomu wiersza poleceń. Jest on instalowany automatycznie podczas instalowania interfejsu Python API. Aby sprawdzić, czy narzędzie jest zainstalowane i działa prawidłowo, wpisz w wierszu poleceń:

    earthengine

Jeśli narzędzie jest prawidłowo zainstalowane, wyświetli krótkie podsumowanie dostępnych poleceń. Aby uzyskać pomoc dotyczącą konkretnego polecenia, użyj:

    earthengine command -h

Po pierwszej instalacji interfejsu Python API musisz zalogować się za pomocą polecenia authenticate opisanego poniżej. Więcej informacji o dostępnych poleceniach znajdziesz w sekcjach poniżej.

Dane logowania na konto usługi

Aby używać interfejsu CLI z danymi logowania konta usługi, użyj flagi service_account_file, aby wskazać plik JSON zawierający klucz konta usługi.

    earthengine --service_account_file=service_account_creds.json

Korzystanie z usługi Colab

Narzędzie wiersza poleceń Earth Engine jest wstępnie zainstalowane i gotowe do użycia w Google Colab.

Uwierzytelnianie

Uwierzytelnianie w przypadku każdej nowej sesji Colab lub gdy maszyna wirtualna wygaśnie z powodu braku aktywności (dane logowania nie są zapisywane w sesjach).

Zaimportuj bibliotekę klienta w Pythonie i wywołaj funkcję ee.Authenticate(), aby uruchomić przepływ uwierzytelniania. Postępuj zgodnie z instrukcjami, aby dokończyć uwierzytelnianie. Domyślna wartość auth_mode w Colab to colab. Inne opcje znajdziesz w przewodniku po uwierzytelnianiu.

import ee
ee.Authenticate()

Wykonywanie poleceń

Aby uruchamiać narzędzia wiersza poleceń, takie jak interfejs wiersza poleceń Earth Engine, musisz poprzedzać wywołania poleceń wykrzyknikiem.

!earthengine -h

Ustawianie projektu w Cloud

Użyj opcji --project, aby ustawić projekt w Google Cloud dla każdego polecenia earthengine.

!earthengine --project my-project <command>

Możesz też ustawić projekt domyślny, który będzie używany przez wszystkie wywołania earthengine, za pomocą polecenia set_project. Projekt zostanie dodany do pliku danych logowania (~/.config/earthengine/credentials) i będzie używany w przypadku kolejnych poleceń, chyba że zostanie zastąpiony opcją --project. Ustaw domyślny projekt dla każdej nowej sesji Colab lub jeśli maszyna wirtualna wygaśnie z powodu nieaktywności (dane logowania nie są zapisywane w sesjach).

!earthengine set_project my-project

Polecenia – materiały referencyjne

uwierzytelnij

Uwierzytelnia narzędzie wiersza poleceń i bibliotekę klienta Python w Earth Engine. Przykład:

    earthengine authenticate

Earth Engine używa protokołu OAuth 2.0 do uwierzytelniania klientów. Polecenie earthengine authenticate przeprowadzi Cię przez proces uwierzytelniania w przeglądarce.

Jeśli używasz domyślnego trybu uwierzytelniania gcloud, musisz zainstalować gcloud. Więcej informacji o innych trybach uwierzytelniania dostępnych za pomocą parametru auth_mode znajdziesz w przewodniku po uwierzytelnianiu.

acl

Wyświetla lub aktualizuje listę kontroli dostępu (ACL) zasobu Earth Engine. Lista ACL określa, kto może odczytywać zasób i zapisywać w nim dane. Przykłady:

    earthengine acl get projects/my-project/assets/asset_id
    earthengine acl set public projects/my-project/assets/asset_id
    earthengine acl ch -u username@gmail.com:R projects/my-project/assets/asset_id

Polecenie get wyświetla opis listy ACL w formacie JSON. Podpolecenie set ustawia listę ACL podaną w pliku o tym samym formacie JSON. Możesz skopiować listę ACL z jednego zasobu do innych, zapisując dane wyjściowe z get i przekazując je do set.

Podpolecenie set akceptuje też 2 specjalne nazwy list ACL:

  • private: usuwa uprawnienia wszystkich osób z wyjątkiem właściciela.
  • public: przyznaje uprawnienia do odczytu wszystkim użytkownikom.

Podpolecenie ch umożliwia wprowadzanie indywidualnych zmian w liście ACL. Aby przyznać uprawnienia do odczytu, wpisz -u username@gmail.com:R, aby przyznać uprawnienia do zapisu, wpisz -u username@gmail.com:W, a aby usunąć uprawnienia użytkownika, wpisz -d username@gmail.com. Specjalny identyfikator użytkownika AllUsers może służyć do przyznawania lub odbierania uprawnień do odczytu wszystkim użytkownikom. (Pamiętaj, że cofnięcie uprawnień AllUsers nie powoduje cofnięcia żadnych dodatkowych uprawnień, które mogłeś(-aś) przyznać poszczególnym użytkownikom).

zasób

Wyświetla lub aktualizuje metadane powiązane z zasobem Earth Engine. Przykłady:

    earthengine asset info projects/my-project/assets/asset_id
    earthengine asset set -p name=value projects/my-project/assets/asset_id
    earthengine asset setbands projects/my-project/assets/asset_id band1 band2

Polecenie info wyświetla szczegółowe informacje o zasobie, w tym jego metadane, w formacie JSON. Podpolecenie set ustawia poszczególne właściwości metadanych zasobu. Podpolecenie setbands aktualizuje nazwy pasm komponentu.

Wartości ustawianych przez Ciebie właściwości metadanych mogą być liczbami lub ciągami znaków. Podczas ustawiania nazw właściwości za pomocą flagi --property lub -p oddziel nazwę właściwości i wartość znakiem równości. Typ danych jest wykrywany automatycznie. Możesz też określić go bezpośrednio, dodając przed nazwą właściwości prefiks (string), (number) lub (date). Na przykład ten kod ustawia właściwość o wartości tekstowej z wartością "42":

    earthengine asset set -p '(string)name=42' projects/my-project/assets/asset_id

(Cudzysłowy w tym przykładzie uniemożliwiają interpretację nawiasów przez powłokę. Mogą być konieczne lub nie, w zależności od powłoki i platformy).

Aby utworzyć specjalne właściwości wizualizacji pasm klasyfikacji, możesz przechowywać listy wartości i kolorów jako ciągi znaków rozdzielone przecinkami. Aby na przykład ustawić wartości palety i klasy dla pasma o nazwie landcover:

    earthengine asset set -p 'landcover_class_palette=ff0000,00ff00,0000ff' projects/my-project/assets/asset_id
    earthengine asset set -p 'landcover_class_values=1,2,3' projects/my-project/assets/asset_id

Aby usunąć właściwość, ustaw ją na null bez typu:

    earthengine asset set -p name=null projects/my-project/assets/asset_id

Właściwości daty to po prostu liczby, które reprezentują liczbę milisekund od epoki uniksowej (czyli od północy 1 stycznia 1970 r.). Można je określić bezpośrednio jako liczbę lub w jednym z tych formatów:

    YYYY-MM-DD
    YYYY-MM-DDThh:mm:ss
    YYYY-MM-DDThh:mm:ss.f

Zakłada się, że strefa czasowa to UTC. Możesz ustawić specjalne właściwości czasu rozpoczęcia i zakończenia za pomocą flag --time_start--time_end:

    earthengine asset set --time_start 1978-10-15T12:34:56 projects/my-project/assets/asset_id

cp

Kopiuje zasób. Przykład:

    earthengine cp projects/my-project/assets/asset_id projects/my-project/assets/new_asset_id

utwórz

Tworzy nowe foldery i kolekcje obrazów. Przykład:

    earthengine create folder projects/my-project/assets/folder_id
    earthengine create collection projects/my-project/assets/collection_id

Aby utworzyć foldery, użyj polecenia folder, a aby utworzyć kolekcje obrazów – polecenia collection. Możesz określić opcję -p, aby w razie potrzeby rekursywnie tworzyć foldery nadrzędne. Nowo utworzone foldery i obrazy mają domyślnie prywatne listy ACL.

ls

Wyświetla zawartość co najmniej jednego folderu lub kolekcji. Przykład:

    earthengine ls users/username

Opcja -l powoduje wysłanie prośby o długi format z większą ilością informacji o każdym komponencie (obecnie tylko o jego typie). Możesz użyć wartości --max_items number (lub -m w skrócie), aby ograniczyć liczbę elementów z każdego folderu lub kolekcji, które chcesz wyświetlić:

    earthengine ls -m 10 projects/my-project/assets/my_large_collection

Uruchomienie polecenia ls bez argumentów spowoduje wyświetlenie listy folderów najwyższego poziomu, których jesteś właścicielem.

model

Narzędzie do manipulowania zapisanymi modelami TensorFlow.

model prepare

Przygotuj zapisany model do obsługi w Earth Engine. W szczególności przekształca ona SavedModel w formę odpowiednią do przetwarzania żądań z Earth Engine. (Więcej informacji o SavedModel).

    earthengine model prepare my_source_dir my_dest_dir '{"Conv2D:0":"my_input_band"}' '{"Sigmoid:0":"my_output_band"}'

Więcej informacji o modelach AI Platform znajdziesz tutaj. Pełny przykład znajdziesz tutaj.

mv

Przenosi lub zmienia nazwę komponentu. Przykład:

    earthengine mv projects/my-project/assets/asset_id projects/my-project/assets/new_asset_id

project_config

Ustawia wartości konfiguracji projektu. Zanim użyjesz tego polecenia, ustaw projekt za pomocą polecenia set_project.

get

Aby wyświetlić konfigurację projektu, użyj polecenia get:

    earthengine alpha project_config get

Jeśli masz uprawnienia do wyświetlania ustawień zadania wsadowego projektu, dane wyjściowe zawierają:

  • maxConcurrentExports: liczba wskazująca maksymalną liczbę zadań wsadowych, które mogą być wykonywane równolegle przez wszystkich użytkowników w danym projekcie. Domyślnie jest ona ustawiona na maksymalną wartość dozwoloną w ramach planu subskrypcji powiązanego konta rozliczeniowego.

Jeśli masz uprawnienia do wyświetlania konfiguracji planu, dane wyjściowe zawierają:

  • planMaxConcurrentExports, czyli liczba wskazująca maksymalną liczbę zadań wsadowych, które mogą być uruchamiane równolegle przez wszystkich użytkowników i we wszystkich projektach korzystających z konta rozliczeniowego.

zestaw

Aby zaktualizować konfigurację projektu, użyj polecenia set. Możesz skonfigurować te ustawienia:

Aby na przykład skonfigurować projekt tak, aby w danym projekcie można było uruchamiać równolegle tylko 10 zadań:

    earthengine alpha project_config set --max_concurrent_exports=10

Dane wyjściowe zawierają zaktualizowaną konfigurację projektu, identyczną z tą, którą zwraca get.

Więcej informacji o równoległości zadań wsadowych znajdziesz na stronie limity Earth Engine.

rm

Usuwa co najmniej 1 zasób. Przykład:

    earthengine rm projects/my-project/assets/asset_id
    earthengine rm -r projects/my-project/assets/folder_id

Możesz użyć flagi -r, aby rekursywnie usunąć zawartość folderu lub kolekcji. Aby zachować bezpieczeństwo podczas usuwania wielu komponentów, możesz użyć flagi --dry_run, aby sprawdzić, co dokładnie zostanie usunięte, bez faktycznego usuwania czegokolwiek.

set_project

Ustawia projekt Google Cloud, przez który są kierowane żądania obliczeniowe.

    earthengine set_project foo-project

To polecenie jest potrzebne przed uruchomieniem poleceń wymagających funkcji Cloud, np. model.

działanie

Wyświetla informacje o długotrwałych zadaniach lub nimi zarządza. Przykłady:

    earthengine task list
    earthengine task list -l
    earthengine task info TASK_ID
    earthengine task cancel TASK_ID

Podpolecenie list wyświetla podstawowe informacje o zadań przesłanych przez Ciebie w ostatnim czasie. Opcja -l powoduje wysłanie prośby o długi format z większą ilością informacji o każdym zadaniu. Podpolecenie info wyświetla szczegółowe informacje o poszczególnych zadaniach. Podpolecenie cancel anuluje co najmniej 1 trwające zadanie.

przesyłanie

Przesyła obrazy lub tabele z Google Cloud Storage do Earth Engine albo tworzy zasoby oparte na obrazach zewnętrznych.

obraz

Aby przesłać komponent z obrazem przy użyciu ustawień domyślnych:

    earthengine upload image --asset_id=projects/my-project/assets/asset_id gs://bucket/image.tif

Jeśli określisz kilka plików obrazów wejściowych, zostaną one zinterpretowane jako kafelki jednego komponentu z obrazem. Więcej informacji o opcjach przesyłania obrazów do Earth Engine znajdziesz w artykule Przesyłanie komponentów z obrazem: opcje zaawansowane.

Zasady redukcji piramidy możesz określić za pomocą flagi --pyramiding_policy, której wartość może być jedną z tych opcji: mean (domyślna), sample, mode, min lub max. Określa to, w jaki sposób Earth Engine generuje piramidę wersji obrazu o niższej rozdzielczości:

    earthengine upload image --asset_id=projects/my-project/assets/asset_id --pyramiding_policy=sample gs://bucket/image.tif

Możesz użyć znaku --last_band_alpha, aby wskazać, że maska obrazu powinna być pobrana z kanału alfa w ostatnim paśmie:

    earthengine upload image --asset_id=projects/my-project/assets/asset_id --last_band_alpha gs://bucket/image.tif

Wartość „brak danych” możesz określić za pomocą flagi --nodata_value. Spowoduje to zamaskowanie wszystkich pikseli na obrazie o tej wartości:

    earthengine upload image --asset_id=users/myuser/asset --nodata_value=255 gs://bucket/image.tif

Możesz też określić właściwości metadanych, które mają być ustawione w przypadku komponentu, używając tych samych flag, które są akceptowane przez polecenie asset set opisane powyżej. Opcje te są też opisane w przewodniku Image Manifest.

tabela

Aby przesłać plik Shapefile, CSV lub TFRecord z Google Cloud Storage do zasobu tabeli Earth Engine, możesz użyć dowolnej z tych metod:

    earthengine upload table --asset_id=projects/my-project/assets/myUploadedShapefile gs://bucket/foo.shp
    earthengine upload table --asset_id=projects/my-project/assets/myUploadedCSV gs://bucket/foo.csv
    earthengine upload table --asset_id=projects/my-project/assets/myUploadedTFRecord gs://bucket/foo.tfrecord
.

Istnieje wiele opcji dotyczących sposobu interpretacji plików CSV i TFRecord. Pełną listę opcji przesyłania tabel znajdziesz w przewodniku Manifest tabeli lub w tym miejscu:

    earthengine upload table -h

external_image

Aby utworzyć zasób oparty na obrazie zewnętrznym, uruchom polecenie upload_image z plikiem manifestu:

earthengine upload external_image --manifest /tmp/foo.json

Przykładowy plik manifestu:

{
  "name": "projects/{project}/assets/cogdemo1",
  "tilesets": [
    { "id": "0", "sources": [{ "uris": ["gs://ee-docs-demos/COG_demo.tif"] }] }
  ],
  "properties": {
    "source": "https://code.earthengine.google.com/d541cf8b268b2f9d8f834c255698201d"
  },
  "startTime": "2016-01-01T00:00:00.000000000Z",
  "endTime": "2016-12-31T15:01:23.000000000Z"
}

Więcej informacji o tworzeniu manifestu znajdziesz w przewodnikach Cloud GeoTIFFImage Manifest.