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

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

    earthengine

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

    earthengine command -h

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

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

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

    earthengine --service_account_file=service_account_creds.json

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

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

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

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

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

import ee
ee.Authenticate()

การเรียกใช้คำสั่ง

หากต้องการเรียกใช้โปรแกรมอรรถประโยชน์บรรทัดคำสั่ง เช่น Earth Engine CLI คุณต้องเพิ่มเครื่องหมายอัศเจรีย์ไว้หน้าการเรียกใช้คำสั่ง

!earthengine -h

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

ใช้ตัวเลือก --project เพื่อตั้งค่าโปรเจ็กต์ที่อยู่ในระบบคลาวด์สำหรับคำสั่ง earthengine แต่ละรายการ

!earthengine --project my-project <command>

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

!earthengine set_project my-project

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

authenticate

ตรวจสอบสิทธิ์เครื่องมือบรรทัดคำสั่งและไลบรารีของไคลเอ็นต์ 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 จะ ไม่ เพิกถอนสิทธิ์เพิ่มเติมที่คุณอาจให้แก่ผู้ใช้แต่ละราย)

asset

พิมพ์หรืออัปเดตข้อมูลเมตาที่เชื่อมโยงกับชิ้นงาน 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 จะตั้งค่าพร็อพเพอร์ตี้ข้อมูลเมตาแต่ละรายการในชิ้นงาน

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

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

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

หากต้องการสร้างพร็อพเพอร์ตี้พิเศษสำหรับการแสดงภาพแถบการจัดประเภท คุณสามารถจัดเก็บรายการค่าและสีเป็นสตริงที่คั่นด้วยคอมมา ตัวอย่างเช่น หากต้องการตั้งค่าจานสีและค่าคลาสสำหรับแถบชื่อ landcover ให้ทำดังนี้

    earthengine asset set -p 'landcover_class_palette=ff0000,00ff00,0000ff' projects/my-project/assets/asset_id
    earthengine asset set -p 'landcover_class_values=1,2,3' 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 คุณสามารถตั้งค่าพร็อพเพอร์ตี้เวลาเริ่มต้นและเวลาสิ้นสุดพิเศษโดยใช้แฟล็ก --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

create

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

    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 โดยไม่มีอาร์กิวเมนต์จะแสดงรายการโฟลเดอร์ระดับบนสุดที่คุณเป็นเจ้าของ

model

เครื่องมือสำหรับจัดการโมเดลที่บันทึกไว้ของ 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

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

    earthengine alpha project_config get

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

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

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

set

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

  • max_concurrent_exports เพื่อควบคุมการทำงานแบบขนานของงานแบบกลุ่มสูงสุดของโปรเจ็กต์
    • ต้องมีสิทธิ์ที่ถูกต้อง permissions

ตัวอย่างเช่น หากต้องการกำหนดค่าโปรเจ็กต์ให้ทำงานแบบขนานได้เพียง 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

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

set_project

ตั้งค่าโปรเจ็กต์ที่อยู่ในระบบคลาวด์ของ Google ที่จะใช้กำหนดเส้นทางคำขอการคำนวณ

    earthengine set_project foo-project

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

task

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

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

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

upload

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

image

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

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

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

คุณสามารถระบุนโยบายการลดขนาดแบบปิรามิดโดยใช้แฟล็ก --pyramiding_policy ซึ่งตั้งค่าเป็น 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

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

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

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

table

หากต้องการอัปโหลด 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 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 ของรูปภาพ