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