Zbiór danych Hansen et al. (2013)
Global
Forest Change w Earth Engine przedstawia zmiany w lasach na całym świecie w latach 2000–2014 w rozdzielczości 30 metrów. Zacznijmy od dodania do mapy danych Hansen et al. Zaimportuj dane o globalnych zmianach w lasach (więcej informacji o wyszukiwaniu i importowaniu zbiorów danych) przez wyszukanie „Hansen forest” i nadanie importowi nazwy gfc2014
lub skopiuj ten kod do edytora kodu:
Edytor kodu (JavaScript)
var gfc2014 = ee.Image('UMD/hansen/global_forest_change_2015'); Map.addLayer(gfc2014);
U góry edytora kodu kliknij przycisk Uruchom. Powinien wyświetlić się obraz podobny do tego na rysunku 1.

Nie martw się, wkrótce będzie wyglądać lepiej. (Więcej informacji o domyślnych wizualizacjach obrazów w Earth Engine) Po zakończeniu tej sekcji uzyskasz obraz podobny do tego na rysunku 2, gdzie kolor zielony oznacza obszary, w których w 2000 roku wykryto las, czerwony – szacunkową utratę lasów w okresie badania, niebieski – przyrost lasów w tym okresie, magenta – obszary, w których lasy zostały utracone i zyskane, a obszary nieleśne są zamaskowane.

Pamiętaj, że gdy do mapy dodawany jest obraz wielopasmowy, pierwsze 3 pasma obrazu są wybierane odpowiednio jako czerwone, zielone i niebieskie, a następnie rozciągane zgodnie z typem danych każdego pasma. Obraz jest czerwony, ponieważ pierwsze 3 pasma to treecover2000
, loss
i gain
. Pasmo treecover2000
jest wyrażone w procentach i ma wartości znacznie wyższe niż pasma loss
(zielone) i gain
(niebieskie), które są binarne ({0, 1}). Obraz jest więc w przeważającej mierze czerwony.
Pasma w danych Global Forest Change to:
Nazwa zespołu | Opis | Zakres |
---|---|---|
treecover2000 | Procent pokrycia drzewami w pikselu. | 0–100 |
przegrana | 1, jeśli w okresie badania wystąpiła utrata. | 0 lub 1 |
zyskać | 1, jeśli w okresie badania nastąpi wzrost. | 0 lub 1 |
lossyear | Rok, w którym nastąpiła utrata, liczony od 2001 r. (indeksowany od 1) lub 0, jeśli nie nastąpiła żadna utrata. | 0–12 |
first_b30 | Pasmo czerwone Landsat 7 utworzone na podstawie pierwszych prawidłowych pikseli w 2000 roku (lub starszych, jeśli w 2000 roku nie było prawidłowych pikseli). | 0–255 |
first_b40 | Pas bliskiej podczerwieni satelity Landsat 7 utworzony na podstawie pierwszych prawidłowych pikseli z 2000 roku. | 0–255 |
first_b50 | Pierwszy obraz w paśmie podczerwieni krótkofalowej z satelity Landsat 7, utworzony na podstawie pierwszych prawidłowych pikseli w 2000 roku. | 0–255 |
first_b70 | Druga krótkofalowa podczerwień z satelity Landsat 7 utworzona na podstawie pierwszych prawidłowych pikseli w 2000 roku. | 0–255 |
last_b30 | Pasmo czerwone Landsat 7 utworzone z najnowszych prawidłowych pikseli w 2012 roku. | 0–255 |
last_b40 | Pas bliskiej podczerwieni Landsat 7 utworzony z najnowszych prawidłowych pikseli w 2012 roku. | 0–255 |
last_b50 | Pierwsze pasmo podczerwieni krótkofalowej Landsat 7 utworzone na podstawie najnowszych prawidłowych pikseli z 2012 roku. | 0–255 |
last_b70 | Druga krótkofalowa podczerwień z satelity Landsat 7, utworzona na podstawie najnowszych prawidłowych pikseli z 2012 roku. | 0–255 |
datamask | Brak danych (0), zmapowana powierzchnia lądu (1) i stałe zbiorniki wodne (2). | 0, 1, 2 |
Aby wyświetlić pokrywę leśną w 2000 roku jako obraz w skali szarości, możesz użyć pasma treecover2000
określonego w drugim argumencie funkcji Map.addLayer()
:
Edytor kodu (JavaScript)
Map.addLayer(gfc2014, {bands: ['treecover2000']}, 'treecover2000');
W rezultacie otrzymasz obraz podobny do tego na rysunku 3.

Oto obraz, który wykorzystuje 3 pasma: pasma 5, 4 i 3 Landsat z 2015 r. Ta kombinacja pasm pokazuje zdrową roślinność na zielono, a glebę na fioletowo:
Edytor kodu (JavaScript)
Map.addLayer( gfc2014, {bands: ['last_b50', 'last_b40', 'last_b30']}, 'false color');
Wynik powinien wyglądać mniej więcej tak jak na rysunku 4.

Jedna z ciekawych wizualizacji zbioru danych Global Forest Change pokazuje zasięg lasów w 2000 roku na zielono, utratę lasów na czerwono, a przyrost lasów na niebiesko. W szczególności ustaw loss
jako pierwszy pasmo (czerwone), treecover2000
jako drugie pasmo (zielone), a gain
jako trzecie pasmo (niebieskie:
Edytor kodu (JavaScript)
Map.addLayer(gfc2014, {bands: ['loss', 'treecover2000', 'gain']}, 'green');
Wartości pasm strat i zysków są binarne, więc będą ledwo widoczne na obrazie, który powinien wyglądać podobnie do rysunku 5.

Chcemy, aby ubytek lasów był oznaczony jasnoczerwonym kolorem, a przyrost lasów – jasnoniebieskim. Aby to naprawić, możemy użyć parametru wizualizacji max
, aby ustawić zakres, do którego rozciągane są dane obrazu. Pamiętaj, że parametr max
visualization
przyjmuje listę wartości odpowiadających wartościom maksymalnym dla każdego pasma:
Edytor kodu (JavaScript)
Map.addLayer(gfc2014, { bands: ['loss', 'treecover2000', 'gain'], max: [1, 255, 1] }, 'forest cover, loss, gain');
Wynik powinien wyglądać mniej więcej tak jak na rysunku 6.

W rezultacie powstaje obraz, na którym lasy są zielone, obszary utracone – czerwone, obszary zyskane – niebieskie, a obszary, na których nastąpił zarówno zysk, jak i utrata – fioletowe. Jednak po bliższym przyjrzeniu się okazuje się, że nie jest to do końca prawda. Zamiast czerwonego koloru, strata jest oznaczona kolorem pomarańczowym. Dzieje się tak, ponieważ jasnoczerwone piksele mieszają się z zielonymi pikselami pod nimi, tworząc pomarańczowe piksele. Podobnie piksele, w których występuje las, utrata i przyrost, są różowe – to połączenie zieleni, jasnej czerwieni i jasnego błękitu. Ilustrację znajdziesz na rysunku 7.

Aby uzyskać obraz obiecany na początku samouczka, możesz utworzyć osobne obrazy dla lasu, straty, zysku oraz dla straty i zysku. Dodaj każdy z tych obrazów do mapy w kolejności, która najlepiej pasuje do wyświetlania.
Palety
Aby wyświetlić każdy obraz w innym kolorze, możesz użyć parametru palette
w przypadku obrazów jednopasmowych.Map.addLayer()
Palety umożliwiają ustawienie schematu kolorów, w którym obraz jest wyświetlany (więcej informacji o paletach). Z samouczka dotyczącego interfejsu Earth Engine API wiesz, że kolory w palecie są rozciągane liniowo do wartości min
i max
.
Jeśli na przykład chcesz użyć zielonej palety do wyświetlenia obrazu przedstawiającego obszar lasu, możesz użyć tego kodu:
Edytor kodu (JavaScript)
Map.addLayer(gfc2014, { bands: ['treecover2000'], palette: ['000000', '00FF00'] }, 'forest cover palette');
Wynik powinien wyglądać podobnie do tego na rysunku 8.

Powiększenie pozwala lepiej ocenić rozdzielczość zdjęć. Rysunek 9 przedstawia obszar wokół Mariscal Estigarribia w Paragwaju.

Obraz na rysunku 3 jest trochę ciemny. Problem polega na tym, że pasmo treecover2000
ma typ danych bajtowych ([0, 255]), podczas gdy w rzeczywistości wartości są procentami ([0, 100]). Aby rozjaśnić obraz, możesz odpowiednio ustawić parametry min
lub max
. Paleta jest następnie rozciągana między tymi ekstremami.
Edytor kodu (JavaScript)
Map.addLayer(gfc2014, { bands: ['treecover2000'], palette: ['000000', '00FF00'], max: 100 }, 'forest cover percent');
Wynik powinien wyglądać podobnie do tego na rysunku 9. Pamiętaj, że w tym przykładzie ustawiony jest tylko parametr max
. Domyślna wartość min
to 0.

Zamaskowanie
Wszystkie dotychczasowe zdjęcia miały duże czarne obszary, w których dane wynosiły zero. Na przykład w oceanie nie ma drzew. Aby te obszary były przezroczyste, możesz zamaskować ich wartości. Każdy piksel w Earth Engine ma wartość i maskę. Obraz jest renderowany z przezroczystością ustawioną przez maskę, przy czym 0 oznacza całkowitą przezroczystość, a 1 – całkowitą nieprzezroczystość.
Możesz zamaskować obraz samym sobą. Jeśli na przykład zamaskujesz pasmo treecover2000
za pomocą tego samego pasma, wszystkie obszary, w których pokrywa leśna wynosi zero, będą przezroczyste:
Edytor kodu (JavaScript)
Map.addLayer(gfc2014.mask(gfc2014), { bands: ['treecover2000'], palette: ['000000', '00FF00'], max: 100 }, 'forest cover masked');
Wynik powinien wyglądać mniej więcej tak jak na rysunku 10.

Przykład
Możesz niemal w całości odtworzyć wizualizację danych Hansena, taką jak na początku samouczka. W tym przykładzie łączymy wszystko w całość, ale z jedną niewielką różnicą. Zamiast określać parametr bands
w wywołaniu Map.addLayer
, tworzymy nowe obrazy za pomocą select()
:
Edytor kodu (JavaScript)
var treeCover = gfc2014.select(['treecover2000']); var lossImage = gfc2014.select(['loss']); var gainImage = gfc2014.select(['gain']); // Add the tree cover layer in green. Map.addLayer(treeCover.updateMask(treeCover), {palette: ['000000', '00FF00'], max: 100}, 'Forest Cover'); // Add the loss layer in red. Map.addLayer(lossImage.updateMask(lossImage), {palette: ['FF0000']}, 'Loss'); // Add the gain layer in blue. Map.addLayer(gainImage.updateMask(gainImage), {palette: ['0000FF']}, 'Gain');
Wynik powinien wyglądać podobnie jak na rysunku 11.

Zauważ, że są 3 wywołania addLayer()
. Każde wywołanie addLayer()
dodaje warstwę do mapy. Po najechaniu kursorem na przycisk Warstwy w prawym górnym rogu mapy pojawią się te warstwy. Każdą warstwę można włączyć lub wyłączyć za pomocą pola wyboru obok niej, a na jej krycie wpływa suwak obok nazwy warstwy.
Już prawie możemy wyświetlić obraz na początku samouczka. Brakuje jednak warstwy pokazującej piksele, w których wystąpiła zarówno utrata, jak i zysk. Brakuje go, ponieważ musimy wiedzieć, jak przeprowadzać obliczenia na pasmach obrazu, zanim będziemy mogli obliczyć, które piksele wykazują zarówno utratę, jak i przyrost. To temat następnej sekcji.