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

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

รูท

ชิ้นงานเป็นของโปรเจ็กต์ที่อยู่ในระบบคลาวด์ ชื่อโปรเจ็กต์จะกำหนดรูทของไดเรกทอรี Asset เช่น รูทของ 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 และ TFRecord นอกจากนี้ยังสามารถลงทะเบียน Cloud Optimized GeoTIFF (COG) ใน Cloud Storage แทนการนำเข้าได้ด้วย รูปแบบตารางที่รองรับ ได้แก่ 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)

โฟลเดอร์หรือ ImageCollection

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

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

โฟลเดอร์หรือ ImageCollection

ใช้คำสั่ง earthengine create เพื่อสร้างโฟลเดอร์ว่างหรือ ImageCollections

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

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

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

earthengine 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 หรือตัวแก้ไขโค้ดเพื่อตรวจสอบโควต้าเนื้อหา