Teraz możesz zacząć pisać kod JavaScript w Earth Engine. Na początek skopiuj ten kod do edytora kodu:
Edytor kodu (JavaScript)
// Instantiate an image with the Image constructor. var image = ee.Image('CGIAR/SRTM90_V4'); // Zoom to a location. Map.setCenter(-112.8598, 36.2841, 9); // Center on the Grand Canyon. // Display the image on the map. Map.addLayer(image);
Kliknij przycisk Run (Uruchom) u góry edytora kodu i zobacz, że na mapie pojawia się bardzo szary obraz. Nie martw się, wkrótce będzie wyglądać lepiej. Jeśli składnia którejkolwiek części tego przykładu jest nieznana, zapoznaj się z samouczkiem JavaScriptu dla Earth Engine.
Konstruktor obrazów
Pierwszą nowością w tym przykładzie jest konstruktor obrazu
ee.Image(). Argument podany konstruktorowi to identyfikator ciągu znaków obrazu w katalogu danych Earth Engine. (Pełną listę możliwych argumentów konstruktora obrazu znajdziesz na karcie Dokumentacja po lewej stronie edytora kodu. Karta Dokumentacja zawiera najbardziej aktualne informacje o możliwościach Earth Engine.
Aby znaleźć identyfikator obrazu, wyszukaj go w Data Catalog Earth Engine za pomocą narzędzia wyszukiwania u góry Edytora kodu. Na przykład wpisz „wysokość” w polu wyszukiwania i zwróć uwagę, że zwracana jest lista rastrów. Kliknij wpis „SRTM Digital Elevation Data Version 4”, aby wyświetlić więcej informacji o tym zbiorze danych. Po prawej stronie opisu zbioru danych znajduje się pole Identyfikator obrazu. Zwróć uwagę, że identyfikator obrazu w przykładzie jest skopiowany z identyfikatora obrazu widocznego w opisie zbioru danych.
Zamiast kopiować i wklejać identyfikatory obrazów, możesz użyć przycisku Importuj w opisie zbioru danych lub linku importuj po prawej stronie wyników wyszukiwania. Jeśli klikniesz link lub przycisk importowania, zmienna zostanie automatycznie utworzona w specjalnej sekcji o nazwie „Importy” u góry skryptu. Możesz zmienić nazwę zmiennej, klikając jej nazwę w sekcji importu.
Konfigurowanie mapy
Drugą nową częścią tego przykładu jest wywołanie Map.setCenter(). Ta metoda obiektu Map, który reprezentuje wyświetlanie mapy w edytorze kodu, wyśrodkowuje mapę na podanej długości i szerokości geograficznej (w stopniach dziesiętnych) oraz poziomie powiększenia, gdzie 1 oznacza pomniejszenie, tak aby mapa pokazywała całą powierzchnię Ziemi. Większe liczby oznaczają powiększenie. Poznaj wszystkie metody obiektu Map, sprawdzając sekcję Map na karcie Dokumentacja po lewej stronie edytora kodu.
Dodawanie warstwy do mapy
Ostatni wiersz w przykładzie oznacza: użyj metody addLayer() obiektu Map, aby dodać obraz do wyświetlania mapy w Edytorze kodu.
Gratulacje! Udało Ci się utworzyć pierwszy skrypt Earth Engine. W następnej sekcji dowiesz się, jak poprawić wygląd tego obrazu.
Dygresja: obrazy w Earth Engine
Obrazy w Earth Engine (więcej informacji znajdziesz na tej stronie) składają się z co najmniej 1 pasma. Każde pasmo na obrazie ma własną nazwę, wartości pikseli, rozdzielczość pikseli i projekcję. Jak się wkrótce przekonasz, obraz SRTM ma 1 pasmo: „elevation”.
Gdy dodajesz obraz do mapy za pomocą Map.addLayer(), Earth Engine musi określić, jak mapować wartości w pasmach obrazu na kolory na wyświetlaczu. Jeśli do mapy zostanie dodany obraz jednopasmowy, Earth Engine domyślnie wyświetla pasmo w odcieniach szarości, gdzie minimalna wartość jest przypisana do czerni, a maksymalna do bieli.
Jeśli nie określisz wartości minimalnej i maksymalnej, Earth Engine użyje wartości domyślnych. Na przykład obraz, który właśnie został dodany do mapy, jest wyświetlany jako obraz w odcieniach szarości rozciągnięty do pełnego zakresu danych lub 16-bitowej liczby całkowitej ze znakiem [-32768, 32767]. (Pasma float są domyślnie rozciągane do zakresu [0, 1], a pasma byte do zakresu [0, 255]).
Możesz sprawdzić typ danych obrazu, drukując go i sprawdzając obiekt obrazu na karcie Konsola. Możesz na przykład wkleić ten kod po poprzednim:
Edytor kodu (JavaScript)
print('SRTM image', image);
Gdy klikniesz Uruchom, w konsoli pojawi się obiekt. Aby sprawdzić właściwości obiektu, rozwiń go, klikając ikonę rozwijania () po lewej stronie obiektu lub właściwości. Rozwiń obiekt obrazu, właściwość „bands”, pasmo „elevation” o indeksie „0” i właściwość „data_type” pasma „elevation”, aby dowiedzieć się, że jest to typ danych
signed int16.
Dostosowywanie wizualizacji warstwy
Aby zmienić sposób rozciągania danych, możesz podać inny parametr w wywołaniu Map.addLayer(). Drugi parametr, visParams, pozwala określić minimalną i maksymalną wartość do wyświetlenia. Aby dowiedzieć się, jakich wartości użyć, aktywuj kartę Inspector i klikaj mapę, aby poznać zakres wartości pikseli. Możesz też użyć Menedżera warstw, aby interaktywnie rozciągnąć dane, a następnie obserwować wartości minimalne i maksymalne odpowiadające percentylom lub rozciągnięciom odchylenia standardowego. Załóżmy, że w wyniku takich eksperymentów ustalisz, że dane powinny zostać rozciągnięte do zakresu [0, 3000]. Aby wyświetlić obraz przy użyciu tego zakresu, użyj:
Edytor kodu (JavaScript)
Map.addLayer(image, {min: 0, max: 3000}, 'custom visualization');
Pamiętaj, że parametr visParams jest obiektem z właściwościami określającymi min i max. (Więcej informacji o obiektach w JavaScripcie znajdziesz w samouczku JavaScriptu lub w tym zewnętrznym materiale). Pamiętaj, że trzeci parametr funkcji Map.addLayer() to nazwa warstwy wyświetlana w Menedżerze warstw. Wynik powinien wyglądać podobnie jak na rysunku 1. Najedź kursorem na pole Warstwy po prawej stronie, aby zobaczyć efekt zmiany nazwy tej warstwy.
Aby wyświetlić pojedyncze pasmo za pomocą palety kolorów, dodaj właściwość palette do obiektu visParams:
Edytor kodu (JavaScript)
Map.addLayer(image, {min: 0, max: 3000, palette: ['blue', 'green', 'red']}, 'custom palette');
Wynik powinien wyglądać mniej więcej tak jak na rysunku 2.
Digression: Palettes
Palety umożliwiają ustawienie schematu kolorów dla obrazów jednopasmowych. Paleta to rozdzielona przecinkami lista ciągów kolorów, które są interpolowane liniowo między wartościami maksymalnymi i minimalnymi w parametrach wizualizacji (lub wartościami domyślnymi zgodnie z typem pasma, jak opisano wcześniej). Na przykład piksele mniejsze lub równe wartości minimalnej będą wyświetlane w pierwszym kolorze z listy, a piksele większe lub równe wartości maksymalnej będą wyświetlane w ostatnim kolorze z listy. Kolory pośrednie są liniowo rozciągane do pośrednich wartości pikseli.
Kolory są definiowane za pomocą schematu wartości kolorów CSS w standardzie internetowym (więcej informacji znajdziesz w tym zewnętrznym źródle). Kolory można określać za pomocą nazwy lub ciągów szesnastkowych wskazujących kombinację czerwonego, zielonego i niebieskiego. Najniższa wartość na dowolnej z 3 pozycji to 00 (co odpowiada liczbie dziesiętnej 0), a najwyższa to FF (co odpowiada liczbie dziesiętnej 255). Ciąg „000000” reprezentuje kolor czarny, „FFFFFF” – biały, „FF0000” – czerwony, „00FF00” – zielony, a „0000FF” – niebieski. Więcej informacji znajdziesz w sekcji Palety kolorów. Inne rozciągnięcia są możliwe przy użyciu deskryptorów Styled Layer, jak opisano w tej sekcji.
W dalszej części tego samouczka dowiesz się, jak wyświetlać zdjęcia wielospektralne. Najpierw jednak przejdź na następną stronę, aby dowiedzieć się, jak wykonywać obliczenia na obrazach.