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 |
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.listImages
i ee.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.