Zarządzaj zasobami

Zasoby Earth Engine to dane geoprzestrzenne należące do projektu, które są przechowywane na platformie. Możesz przesyłać własne dane i przechowywać dane wygenerowane na podstawie analiz Earth Engine jako zasoby.

Typy zasobów

Earth Engine oferuje różne formaty zasobów dla różnych typów danych, a także elementy kontenera do porządkowania.

Typy zasobów
Image Raster, czyli siatkowa reprezentacja informacji geograficznych, w której każda komórka siatki zawiera wartość odpowiadającą konkretnej lokalizacji na powierzchni Ziemi.
ImageCollection Zbiór powiązanych obrazów rastrowych, które tworzą mozaikę lub serię czasową. Funkcjonalnie przypomina folder, ale można go zaimportować do Earth Engine jako obiekt ee.ImageCollection, który zawiera zestaw metod filtrowania i analizy.
Table Struktura danych tabeli składająca się z cech wektorowych (wierszy), z których każda zawiera serię właściwości (kolumn). Reprezentuje go obiekt ee.FeatureCollection, który zawiera zestaw metod filtrowania i analizy.
Classifier Wytrenowany model uczenia maszynowego Earth Engine. Reprezentuje go obiekt ee.Classifier, który zawiera zestaw metod do zastosowania i analizy.
FeatureView Widok wizualizacji tabeli do użycia w aplikacjach Earth Engine.
Folder Kontener na komponenty i dodatkowe foldery, który ułatwia ich porządkowanie.

Porządkowanie komponentów

Zasoby Earth Engine są uporządkowane w hierarchiczny system folderów i kolekcji. Struktura jest podobna do typowych systemów plików.

Główny

Zasoby należą do projektu w chmurze. Nazwa projektu określa katalog główny zasobów. Na przykład katalogiem głównym my-project jest projects/my-project/assets. Wszystkie zasoby należące do my-project znajdują się w folderze projects/my-project/assets lub w podfolderze (lub ImageCollection) w tym folderze.

Katalog

Earth Engine używa struktury katalogów przypominającej drzewo do porządkowania zasobów. Każdy projekt w chmurze ma katalog główny, który może zawierać poszczególne zasoby i foldery. ImageCollections to specjalny typ zasobu przeznaczony do przechowywania zestawów powiązanych obrazów, takich jak serie czasowe lub mozaiki. W przeciwieństwie do folderów kolekcje ImageCollection mogą zawierać tylko zasoby graficzne i nie mogą zawierać innych folderów ani kolekcji.

  • folder_dataprojects/my-project/assets/
    • folder nazwa-folderu/
      • photo image-name
      • view_comfy table-name
      • satellite featureview-name
      • bubble_chart classifier-name
      • photo_library imagecollection-name/
        • photo image-name-1
        • photo image-name-2

Identyfikator zasobu

Earth Engine używa identyfikatorów zasobów do odwoływania się do danych zarówno w skryptach, jak i operacjach w wierszu poleceń. Określają lokalizacje zasobów, używając ukośników (/) jako separatorów między katalogami. Na przykład projects/my-project/assets/my-asset określa zasób o nazwie „my-asset” znajdujący się w katalogu głównym „my-project”. Oto przykład użycia tego identyfikatora do uzyskania informacji o zasobie.

Python

print(ee.data.getAsset('projects/my-project/assets/my-asset'))

Edytor kodu

print(ee.Image('projects/my-project/assets/my-asset'))

Wiersz poleceń

earthengine asset info projects/my-project/assets/my-asset

Utwórz komponenty

Możesz tworzyć foldery i kolekcje obrazów oraz pozyskiwać obrazy i tabele z plików lokalnych lub plików w zasobniku Google Cloud Storage. Obsługiwane formaty obrazów to GeoTIFF i TFRecord. Pliki GeoTIFF zoptymalizowane pod kątem chmury (COG) w Cloud Storage można też zarejestrować na miejscu, zamiast je pozyskiwać. Obsługiwane formaty tabel to Shapefile i CSV. (Zasoby można też tworzyć, eksportując wyniki analizy Earth Engine za pomocą funkcji zbiorczych Export.*.toAsset).

Klient Pythona

Obraz

Użyj funkcji ee.data.startIngestion, aby pozyskać obrazy z Cloud Storage. Więcej informacji o konfigurowaniu przesyłania znajdziesz na stronie manifestu obrazu.

manifest = {
  'name': 'projects/my-project/assets/asset-name',
  'tilesets': [
    {
      'sources': [
        {
          'uris': [
            'gs://my-bucket/filename.tif'
          ]
        }
      ]
    }
  ]
}
ee.data.startIngestion(None, manifest)

Tabela

Aby pozyskać tabele z Cloud Storage, użyj funkcji ee.data.startTableIngestion. Więcej informacji o konfigurowaniu przesyłania znajdziesz na stronie Plik manifestu obrazu.

manifest = {
  'name': 'projects/my-project/assets/asset-name',
  'sources': [
    {
      'uris': [
        'gs://my-bucket/filename.csv'
      ]
    }
  ]
}
ee.data.startTableIngestion(None, manifest)

Folder lub ImageCollection

Użyj funkcji ee.data.createAsset, aby utworzyć puste foldery lub kolekcje obrazów.

ee.data.createAsset(
    {'type': 'FOLDER'}, # or 'IMAGE_COLLECTION'
    'projects/my-project/assets/asset-name'
)

Edytor kodu

W Menedżerze zasobów kliknij przycisk NOWY i z listy wybierz typ zasobu, który chcesz przesłać lub utworzyć. W oknie dialogowym skonfiguruj przesyłanie lub tworzenie zasobu.

Wiersz poleceń

obraz lub tabela,

earthengine upload image --asset_id=projects/my-project/assets/asset-name gs://my-bucket/filename.tif
earthengine upload table --asset_id=projects/my-project/assets/asset-name gs://my-bucket/filename.csv

Folder lub ImageCollection

Aby utworzyć puste foldery lub kolekcje obrazów, użyj polecenia earthengine create.

earthengine create folder projects/my-project/assets/folder-name
earthengine create collection projects/my-project/assets/collection-name

Obraz zewnętrzny

Pliki Cloud Optimized GeoTIFF (COG) w zasobniku Cloud Storage można zarejestrować jako zasoby COG (w interfejsie API nazywane obrazami zewnętrznymi) i używać ich bezpośrednio w Earth Engine. Informacje o tworzeniu pliku manifestu znajdziesz w przewodniku po rejestracji COG.

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

Wyświetlanie listy zasobów

Klient Pythona

Użyj funkcji ee.data.listAssets, aby wyświetlić listę zasobów w folderze lub kolekcji (nie rekurencyjnie). Więcej informacji o filtrowaniu i podziale na strony znajdziesz w dokumentacji referencyjnej.

ee.data.listAssets('projects/my-project/assets')

Zobacz też ee.data.listImages i ee.data.listFeatures.

Edytor kodu

Aby wyświetlić zasoby, rozwiń foldery w Menedżerze zasobów.

Wiersz poleceń

Aby wyświetlić listę zasobów w folderze lub kolekcji (bez rekurencji), użyj polecenia earthengine ls. Więcej informacji o ograniczaniu liczby zasobów do wyświetlenia i ilości zwracanych szczegółów znajdziesz w dokumentacji referencyjnej.

earthengine ls projects/my-project/assets

Ustawianie uprawnień do zasobów

Klient Pythona

Aby ustawić uprawnienia do zasobu, użyj funkcji ee.data.setAssetAcl.

asset_id = 'projects/my-project/assets/asset-name'
acl_update = {
    'owners': [
        'user:big_cheese@example.com',
        'user:el_jefe@example.com'
    ],
    'writers': [
        'user:romeo@example.com',
        'user:juliet@example.com'
    ],
    'readers': [
        'group:some-group@googlegroups.com',
        'domain:example.com',
        'serviceAccount:some-project-id@appspot.gserviceaccount.com'
    ],
    'all_users_can_read': False
}
ee.data.setAssetAcl(asset_id, acl_update)

Edytor kodu

W Menedżerze zasobów najedź kursorem na zasób i kliknij ikonę udostępniania. W oknie wpisz adres e-mail lub domenę, którym chcesz udostępnić zasób, a następnie wybierz poziom uprawnień z listy. Kliknij przycisk DODAJ DOSTĘP, aby potwierdzić zmianę. Zaznacz pole „Każdy może odczytywać”, aby przyznać uprawnienia do odczytu dowolnemu podmiotowi. Możesz też przyznać dostęp do aplikacji Earth Engine w oknie, wybierając nazwę aplikacji z listy (zasoby należące do aktywnego projektu edytora kodu).

Wiersz poleceń

Użyj polecenia earthengine acl set, aby ustawić uprawnienia do odczytu zasobu na public lub private.

earthengine acl set public projects/my-project/assets/asset-name

Aby ustawić uprawnienia do odczytu i zapisu zasobów dla poszczególnych użytkowników, użyj polecenia earthengine acl ch.

earthengine acl ch -u person@gmail.com:R projects/my-project/assets/asset-name

Więcej informacji znajdziesz na stronie z dokumentacją wiersza poleceń.

Sprawdzanie uprawnień do zasobów

Klient Pythona

Użyj funkcji ee.data.getAssetAcl, aby pobrać listę kontroli dostępu do zasobu.

ee.data.getAssetAcl('projects/my-project/assets/asset-name')

Edytor kodu

W Menedżerze zasobów najedź kursorem na zasób i kliknij ikonę udostępniania. Pojawi się okno z listą adresów e-mail i domen oraz ich poziomów dostępu.

Wiersz poleceń

Aby pobrać listę kontroli dostępu do zasobu, użyj polecenia earthengine acl get.

earthengine acl get projects/my-project/assets/asset-name

Kopiowanie zasobów

Klient Pythona

Aby skopiować zasób, użyj funkcji ee.data.copyAsset.

ee.data.copyAsset('projects/my-project/assets/asset-name', 'projects/my-project/assets/asset-copy-name')

Edytor kodu

Aby skopiować zasoby, użyj klienta Pythona lub narzędzia wiersza poleceń.

Wiersz poleceń

Aby skopiować zasób, użyj polecenia earthengine cp.

earthengine cp projects/my-project/assets/asset-name projects/my-project/assets/asset-copy-name

Przenoszenie zasobów i zmiana ich nazw

Klient Pythona

Aby przenieść zasób lub zmienić jego nazwę, użyj funkcji ee.data.renameAsset.

ee.data.renameAsset('projects/my-project/assets/asset-name', 'projects/my-project/assets/new-asset-name')

Edytor kodu

Przenieś

W Menedżerze zasobów przeciągnij zasób do nowego folderu.

Zmień nazwę

W Menedżerze zasobów najedź kursorem na zasób i kliknij ikonę edytuj, a następnie wpisz nową nazwę w edytowalnym polu do wprowadzania danych.

Wiersz poleceń

Aby przenieść zasób lub zmienić jego nazwę, użyj polecenia earthengine mv.

earthengine mv projects/my-project/assets/asset-name projects/my-project/assets/new-asset-name

Usuń zasoby

Klient Pythona

Aby usunąć zasób, użyj funkcji ee.data.deleteAsset.

ee.data.deleteAsset('projects/my-project/assets/asset-name')

Edytor kodu

Kliknij zasób, aby otworzyć stronę z oknem zasobu, a potem kliknij przycisk USUŃ.

Wiersz poleceń

Aby usunąć zasób, użyj polecenia earthengine rm. Informacje o opcjach rekurencyjnych i uruchomienia próbnego znajdziesz w dokumentacji funkcji.

earthengine rm projects/my-project/assets/asset-name

Wyświetlanie metadanych zasobu

Klient Pythona

Aby uzyskać metadane zasobu, użyj funkcji ee.data.getAsset.

ee.data.getAsset('projects/my-project/assets/asset-name')

Edytor kodu

Kliknij zasób, aby otworzyć stronę z oknem zasobu. Wyświetl informacje o zasobie.

Wiersz poleceń

Aby uzyskać metadane zasobu, użyj polecenia earthengine asset info.

earthengine asset info projects/my-project/assets/asset-name

Ustawianie metadanych zasobu

Można ustawić te metadane zasobu:

  • start_time
  • end_time
  • properties

Klient Pythona

Aby zaktualizować metadane zasobu, użyj funkcji ee.data.updateAsset.

asset_id = 'projects/my-project/assets/asset-name'
new_metadata = {
  'properties': {
    'name': 'value'
  },
  'start_time': '2024-10-02T15:01:24Z',
  'end_time': '2024-10-02T15:01:25Z',
}
update_these = ['start_time', 'end_time', 'properties']

ee.data.updateAsset(asset_id, new_metadata, update_these)

Edytor kodu

Kliknij komponent, aby otworzyć stronę okna komponentu, a następnie w prawym górnym rogu aktywuj przełącznik edycji. Możesz edytować opis, właściwości oraz datę rozpoczęcia i zakończenia. Aby zapisać zmiany, wyłącz przełącznik edycji.

Wiersz poleceń

Aby zaktualizować metadane zasobu, użyj polecenia earthengine asset set. Więcej informacji znajdziesz w dokumentacji.

earthengine asset set \
  --time_start 2024-10-02T15:01:24 \
  --time_end 2024-10-02T15:01:25 \
  --property 'name=value' \
  projects/my-project/assets/asset-name

Sprawdzanie limitu zasobów

Limit jest stosowany na poziomie projektu. Więcej informacji o limicie komponentów znajdziesz na stronie Limity wykorzystania i limity.

Klient Pythona

Aby uzyskać informacje o wykorzystaniu limitu miejsca na dane przez zasób główny, użyj funkcji ee.data.getAssetRootQuota.

ee.data.getAssetRootQuota('projects/my-project/assets')

Edytor kodu

W Menedżerze zasobów najedź kursorem na katalog główny projektu i kliknij ikonę data_usage. Pojawi się okno z informacjami.

Wiersz poleceń

Aby sprawdzić limit zasobów, użyj klienta Pythona lub edytora kodu.