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 |
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-assetUtwó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.tifearthengine 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-nameearthengine 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.jsonWyś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/assetsUstawianie 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-nameAby 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-nameWię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-nameKopiowanie 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-namePrzenoszenie 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-nameUsuń 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-nameWyś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-nameUstawianie metadanych zasobu
Można ustawić te metadane zasobu:
start_timeend_timeproperties
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.