Zarządzaj zasobami

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

Typy zasobów
Image Raster to 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ą. Jest funkcjonalnie 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 składająca się z obiektów 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 filtrowania i analizy.
Classifier Wytrenowany model uczenia maszynowego Earth Engine. Jest on reprezentowany przez obiekt ee.Classifier, który zawiera zestaw metod aplikacji i analizy.
FeatureView Widok wizualizacji tabeli do użycia w aplikacjach Earth Engine.
Folder Kontener na komponenty i dodatkowe foldery ułatwiające organizację.

Organizacja komponentów

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

Główny

Zasoby należą do projektu Cloud. Nazwa projektu określa katalog główny zasobów. Na przykład pierwiastek z my-project to projects/my-project/assets. Wszystkie komponenty należące do my-project znajdują się w folderze projects/my-project/assets lub w podfolderze (lub w kolekcji obrazów) w tym folderze.

Katalog

Earth Engine używa drzewiastej struktury katalogów do porządkowania zasobów. Każdy projekt w Cloud ma katalog główny, który może zawierać poszczególne zasoby i foldery. Kolekcje obrazów 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 obrazów mogą zawierać tylko komponenty z obrazem i nie mogą zagnieżdżać innych folderów ani kolekcji.

  • folder_dataprojects/my-project/assets/
    • folder nazwa-folderu/
      • photo nazwa-obrazu
      • view_comfy table-name
      • satellite featureview-name
      • bubble_chart nazwa-klasyfikatora
      • 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 w skryptach i operacjach wiersza poleceń. Lokalizacje zasobów są definiowane za pomocą 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 wprowadzać 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 tabeli to m.in. Shapefile i CSV. (Zasoby można też tworzyć, eksportując wyniki analizy Earth Engine za pomocą funkcji wsadowych Export.*.toAsset).

Klient Python

Obraz

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

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 manifestu obrazów.

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 komponentów kliknij przycisk NOWY i z menu wybierz typ komponentu, który chcesz przesłać lub utworzyć. W oknie dialogowym skonfiguruj przesyłanie lub tworzenie komponentu.

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 zoptymalizowane pod kątem chmury (COG) przesłane do zasobnika Google Cloud Storage można zarejestrować jako zewnętrzne komponenty z obrazem i używać bezpośrednio w Earth Engine. Więcej informacji o zasobach obsługiwanych przez COG i tworzeniu pliku manifestu znajdziesz w dokumentacji.

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

Wyświetlanie listy komponentów

Klient Python

Użyj funkcji ee.data.listAssets, aby wyświetlić listę zasobów w folderze lub kolekcji (bez rekursji). Więcej informacji o filtrowaniu i stronicowaniu 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 (bez rekursji). Więcej informacji o ograniczaniu liczby zasobów do wyświetlenia i szczegółowości zwracanych danych znajdziesz w dokumentacji referencyjnej.

earthengine ls projects/my-project/assets

Ustawianie uprawnień do zasobu

Klient Python

Użyj funkcji ee.data.setAssetAcl , aby ustawić uprawnienia do komponentu.

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ź wskaźnikiem myszy na komponent i kliknij ikonę udostępniania. W oknie wpisz adres e-mail lub domenę, którym chcesz udostępnić komponent, a potem wybierz z listy poziom uprawnień. Aby potwierdzić zmianę, kliknij przycisk DODAJ DOSTĘP. Zaznacz pole „Każdy może czytać”, aby przyznać dowolnemu podmiotowi uprawnienia do odczytu. W oknie możesz też przyznać dostęp do aplikacji Earth Engine, 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 public lub private, użyj polecenia earthengine acl set.

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

Aby ustawić indywidualne 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 zasobu

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ź wskaźnikiem myszy na komponent i kliknij ikonę udostępniania. W oknie dialogowym wyświetli 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

Użyj funkcji ee.data.copyAsset, aby skopiować komponent.

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

Edytor kodu

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

Wiersz poleceń

Użyj polecenia earthengine cp, aby skopiować komponent.

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

Przenoszenie i zmienianie nazw komponentów

Klient Python

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

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 komponentów najedź kursorem na komponent i kliknij ikonę edytowania, a następnie wpisz nową nazwę w polu edycji.

Wiersz poleceń

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

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

Usuń zasoby

Klient Python

Aby usunąć komponent, użyj funkcji ee.data.deleteAsset.

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

Edytor kodu

Kliknij komponent, aby otworzyć stronę okna komponentu, a następnie kliknij przycisk USUŃ.

Wiersz poleceń

Aby usunąć zasób, użyj polecenia earthengine rm. Opcje rekursywne i próbne znajdziesz w dokumentacji funkcji.

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

Wyświetlanie metadanych komponentu

Klient Python

Użyj funkcji ee.data.getAsset, aby uzyskać metadane komponentu.

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

Edytor kodu

Kliknij komponent, aby otworzyć stronę okna komponentu. Wyświetl informacje o komponencie.

Wiersz poleceń

Użyj polecenia earthengine asset info, aby uzyskać metadane komponentu.

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

Ustawianie metadanych zasobu

Możesz ustawić te metadane komponentu:

  • start_time
  • end_time
  • properties

Klient Python

Użyj funkcji ee.data.updateAsset, aby zaktualizować metadane komponentu.

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 potem 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ń

Użyj polecenia earthengine asset set, aby zaktualizować metadane zasobu. 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 limicie zasobów znajdziesz na stronie Limity wykorzystania i limity.

Klient Python

Użyj funkcji ee.data.getAssetRootQuota, aby uzyskać wykorzystanie limitu miejsca na dane w przypadku katalogu głównego komponentu.

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 informacyjne.

Wiersz poleceń

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