Google Earth Engine: Javascript API vs. Python API
Wydaje się, że Google Earth Engine jest najczęściej używany za pośrednictwem interfejsu API języka Python lub interfejsu API JavaScript w przeglądarce. Próbując zdecydować się na jedną, natknąłem się na takie porównanie z prezentacji Tylera Ericksona :
Chociaż niektóre różnice są wyraźne (np. O wiele więcej opcji kreślenia w Pythonie), inne są dla mnie bardziej abstrakcyjne.
Pytania:
- Z praktycznego punktu widzenia, jakie są zalety możliwości wykonania „serii wywołań do Earth Engine” w interfejsie API języka Python?
- Czy istnieją inne różnice, których tutaj nie wymieniono, być może w odniesieniu do wydajności podczas eksportowania danych lub szybkości obliczeń?
Odpowiedzi
Aby uzyskać dodatkowy kontekst na slajdzie, do którego odnosi się pytanie, zwróć uwagę, że jest ono porównane przy użyciu Earth Engine Code Editor (internetowego środowiska IDE do programowania z wykorzystaniem interfejsu API języka JavaScript Earth Engine) z wykorzystaniem interfejsu Earth Engine Python API. Slajd pochodzi z prezentacji wykonanej ponad 3 lata temu, a zarówno API JavaScript, jak i Python uległy zmianie, a Edytor kodu zyskał dodatkowe funkcje, takie jak możliwość udostępniania kodu między skryptami Edytora kodu przy użyciu modułów skryptów .
Pytanie nr 1:
Aby wyjaśnić, można wykonać serię żądań przy użyciu bibliotek klienta JavaScript lub Python , a także z poziomu edytora kodu. Jednak praca bezpośrednio z biblioteką klienta języka Python (lub JavaScript) zapewnia większą elastyczność pod względem tego, co można zrobić z wynikami. Na przykład można przeplatać wywołania Earth Engine żądaniami do innych usług i korzystać z bibliotek, które nie są obecnie obsługiwane przez środowisko programistyczne Edytora kodu.
Możliwość wykonania serii połączeń ułatwia następujące przykłady:
- Analizy wrażliwości. Możesz uzyskać dane, zmieniając jeden (lub więcej) parametrów, co pozwala na wykonanie analizy wrażliwości . Na przykład, jak zmieniający się
scaleparametr wpływa na wyniki uzyskane z ee.Image.reduceRegion ? - Seria wyjść. Możesz utworzyć serię wyjściowych obrazów, map lub tabel. Na przykład możesz wygenerować obraz bez chmury dla każdego zlewni w kraju.
- Notebooki Jupyter. Możesz opracować przepływy pracy / samouczki, które wyświetlają pośrednie wyniki. Na przykład zobacz notatnik Jupyter / Colab, do którego prowadzi łącze z tego samouczka .
W przypadku pytania nr 2:
- Z pewnością istnieją inne różnice poza prostą listą pokazaną na slajdzie, na przykład pewne różnice w składni . Innym jest to, że Earth Engine Code Editor umożliwia programistom łatwe publikowanie hostowanych aplikacji ( Earth Engine Apps ), co wymagałoby znacznie więcej pracy, aby zrobić to samo za pomocą interfejsu API Pythona.
- Zarówno interfejsy API JavaScript, jak i Python wykorzystują interfejs API REST niższego poziomu do obliczeń wykonywanych na serwerach zaplecza Earth Engine, więc używanie jednego nad drugim nie przynosi korzyści w zakresie wydajności obliczeniowej ani eksportowej.