คำถามทั่วไป
ฉันมีปัญหา ฉันต้องการความช่วยเหลือ
โพสต์คำถามตามคำแนะนำนี้ โดยให้ข้อมูลมากที่สุดเท่าที่จะเป็นไปได้ (ดูคำแนะนำของ 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 ที่มีอิทธิพลส่วนใหญ่จะเห็นพ้องต้องกันว่าไม่จำเป็นต้องมีการแก้ไขสำหรับข้อมูลคอลเล็กชัน 2 ระดับ 2 (การสะท้อนพื้นผิว) ตัวอย่างเช่น ในการตอบคำถามเกี่ยวกับความจำเป็นในการปรับเทียบ Collection 2 ระดับ 2 ไมค์ วูลเดอร์จากทีมวิทยาศาสตร์ 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ที่สามารถต่อกันเป็นภาพโมเสกได้โดยใช้
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 ต่อ" หน้าที่ 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 เมื่อบันทึกสคริปต์
แสดงว่าที่เก็บที่คุณบันทึกอาจไม่ได้ซิงค์
สาเหตุของสถานะนี้อาจแตกต่างกันไปและระบุได้ยาก หากต้องการแก้ไขปัญหา ให้ลองรีเฟรชรายการสคริปต์โดยใช้ปุ่มที่มุมขวาบน
ของแท็บสคริปต์ หากไม่ได้ผล ให้ลองสร้างที่เก็บข้อมูลใหม่จาก
ปุ่มใหม่ในแท็บสคริปต์ แล้วบันทึกสคริปต์ไว้ที่นั่น
(คุณอาจต้องย้ายสคริปต์ไปยังที่เก็บข้อมูลใหม่จากที่เก็บข้อมูลที่ไม่ได้ซิงค์
)