Zarządzaj zasobami

Komponenty Earth Engine to dane geoprzestrzenne należące do projektu i przechowywane na platformie. Możesz przesyłać własne dane i przechowywać dane wygenerowane na podstawie analiz w 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 ich organizacji.

Typy zasobów
Image Raster, czyli reprezentowanie informacji geograficznych w postaci siatki, w której każda komórka zawiera wartość odpowiadającą określonej lokalizacji na powierzchni Ziemi.
ImageCollection Zbiór powiązanych ze sobą obrazów rastrowych, które tworzą mozaikę lub serię czasową. Pod względem funkcjonalności jest podobny do folderu, ale można go zaimportować do Earth Engine jako obiekt ee.ImageCollection, który zawiera zestaw metod filtrowania i analizy.
Table Struktura danych tabeli złożona z funkcji wektorowych (wierszy), z których każdy zawiera serię właściwości (kolumn). Jest on reprezentowany przez obiekt ee.FeatureCollection, który zawiera zestaw metod do filtrowania i analizy.
Classifier wytrenowany model uczenia maszynowego Earth Engine. Jest on reprezentowany przez obiekt ee.Classifier, który zawiera zestaw metod do zastosowania i analizy.
FeatureView Wizualizacja tabeli do wykorzystania w aplikacjach Earth Engine.
Folder Kontenery na zasoby i dodatkowe foldery ułatwiające organizację.

Organizacja komponentów

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

Główny

Zasoby należą do projektu Cloud. Nazwa projektu określa katalog główny katalogu zasobów. Na przykład pierwiastek z my-project to 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 katalogu w postaci drzewa do porządkowania zasobów. Każdy projekt Cloud ma katalog główny, który może zawierać pojedyncze zasoby i foldery. Zbiory obrazów to specjalny typ komponentu, który służy do przechowywania zestawów powiązanych obrazów, np. serii czasowych lub mozaik. W odróżnieniu od folderów kolekcje obrazów mogą zawierać tylko komponenty z obrazami i nie mogą zawierać innych folderów ani kolekcji.

  • folder_dataprojects/my-project/assets/
    • folder folder-name/
      • photo image-name
      • view_comfy nazwa_tabeli
      • satellite featureview-name
      • bubble_chart nazwa_kreatora
      • 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 w operacjach wykonywanych z poziomu wiersza poleceń. Lokalizacje zasobów są definiowane za pomocą ukośnych kresek (/) jako separatorów między katalogami. Na przykład: projects/my-project/assets/my-asset określa zasób o nazwie „mój-zasób” znajdujący się w katalogu głównym „mój-projekt”. 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 zbiory obrazów oraz przetwarzać obrazy i tabele z plików lokalnych lub plików w zasobniku Google Cloud Storage. Obsługiwane formaty obrazów to GeoTIFF (standardowy i COG) oraz TFRecord. Obsługiwane formaty tabel to m.in. Shapefile i CSV. (zasoby można też utworzyć, wyeksportowując wynik analizy w Earth Engine za pomocą funkcji zbiorczych Export.*.toAsset).

Klient Python

Obraz

Użyj funkcji ee.data.startIngestion do przetworzenia obrazów z Cloud Storage. Więcej informacji o konfigurowaniu przesyłania znajdziesz na stronie pliku manifestu obrazu.

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

Tabela

Użyj funkcji ee.data.startTableIngestion, aby pozyskiwać tabele z Cloud Storage. Więcej informacji o konfigurowaniu przesyłania znajdziesz na stronie pliku 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

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

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

Edytor kodu

W Menedżerze komponentów kliknij przycisk NOWY i w menu wybierz typ komponentu, który chcesz przesłać lub utworzyć. W dialogu 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 GeoTIFF (COG) zoptymalizowane pod kątem chmury, które przesyłasz do zasobnika Google Cloud Storage, można zarejestrować jako zewnętrzne zasoby obrazu i używać bezpośrednio w Earth Engine. Aby dowiedzieć się więcej o zasobach obsługiwanych przez COG i tworzeniu pliku manifestu, zapoznaj się z dokumentacją.

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

Wyświetlanie listy zasobów

Klient Python

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

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

Zobacz też ee.data.listImagesee.data.listFeatures.

Edytor kodu

Rozwiń foldery w Menedżerze komponentów, aby wyświetlić komponenty.

Wiersz poleceń

Użyj polecenia earthengine ls, aby wyświetlić listę zasobów w folderze lub kolekcji (nierekursywnie). Więcej informacji o ograniczaniu liczby zasobów do wyświetlenia i szczegółów dotyczących kwoty znajdziesz w dokumentacji.

earthengine ls projects/my-project/assets

Ustawianie uprawnień do zasobu

Klient Python

Aby ustawić uprawnienia 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 komponentów najedź kursorem na komponent i kliknij ikonę udostępniania. W oknie wpisz adres e-mail lub domenę, z którymi chcesz udostępnić zasób, a następnie wybierz poziom uprawnień z listy. Aby potwierdzić zmianę, kliknij przycisk DODAJ DOSTĘP. Zaznacz pole „Każdy może odczytać”, aby przyznać uprawnienia do odczytu dowolnemu elementowi. Możesz też przyznać dostęp do aplikacji Earth Engine w oknie, wybierając nazwę aplikacji z listy (zasoby należące do aktywnego projektu w Edytorze kodu).

Wiersz poleceń

Aby ustawić dostęp do odczytu zasobu na poziomie public lub private, użyj polecenia earthengine acl set.

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

Aby ustawić poszczególne uprawnienia do odczytu i zapisu zasobu, 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 Odwołanie do wiersza poleceń.

Sprawdzanie uprawnień do zasobów

Klient Python

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 komponentów najedź kursorem na komponent i kliknij ikonę udostępniania. W oknie pojawi się lista adresów e-mail i domen wraz z odpowiednimi poziomami dostępu.

Wiersz poleceń

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

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

Kopiowanie komponentów

Klient Python

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ć komponent, użyj polecenia earthengine cp.

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

Przenoszenie i zmienianie nazw komponentów

Klient Python

Aby przenieść lub zmienić nazwę zasobu, 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 komponentów przeciągnij komponent do nowego folderu.

Zmień nazwę

W Menedżerze zasobów najedź kursorem na zasób, kliknij ikonę edycji i wpisz nową nazwę w polu tekstowym, które można edytować.

Wiersz poleceń

Aby przenieść lub zmienić nazwę zasobu, użyj polecenia earthengine mv.

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

Usuń zasoby

Klient Python

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

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

Edytor kodu

Kliknij komponent, aby otworzyć stronę dialogową komponentu, a potem kliknij przycisk USUŃ.

Wiersz poleceń

Aby usunąć zasób, użyj polecenia earthengine rm. Informacje o opcjach rekurencyjnych i testowych znajdziesz w opisie funkcji.

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

Wyświetlanie metadanych zasobu

Klient Python

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. Wyświetl informacje o komponencie.

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żesz ustawić te metadane zasobu:

  • start_time
  • end_time
  • properties

Klient Python

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 zasób, aby otworzyć stronę dialogową zasobu, a potem w prawym górnym rogu kliknij 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 referencyjnej.

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 komponentów

Limit jest stosowany na poziomie projektu. Więcej informacji o limitach zasobów znajdziesz na stronie Ograniczenia dotyczące użycia i limitów.

Klient Python

Aby uzyskać informacje o wykorzystaniu limitu miejsca na dane w przypadku katalogu głównego zasobów, 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.