ชิ้นงาน 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.tifearthengine 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-nameearthengine 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_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')
ตัวแก้ไขโค้ด
ใน Asset Manager ให้วางเมาส์เหนือรูทของโปรเจ็กต์ แล้วคลิกไอคอน data_usage กล่องโต้ตอบข้อมูล จะปรากฏขึ้น
บรรทัดคำสั่ง
ใช้ไคลเอ็นต์ Python หรือโปรแกรมแก้ไขโค้ดเพื่อตรวจสอบโควต้าของเนื้อหา