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:

  • wysył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, które zakończyły się niepowodzeniem, podaj identyfikator zadania, które zakończyło się niepowodzeniem. Identyfikatory zadań wyglądają tak: 4C25GIJBMB52PXTEJTF4JLGL. Znajdziesz je na karcie Zadanie w edytorze kodu. Więcej informacji

Gdzie mogę przeczytać o architekturze Earth Engine?

Zapoznaj się z tą publikacją: Gorelick i in. 2017.

Zapoznaj się ze stronami EDUMateriały 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 w kodowaniu?

Zapoznaj się z przewodnikiem po debugowaniu.

Dlaczego pojawia się błąd „… is not a function”?

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

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

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

Brakujące rzutowanie typów: wartości zwracane przez funkcje takie jak .get() są instancjami ogólnymi 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 pakietu JS innej firmy ee-palettes.

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

Używaj aplikacji Earth Engine w przypadku podstawowych aplikacji. 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 nazywane mapid) to klucze, które umożliwiają klientom pobieranie kafelków mapy. Każdy identyfikator to hash utworzony przez przesłanie wyrażenia obrazu do punktu końcowego getMapId. Wynikowe 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 weryfikacją danych logowania, dlatego najlepiej jest używać ich jak najdłużej. Z punktem końcowym getMapId nie jest powiązany żaden konkretny limit interfejsu API, ale każdy przepływ pracy, który obejmuje tworzenie obiektów mapid z częstotliwością zbliżoną do częstotliwości pobierania kafelków, prawdopodobnie działa nieprawidłowo. Earth Engine nie ma punktu końcowego API do usuwania tych identyfikatorów, wyświetlania ich listy ani zarządzania nimi, ponieważ są to zasoby przejściowe.

Dlaczego funkcja ee.Algorithms.If() wyświetla zarówno wartość „prawda”, jak i „fałsz”?

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. Jednak aby 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 kolekcje obiektów, w których każdy piksel jest jednym obiektem?

Użyj funkcji ee.Image.sample(). Przykłady użycia znajdziesz na stronie dokumentacji 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 według wielu przedziałów 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.

Dane możesz też przesyłać 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

Zanim zgłosisz problem, sprawdź, czy wybrane zasoby rzeczywiście znajdują się w witrynie dostawcy zbioru danych. Więcej informacji znajdziesz w przewodniku po brakujących obrazach.

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

Zwróć uwagę na te kwestie:

  • W przypadku wczesnych scen poziomu 1 Europejska Agencja Kosmiczna nie wygenerowała danych Sentinel-2 SR (poziom 2).

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

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

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

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 bieżące 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ść najnowszych zasobów w katalogu.

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

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' asset to sygnatura czasowa pozyskania 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 Level 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 satelity Landsat 8 i tworzenia kompozytu mediany bez chmur znajdziesz w tym poście na GIS Stack Exchange. Ta sama procedura jest używana do tworzenia kompozycji bez chmur, która jest używana w przykładach klasyfikacji nadzorowanej w przewodniku dla deweloperów.

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

Roy i in., 2016 zawierała analizę różnic w wartościach współczynnika odbicia między danymi TOA z satelitów Landsat 7 i 8 a wartościami współczynnika odbicia 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 publikacji czytamy: „Chociaż różnice między czujnikami są dość małe, mogą mieć znaczący wpływ w zależności od zastosowania danych z satelity Landsat”. Analiza ta została jednak przeprowadzona na podstawie danych sprzed rozpoczęcia zbierania.

Ulepszenia wprowadzone podczas ponownego przetwarzania danych z kolekcji 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 z kolekcji 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 kolekcji 2 na poziomie 2 Mike Wulder z zespołu naukowego Landsat zauważył, że w zależności od charakteru zastosowania (w tym mapowania pokrycia terenu i wykrywania zmian) produkty kolekcji 2 dotyczące odbicia powierzchni są bardzo odpowiednie i wiarygodne, bez konieczności dostosowywania do różnych czujników.

Jak zamaskować chmury i cienie chmur 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ę z odpowiednim zadaniem.

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

Jeśli wystąpi błąd zadania, sprawdź wyświetlany komunikat. Jeśli nie ma konkretnego komunikatu o błędzie, najpierw sprawdź, czy plik nie jest uszkodzony, uruchamiając 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łowach):

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, którą GDAL rozpoznaje. 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?

Pliki GeoTIFF można skompresować za pomocą algorytmów DEFLATE, JPEG, JPEG-XL/JXL, LERC, LERC_DEFLATE, LERC_ZSTD, LZMA, LZW, WEBP lub ZSTD. W przypadku odczytu COG na żywo możesz użyć formatu DEFLATE, JPEG, LZW lub ZSTD. ZSTD to dobry wybór, 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 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 podstawowej, rzut prawdopodobnie ma nieprawidłowy układ odniesienia (założenie dotyczące kształtu Ziemi). Najczęściej zdarza się to w przypadku projekcji sinusoidalnej, której nie można w pełni zakodować w metadanych GDAL. Jeśli wiesz, jaki powinien być rzut docelowy (np. SR-ORG:6974 w przypadku plików korzystających z rzutu sinusoidalnego MODIS), ustaw flagę --crs podczas przesyłania z wiersza poleceń lub w polu crs 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 je 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 zasób 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 mozaik rastrowych Earth Engine muszą mieć tę samą projekcję i rozmiar piksela. Dodatkowo kafelki muszą 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 danych do GCS i do łączenia się z Earth Engine mogły zostać użyte różne konta Google. Sprawdź, czy plik GCS jest czytelny dla konta, którego używasz do łączenia się z Earth Engine. Jeśli logowanie w wielu przeglądarkach powoduje zamieszanie, połącz się z Earth Engine w oknie incognito.

Chcę wyeksportować wiele komponentów naraz.

Każdy obraz musisz wyeksportować osobno.

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

Musisz najpierw przenieść lub usunąć każdy zasób, a następnie przenieść lub usunąć folder nadrzędny lub kolekcję. Jeśli jest dużo komponentów podrzędnych, napisz pętlę powłoki lub pętlę 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 były 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, np. sinusoidalnej lub stożkowej, pliki GeoTIFF nie mogą czasami przechowywać wszystkich niezbędnych parametrów projekcji. W rezultacie wyeksportowany plik będzie wyświetlany w niewłaściwym miejscu w narzędziach GIS na komputerze lub po ponownym wczytaniu 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 strefy UTM zawierającej interesujący Cię obszar.

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 funkcja 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 może 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 się prośba o użycie niewłaściwego konta.

Wyloguj się, na stronie „Wybierz konto” wybierz konto, które jest 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 świata, ale nie podoba mi się projekcja Web Mercator.

Projekcja mapy używana w edytorze kodu to Web Mercator („EPSG:3857”). Zwiększa ona 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 dokumentacji API. Pamiętaj, że tej techniki należy używać tylko do celów wizualizacyjnych, 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 niezsynchronizowane. Przyczyna tego stanu jest zmienna i trudna do ustalenia. Aby rozwiązać ten problem, spróbuj odświeżyć listę skryptów, korzystając z przycisku w prawym górnym rogu karty Skrypt. Jeśli to nie pomoże, spróbuj utworzyć nowe repozytorium, klikając przycisk Nowy na karcie Skrypt, i tam zapisać skrypt (może być konieczne przeniesienie skryptów do nowego repozytorium z repozytorium, które nie jest zsynchronizowane).