จัดการเนื้อหา

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

ประเภทเนื้อหา

Earth Engine มีรูปแบบชิ้นงานต่างๆ สําหรับข้อมูลประเภทต่างๆ รวมถึงองค์ประกอบคอนเทนเนอร์สําหรับการจัดระเบียบ

ประเภทเนื้อหา
Image แรสเตอร์ ซึ่งเป็นการนำเสนอข้อมูลทางภูมิศาสตร์ตามตารางกริด โดยแต่ละเซลล์ในตารางกริดจะมีค่าที่สอดคล้องกับตำแหน่งที่เฉพาะเจาะจงบนพื้นผิวโลก
ImageCollection คอลเล็กชันรูปภาพแรสเตอร์ที่เกี่ยวข้องซึ่งประกอบกันเป็นภาพโมเสคหรืออนุกรมเวลา การทำงานคล้ายกับโฟลเดอร์ แต่สามารถนําเข้าไปยัง Earth Engine ในฐานะออบเจ็กต์ ee.ImageCollection ซึ่งมีชุดวิธีการกรองและวิเคราะห์
Table โครงสร้างข้อมูลตารางที่ประกอบด้วยองค์ประกอบเวกเตอร์ (แถว) แต่ละรายการซึ่งมีชุดพร็อพเพอร์ตี้ (คอลัมน์) ซึ่งแสดงโดยออบเจ็กต์ ee.FeatureCollection ซึ่งมีชุดเมธอดสําหรับการกรองและการวิเคราะห์
Classifier โมเดลแมชชีนเลิร์นนิงของ Earth Engine ที่ผ่านการฝึก ซึ่งแสดงโดยออบเจ็กต์ ee.Classifier ที่มีชุดวิธีการสําหรับแอปพลิเคชันและการวิเคราะห์
FeatureView มุมมองภาพแผนภูมิของตารางสําหรับใช้ในแอป Earth Engine
Folder คอนเทนเนอร์สำหรับชิ้นงานและโฟลเดอร์เพิ่มเติมเพื่อช่วยในการจัดระเบียบ

การจัดระเบียบชิ้นงาน

เนื้อหาของ Earth Engine ได้รับการจัดระเบียบเป็นระบบโฟลเดอร์และคอลเล็กชันตามลําดับชั้น โครงสร้างจะคล้ายกับระบบไฟล์ทั่วไป

รูท

ชิ้นงานเป็นของโปรเจ็กต์ที่อยู่ในระบบคลาวด์ ชื่อโปรเจ็กต์จะกำหนดรูทของไดเรกทอรีชิ้นงาน เช่น รากของ my-project คือ projects/my-project/assets ชิ้นงานทั้งหมดที่เป็นของ my-project จะอยู่ในโฟลเดอร์ projects/my-project/assets หรือโฟลเดอร์ย่อย (หรือ ImageCollection) ภายในโฟลเดอร์ดังกล่าว

ไดเรกทอรี

Earth Engine ใช้โครงสร้างไดเรกทอรีแบบต้นไม้ในการจัดระเบียบชิ้นงาน โปรเจ็กต์ที่อยู่ในระบบคลาวด์แต่ละโปรเจ็กต์จะมีไดเรกทอรีรูทที่อาจมีชิ้นงานและโฟลเดอร์แต่ละรายการ ImageCollection เป็นประเภทชิ้นงานพิเศษที่ออกแบบมาเพื่อเก็บชุดรูปภาพที่เกี่ยวข้องโดยเฉพาะ เช่น ชุดข้อมูลตามลำดับเวลาหรือภาพโมเสค ซึ่งแตกต่างจากโฟลเดอร์ตรงที่ ImageCollection จะมีได้เฉพาะชิ้นงานรูปภาพเท่านั้น และไม่สามารถฝังโฟลเดอร์หรือคอลเล็กชันอื่นๆ ไว้ภายใน

  • folder_dataprojects/my-project/assets/
    • folder folder-name/
      • photo image-name
      • view_comfy table-name
      • satellite featureview-name
      • bubble_chart classifier-name
      • photo_library imagecollection-name/
        • photo image-name-1
        • photo image-name-2

รหัสชิ้นงาน

Earth Engine ใช้รหัสเนื้อหาเพื่ออ้างอิงข้อมูลทั้งในสคริปต์และการดำเนินการในบรรทัดคำสั่ง โดยกำหนดตำแหน่งเนื้อหาโดยใช้เครื่องหมายทับ (/) เป็นตัวคั่นระหว่างไดเรกทอรี เช่น projects/my-project/assets/my-asset จะระบุชิ้นงานชื่อ "my-asset" ซึ่งอยู่ในรูท "my-project" ต่อไปนี้คือตัวอย่างการใช้รหัสนี้เพื่อรับข้อมูลเกี่ยวกับเนื้อหา

Python

print(ee.data.getAsset('projects/my-project/assets/my-asset'))

ตัวแก้ไขโค้ด

print(ee.Image('projects/my-project/assets/my-asset'))

บรรทัดคำสั่ง

earthengine asset info projects/my-project/assets/my-asset

สร้างชิ้นงาน

คุณสามารถสร้างโฟลเดอร์และ ImageCollection รวมถึงนำเข้ารูปภาพและตารางจากไฟล์ในเครื่องหรือไฟล์ในที่เก็บข้อมูล Google Cloud Storage รูปแบบรูปภาพที่รองรับ ได้แก่ GeoTIFF (มาตรฐานและ COG) และ TFRecord รูปแบบตารางที่รองรับ ได้แก่ Shapefile และ CSV (คุณยังสร้างชิ้นงานได้โดยส่งออกผลลัพธ์การวิเคราะห์ของ Earth Engine โดยใช้ฟังก์ชันการประมวลผลแบบเป็นกลุ่ม Export.*.toAsset)

ไคลเอ็นต์ Python

รูปภาพ

ใช้ฟังก์ชัน ee.data.startIngestion เพื่อนำเข้ารูปภาพจาก Cloud Storage ดูข้อมูลเพิ่มเติมเกี่ยวกับการกำหนดค่าการอัปโหลดได้ในหน้าไฟล์ Manifest ของรูปภาพ

manifest = {
  'name': 'projects/my-project/assets/asset-name',
  'tilesets': [
    {
      'sources': [
        {
          'uris': [
            'gs://my-bucket/filename.tif'
          ]
        }
      ]
    }
  ]
}
ee.data.startIngestion(None, manifest)

ตาราง

ใช้ฟังก์ชัน ee.data.startTableIngestion เพื่อนำเข้าตารางจาก Cloud Storage ดูข้อมูลเพิ่มเติมเกี่ยวกับการกำหนดค่าการอัปโหลดได้ในหน้าไฟล์ Manifest ของรูปภาพ

manifest = {
  'name': 'projects/my-project/assets/asset-name',
  'sources': [
    {
      'uris': [
        'gs://my-bucket/filename.csv'
      ]
    }
  ]
}
ee.data.startTableIngestion(None, manifest)

โฟลเดอร์หรือคอลเล็กชันรูปภาพ

ใช้ฟังก์ชัน ee.data.createAsset เพื่อสร้างโฟลเดอร์หรือ ImageCollections ว่าง

ee.data.createAsset(
    {'type': 'FOLDER'}, # or 'IMAGE_COLLECTION'
    'projects/my-project/assets/asset-name'
)

ตัวแก้ไขโค้ด

ในเครื่องมือจัดการชิ้นงาน ให้คลิกปุ่มใหม่ แล้วเลือกประเภทชิ้นงานที่ต้องการอัปโหลดหรือสร้างจากเมนูแบบเลื่อนลง กำหนดค่าการอัปโหลดหรือการสร้างชิ้นงานในกล่องโต้ตอบ

บรรทัดคำสั่ง

รูปภาพหรือตาราง

earthengine upload image --asset_id=projects/my-project/assets/asset-name gs://my-bucket/filename.tif
earthengine upload table --asset_id=projects/my-project/assets/asset-name gs://my-bucket/filename.csv

โฟลเดอร์หรือคอลเล็กชันรูปภาพ

ใช้คำสั่ง earthengine create เพื่อสร้างโฟลเดอร์หรือคอลเล็กชันรูปภาพที่ว่างเปล่า

earthengine create folder projects/my-project/assets/folder-name
earthengine create collection projects/my-project/assets/collection-name

รูปภาพภายนอก

ไฟล์ GeoTIFF (COG) ที่เพิ่มประสิทธิภาพสำหรับระบบคลาวด์ซึ่งคุณอัปโหลดไปยังที่เก็บข้อมูล Google Cloud Storage สามารถลงทะเบียนเป็นชิ้นงานรูปภาพภายนอกและใช้ใน Earth Engine ได้โดยตรง ดูข้อมูลเพิ่มเติมเกี่ยวกับเนื้อหาที่รองรับ COG และการสร้างไฟล์ Manifest ได้ในเอกสารอ้างอิง

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

แสดงรายการเนื้อหา

ไคลเอ็นต์ Python

ใช้ฟังก์ชัน ee.data.listAssets เพื่อแสดงรายการเนื้อหาในโฟลเดอร์หรือคอลเล็กชัน (ไม่ใช่แบบเรียกซ้ำ) ดูข้อมูลเพิ่มเติมเกี่ยวกับการกรองและการแบ่งหน้าได้ในเอกสารอ้างอิง

ee.data.listAssets('projects/my-project/assets')

โปรดดูee.data.listImages และ ee.data.listFeatures ด้วย

ตัวแก้ไขโค้ด

ขยายโฟลเดอร์ในเครื่องมือจัดการชิ้นงานเพื่อดูชิ้นงาน

บรรทัดคำสั่ง

ใช้คำสั่ง earthengine ls เพื่อแสดงรายการชิ้นงานในโฟลเดอร์หรือคอลเล็กชัน (ไม่ใช่แบบเรียกซ้ำ) ดูข้อมูลเพิ่มเติมเกี่ยวกับการจํากัดจํานวนชิ้นงานที่แสดงและรายละเอียดจํานวนเงินที่จะแสดงผลได้ในเอกสารอ้างอิง

earthengine ls projects/my-project/assets

ตั้งค่าสิทธิ์สำหรับเนื้อหา

ไคลเอ็นต์ Python

ใช้ฟังก์ชัน ee.data.setAssetAcl เพื่อตั้งค่าสิทธิ์ในเนื้อหา

asset_id = 'projects/my-project/assets/asset-name'
acl_update = {
    'owners': [
        'user:big_cheese@example.com',
        'user:el_jefe@example.com'
    ],
    'writers': [
        'user:romeo@example.com',
        'user:juliet@example.com'
    ],
    'readers': [
        'group:some-group@googlegroups.com',
        'domain:example.com',
        'serviceAccount:some-project-id@appspot.gserviceaccount.com'
    ],
    'all_users_can_read': False
}
ee.data.setAssetAcl(asset_id, acl_update)

ตัวแก้ไขโค้ด

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

บรรทัดคำสั่ง

ใช้คําสั่ง earthengine acl set เพื่อตั้งค่าสิทธิ์การอ่านของเนื้อหาเป็น public หรือ private

earthengine acl set public projects/my-project/assets/asset-name

ใช้คำสั่ง earthengine acl ch เพื่อตั้งค่าสิทธิ์การอ่านและเขียนเนื้อหาแต่ละรายการ

earthengine acl ch -u person@gmail.com:R projects/my-project/assets/asset-name

ดูรายละเอียดเพิ่มเติมได้ที่หน้าข้อมูลอ้างอิงเกี่ยวกับบรรทัดคำสั่ง

ตรวจสอบสิทธิ์สำหรับเนื้อหา

ไคลเอ็นต์ Python

ใช้ฟังก์ชัน ee.data.getAssetAcl เพื่อดึงข้อมูลรายการการควบคุมการเข้าถึงสำหรับเนื้อหา

ee.data.getAssetAcl('projects/my-project/assets/asset-name')

ตัวแก้ไขโค้ด

วางเคอร์เซอร์เหนือชิ้นงานในเครื่องมือจัดการชิ้นงานค้างไว้ แล้วคลิกไอคอนแชร์ กล่องโต้ตอบจะแสดงรายการอีเมลและโดเมนพร้อมระดับการเข้าถึงที่เกี่ยวข้อง

บรรทัดคำสั่ง

ใช้คำสั่ง earthengine acl get เพื่อดึงข้อมูลรายการการควบคุมการเข้าถึงสำหรับเนื้อหา

earthengine acl get projects/my-project/assets/asset-name

คัดลอกเนื้อหา

ไคลเอ็นต์ Python

ใช้ฟังก์ชัน ee.data.copyAsset เพื่อคัดลอกชิ้นงาน

ee.data.copyAsset('projects/my-project/assets/asset-name', 'projects/my-project/assets/asset-copy-name')

ตัวแก้ไขโค้ด

ใช้ไคลเอ็นต์ Python หรือเครื่องมือบรรทัดคำสั่งเพื่อคัดลอกเนื้อหา

บรรทัดคำสั่ง

ใช้คำสั่ง earthengine cp เพื่อคัดลอกชิ้นงาน

earthengine cp projects/my-project/assets/asset-name projects/my-project/assets/asset-copy-name

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

ไคลเอ็นต์ Python

ใช้ฟังก์ชัน ee.data.renameAsset เพื่อย้ายหรือเปลี่ยนชื่อชิ้นงาน

ee.data.renameAsset('projects/my-project/assets/asset-name', 'projects/my-project/assets/new-asset-name')

ตัวแก้ไขโค้ด

ย้าย

ลากชิ้นงานลงในโฟลเดอร์ใหม่ในเครื่องมือจัดการชิ้นงาน

เปลี่ยนชื่อ

ในเครื่องมือจัดการชิ้นงาน ให้วางเคอร์เซอร์เหนือชิ้นงานค้างไว้ แล้วคลิกไอคอนแก้ไข แล้วพิมพ์ชื่อใหม่ในช่องป้อนข้อมูลแบบแก้ไขได้

บรรทัดคำสั่ง

ใช้คำสั่ง earthengine mv เพื่อย้ายหรือเปลี่ยนชื่อเนื้อหา

earthengine mv projects/my-project/assets/asset-name projects/my-project/assets/new-asset-name

ลบเนื้อหา

ไคลเอ็นต์ Python

ใช้ฟังก์ชัน ee.data.deleteAsset เพื่อลบเนื้อหา

ee.data.deleteAsset('projects/my-project/assets/asset-name')

ตัวแก้ไขโค้ด

คลิกเนื้อหาเพื่อเปิดหน้ากล่องโต้ตอบของเนื้อหา แล้วคลิกปุ่มลบ

บรรทัดคำสั่ง

ใช้คำสั่ง earthengine rm เพื่อลบเนื้อหา ดูข้อมูลอ้างอิงฟังก์ชันสําหรับตัวเลือกแบบเรียกซ้ำและแบบซ้อม

earthengine rm projects/my-project/assets/asset-name

ดูข้อมูลเมตาของเนื้อหา

ไคลเอ็นต์ Python

ใช้ฟังก์ชัน ee.data.getAsset เพื่อรับข้อมูลเมตาของเนื้อหา

ee.data.getAsset('projects/my-project/assets/asset-name')

ตัวแก้ไขโค้ด

คลิกเนื้อหาเพื่อเปิดหน้ากล่องโต้ตอบของเนื้อหา ดูข้อมูลเนื้อหา

บรรทัดคำสั่ง

ใช้คำสั่ง earthengine asset info เพื่อรับข้อมูลเมตาของเนื้อหา

earthengine asset info projects/my-project/assets/asset-name

ตั้งค่าข้อมูลเมตาของเนื้อหา

คุณสามารถตั้งค่าข้อมูลเมตาของเนื้อหาต่อไปนี้ได้

  • start_time
  • end_time
  • properties

ไคลเอ็นต์ Python

ใช้ฟังก์ชัน ee.data.updateAsset เพื่ออัปเดตข้อมูลเมตาของเนื้อหา

asset_id = 'projects/my-project/assets/asset-name'
new_metadata = {
  'properties': {
    'name': 'value'
  },
  'start_time': '2024-10-02T15:01:24Z',
  'end_time': '2024-10-02T15:01:25Z',
}
update_these = ['start_time', 'end_time', 'properties']

ee.data.updateAsset(asset_id, new_metadata, update_these)

ตัวแก้ไขโค้ด

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

บรรทัดคำสั่ง

ใช้คำสั่ง earthengine asset set เพื่ออัปเดตข้อมูลเมตาของเนื้อหา ดูข้อมูลเพิ่มเติมได้ในเอกสารอ้างอิง

earthengine asset set \
  --time_start 2024-10-02T15:01:24 \
  --time_end 2024-10-02T15:01:25 \
  --property 'name=value' \
  projects/my-project/assets/asset-name

ตรวจสอบโควต้าชิ้นงาน

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

ไคลเอ็นต์ Python

ใช้ฟังก์ชัน ee.data.getAssetRootQuota เพื่อดูการใช้โควต้าพื้นที่เก็บข้อมูลสำหรับรูทของเนื้อหา

ee.data.getAssetRootQuota('projects/my-project/assets')

ตัวแก้ไขโค้ด

ในเครื่องมือจัดการชิ้นงาน ให้วางเคอร์เซอร์เหนือรูทโปรเจ็กต์ค้างไว้ แล้วคลิกไอคอน data_usage กล่องโต้ตอบข้อมูลจะปรากฏขึ้น

บรรทัดคำสั่ง

ใช้ไคลเอ็นต์ Python หรือเครื่องมือแก้ไขโค้ดเพื่อตรวจสอบโควต้าชิ้นงาน