วิธีย้อนกลับระบุตำแหน่งด้วย QGIS


16

ฉันมีแผนที่ที่มีการฉาย "แปลก" (โดยทั่วไปเป็นภาพวาดด้วยมือไม่ใช่ที่แน่นอน) ฉันสามารถระบุตำแหน่งทางภูมิศาสตร์ได้อย่างง่ายดายใน QGIS โดยใช้ปลั๊กอิน Georeferencer และการแปลงแบบบาง Plate Spline พร้อมชุดควบคุม 2000-3000 จุดเป็น WGS 84 แบบง่าย (EPSG: 4326) การฉาย "latlong" และประมวลผล / ปรับปรุงเพิ่มเติมด้วยข้อมูลอื่น ๆ เช่นจาก Natural Earth หรือ OpenStreetMap

ตอนนี้ฉันต้องการทำการผกผัน : แปลงเลเยอร์แรสเตอร์ (หรือเลเยอร์เวกเตอร์เลเยอร์) หนึ่งรายการเหล่านั้นกลับไปเป็นเสมือนฉายภาพวาดด้วยมือโดยใช้จุดควบคุมชุดเดียวกันเพื่อให้ภาพตรงกันเมื่อวางซ้อนใน โปรแกรมแก้ไขกราฟิก ฉันต้องทำอย่างไร?


8
สถานการณ์ที่น่าสนใจ บางทีคุณอาจไม่ได้ทำแผนที่ทางภูมิศาสตร์ด้วยมือเลย ใช้แผนที่ที่วาดด้วยมือเป็น 'ความจริงพื้นดิน' และรับคะแนนการควบคุมของคุณตามระบบพิกัดท้องถิ่น (เช่นมุมบนซ้ายของแผนที่ที่วาดด้วยมือคือ 0,0 และแต่ละพิกเซลเป็นหน่วย) จากนั้น 'georeference' rasters ของคุณไปยังระบบพิกัดในพื้นที่นี้
spatial Thoughts

1
@ ความคิดเชิงลึก: วิธีนี้ใช้ได้กับ rasters ค่อนข้างดี แต่ฉันจะสูญเสียความแม่นยำของเลเยอร์เวกเตอร์และความเป็นไปได้ที่จะทำการคำนวณกับพวกเขา (พื้นที่ของคุณลักษณะความยาวของส่วนและอื่น ๆ ) นั่นไม่ใช่ปัญหาที่ผ่านไม่ได้แน่นอน ความสามารถในการย้อนกลับการประชุมทางภูมิศาสตร์ก็ไม่มีข้อ จำกัด เหล่านั้น
Martin Sojka

@Martin คุณต้องการคำนวณเวกเตอร์ใน WGS84 หรือในพิกัดรูปภาพที่ทาสีด้วยมือหรือไม่? หากก่อนหน้านี้ดูเหมือนว่าคุณจะต้องแปลงเวกเตอร์เป็นพิกัดที่ทาสีด้วยมือโดยสิ้นเชิงแยกจากความต้องการของคุณในการคำนวณเวกเตอร์ - และฉันจะแนะนำข้อเสนอเชิงพื้นที่ครั้งที่สอง หมายความว่าคุณต้องทำงานเหล่านี้ในโครงการ QGIS แยกต่างหาก
Jeff G

1
โดยทั่วไปไม่รับประกันว่าจะมีการผกผันสำหรับการแปลงทั้งหมด ด้วยการแปลงพหุนามหากคุณสามารถรับปลั๊กอินเพื่อบันทึกค่าสัมประสิทธิ์ที่ใช้คุณสามารถคำนวณผกผันทางคณิตศาสตร์ได้ ด้วยแผ่นบางที่โค้งอาจเป็นไปได้เช่นกัน: ฟังก์ชัน GDALCreateTPSTransformer ใช้อาร์กิวเมนต์ "bReversed": gdal.org/gdal__alg_8h.html#a245802b88a8126c138d24febe6c9822a
Jeff G

คำตอบ:


1

หากคุณใช้ ArcGIS คุณจะใช้แถบเครื่องมือการปรับเชิงพื้นที่ อย่างไรก็ตาม QGIS นำเสนอฟังก์ชั่นที่คล้ายกันผ่านทางปลั๊กอิน

ไปที่ตัวจัดการปลั๊กอินและติดตั้ง'Affine Transformations'

ติดตั้ง'Vector Bender' ด้วย

โฮมเพจ: https://github.com/trenneman/qgsAffine ;

https://plugins.qgis.org/plugins/VectorBender/

เนื่องจากคุณมีจุดควบคุมอยู่แล้วคุณควรจะสามารถแปลงข้อมูลของคุณกลับไปเป็น "เส้นโครง" ดั้งเดิมได้ โหลดจุดควบคุมของคุณลงในปลั๊กอินและทำการแปลง ฉันยังไม่ได้ลองเลยดังนั้นคุณอาจต้องเล่นกับจุดควบคุม ปลั๊กอินการแปลงเลียนแบบใช้ค่าคงที่เพื่อทำการแปลง เนื่องจากคุณมีจุดควบคุมอยู่แล้วคุณจะต้องใช้ Vector Bender เพื่อแสดง 'แผ่นยาง'
Vector Bender ไม่ได้อยู่ในที่เก็บปลั๊กอินดังนั้นคุณจะต้องติดตั้งด้วยตนเองโดยเพิ่มลงใน C: \ Users.qgis2 \ python \ plugins \ VectorBender


ตัวเลือกที่สอง (อาจใช้งานได้กับ rasters เท่านั้นไม่ได้ทดสอบกับเวกเตอร์) - ในเครื่องมืออ้างอิงทางภูมิศาสตร์คุณสามารถบันทึกจุดควบคุมของคุณลงในไฟล์ได้ คุณยังสามารถโหลดจุดควบคุมจากไฟล์

นี่คือสิ่งที่คุณต้องทำ:

บันทึกไฟล์ cpg เปลี่ยนนามสกุลเป็น. csv เปิดไฟล์ใน excel สลับค่าในคอลัมน์ถึง / จาก บันทึก เปลี่ยนนามสกุลกลับเป็น. point

เมื่อคุณตั้งค่าจุดควบคุมคุณสามารถเปลี่ยนไปมาโดยใช้จุดควบคุมและวิธีการแปลงที่คุณต้องการ


แถบเครื่องมือการปรับเชิงพื้นที่ไม่ใช่ส่วนหนึ่งของ Arcgis Desktop หรือไม่ ฉันไม่แน่ใจว่ามีบางสิ่งที่คล้ายกันใน QGIS
AndreJ

@AndreJ โปรดดูการแก้ไขของฉัน
jbalk

0

ฉันต้องทำสิ่งนี้ด้วยตัวเองเพียงครั้งเดียวเพื่อเป็นเลเยอร์แรสเตอร์และใช้เวลาสักพักกว่าจะเห็นว่าฉันไม่ต้องการการผกผัน ในการทำให้ภาพตรงกันในการฉายภาพแปลก ๆ ดั้งเดิมให้เขียนสคริปต์เพื่อสร้างตารางในการฉายภาพนั้นซึ่งสอดคล้องกับพิกเซลในโปรแกรมแก้ไขกราฟิกของคุณ แปลงไปข้างหน้าสำหรับแต่ละจุดในตารางเพื่อรับค่าของเลเยอร์ที่คุณมีใน WGS 84 (คล้ายกับความคิดเห็นเชิงพื้นที่ )

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.