Google Earth Engine : 자바 스크립트 API와 Python API
Google Earth Engine은 Python API 또는 브라우저의 Javascript API를 통해 가장 일반적으로 사용되는 것으로 보입니다. 하나를 결정하기 위해 Tyler Erickson 프레젠테이션 에서이 비교를 보았습니다 .
일부 차이점은 분명하지만 (예 : Python에서 더 많은 플로팅 옵션), 다른 것들은 나에게 더 추상적입니다.
질문 :
- 실제로 Python API에서 '어스 엔진에 대한 일련의 호출'을 할 수 있다는 장점은 무엇인가요?
- 데이터를 내보낼 때 효율성이나 계산 속도와 관련하여 여기에 나열되지 않은 다른 차이점이 있습니까?
답변
질문에서 참조 된 슬라이드의 추가 컨텍스트를 보려면 Earth Engine 코드 편집기 (Earth Engine JavaScript API에 대해 개발하기위한 웹 IDE)를 사용하는 것과 Earth Engine Python API를 사용하는 것을 비교하고 있습니다. 이 슬라이드는 3 년 전에 작성된 프레젠테이션에서 가져온 것으로 JavaScript와 Python API가 모두 변경 되었으며 코드 편집기는 스크립트 모듈을 사용하여 코드 편집기 스크립트간에 코드를 공유하는 기능과 같은 추가 기능을 얻었습니다 .
질문 # 1 :
명확히하기 위해 자바 스크립트 또는 Python 클라이언트 라이브러리 를 사용하고 코드 편집기 내에서도 일련의 요청을 할 수 있습니다 . 하지만 Python (또는 자바 스크립트) 클라이언트 라이브러리로 직접 작업하면 결과로 수행 할 수있는 작업의 측면에서 더 많은 유연성이 제공됩니다. 예를 들어 Earth Engine 호출을 다른 서비스에 대한 요청과 인터리브하고 현재 코드 편집기 개발 환경에서 지원하지 않는 라이브러리를 사용할 수 있습니다.
일련의 호출을 수행 할 수 있으면 다음 예제를 쉽게 수행 할 수 있습니다.
- 민감도 분석. 하나 이상의 매개 변수를 변경하면서 데이터를 얻을 수 있으므로 민감도 분석 을 수행 할 수 있습니다 . 예를 들어,
scale매개 변수 변경 이 ee.Image.reduceRegion 에서 얻은 결과에 어떤 영향을 미칩니 까? - 일련의 출력. 일련의 출력 이미지, 맵 또는 테이블을 생성 할 수 있습니다. 예를 들어 한 국가의 모든 유역에 대해 구름없는 이미지를 생성 할 수 있습니다.
- Jupyter 노트북. 중간 결과를 표시하는 워크 플로 / 튜토리얼을 개발할 수 있습니다. 예를 들어이 가이드 에서 링크 된 Jupyter / Colab 노트북을 참조 하세요 .
질문 # 2 :
- 슬라이드에 표시된 간단한 목록 외에도 구문의 일부 차이 와 같은 다른 차이점이 있습니다 . 또 다른 하나는 Earth Engine 코드 편집기를 사용하면 개발자가 호스팅 된 애플리케이션 ( Earth Engine 앱 ) 을 쉽게 게시 할 수 있으므로 Python API를 사용하여 동일한 작업을 수행하려면 훨씬 더 많은 작업이 필요합니다.
- JavaScript 및 Python API는 둘 다 Earth Engine 백엔드 서버에서 수행되는 계산에 하위 수준 REST API 를 사용하므로 둘 중 하나를 사용하여 계산 또는 내보내기 성능상의 이점이 없습니다.