Google Earth Engine: Javascript API กับ Python API

Sep 22 2020

ดูเหมือนว่า Google Earth Engine จะใช้กันมากที่สุดผ่าน Python API หรือ Javascript API บนเบราว์เซอร์ พยายามที่จะตัดสินใจอย่างใดอย่างหนึ่งฉันเจอการเปรียบเทียบนี้จากการนำเสนอของ Tyler Erickson :

ในขณะที่ความแตกต่างบางอย่างชัดเจน (เช่นตัวเลือกการวางแผนอื่น ๆ อีกมากมายใน Python) แต่สิ่งอื่น ๆ ก็เป็นนามธรรมสำหรับฉันมากกว่า


คำถาม:

  1. ในทางปฏิบัติข้อดีของการสร้าง "ชุดการโทรไปยัง Earth Engine" ใน Python API คืออะไร
  2. มีความแตกต่างอื่น ๆ ที่ไม่ได้ระบุไว้ที่นี่หรือไม่อาจเกี่ยวกับประสิทธิภาพในการส่งออกข้อมูลหรือความเร็วในการคำนวณ

คำตอบ

3 TylerErickson Sep 22 2020 at 16:46

สำหรับบริบทเพิ่มเติมบนสไลด์ที่อ้างถึงในคำถามโปรดทราบว่ากำลังเปรียบเทียบโดยใช้ 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 ดังนั้นจึงไม่มีประโยชน์ด้านประสิทธิภาพการคำนวณหรือการส่งออกจากการใช้อย่างใดอย่างหนึ่ง