คำถามทั่วไป
ฉันพบปัญหาและต้องการความช่วยเหลือ
โพสต์คำถามโดยทำตามคู่มือนี้ โดยให้ข้อมูลมากที่สุดเท่าที่จะทำได้ (ดูคู่มือการถามคำถามที่ดีของ Stack Overflow) ซึ่งมักหมายความว่า
ส่งลิงก์ไปยังสคริปต์ในเครื่องมือแก้ไขโค้ด (คลิกปุ่ม "รับลิงก์" เพื่อรับลิงก์)
การแชร์ชิ้นงานที่จําเป็นสําหรับเรียกใช้สคริปต์
สำหรับงานกลุ่มที่ดำเนินการไม่สำเร็จ ให้รายงานรหัสของงานที่ดำเนินการไม่สำเร็จ รหัสงานจะมีลักษณะดังนี้
4C25GIJBMB52PXTEJTF4JLGL
ซึ่งอยู่ในแท็บงานของเครื่องมือแก้ไขโค้ด ดูข้อมูลเพิ่มเติม
ฉันจะอ่านเกี่ยวกับสถาปัตยกรรมของ Earth Engine ได้จากที่ใด
โปรดดูบทความนี้ Gorelick et al. 2017
มีบทแนะนำ Earth Engine ที่แนะนำซึ่งไม่ได้จัดทำโดย Google ไหม
ดูหน้า EDU และหน้าแหล่งข้อมูลการฝึกอบรม
มีบทแนะนำการตรวจจับระยะไกลที่แนะนำไหม
ดูหลักสูตร EE ฟรีนี้โดย Ujaval Gandhi ซึ่งมีวิดีโอแนะนำเกี่ยวกับการตรวจวัดระยะไกล
การเขียนโปรแกรม Earth Engine
ข้อผิดพลาดที่พบบ่อยในการเขียนโค้ดมีอะไรบ้าง
ทำไมฉันจึงใช้คณิตศาสตร์พื้นฐานอย่าง ee.Image("image") * 2
ไม่ได้
ใน EE คุณไม่ควรผสมออบเจ็กต์หรือการดำเนินการฝั่งเซิร์ฟเวอร์และฝั่งไคลเอ็นต์ การดำเนินการทั้งหมดกับออบเจ็กต์ EE จะดำเนินการฝั่งเซิร์ฟเวอร์ การคํานวณฝั่งไคลเอ็นต์จะไม่ทําในสิ่งที่คุณตั้งใจไว้ ดูรายละเอียดเพิ่มเติมได้ในหน้านี้
ฉันจะใช้คำสั่ง for
loop หรือ if/else
ได้อย่างไร
การเขียนโปรแกรม Earth Engine ทำได้โดยใช้ภาษาฟังก์ชัน ดังนั้นจึงควรแสดงลูปและการดำเนินการแบบมีเงื่อนไขโดยใช้แนวคิดที่เทียบเท่า เช่น map
หรือ filter
ดูรายละเอียดเพิ่มเติมได้ในหน้านี้
ฉันจะแสดงป้ายกำกับข้อความในรูปภาพหรือวิดีโอได้อย่างไร
ระบบไม่รองรับป้ายกำกับข้อความในตัว แต่คุณทําสิ่งต่อไปนี้ได้
- ใช้แพ็กเกจ JS ของบุคคลที่สาม ดูตัวอย่าง
- ใช้แพ็กเกจ Python ของบุคคลที่สาม geemap
- ใช้ QGIS ในการนําเข้ารูปภาพ EE โดยใช้ปลั๊กอิน EE QGIS
ฉันจะใช้พาเล็ตสีมาตรฐานได้ไหม
ใช้แพ็กเกจ JS ของบุคคลที่สาม ee-palettes
ฉันจะสร้างเว็บไซต์ของตัวเองที่ใช้ Earth Engine ได้อย่างไร
ใช้แอป Earth Engine สำหรับแอปพลิเคชันพื้นฐาน ในกรณีที่ซับซ้อนมากขึ้น คุณสามารถสร้างแอป App Engine ที่ทำงานด้วย EE
รหัสแผนที่ทำงานอย่างไร
รหัสแผนที่ (เรียกว่า mapid
ตลอดทั้ง API) คือคีย์ที่ช่วยให้ไคลเอ็นต์ดึงข้อมูลไทล์แผนที่ได้ รหัสแต่ละรายการคือแฮชที่สร้างโดยการระบุนิพจน์รูปภาพไปยังปลายทาง getMapId
รหัสที่ได้จะเป็นคีย์ที่ชี้ไปยังทั้งนิพจน์รูปภาพและข้อมูลเข้าสู่ระบบของผู้ใช้ที่จะใช้ในการสร้างการ์ดในขั้นตอนต่อๆ ไป
การขอชิ้นส่วนแผนที่เกี่ยวข้องกับการระบุตำแหน่งของชิ้นส่วน (x
, y
,
zoom
) รวมถึง mapid
(คีย์สำหรับรูปภาพและข้อมูลเข้าสู่ระบบ) คุณใช้รหัสเดียวกันเพื่อโหลดชิ้นส่วนแผนที่หลายรายการซ้ำได้ ไม่มีการจํากัดการใช้mapid
คีย์ซ้ำ แต่คีย์จะหมดอายุหลังจากผ่านไป 2-3 ชั่วโมง เราไม่เผยแพร่กรอบเวลาที่เจาะจงเกี่ยวกับระยะเวลาที่รหัสจะคงอยู่ แต่โค้ดที่คุณเขียนควรมีความยืดหยุ่นเมื่อรหัสหมดอายุ
การสร้างรหัสเหล่านี้เกี่ยวข้องกับการจัดเก็บข้อมูลเล็กน้อยและการตรวจสอบข้อมูลเข้าสู่ระบบ ดังนั้นคุณจึงควรนํารหัสมาใช้ซ้ำให้ได้นานที่สุด ไม่มีโควต้า API ที่เชื่อมโยงกับปลายทาง getMapId
โดยเฉพาะ แต่เวิร์กโฟลว์ใดก็ตามที่เกี่ยวข้องกับการสร้างออบเจ็กต์ mapid
ในอัตราที่ใกล้เคียงกับอัตราในการดึงข้อมูลไทล์อาจทําสิ่งผิดพลาด Earth Engine ไม่มีปลายทาง API สำหรับนำออก แสดงรายการ หรือจัดการรหัสเหล่านี้ เนื่องจากเป็นทรัพยากรชั่วคราว
เหตุใด ee.Algorithms.If()
จึงแสดงทั้งกรณีจริงและเท็จ
function a() { print("true"); }
function b() { print("false"); }
// Prints 'true' and 'false'.
ee.Algorithms.If(true, a(), b());
อัลกอริทึม If()
ทำงานเหมือนกับอัลกอริทึมอื่นๆ ทั้งหมดใน Earth Engine ตรงที่ต้องประเมินอาร์กิวเมนต์ทั้งหมดก่อนจึงจะเรียกใช้อัลกอริทึมได้
อัลกอริทึมจะรับทั้งผลลัพธ์ trueCase
และ falseCase
จากนั้นจะเลือกและแสดงผลลัพธ์รายการใดรายการหนึ่งตามอาร์กิวเมนต์ condition
แต่ต้องเรียกใช้ทั้ง 2 เส้นทางเพื่อให้ระบบส่งค่าเหล่านั้นไปยังอัลกอริทึมตั้งแต่แรก
ฉันได้รับข้อผิดพลาด "ขนาดของข้อมูลในคำขอเกินขีดจำกัด"
คุณพยายามส่งคำขอขนาดใหญ่มากไปยัง Earth Engine ซึ่งมักเกิดขึ้นเมื่อโค้ดใช้ลูป "for" ฝั่งไคลเอ็นต์จำนวนมากหรือสร้าง FeatureCollection จากออบเจ็กต์เรขาคณิตหลายรายการ ในกรณีหลัง ให้สร้างไฟล์ CSV ที่มีรูปทรงดังกล่าวแทนการสร้างรูปทรงดังกล่าวในสคริปต์ แล้วอัปโหลดไฟล์ไปยังชิ้นงานตาราง
ee.Image.clip()
กับ ee.Filter.bounds()
แตกต่างกันอย่างไร
ดูชุดข้อความ GIS Stack Exchange นี้
ฟังก์ชัน ee.Image.clip()
จะปิดบังพิกเซลที่ไม่ได้ตัดกับ ee.Geometry
หรือ ee.Feature
ที่กำหนด ทำให้พิกเซลดังกล่าวโปร่งใสในการแสดงภาพและถูกยกเว้นในการคำนวณ คุณอาจจินตนาการว่าการตัดออกคือการตัดพิกเซลออกจากรูปภาพ
ฟังก์ชัน ee.Filter.bounds()
จะกรองออบเจ็กต์ ee.Image
ออกจาก ee.ImageCollection
โดยอิงตามจุดตัดของรูปภาพกับ ee.Geometry
หรือ ee.Feature
ซึ่งใช้เพื่อจำกัดขอบเขตของการวิเคราะห์ให้เหลือเฉพาะรูปภาพที่ตัดกับภูมิภาคหนึ่งๆ ซึ่งช่วยเพิ่มประสิทธิภาพการแสดงออก
วิธีแปลงพิกเซลรูปภาพเป็นคอลเล็กชันองค์ประกอบ โดยมีองค์ประกอบ 1 รายการต่อพิกเซล
ใช้ฟังก์ชัน ee.Image.sample()
ดูตัวอย่างการใช้งานในหน้าเอกสารอ้างอิงของ API ของฟังก์ชัน
ee.ImageCollection.merge()
กับ ee.ImageCollection.combine()
แตกต่างกันอย่างไร
ฟังก์ชัน ee.ImageCollection.merge()
จะผสานรูปภาพทั้งหมดจากคอลเล็กชัน 2 ชุดเข้าเป็นคอลเล็กชันเดียว ไม่ว่ารูปภาพที่เกี่ยวข้องจะมีย่านความถี่ เมตาดาต้า CRS หรือสเกลที่ตรงกันหรือไม่ก็ตาม นั่นคือการรวมคอลเล็กชัน 2 รายการเข้าด้วยกัน เมธอด combine()
จะรวมกลุ่มรูปภาพที่ตรงกันจากคอลเล็กชัน 2 ชุดเข้าเป็นคอลเล็กชันเดียว รูปภาพที่ตรงกันมีรหัสเดียวกัน (พร็อพเพอร์ตี้ system:index
) นั่นคือการรวมภายในของคอลเล็กชัน 2 รายการตามรหัสรูปภาพ ซึ่งจะรวมแถบจากรูปภาพที่ตรงกัน สำหรับรูปภาพที่ตรงกัน ระบบจะเพิ่มแถบจากรูปภาพรองต่อท้ายรูปภาพหลัก (การเขียนทับเป็นตัวเลือก) หากไม่มีรูปภาพที่ตรงกัน ระบบจะแสดงคอลเล็กชันว่าง
วิธีกรองคอลเล็กชันรูปภาพตามช่วงเวลาหลายช่วง
ดูชุดข้อความ GIS Stack Exchange นี้
merge()
ใช้คอลเล็กชันหลายรายการร่วมกันหรือใช้ ee.Filter.or()
วิธีสร้างกรอบพื้นที่รอบจุดที่ระบุ
// Buffer the point by a chosen radius and then get the bounding box.
var LNG = -117.298;
var LAT = 45.162;
var point = ee.Geometry.Point([LNG, LAT]);
var buffer = point.buffer(30000); // half of box width as buffer input
var box = buffer.bounds(); // draw a bounding box around the buffered point
Map.centerObject(box);
Map.addLayer(point);
Map.addLayer(box);
// Map the buffer and bounds procedure over a point feature collection.
var pointCol = ee.FeatureCollection([
ee.Feature(ee.Geometry.Point([LNG + 1, LAT])),
ee.Feature(ee.Geometry.Point([LNG - 1, LAT]))
]);
var boxCol = pointCol.map(function(feature) {
var box = feature.buffer(30000).bounds();
return feature.setGeometry(box.geometry());
});
Map.addLayer(boxCol);
Data Catalog
คุณช่วยเพิ่มชุดข้อมูล X ได้ไหม
รายงานข้อบกพร่องเกี่ยวกับคำขอชุดข้อมูลโดยทำตามคู่มือคำขอชุดข้อมูล
นอกจากนี้ คุณยังอัปโหลดข้อมูลไปยังโฟลเดอร์หน้าแรกของ Earth Engine ได้ด้วย โปรดดูหัวข้อการนําเข้าข้อมูลแรสเตอร์และการนําเข้าข้อมูลตาราง
ชุดข้อมูลที่มีอยู่มีเวอร์ชันใหม่
รายงานข้อบกพร่องเกี่ยวกับชุดข้อมูลตามคำแนะนำในการขอชุดข้อมูล และระบุว่าคุณกำลังขอการอัปเดตชุดข้อมูล
ชุดข้อมูลที่มีอยู่ไม่ได้รับการอัปเดตหรือไม่มีชิ้นงาน
ก่อนรายงานปัญหา ให้ตรวจสอบว่าชิ้นงานที่เลือกมีอยู่จริงในเว็บไซต์ของผู้ให้บริการชุดข้อมูล (หากเป็นไปได้) ดูรายละเอียดเพิ่มเติมได้ที่คำแนะนำเกี่ยวกับรูปภาพที่หายไป
หากกำลังมองหาเนื้อหาโดยการกรอง ImageCollection
ให้ตรวจสอบว่าตัวกรองไม่ได้จำกัดมากเกินไป
โดยเฉพาะอย่างยิ่ง โปรดทราบว่า
ESA ไม่ได้ผลิต Sentinel-2 SR (ข้อมูลระดับ 2) สำหรับภาพระดับ 1 ในช่วงแรก
Landsat ไม่ได้ครอบคลุมทั่วโลกก่อนปี 2000
ชุดข้อมูลที่มีอยู่มีค่าไม่ถูกต้อง
โพสต์ในฟอรัมนักพัฒนาแอป ใส่สคริปต์ที่ซูมไปที่ความละเอียดเดิมของชิ้นงานและทำให้มองเห็นค่าที่ไม่ถูกต้องได้อย่างชัดเจน อธิบายว่าคุณเห็นค่าทางเลือกที่ใด
ฉันจะสอบถามเกี่ยวกับชุดข้อมูลได้จากที่ใดอีก
หากมีคำถามเกี่ยวกับชุดข้อมูลของ NASA โปรดไปที่ฟอรัมข้อมูลโลกของ NASA
หากมีคำถามเกี่ยวกับกล่องเครื่องมือที่ทำงานกับชุดข้อมูล Copernicus โปรดไปที่ฟอรัม S1, S2 และ S3
แคตตาล็อก EE มีขนาดใหญ่เพียงใด
ในเดือนตุลาคม 2023 แคตตาล็อกมีชุดข้อมูลมากกว่า 1, 000 ชุด มีขนาดในดิสก์มากกว่า 90 เพตาไบต์ (หลังจากพิจารณาการบีบอัดแบบไม่สูญเสียคุณภาพ)
ข้อมูลใน EE อัปเดตบ่อยเพียงใด
โดยปกติแล้ว ชุดข้อมูลทั้งหมดที่เผยแพร่อยู่จะอัปเดตอย่างน้อยวันละครั้ง (แต่ชุดข้อมูลดังกล่าวบางชุดอาจมีข้อมูลใหม่ทุกวัน) ชุดข้อมูลบางชุดได้รับการอัปเดตวันละหลายครั้ง อย่างไรก็ตาม ไม่มีนโยบายที่รับประกันว่าจะมีชิ้นงานล่าสุดในแคตตาล็อก
ฉันจะดูเนื้อหาของแคตตาล็อก EE โดยใช้โปรแกรมได้อย่างไร
ระบบจะส่งออกรายการชุดข้อมูลในรูปแบบ STAC ไปยังที่เก็บข้อมูล Google Cloud Storage gs://earthengine-stac
ไฟล์รายการคือ catalog.json
ฉันจะใช้ข้อมูลหรือภาพจาก Google Maps เพื่อการวิเคราะห์ได้ไหม
Google ไม่ได้อนุญาตให้ใช้สิทธิหรือขายข้อมูลแผนที่ฐานสําหรับการวิเคราะห์
ฉันจะดูวันที่นำเข้าชิ้นงานได้อย่างไร
พร็อพเพอร์ตี้เนื้อหา 'system:version'
คือการประทับเวลาการส่งผ่านข้อมูลในรูปแบบไมโครวินาทีนับตั้งแต่ Epoch ของ Unix ต่อไปนี้เป็นตัวอย่างที่แปลงการประทับเวลาการส่งผ่านข้อมูลของรูปภาพ Landsat เป็นรูปแบบที่มนุษย์อ่านได้
var image = ee.Image('LANDSAT/LC08/C02/T1_L2/LC08_044034_20210508');
print('Ingest date', ee.Date(image.getNumber('system:version').divide(1000)));
แคตตาล็อก Earth Engine มีข้อมูลเมตา JSON-LD ไหม
ใช่ ข้อมูลเมตา JSON-LD จะฝังอยู่ในหน้า HTML ของแคตตาล็อก เช่น หน้า Sentinel-2 มีบล็อกต่อไปนี้
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "BreadcrumbList",
"itemListElement": [{
"@type": "ListItem",
"position": 1,
"name": "Earth Engine Data Catalog",
"item": "https://developers.google.com/earth-engine/datasets"
},{
"@type": "ListItem",
"position": 2,
"name": "Harmonized Sentinel-2 MSI: MultiSpectral Instrument, Level-1C",
"item": "https://developers.google.com/earth-engine/datasets/catalog/COPERNICUS_S2_HARMONIZED"
}]
}
</script>
Landsat
อัลกอริทึม simpleComposite
ทำงานอย่างไร
การติดตั้งใช้งานฝั่งเซิร์ฟเวอร์เทียบเท่ากับโค้ด JavaScript นี้
ฉันจะสร้างภาพรวมแบบไม่มีเมฆจากข้อมูลการสะท้อนแสงของพื้นผิว Landsat ได้อย่างไร
ข้อมูล Landsat ระดับ 2 (การสะท้อนแสงของพื้นผิว) มีแถบคุณภาพหลายแถบซึ่งใช้ปกปิดเมฆและข้อบกพร่องอื่นๆ ของภาพที่ไม่ต้องการได้ ตัวอย่างการใช้ย่านความถี่เหล่านี้เพื่อประมวลผลภาพ Landsat 8 SR และสร้างภาพคอมโพสิตแบบเมดิแอนที่ปราศจากเมฆมีอยู่ในโพสต์ GIS Stack Exchange นี้ ใช้ขั้นตอนเดียวกันนี้เพื่อสร้างภาพรวมที่ไม่มีเมฆเพื่อใช้ในตัวอย่างการจัดประเภทที่มีการควบคุมในคู่มือนักพัฒนาซอฟต์แวร์
จำเป็นต้องปรับความสอดคล้องของค่าการสะท้อนแสงพื้นผิวของ Landsat จากเซ็นเซอร์ต่างๆ หรือไม่
Roy et al., 2016 ประกอบด้วยการวิเคราะห์ความแตกต่างของค่าสะท้อนแสงระหว่าง TOA ของ Landsat 7-8 กับค่าสะท้อนแสงของพื้นผิว พวกเขาเผยแพร่ค่าสัมประสิทธิ์ OLS และ RMA เพื่อให้ผู้อ่านเปลี่ยนค่าการสะท้อนแสงของข้อมูลเซ็นเซอร์หนึ่งเป็นค่าของอีกเซ็นเซอร์หนึ่งได้ บรรทัดสุดท้ายของบทความระบุว่า "แม้ว่าความแตกต่างของเซ็นเซอร์จะค่อนข้างน้อย แต่ก็อาจส่งผลอย่างมาก ทั้งนี้ขึ้นอยู่กับการประยุกต์ใช้ข้อมูล Landsat" อย่างไรก็ตาม การวิเคราะห์นี้อิงตามข้อมูลก่อนการเก็บรวบรวม
การปรับปรุงที่เกิดขึ้นระหว่างการประมวลผลชุดที่ 1 และชุดที่ 2 อีกครั้งอาจส่งผลต่อความสัมพันธ์ระหว่างเซ็นเซอร์ แต่เท่าที่ทราบมา ยังไม่มีการวิเคราะห์ที่คล้ายกับ Roy และคณะ (2016) สำหรับข้อมูลชุดที่ 1 หรือชุดที่ 2 แม้ว่าจะไม่มีการวิเคราะห์อย่างเป็นทางการ แต่ผู้ใช้ Landsat ที่มีอิทธิพลส่วนใหญ่เห็นพ้องกันว่าไม่จําเป็นต้องแก้ไขข้อมูลระดับ 2 (การสะท้อนแสงของพื้นผิว) ในคอลเล็กชัน 2 ตัวอย่างเช่น ในการตอบคำถามเกี่ยวกับความจำเป็นในการปรับระดับ 2 ของชุดที่ 2 Mike Wulder จากทีมวิทยาศาสตร์ของ Landsat ระบุว่าผลิตภัณฑ์การสะท้อนแสงพื้นผิวของชุดที่ 2 มีความเหมาะสมและเชื่อถือได้สูง โดยขึ้นอยู่กับลักษณะของการใช้งานที่น่าสนใจ (รวมถึงการแมปการปกคลุมดินและการสำรวจการเปลี่ยนแปลง) โดยไม่จำเป็นต้องมีการปรับเซ็นเซอร์
ฉันจะปกปิดเมฆและเงาเมฆในภาพ MSS ได้อย่างไร
โมดูล msslib ของบุคคลที่สามสําหรับเครื่องมือแก้ไขโค้ด JavaScript ประกอบด้วยการใช้งานอัลกอริทึม MSScvm รวมถึงฟังก์ชันอื่นๆ ที่มีประโยชน์สําหรับการสํารวจและเตรียมข้อมูล MSS
การจัดการข้อมูล
ใครเป็นเจ้าของข้อมูลที่ฉันอัปโหลด
ข้อกำหนดในการให้บริการของ Earth Engine ระบุว่าลูกค้าเป็นเจ้าของข้อมูลที่อัปโหลดไปยัง Earth Engine
ฉันอัปโหลดข้อมูลไม่ได้
ตรวจสอบสถานะงานอัปโหลดในแผงงานตรงมุมขวาบนของเครื่องมือแก้ไขโค้ด นอกจากนี้ คุณยังดูหน้างานเฉพาะได้ด้วย
หากไม่มีงาน คุณอาจลองอัปโหลดไฟล์ผ่านเครื่องมือแก้ไขโค้ดแล้ว แต่เนื่องจากปัญหาเกี่ยวกับเครือข่าย ระบบจึงอัปโหลดไฟล์ไม่เสร็จสิ้น จึงไม่ได้สร้างงาน ลองใช้เบราว์เซอร์อื่นหรือคอมพิวเตอร์เครื่องอื่น
หากมีงานที่ดำเนินการไม่สำเร็จ ให้ตรวจสอบข้อผิดพลาดที่แสดง หากไม่มีข้อความแสดงข้อผิดพลาดที่เฉพาะเจาะจง ให้ตรวจสอบก่อนว่าไฟล์ไม่เสียหายโดยเรียกใช้ gdalinfo
สำหรับไฟล์แรสเตอร์หรือ ogr2ogr
สำหรับไฟล์เวกเตอร์
คำสั่งเหล่านี้จะพยายามอ่านข้อมูลทั้งหมดจากไฟล์ต้นทางและแสดงข้อผิดพลาดหากไฟล์เสียหาย
ตัวอย่างการเรียกใช้ gdalinfo
gdalinfo -mm -stats -checksum file.tif
ตัวอย่างการเรียกใช้ ogr2ogr ที่จะแปลง in.shp
เป็น out.csv
ogr2ogr -lco GEOMETRY=AS_WKT -f CSV out.csv in.shp
หากไฟล์ดูถูกต้อง ให้โพสต์รหัสงานที่ดำเนินการไม่สำเร็จเป็นข้อความ (ไม่ใช่ภาพหน้าจอ) ในรายชื่ออีเมลของนักพัฒนาซอฟต์แวร์
รหัสงานมีรูปแบบ 4C25GIJBMB52PXTEJTF4JLGL
ทำให้ไฟล์ต้นฉบับอ่านได้แบบสาธารณะหากเป็นไปได้ หากเป็นไฟล์ส่วนตัว ให้แชร์กับ earthengine@google.com
เท่านั้นหากต้องการให้ทีม Earth Engine ตรวจสอบ หากแชร์ไฟล์ต้นฉบับไม่ได้ ให้ระบุเอาต์พุตของ gdalinfo -mm -stats -checksum
เป็นอย่างน้อย
หาก Earth Engine ไม่รองรับการฉายภาพบางประเภท คุณจะต้องฉายภาพข้อมูลอีกครั้งก่อนอัปโหลดโดยใช้ gdalwarp
เป็นต้น
ฉันจะอัปโหลดไฟล์ในรูปแบบ NetCDF หรือรูปแบบแรสเตอร์รูปแบบอื่นที่ไม่รองรับได้อย่างไร
เฉพาะ GeoTIFF เท่านั้นที่อัปโหลดไปยัง Earth Engine ได้ รูปแบบอื่นๆ ที่เข้ากันได้กับ GDAL สามารถแปลงเป็น GeoTIFF ได้โดยใช้ gdal_translate
ตัวอย่าง
gdal_translate -co COMPRESS=DEFLATE file.nc file.tif
โปรดทราบว่าไฟล์ NetCDF หรือ HDF บางไฟล์ประกอบด้วยชุดข้อมูลย่อยหลายชุดที่ค้นพบได้ด้วย gdalinfo
ในกรณีนี้ คำสั่ง gdal_translate
จะมีลักษณะดังนี้ (โปรดสังเกตเส้นทางระหว่างเครื่องหมายคำพูดแบบคู่)
gdal_translate HDF4_EOS:EOS_GRID:"/tmp/MCD12Q1.A2001001.h00v08.005.2011055224312.hdf":MOD12Q1:Land_Cover_Type_1 file.tif
บางครั้งไฟล์ NetCDF จะไม่มีโปรเจ็กชันที่ GDAL รู้จัก ในกรณีนี้ คุณจะต้องตั้งค่าการฉายภาพและความครอบคลุมเชิงพื้นที่ในบรรทัดคำสั่ง gdal_translate
ตัวอย่าง
gdal_translate -a_srs EPSG:4326 -a_ullr -180 90 180 -90 file.nc file.tid
ฉันจะใช้อัลกอริทึมการบีบอัดใดได้บ้างสำหรับ GeoTIFF ที่อัปโหลด
สำหรับการอัปโหลด คุณสามารถบีบอัด GeoTIFF ด้วย DEFLATE, JPEG, JPEG-XL/JXL, LERC, LERC_DEFLATE, LERC_ZSTD, LZMA, LZW, WEBP หรือ ZSTD สําหรับการอ่าน COG แบบเรียลไทม์ คุณจะใช้ DEFLATE, JPEG, LZW หรือ ZSTD ได้ ZSTD เป็นตัวเลือกที่ดีโดยรวมเนื่องจากสามารถถอดรหัสได้อย่างรวดเร็ว ทั้งยังบีบอัดรูปภาพส่วนใหญ่ได้ดี
หากต้องการใช้การบีบอัด ZSTD เมื่อใช้ gdal_translate
ให้เพิ่มตัวเลือกเหล่านี้ หากข้อมูลมีค่าทศนิยม ให้เปลี่ยน PREDICTOR
เป็น 3
gdal_translate in.tif out.tif \
-co COPY_SRC_OVERVIEWS=YES \
-co TILED=YES \
-co BLOCKXSIZE=512 \
-co BLOCKYSIZE=512 \
-co COMPRESS=ZSTD \
-co PREDICTOR=2 \
-co ZSTD_LEVEL=22 \
-co INTERLEAVE=BAND \
-co NUM_THREADS=ALL_CPUS
การส่งผ่านข้อมูลแรสเตอร์ของฉันทำงานมาหลายวันแล้วและยังไม่เสร็จ
ใช้ gdalinfo
เพื่อตรวจสอบว่าไฟล์มีการตั้งค่าตัวเลือก GDAL ต่อไปนี้หรือไม่
INTERLEAVE=PIXEL
สําหรับไฟล์ที่มีตัวเลือกนี้และมีหลายย่านความถี่ การส่งผ่านข้อมูลอาจไม่เสร็จสมบูรณ์เนื่องจากเลย์เอาต์ของไฟล์ดังกล่าวทําให้การอ่านช้ามาก
ลองแปลงไฟล์ดังกล่าวเป็นเลย์เอาต์แบบอินเตอร์เลซแถบก่อนอัปโหลด
gdal_translate -co "INTERLEAVE=BAND" src.tif dst.tif
แรสเตอร์ที่ฉันอัปโหลดไม่ตรงกับแผนที่ฐาน
หากข้อมูลมีการเลื่อนออกไปจากแผนที่ฐานเล็กน้อย แสดงว่าโปรเจ็กชันอาจมีข้อมูลพื้นฐานไม่ถูกต้อง (การคาดคะเนเกี่ยวกับรูปร่างของโลก)
กรณีนี้มักเกิดขึ้นกับการฉายภาพไซน์โซอยด์ที่ไม่สามารถเข้ารหัสได้อย่างเต็มที่ในข้อมูลเมตา GDAL เมื่อคุณทราบแล้วว่าการคาดการณ์เป้าหมายควรเป็นอย่างไร (เช่น SR-ORG:6974
สำหรับไฟล์ที่ใช้การฉายภาพไซน์ไซด์ของ MODIS) ให้ตั้งค่า Flag --crs
ระหว่างการอัปโหลดผ่านบรรทัดคำสั่ง หรือช่อง crs
ของไฟล์ Manifest การอัปโหลด
หากข้อมูลบิดเบี้ยวอย่างมากหรืออยู่ในตำแหน่งที่ไม่ถูกต้องเลย แสดงว่าโปรเจ็กชันหรือการแปลงเชิงเชิงเส้นอาจไม่ถูกต้อง
แรสเตอร์ของฉันแสดงเฉพาะในซีกโลกตะวันออก
คุณอาจอัปโหลดแรสเตอร์ทั่วโลกที่ครอบคลุมช่วงลองจิจูด [0, 360] แต่ Earth Engine กำหนดให้แรสเตอร์อยู่ในช่วง [-180, 180] สลับครึ่งซ้ายและขวาของแรสเตอร์ก่อนส่งผ่านข้อมูล ดูคำแนะนำเหล่านี้ใน GIS Stack Exchange
เหตุใดรูปภาพการจัดประเภทที่ส่งผ่านจึงดูเป็นจุดๆ
คุณอาจใช้MEAN
นโยบายการสร้างเครือข่ายเริ่มต้น
สำหรับรูปภาพการจัดประเภท คุณควรใช้นโยบายพีระมิด MODE
สำหรับรูปภาพ QA/บิตมาสก์ คุณควรใช้นโยบายพีระมิด SAMPLE
ฉันได้รับข้อผิดพลาดต่อไปนี้: ไม่มีค่าข้อมูล -128.0 ใช้กับแบนด์ #0 ประเภท Short<0, 255> ไม่ได้
GDAL ไม่สามารถถือว่าแบนด์แบบไบต์เดียวมีจำนวนเต็มที่มีเครื่องหมายได้ จึงจะอ่านแบนด์ดังกล่าวเป็นจำนวนเต็มที่ไม่มีเครื่องหมาย ซึ่งจะขัดแย้งกับค่าลบหรือค่าไม่มีข้อมูล
หากค่าของคุณเป็นจำนวนเต็มที่มีเครื่องหมาย ให้ใช้การอัปโหลดไฟล์ Manifest และเพิ่ม data_type: "INT8"
ลงในส่วนชุดข้อมูลที่มีไฟล์
หากค่าเป็นจำนวนเต็มแบบไม่ลงนาม ไฟล์จะมีค่า nodata ที่ไม่ถูกต้อง คุณสามารถลบล้างค่านี้เมื่ออัปโหลดโดยใช้ค่าข้อมูลที่ถูกต้อง (หรือค่าที่ไม่เคยเกิดขึ้น หากมี) นอกจากนี้ คุณยังใช้ gdal_translate -a_nodata
เพื่อเปลี่ยนค่า nodata หรือ gdal_edit.py -unsetnodata
เพื่อนำค่าออกได้ด้วย
ฉันจะอัปโหลดไฟล์ในรูปแบบ GeoJSON หรือรูปแบบเวกเตอร์รูปแบบอื่นที่ระบบไม่รองรับได้อย่างไร
ใช้ ogr2ogr
เพื่อแปลงรูปแบบที่เข้ากันได้กับ OGR เป็น CSV หรือ SHP ตัวอย่าง
or2ogr -f "ESRI Shapefile" file.shp file.kml
โปรดทราบว่าในการอัปโหลด CSV คอลัมน์เรขาคณิตอาจมี GeoJSON
ฉันต้องการอัปโหลดข้อมูลโดยใช้ Python หรืออัปโหลดหลายไฟล์พร้อมกัน
ใช้การอัปโหลดผ่านบรรทัดคำสั่ง การอัปโหลดดังกล่าวกำหนดให้ต้องวางไฟล์ต้นฉบับไว้ในที่เก็บข้อมูล GCS (GoogleCloud Storage) ก่อน การใช้งาน GCS จะไม่มีค่าใช้จ่ายใดๆ หากอยู่ภายใต้ขีดจํากัดของระดับที่ไม่มีค่าใช้จ่าย โปรดดูหน้าราคา
ฉันต้องการอัปโหลดภาพโมเสคแบบแรสเตอร์ขนาดใหญ่ที่แบ่งออกเป็นหลายส่วน
หากไฟล์ทั้งหมดใช้การฉายภาพและขนาดพิกเซลเดียวกัน ให้อัปโหลดไฟล์เหล่านั้นลงในชิ้นงานเดียวกัน ระบบจะสร้างภาพต่อกันโดยอัตโนมัติ
หากไฟล์มีการฉายภาพหรือขนาดพิกเซลต่างกัน ระบบจะไม่สามารถต่อภาพไฟล์เหล่านั้นเป็นชิ้นงานแรสเตอร์ชิ้นเดียวได้ แต่ให้อัปโหลดแต่ละไทล์เป็นชิ้นงานแยกต่างหากในImageCollection
เดียวกันซึ่งสามารถต่อเป็นภาพต่อกันได้โดยใช้ImageCollection.mosaic()
ฉันพยายามอัปโหลดภาพโมเสก แต่ได้รับข้อผิดพลาดเกี่ยวกับชิ้นส่วนที่จับคู่กันไม่ได้
ไทล์สําหรับภาพโมเสคแรสเตอร์ของ Earth Engine ต้องมีการฉายภาพและขนาดพิกเซลเดียวกัน นอกจากนี้ ไทล์ต้องจัดวางให้ตรงกับขอบพิกเซล
ฉันพยายามอัปโหลดไฟล์จากที่เก็บข้อมูล GCS แต่ Earth Engine ไม่พบไฟล์ดังกล่าว
คุณอาจใช้บัญชี Google อื่นในการอัปโหลด GCS และเชื่อมต่อกับ Earth Engine ตรวจสอบว่าบัญชีที่คุณใช้เชื่อมต่อกับ Earth Engine อ่านไฟล์ GCS ได้ หากการเข้าสู่ระบบหลายครั้งในเบราว์เซอร์ทําให้สับสน ให้เชื่อมต่อกับ Earth Engine ในหน้าต่างเบราว์เซอร์ที่ไม่ระบุตัวตน
ฉันต้องการส่งออกชิ้นงานหลายรายการพร้อมกัน
คุณต้องส่งออกแต่ละรูปภาพแยกกัน
ฉันต้องการย้ายหรือลบ Folder
หรือ ImageCollection
ด้วยคำสั่งเดียว
คุณต้องย้ายหรือลบเนื้อหาแต่ละรายการก่อน จากนั้นจึงย้ายหรือลบโฟลเดอร์หรือคอลเล็กชันหลัก หากมีชิ้นงานย่อยจำนวนมาก ให้เขียนลูป Shell หรือ Python เพื่อวนซ้ำ
ฉันต้องการเข้าถึงข้อมูล Earth Engine จากภายนอก EE โดยตรง
QGIS มีปลั๊กอิน Earth Engine
GDAL มีไดรเวอร์ Earth Engine
ระบบอื่นๆ สามารถใช้ REST API ของ EE ได้
ฉันต้องการอัปเดตเนื้อหาบางส่วนของ Earth Engine โดยไม่ต้องส่งผ่านข้อมูลอีกครั้งทั้งหมด
อัปเดตข้อมูลแรสเตอร์หรือเวกเตอร์ที่อัปโหลดลงใน EE ไม่ได้ อัปเดตได้เฉพาะพร็อพเพอร์ตี้ข้อมูลเมตาของเนื้อหา
ฉันเสียสิทธิ์เข้าถึงบัญชี ฉันจะทําอย่างไรกับเนื้อหา
หากนโยบายของบัญชีเดิมอนุญาตให้โอนข้อมูล โปรดแชร์ชิ้นงานกับบัญชีอื่น จากนั้นคัดลอกชิ้นงานให้บัญชีใหม่เป็นเจ้าของ ใช้ยูทิลิตีการคัดลอกบรรทัดคำสั่งหากต้องย้ายชิ้นงานหลายรายการ
หากบัญชีถูกลบ คุณจะเข้าถึงชิ้นงานที่บัญชีเป็นเจ้าของไม่ได้อีกต่อไป
รูปภาพที่ส่งออกอยู่ผิดที่
สำหรับโปรเจ็กชันบางประเภท เช่น ไซน์ไซออยด์หรือรูปกรวย บางครั้งไฟล์ GeoTIFF อาจจัดเก็บพารามิเตอร์การโปรเจ็กต์ที่จำเป็นทั้งหมดไม่ได้ ซึ่งส่งผลให้ไฟล์ที่ส่งออกปรากฏในตำแหน่งที่ไม่ถูกต้องเมื่อดูในเครื่องมือ GIS บนเดสก์ท็อปหรือส่งผ่านข้อมูลไปยัง EE อีกครั้ง
วิธีแก้ไขคือระบุพารามิเตอร์ crs
การส่งออกที่ทราบว่าทำงานได้ดีกับไฟล์ GeoTIFF เช่น ใช้รหัส EPSG สำหรับโซน UTM ที่มีพื้นที่ที่คุณสนใจ
ฉันควรใช้ตำแหน่งที่เก็บข้อมูล Cloud Storage ใดเพื่อจัดเก็บชิ้นงาน COG
คำตอบขึ้นอยู่กับสิ่งที่คุณพยายามเพิ่มประสิทธิภาพ หากคุณเพิ่มประสิทธิภาพเพื่อเข้าถึงการประมวลผลที่มีเวลาในการตอบสนองต่ำ ตำแหน่งที่เก็บข้อมูล GCS ที่ดีที่สุดสำหรับจัดเก็บชิ้นงาน COG คือ US-CENTRAL* ดูข้อมูลเกี่ยวกับข้อควรพิจารณาอื่นๆ ได้ที่หน้าตำแหน่งของที่เก็บข้อมูล
ชิ้นงานคอลเล็กชันองค์ประกอบที่ส่งออกจะไม่เก็บรักษาพร็อพเพอร์ตี้ที่ฉันตั้งไว้
ไม่มีฟังก์ชัน Export.table.*
ที่เก็บรักษาพร็อพเพอร์ตี้ระดับตารางไว้ในเอาต์พุต
รูปแบบเอาต์พุตจำนวนมาก (เช่น CSV, GeoJSON) ไม่รองรับข้อมูลเมตาดังกล่าว ฟังก์ชัน Export.table.toAsset
อาจรองรับพร็อพเพอร์ตี้ระดับตาราง แต่ยังไม่รองรับในขณะนี้
ระบบจะแปลงตารางที่ส่งออกไปยังไดรฟ์ในรูปแบบ CSV เป็นรูปแบบ XLSX
ตาราง CSV ที่คุณส่งออกจาก Earth Engine สามารถแปลงเป็นไฟล์ XLSX ที่มีผลที่ไม่ต้องการได้ ทั้งนี้ขึ้นอยู่กับการตั้งค่า Google ไดรฟ์ เช่น การแปลงประเภทข้อมูล ทําตามขั้นตอนต่อไปนี้เพื่อแก้ไขลักษณะการทํางานสําหรับการส่งออกครั้งต่อๆ ไป
- ใน Google ไดรฟ์บนเว็บ ให้คลิกไอคอนเฟืองการตั้งค่าที่ด้านขวาบน
- คลิกการตั้งค่า
- เลื่อนไปที่ "แปลงไฟล์ที่อัปโหลดเป็นรูปแบบเครื่องมือแก้ไข Google เอกสาร" แล้วล้างการเลือก
ตัวแก้ไขโค้ด
ฉันลงชื่อเข้าใช้เครื่องมือแก้ไขโค้ดไม่ได้เนื่องจากระบบแจ้งให้ใช้บัญชีที่ไม่ถูกต้อง
ออกจากระบบ เลือกบัญชีที่ลงทะเบียนเพื่อใช้ Earth Engine ในหน้า "เลือกบัญชี" แล้วเลือกบัญชีเดิมอีกครั้งในหน้า "เลือกบัญชีเพื่อไปยังเครื่องมือแก้ไขโค้ด Earth Engine" หน้า 2 (ข้อความที่ปรากฏอาจแตกต่างออกไป)
ฉันต้องการจับภาพหน้าจอแผนที่โลก แต่ไม่ชอบการฉายภาพ Web Mercator
การฉายแผนที่ที่ใช้ในตัวแก้ไขโค้ดคือ Web Mercator ('EPSG:3857') ซึ่งจะขยายขนาดของวัตถุที่อยู่ห่างจากเส้นศูนย์สูตร ทำให้ภูมิภาคที่มีละติจูดสูงดูใหญ่กว่าที่เป็นจริงมากเมื่อเทียบกับภูมิภาคที่อยู่ใกล้เส้นศูนย์สูตร คุณไม่สามารถเปลี่ยนการฉายภาพในผืนผ้าใบแผนที่ของเครื่องมือแก้ไขโค้ด แต่สามารถ "วาด" รูปภาพในการฉายภาพที่ต้องการลงในผืนผ้าใบ Web Mercator โดยใช้เมธอด ee.Image.changeProj
ดูตัวอย่างการแสดง DEM ทั่วโลกในแผนที่เครื่องมือแก้ไขโค้ดในการฉายภาพ Robinson ได้ที่หน้าอ้างอิง API ของเมธอด
โปรดทราบว่าเทคนิคนี้ควรใช้เพื่อวัตถุประสงค์ในการจําลองภาพเท่านั้น เนื่องจากเครื่องมือตรวจสอบและเครื่องมือวาดของเครื่องมือแก้ไขโค้ดยังคงทํางานใน Web Mercator
สคริปต์ของฉันบันทึกไม่ได้ (Script error: Unknown commit
)
หากได้รับข้อความ Script error: Unknown commit
เมื่อบันทึกสคริปต์ แสดงว่าที่เก็บข้อมูลที่บันทึกไม่ซิงค์
สาเหตุของสถานะนี้อาจแตกต่างกันไปและระบุได้ยาก หากต้องการแก้ไขปัญหานี้ ให้ลองรีเฟรชรายการสคริปต์โดยใช้ปุ่มที่มุมขวาบนของแท็บสคริปต์ หากไม่ได้ผล ให้ลองสร้างที่เก็บข้อมูลใหม่จากปุ่ม "ใหม่" ในแท็บสคริปต์และบันทึกสคริปต์ไว้ในที่เก็บข้อมูลนั้น (คุณอาจต้องย้ายสคริปต์ไปยังที่เก็บข้อมูลใหม่จากที่เก็บข้อมูลที่ไม่ได้ซิงค์)