ภาพรวมของ App Engine และ Earth Engine

Google App Engine ช่วยให้คุณสร้างและเรียกใช้แอปพลิเคชันที่กําหนดเองบนเซิร์ฟเวอร์ของ Google ได้ แอปพลิเคชัน App Engine สร้าง ดูแลรักษา และปรับขนาดได้ง่ายเมื่อปริมาณการเข้าชมและความต้องการพื้นที่เก็บข้อมูลมีการเปลี่ยนแปลง คุณเพียงอัปโหลดซอร์สโค้ดแอปพลิเคชันก็พร้อมใช้งานแล้ว หากเพิ่งเริ่มพัฒนาแอปสำหรับ App Engine โปรดดูการเริ่มต้นใช้งาน App Engine Python หรือ Node.js ก่อนดำเนินการต่อ

คุณใช้ Earth Engine และ App Engine ร่วมกันเพื่อสร้างแอปพลิเคชันเชิงพื้นที่ที่ปรับขนาดได้ โดยปกติแล้ว โค้ด App Engine จะมีไลบรารีของไคลเอ็นต์ Python สำหรับ Earth Engine และส่งคำขอไปยังแบ็กเอนด์ของ Earth Engine โดยใช้บัญชีบริการ ซึ่งมีข้อดีตรงที่ช่วยให้ทุกคนใช้แอปของคุณได้โดยไม่ต้องเข้าสู่ระบบหรือเป็นผู้ใช้ Earth Engine ที่ลงทะเบียน โปรดทราบว่าขีดจํากัดการใช้งาน Earth Engine มาตรฐานจะมีผลกับบัญชีบริการแต่ละบัญชี

แนวทางการพัฒนาอีกวิธีหนึ่งคือการใช้ การตรวจสอบสิทธิ์ฝั่งไคลเอ็นต์แทนบัญชีบริการ แนวทางนี้กำหนดให้ผู้เข้าชมแอปพลิเคชันต้องลงทะเบียนสำหรับ Earth Engine และเข้าสู่ระบบ ข้อดีของแนวทางนี้คือคําขอไปยัง Earth Engine จะใช้ข้อมูลเข้าสู่ระบบของผู้ใช้ปลายทาง คุณจึงมีแนวโน้มที่จะใช้ทรัพยากรไม่ถึงขีดจํากัด ปัญหาคือผู้ใช้ต้องลงชื่อสมัครใช้ Earth Engine และเข้าสู่ระบบก่อนจึงจะใช้แอปพลิเคชันได้

ไดเรกทอรีเดโม App Engine ของ Earth Engine ใน GitHub มีชุดตัวอย่าง App Engine ที่มีประโยชน์ ดูคำอธิบายสั้นๆ ของแต่ละตัวอย่างได้ที่หน้าตัวอย่างแอป เอกสารนี้จะแสดงวิธีการตั้งค่าและติดตั้งใช้งานตัวอย่างหรือแอปที่กําหนดเองที่คุณสร้าง

การนำแอป App Engine ไปใช้งานกับ Earth Engine

วิธีการต่อไปนี้อธิบายวิธีทำให้แอปเดโมใช้งานได้ วิธีการสำหรับ Python มีไว้สำหรับ Mac OS และ Linux หากคุณใช้ Python ใน Windows ให้ลองทำดังนี้

เปิดใช้ Earth Engine API ในโปรเจ็กต์ Google Cloud

สร้างหรือเลือกโปรเจ็กต์ Google Cloud และเปิดใช้ Earth Engine API ตามวิธีการเหล่านี้

ตั้งค่าข้อมูลเข้าสู่ระบบ

บัญชีบริการ

ระบบอาจใช้บัญชีบริการเพื่ออนุญาตให้ส่งคําขอไปยัง Earth Engine ในนามของผู้ที่ใช้แอปของคุณ ไฟล์ config.py จะมีรหัสการตรวจสอบสิทธิ์โดยใช้อีเมลของบัญชีบริการและไฟล์คีย์ส่วนตัว หากต้องการตั้งค่าการตรวจสอบสิทธิ์ด้วยบัญชีบริการ ให้ทำตามวิธีการเหล่านี้เพื่อสร้างบัญชีบริการและไฟล์คีย์ส่วนตัว ตั้งชื่อไฟล์คีย์เป็น .private-key.json แล้วย้ายไฟล์นั้นไปไว้ในไดเรกทอรีโปรเจ็กต์

Python

โปรดตั้งค่า Earth Engine Python API ก่อนหากยังไม่ได้ทำ ทดสอบบัญชีบริการตามวิธีการเหล่านี้

หากการทดสอบสำเร็จ ให้อัปเดต config.py (หรือไฟล์ที่เทียบเท่าในซอร์สโค้ด) ด้วยอีเมลของบัญชีบริการ (เส้นทางไปยังไฟล์คีย์ไม่ควรเปลี่ยนแปลงเนื่องจากอยู่ในไดเรกทอรีโปรเจ็กต์)

Node.js

ติดตั้งการอ้างอิงของโปรเจ็กต์โดยเรียกใช้ npm install ระบบจะคัดลอก Earth Engine Node.js API และไลบรารีอื่นๆ ทั้งหมดไปยังโฟลเดอร์ ./node_modules ในไดเรกทอรีโปรเจ็กต์ หากติดตั้งไม่สำเร็จ ให้ตรวจสอบว่าได้ติดตั้ง Node.js เวอร์ชันล่าสุดแล้ว

const ee = require('@google/earthengine');
ee.data.authenticateViaPrivateKey('.private-key.json');
ee.initialize();

รหัสไคลเอ็นต์ OAuth 2.0

หากต้องการให้ผู้ใช้ตรวจสอบสิทธิ์ด้วยตนเอง (แทนที่จะใช้บัญชีบริการ) คุณจะต้องตั้งค่ารหัสไคลเอ็นต์ OAuth จากโปรเจ็กต์ที่อยู่ในระบบคลาวด์ โดยสิ่งที่คุณต้องทำมีดังนี้

  1. ตั้งค่ารหัสไคลเอ็นต์ตามวิธีการเหล่านี้
  2. อัปเดต static/script.js (หรือไฟล์ที่เทียบเท่าในซอร์สโค้ด) เพื่อใช้รหัสไคลเอ็นต์
  3. ตรวจสอบว่า ee_api_js.js พร้อมใช้งานในไดเรกทอรี /static/ (หรือเทียบเท่า) คุณสามารถดาวน์โหลดแพ็กเกจนี้จาก GitHub ได้โดยตรง หรือติดตั้งจาก npm หรือหากโคลนที่เก็บ EE API ทั้งหมดแล้ว ให้คัดลอกจาก earthengine-api/javascript/build ในระบบไฟล์ในเครื่อง

ตั้งค่าสภาพแวดล้อมการพัฒนาซอฟต์แวร์ในเครื่อง

Python

ทำตามวิธีการในไดเรกทอรีตัวอย่างแต่ละรายการบน GitHub เพื่อดาวน์โหลดและสร้างโปรเจ็กต์ หากมีไฟล์ build.sh ให้เรียกใช้จากโฟลเดอร์รูทของแอปพลิเคชันด้วยคำสั่งต่อไปนี้

./build.sh

สคริปต์การตั้งค่าจะดาวน์โหลดรายการที่ต้องพึ่งพาและติดตั้งเครื่องมือบรรทัดคำสั่งของ Google หากยังไม่มีในระบบ ระบบจะคัดลอก Earth Engine Python API และไลบรารีที่เกี่ยวข้องไปยังโฟลเดอร์ ./lib ในไดเรกทอรีโปรเจ็กต์

ตรวจสอบว่าเครื่องมือบรรทัดคำสั่งของ App Engine พร้อมใช้งานโดยเรียกใช้คำสั่งต่อไปนี้

dev_appserver.py

หากไม่พบคําสั่ง ให้ลองดาวน์โหลดและติดตั้ง Google App Engine SDK สําหรับ Python ด้วยตนเอง หากคำสั่งพร้อมใช้งาน การดำเนินการควรล้มเหลวพร้อมแสดงข้อความ "ข้อผิดพลาด: อาร์กิวเมนต์มีจำนวนน้อยเกินไป"

Node.js

ไม่ต้องตั้งค่า

เรียกใช้ในพื้นที่

เมื่อลงทะเบียนบัญชีบริการเพื่อเข้าถึง Earth Engine แล้ว คุณจะใช้บัญชีดังกล่าวเพื่อตรวจสอบสิทธิ์ (ดู config.py) ได้เมื่อทดสอบตัวอย่าง ลองทดสอบตัวอย่างในเครื่องก่อนโดยไปที่ไดเรกทอรีโปรเจ็กต์แล้วเรียกใช้คำสั่งต่อไปนี้

Python
dev_appserver.py .
Node.js
npm install
npm start

ป้อน http://localhost:8080 ในเบราว์เซอร์เพื่อดูแอปที่ทำงานบนเซิร์ฟเวอร์ในเครื่อง ระบบจะบันทึกการเปลี่ยนแปลงที่คุณทำ (และบันทึก) โดยอัตโนมัติเมื่อคุณรีเฟรชหน้า