Meningkatkan hasil Georeferencing? [Tutup]

13

Latar Belakang Ini adalah pertanyaan kedua saya terkait dengan georeferensi peta raster telanjang untuk memvisualisasikannya kembali pada sistem koordinat yang berbeda dan dalam hubungannya dengan lapisan data lainnya. Pertanyaan sebelumnya adalah di Konversi gambar peta meta-data-bebas sewenang-wenang ke proyek QGIS

Masalah Tujuan saya adalah melakukan georeferensi peta ini:

Stepa Eurasia, Encyc.  Brit.?

Ini bukan Plate-Carrée. Jadi di QGIS, saya membuat beberapa titik kontrol yang masuk akal, yang untuk kelengkapan saya lampirkan di bagian bawah [ref: 1]. Saya memberikan QGIS Georeferencer target SRS yang sama dengan file proyek saya, EPSG: 4326. Saya mendapatkan hasil yang sangat buruk dengan Helmert dan transformasi polinomial tetapi mendapatkan gambar yang masuk akal dengan spline pelat tipis (yang membuat geoestimate yang dihasilkan melewati titik kontrol saya). Namun, bahkan hasil ini buruk, misalnya di garis lintang yang lebih tinggi (lihat pantai Rusia di utara Jepang). Ini adalah tangkapan layar layar QGIS saya menggunakan latar belakang Natural Earth.

Hasil georeferensi QGIS, spline pelat tipis

Jalur alternatif Saya mencoba latihan serupa dengan alat yang jauh lebih mudah digunakan di MapWarper: lihat hasil dan titik kontrol di http://mapwarper.net/maps/758#Preview_Map_tab di mana saya mendapatkan hasil yang lebih buruk (mungkin karena fakta bahwa saya menambahkan lebih sedikit poin kontrol).

Singkatnya pertanyaan

  1. Apakah ada trik yang saya lewatkan untuk mendapatkan georeferensi yang baik?
  2. Apakah proyeksi ini langsung dikenali?
  3. Pada Sistem Koordinat Tidak Dikenal pada gambar lama , gdaltransformdisarankan untuk mengubah beberapa titik koordinat menjadi beberapa SRS target, dengan tujuan untuk benar-benar mengungkap parameter proyeksi yang digunakan untuk menghasilkan peta asli. Saya mencoba sesuatu seperti ini: setelah menyimpan daftar poin QGIS saya, saya melakukan beberapa pemrosesan string untuk mendapatkan daftar panjang / lat yang dipisahkan oleh ruang melalui cat eurasian-steppe-gcp.points | tail -n+2 | cut -d, -f1-2 | sed 's/,/ /'> tmp.txtdan memasukkan file yang dihasilkan ke dalam gdaltransform: gdaltransform -s_srs EPSG:3785 -t_srs EPSG:4326 < tmp.txtdan mengganti s_srsdant_srsbendera (proyek menggunakan EPSG: 4326). Saya tahu saya menembak dalam kegelapan, berharap untuk beruntung, jadi saya tidak terkejut ketika saya tidak bisa memahami hasilnya. Dapatkah seseorang memperluas tentang bagaimana saya akan menggunakan metode ini untuk menemukan perkiraan terbaik dari parameter proyeksi dan proyeksi peta sumber? Pemikiran saya di balik ini adalah bahwa daripada mengacaukan dengan menempatkan banyak titik kontrol untuk georeferensi yang baik, mungkinkah lebih mudah untuk mendapatkan georeferensi yang hampir sempurna dengan titik kontrol yang lebih sedikit, hanya mengulang-ulang semua sistem koordinat yang umum? Apakah ini melibatkan validasi silang dari setiap poin terhadap yang lainnya, untuk setiap CRS yang diuji?

Saya ingin mendapatkan pemahaman tentang algoritma ini atau georeferensi sehingga saya dapat mengotomatiskan proses --- Saya mengalami masalah ini setiap saat, dan sampai pembuat konten berhenti memperlakukan peta mereka sebagai kreasi satu kali tidak pernah terintegrasi dengan konten lain, saya tidak berharap untuk berhenti.

Referensi

[ref: 1] File QGIS GCP:

mapX,mapY,pixelX,pixelY,enable
142.632649100000009,54.453595900000003,505.941176470588232,-95.220588235293974,1
154.934252200000003,59.559921699999997,536.411764705882206,-52.779411764705742,1
80.080158100000006,9.657192300000000,291.558823529411711,-322.661764705882206,1
10.448442600000000,57.819128900000003,21.676470588235190,-103.926470588235134,1
34.007173000000002,27.761438299999998,101.117647058823422,-244.852941176470466,1
50.950890399999999,11.862196600000001,171.852941176470495,-313.955882352941046,1
29.713217199999999,60.024133200000001,90.779411764705799,-92.499999999999829,1
60.000000000000000,0.000000000000000,208.308823529411683,-362.382352941176350,1
69.867506500000005,66.639146199999999,224.088235294117567,-33.191176470588061,1
27.276107100000001,71.049154799999997,89.147058823529306,-21.764705882352814,1
140.000000000000000,0.000000000000000,536.955882352941217,-362.926470588235190,1
20.000000000000000,0.000000000000000,43.441176470588132,-362.926470588235190,1
20.196882700000000,31.243024100000000,47.249999999999901,-231.794117647058698,1
9.171861099999999,42.848309999999998,8.073529411764603,-175.205882352941046,1
131.955786100000012,43.196468600000003,481.999999999999943,-162.691176470588090,1
73.813303700000006,45.169367200000003,256.735294117646959,-161.602941176470438,1
50.602731800000001,44.589102900000000,168.044117647058727,-167.588235294117510,1
121.394975900000006,18.941421099999999,455.882352941176407,-284.029411764705742,1
103.987047000000004,1.417439300000000,389.499999999999943,-357.485294117646959,1
109.325478599999997,55.962283100000001,380.249999999999943,-98.485294117646902,1
31.454010100000001,46.562001500000001,95.132352941176379,-158.882352941176322,1
43.639560299999999,68.844150499999998,137.573529411764611,-40.264705882352814,1

Tidak diperbarui

Analisis van der Grinten Saya menulis alat Python agar sesuai dengan GCP untuk setiap proyeksi yang didukung Proj4 (melalui Pyproj) dan menerapkannya pada beberapa proyeksi yang disarankan dalam jawaban. Kode sumber (agak ceroboh, saya mohon maaf sebelumnya) serta GCP yang diperbarui tersedia di https://github.com/fasiha/steppe-map

Van der Grinten hanya memiliki 1 parameter untuk disetel, dan inilah gambar yang dihasilkan (menggunakan gambar terbaru dari Britannica, terima kasih banyak kepada mereka karena telah memberikan peta beresolusi tinggi dan diperbarui (walaupun masih kekurangan data proyeksi)).

Van der Grinten cocok

Van der Grinten memiliki kesalahan relatif 0,035 antara GCP dan poin paling cocok, yang merupakan yang terburuk dari kelompok yang saya coba, dan overlay garis pantai menghasilkan yang secara kualitatif.

(Ini dapat membantu jika Anda membuka gambar ini di tabnya sendiri, itu cukup beresolusi tinggi. Anda juga akan melihat panah hijau yang menunjukkan titik georeferensi (mereka harus cocok dengan tengara signifikan pada gambar) serta panah merah yang menunjukkan di mana titik-titik tersebut dipasang ke (mereka harus cocok dengan tengara yang sama pada overlay garis pantai) --- penyimpangan antara keduanya dapat membantu mata melihat perbedaan antara gambar dan fit.)

Analisis Albers equal-area Mencoba hal yang sama dengan proyeksi Albers equal-area (yang sama dengan "Albers konformal Conic"? Maaf atas ketidaktahuan saya). Kesesuaian ini, yang melibatkan kesesuaian parameter 4 dimensi, lebih baik, dengan kesalahan relatif 0,025, tetapi tetap terlihat sangat buruk.

Albers sama dengan luas area

Analisis proyeksi Robinson dan Eckert V saya cocok dengan sejumlah proyeksi pseudocylindrical yang didukung oleh Pyproj (semua yang dapat saya temukan yang memiliki satu parameter bebas) dan menemukan bahwa proyeksi Robinson dan Eckert V melakukan yang terbaik dalam hal kesalahan relatif antara GCP dan poin yang dipasang, keduanya dengan kesalahan relatif 0,015.

Inilah Robinson:

Robinson bugar

Dan inilah Eckert V.

Eckert V cocok

Perhatikan penyimpangan garis pantai pas dari garis pantai gambar. Saya pikir dengan ini saya dapat menyimpulkan bahwa peta tidak ada di atas?

Winkel tripel: solusi yang mungkin?

Setelah secara berurutan mencoba setiap proyeksi dalam manual Proj ini dari tahun 1990 (diperbarui 2003) ftp://ftp.remotesensing.org/proj/OF90-284.pdf Saya akhirnya datang ke proyeksi tripel Winkel. Ini menghasilkan kesalahan kuantitatif terendah (0,011) dan garis pantai secara seragam cukup baik (atau setara, seragam sedikit buruk). Saya membaca bahwa ini adalah proyeksi National Geographic Society, yang artinya terkenal, dan ini menambah bobot bagi pencalonan proyeksi ini untuk peta Britannica. The dilengkapi SRS: +units=m +lon_0=47.0257707403 +proj=wintri.

Tripel Winkel pas

(Permintaan maaf untuk mengubah warna garis pantai menjadi abu-abu. Jika ini menyinggung siapa pun, saya dapat menghasilkan versi biru.)

Saya akan mencoba untuk mengubah GCP saya untuk mencoba dan mendorong kesalahan lebih rendah.

Ahmed Fasih
sumber
Itu harus menjadi proyeksi Mercator (paralelnya tidak sama).
bhell
1
Saya salah: Mercator tentu saja harus memiliki meridian paralel. Mungkin van der Grinten ?
bhell
Sudahkah Anda mencoba menambahkan beberapa titik kontrol di ujung utara? Setiap tempat lain terlihat baik-baik saja tetapi tampaknya ada beberapa informasi yang hilang.
underdark
1
@ James Van der Grinten adalah tebakan yang sangat baik, tetapi itu tidak cocok. Proyeksi ini tampaknya sama dengan pada peta ini (yang menggunakan graticule), juga dibuat baru-baru ini oleh Encyclopedia Britannica. Ini semacam proyeksi polikonik semu dalam aspek ekuatorial yang berpusat di Prime Meridian, tetapi saya tidak mengenalinya. Bertanya di Encyclopedia Britannica adalah ide yang bagus.
whuber
2
Ah, jadi gambar tidak dapat dikonversi menjadi proyeksi Van der Grinten (yang saya kenal karena digunakan dalam peta 'terbalik' di dinding saya :) melalui transformasi affine. Senang mendengarnya!
Ahmed Fasih

Jawaban:

3

Dari analisis pertama, kita dapat melihat bahwa hanya garis khatulistiwa dan meridian pusat (melewati kira-kira melalui Moskow, sekitar 37,36 E bujur) adalah garis lurus, sedangkan semua paralel dan meridian lainnya adalah garis kurva. Di antara proyeksi global, fitur-fitur ini menyarankan untuk mencoba yang Van der Grinten (seperti yang dilakukan bhell dalam komentar pertanyaan), yaitu proyeksi peta dunia standar dari National Geographic Society.

Jadi saya telah menetapkan SR proyek di QGIS sebagai SRS khusus World_Van_der_Grinten_I (Moscow):

+proj=vandg +lon_0=37.36 +x_0=0 +y_0=0 +R_A +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs

berasal langsung dari EPSG:54029( World_Van_der_Grinten_I), hanya mengubah garis bujur meridian pusat. Lalu saya sudah mencoba georeferensi gambar menggunakan transformasi proyektif dengan GCP berikut dipilih pada graticule imajiner melewati tanda centang yang tersedia:

mapX,mapY,pixelX,pixelY,enable
-1930600.82502013398334384,-91.97837987072125543,43.52016129032256231,-362.54032258064518146,1
11412132.24015056900680065,-91.97837987233651802,537.54173867127497033,-362.73421498975926625,1
11804723.15208163484930992,8693410.00194966979324818,551.40707210100163138,-43.85864138853239069,1
-1651013.74878141912631691,7637895.72632359713315964,54.16126727366525984,-80.84230997717837397,1

Ini adalah hasil dalam kebiasaan World_Van_der_Grinten_I (Moscow)dengan GCP (batas admin negara dunia merah):

masukkan deskripsi gambar di sini

Georeferensi ini dapat lebih ditingkatkan dengan memilih GCP yang lebih akurat (kesulitan terbesar adalah tidak adanya tanda centang atau graticule), namun tampaknya peta berisi beberapa artefak terutama di Eropa Tengah dan Utara. Misalnya, perhatikan Jerman yang tampaknya runtuh sehubungan dengan Italia atau posisi relatif Pulau Kolguyev (yang sangat cocok) dan pantai Rusia (yang tidak cocok sama sekali).

Hasil yang sama diproyeksikan ulang di WGS84( EPSG:4326):

masukkan deskripsi gambar di sini

Antonio Falciano
sumber
Terima kasih banyak atas saran dan inisiatif Anda. Saya tidak terbiasa dengan transformasi proyektif, jadi saya akan mencari tahu lebih banyak tentang mereka. Saya memperbarui pos utama dengan pendekatan pemasangan parameter yang mencoba menemukan proyeksi Van der Grinten yang paling cocok dengan GCP (cukup dekat dengan 37,36) dan cukup tidak puas dengan kecocokan itu. Silakan lihat dan beri tahu saya.
Ahmed Fasih
Oh, saya melihat bahwa transformasi proyektif dalam QGIS adalah terjemahan rotasi +, yang seharusnya mudah dicoba dengan GCP saya.
Ahmed Fasih
Secara umum (dan juga dalam QGIS), transformasi proyektif bukanlah terjemahan roto. Panduan pengguna IMHO QGIS salah mengenai hal ini. Selain itu, pertimbangkan kemungkinan bahwa ada beberapa artefak buatan tangan (?) Di peta beresolusi rendah, seperti yang terlihat setelah georeferensi saya. SECEPATNYA saya akan mencoba georeferensi yang hi-res.
Antonio Falciano
Terima kasih atas informasinya, saya akan memperbarui QGIS saya dan mencoba georeferensi transformasi projektif. (Saya juga akan mencoba melihat kode sumber QGIS untuk melihat apa yang mungkin dilakukan.) Jika Anda ingin menghemat waktu dan menggunakan GCP saya, mereka ada di github.com/fasiha/steppe-map/blob /master/gcp.txt (disimpan oleh QGIS).
Ahmed Fasih
Silakan lihat posting yang diperbarui untuk solusi yang mungkin: Winkel tripel.
Ahmed Fasih
1

ada distorsi yang kuat di timur ("naik"): tebakan saya adalah konformal konformal Albers. Maka meridian vertikal tampaknya berada pada 40 ° (-> meridian pusat Anda) dan paralel horizontal mungkin sekitar 40 ° N. Anda kemudian harus mengukur koordinat XY Anda dari sumbu di persimpangan meridian 40 dan paralel 40, lalu coba ...

Catatan: Paralelnya tidak paralel, sehingga Anda dapat mengecualikan proyeksi Silinder (Mercator) dan pseudo-silinder (sinusoidal, Eckert)

radouxju
sumber
Kurangnya tanda miring di sisi E dan W peta menunjukkan itu bukan kerucut.
Martin F
Ini adalah pengamatan yang baik, tetapi ada sesuatu yang aneh jika Anda melihat tanda kutu: mereka tidak bersudut, tetapi ketika Anda bergabung dengan mereka dengan garis lurus, mereka bukan garis paralel atau horizontal. Karena itu mereka harus melengkung, dan kutu harus bersudut. Lagi pula, jika itu konformal itu mungkin bukan Lambert karena konvergensi dengan kutub akan menciptakan distorsi yang sangat kuat. Mungkin Albers.
radouxju
Terima kasih banyak atas sarannya, dan maaf saya butuh waktu lama untuk mencoba menerapkannya. Saya memperbarui posting utama dengan upaya saya untuk mencocokkan data ke Albers 4-dimensi proyeksi area yang sama (apakah ini yang Anda maksud?) Dengan GCP yang saya ekstrak. Saya tidak puas dengan kecocokannya, dan saya menemukan beberapa proyeksi pseudocylindrical lainnya (Eckert V dan Robinson) yang melakukan (secara kuantitatif) sedikit lebih baik, tetapi masih belum cukup dekat untuk analisis materi pokok peta. Pikiran Anda?
Ahmed Fasih