Edytor kodu Earth Engine

Edytor kodu Earth Engine (EE) na stronie code.earthengine.google.com to internetowe środowisko IDE dla interfejsu Earth Engine JavaScript API. Funkcje edytora kodu zostały zaprojektowane tak, aby tworzenie złożonych procesów geoprzestrzennych było szybkie i łatwe. Edytor kodu zawiera te elementy (ilustracja 1):

  • Edytor kodu JavaScript
  • Wyświetlanie mapy do wizualizacji zbiorów danych geoprzestrzennych
  • Dokumentacja API (karta Dokumenty)
  • Menedżer skryptów oparty na Git (karta Skrypty)
  • Dane wyjściowe konsoli (karta Konsola)
  • Menedżer zadań (karta Zadania) do obsługi długotrwałych zapytań
  • Zapytanie dotyczące mapy interaktywnej (karta Inspektora)
  • Wyszukiwanie w archiwum danych lub zapisanych skryptach
  • Narzędzia do rysowania geometrii

Elementy edytora kodu

Rysunek 1. Diagram komponentów edytora kodu Earth Engine na stronie code.earthengine.google.com.

Edytor kodu ma wiele funkcji, które pomagają korzystać z interfejsu Earth Engine API. Przykładowe skrypty możesz wyświetlić lub zapisać na karcie Skrypty. Sprawdzaj obiekty z zapytań umieszczone na mapie na karcie Inspektor. Wyświetlaj wyniki liczbowe w postaci wykresów za pomocą interfejsu Google Visualization API. Udostępnij unikalny adres URL skryptu współpracownikom i znajomym, klikając przycisk Pobierz link. Skrypty opracowywane w edytorze kodu są wysyłane do Google w celu przetworzenia, a wygenerowane kafelki mapy lub wiadomości są odsyłane do wyświetlenia na karcie Mapa lub Konsola. Aby uruchomić edytor kodu, potrzebujesz tylko przeglądarki internetowej (dla najlepszych wyników używaj Google Chrome) i połączenia z internetem. W kolejnych sekcjach znajdziesz więcej informacji o elementach edytora kodu Earth Engine.

Edytor JavaScript

Edytor JavaScript:

  • Formatowanie i wyróżnianie kodu podczas pisania
  • podkreślać kod, w którym występują problemy, i oferować poprawki oraz inne wskazówki dotyczące prawidłowej składni;
  • Autouzupełnianie par cudzysłowów, nawiasów kwadratowych i okrągłych
  • wyświetlać podpowiedzi dotyczące uzupełniania kodu funkcji Earth Engine,

Nad edytorem kodu znajdują się przyciski uruchamiania skryptu, zapisywania skryptu, resetowania mapy wyjściowej i konsoli oraz uzyskiwania linku do skryptu. Po naciśnięciu przycisku Uzyskaj link na pasku adresu przeglądarki pojawi się unikalny link. Ten link reprezentuje kod w edytorze w momencie naciśnięcia przycisku.

Dokumentacja API (karta Dokumenty)

Po lewej stronie edytora kodu znajduje się karta Dokumenty, która zawiera pełną dokumentację interfejsu JavaScript API. Dokumentację można przeszukiwać i przeglądać na karcie Dokumenty.

Menedżer skryptów (karta Skrypty)

Karta Skrypty znajduje się obok dokumentacji interfejsu API w lewym panelu edytora kodu. Menedżer skryptów przechowuje prywatne, udostępnione i przykładowe skrypty w repozytoriach Git hostowanych przez Google. Repozytoria są uporządkowane według poziomu dostępu, a Twoje prywatne skrypty są przechowywane w repozytorium, którego jesteś właścicielem, w folderze Właściciel: users/username/default. Dostęp do repozytoriów w folderze Właściciel masz tylko Ty, chyba że udostępnisz je komuś innemu. Repozytoria w folderze Zapisujący to repozytoria, do których właściciel przyznał Ci dostęp z możliwością zapisu. Możesz dodawać nowe skrypty do repozytoriów w folderze Writer, modyfikować w nich istniejące skrypty i zmieniać do nich dostęp (nie możesz usuwać ich właściciela). Repozytoria w folderze Czytelnik to repozytoria, do których właściciel przyznał Ci dostęp do odczytu. Folder Examples to specjalne repozytorium zarządzane przez Google, które zawiera przykładowy kod. Folder Archiwum zawiera starsze repozytoria, do których masz dostęp, ale które nie zostały jeszcze przeniesione przez właściciela ze starszej wersji Menedżera skryptów. Przeszukaj skrypty za pomocą paska filtra u góry karty Skrypty.

Menedżer skryptów

Rysunek 2. Menedżer skryptów

Kliknij przycisk , aby utworzyć nowe repozytorium w folderze Właściciel lub utworzyć foldery i pliki w repozytorium. Możesz zmieniać nazwy skryptów za pomocą ikony  i usuwać je za pomocą ikony . Możesz przenosić skrypty i porządkować je w folderach, przeciągając i upuszczając je (rysunek 2). Jeśli przeciągniesz skrypt do innego repozytorium, zostanie on skopiowany.

Wszystkie skrypty i repozytoria zachowują pełną historię wersji. Kliknij ikonę  obok skryptu lub repozytorium, aby porównać go ze starszą wersją lub przywrócić starszą wersję. Aby usunąć repozytorium, kliknij ikonę . Aby skonfigurować dostęp do repozytorium, kliknij ikonę  obok jego nazwy. Pamiętaj, że jeśli udostępnisz repozytorium, osoba, której je udostępniasz, będzie musiała zaakceptować repozytorium, klikając link wyświetlany w oknie dialogowym ustawień. Wcześniej zaakceptowane repozytoria można ukryć, klikając ikonę  obok nazwy repozytorium w Menedżerze skryptów.

Dostęp do repozytoriów można uzyskać za pomocą Gita, dzięki czemu możesz zarządzać skryptami i edytować je poza edytorem kodu lub synchronizować je z zewnętrznym systemem, takim jak GitHub. (Więcej informacji o Git znajdziesz w tym samouczku). Kliknij ikonę  obok nazwy repozytorium, aby wyświetlić instrukcje klonowania repozytorium. Pamiętaj, że możesz przeglądać repozytoria, do których masz dostęp, na stronie earthengine.googlesource.com. W przypadku niektórych operacji Git może być konieczne utworzenie danych logowania, klikając link „Generate Password” (Wygeneruj hasło) u góry strony earthengine.googlesource.com.

Moduły skryptu

Warto pisać modułowy kod wielokrotnego użytku, który można udostępniać między skryptami bez konieczności kopiowania i wklejania. Aby umożliwić modułowe tworzenie aplikacji, Earth Engine udostępnia możliwość udostępniania kodu między skryptami. Załóżmy na przykład, że piszesz funkcję, która wykonuje przydatny zestaw operacji. Zamiast kopiować kod funkcji do nowego skryptu, łatwiej jest bezpośrednio wczytać funkcję w nowym skrypcie. Aby udostępnić funkcję lub obiekt innym skryptom, dodaj go do specjalnego obiektu o nazwie exports. Aby użyć kodu w innym skrypcie, użyj funkcji require, aby załadować eksporty z innego skryptu. Załóżmy na przykład, że w pliku o nazwie FooModule.js znajdującym się w folderze o nazwie Modules zdefiniujesz ten moduł:

Edytor kodu (JavaScript)

/**
 * The Foo module is a demonstration of script modules.
 * It contains a foo function that returns a greeting string.
 * It also contains a bar object representing the current date.
 * @module Modules/FooModule
 */

/**
 * Returns a greeting string.
 * @param {ee.String} arg The name to which the greeting should be addressed
 * @return {ee.String} The complete greeting.
 */
exports.foo = function(arg) {
  return 'Hello, ' + arg + '!  And a good day to you!';
};

/**
 * An ee.Date object containing the time at which the object was created.
 */
exports.bar = ee.Date(Date.now());

Zwróć uwagę na użycie słowa kluczowego exports w formie exports.objectToExport. Możesz użyć tego modułu w innym skrypcie, korzystając z funkcji require. Na przykład:

Edytor kodu (JavaScript)

var Foo = require('users/username/default:Modules/FooModule.js');

print(Foo.doc);

print(Foo.foo('world'));

print('Time now:', Foo.bar);

Funkcja require oczekuje ciągu znaków opisującego ścieżkę bezwzględną do lokalizacji modułu. Argument funkcji require() ma postać 'pathToRepository:pathToModuleScript'. Możesz wczytywać moduły tylko z repozytoriów, których jesteś właścicielem lub do których masz dostęp do odczytu. Jeśli chcesz, aby inne osoby mogły korzystać z Twojego modułu, musisz udostępnić repozytorium użytkownikom, którym chcesz przyznać dostęp. Możesz udokumentować swój moduł, aby pomóc innym zrozumieć, jak go używać. Zalecamy używanie stylu JSDoctagiem @module.

Za pomocą parametru adresu URL ?scriptPath={repo}:{script} możesz udostępnić odniesienie do pliku w repozytorium, np. https://code.earthengine.google.com/?scriptPath=users/username/utils:utils. Po otwarciu adresu URL plik, do którego się odnosi, i jego repozytorium zostaną dodane do katalogu Czytnik lub Zapisywacz na karcie Skrypty, w zależności od poziomu uprawnień do udostępnionego repozytorium.

Menedżer komponentów (karta Komponenty)

Menedżer zasobów znajduje się na karcie Zasoby w panelu po lewej stronie. Użyj Menedżera zasobów (rysunek 3), aby przesyłać własne komponenty z obrazem w Earth Engine i nimi zarządzać. Więcej informacji znajdziesz na stronie Menedżera zasobów.

Menedżer zasobów

Rysunek 3. Menedżer komponentów.

Skrypty Edytora kodu można udostępniać za pomocą zakodowanego adresu URL. W sekcjach poniżej opisujemy różne sposoby generowania adresu URL skryptu, dostępne opcje i metody zarządzania adresami URL skryptów.

Przycisk „Pobierz link” u góry edytora kodu (rysunek 4) umożliwia generowanie adresów URL skryptów i ustawianie opcji ich działania. Zwróć uwagę na różnice między adresami URL migawek i zapisanych skryptów opisane poniżej.

Jej

Rysunek 4. Przycisk „Pobierz link”.

Kod w edytorze można udostępnić za pomocą zakodowanego adresu URL zrzutu, który jest tworzony po kliknięciu przycisku „Pobierz link” u góry edytora kodu. Gdy ktoś z kontem Earth Engine otworzy ten adres URL, przeglądarka przekieruje go do edytora kodu i odtworzy środowisko w takiej postaci, w jakiej było ono w momencie tworzenia linku, w tym kod, importy, warstwy mapy i pozycję mapy. Kliknięcie przycisku „Pobierz link” spowoduje automatyczne skopiowanie linku do skryptu do schowka. Dodatkowo pojawi się okno dialogowe z opcjami sterowania wykonaniem udostępnionego skryptu oraz przyciskami do skopiowania i otwarcia wygenerowanego linku. Opcje sterowania obejmują zapobieganie automatycznemu uruchamianiu skryptu i ukrywanie panelu kodu, gdy ktoś otworzy udostępniony link. Okno dialogowe, które można przeciągać, można zamknąć, naciskając klawisz „Esc” lub klikając w dowolnym miejscu na stronie.

Zapisane skrypty mają opcję udostępniania linku, który zawsze wczytuje najnowszą zapisaną wersję i jest dostępny tylko dla Ciebie i innych osób, które mają aktualny dostęp do repozytorium zawierającego skrypt. Aby skorzystać z tej funkcji, wczytaj zapisany skrypt na karcie Menedżer skryptów, kliknij strzałkę menu po prawej stronie przycisku „Pobierz link” i wybierz „Kopiuj ścieżkę skryptu”. Pojawi się okno dialogowe z adresem URL skryptu, który można udostępnić. Zwróć uwagę, że adres URL skryptu został też ustawiony na pasku adresu przeglądarki. Więcej informacji o udostępnianiu repozytorium innym osobom znajdziesz w sekcji Menedżer skryptów.

Przycisk menu po prawej stronie przycisku „Pobierz link” zawiera opcję „Zarządzaj linkami”. Kliknięcie tej opcji spowoduje otwarcie nowej karty przeglądarki z interfejsem, w którym możesz przywoływać, usuwać i pobierać wygenerowane wcześniej linki do skryptów. Po wybraniu skryptu i kliknięciu przycisku pobierania na komputer zostanie pobrany folder ZIP („code_editor_links.zip”) zawierający plik tekstowy z reprezentacją każdego wybranego skryptu.

Moduł ui.url umożliwia programowe manipulowanie identyfikatorem fragmentu adresu URL skryptu za pomocą metod getset. Oznacza to, że skrypty w edytorze kodu i aplikacje Earth Engine mogą odczytywać i przechowywać wartości w adresie URL strony. Zwróć uwagę na końcówki tych 2 adresów URL. W pierwszym z nich zmienna debug ma wartość false, a w drugim – true. Otwórz oba linki i zwróć uwagę, że w pierwszym z nich pole wyboru debugowania w konsoli nie jest zaznaczone, a w drugim jest zaznaczone, co zmienia działanie każdego skryptu.

https://code.earthengine.google.com/5695887aad76979388a723a85339fbf2#debug=false;
https://code.earthengine.google.com/5695887aad76979388a723a85339fbf2#debug=true;

Możesz użyć tej funkcji, aby ustawić powiększenie i środek mapy, a także inne zachowania, które chcesz dostosować podczas wysyłania linków do konkretnych osób lub grup.

Narzędzie wyszukiwania

Aby znaleźć zbiory danych do wykorzystania w skryptach, możesz użyć narzędzia do wyszukiwania w archiwum danych. Narzędzie wyszukiwania to pole tekstowe u góry Edytora kodu z napisem „Wyszukaj miejsca i zbiory danych…”. Wpisz nazwę produktu danych, czujnika lub innego słowa kluczowego na pasku wyszukiwania i kliknij przycisk , aby wyświetlić listę pasujących miejsc, zbiorów danych rastrowych i tabelarycznych. Kliknij dowolny wynik rastrowy lub tabelę, aby wyświetlić opis tego zbioru danych w archiwum. Aby zaimportować zbiór danych bezpośrednio do skryptu, kliknij link import lub przycisk  w opisie zbioru danych.

Importy

Wyniki importowania zbiorów danych do skryptu są uporządkowane w sekcji importów u góry skryptu. Jest ona ukryta, dopóki nie zaimportujesz żadnych danych. Po utworzeniu kilku importów zobaczysz coś podobnego do tego, co widać na rysunku 5. Aby skopiować importy do innego skryptu lub przekonwertować je na JavaScript, kliknij ikonę  obok nagłówka Importy i skopiuj wygenerowany kod do skryptu. Możesz usunąć import, klikając ikonę.

Sekcja importów w edytorze kodu

Rysunek 5. Sekcja importów u góry edytora kodu.

Mapa

Obiekt Map w interfejsie API odnosi się do wyświetlania mapy w edytorze kodu. Na przykład Map.getBounds() zwróci region geograficzny widoczny w edytorze kodu. Sprawdź funkcje Map w interfejsie API, aby zobaczyć inne opcje dostosowywania tego wyświetlania.

Menedżer warstw

Użyj Menedżera warstw w prawym górnym rogu mapy, aby dostosować wyświetlanie warstw dodanych do mapy. Możesz włączać i wyłączać widoczność warstwy lub dostosowywać jej przezroczystość za pomocą suwaka. Kliknij ikonę , aby dostosować parametry wizualizacji poszczególnych warstw. Pojawi się narzędzie do wizualizacji (rysunek 6), które umożliwia interaktywne konfigurowanie parametrów wyświetlania warstw. Kliknij przycisk po prawej stronie narzędzia (które domyślnie wykonuje niestandardowe rozciąganie do podanego zakresu min. i maks.), aby liniowo rozciągnąć wyświetlanie do percentyli lub odchyleń standardowych wartości obrazu w oknie wyświetlania. Statystyki są obliczane na podstawie wszystkich pikseli w oknie Mapy przy bieżącym poziomie powiększenia. Użyj suwaków, aby dostosować współczynnik gamma lub przezroczystość. Kliknij przycisk radiowy Paleta i określ paletę niestandardową, dodając kolory (), usuwając kolory () lub ręcznie wpisując rozdzieloną przecinkami listę ciągów szesnastkowych (). Kliknij Zastosuj, aby zastosować parametry wizualizacji do bieżącego wyświetlania. Kliknij Importuj, aby wczytać obiekt parametrów wizualizacji jako nową zmienną w sekcji importów skryptu.

narzędzie do wizualizacji warstw,

Rysunek 6. Narzędzie do wizualizacji warstw

Karta Inspektora

Karta Inspektor obok Menedżera zadań umożliwia interaktywne wysyłanie zapytań do mapy. Gdy karta Inspektor jest aktywna, kursor zmienia się w celownik, który po kliknięciu mapy wyświetla lokalizację i wartości warstwy pod kursorem. Na przykład na rysunku 7 widać wyniki kliknięcia mapy na karcie Inspektor. Wyświetlane są lokalizacja kursora i poziom powiększenia, a także wartości pikseli i lista obiektów na mapie. Lista obiektów jest interaktywna. Aby wyświetlić więcej informacji, rozwiń obiekty na karcie Inspektor.

Karta Inspektora

Rysunek 7. Karta Inspektor zawiera informacje o położeniu kursora i wartościach warstwy pod kursorem.

Karta Konsola

Gdy print() coś ze skryptu, np. tekst, obiekty lub wykresy, wynik zostanie wyświetlony w konsoli. Konsola jest interaktywna, więc możesz rozwinąć wydrukowane obiekty, aby uzyskać więcej informacji na ich temat.

Karta Lista zadań

Zadania Earth Engine to operacje, które mogą trwać znacznie dłużej niż standardowy limit czasu żądania do interfejsu API. Te długotrwałe zadania są jedynym mechanizmem tworzenia trwałych artefaktów w Earth Engine i powiązanych systemach (Google Cloud Storage, Dysk Google itp.) i dzielą się na 2 kategorie: ImportExport.

Zadania importowania mogą służyć do przesyłania obrazów lub przesyłania tabel do Earth Engine z różnych typów plików (.csv, .tif itp.). Zadania eksportowania mogą służyć do wykonywania obliczeń w systemie obliczeniowym EE i zapisywania ich wyników (patrz przewodnik eksportowania danych).

W przypadku eksportu każde wywołanie funkcji Export w edytorze kodu spowoduje wypełnienie wpisu w sekcji Nieprzesłane zadania na karcie Zadania. Aby przesłać zadanie eksportu na serwer, kliknij przycisk Uruchom obok zadania. Pojawi się okno konfiguracji, w którym możesz określić różne parametry zadania. Jeśli zadanie jest w pełni określone w momencie tworzenia (tzn. wywołanie Export zawiera wszystkie niezbędne parametry), przytrzymaj ctrl lub i kliknij Uruchom, aby przesłać zadanie bez wyświetlania okna.

W przypadku importu przesyłanie plików odbywa się lokalnie, zanim zadanie zostanie przesłane na serwer. Zadania importu w fazie przesyłania będą wyświetlać postęp w sekcji Nieprzesłane zadania i automatycznie przesyłać się na serwer po zakończeniu przesyłania pliku.

Nieprzesłane zadania są widoczne tylko na stronie, na której zostały utworzone, i zostaną utracone po jej zamknięciu. Gdy zadanie zostanie przesłane na serwer, kliknięcie jego wiersza w interfejsie użytkownika spowoduje wyświetlenie dodatkowych informacji i opcji dotyczących stanu zadania, w tym opcji anulowania.

Aby wyświetlić i anulować wiele zadań w widoku pełnoekranowym (również na klientach mobilnych), użyj strony Zadania w konsoli Cloud.

Narzędzie do profilowania

Profiler wyświetla informacje o zasobach (czas procesora, pamięć) wykorzystywanych przez konkretne algorytmy i inne części obliczeń. Pomaga to zdiagnozować, dlaczego skrypt działa wolno lub kończy się niepowodzeniem z powodu limitów pamięci. Aby użyć profilera, w menu przycisku Uruchom kliknij opcję Uruchom z profilerem. Możesz też przytrzymać Alt (lub Option na Macu) i kliknąć Uruchom albo nacisnąć Ctrl+Alt+Enter. Spowoduje to aktywowanie karty Profiler po prawej stronie edytora kodu. Podczas działania skryptu na karcie Profiler pojawi się tabela z informacjami o wykorzystaniu zasobów przez skrypt. Kliknięcie przycisku Uruchom (bez profilowania) spowoduje zniknięcie karty Profiler i wyłączenie profilera.

Szczegółowe informacje o danych wyjściowych profilera znajdziesz na stronie Omówienie obliczeń.

Asystent AI (karta Zapytaj)

Edytor kodu zawiera asystenta AI opartego na Gemini, który pomaga pisać, debugować i rozumieć skrypty. Asystent jest dostępny na karcie Zapytaj w panelu po prawej stronie.

Szczegółowe informacje o konfigurowaniu i używaniu asystenta znajdziesz w przewodniku Asystent AI w edytorze kodu Earth Engine.

Narzędzia do geometrii

Możesz też importować geometrie do skryptu, rysując je na ekranie. Aby utworzyć geometrie, użyj narzędzi do rysowania geometrii w lewym górnym rogu wyświetlania mapy (rysunek 8). Aby narysować punkty, użyj ikony znacznika miejsca . Aby narysować linie, użyj ikony linii . Aby narysować wielokąty, użyj ikony wielokąta . Aby narysować prostokąty, użyj ikony prostokąta . (Uwaga: prostokąty to geometrie płaskie, więc nie można ich umieszczać na warstwie z geometriami geodezyjnymi, takimi jak linie i wielokąty).

Użycie dowolnego narzędzia do rysowania spowoduje automatyczne utworzenie nowej warstwy geometrii i dodanie importu tej warstwy do sekcji Importy. Aby dodać geometrie do nowej warstwy, najedź kursorem na importy geometrii na wyświetlaczu mapy i kliknij link +nowa warstwa. Możesz też przełączać widoczność geometrii w sekcji Importy geometrii. Pamiętaj, że narysowane geometrie są domyślnie geodezyjne, z wyjątkiem prostokątów, które są tylko płaskie. Użyj konstruktora Geometry, aby przekształcić je w geometrie płaskie. Więcej informacji o geometriach w Earth Engine znajdziesz na stronie Geometria.

Rysunek 8. Narzędzia do rysowania geometrii znajdują się w lewym górnym rogu wyświetlania mapy.

Aby skonfigurować sposób importowania geometrii do skryptu, kliknij ikonę  obok warstwy w sekcji Importowanie geometrii na mapie lub w sekcji Importy edytora kodu. Narzędzie do ustawień warstwy geometrii pojawi się w oknie dialogowym, które powinno wyglądać podobnie do tego na rysunku 9. Pamiętaj, że narysowane kształty możesz zaimportować jako geometrie, obiekty lub zbiory obiektów. Ustawienia importowania geometrii umożliwiają też zmianę koloru, w jakim wyświetlana jest warstwa, dodawanie do niej właściwości (jeśli jest importowana jako Feature lub FeatureCollection) oraz zmianę nazwy warstwy.

Narzędzie do konfiguracji geometrii

Rysunek 9. Narzędzie do konfiguracji geometrii.

Aby uniemożliwić edytowanie geometrii w warstwie, możesz ją zablokować, klikając ikonę  obok warstwy. Uniemożliwi to dodawanie, usuwanie i edytowanie geometrii w warstwie. Aby ponownie odblokować warstwę, naciśnij ikonę .

Dlaczego

W prawym górnym rogu Edytora kodu kliknij przycisk , aby wyświetlić linki do tego przewodnika dla programistów, innych forów pomocy, przewodnika po Edytorze kodu i listy skrótów klawiszowych, które ułatwiają pisanie i uruchamianie kodu oraz wyświetlanie danych na mapie. Kliknij przycisk, aby zgłosić błąd, poprosić o nową funkcję, zaproponować zbiór danych lub w inny sposób przesłać opinię, gdy nie jest wymagana odpowiedź.