Google Earth Engine: API Javascript so với API Python
Google Earth Engine dường như được sử dụng phổ biến nhất thông qua API Python hoặc API Javascript trên trình duyệt. Đang cố gắng quyết định cho một, tôi đã bắt gặp sự so sánh này, từ một bài thuyết trình của Tyler Erickson :
Trong khi một số khác biệt là rõ ràng (ví dụ: nhiều tùy chọn vẽ biểu đồ hơn trong Python), những người khác lại trừu tượng hơn đối với tôi.
Câu hỏi:
- Về mặt thực tế, lợi ích của việc có thể thực hiện một "chuỗi lệnh gọi tới Earth Engine" trong API Python là gì?
- Có sự khác biệt nào khác không được liệt kê ở đây, có lẽ liên quan đến hiệu quả khi xuất dữ liệu hoặc tốc độ tính toán?
Trả lời
Đối với ngữ cảnh bổ sung trên trang trình bày được tham chiếu trong câu hỏi, hãy lưu ý rằng nó đang so sánh bằng cách sử dụng Earth Engine Code Editor (một IDE web để phát triển dựa trên API Earth Engine JavaScript) so với sử dụng Earth Engine Python API. Trang trình bày là từ một bản trình bày được thực hiện cách đây hơn 3 năm và cả API JavaScript và Python đều đã thay đổi và Trình soạn thảo mã đã có thêm các tính năng như khả năng chia sẻ mã giữa các tập lệnh Trình soạn thảo mã bằng cách sử dụng mô-đun tập lệnh .
Đối với Câu hỏi số 1:
Để làm rõ, một loạt các yêu cầu có thể được thực hiện bằng cách sử dụng thư viện máy khách JavaScript hoặc Python và cũng từ trong Trình soạn thảo mã. Tuy nhiên, làm việc trực tiếp với thư viện máy khách Python (hoặc JavaScript) cho phép bạn linh hoạt hơn về những gì bạn có thể làm với kết quả. Ví dụ: bạn có thể xen kẽ các cuộc gọi Earth Engine với các yêu cầu tới các dịch vụ khác và sử dụng các thư viện hiện không được hỗ trợ bởi môi trường phát triển Code Editor.
Có thể thực hiện một loạt các cuộc gọi tạo điều kiện cho các ví dụ sau:
- Phân tích độ nhạy. Bạn có thể lấy dữ liệu trong khi thay đổi một (hoặc nhiều) tham số, cho phép bạn thực hiện phân tích độ nhạy . Ví dụ:
scaletham số thay đổi ảnh hưởng đến kết quả thu được từ ee.Image.reduceRegion như thế nào? - Chuỗi đầu ra. Bạn có thể tạo ra một loạt các hình ảnh, bản đồ hoặc bảng đầu ra. Ví dụ: bạn có thể tạo hình ảnh không có đám mây cho mọi lưu vực ở một quốc gia.
- Máy tính xách tay Jupyter. Bạn có thể phát triển quy trình làm việc / hướng dẫn hiển thị kết quả trung gian. Ví dụ: hãy xem sổ ghi chép Jupyter / Colab được liên kết từ hướng dẫn này .
Đối với Câu hỏi số 2:
- Chắc chắn có những khác biệt khác ngoài danh sách đơn giản được hiển thị trên trang trình bày, chẳng hạn như một số khác biệt về cú pháp . Một điều khác là Earth Engine Code Editor cho phép các nhà phát triển dễ dàng xuất bản các ứng dụng được lưu trữ ( Earth Engine Apps ), điều này sẽ đòi hỏi nhiều công việc hơn để làm điều tương tự bằng cách sử dụng API Python.
- Cả API JavaScript và Python đều sử dụng API REST cấp thấp hơn để tính toán được thực hiện trên các máy chủ phụ trợ của Earth Engine, do đó, không có lợi ích về hiệu suất tính toán hoặc xuất khẩu khi sử dụng cái này thay cho cái kia.