Bagaimana cara membalikkan georeferensi dengan QGIS?

16

Saya memiliki peta dengan proyeksi "aneh" (pada dasarnya ini dilukis dengan tangan, bukan yang tepat). Saya dapat dengan mudah melakukan georeferensi di QGIS menggunakan plugin Georeferencer dan transformasi Thin Plate Spline dengan seperangkat beberapa titik kontrol 2000-3000 menjadi WGS 84 sederhana (EPSG: 4326) proyeksi "latlong" dan proses / tingkatkan lebih lanjut dengan data lain, seperti dari Natural Earth atau OpenStreetMap.

Sekarang saya ingin melakukan operasi terbalik : Mengubah salah satu dari lapisan raster (atau lapisan vektor raster) kembali ke proyeksi kuasi yang dilukis dengan tangan, idealnya menggunakan set titik kontrol yang sama, sehingga gambar cocok ketika dilapis dalam seorang editor grafis. Bagaimana saya melakukannya?

Martin Sojka
sumber
8
situasi yang menarik. Mungkin Anda sama sekali tidak melakukan georeferensi peta yang dilukis dengan tangan. Gunakan peta yang dilukis dengan tangan sebagai 'ground-truth' dan dapatkan titik kontrol Anda berdasarkan sistem koordinat lokal (katakanlah, sudut kiri atas peta yang dilukis dengan tangan adalah 0,0 dan setiap piksel adalah satu unit). Lalu 'georeferensi' raster Anda ke sistem koordinat lokal ini.
spatialthoughts
1
@spatialthoughts: Ini akan bekerja untuk raster dengan lebih baik, namun saya juga akan kehilangan ketepatan lapisan vektor dan kemungkinan untuk melakukan perhitungan dengan mereka (area fitur, panjang segmen dan sebagainya). Tentu saja, itu bukan masalah yang tidak dapat diatasi. Mampu membalik georeferensi tidak akan memiliki keterbatasan itu.
Martin Sojka
@ Martin Anda ingin kalkulasi vektor dalam WGS84 atau dalam koordinat gambar yang dilukis dengan tangan? Jika yang pertama, sepertinya Anda perlu mengubah vektor ke koordinat yang dilukis dengan tangan benar-benar terpisah dari kebutuhan Anda untuk melakukan perhitungan pada vektor - dan saya akan saran kedua spatialthoughts '. Artinya Anda perlu melakukan tugas-tugas ini di proyek QGIS yang terpisah.
Jeff G
1
Secara umum itu tidak dijamin bahwa invers ada untuk semua transformasi. Dengan transformasi polinomial, jika Anda bisa mendapatkan plugin untuk mencatat koefisien yang digunakan, Anda bisa menghitung invers secara matematis. Dengan spline pelat tipis, mungkin invers juga dimungkinkan: fungsi GDALCreateTPSTransformer mengambil argumen "bReversed": gdal.org/gdal__alg_8h.html#a245802b88a8126c138d24febe6c9822a
Jeff G

Jawaban:

1

Jika Anda menggunakan ArcGIS, Anda menggunakan toolbar penyesuaian spasial. Namun, QGIS menawarkan fungsionalitas serupa melalui plugin.

Buka pengelola plugin dan instal 'Affine Transformations'

Juga instal 'Vector Bender'

Beranda: https://github.com/trenneman/qgsAffine ;

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

Karena Anda sudah memiliki titik kontrol, Anda harus dapat mengubah data Anda kembali ke "proyeksi" asli. Muat titik kontrol Anda ke dalam plugin dan lakukan transformasi. Saya belum mencoba ini sehingga Anda mungkin harus bermain dengan poin kontrol. Plugin affine transformations menggunakan konstanta untuk melakukan transformasi. Karena Anda sudah memiliki titik kontrol, Anda ingin menggunakan penyok vektor untuk melakukan 'lembaran karet'.
Penyok vektor tidak ada dalam repositori plugin, jadi Anda harus menginstalnya secara manual dengan menambahkannya ke C: \ Users.qgis2 \ python \ plugins \ VectorBender.


Opsi kedua (mungkin hanya berfungsi untuk raster, belum diuji dengan vektor) - Di georeferencer, Anda dapat menyimpan titik kontrol ke file. Anda juga dapat memuat titik kontrol dari file.

Inilah yang perlu Anda lakukan:

Simpan file cpg. Ubah ekstensi menjadi .csv. Buka file dalam excel. Tukar nilai dalam kolom ke / dari. Menyimpan. Ubah kembali ekstensi ke .points.

Setelah Anda mengatur titik kontrol, Anda dapat bertransformasi bolak-balik menggunakan titik kontrol dan metode transformasi pilihan Anda.

jbalk
sumber
Bukankah bagian toolbar penyesuaian spasial dari Arcgis Desktop? Saya tidak yakin ada sesuatu yang serupa di QGIS.
AndreJ
@AndreJ Silakan lihat suntingan saya.
jbalk
0

Saya harus melakukan ini sendiri sekali untuk layer raster dan butuh beberapa saat untuk melihat bahwa saya tidak perlu kebalikannya. Untuk membuat gambar cocok dengan proyeksi aneh asli, tulis skrip untuk membuat kisi dalam proyeksi itu, yang sesuai dengan piksel pada editor grafis Anda. Ubah ke depan untuk setiap titik di grid untuk mengambil nilai layer yang Anda miliki di WGS 84. (mirip dengan komentar spatialthoughts )

Nick Mulgan
sumber