Конвертировать произвольное изображение карты без метаданных в проект QGIS


9

Мой опыт работы: опытный программист, историк-любитель, полный новичок в ГИС (поэтому я использую QGIS). Хотя я научился использовать инструмент геореференции QGIS.

Ввод: предположим, у меня есть изображение, подобное этому Википедия: Файл: VoyagesOfRabbanBarSauma.jpg . Предположим, что это «голый» файл JPG без каких-либо географических метаданных, и автор не может предоставить такую ​​информацию. Входное изображение лицензировано под GNU FDL, под которым я с удовольствием выпускаю свои производные работы.

Цель: импортировать путь, показанный на карте Википедии, в QGIS, чтобы я мог изменить проекцию, наложить высоту, добавить метки для физической географии и т. Д.

Предостережение: одним из обходных путей может быть просто ввести широту / длину местоположений на карте в новый проект ГИС. Я не хочу идти по этому пути, потому что я хотел бы иметь запись оценки этого конкретного автора географической информации.

Что я пробовал: я применил QGIS Georeferencer к растровому файлу JPG с кучей точек по краям континентов. Расстановка точек внутри континента так себе.

Что я хотел бы знать: искажения этой конкретной карты довольно заметны вокруг северного края Евразии, и кажется, что это довольно стандартная проекция. Мне кажется, что должен быть алгоритмический способ определения проекции и параметров проекции, которые сгенерировали эту карту, и восстановления точного неинтерполяционного преобразования между пикселями изображения и широтой / долготой?

Я вижу два вопроса по этому вопросу:

  1. Определение системы координат шейп-файла, когда неизвестно?
  2. Неизвестная система координат на старом чертеже

Кажется, что они говорят о методе грубой силы с участием GDAL или QGIS, а новичку в ГИС они кажутся несколько трудоемкими (в основном это геореференция и подгонка их к известным проекциям), но я хочу попробовать их и посмотреть, смогу ли я автоматизировать их.

Инструкции для обоих этих GIS.SE немного выше, чем позволяет мой опыт, и любые советы о том, как именно сделать этот метод грубой силы, будут очень полезны. Например, вопрос 2 выше показывает, как использовать gdaltransform для преобразования списка координат в широту / долготу. Входные координаты xy расположены в пикселях?

Ответы:


7

Как уже упоминалось, вашей примерной картой является Plate Carree, которая в QGIS - WGS84 / lat lon, EPSG: 4326. Он хорошо привязан в QGIS с использованием линейного метода Гельмерта всего с двумя точками. В моем случае я использовал одну точку рядом с верхним левым краем изображения и другую точку рядом с нижним правым краем изображения. Координаты широты / долготы, используемые для географической привязки, были получены из Google Earth. Помните, что при географической привязке широта равна «у», а долгота - «х».

Просто для удовольствия я затем загрузил растр с географической привязкой в ​​QGIS и быстро проследил маршрут, сохранив его как шейп-файл линии. Затем я загрузил растровое изображение из Natural Earth и наложил его на маршрут (см. Прилагаемое изображение для части полученной карты).

Растровые изображения Natural Earth с географической привязкой (EPSG: 4326), красивые и бесплатные, вы можете получить их здесь:

Естественная земля

Они идеально подходят для использования в качестве базовых карт для построения исторических данных.

Добавлено позже:

Я почти ничего не знаю о картографировании мирового масштаба, но я заметил ваши комментарии об очевидном искажении на оригинальной карте WGS84 широта / долгота (EPSG: 4326). В QGIS есть хороший набор инструментов для перепроецирования векторных и растровых данных, поэтому (отчасти для моего собственного самообразования!) Я подумал, что попробую найти CRS, который представил бы карту более «естественным» способом.

Прикрепленное изображение показывает обрезанный растр Natural Earth, преобразованный в пользовательскую проекцию равной площади Альберса. Векторные данные на карте были преобразованы из WGS84 широта / долгота на лету. Почему Альберс? Ну, это казалось разумной попыткой. Очевидно, что на готовой карте можно привязать векторную сетку (также любезно предоставленную Natural Earth) к изображению. Тем не менее, я думаю, что фигуры на карте достаточно натуралистичны, и что карта также подчеркивает тот факт, что замечательное путешествие Бар Саума было совершено по земному шару.

Параметры для пользовательского CRS были следующими:

+proj=aea +lat_1=22.0 +lat_2=56.0 +lat_0=20.0 +lon_0=55.0 +x_0=0 +y_0=0 +ellps=WGS84 +units=m +no_defs

Был ли это разумный прогноз использования? Я, честно говоря, не знаю.

Ник.

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

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


Ник, спасибо так много, что это точно , как я хотел бы видеть путешествие! Если бы я не знал, что проекция была Плате Карри, мог бы я выяснить это в QGIS, как это делает ArcGIS? В Википедии ( например ) есть множество таких карт, где я хотел бы визуализировать географические данные по другим проекциям и с разным фоном (высота, NDVI, климат), и, похоже, первое, что нужно сделать, это выяснить проекция обнаженного растра.
Ахмед Фасих

Насколько я знаю, в QGIS нет возможности рассчитать проекцию карты. В случае карты Бар-Саума было легко догадаться, что это EPSG: 4326, просто сравнив искажение в верхней части с искажением на других картах мира Плат Карри. Что касается карты Википедии Монгольской Империи, то это, похоже, не Плате Карри или Меркатор мира. Я думаю, что некоторые из людей, которые делают карты для Википедии, используют пользовательские равносторонние проекции широты / долготы, такие как Plate Carree, но не центрированные на Lat 0-deg, Lon 0-deg. Возможно, эта карта является одной из них. Я покопаюсь.
Ноптон

Является ли метод "грубой силы", с которым связаны два других вопроса StackExchange, с которыми я связан, в QGIS? Один из них, кажется, использует GDAL с различными догадками в базовой проекции, которая должна быть в сценариях из QGIS? Еще раз спасибо!
Ахмед Фасих

Проблема состоит в том, что этот метод предполагает, что изображение уже имеет географическую привязку, но к неизвестному CRS (проекция). Изображения, с которыми вы будете работать, вероятно, будут отсканированы из книг или загружены из таких мест, как Википедия, и вам придется привязывать их самостоятельно. В QGIS есть метод геопривязки, сплайн тонких пластин (TPS), который позволяет использовать большое количество контрольных точек. Метод TPS можно использовать для «преобразования» растровых карт в форму и он очень мощный, но он предполагает, что у вас есть координаты для достаточного количества контрольных точек. Ник.
Ноптон

5

Карта использует широту и долготу, как если бы они были декартовыми координатами. Это версия равноугольной или "Plate Carree" проекции. Таким образом, все, что вам нужно сделать, это сместить и изменить масштаб координат x и y, чтобы получить долготу и широту соответственно.

Инструмент географической привязки в ArcGIS 10.0 быстро создает ссылки для оценки преобразования. Хотя он не сообщает о преобразовании, можно экспортировать таблицу ссылок Rи оценить там коэффициенты. Поместив центральный пиксель в верхний левый угол версии изображения с высоким разрешением в (0,0), получим

latitude = 75.71992178 + 0.0427073 * row index
longitude = -18.86514764 + 0.04275506 * column index

Черные контуры страны эталонного слоя (поставляемого ESRI с предыдущими версиями ArcView) показывают, насколько хорошо слои совпадают после применения такого преобразования. Среднеквадратичные ошибки составляют 6-7 км вдоль каждой оси: около одного пикселя на изображении, почти столько, сколько можно ожидать.

Карта с географической привязкой


0

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

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


Отличные очки, спасибо, я сделаю, как вы советуете. Есть ли простой способ восстановить проекцию и параметры изображения?
Ахмед Фасих
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.