Cloud Optimized GeoTIFF (COG) ใน Earth Engine

Google Earth Engine ช่วยให้คุณทำงานกับข้อมูลแรสเตอร์ที่จัดเก็บไว้ใน Bucket ของ Google Cloud Storage (GCS) ของคุณเองได้ การใช้ Cloud Optimized GeoTIFFs (COGs) ช่วยให้คุณเข้าถึง และวิเคราะห์ข้อมูลใน Earth Engine ได้โดยตรงโดยไม่ต้องนำเข้า พิกเซลลงในที่เก็บชิ้นงานของ Earth Engine

แนวทางที่เน้นระบบคลาวด์เป็นหลักนี้มีประโยชน์หลายประการ โดยเฉพาะอย่างยิ่งสำหรับการจัดการชุดข้อมูลขนาดใหญ่หรือการผสานรวม Earth Engine เข้ากับเวิร์กโฟลว์ Google Cloud ที่กว้างขึ้น หรือเครื่องมือและแพลตฟอร์มภายนอก

เหตุผลที่ควรใช้ Cloud Storage และ COGs

  • ความยืดหยุ่นและความสามารถในการทำงานร่วมกัน: จัดเก็บข้อมูลไว้ใน Bucket ของ Cloud Storage มาตรฐาน ซึ่งเครื่องมือและบริการอื่นๆ สามารถเข้าถึงได้ ไม่ว่าคุณจะอัปโหลดข้อมูลโดยตรงหรือส่งออกจาก Earth Engine Cloud Storage จะทำหน้าที่เป็นแหล่งข้อมูลที่ถูกต้องแหล่งเดียวสำหรับทั้ง Earth Engine และเวิร์กโฟลว์ภายนอก
  • การควบคุมและการส่งออกข้อมูล: การจัดเก็บข้อมูลใน Cloud Storage มีความสามารถในการจัดการพื้นที่เก็บข้อมูลออบเจ็กต์มาตรฐาน ซึ่งช่วยให้คุณดาวน์โหลด ย้ายข้อมูล หรือแชร์ข้อมูลได้โดยใช้ฟีเจอร์ของ Cloud Storage เช่น Requester Pays หรือ Bucket สาธารณะ, และจัดการการเข้าถึงโดยใช้ Cloud IAM มาตรฐาน
  • การปรับขนาดที่ยืดหยุ่น: หลีกเลี่ยง ขีดจำกัดพื้นที่เก็บข้อมูลของ Earth Engine Cloud Storage มีการปรับขนาดพื้นที่เก็บข้อมูลแบบบริการตนเองที่แทบจะไม่มีขีดจำกัดจนถึงระดับเพตะไบต์
  • ไม่ต้องรอการนำเข้า: การลงทะเบียน COG จะเสร็จสมบูรณ์อย่างรวดเร็วเนื่องจาก Earth Engine จะอ่านเฉพาะข้อมูลเมตา (เช่น การฉายภาพและขนาด) จากส่วนหัวของไฟล์เพื่อการจัดทำดัชนีและการตรวจสอบ ข้อมูลพิกเซลจริงจะยังคงอยู่ใน Cloud Storage และจะอ่านตามความต้องการระหว่างการคำนวณ ซึ่งช่วยลดความจำเป็นในการทำงานนำเข้าแยกต่างหาก

เวิร์กโฟลว์ COG ใน Earth Engine

Earth Engine รองรับเวิร์กโฟลว์แบบ 2 ทางกับ COG ใน Cloud Storage โดยคุณสามารถอ่าน COG จาก GCS ลงใน Earth Engine ได้โดยตรง และเขียนผลการคำนวณจาก Earth Engine ลงใน GCS เป็น COG ได้โดยตรง

การอ่าน COG จาก Cloud Storage

หากต้องการนำ COG ที่โฮสต์ใน GCS ไปยัง Earth Engine คุณมี 2 ตัวเลือกดังนี้

  1. การโหลดโดยตรง (ee.Image.loadGeoTIFF): โหลดรูปภาพเดียวโดยตรงโดยใช้ URI ของ GCS ตัวเลือกนี้เหมาะที่สุดสำหรับการทดสอบแบบรวดเร็ว การวิเคราะห์เฉพาะกิจ หรือข้อมูลชั่วคราว

    JavaScript

    var image = ee.Image.loadGeoTIFF('gs://google-sample-bucket/my_image.tif');
    

    Python

    image = ee.Image.loadGeoTIFF('gs://google-sample-bucket/my_image.tif')
    

    ดูตัวอย่างที่เสร็จสมบูรณ์ได้ที่ รูปภาพจาก Cloud GeoTIFF

  2. ชิ้นงานที่ลงทะเบียน: ลงทะเบียน COG อย่างน้อย 1 รายการเป็น ชิ้นงาน Earth Engine โดยใช้ไฟล์ Manifest การอัปโหลด (ดู คู่มือการลงทะเบียน COG) นี่เป็นเส้นทางที่แนะนำสำหรับเวิร์กโฟลว์การผลิต โดยเฉพาะอย่างยิ่งเมื่อสร้างคอลเล็กชันรูปภาพ

ฟีเจอร์ การโหลดโดยตรง (loadGeoTIFF) ชิ้นงานที่ลงทะเบียน (ไฟล์ Manifest)
ตั้งค่า ไม่มี (เพียงแค่ URI ของ GCS) ไฟล์ Manifest (ไคลเอ็นต์ Python, CLI หรือ REST)
ประสิทธิภาพ มาตรฐาน (อ่านส่วนหัวเมื่ออ่าน) เพิ่มประสิทธิภาพ (จัดทำดัชนีเมื่อสร้าง)
การจัดการ ไม่มีการสร้างชิ้นงาน นับรวมในโควต้าจำนวนชิ้นงาน ไม่ใช่พื้นที่เก็บข้อมูล
Use Case การสร้างต้นแบบ การวิเคราะห์เฉพาะกิจ เวิร์กโฟลว์การผลิตที่ต้องอ่านอย่างรวดเร็ว

การเขียน COG ลงใน Cloud Storage

หากต้องการบันทึกผลการคำนวณของ Earth Engine เป็น COG ใน Bucket ของ Cloud Storage ให้ใช้ Export.image.toCloudStorage ฟังก์ชันการส่งออกแบบกลุ่ม (ดูการส่งออก รูปภาพ) และตั้งค่า พารามิเตอร์ cloudOptimized เป็น true ใน formatOptions ซึ่งจะบอกให้ Earth Engine รวบรวมรูปภาพและเขียนลงใน Bucket ของ GCS โดยตรงเป็น COG ที่เป็นไปตามข้อกำหนดอย่างสมบูรณ์

ตำแหน่ง Bucket ของ Cloud Storage ที่รองรับ

Earth Engine จะเข้าถึง Bucket ของ Cloud Storage ได้ก็ต่อเมื่อ Bucket ต้อง อยู่ในภูมิภาคศูนย์ข้อมูลหรือหลายภูมิภาคต่อไปนี้

  • หลายภูมิภาค us
  • ภูมิภาคคู่ของสหรัฐอเมริกาที่รวม us-central1
  • ภูมิภาค us-central1

หากวาง Bucket ไว้ในศูนย์ข้อมูลระดับภูมิภาคอื่นๆ Earth Engine จะปฏิเสธคำขอลงทะเบียนและอ่าน Earth Engine จะเข้าถึง COG ที่จัดเก็บไว้ใน Bucket ของ Google Cloud Storage เท่านั้น ระบบไม่รองรับผู้ให้บริการพื้นที่เก็บข้อมูลระบบคลาวด์ภายนอกและ HTTP URL ทั่วไป

ข้อกำหนดการส่งออก COG ของ Earth Engine

เมื่อส่งออกผลการวิเคราะห์จาก Earth Engine โดยใช้ Export.image.toCloudStorage ที่มี cloudOptimized: true ใน formatOptions เครื่องมือส่งออกในตัวของ Earth Engine จะใช้มาตรฐานต่อไปนี้โดยอัตโนมัติ

  • โครงสร้างไฟล์: สร้าง BigTIFF (BIGTIFF=YES) ที่มีการแบ่งเป็นส่วนภายใน (TILED=YES) และคัดลอกภาพรวมทั้งหมดไปไว้ที่จุดเริ่มต้นของไฟล์
  • ภาพรวมอัตโนมัติ: หากขนาดแรสเตอร์เอาต์พุตมีขนาดตั้งแต่ 512x512 พิกเซลขึ้นไป Earth Engine จะสร้างภาพรวมระดับ 2 ยกกำลัง 5 ระดับ ([2, 4, 8, 16, 32]) โดยอัตโนมัติ Earth Engine จะเลือกวิธีสุ่มตัวอย่างภาพรวมแบบไดนามิกตามประเภทข้อมูลพิกเซลเอาต์พุต ได้แก่ การสุ่มตัวอย่างคิวบิก สำหรับรูปภาพจุดลอยตัว และการสุ่มตัวอย่างเพื่อนบ้านที่ใกล้ที่สุด สำหรับรูปภาพจำนวนเต็มหรือรูปภาพแยกทั้งหมดอื่นๆ
  • การบีบอัดและการแบ่งเป็นส่วนเริ่มต้น: Earth Engine จะส่งออก COG ที่มีการแบ่งเป็นส่วนแบบบล็อกพิกเซลขนาด 256x256 และการบีบอัด LZW (COMPRESS=LZW) คุณไม่สามารถปรับแต่งการบีบอัดและขนาดส่วนใน formatOptions ได้
  • การแบ่งเป็นส่วนอัตโนมัติ: หากแรสเตอร์ที่ส่งออกมีขนาดใหญ่ (เกิน 4 GiB ที่ไม่ได้บีบอัด) Earth Engine จะแบ่งการส่งออกออกเป็นส่วนเชิงพื้นที่หลายส่วนโดยอัตโนมัติ ซึ่งมีชื่อว่า baseFilename-yMin-xMin (ดู การส่งออกไฟล์ขนาดใหญ่)
  • การลบล้างขีดจำกัดการแบ่งเป็นส่วน: หากต้องการส่งออกแรสเตอร์ขนาดใหญ่ (สูงสุด 16 GiB ที่ไม่ได้บีบอัดและ 131,072 พิกเซลต่อขอบ) เป็นไฟล์เดียวโดยไม่มีการแบ่งเป็นส่วน ให้ระบุ fileDimensions ภายใน formatOptions ขนาดแต่ละด้านต้องเป็นจำนวนเต็มบวกที่เป็นผลคูณของขนาดส่วน (256 โดยค่าเริ่มต้น เช่น [65536, 65536]) เนื่องจาก fileDimensions จะกำหนดขนาดไฟล์สูงสุด ไม่ใช่กรอบล้อมรอบเอาต์พุต การส่งเพดานขนาดใหญ่จะบังคับให้ส่งออกเป็นไฟล์เดียวโดยไม่จำเป็นต้องมีการคำนวณกริดที่แน่นอน นอกจากนี้ คุณยังส่ง skipEmptyFiles: true เพื่อป้องกันไม่ให้สร้างส่วนพื้นหลังที่ว่างเปล่าได้ด้วย
  • การแลกเปลี่ยนเพื่อการเพิ่มประสิทธิภาพ: เมื่อกำหนดค่าการส่งออกขนาดใหญ่ ให้ประเมินการแลกเปลี่ยนระหว่างจำนวนไฟล์และความเร็วในการส่งออก การระบุ fileDimensions หรือ shardSize ที่เล็กลงจะสร้างส่วนไฟล์มากขึ้น แต่จะเพิ่มการประมวลผลแบบขนานในเครื่องมือประมวลผลแบ็กเอนด์ให้สูงสุด ซึ่งจะส่งผลให้เวลาในการส่งออกเสร็จสมบูรณ์เร็วขึ้น ในทางกลับกัน การลบล้างขีดจำกัดเพื่อสร้างไฟล์ขนาดใหญ่ไฟล์เดียวจะช่วยลดความซับซ้อนในการจัดการไฟล์และการแชร์ข้อมูล แต่จะเพิ่มเวลาในการดำเนินการส่งออกเนื่องจากการประกอบไฟล์เดียวและคอขวด I/O การส่งออก COG แบบไฟล์เดียวขนาดใหญ่มากที่ใกล้เคียงกับขีดจำกัด 16 GiB ที่ไม่ได้บีบอัด (โดยเฉพาะรูปภาพที่บีบอัดได้ไม่ดี) อาจเกินความจุพื้นที่เก็บข้อมูลชั่วคราวระหว่างการประกอบภาพรวมและ COG ด้วย หากการส่งออกล้มเหลว ให้ลองแบ่งเป็นไฟล์ที่เล็กลงหรือ แปลงการส่งออก GeoTIFF มาตรฐานภายนอก

การปรับแต่งการสร้าง COG ภายนอก Earth Engine

แม้ว่าการส่งออกโดยตรงด้วย cloudOptimized: true จะเป็นวิธีที่ง่ายที่สุดในการสร้าง COG ที่พร้อมใช้งานสำหรับเวิร์กโฟลว์ส่วนใหญ่ แต่คุณยังส่งออก GeoTIFF มาตรฐาน (cloudOptimized: false ซึ่งเป็นค่าเริ่มต้น) และแปลงเป็น COG ด้วยตนเองโดยใช้เครื่องมือภายนอก เช่น GDAL ได้ด้วย เวิร์กโฟลว์การส่งออกและการแปลง 2 ขั้นตอนอาจมีประโยชน์เมื่อคุณต้องการทำสิ่งต่อไปนี้

  • ปรับแต่งการบีบอัดและเลย์เอาต์: ปรับขนาดบล็อก (เช่น 512x512), ตัวคาดการณ์, วิธีการสุ่มตัวอย่างภาพรวม หรือตัวแปลงสัญญาณการบีบอัด (เช่น ZSTD) ให้เหมาะกับชุดข้อมูลของคุณ (ดู เตรียม COG)
  • หลีกเลี่ยงข้อผิดพลาดด้านความจุในการส่งออกไฟล์เดียวขนาดใหญ่: การข้ามการสร้างภาพรวมและการเขียนเลย์เอาต์ COG ใหม่ระหว่างการส่งออกจะช่วยลดค่าใช้จ่ายด้านหน่วยความจำและพื้นที่เก็บข้อมูลชั่วคราว ทำให้การส่งออกไฟล์เดียวขนาดใหญ่มากมีโอกาสน้อยที่จะถึงขีดจำกัดความจุ
  • ลดเวลาในการดำเนินการส่งออกของ Earth Engine: การถ่ายโอนการสร้างภาพรวมและการจัดรูปแบบ COG ไปยังสภาพแวดล้อมการประมวลผลของคุณเองจะช่วยลดระยะเวลาการส่งออกของ Earth Engine

ข้อควรพิจารณาเกี่ยวกับค่าใช้จ่ายและคลาสพื้นที่เก็บข้อมูล

เมื่อวิเคราะห์ชิ้นงาน COG ที่ลงทะเบียน การอ่านจาก Earth Engine จะไม่ทำให้เกิดค่าใช้จ่ายในการดำเนินการอ่าน Cloud Storage หรือค่าใช้จ่ายในการดึงข้อมูลในโปรเจ็กต์ Google Cloud

ระบบจะเรียกเก็บเงินจากคุณโดย Cloud Storage เป็นหลักสำหรับพื้นที่เก็บข้อมูลข้อมูลที่ไม่ได้ใช้งานรายเดือนมาตรฐาน (GB/เดือน) และค่าธรรมเนียมการโอนข้อมูลไคลเอ็นต์ภายนอกหรือค่าธรรมเนียมการส่งข้อมูลออกจากเครือข่าย (ขึ้นอยู่กับตำแหน่ง Bucket และการกำหนดค่าเครือข่ายของไคลเอ็นต์)

คำแนะนำเกี่ยวกับคลาสพื้นที่เก็บข้อมูล

  • พื้นที่เก็บข้อมูลมาตรฐาน (แนะนำ): พื้นที่เก็บข้อมูลมาตรฐานเหมาะที่สุดสำหรับเวิร์กโฟลว์ Earth Engine ที่ใช้งานอยู่ เนื่องจากไม่มีกฎระยะเวลาการจัดเก็บขั้นต่ำ คุณจึงสามารถเขียนทับ อัปเดต หรือลบ COG ชั่วคราวได้อย่างอิสระโดยไม่ต้องเสียค่าปรับสำหรับการลบก่อนกำหนด นอกจากนี้ หากคุณหรือผู้ทำงานร่วมกันเข้าถึง Bucket โดยใช้ซอฟต์แวร์ GIS บนเดสก์ท็อป สคริปต์ GDAL หรือ Notebook แมชชีนเลิร์นนิงภายนอก Earth Engine พื้นที่เก็บข้อมูลมาตรฐานจะไม่มีค่าธรรมเนียมเพิ่มเติมสำหรับการดึงข้อมูลแบบขายปลีก
  • พื้นที่เก็บข้อมูล Nearline, Coldline และ Archive Storage: คลาสพื้นที่เก็บข้อมูลทั้งหมดของ Cloud Storage มีการเข้าถึงที่มีเวลาในการตอบสนองต่ำและปริมาณงานเท่ากับพื้นที่เก็บข้อมูลมาตรฐาน ดังนั้นจึงไม่มีค่าปรับด้านประสิทธิภาพการอ่านเมื่อใช้พื้นที่เก็บข้อมูลระดับที่เย็นกว่าใน Earth Engine แม้ว่าการคำนวณของ Earth Engine จะอ่านพื้นที่เก็บข้อมูลระดับเหล่านี้ได้โดยไม่ต้องเสียค่าธรรมเนียมการดึงข้อมูลแบบขายปลีก แต่กฎการขายปลีกของ Cloud Storage กำหนดระยะเวลาการจัดเก็บขั้นต่ำที่เข้มงวด (30 วันสำหรับ Nearline, 90 วันสำหรับ Coldline, 365 วันสำหรับ Archive) การแก้ไขหรือลบไฟล์ก่อนระยะเวลาขั้นต่ำจะทำให้เกิดค่าธรรมเนียมเพิ่มเติมสำหรับการลบก่อนกำหนด นอกจากนี้ การเข้าถึงออบเจ็กต์ที่เย็นจากเครื่องมือไคลเอ็นต์ภายนอกจะทำให้เกิดค่าธรรมเนียมเพิ่มเติมสำหรับการดึงข้อมูลที่มีค่าใช้จ่ายสูง

ดูราคาขายปลีกโดยละเอียดและนโยบายระยะเวลาขั้นต่ำได้ที่ คู่มือราคา Google Cloud Storage

เวิร์กโฟลว์ระดับสูง

เวิร์กโฟลว์ทั่วไปสำหรับการใช้ COG ใน Earth Engine มีขั้นตอนต่อไปนี้

สำหรับการนำเข้าข้อมูลภายนอก

  • เพิ่มประสิทธิภาพ: แปลงไฟล์แรสเตอร์เป็นรูปแบบ COG โดยใช้เครื่องมือภายนอก (เช่น GDAL, สคริปต์เวิร์กสเตชันในเครื่อง หรือไปป์ไลน์การประมวลผลระบบคลาวด์)
  • อัปโหลด: อัปโหลด COG ไปยัง Bucket ของ Cloud Storage ที่รองรับซึ่งอยู่ใน us-central1 หรือหลายภูมิภาคของสหรัฐอเมริกา
  • สิทธิ์: ตรวจสอบว่าคุณและผู้ทำงานร่วมกันในโปรเจ็กต์มีสิทธิ์อ่าน Cloud Storage สำหรับไฟล์ (ดูสิทธิ์ COG)
  • ลงทะเบียน: ใช้ไลบรารีของไคลเอ็นต์ Python, earthengine เครื่องมือบรรทัดคำสั่ง หรือ REST API เพื่อลงทะเบียน COG เป็นชิ้นงาน Earth Engine (ดูการลงทะเบียน COG)

สำหรับการส่งออกผลลัพธ์

  • ส่งออก: เรียกใช้การส่งออกแบบกลุ่มจาก Earth Engine ไปยัง Cloud Storage โดยตั้งค่า cloudOptimized เป็น true (ดูการส่งออกรูปภาพ)
  • ลงทะเบียน (ไม่บังคับ): ลงทะเบียน COG ที่ส่งออกกลับไปยัง Earth Engine เป็น ชิ้นงานใหม่เพื่อทำการวิเคราะห์เพิ่มเติม (ดู การลงทะเบียน COG)

หากพร้อมเริ่มต้นใช้งานแล้ว ให้ทำตามคู่มือการลงทะเบียน COG โดยละเอียดเพื่อลงทะเบียน ชิ้นงานแรก