Najczęstsze pytania

Pytania ogólne

Mam problem, potrzebuję pomocy!

Zadaj pytanie zgodnie z tym przewodnikiem, podając jak najwięcej informacji (zapoznaj się z przewodnikiem Stack Overflow dotyczącym zadawania dobrych pytań). Zwykle oznacza to, że:

  • wysłanie linku do skryptu w edytorze kodu (aby go uzyskać, kliknij przycisk „Pobierz link”),

  • udostępnianie wszelkich zasobów potrzebnych do uruchomienia skryptu;

  • w przypadku zadań wsadowych zakończonych niepowodzeniem podaj identyfikator zadania, które się nie powiodło. Identyfikatory zadań wyglądają tak: 4C25GIJBMB52PXTEJTF4JLGL. Znajdziesz je na karcie Zadanie w edytorze kodu. Więcej informacji

Gdzie mogę przeczytać o architekturze Earth Engine?

Zobacz tę publikację: Gorelick i in. 2017.

Zapoznaj się ze stronami EDU i Zasoby szkoleniowe.

Zapoznaj się z tym bezpłatnym kursem EE Ujavala Gandhiego, który zawiera film z wprowadzeniem do teledetekcji.

Programowanie w Earth Engine

Jakie są typowe błędy kodowania?

Zapoznaj się z przewodnikiem po debugowaniu.

Dlaczego pojawia się błąd „… nie jest funkcją”?

Ten błąd występuje, gdy Earth Engine nie może znaleźć wywołanej metody. Sprawdź te typowe przyczyny:

Pisownia i wielkość liter: w metodach rozróżniana jest wielkość liter. Sprawdź pisownię w dokumentacji interfejsu API.

Error: img.normalizedDiff(...) -> Correct: img.normalizedDifference(...)

Brakujące rzutowania typów: wartości zwracane przez funkcje takie jak .get() są ogólnymi instancjami ee.ComputedObject i muszą być jawnie rzutowane. Zobacz Rzutowanie nieznanego typu obiektu.

Error: dict.get('val').add(5) -> Correct: ee.Number(dict.get('val')).add(5)

Mieszanie metod klienta i serwera: upewnij się, że nie używasz standardowych metod JavaScriptu ani Pythona (np. .push() lub .append()) w przypadku obiektów Earth Engine. Zobacz sekcję Unikaj łączenia funkcji klienta i serwera.

Error: list.push(4) or list.append(4) -> Correct: list.add(4)

Niedostępne metody: jeśli obiekt jest prawidłowo wpisany, a metoda jest dostępna w dokumentacji lub działała wcześniej, ale teraz nie działa, zgłoś błąd.

Dlaczego nie mogę używać podstawowych działań matematycznych, np. ee.Image("image") * 2?

W EE nie należy łączyć obiektów ani operacji po stronie serwera i po stronie klienta. Wszystkie operacje na obiektach EE są wykonywane po stronie serwera. Obliczenia po stronie klienta nie będą działać zgodnie z Twoimi oczekiwaniami. Więcej informacji znajdziesz na tej stronie.

Jak mogę używać pętli for lub instrukcji if/else?

Programowanie w Earth Engine odbywa się za pomocą języka funkcyjnego, więc pętle i operacje warunkowe należy wyrażać za pomocą równoważnych koncepcji, takich jak map lub filter. Więcej informacji znajdziesz na tej stronie.

Jak wyświetlać etykiety tekstowe na obrazie lub w filmie?

Etykiety tekstowe nie są obsługiwane, ale możesz:

Czy mogę użyć standardowych palet kolorów?

Użyj zewnętrznego pakietu JS ee-palettes.

Jak utworzyć własną witrynę korzystającą z Earth Engine?

W przypadku podstawowych aplikacji używaj aplikacji Earth Engine. W bardziej złożonych przypadkach możesz tworzyć aplikacje App Engine oparte na EE.

Jak działają identyfikatory map?

Identyfikatory mapy (w interfejsie API oznaczane jako mapid) to klucze, które umożliwiają klientom pobieranie kafelków mapy. Każdy identyfikator to hash utworzony przez przekazanie wyrażenia obrazu do punktu końcowego getMapId. Uzyskane identyfikatory to klucze, które wskazują zarówno wyrażenie obrazu, jak i dane logowania użytkownika, które będą używane do generowania kafelków na późniejszym etapie.

Żądanie kafelków mapy wymaga podania lokalizacji kafelka (x, y, zoom) oraz mapid (klucza do obrazu i danych logowania). Ten sam identyfikator może być używany wielokrotnie do wczytywania wielu kafelków mapy. Nie ma ograniczeń dotyczących ponownego użycia kluczy mapid, ale wygasają one po kilku godzinach. Nie podajemy konkretnych przedziałów czasowych, przez które te identyfikatory są ważne, ale każdy napisany przez Ciebie kod powinien być odporny na wygaśnięcie identyfikatora.

Tworzenie tych identyfikatorów wiąże się z przechowywaniem niewielkiej ilości danych i weryfikowaniem danych logowania, dlatego najlepiej jest używać ich jak najdłużej. Nie ma limitu interfejsu API związanego konkretnie z punktem końcowym getMapId, ale każdy proces, który obejmuje tworzenie obiektów mapid z częstotliwością zbliżoną do częstotliwości pobierania kafelków, prawdopodobnie jest nieprawidłowy. Earth Engine nie ma punktu końcowego interfejsu API do usuwania, wyświetlania ani zarządzania tymi identyfikatorami, ponieważ są to zasoby przejściowe.

Dlaczego funkcja ee.Algorithms.If() wyświetla zarówno przypadek prawdziwy, jak i fałszywy?

function a() { print("true"); }
function b() { print("false"); }
// Prints 'true' and 'false'.
ee.Algorithms.If(true, a(), b());

Algorytm If() działa tak samo jak każdy inny algorytm w Earth Engine, ponieważ wszystkie jego argumenty muszą zostać ocenione, zanim sam algorytm będzie mógł zostać uruchomiony. Algorytm otrzymuje wyniki trueCasefalseCase, a następnie wybiera i zwraca jeden z nich na podstawie argumentu condition. Aby jednak te wartości mogły zostać przekazane do algorytmu, obie ścieżki musiały zostać wykonane.

Pojawia się błąd „Rozmiar ładunku żądania przekracza limit”

Próbujesz wysłać do Earth Engine bardzo duże żądanie. Zwykle dzieje się tak, gdy kod używa wielu pętli „for” po stronie klienta lub tworzy obiekt FeatureCollection z wielu obiektów geometrycznych. W tym drugim przypadku zamiast tworzyć takie geometrie w skrypcie wygeneruj plik CSV, który je zawiera, i prześlij go do komponentu tabeli.

Czym różni się wersja ee.Image.clip() od ee.Filter.bounds()?

Zobacz ten wątek na GIS Stack Exchange. Funkcja ee.Image.clip() maskuje piksele, które nie przecinają danego ee.Geometry lub ee.Feature, dzięki czemu są one przezroczyste w wizualizacjach i wykluczone z obliczeń. Możesz to sobie wyobrazić jako odcinanie pikseli z obrazu.

Funkcja ee.Filter.bounds() filtruje obiekty ee.Imageee.ImageCollection na podstawie przecięcia obrazu z ee.Geometry lub ee.Feature. Służy do ograniczania zakresu analizy tylko do obrazów, które przecinają dany region, co pomaga optymalizować wyrażenia.

Jak przekonwertować piksele obrazu na zbiory obiektów, w których każdy piksel jest jednym obiektem?

Użyj funkcji ee.Image.sample(). Przykłady użycia znajdziesz na stronie z dokumentacją interfejsu API funkcji.

Czym różni się wersja ee.ImageCollection.merge() od ee.ImageCollection.combine()?

Funkcja ee.ImageCollection.merge() łączy wszystkie obrazy z dwóch kolekcji w jedną kolekcję, niezależnie od tego, czy poszczególne obrazy mają wspólne pasma, metadane, układ współrzędnych czy skalę. Jest to suma dwóch kolekcji. Metoda combine() łączy pasma pasujących obrazów z dwóch kolekcji w jedną kolekcję. Pasujące obrazy mają ten sam identyfikator (usługa system:index). Jest to złączenie wewnętrzne dwóch kolekcji na podstawie identyfikatora obrazu, w którym pasma z pasujących obrazów są łączone. W przypadku pasujących obrazów pasma z obrazu dodatkowego są dołączane do obrazu głównego (zastępowanie jest opcjonalne). Jeśli nie ma pasujących obrazów, zwracana jest pusta kolekcja.

Jak filtrować kolekcje obrazów w wielu przedziałach dat?

Zobacz ten wątek na GIS Stack Exchange. Możesz merge() połączyć ze sobą kilka kolekcji lub użyć ee.Filter.or().

Jak utworzyć ramkę ograniczającą wokół danego punktu?

// Buffer the point by a chosen radius and then get the bounding box.
var LNG = -117.298;
var LAT = 45.162;
var point = ee.Geometry.Point([LNG, LAT]);
var buffer = point.buffer(30000); // half of box width as buffer input
var box = buffer.bounds(); // draw a bounding box around the buffered point
Map.centerObject(box);
Map.addLayer(point);
Map.addLayer(box);

// Map the buffer and bounds procedure over a point feature collection.
var pointCol = ee.FeatureCollection([
  ee.Feature(ee.Geometry.Point([LNG + 1, LAT])),
  ee.Feature(ee.Geometry.Point([LNG - 1, LAT]))
]);
var boxCol = pointCol.map(function(feature) {
  var box = feature.buffer(30000).bounds();
  return feature.setGeometry(box.geometry());
});
Map.addLayer(boxCol);

Data Catalog

Czy możesz dodać zbiór danych X?

Zgłoś błąd dotyczący żądania zbioru danych, postępując zgodnie z przewodnikiem dotyczącym żądania zbioru danych.

Możesz też przesyłać dane do folderu domowego Earth Engine. Zobacz Importowanie danych rastrowychImportowanie danych tabelarycznych.

Istniejący zbiór danych ma nową wersję

Zgłoś błąd w zbiorze danych, postępując zgodnie z przewodnikiem dotyczącym przesyłania próśb o zbiory danych, i napisz, że prosisz o aktualizację zbioru danych.

Istniejący zbiór danych nie jest aktualizowany lub brakuje w nim komponentów

Przed zgłoszeniem problemu sprawdź, czy wybrane zasoby rzeczywiście znajdują się w witrynie dostawcy zbioru danych. Więcej informacji znajdziesz w przewodniku dotyczącym brakujących obrazów.

Jeśli szukasz zasobu, filtrując ImageCollection, upewnij się, że filtry nie są zbyt restrykcyjne.

Zwróć uwagę na te kwestie:

  • Dane Sentinel-2 SR (dane poziomu 2) nie zostały wyprodukowane przez ESA dla wczesnych scen poziomu 1.

  • Przed 2000 rokiem Landsat nie obejmował całego świata.

Istniejący zbiór danych zawiera nieprawidłowe wartości

Opublikuj post na forum dla programistów. Dołącz skrypt, który powiększa zasób do pierwotnej rozdzielczości i wyraźnie pokazuje, które wartości są nieprawidłowe. Wyjaśnij, gdzie dokładnie zauważyłeś(-aś) alternatywną wartość.

Gdzie jeszcze mogę zadawać pytania dotyczące zbiorów danych?

Jeśli masz pytania dotyczące zbiorów danych NASA, odwiedź forum NASA Earth Data.

Pytania dotyczące zestawów narzędzi działających na zbiorach danych Copernicus można zadawać na forach poświęconych S1, S2S3.

Jak duży jest katalog EE?

W październiku 2023 r. katalog zawierał ponad 1000 zbiorów danych. Jego rozmiar na dysku wynosi ponad 90 petabajtów (po uwzględnieniu kompresji bezstratnej).

Jak często są aktualizowane dane w EE?

Zwykle wszystkie zbiory danych są aktualizowane co najmniej raz dziennie (chociaż nie wszystkie z nich zawierają nowe dane każdego dnia). Niektóre zbiory danych są aktualizowane kilka razy dziennie. Nie ma jednak zasad, które gwarantowałyby obecność w katalogu najnowszych zasobów.

Jak mogę wyświetlić zawartość katalogu EE za pomocą interfejsu API?

Lista zbiorów danych jest eksportowana w formacie STAC do zasobnika Google Cloud Storagegs://earthengine-stac. Plik wejściowy to catalog.json.

Czy mogę używać danych lub zdjęć z Map Google do analizy?

Google nie udziela licencji na dane mapy podstawowej ani nie sprzedaje ich do celów analitycznych.

Jak sprawdzić datę przesłania komponentu?

Właściwość 'system:version' zasobu to sygnatura czasowa przyjęcia danych sformatowana jako mikrosekundy od początku epoki uniksowej. Oto przykład, który konwertuje sygnaturę czasową pozyskania obrazu Landsat na format czytelny dla człowieka.

var image = ee.Image('LANDSAT/LC08/C02/T1_L2/LC08_044034_20210508');
print('Ingest date', ee.Date(image.getNumber('system:version').divide(1000)));

Czy katalog Earth Engine zawiera metadane JSON-LD?

Tak, metadane JSON-LD są osadzone na stronach HTML katalogu. Na przykład na stronie Sentinel-2 znajduje się ten blok:

<script type="application/ld+json">
  {
    "@context": "https://schema.org",
    "@type": "BreadcrumbList",
    "itemListElement": [{
      "@type": "ListItem",
      "position": 1,
      "name": "Earth Engine Data Catalog",
      "item": "https://developers.google.com/earth-engine/datasets"
    },{
      "@type": "ListItem",
      "position": 2,
      "name": "Harmonized Sentinel-2 MSI: MultiSpectral Instrument, Level-1C",
      "item": "https://developers.google.com/earth-engine/datasets/catalog/COPERNICUS_S2_HARMONIZED"
    }]
  }
  </script>

Landsat

Jak jest wdrażany algorytm simpleComposite?

Implementacja po stronie serwera jest odpowiednikiem tego kodu JavaScript.

Jak utworzyć kompozycje bez chmur na podstawie danych o odbiciu powierzchniowym z satelity Landsat?

Dane Landsat poziomu 2 (odbicie powierzchni) mają kilka pasm jakości, których można użyć do maskowania chmur i innych niepożądanych artefaktów obrazu. Przykład użycia tych pasm do przetwarzania obrazów SR z Landsat 8 i tworzenia kompozytu mediany bez chmur znajdziesz w tym poście na GIS Stack Exchange. Tej samej procedury używamy do tworzenia kompozytu bez chmur, który jest wykorzystywany w przykładach klasyfikacji nadzorowanej w Przewodniku dla programistów.

Czy konieczna jest harmonizacja odbicia powierzchni Landsat z różnych czujników?

Roy i współautorzy (2016) przeprowadzili analizę różnic w odbiciu między danymi Landsat 7–8 TOA a odbiciem powierzchni. Opublikowali współczynniki OLS i RMA, aby czytelnicy mogli przekształcać wartości odbicia danych z jednego czujnika na dane z innego. W ostatnim wierszu artykułu stwierdzono: „Chociaż różnice między czujnikami są dość małe, mogą mieć znaczący wpływ w zależności od zastosowania danych Landsat”. Ta analiza została jednak przeprowadzona na podstawie danych sprzed zebrania.

Ulepszenia wprowadzone podczas ponownego przetwarzania zbiorów danych 1 i 2 mogą wpływać na relacje między czujnikami, ale o ile nam wiadomo, nie przeprowadzono żadnych analiz podobnych do analizy Roy i wsp. (2016) w przypadku danych ze zbiorów 1 i 2. Chociaż nie przeprowadzono formalnej analizy, wśród wpływowych użytkowników danych Landsat panuje ogólna zgoda co do tego, że w przypadku danych Collection 2, Level 2 (odbicie powierzchniowe) nie jest wymagana korekta. Na przykład w odpowiedzi na pytanie dotyczące potrzeby harmonizacji zbioru 2 na poziomie 2 Mike Wulder z zespołu naukowego Landsat zauważył, że w zależności od rodzaju zastosowania (w tym mapowania pokrycia terenu i wykrywania zmian) produkty odbicia powierzchniowe zbioru 2 są bardzo odpowiednie i wiarygodne, bez konieczności dostosowywania do różnych czujników.

Jak zamaskować chmury i ich cienie na zdjęciach MSS?

Moduł msslib innej firmy w Edytorze kodu JavaScript zawiera implementację algorytmu MSScvm oraz inne przydatne funkcje do eksplorowania i przygotowywania danych MSS.

Zarządzanie danymi

Kto jest właścicielem przesyłanych przeze mnie danych?

Zgodnie z warunkami korzystania z usługi Earth Engine klienci są właścicielami danych, które przesyłają do Earth Engine.

Nie mogę przesłać danych.

Sprawdź stan zadania przesyłania w panelu Lista zadań w prawym górnym rogu edytora kodu. Możesz też wyświetlić stronę zadania.

Jeśli nie ma żadnego zadania, prawdopodobnie próbowano przesłać plik za pomocą edytora kodu, ale z powodu problemu z siecią przesyłanie nie zostało ukończone i zadanie nie zostało utworzone. Spróbuj użyć innej przeglądarki lub innego komputera.

Jeśli wystąpiło nieudane zadanie, sprawdź wyświetlany błąd. Jeśli nie ma konkretnego komunikatu o błędzie, najpierw sprawdź, czy plik nie jest uszkodzony, uruchamiając polecenie gdalinfo w przypadku plików rastrowych lub ogr2ogr w przypadku plików wektorowych. Te polecenia spróbują odczytać wszystkie dane z plików źródłowych i wyświetlą błędy, jeśli pliki są uszkodzone.

Przykładowe wywołanie gdalinfo:

gdalinfo -mm -stats -checksum file.tif

Przykładowe wywołanie ogr2ogr, które przekonwertuje in.shp na out.csv:

ogr2ogr -lco GEOMETRY=AS_WKT -f CSV out.csv in.shp

Jeśli plik wygląda prawidłowo, opublikuj identyfikator zadania, które się nie powiodło, w formie tekstu (nie zrzutu ekranu) na liście mailingowej dla deweloperów. Identyfikatory zadań mają format: 4C25GIJBMB52PXTEJTF4JLGL. W miarę możliwości udostępnij plik źródłowy do publicznego odczytu. Jeśli jest to plik prywatny, udostępnij go tylko earthengine@google.com, jeśli chcesz, aby zespół Earth Engine go sprawdził. Jeśli nie możesz udostępnić pliku źródłowego, podaj przynajmniej wynik działania polecenia gdalinfo -mm -stats -checksum.

Jeśli Earth Engine nie obsługuje danej projekcji, przed przesłaniem danych musisz je ponownie zrzutować, np. za pomocą narzędzia gdalwarp.

Jak przesłać plik w formacie NetCDF lub innym nieobsługiwanym formacie rastrowym?

Do Earth Engine można przesyłać tylko pliki GeoTIFF. Inne formaty zgodne z GDAL można przekonwertować na GeoTIFF za pomocą gdal_translate. Przykład:

gdal_translate -co COMPRESS=DEFLATE file.nc file.tif

Pamiętaj, że niektóre pliki NetCDF lub HDF składają się z wielu podzbiorów danych, które można wykryć za pomocą polecenia gdalinfo. W tym przypadku polecenie gdal_translate będzie wyglądać tak (zwróć uwagę na ścieżkę w cudzysłowie):

gdal_translate HDF4_EOS:EOS_GRID:"/tmp/MCD12Q1.A2001001.h00v08.005.2011055224312.hdf":MOD12Q1:Land_Cover_Type_1 file.tif

Pliki NetCDF czasami nie zawierają projekcji rozpoznawanej przez GDAL. W tym przypadku musisz ustawić projekcję i zakres przestrzenny w wierszu poleceń gdal_translate. Przykład:

gdal_translate -a_srs EPSG:4326 -a_ullr -180 90 180 -90 file.nc file.tid

Jakich algorytmów kompresji mogę używać w przypadku przesyłanych plików GeoTIFF?

W przypadku przesyłania pliki GeoTIFF można kompresować za pomocą algorytmów DEFLATE, JPEG, JPEG-XL/JXL, LERC, LERC_DEFLATE, LERC_ZSTD, LZMA, LZW, WEBP lub ZSTD. W przypadku odczytu na żywo plików COG można używać algorytmów DEFLATE, JPEG, LZW lub ZSTD. Algorytm ZSTD jest dobrym wyborem, ponieważ szybko dekompresuje większość obrazów, a jednocześnie zapewnia dobrą kompresję.

Aby zastosować kompresję ZSTD podczas korzystania z gdal_translate, dodaj te opcje. Jeśli dane zawierają wartości zmiennoprzecinkowe, zmień PREDICTOR na 3.

gdal_translate in.tif out.tif \
  -co COPY_SRC_OVERVIEWS=YES \
  -co TILED=YES \
  -co BLOCKXSIZE=512 \
  -co BLOCKYSIZE=512 \
  -co COMPRESS=ZSTD \
  -co PREDICTOR=2 \
  -co ZSTD_LEVEL=22 \
  -co INTERLEAVE=BAND \
  -co NUM_THREADS=ALL_CPUS

Przetwarzanie rastra trwa już od kilku dni i nie zostało zakończone.

Za pomocą gdalinfo sprawdź, czy w pliku jest ustawiona ta opcja GDAL:INTERLEAVE=PIXEL W przypadku plików z tą opcją i wieloma pasmami przetwarzanie może nigdy się nie zakończyć, ponieważ układ takich plików bardzo spowalnia odczyt.

Przed przesłaniem spróbuj przekonwertować takie pliki na układ z przeplotem pasmowym:

gdal_translate -co "INTERLEAVE=BAND" src.tif dst.tif

Przesłane rastry nie pasują do mapy podstawowej.

Jeśli dane są lekko przesunięte względem mapy bazowej, projekcja prawdopodobnie ma nieprawidłowy układ odniesienia (założenie dotyczące kształtu Ziemi). Dzieje się tak najczęściej w przypadku projekcji sinusoidalnej, której nie można w pełni zakodować w metadanych GDAL. Jeśli wiesz, jaka powinna być projekcja docelowa (np. SR-ORG:6974 w przypadku plików korzystających z projekcji sinusoidalnej MODIS), ustaw flagę --crs podczas przesyłania wiersza poleceń lub pole crspliku manifestu przesyłania.

Jeśli dane są mocno zniekształcone lub znajdują się w całkowicie niewłaściwym miejscu, prawdopodobnie projekcja lub transformacja afiniczna jest nieprawidłowa.

Raster jest widoczny tylko na półkuli wschodniej.

Prawdopodobnie przesłano globalny raster obejmujący zakres długości geograficznej [0, 360]. Earth Engine wymaga jednak, aby rastry mieściły się w zakresie [–180, 180]. Przed przetworzeniem zamień lewą i prawą połowę rastra. Zobacz te sugestie z GIS Stack Exchange

Dlaczego przetworzony obraz klasyfikacji wygląda na nakrapiany?

Prawdopodobnie używasz domyślnej MEAN zasady piramidy. W przypadku obrazów klasyfikacyjnych należy użyć MODEzasady piramidyzacji, a w przypadku obrazów QA/bitmask – SAMPLEzasady piramidyzacji.

Pojawia się ten błąd: Nie można zastosować wartości danych -128.0 do pasma #0 typu Short<0, 255>.

GDAL nie może traktować pasm 1-bajtowych jako zawierających liczby całkowite ze znakiem, więc odczytuje takie pasma jako liczby całkowite bez znaku. Byłoby to sprzeczne z ujemnymi wartościami „brak danych”.

Jeśli wartości są w rzeczywistości liczbami całkowitymi ze znakiem, użyj przesyłania pliku manifestu i dodaj to do sekcji kafelków zawierającej plik: data_type: "INT8"

Jeśli wartości są liczbami całkowitymi bez znaku, plik ma nieprawidłową wartość nodata. Możesz zastąpić ją podczas przesyłania prawidłową wartością danych (lub wartością, która nigdy nie występuje, jeśli taka istnieje). Możesz też użyć ikony gdal_translate -a_nodata, aby zmienić wartość „brak danych”, lub ikony gdal_edit.py -unsetnodata, aby ją usunąć.

Jak przesłać plik w formacie GeoJSON lub innym nieobsługiwanym formacie wektorowym?

Użyj ogr2ogr, aby przetłumaczyć formaty zgodne z OGR na CSV lub SHP. Przykład:

or2ogr -f "ESRI Shapefile" file.shp file.kml

Pamiętaj, że w przypadku przesyłania plików CSV kolumna geometrii może zawierać GeoJSON.

Chcę przesłać dane za pomocą Pythona lub przesłać wiele plików naraz.

Użyj przesyłania z wiersza poleceń. Takie przesyłanie wymaga umieszczenia plików źródłowych w zasobniku GCS (Google Cloud Storage). Korzystanie z GCS nie wiąże się z żadnymi kosztami, jeśli mieścisz się w limitach bezpłatnego poziomu – zobacz stronę z cennikiem.

Chcę przesłać dużą mozaikę rastrową podzieloną na wiele kafelków.

Jeśli wszystkie pliki mają tę samą projekcję i rozmiar piksela, po prostu prześlij je razem do tego samego zasobu – zostaną automatycznie połączone w mozaikę.

Jeśli pliki mają różne projekcje lub rozmiary pikseli, nie można ich połączyć w jeden zasób rastrowy. Zamiast tego prześlij każdy fragment jako osobny komponent do tego samego ImageCollection, który można połączyć w mozaikę za pomocą ImageCollection.mosaic().

Próbuję przesłać mozaikę, ale pojawiają się błędy dotyczące niedopasowanych kafelków.

Kafelki mozaiki rastrowej Earth Engine muszą mieć tę samą projekcję i rozmiar piksela. Muszą też być dokładnie wyrównane do granic pikseli.

Próbuję przesłać plik z zasobnika GCS, ale Earth Engine nie może go znaleźć.

Do przesyłania do GCS i do łączenia się z Earth Engine mogły zostać użyte różne konta Google. Upewnij się, że plik GCS jest czytelny dla konta, którego używasz do łączenia się z Earth Engine. Jeśli logowanie na wielu kontach w przeglądarce utrudnia to zadanie, połącz się z Earth Engine w oknie przeglądarki w trybie incognito.

Chcę wyeksportować wiele komponentów naraz.

Każdy obraz musisz wyeksportować osobno.

Chcę przenieść lub usunąć Folder lub ImageCollection za pomocą jednego polecenia.

Najpierw musisz przenieść lub usunąć każdy zasób, a potem przenieść lub usunąć folder nadrzędny lub kolekcję. Jeśli jest dużo zasobów podrzędnych, napisz pętlę w powłoce lub w Pythonie, aby je iterować.

Chcę mieć bezpośredni dostęp do danych Earth Engine spoza tej platformy.

QGIS ma wtyczkę Earth Engine.

GDAL ma sterownik Earth Engine.

Inne systemy mogą korzystać z interfejsu API REST EE.

Chcę zaktualizować część zasobu Earth Engine bez ponownego wczytywania go w całości.

Nie można aktualizować danych rastrowych ani wektorowych przesłanych do EE. Można aktualizować tylko właściwości metadanych zasobu.

Tracę dostęp do konta. Co mogę zrobić z zasobami?

Jeśli zasady pierwotnego konta zezwalają na przenoszenie danych, udostępnij zasoby innemu kontu, a następnie skopiuj je, aby stały się własnością nowego konta. Jeśli masz wiele zasobów do przeniesienia, użyj narzędzia do kopiowania wiersza poleceń.

Jeśli konto zostanie usunięte, komponenty, których jest właścicielem, staną się niedostępne.

Wyeksportowany obraz znajduje się w niewłaściwym miejscu.

W przypadku niektórych projekcji, takich jak sinusoidalna czy stożkowa, pliki GeoTIFF nie mogą czasami przechowywać wszystkich niezbędnych parametrów projekcji. Powoduje to, że wyeksportowany plik wyświetla się w niewłaściwym miejscu, gdy jest przeglądany w narzędziach GIS na komputerze lub ponownie wczytywany do EE.

Aby to naprawić, podaj parametr eksportu crs, który dobrze współpracuje z plikami GeoTIFF. Możesz na przykład użyć kodu EPSG dla strefy UTM zawierającej obszar, który Cię interesuje.

Jakiej lokalizacji zasobnika Cloud Storage mam użyć do przechowywania zasobów COG?

Odpowiedź zależy od tego, co chcesz zoptymalizować. Jeśli optymalizujesz dostęp do obliczeń o niskim opóźnieniu, najlepsze lokalizacje zasobników GCS do przechowywania zasobów COG to US-CENTRAL*. Więcej informacji znajdziesz na stronie Lokalizacje zasobników.

Wyeksportowane zasoby kolekcji obiektów nie zachowują ustawionych przeze mnie właściwości.

Żadna z funkcji Export.table.* nie zachowuje właściwości na poziomie tabeli w danych wyjściowych. W przypadku wielu formatów wyjściowych (np. CSV, GeoJSON) takie metadane nie są obsługiwane. Funkcja Export.table.toAsset mogłaby obsługiwać właściwości na poziomie tabeli, ale obecnie tego nie robi.

Tabele wyeksportowane na Dysk w formacie CSV są konwertowane na format XLSX.

W zależności od ustawień Dysku Google tabele CSV eksportowane z Earth Engine mogą być konwertowane na pliki XLSX, co może mieć niepożądane skutki, np. konwersję typów danych. Aby zmodyfikować działanie w przypadku kolejnych eksportów, wykonaj te czynności.

  1. W prawym górnym rogu Dysku Google w internecie kliknij ikonę ustawień.
  2. Kliknij Ustawienia.
  3. Przewiń do opcji „Konwertuj przesyłane pliki na format edytora Dokumentów Google” i odznacz ją.

Edytor kodu

Nie mogę zalogować się w edytorze kodu, ponieważ wyświetla on prośbę o użycie niewłaściwego konta.

Wyloguj się, na stronie „Wybierz konto” wybierz konto zarejestrowane do korzystania z Earth Engine, a następnie ponownie wybierz to samo konto na drugiej stronie „Wybierz konto, aby kontynuować korzystanie z edytora kodu Earth Engine” (dokładne sformułowanie może się różnić).

Chcę zrobić zrzut ekranu mapy globalnej, ale nie podoba mi się projekcja Web Mercator.

Projekcja mapy używana w edytorze kodu to Web Mercator („EPSG:3857”). Zwiększa rozmiar obiektów oddalonych od równika, przez co regiony położone na wysokich szerokościach geograficznych wydają się znacznie większe niż w rzeczywistości w porównaniu z regionami położonymi w pobliżu równika. Nie możesz zmienić projekcji obszaru mapy w edytorze kodu, ale możesz „namalować” obraz w wybranej projekcji na obszarze w projekcji Merkatora za pomocą metody ee.Image.changeProj. Przykład wyświetlania globalnego modelu DEM na mapie w edytorze kodu w projekcji Robinsona znajdziesz na stronie referencyjnej interfejsu API. Pamiętaj, że tej techniki należy używać tylko do celów wizualizacji, ponieważ inspektor i narzędzia do rysowania w Edytorze kodu nadal działają w projekcji Web Mercator.

Mój skrypt nie zapisuje się (Script error: Unknown commit).

Jeśli podczas zapisywania skryptu pojawi się komunikat Script error: Unknown commit, prawdopodobnie oznacza to, że repozytorium, w którym zapisujesz skrypt, jest niesynchronizowane. Przyczyna tego stanu jest zmienna i trudna do ustalenia. Aby rozwiązać ten problem, spróbuj odświeżyć listę skryptów za pomocą przycisku w prawym górnym rogu karty Skrypt. Jeśli to nie zadziała, spróbuj utworzyć nowe repozytorium za pomocą przycisku Nowy na karcie Skrypt i tam zapisać skrypt (może być konieczne przeniesienie skryptów do nowego repozytorium z niesynchronizowanego repozytorium).

Dlaczego w Edytorze kodu widzę powtarzające się błędy 400?

Jeśli w edytorze kodu wielokrotnie pojawia się błąd 400, otwórz stronę https://myaccount.google.com/connections, na liście aplikacji i usług znajdź „Earth Engine Code Editor”, wybierz go, a potem kliknij „Usuń wszystkie połączenia z Earth Engine Code Editor” i potwierdź. Następnie otwórz edytor kodu i ponownie uwierzytelnij.