Передумови Це моє друге питання, пов’язане з геореференційними голими растровими картами з метою їх візуалізації на різних системах координат та в поєднанні з іншими рівнями даних. Попереднє запитання стосується Перетворення довільного зображення без мета-даних у проект QGIS
Проблема Моя мета полягає в геореференції цієї карти:
Здається, це не Плита-Карре. Тож у QGIS я створив декілька розумних контрольних точок, які для повноти я приєднав у нижній частині [ref: 1]. Я надаю геореферентору QGIS ту саму цільову SRS, як і мій файл проекту, EPSG: 4326. Я отримую виключно погані результати з перетвореннями Гельмерта та полінома, але отримую розумне зображення з тонким сплайнером пластини (що змушує геодезиму пройти через мої контрольні точки). Однак навіть цей результат поганий, наприклад, на більш високих широтах (див. Російське узбережжя на північ від Японії). Це скріншот мого екрану QGIS з використанням природного фону Землі.
Альтернативний шлях Я спробував подібну вправу зі значно простішим у використанні інструментом на MapWarper: дивіться результати та контрольні точки на http://mapwarper.net/maps/758#Preview_Map_tab, де я отримую гірші результати (можливо, через те, що що я додав менше контрольних точок).
Питання в двох словах
- Чи є якісь хитрощі, які мені не вистачає, щоб отримати гарну геореференцію?
- Чи миттєво впізнається ця проекція?
- У Unknown Система координат на старому кресленні ,
gdaltransform
пропонуються перетворити кілька точок координат в декількох цільової SRS, з метою виявлення фактично параметрів проекції , використовуваних для створення вихідної карти. Я спробував щось подібне: після збереження мого списку QGIS точок я здійснив деяку обробку рядків, щоб отримати список розділених пробілом long / lats черезcat eurasian-steppe-gcp.points | tail -n+2 | cut -d, -f1-2 | sed 's/,/ /'> tmp.txt
та введення отриманого файлу в gdaltransform:gdaltransform -s_srs EPSG:3785 -t_srs EPSG:4326 < tmp.txt
та переключенняs_srs
таt_srs
прапори (проект використовує EPSG: 4326). Я знаю, що я знімаю в темряві, сподіваючись пощастить, тому я не здивувався, коли не зміг зрозуміти результати. Чи може хтось розширити, як я використовую цей метод, щоб знайти найкращу оцінку проекції та параметрів проекції карти джерела? Моє думка за цим полягає в тому, що замість того, щоб возитися з розміщенням безлічі контрольних точок для гарної геореференції, може бути простіше отримати майже ідеальну геореференцію з меншою кількістю контрольних точок, просто провівши всі загальні системи координат? Чи передбачає це перехресне підтвердження кожної точки стосовно всіх інших, для кожної досліджуваної CRS?
Я хотів би зрозуміти, чи цей алгоритм, або геореференціювання, щоб я міг автоматизувати процес --- я постійно стикаюся з цією проблемою, і поки творці вмісту не перестають ставитися до своїх карт як до одноразових творінь, які ніколи не будуть інтегруватися з іншим вмістом я не сподіваюся зупинитися.
Список літератури
[ref: 1] GGP-файл QGIS:
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
Не оновлення
Аналіз ван дер Грінтена Я написав інструмент Python для пристосування GCP до будь-якої проекції, яку підтримує Proj4 (через Pyproj), і застосував її до пари проекцій, запропонованих у відповідях. Вихідний код (дещо неохайний, прошу вибачення заздалегідь), а також оновлені GCP доступні за посиланням https://github.com/fasiha/steppe-map
У ван дер Грінтена є лише 1 параметр для налаштування, і ось отримане зображення (використовуючи останнє зображення з Британіки, велике спасибі їм за те, що вони надали таку високу роздільну здатність та оновлену карту (хоча вона все ще не має даних проекції)).
Ван-дер-Грінтен має відносну похибку 0,035 між GCP та найкращими підходящими точками, що є найгіршим з купівлі, яку я спробував, і накладка берегової лінії несе якісно.
(Це може допомогти, якщо ви відкриєте це зображення на власній вкладці, воно має високу роздільну здатність. Ви також побачите зелені стрілки із зазначенням геореференційних точок (вони повинні відповідати значним орієнтирам на зображенню), а також червоні стрілки, що вказують, де ці точки пристосовані (вони повинні відповідати однаковим орієнтирам на набережній частині) --- відхилення між ними може допомогти оку побачити відмінності між зображенням і приляганням.)
Аналіз Альберса на рівну площу Спробуй те ж саме з проекцією Альберса на рівну площу (що таке саме, як "Альберс конформний конік"? Вибач за моє невігластво). Це пристосування, що включає 4-мірний параметр, є кращим, з відносною помилкою 0,025, але все ж виглядає досить погано.
Аналіз проекцій Робінсона та Еккерта V Я підходив до ряду псевдоциліндричних проекцій, підтримуваних Pyproj (усе, що я міг знайти, що мав один вільний параметр) і виявив, що проекції Робінсона та Екерта V зробили "найкраще" з точки зору відносної помилки між GCP і встановлені точки, обидва з відносними помилками 0,015.
Ось Робінзон:
А ось Еккерт В.
Зверніть увагу на відхилення приталеної берегової лінії від берегової лінії зображення. Я думаю, що з цього можу зробити висновок, що карта - це ніщо з перерахованого вище?
Трипель Вінкеля: можливе рішення?
Після послідовної спроби кожної проекції в цьому посібнику Proj від 1990 року (оновлений 2003 рік) ftp://ftp.remotesensing.org/proj/OF90-284.pdf я нарешті прийшов до проекції трипеля Вінкеля. Це призводить до найнижчих кількісних помилок (0,011), а берегова лінія рівномірно хороша (або, що рівномірно, рівномірно трохи погана). Я читав, що це проекція Національного географічного товариства, це означає, що він відомий, і це додає ваги кандидатурі цієї проекції на карту Британії. Оснащений SRS: +units=m +lon_0=47.0257707403 +proj=wintri
.
(Вибачте за зміну кольору берегової лінії на сірий. Якщо це когось образить, я можу створити блакитний варіант.)
Я спробую налаштувати свої GCP, щоб спробувати зменшити помилку нижче.