เครื่องมือบรรทัดคำสั่ง

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

    earthengine

หากติดตั้งเครื่องมืออย่างถูกต้อง ระบบจะพิมพ์สรุปสั้นๆ ของคำสั่งที่ใช้ได้ หากต้องการความช่วยเหลือเกี่ยวกับคําสั่งที่เฉพาะเจาะจง ให้ใช้คำสั่งต่อไปนี้

    earthengine command -h

เมื่อติดตั้ง Python API เป็นครั้งแรก คุณต้องลงชื่อเข้าใช้โดยใช้คำสั่ง authenticate ที่อธิบายไว้ด้านล่าง ส่วนต่อไปนี้จะอธิบายคําสั่งที่ใช้ได้อย่างละเอียด

ข้อมูลเข้าสู่ระบบบัญชีบริการ

หากต้องการใช้ CLI กับข้อมูลเข้าสู่ระบบของบัญชีบริการ ให้ใช้ Flag service_account_file เพื่อชี้ไปยังไฟล์ JSON ที่มีคีย์ของบัญชีบริการ

    earthengine --service_account_file=service_account_creds.json

การใช้งานใน Colab

เครื่องมือบรรทัดคำสั่ง Earth Engine ติดตั้งไว้ล่วงหน้าและพร้อมใช้งานใน Google Colab

การตรวจสอบสิทธิ์

ตรวจสอบสิทธิ์สำหรับเซสชัน Colab ใหม่แต่ละเซสชัน หรือหากเครื่องเสมือนหมดอายุจากการไม่ได้ใช้งาน (ระบบจะไม่บันทึกข้อมูลเข้าสู่ระบบไว้สำหรับเซสชันต่างๆ)

นําเข้าไลบรารีของไคลเอ็นต์ Python และเรียกใช้ ee.Authenticate() เพื่อเรียกใช้ขั้นตอนการตรวจสอบสิทธิ์ ทำตามข้อความแจ้งเพื่อตรวจสอบสิทธิ์ให้เสร็จสมบูรณ์ ค่าเริ่มต้นของ auth_mode ใน Colab คือ colab ดูตัวเลือกอื่นๆ ได้ในคำแนะนำเกี่ยวกับการให้สิทธิ์

import ee
ee.Authenticate()

การดำเนินการตามคำสั่ง

หากต้องการเรียกใช้ยูทิลิตีบรรทัดคำสั่ง เช่น Earth Engine CLI คุณต้องใส่เครื่องหมายตกใจไว้หน้าการเรียกใช้คำสั่ง

!earthengine -h

ตั้งค่าโปรเจ็กต์ที่อยู่ในระบบคลาวด์

ใช้ตัวเลือก --project เพื่อตั้งค่าโปรเจ็กต์ Cloud สําหรับคําสั่ง earthengine แต่ละรายการ

!earthengine --project my-project <command>

หรือจะตั้งค่าโปรเจ็กต์เริ่มต้นที่จะใช้กับearthengine การเรียกใช้ทั้งหมดโดยใช้คำสั่ง set_project ก็ได้ ระบบจะเพิ่มโปรเจ็กต์ลงในไฟล์ข้อมูลเข้าสู่ระบบ (~/.config/earthengine/credentials) และใช้สำหรับคำสั่งต่อๆ ไป เว้นแต่ว่าตัวเลือก --project จะลบล้างไว้ ตั้งค่าโปรเจ็กต์เริ่มต้นสำหรับเซสชัน Colab ใหม่แต่ละเซสชัน หรือในกรณีที่เครื่องเสมือนหมดอายุเนื่องจากไม่มีการใช้งาน (ระบบจะไม่บันทึกข้อมูลเข้าสู่ระบบไว้สำหรับเซสชันต่างๆ)

!earthengine set_project my-project

ข้อมูลอ้างอิงเกี่ยวกับคําสั่ง

ตรวจสอบสิทธิ์

ตรวจสอบสิทธิ์เครื่องมือบรรทัดคำสั่งและไลบรารีของไคลเอ็นต์ Python กับ Earth Engine ตัวอย่าง

    earthengine authenticate

Earth Engine ใช้โปรโตคอล OAuth 2.0 เพื่อตรวจสอบสิทธิ์ไคลเอ็นต์ คําสั่ง earthengine authenticate จะแจ้งให้คุณทราบผ่านกระบวนการตรวจสอบสิทธิ์โดยใช้เว็บเบราว์เซอร์

คุณจะต้องติดตั้ง gcloud หากใช้โหมดการตรวจสอบสิทธิ์ gcloud เริ่มต้น ดูโหมดการตรวจสอบสิทธิ์อื่นๆ ที่พร้อมใช้งานผ่านพารามิเตอร์ auth_mode ในคู่มือการตรวจสอบสิทธิ์

acl

พิมพ์หรืออัปเดตรายการควบคุมการเข้าถึง (ACL) ของเนื้อหา Earth Engine สิทธิ์เข้าถึงระดับรายการ (ACL) จะควบคุมผู้ที่มีสิทธิ์อ่านหรือเขียนเนื้อหา ตัวอย่าง

    earthengine acl get projects/my-project/assets/asset_id
    earthengine acl set public projects/my-project/assets/asset_id
    earthengine acl ch -u username@gmail.com:R projects/my-project/assets/asset_id

คำสั่งย่อย get จะพิมพ์คำอธิบาย JSON ของ ACL คำสั่งย่อย set จะตั้งค่า ACL ที่ระบุไว้ในไฟล์ที่มีรูปแบบ JSON เดียวกัน คุณสามารถคัดลอก ACL จากเนื้อหาหนึ่งไปยังเนื้อหาอื่นๆ ได้โดยบันทึกเอาต์พุตจาก get แล้วส่งให้ set

นอกจากนี้ คำสั่งย่อย set ยังยอมรับชื่อ ACL พิเศษ 2 ชื่อ ได้แก่

  • private: นำสิทธิ์ออกจากทุกคนยกเว้นเจ้าของ
  • public: ให้สิทธิ์อ่านแก่ผู้ใช้ทั้งหมด

คำสั่งย่อย ch ช่วยให้คุณทำการเปลี่ยนแปลง ACL ทีละรายการได้ หากต้องการให้สิทธิ์อ่าน ให้ระบุ -u username@gmail.com:R หากต้องการให้สิทธิ์เขียน ให้ระบุ -u username@gmail.com:W และหากต้องการนำสิทธิ์ของผู้ใช้ออก ให้ระบุ -d username@gmail.com คุณสามารถใช้ตัวระบุผู้ใช้พิเศษ AllUsers เพื่อมอบหรือเพิกถอนสิทธิ์การอ่านจากผู้ใช้ทุกคน (โปรดทราบว่าการเพิกถอนAllUsersสิทธิ์ไม่ได้เพิกถอนสิทธิ์เพิ่มเติมที่คุณอาจให้ผู้ใช้แต่ละรายไว้ด้วย)

ชิ้นงาน

พิมพ์หรืออัปเดตข้อมูลเมตาที่เชื่อมโยงกับเนื้อหา Earth Engine ตัวอย่าง

    earthengine asset info projects/my-project/assets/asset_id
    earthengine asset set -p name=value projects/my-project/assets/asset_id

คำสั่งย่อย info จะพิมพ์ข้อมูลโดยละเอียดเกี่ยวกับเนื้อหา รวมถึงข้อมูลเมตาของเนื้อหาในรูปแบบ JSON คำสั่งย่อย set จะตั้งค่าพร็อพเพอร์ตี้ข้อมูลเมตาแต่ละรายการในเนื้อหา

ค่าของพร็อพเพอร์ตี้ข้อมูลเมตาที่คุณตั้งอาจเป็นตัวเลขหรือสตริงก็ได้ เมื่อตั้งค่าชื่อพร็อพเพอร์ตี้โดยใช้ Flag --property หรือ -p ให้คั่นชื่อและค่าพร็อพเพอร์ตี้ด้วยเครื่องหมายเท่ากับ ระบบจะตรวจหาประเภทข้อมูลโดยอัตโนมัติ หรือคุณจะระบุประเภทข้อมูลอย่างชัดเจนก็ได้โดยใส่ (string), (number) หรือ (date) ต่อหน้าชื่อพร็อพเพอร์ตี้ ตัวอย่างเช่น คำสั่งนี้จะตั้งค่าพร็อพเพอร์ตี้ที่มีค่าสตริงเป็น "42"

    earthengine asset set -p '(string)name=42' projects/my-project/assets/asset_id

(เครื่องหมายคำพูดในตัวอย่างนี้ป้องกันไม่ให้เชลล์ตีความวงเล็บ ซึ่งอาจไม่จำเป็นก็ได้ ทั้งนี้ขึ้นอยู่กับเชลล์และแพลตฟอร์มของคุณ)

หากต้องการลบพร็อพเพอร์ตี้ ให้ตั้งค่าเป็น null โดยไม่มีประเภท

    earthengine asset set -p name=null projects/my-project/assets/asset_id

พร็อพเพอร์ตี้วันที่เป็นเพียงตัวเลขที่แสดงจํานวนมิลลิวินาทีนับจากยุค Unix (เช่น เที่ยงคืนของวันที่ 1 มกราคม 1970) และอาจระบุเป็นตัวเลขโดยตรงหรือในรูปแบบใดรูปแบบหนึ่งต่อไปนี้

    YYYY-MM-DD
    YYYY-MM-DDThh:mm:ss
    YYYY-MM-DDThh:mm:ss.f

ระบบจะถือว่าเขตเวลาเป็น UTC คุณตั้งค่าพร็อพเพอร์ตี้เวลาเริ่มต้นและเวลาสิ้นสุดพิเศษได้โดยใช้ Flag --time_start และ --time_end ดังนี้

    earthengine asset set --time_start 1978-10-15T12:34:56 projects/my-project/assets/asset_id

cp

คัดลอกเนื้อหา ตัวอย่าง

    earthengine cp projects/my-project/assets/asset_id projects/my-project/assets/new_asset_id

สร้าง

สร้างโฟลเดอร์และคอลเล็กชันรูปภาพใหม่ ตัวอย่าง

    earthengine create folder projects/my-project/assets/folder_id
    earthengine create collection projects/my-project/assets/collection_id

ใช้คำสั่งย่อย folder เพื่อสร้างโฟลเดอร์ และ collection เพื่อสร้างคอลเล็กชันรูปภาพ คุณสามารถระบุตัวเลือก -p เพื่อสร้างโฟลเดอร์หลักแบบซ้ำตามต้องการ โฟลเดอร์และรูปภาพที่สร้างขึ้นใหม่จะมี ACL ส่วนตัวโดยค่าเริ่มต้น

ls

แสดงรายการเนื้อหาของโฟลเดอร์หรือคอลเล็กชันอย่างน้อย 1 รายการ ตัวอย่าง

    earthengine ls users/username

ตัวเลือก -l จะขอรูปแบบแบบยาวพร้อมข้อมูลเพิ่มเติมเกี่ยวกับชิ้นงานแต่ละรายการ (ปัจจุบันมีเพียงประเภทของชิ้นงาน) คุณระบุ --max_items number (หรือ -m สำหรับย่อ) เพื่อจำกัดจำนวนรายการจากแต่ละโฟลเดอร์หรือคอลเล็กชันที่แสดงได้ ดังนี้

    earthengine ls -m 10 projects/my-project/assets/my_large_collection

การรันคําสั่ง ls ที่ไม่มีอาร์กิวเมนต์จะแสดงรายการโฟลเดอร์ระดับบนสุดที่คุณเป็นเจ้าของ

รุ่น

เครื่องมือสำหรับจัดการโมเดลที่บันทึกไว้ของ TensorFlow

model prepare

เตรียมโมเดลที่บันทึกไว้เพื่อแสดงใน Earth Engine กล่าวโดยละเอียดคือ การดำเนินการนี้จะเปลี่ยนSavedModelของคุณให้อยู่ในรูปแบบที่เหมาะสำหรับการประมวลผลคำขอจาก Earth Engine (ดูข้อมูลเพิ่มเติมเกี่ยวกับ SavedModel)

    earthengine model prepare my_source_dir my_dest_dir '{"Conv2D:0":"my_input_band"}' '{"Sigmoid:0":"my_output_band"}'

ดูข้อมูลเพิ่มเติมเกี่ยวกับโมเดล AI Platform ได้ที่นี่ ดูตัวอย่างที่สมบูรณ์ได้ที่นี่

mv

ย้ายหรือเปลี่ยนชื่อชิ้นงาน ตัวอย่าง

    earthengine mv projects/my-project/assets/asset_id projects/my-project/assets/new_asset_id

project_config

ตั้งค่าการกําหนดค่าโปรเจ็กต์ ก่อนใช้คําสั่งนี้ โปรดตั้งค่าโปรเจ็กต์โดยใช้ set_project

รับ

หากต้องการดูการกําหนดค่าโปรเจ็กต์ ให้ใช้คําสั่งย่อย get ดังนี้

    earthengine alpha project_config get

หากคุณมีสิทธิ์ดูการตั้งค่างานกลุ่มของโปรเจ็กต์ เอาต์พุตจะมีข้อมูลต่อไปนี้

  • maxConcurrentExports: ตัวเลขที่ระบุจํานวนการทํางานแบบเป็นกลุ่มสูงสุดที่ทํางานพร้อมกันได้สําหรับผู้ใช้ทั้งหมดในโปรเจ็กต์หนึ่งๆ โดยค่าเริ่มต้น ระบบจะตั้งค่าเป็นจำนวนสูงสุดที่แพ็กเกจการสมัครใช้บริการของบัญชีการเรียกเก็บเงินที่เกี่ยวข้องอนุญาต

นอกจากนี้ หากคุณมีสิทธิ์ดูการกำหนดค่าแผน ผลลัพธ์จะมีข้อมูลต่อไปนี้

  • planMaxConcurrentExports ซึ่งเป็นตัวเลขที่ระบุจํานวนการทํางานแบบเป็นกลุ่มสูงสุดที่ทํางานได้พร้อมกันในผู้ใช้และโปรเจ็กต์ทั้งหมดที่ใช้บัญชีการเรียกเก็บเงิน

ตั้งค่า

หากต้องการอัปเดตการกําหนดค่าของโปรเจ็กต์ ให้ใช้คําสั่งย่อย set คุณสามารถกําหนดค่าการตั้งค่าต่อไปนี้ได้

ตัวอย่างเช่น หากต้องการกําหนดค่าโปรเจ็กต์ให้อนุญาตการทํางานแบบขนานสําหรับโปรเจ็กต์หนึ่งๆ เพียง 10 งานเท่านั้น ให้ทําดังนี้

    earthengine alpha project_config set --max_concurrent_exports=10

เอาต์พุตจะแสดงการกำหนดค่าโปรเจ็กต์ที่อัปเดตแล้ว ซึ่งเหมือนกับสิ่งที่ get แสดง

ดูข้อมูลเพิ่มเติมเกี่ยวกับการทำงานแบบขนานของงานแบบเป็นกลุ่มได้ที่หน้าโควต้าของ Earth Engine

rm

ลบชิ้นงานอย่างน้อย 1 รายการ ตัวอย่าง

    earthengine rm projects/my-project/assets/asset_id
    earthengine rm -r projects/my-project/assets/folder_id

คุณสามารถใช้ Flag -r เพื่อลบเนื้อหาของโฟลเดอร์หรือคอลเล็กชันแบบซ้ำ เพื่อความปลอดภัยเมื่อลบชิ้นงานหลายรายการ คุณสามารถใช้Flag --dry_run เพื่อยืนยันสิ่งที่จะลบโดยที่ไม่ต้องลบอะไรเลย

set_project

ตั้งค่าโปรเจ็กต์ Google Cloud ที่จะกำหนดเส้นทางคำขอการประมวลผล

    earthengine set_project foo-project

คุณต้องเรียกใช้คําสั่งนี้ก่อนเรียกใช้คําสั่งที่ต้องใช้ฟังก์ชันการทํางานของ Cloud เช่น model

งาน

พิมพ์ข้อมูลเกี่ยวกับหรือจัดการงานที่ทำงานอยู่นาน ตัวอย่าง

    earthengine task list
    earthengine task list -l
    earthengine task info TASK_ID
    earthengine task cancel TASK_ID

คำสั่งย่อย list จะแสดงข้อมูลพื้นฐานเกี่ยวกับงานที่ส่งล่าสุด ตัวเลือก -l จะขอรูปแบบยาวที่มีข้อมูลเพิ่มเติมเกี่ยวกับแต่ละงาน คำสั่งย่อย info จะพิมพ์ข้อมูลโดยละเอียดเกี่ยวกับแต่ละงาน คำสั่งย่อย cancel จะยกเลิกงานที่ทำงานอยู่อย่างน้อย 1 รายการ

อัปโหลด

อัปโหลดรูปภาพหรือตารางจาก Google Cloud Storage ไปยัง Earth Engine หรือสร้างชิ้นงานที่อิงตามรูปภาพภายนอก

รูปภาพ

วิธีอัปโหลดชิ้นงานรูปภาพโดยใช้การตั้งค่าเริ่มต้น

    earthengine upload image --asset_id=projects/my-project/assets/asset_id gs://bucket/image.tif

หากคุณระบุไฟล์รูปภาพอินพุตหลายไฟล์ ระบบจะตีความไฟล์เหล่านั้นเป็นไทล์ของชิ้นงานรูปภาพเดียว ดูข้อมูลเพิ่มเติมเกี่ยวกับตัวเลือกการอัปโหลดรูปภาพไปยัง Earth Engine ได้ในการอัปโหลดชิ้นงานรูปภาพ: ตัวเลือกขั้นสูง

คุณสามารถระบุนโยบายการลดจำนวนโฆษณาตามลำดับขั้นได้โดยใช้--pyramiding_policy Flag ซึ่งตั้งค่าเป็น mean (ค่าเริ่มต้น), sample, mode, min หรือ max ได้ ซึ่งจะควบคุมวิธีที่ Earth Engine สร้างพีระมิดของรูปภาพที่มีความละเอียดต่ำลง ดังนี้

    earthengine upload image --asset_id=projects/my-project/assets/asset_id --pyramiding_policy=sample gs://bucket/image.tif

คุณสามารถใช้ --last_band_alpha เพื่อระบุว่าควรนำมาสก์สำหรับรูปภาพมาจากช่องอัลฟ่าในย่านความถี่สุดท้าย

    earthengine upload image --asset_id=projects/my-project/assets/asset_id --last_band_alpha gs://bucket/image.tif

คุณสามารถระบุค่า "ไม่มีข้อมูล" ได้โดยใช้ Flag --nodata_value ซึ่งจะปิดบังพิกเซลในรูปภาพที่มีค่านั้น

    earthengine upload image --asset_id=users/myuser/asset --nodata_value=255 gs://bucket/image.tif

นอกจากนี้ คุณยังระบุพร็อพเพอร์ตี้ข้อมูลเมตาที่จะตั้งค่าในเนื้อหาได้โดยใช้ Flag เดียวกันกับที่คำสั่ง asset set ที่อธิบายไว้ด้านบน ยอมรับ นอกจากนี้ ยังมีคำอธิบายตัวเลือกเหล่านี้ในคู่มือไฟล์ Manifest ของรูปภาพด้วย

โต๊ะ

หากต้องการอัปโหลด Shapefile, CSV หรือ TFRecord จาก Google Cloud Storage ไปยังเนื้อหาตาราง Earth Engine คุณสามารถใช้วิธีใดก็ได้ต่อไปนี้

    earthengine upload table --asset_id=projects/my-project/assets/myUploadedShapefile gs://bucket/foo.shp
    earthengine upload table --asset_id=projects/my-project/assets/myUploadedCSV gs://bucket/foo.csv
    earthengine upload table --asset_id=projects/my-project/assets/myUploadedTFRecord gs://bucket/foo.tfrecord
ก็ได้

มีตัวเลือกมากมายที่เกี่ยวข้องกับวิธีตีความไฟล์ CSV และ TFRecord คุณดูรายการตัวเลือกการอัปโหลดตารางทั้งหมดได้โดยไปที่คู่มือไฟล์ Manifest ของตาราง หรือใช้ตัวเลือกต่อไปนี้

    earthengine upload table -h

external_image

หากต้องการสร้างชิ้นงานที่อิงตามรูปภาพภายนอก ให้เรียกใช้คําสั่ง upload_image ด้วยไฟล์ Manifest ดังนี้

earthengine alpha upload external_image --manifest /tmp/foo.json

ตัวอย่างไฟล์ Manifest

{
  "name": "projects/{project}/assets/cogdemo1",
  "tilesets": [
    { "id": "0", "sources": [{ "uris": ["gs://ee-docs-demos/COG_demo.tif"] }] }
  ],
  "properties": {
    "source": "https://code.earthengine.google.com/d541cf8b268b2f9d8f834c255698201d"
  },
  "startTime": "2016-01-01T00:00:00.000000000Z",
  "endTime": "2016-12-31T15:01:23.000000000Z"
}

ดูรายละเอียดเพิ่มเติมเกี่ยวกับการสร้างไฟล์ Manifest ได้จากคู่มือ Cloud GeoTIFF และไฟล์ Manifest ของรูปภาพ