คำถามทั่วไป
ฉันมีปัญหา ฉันต้องการความช่วยเหลือ
โพสต์คำถามตามคำแนะนำนี้ โดยให้ข้อมูลมากที่สุดเท่าที่จะเป็นไปได้ (ดูคำแนะนำของ Stack Overflow เกี่ยวกับการถามคำถามที่ดี) ซึ่งมักหมายความว่า
การส่งลิงก์ไปยังสคริปต์ในเครื่องมือแก้ไขโค้ด (คลิกปุ่ม "รับลิงก์" เพื่อรับลิงก์)
การแชร์ชิ้นงาน ที่จำเป็นต่อการเรียกใช้สคริปต์
สำหรับงานแบบกลุ่มที่ไม่สำเร็จ ให้รายงานรหัสของงานที่ไม่สำเร็จ รหัสงานจะมีลักษณะ ดังนี้
4C25GIJBMB52PXTEJTF4JLGLโดยจะอยู่ในแท็บงานของ เครื่องมือแก้ไขโค้ด ดูข้อมูลเพิ่มเติม
ฉันจะอ่านเกี่ยวกับสถาปัตยกรรมของ Earth Engine ได้จากที่ใด
ดูเอกสารนี้ Gorelick et al. 2017
มีบทแนะนำ Earth Engine ที่แนะนำซึ่งไม่ได้สร้างโดย Google ไหม
ดูหน้าEDU และ แหล่งข้อมูลการฝึกอบรม
มีบทแนะนำการรับรู้จากระยะไกลที่แนะนำไหม
ดูหลักสูตร EE ฟรีนี้ โดย Ujaval Gandhi ซึ่งมีวิดีโอที่แนะนำการรับรู้จากระยะไกล
การเขียนโปรแกรม Earth Engine
ข้อผิดพลาดในการเขียนโค้ดที่พบบ่อยมีอะไรบ้าง
เหตุใดฉันจึงได้รับข้อผิดพลาด "... ไม่ใช่ฟังก์ชัน"
ข้อผิดพลาดนี้เกิดขึ้นเมื่อ Earth Engine ไม่พบเมธอดที่เรียกใช้ โปรดตรวจสอบสาเหตุที่พบบ่อยต่อไปนี้
การสะกดคำหรือการคำนึงถึงตัวพิมพ์เล็กและตัวพิมพ์ใหญ่: เมธอดคำนึงถึงตัวพิมพ์เล็กและตัวพิมพ์ใหญ่ ตรวจสอบ การสะกดคำกับเอกสารอ้างอิง API
Error: img.normalizedDiff(...) -> Correct: img.normalizedDifference(...)
การแคสต์ประเภทที่ขาดหายไป: ค่าที่ส่งคืนจากฟังก์ชันต่างๆ เช่น .get() เป็นอินสแตนซ์ ee.ComputedObject ทั่วไปและต้องแคสต์อย่างชัดเจน ดูการแคสต์ประเภทออบเจ็กต์ที่ไม่รู้จัก
Error: dict.get('val').add(5) -> Correct: ee.Number(dict.get('val')).add(5)
การใช้ทั้งเมธอดฝั่งไคลเอ็นต์และฝั่งเซิร์ฟเวอร์: ตรวจสอบว่าคุณไม่ได้ใช้เมธอด JavaScript หรือ Python มาตรฐาน (เช่น .push() หรือ .append()) ในออบเจ็กต์ Earth Engine
ดูหลีกเลี่ยงการใช้ฟังก์ชันฝั่งไคลเอ็นต์และฝั่งเซิร์ฟเวอร์ร่วมกัน
Error: list.push(4) or list.append(4) -> Correct: list.add(4)
วิธีการที่ไม่พร้อมใช้งาน: หากมีการพิมพ์ออบเจ็กต์อย่างถูกต้องและวิธีการ มีอยู่ในเอกสารประกอบหรือเคยใช้งานได้แต่ตอนนี้ใช้งานไม่ได้ โปรดรายงานข้อบกพร่อง
ทำไมฉันจึงใช้คณิตศาสตร์พื้นฐาน เช่น ee.Image("image") * 2 ไม่ได้
ใน EE คุณไม่ควรผสมออบเจ็กต์หรือการดำเนินการฝั่งเซิร์ฟเวอร์และฝั่งไคลเอ็นต์ การดำเนินการทั้งหมดในออบเจ็กต์ EE จะดำเนินการฝั่งเซิร์ฟเวอร์ การคำนวณฝั่งไคลเอ็นต์ จะไม่ทำงานตามที่คุณต้องการ โปรดดูรายละเอียดเพิ่มเติมที่หน้านี้
ฉันจะใช้ลูป for หรือคำสั่ง 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 ไม่ได้สร้าง SR ของ Sentinel-2 (ข้อมูลระดับ 2) สำหรับฉากระดับ 1 ในช่วงแรก
Landsat ไม่มีภาพทั่วโลกก่อนปี 2000
ชุดข้อมูลที่มีอยู่มีค่าที่ไม่ถูกต้อง
โพสต์ในฟอรัมนักพัฒนาแอป ใส่สคริปต์ที่ซูมเข้าความละเอียดเดิมของชิ้นงานและทำให้เห็นค่าที่ไม่ถูกต้องอย่างชัดเจน อธิบายว่าคุณสังเกตเห็น มูลค่าทางเลือกที่ใด
ฉันจะถามเกี่ยวกับชุดข้อมูลได้จากที่ใดอีก
หากมีคำถามเกี่ยวกับชุดข้อมูลของ NASA โปรดดูฟอรัมข้อมูลโลกของ NASA
หากมีคำถามเกี่ยวกับกล่องเครื่องมือที่ทำงานในชุดข้อมูลโคเปอร์นิคัส โปรดดูฟอรัมของ S1 S2 และ S3
แคตตาล็อกของ EE มีขนาดเท่าใด
ณ เดือนตุลาคม 2023 แคตตาล็อกมีชุดข้อมูลกว่า 1, 000 ชุด มีขนาดบนดิสก์ มากกว่า 90 เพตะไบต์ (หลังจากพิจารณาการบีบอัดแบบไม่สูญเสียข้อมูล)
ข้อมูลใน EE ได้รับการอัปเดตบ่อยเพียงใด
โดยปกติแล้ว ชุดข้อมูลที่ใช้งานอยู่ทั้งหมดจะได้รับการอัปเดตอย่างน้อยวันละครั้ง (แม้ว่าชุดข้อมูลดังกล่าวบางชุดอาจไม่มีข้อมูลใหม่ทุกวัน) ชุดข้อมูลบางชุดจะอัปเดตวันละหลายครั้ง อย่างไรก็ตาม ไม่มีนโยบายที่รับประกันว่าจะมีเนื้อหาล่าสุดในแคตตาล็อก
ฉันจะดูเนื้อหาในแคตตาล็อก EE โดยใช้โปรแกรมได้อย่างไร
ระบบจะส่งออกรายการชุดข้อมูลในรูปแบบ STAC ไปยัง
Bucket ของ 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 (การสะท้อนพื้นผิว) มีแถบคุณภาพหลายแถบที่ ใช้เพื่อมาสก์เมฆและอาร์ติแฟกต์ของรูปภาพอื่นๆ ที่ไม่ต้องการได้ ตัวอย่าง การใช้แถบเหล่านี้เพื่อประมวลผลรูปภาพ SR ของ Landsat 8 และสร้าง คอมโพสิตที่ไม่มีเมฆตรงกลางมีอยู่ใน โพสต์ GIS Stack Exchange นี้ เราใช้ขั้นตอนเดียวกันนี้เพื่อสร้างคอมโพสิตที่ไม่มีเมฆเพื่อใช้ใน ตัวอย่างการจัดประเภทภายใต้การควบคุมใน คู่มือนักพัฒนาซอฟต์แวร์
จำเป็นต้องมีการปรับการสะท้อนพื้นผิวของ Landsat จากเซ็นเซอร์ต่างๆ ให้สอดคล้องกันไหม
Roy และคณะ 2016 มีการวิเคราะห์ความแตกต่างของการสะท้อนระหว่าง TOA ของ Landsat 7-8 กับการสะท้อนพื้นผิว โดยได้เผยแพร่สัมประสิทธิ์ OLS และ RMA เพื่อให้ผู้อ่านสามารถ แปลงค่าการสะท้อนแสงของข้อมูลจากเซ็นเซอร์หนึ่งไปยังอีกเซ็นเซอร์หนึ่งได้ บรรทัดสุดท้าย ของเอกสารระบุว่า "แม้ว่าความแตกต่างของเซ็นเซอร์จะน้อยมาก แต่ก็อาจส่งผล อย่างมากโดยขึ้นอยู่กับการใช้งานข้อมูล Landsat" อย่างไรก็ตาม การวิเคราะห์นี้อิงตามข้อมูลก่อนการเก็บรวบรวม
การปรับปรุงที่ดำเนินการในระหว่างการประมวลผลซ้ำของคอลเล็กชัน 1 และคอลเล็กชัน 2 อาจ ส่งผลต่อความสัมพันธ์ระหว่างเซ็นเซอร์ แต่เท่าที่ทราบมายังไม่มีการวิเคราะห์ใดๆ ที่คล้ายกับ Roy และคณะ (2016) สำหรับข้อมูลคอลเล็กชัน 1 หรือคอลเล็กชัน 2 แม้จะไม่มีการวิเคราะห์อย่างเป็นทางการ แต่ดูเหมือนว่าผู้ใช้ Landsat ที่มีอิทธิพลส่วนใหญ่จะเห็นพ้องต้องกันว่าไม่จำเป็นต้องมีการแก้ไขข้อมูล Collection 2 ระดับ 2 (การสะท้อนพื้นผิว) ตัวอย่างเช่น ในการตอบคำถามเกี่ยวกับความจำเป็นของ Collection 2, Level 2 harmonization, Mike Wulder จากทีมวิทยาศาสตร์ Landsat ได้กล่าวว่าผลิตภัณฑ์การสะท้อนพื้นผิวของ Collection 2 มีความเหมาะสมและเชื่อถือได้สูงโดยไม่ต้องปรับเซ็นเซอร์ข้าม ทั้งนี้ขึ้นอยู่กับลักษณะของแอปพลิเคชันที่สนใจ (รวมถึงการทำแผนที่การปกคลุมของพื้นดินและการตรวจหาการเปลี่ยนแปลง)
ฉันจะมาสก์เมฆและเงาเมฆในภาพ MSS ได้อย่างไร
โมดูล msslib ของบุคคลที่สาม สำหรับตัวแก้ไขโค้ด JavaScript มีการติดตั้งใช้งาน อัลกอริทึม MSScvm รวมถึงฟังก์ชันอื่นๆ ที่มีประโยชน์สำหรับการสำรวจและเตรียมข้อมูล MSS
การจัดการข้อมูล
ใครเป็นเจ้าของข้อมูลที่ฉันอัปโหลด
ตามข้อกำหนดในการให้บริการของ Earth Engine ลูกค้าเป็นเจ้าของข้อมูลที่อัปโหลดไปยัง Earth Engine
ฉันอัปโหลดข้อมูลไม่ได้
ตรวจสอบสถานะของงานอัปโหลดในแผงงานที่มุมขวาบนของโปรแกรมแก้ไขโค้ด นอกจากนี้ คุณยังดูหน้างานเฉพาะได้ด้วย
หากไม่มีงานแสดงว่าคุณอาจพยายามอัปโหลดไฟล์ผ่าน Code Editor แต่เนื่องจากปัญหาเกี่ยวกับเครือข่าย ไฟล์จึงอัปโหลดไม่สำเร็จ ระบบจึงไม่สร้างงานดังกล่าว ลองใช้เบราว์เซอร์อื่นหรือคอมพิวเตอร์เครื่องอื่น
หากมีงานที่ไม่สำเร็จ ให้ตรวจสอบข้อผิดพลาดที่แสดง หากไม่มีข้อความแสดงข้อผิดพลาดที่เฉพาะเจาะจง ให้ตรวจสอบก่อนว่าไฟล์ไม่เสียหายโดยการเรียกใช้
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) ให้ตั้งค่าสถานะ --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 หรืออัปโหลดหลายไฟล์พร้อมกัน
ใช้การอัปโหลดผ่านบรรทัดคำสั่ง การอัปโหลดดังกล่าวต้องวางไฟล์ต้นฉบับไว้ใน Bucket ของ GCS (Google Cloud Storage) ก่อน การใช้งาน GCS จะไม่มีค่าใช้จ่ายหากคุณอยู่ภายในขีดจำกัดของระดับฟรี โปรดดูหน้าการกำหนดราคา
ฉันต้องการอัปโหลดโมเสกแรสเตอร์ขนาดใหญ่ที่แยกออกเป็นหลายไทล์
หากไฟล์ทั้งหมดมีระบบการฉายภาพและขนาดพิกเซลเหมือนกัน ให้อัปโหลดไฟล์เหล่านั้นพร้อมกันลงในชิ้นงานเดียวกัน ระบบจะต่อภาพเหล่านั้นโดยอัตโนมัติ
หากไฟล์มีรูปแบบการฉายภาพหรือขนาดพิกเซลต่างกัน จะต่อกันเป็นชิ้นงานแรสเตอร์เดียวไม่ได้
แต่คุณต้องอัปโหลดแต่ละไทล์เป็นชิ้นงานแยกต่างหากในImageCollectionเดียวกันซึ่งต่อกันได้โดยใช้
ImageCollection.mosaic()
ฉันพยายามอัปโหลดโมเสกและได้รับข้อผิดพลาดเกี่ยวกับไทล์ที่ไม่ตรงกัน
ไทล์สำหรับโมเสกแรสเตอร์ของ Earth Engine ต้องมีการฉายภาพและขนาดพิกเซลเดียวกัน นอกจากนี้ ไทล์ต้องอยู่ในแนวเดียวกันกับขอบเขตของพิกเซล
ฉันพยายามอัปโหลดไฟล์จาก Bucket ของ GCS แต่ Earth Engine หาไม่พบ
คุณอาจใช้บัญชี Google อื่นสำหรับการอัปโหลด GCS และสำหรับการเชื่อมต่อกับ Earth Engine ตรวจสอบว่าบัญชีที่คุณใช้เชื่อมต่อกับ Earth Engine อ่านไฟล์ GCS ได้ หากการเข้าสู่ระบบหลายบัญชีในเบราว์เซอร์ทำให้เกิดความสับสน ให้เชื่อมต่อกับ Earth Engine ในหน้าต่างเบราว์เซอร์ที่ไม่ระบุตัวตน
ฉันต้องการส่งออกชิ้นงานหลายรายการพร้อมกัน
คุณต้องส่งออกรูปภาพแต่ละรูปแยกกัน
ฉันต้องการย้ายหรือลบFolderหรือImageCollectionด้วยคำสั่งเดียว
คุณต้องย้าย หรือลบ ชิ้นงานแต่ละรายการก่อน จากนั้นจึงย้ายหรือลบโฟลเดอร์หรือคอลเล็กชันหลัก หากมี ชิ้นงานย่อยจำนวนมาก ให้เขียนเชลล์หรือลูป Python เพื่อวนซ้ำชิ้นงานเหล่านั้น
ฉันต้องการเข้าถึงข้อมูล Earth Engine จากภายนอก EE โดยตรง
QGIS มีปลั๊กอิน Earth Engine
GDAL มีไดรเวอร์ Earth Engine
ระบบอื่นๆ สามารถใช้ REST API ของ EE ได้
ฉันต้องการอัปเดตส่วนหนึ่งของเนื้อหา Earth Engine โดยไม่ต้องนำเข้าอีกครั้งทั้งหมด
คุณจะอัปเดตข้อมูลแรสเตอร์หรือเวกเตอร์ที่อัปโหลดลงใน EE ไม่ได้ อัปเดตได้เฉพาะพร็อพเพอร์ตี้ข้อมูลเมตาของเนื้อหา
ฉันกำลังจะเสียสิทธิ์เข้าถึงบัญชี ฉันควรทำอย่างไรกับชิ้นงาน
หากนโยบายของบัญชีเดิมอนุญาตให้โอนข้อมูลได้ โปรดแชร์ชิ้นงานกับบัญชีอื่น แล้วคัดลอกชิ้นงานเพื่อให้บัญชีใหม่เป็นเจ้าของ ใช้ยูทิลิตีการคัดลอกบรรทัดคำสั่ง หากมีชิ้นงานจำนวนมากที่ต้องย้าย
หากมีการลบบัญชี คุณจะเข้าถึงชิ้นงานที่เป็นของบัญชีนั้นไม่ได้อีกต่อไป
รูปภาพที่ส่งออกอยู่ผิดที่
สำหรับการฉายภาพบางอย่าง เช่น ไซนูซอยดัลหรือโคนิก บางครั้งไฟล์ GeoTIFF จะ จัดเก็บพารามิเตอร์การฉายภาพที่จำเป็นทั้งหมดไม่ได้ ซึ่งส่งผลให้ ไฟล์ที่ส่งออกปรากฏในตำแหน่งที่ไม่ถูกต้องเมื่อดูในเครื่องมือ GIS บนเดสก์ท็อป หรือนำเข้ากลับไปใน EE
หากต้องการแก้ไขปัญหานี้ ให้ระบุพารามิเตอร์ crs การส่งออกที่ทราบว่าทำงานได้ดี
กับไฟล์ GeoTIFF เช่น ใช้รหัส EPSG สำหรับโซน UTM
ที่มีพื้นที่ที่คุณสนใจ
ฉันควรใช้ตำแหน่ง Bucket ของ Cloud Storage ใดเพื่อจัดเก็บชิ้นงาน COG
คำตอบขึ้นอยู่กับสิ่งที่คุณพยายามเพิ่มประสิทธิภาพ หากคุณกำลังเพิ่มประสิทธิภาพ เพื่อการเข้าถึงการคำนวณที่มีเวลาในการตอบสนองต่ำ ตำแหน่ง Bucket ของ GCS ที่ดีที่สุดในการจัดเก็บชิ้นงาน COG คือ US-CENTRAL* ดูข้อมูลเกี่ยวกับข้อควรพิจารณาอื่นๆ ได้ที่หน้าตำแหน่งของ Bucket
ชิ้นงานคอลเล็กชันฟีเจอร์ที่ส่งออกไม่เก็บพร็อพเพอร์ตี้ที่ฉันตั้งค่าไว้
ไม่มีฟังก์ชัน Export.table.* ที่จะรักษาพร็อพเพอร์ตี้ระดับตารางในเอาต์พุต
รูปแบบเอาต์พุตหลายรูปแบบ (เช่น CSV, GeoJSON) ไม่รองรับ
ข้อมูลเมตาดังกล่าว ฟังก์ชัน Export.table.toAsset อาจรองรับพร็อพเพอร์ตี้ระดับตาราง
แต่ยังไม่รองรับในขณะนี้
ตารางที่ส่งออกไปยังไดรฟ์เป็นรูปแบบ CSV จะได้รับการแปลงเป็นรูปแบบ XLSX
ตาราง CSV ที่คุณส่งออกจาก Earth Engine อาจแปลงเป็นไฟล์ XLSX โดยไม่ตั้งใจได้ เช่น การแปลงประเภทข้อมูล ทั้งนี้ขึ้นอยู่กับการตั้งค่า Google ไดรฟ์ ทำตามขั้นตอนต่อไปนี้เพื่อแก้ไขลักษณะการทำงานสำหรับการส่งออกครั้งต่อๆ ไป
- ใน Google ไดรฟ์บนเว็บ ให้คลิกฟันเฟืองการตั้งค่าที่ด้านขวาบน
- คลิกการตั้งค่า
- เลื่อนไปที่ "แปลงไฟล์ที่อัปโหลดเป็นรูปแบบเครื่องมือแก้ไข Google เอกสาร" แล้วล้างตัวเลือกนี้
ตัวแก้ไขโค้ด
ฉันลงชื่อเข้าใช้ตัวแก้ไขโค้ดไม่ได้เนื่องจากระบบแจ้งให้ฉันใช้บัญชีที่ไม่ถูกต้อง
ออกจากระบบ เลือกบัญชี ที่ลงทะเบียนเพื่อใช้ Earth Engine ในหน้า "เลือกบัญชี" แล้ว เลือกบัญชีเดียวกันอีกครั้งในหน้า "เลือกบัญชีเพื่อไปยัง Earth Engine Code Editor ต่อ" หน้าที่ 2 (ข้อความอาจแตกต่างกัน)
ฉันต้องการถ่ายภาพหน้าจอแผนที่โลก แต่ไม่ชอบการฉายภาพแบบ Web Mercator
การฉายแผนที่ที่ใช้ในโปรแกรมแก้ไขโค้ดคือ
Web Mercator
('EPSG:3857') โดยจะขยายขนาดของวัตถุที่อยู่ห่างจากเส้นศูนย์สูตร ทำให้ภูมิภาคที่ละติจูดสูงดูใหญ่กว่าที่เป็นจริงมาก เมื่อเทียบกับภูมิภาคที่อยู่ใกล้เส้นศูนย์สูตร คุณเปลี่ยนการฉายภาพของ Canvas แผนที่ใน
โปรแกรมแก้ไขโค้ดไม่ได้ แต่สามารถ "วาด" รูปภาพในการฉายภาพที่คุณเลือกไปยัง Canvas ของ Web Mercator ได้โดยใช้เมธอด ee.Image.changeProj
ดูตัวอย่างการแสดง DEM ทั่วโลกในแผนที่ตัวแก้ไขโค้ดในเอกสารอ้างอิง API ของเมธอด สำหรับการฉายภาพแบบโรบินสัน
โปรดทราบว่าเทคนิคนี้ควรใช้เพื่อวัตถุประสงค์ในการแสดงภาพเท่านั้น เนื่องจากเครื่องมือตรวจสอบและเครื่องมือวาดของเครื่องมือแก้ไขโค้ดยังคงทำงานใน Web Mercator
สคริปต์ของฉันไม่บันทึก (Script error: Unknown commit)
หากได้รับScript error: Unknown commitข้อความเมื่อบันทึกสคริปต์
แสดงว่าที่เก็บที่คุณบันทึกอาจไม่ได้ซิงค์
สาเหตุของสถานะนี้อาจแตกต่างกันไปและระบุได้ยาก หากต้องการแก้ไขปัญหา
ให้ลองรีเฟรชรายการสคริปต์โดยใช้ปุ่มที่มุมขวาบน
ของแท็บสคริปต์ หากไม่ได้ผล ให้ลองสร้างที่เก็บใหม่จาก
ปุ่มใหม่ในแท็บสคริปต์ แล้วบันทึกสคริปต์ที่นั่น
(คุณอาจต้องย้ายสคริปต์ไปยังที่เก็บใหม่จากที่เก็บที่ไม่ได้ซิงค์
)
เหตุใดฉันจึงเห็นข้อผิดพลาด 400 ซ้ำๆ ในตัวแก้ไขโค้ด
หากคุณเห็นข้อผิดพลาด 400 ซ้ำๆ ในโปรแกรมแก้ไขโค้ด ให้ไปที่ https://myaccount.google.com/connections ค้นหา "โปรแกรมแก้ไขโค้ดของ Earth Engine" ในรายการแอปและบริการ เลือก แล้ว เลือก "ลบการเชื่อมต่อทั้งหมดที่คุณมีกับโปรแกรมแก้ไขโค้ดของ Earth Engine" และ ยืนยัน จากนั้นเปิดเครื่องมือแก้ไขโค้ดและตรวจสอบสิทธิ์อีกครั้ง