ชิ้นงาน 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.tifearthengine 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-nameearthengine 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_timeend_timeproperties
ไคลเอ็นต์ 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 หรือตัวแก้ไขโค้ดเพื่อตรวจสอบโควต้าเนื้อหา