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

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

รูท

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

ไดเรกทอรี

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

  • folder_dataprojects/my-project/assets/
    • โฟลเดอร์ชื่อโฟลเดอร์/
      • photo ชื่อรูปภาพ
      • view_comfy table-name
      • satellite featureview-name
      • bubble_chart ชื่อเครื่องมือคัดแยก
      • photo_library imagecollection-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 รวมถึงนำเข้ารูปภาพและตาราง จากไฟล์ในเครื่องหรือไฟล์ใน Bucket ของ 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)

โฟลเดอร์หรือ 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 เพื่อสร้างโฟลเดอร์ว่างหรือ ImageCollection

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

ภาพจากภายนอก

คุณสามารถลงทะเบียนไฟล์ Cloud-optimized GeoTIFF (COG) ซึ่งอัปโหลดไปยัง Bucket ของ 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 จากกล่องโต้ตอบได้โดยเลือก ชื่อแอปจากรายการแบบเลื่อนลง (ชิ้นงานที่โปรเจ็กต์ Code Editor ที่ใช้งานอยู่เป็นเจ้าของ)

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

ใช้คำสั่ง 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')

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

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

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

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