การทำความเข้าใจวิธีที่ Earth Engine จัดการมาตราส่วนเป็นสิ่งสำคัญในการตีความผลลัพธ์ทางวิทยาศาสตร์ที่ได้รับจาก Earth Engine มาตราส่วนในที่นี้หมายถึงความละเอียดของพิกเซล แพลตฟอร์มนี้แตกต่างจากแพลตฟอร์ม GIS และแพลตฟอร์มการประมวลผลภาพอื่นๆ เนื่องจากขนาดของการวิเคราะห์จะกำหนดจากเอาต์พุต ไม่ใช่อินพุต กล่าวโดยละเอียดคือ เมื่อคุณส่งคําขอผลลัพธ์ รูปภาพที่จะแสดง หรือสถิติ คุณกําหนดสเกลที่จะป้อนข้อมูลไปยังการวิเคราะห์ แนวคิดนี้แสดงในรูปที่ 1
พีระมิดรูปภาพ
ชิ้นงานรูปภาพใน Earth Engine มีอยู่หลายขนาดในพีระมิดรูปภาพ นโยบายการสร้างปิรามิด (แสดงด้วยเส้นประในรูปที่ 1) จะกำหนดวิธีคำนวณพิกเซลแต่ละพิกเซลที่ระดับหนึ่งๆ ของปิรามิดจากการรวมกลุ่มของบล็อกพิกเซล 2x2 ที่ระดับต่ำกว่า สําหรับรูปภาพที่มีค่าต่อเนื่อง ค่าพิกเซลของระดับบนของพีระมิดคือค่าเฉลี่ยของพิกเซลที่ระดับต่ำกว่า สําหรับรูปภาพที่มีค่าแบบไม่ต่อเนื่อง ค่าพิกเซลของระดับบนของพีระมิดคือตัวอย่าง (โดยปกติคือพิกเซลด้านซ้ายบน) ของพิกเซลที่ระดับต่ำกว่า
ระดับต่ำสุดของพีระมิดรูปภาพแสดงข้อมูลรูปภาพที่มีความละเอียดระดับเนทีฟเมื่อนำเข้าไปยัง Earth Engine ในระหว่างการส่งผ่านข้อมูล ระบบจะรวบรวมข้อมูล (ตามนโยบายการสร้างปิรามิด) เพื่อสร้างปิรามิดระดับสูงขึ้น ระบบจะรวบรวมข้อมูลจนกว่ารูปภาพทั้งรูปจะพอดีกับไทล์ขนาด 256x256 พิกเซล เมื่อคุณใช้รูปภาพในโค้ด Earth Engine จะเลือกระดับของพีระมิดที่มีสเกลใกล้เคียงที่สุดซึ่งน้อยกว่าหรือเท่ากับสเกลที่การวิเคราะห์ระบุไว้ และทำการสุ่มตัวอย่างอีกครั้ง (โดยใช้เพื่อนบ้านที่ใกล้ที่สุดโดยค่าเริ่มต้น) ตามที่จำเป็น
ระดับการวิเคราะห์
ระดับการวิเคราะห์ใน Earth Engine จะกำหนดตาม "การดึงข้อมูล" ระดับที่จะขออินพุตสําหรับการคํานวณจะกําหนดจากเอาต์พุต เช่น หากคุณเพิ่มรูปภาพลงในเครื่องมือแก้ไขโค้ดหรือองค์ประกอบแผนที่ geemap ระดับการซูมของแผนที่จะเป็นตัวกำหนดขนาดที่ระบบจะขอข้อมูลจากพีระมิดรูปภาพ สําหรับการคํานวณอื่นๆ คุณต้องระบุ scale
เป็นอาร์กิวเมนต์ ตัวอย่างเช่น การใช้ย่านความถี่ NIR ของภาพ Landsat ซึ่งมีความละเอียดระดับ 30 เมตร
เครื่องมือแก้ไขโค้ด (JavaScript)
var image = ee.Image('LANDSAT/LC08/C02/T1_TOA/LC08_044034_20140318').select('B4'); var printAtScale = function(scale) { print('Pixel value at '+scale+' meters scale', image.reduceRegion({ reducer: ee.Reducer.first(), geometry: image.geometry().centroid(), // The scale determines the pyramid level from which to pull the input scale: scale }).get('B4')); }; printAtScale(10); // 0.10394100844860077 printAtScale(30); // 0.10394100844860077 printAtScale(50); // 0.09130698442459106 printAtScale(70); // 0.1150854229927063 printAtScale(200); // 0.102478988468647 printAtScale(500); // 0.09072770178318024
import ee import geemap.core as geemap
Colab (Python)
image = ee.Image('LANDSAT/LC08/C02/T1_TOA/LC08_044034_20140318').select('B4') def print_at_scale(scale): display( f'Pixel value at {scale} meters scale', image.reduceRegion( reducer=ee.Reducer.first(), geometry=image.geometry().centroid(), # The scale determines the pyramid level from which to pull the input scale=scale, ).get('B4'), ) print_at_scale(10) # 0.10394100844860077 print_at_scale(30) # 0.10394100844860077 print_at_scale(50) # 0.09130698442459106 print_at_scale(70) # 0.1150854229927063 print_at_scale(200) # 0.102478988468647 print_at_scale(500) # 0.09072770178318024
ในตัวอย่างนี้ โปรดทราบว่าค่าพิกเซลที่ตำแหน่งคงที่ (จุดศูนย์กลางของรูปภาพ) จะแตกต่างกันไปตามสเกล สาเหตุคือมีการเลือกระดับพีระมิดที่แตกต่างกันสําหรับรูปแบบที่แตกต่างกัน สําหรับขนาดที่คล้ายกัน การสุ่มตัวอย่างจากเพื่อนบ้านที่ใกล้ที่สุดจะแสดงผลค่าพิกเซลเดียวกัน ประเด็นสำคัญคือ การปรับขนาดจะส่งผลให้ระบบขออินพุตรูปภาพที่แตกต่างกัน
เมื่อคุณแสดงภาพโดยเพิ่มลงในแผนที่ Earth Engine จะกำหนดมาตราส่วนจากระดับการซูม ลองดูตัวอย่างง่ายๆ ต่อไปนี้ ซึ่งแสดงภาพ Landsat
เครื่องมือแก้ไขโค้ด (JavaScript)
var image = ee.Image('LANDSAT/LC08/C02/T1_TOA/LC08_044034_20140318'); Map.centerObject(image, 17); Map.addLayer(image, {bands: ['B4', 'B3', 'B2'], max: 0.35}, 'image');
import ee import geemap.core as geemap
Colab (Python)
image = ee.Image('LANDSAT/LC08/C02/T1_TOA/LC08_044034_20140318') m = geemap.Map() m.center_object(image, 17) m.add_layer(image, {'bands': ['B4', 'B3', 'B2'], 'max': 0.35}, 'image') m
แผนที่จะเริ่มซูมเข้าจนสุดเพื่อให้เห็นพิกเซลความละเอียดระดับต้นฉบับอย่างชัดเจน การซูมออกจนสุดจะไม่แสดงพิกเซลเดิม แต่จะแสดงพีระมิดรูปภาพที่สูงขึ้นแทน นอกจากนี้ โปรดทราบว่าเครื่องมือแก้ไขโค้ดและแผนที่ geemap ใช้การโปรเจ็กต์ maps mercator (EPSG:3857) ดังนั้นจึงต้องโปรเจ็กต์พีระมิดรูปภาพในระดับที่เหมาะสมอีกครั้งก่อนแสดง ดูข้อมูลเพิ่มเติมเกี่ยวกับวิธีที่ Earth Engine จัดการการฉายภาพจากเอกสารการฉายภาพ