Google Earth Engine: Javascript API กับ Python API
ดูเหมือนว่า Google Earth Engine จะใช้กันมากที่สุดผ่าน Python API หรือ Javascript API บนเบราว์เซอร์ พยายามที่จะตัดสินใจอย่างใดอย่างหนึ่งฉันเจอการเปรียบเทียบนี้จากการนำเสนอของ Tyler Erickson :
ในขณะที่ความแตกต่างบางอย่างชัดเจน (เช่นตัวเลือกการวางแผนอื่น ๆ อีกมากมายใน Python) แต่สิ่งอื่น ๆ ก็เป็นนามธรรมสำหรับฉันมากกว่า
คำถาม:
- ในทางปฏิบัติข้อดีของการสร้าง "ชุดการโทรไปยัง Earth Engine" ใน Python API คืออะไร
- มีความแตกต่างอื่น ๆ ที่ไม่ได้ระบุไว้ที่นี่หรือไม่อาจเกี่ยวกับประสิทธิภาพในการส่งออกข้อมูลหรือความเร็วในการคำนวณ
คำตอบ
สำหรับบริบทเพิ่มเติมบนสไลด์ที่อ้างถึงในคำถามโปรดทราบว่ากำลังเปรียบเทียบโดยใช้ Earth Engine Code Editor (Web IDE สำหรับการพัฒนากับ Earth Engine JavaScript API) กับการใช้ Earth Engine Python API ภาพนิ่งจากการนำเสนอที่ทำมากกว่า 3 ปีที่ผ่านมาและทั้ง JavaScript และงูหลามAPI ที่มีการเปลี่ยนแปลงและแก้ไขรหัสได้รับคุณสมบัติเพิ่มเติมเช่นความสามารถในการรหัสร่วมกันระหว่างสคริปต์แก้ไขรหัสโดยใช้โมดูลสคริปต์
สำหรับคำถาม # 1:
เพื่อชี้แจงให้ชัดเจนชุดคำขอสามารถทำได้โดยใช้ไลบรารีไคลเอ็นต์ JavaScript หรือ Python และจากภายใน Code Editor อย่างไรก็ตามการทำงานโดยตรงกับไลบรารีไคลเอ็นต์ Python (หรือ JavaScript) ช่วยให้คุณมีความยืดหยุ่นมากขึ้นในแง่ของสิ่งที่คุณสามารถทำได้กับผลลัพธ์ ตัวอย่างเช่นคุณสามารถแทรกการเรียก Earth Engine พร้อมกับคำขอไปยังบริการอื่น ๆ และใช้ไลบรารีที่สภาพแวดล้อมการพัฒนา Code Editor ไม่รองรับ
ความสามารถในการโทรหลายชุดช่วยอำนวยความสะดวกในตัวอย่างต่อไปนี้:
- การวิเคราะห์ความไว คุณสามารถขอรับข้อมูลในขณะที่ที่แตกต่างกันอย่างใดอย่างหนึ่ง (หรือมากกว่า) พารามิเตอร์ที่ช่วยให้คุณสามารถดำเนินการวิเคราะห์ความไว ตัวอย่างเช่น
scaleพารามิเตอร์ที่เปลี่ยนแปลงมีผลต่อผลลัพธ์ที่ได้รับจากee.Image.reduceRegionอย่างไร - ซีรี่ส์ของเอาต์พุต คุณสามารถสร้างชุดของภาพที่ส่งออกแผนที่หรือตารางได้ ตัวอย่างเช่นคุณสามารถสร้างภาพที่ไม่มีเมฆสำหรับทุกลุ่มน้ำในประเทศ
- Jupyter Notebooks คุณสามารถพัฒนาเวิร์กโฟลว์ / บทช่วยสอนที่แสดงผลลัพธ์ระดับกลาง ตัวอย่างเช่นดูสมุดบันทึก Jupyter / Colab ที่ลิงก์จากบทช่วยสอนนี้
สำหรับคำถาม # 2:
- มีแน่นอนคือความแตกต่างอื่น ๆ นอกเหนือจากรายการที่เรียบง่ายที่แสดงบนสไลด์บางอย่างเช่นความแตกต่างในไวยากรณ์ อีกประการหนึ่งคือ Earth Engine Code Editor ช่วยให้นักพัฒนาสามารถเผยแพร่แอปพลิเคชันที่โฮสต์ ( Earth Engine Apps ) ได้อย่างง่ายดายซึ่งจะต้องใช้งานมากขึ้นในการทำเช่นเดียวกันโดยใช้ Python API
- ทั้ง JavaScript และ Python API ใช้REST APIระดับล่างสำหรับการคำนวณที่ดำเนินการบนเซิร์ฟเวอร์แบ็กเอนด์ของ Earth Engine ดังนั้นจึงไม่มีประโยชน์ด้านประสิทธิภาพการคำนวณหรือการส่งออกจากการใช้อย่างใดอย่างหนึ่ง