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