Улучшение результатов геопривязки? [закрыто]

13

Предыстория Это мой второй вопрос, связанный с привязкой голых растровых карт к географическим координатам с целью их повторной визуализации в различных системах координат и в сочетании с другими слоями данных. Предыдущий вопрос находится в разделе Преобразование произвольного изображения карты без метаданных в проект QGIS.

Задача Моя цель - географическая привязка этой карты:

Евразийская степь, Энцик.  Brit.?

Это не похоже на Plate-Carrée. Поэтому в QGIS я создал несколько разумных контрольных точек, которые для полноты я прикрепил внизу [ref: 1]. Я предоставляю QGIS Georeferencer ту же целевую SRS, что и файл моего проекта, EPSG: 4326. Я получаю исключительно плохие результаты с Гельмертом и полиномиальными преобразованиями, но получаю разумное изображение с тонким сплайном пластины (что делает полученную геооценку проходящей через мои контрольные точки). Однако даже этот результат плохой, например, в более высоких широтах (см. Российское побережье к северу от Японии). Это скриншот моего экрана QGIS с использованием фона Natural Earth.

Результат географической привязки QGIS, тонкий шлиц

Альтернативный путь Я попробовал аналогичное упражнение с гораздо более простым в использовании инструментом в MapWarper: см. Результат и контрольные точки на http://mapwarper.net/maps/758#Preview_Map_tab, где я получаю более плохие результаты (вероятно, из-за того факта, что что я добавил меньше контрольных точек).

Вопросы в двух словах

  1. Есть ли какие-то хитрости, которые мне не хватает для получения хорошей привязки?
  2. Эта проекция мгновенно узнаваема?
  3. В Unknown Система координат на старом чертеже , gdaltransformпредлагаются преобразовать несколько точек координат в нескольких целевой SRS, с целью выявления фактически параметров проекции , используемых для создания исходной карты. Я попробовал что-то вроде этого: после сохранения моего списка точек QGIS я выполнил некоторую обработку строк, чтобы получить список разделенных пробелом длинных / лат через 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] Файл 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

Non-обновление

Анализ Ван дер Гринтена. Я написал инструмент Python, чтобы приспособить опорные точки к любой проекции, которую поддерживает Proj4 (через Pyproj), и применил ее к паре проекций, предложенных в ответах. Исходный код (несколько небрежно, заранее извиняюсь), а также обновленные GCP доступны по адресу https://github.com/fasiha/steppe-map.

У van der Grinten есть только 1 параметр для настройки, и вот результирующее изображение (используя последнее изображение от Britannica, большое спасибо им за то, что они предоставили такую ​​карту с высоким разрешением и обновленную карту (хотя все еще отсутствуют данные о проекции)).

Ван дер Гринтен подходит

Ван дер Гринтен имеет относительную погрешность 0,035 между опорными точками и точками наилучшего соответствия, что является наихудшей из тех групп, которые я пробовал, и наложение береговой линии подтверждает это качественно.

(Это может помочь, если вы откроете это изображение на собственной вкладке, оно имеет высокое разрешение. Вы также увидите зеленые стрелки, указывающие точки с географической привязкой (они должны соответствовать значительным ориентирам на изображении), а также красные стрелки, указывающие, где эти точки установлены (они должны совпадать с одинаковыми ориентирами на береговой линии наложения) - отклонение между ними может помочь глазу увидеть различия между изображением и подбором.)

Анализ равной площади Альберса. Попытка сделать то же самое с проекцией равной площади Альберса (что совпадает с «конической конической формой Альберса» - извините за мое невежество). Это соответствие, включающее 4-мерное соответствие параметров, лучше с относительной погрешностью 0,025, но, тем не менее, выглядит довольно плохо.

Альберс подходит по площади

Анализ проекций Робинсона и Эккерта V Я подобрал ряд псевдоцилиндрических проекций, поддерживаемых Pyproj (все, что я смог найти, имел один свободный параметр) и обнаружил, что проекции Робинсона и Экерта V показали «лучшее» с точки зрения относительной погрешности между опорные точки и подогнанные точки, оба с относительной погрешностью 0,015.

Вот Робинсон:

Робинсон подходит

А вот и Экерт В.

Эккерт V подходят

Обратите внимание на отклонения подобранной береговой линии от береговой линии изображения. Я думаю, что из этого я могу сделать вывод, что на карте нет ничего из вышеперечисленного?

Винкель трипель: возможное решение?

После последовательной проверки всех проекций в этом руководстве по Proj от 1990 г. (обновлено в 2003 г.) ftp://ftp.remotesensing.org/proj/OF90-284.pdf я наконец пришел к трипельной проекции Винкеля. Это приводит к наименьшим количественным ошибкам (0,011), и береговая линия равномерно довольно хорошая (или, что то же самое, равномерно слегка плохая) Я читал, что это проекция Национального географического общества, что означает его известность, и это добавляет вес к кандидатуре этой проекции для карты Британики. Оснащен SRS: +units=m +lon_0=47.0257707403 +proj=wintri.

Винкель тройная посадка

(Извините за изменение цвета береговой линии на серый. Если это кого-то обидит, я могу выпустить синюю версию.)

Я постараюсь настроить свои опорные точки, чтобы уменьшить ошибку.

Ахмед Фасих
источник
Это должна быть проекция Меркатора (параллели не равноудалены).
Bhell
1
Я ошибаюсь: у Меркатора, конечно, должны быть параллельные меридианы. Может быть, Ван дер Гринтен ?
Bhell
Вы пытались добавить некоторые контрольные точки на крайнем севере? Все остальное выглядит хорошо, но там, кажется, не хватает дополнительной информации.
Подземье
1
@bhell Van der Grinten - отличное предположение, но оно не совсем подходит. Проекция, по-видимому, такая же, как на этой карте (на которой изображена сетка), также сделанная недавно Encyclopedia Britannica. Это своего рода псевдополиконная проекция в экваториальном аспекте с центром в меридиане, но я этого не узнаю. Запрос в энциклопедии Britannica - хорошая идея.
whuber
2
Ах, поэтому изображение не может быть преобразовано в проекцию Ван дер Гринтена (с которой я знаком, потому что оно используется в «перевернутой» карте на моей стене :) с помощью любого аффинного преобразования. Хорошо знать!
Ахмед Фасих

Ответы:

3

Исходя из первого анализа, мы видим, что только экватор и центральный меридиан (проходящий приблизительно через Москву, около 37,36 восточной долготы) являются прямыми, в то время как все остальные параллели и меридианы являются кривыми линиями. Среди глобальных проекций эти особенности предлагают попробовать ван дер Гринтен (как это сделал bhell в комментарии к вопросу), то есть стандартную проекцию карты мира Национального географического общества.

Поэтому я установил проект SR в QGIS как собственный SRS 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

получен непосредственно из EPSG:54029( World_Van_der_Grinten_I), изменяя только долготу центрального меридиана. Затем я попытался геопривязать изображение, используя проективное преобразование, со следующими GCP, выбранными на воображаемой сетке, проходящей через доступные отметки:

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

Это результат в обычае World_Van_der_Grinten_I (Moscow)с опорными точками (границы стран мира с администратором выделены красным):

введите описание изображения здесь

Эту географическую привязку можно было бы улучшить, выбрав более точные опорные точки (большая трудность - это отсутствие отметок или сетки), однако кажется, что карта содержит некоторые артефакты, особенно в Центральной и Северной Европе. Например, рассмотрим Германию, которая, кажется, потерпела крах по отношению к Италии или относительному положению острова Колгуева (который хорошо вписывается) и российского побережья (которое совсем не подходит).

Тот же результат перепроектирован в WGS84( EPSG:4326):

введите описание изображения здесь

Антонио Фальчано
источник
Большое спасибо за ваш совет и инициативу. Я не знаком с проективными преобразованиями, поэтому узнаю о них больше. Я обновил основную публикацию подходом подбора параметров, который пытается найти проекцию Ван дер Гринтена, которая лучше всего подходит для опорных точек (она была довольно близка к 37,36) и была совершенно недовольна этим соответствием. Пожалуйста, посмотрите и дайте мне знать.
Ахмед Фасих
О, я вижу, что проективное преобразование в QGIS - это ротация + перевод, что должно быть легко попробовать с моими опорными точками.
Ахмед Фасих
Вообще говоря (а также в QGIS), проективное преобразование не является рото-переводом. Руководство пользователя IMHO QGIS неверно в этом отношении. Кроме того, рассмотрим возможность того, что на карте с низким разрешением могут быть артефакты ручной работы (?), Как кажется после моей географической привязки. Как можно скорее я попытаюсь привязать Hi-Res.
Антонио Фальчано,
Спасибо за информацию, я обновлю свою QGIS и попробую геопривязку проективного преобразования. (Я также попытаюсь взглянуть на исходный код QGIS, чтобы увидеть, что он может делать.) Если вы хотите сэкономить время и использовать мои опорные точки, они находятся по адресу github.com/fasiha/steppe-map/blob. /master/gcp.txt (сохранено QGIS).
Ахмед Фасих
Пожалуйста, смотрите обновленный пост для возможного решения: Winkel tripel.
Ахмед Фасих
1

на востоке наблюдается сильное искажение («идет вверх»): я предполагаю, что конический конус Альберса. Тогда кажется, что вертикальный меридиан находится под 40 ° (-> ваш центральный меридиан), а горизонтальная параллель, вероятно, около 40 ° с.ш. Затем вы должны измерить вашу координату XY от оси на пересечении меридиана 40 и параллели 40, затем попытайтесь ...

Примечание. Параллели не параллельны, поэтому вы можете исключить цилиндрические (меркаторы) и псевдоцилиндрические проекции (синусоидальные, эккертовские)

radouxju
источник
Отсутствие угловых меток на сторонах карты E и W указывает на то, что карта не является конической.
Мартин Ф
Это хорошее наблюдение, но есть нечто странное, если вы посмотрите на метки: они не наклонены, но когда вы присоединяете их к прямой линии, они не являются ни параллельными, ни горизонтальными линиями. Поэтому они должны быть изогнуты, а клещи должны быть наклонены. Во всяком случае, если оно конформно, то, вероятно, это не Ламберт, поскольку сходимость к полюсу создаст очень сильные искажения. Может быть, Альберс.
Radouxju
Большое спасибо за совет, и извините, что я потратил так много времени, чтобы попытаться реализовать его. Я обновил основной пост, пытаясь уместить данные в четырехмерную проекцию Альберса на равные площади (это то, что вы имеете в виду?) В опорные точки, которые я извлек. Я не удовлетворен подгонкой, и я нашел пару других псевдоцилиндрических проекций (Eckert V и Robinson), которые (количественно) немного лучше, но все еще не достаточно близко для анализа предмета карты. Твои мысли?
Ахмед Фасих