Перейти к основному содержанию

Использование QGIS в работе с архивными картами

   В рамках исторических исследований приходится обрабатывать большой объем различной информации, которая, так или иначе, имеет координаты. Причем источники и качество этой информации совершенно разные — старые карты, схемы, результаты полевых исследований, воспоминания очевидцев.
   Когда-то я увлекся исследованиями оборонительных рубежей на московском направлении, которые включают в себя и рубежи на дальних подступах к Москве, так называемую Ржевско-Вяземскую линию в 300 км от столицы, проходящую в 120 км от МКАД Можайскую линию и укрепления в ближнем Подмосковье и Москве. Мне понадобился инструмент, который позволил бы обобщить и обработать всю имеющуюся информацию, произвести ее анализ и дал бы возможность выдвигать гипотезы.

   Еще в середине «нулевых» бумажные карты были практически безальтернативным инструментом. Даже будучи оцифрованными, они все равно распечатывались для анализа и дальнейшего использования. Впрочем, можно было пользоваться OziExplorer, программой, которая и сейчас остается стандартом de-facto для путешествующих по растровым, а не векторным картам.
   Однако, в моем случае отправной точкой стала программа Google Earth, которая уже имела встроенную и периодически обновляемую спутниковую карту земли, простой интерфейс загрузки треков и точек, а также возможность накладывать изображения — карты и схемы. Большим плюсом программы является отображение рельефа в 3D. Это часто позволяет увидеть то, что не сразу схватывает глаз на двумерной карте. На мой взгляд, Google Earth очень хороший инструмент, который позволяет достаточно просто исследовать разные гео-источники, переключая и смешивая слои искать закономерности и намечать направления для полевых исследований.
   Но чем дальше, тем больше я убеждался в том, что Google Earth начинает меня ограничивать. Качество привязки карт меня не удовлетворяло, а большой объем цифровой информации приходилось наносить вручную. Одновременно с этим я стал работать с другим продуктом Google — Fusion Tables, которые представляют собой базу данных с возможностью легкой визуализации гео-данных. Однако Fusion Tables предлагали лишь, один вариант подложки — карты Google.

   Во время поиска альтернативы я получил совет от энтузиаста OSM обратить внимание на программу QGIS.
   Действительно, после некоторого периода ее освоения, QGIS, а теперь и ее российская сборка NextGIS, стала моим рабочим инструментом, который позволяет мне не только проводить исследования, собирая информацию из разных источников, но и готовить отличные схемы для печатных публикаций.
   Пожалуй, определяющим фактором использования NextGIS стала ее бесплатность и наличие большого объема дополнительных модулей, многие их которых разработаны пользователями. Этот программный продукт продолжает развиваться, в том числе появляются мобильные версии, которые, как я надеюсь, позволят мне отказаться от использования OziExplorer во время полевых исследований.
   NextGIS — мощный профессиональный инструмент, которым, тем не менее, можно пользоваться и без глубокого погружения в изучение, буквально разбираясь с ним «методом тыка».
   В моем случае наиболее полезные пункты меню программы — это «Слой» где находится добавление растровых и векторных слоев, «Растр» — с установленными плагинами «Перепроецирование» и «Привязка растров», а также «Интернет» с модулем OpenLayers plugin, который позволяет использовать в качестве подложки карты OSM, а также спутниковые карты Bing и Google.

   В начале работы надо создать новый проект, выбрав для него систему координат. Я использую WGS 84 Pseudo Mercator. Уверен, что это не самый лучший выбор, но для небольших площадей это, на мой взгляд, не критично. Тут же в свойствах проекта необходимо включить «Автоматические перепроецирование».

   Векторные слои позволяют загрузить информацию с навигатора (треки и маршрутные точки). Загрузка проходит не в один клик, надо будет прощелкать диалоговое окно.

   Так же грузим имеющиеся у нас карты для OziExplorer, имеющие файл привязки *.map и изображение в *.gif . К сожалению, модуль перепроецирования работает только с этими форматами. Если у вас карта в *.jpg или *.png, то их можно переконвертировать в любом графическом редакторе или воспользовавшись пакетным режимом в бесплатной программе XnConvert. Также вручную или автоматически следует заменить расширение внутри файла *.map.
   Небольшой диалог, в котором можно ничего не менять, отмечаем «открыть результат в QGIS» и ура! — все нажитые вами карты, появились в программе. Здесь мы оставим за скобками юридические вопросы их использования и источники получения.

   Все данные хранятся в виде файлов, с разными расширениями. Я организовываю их по папкам — векторные в одни, растровые в другие. Сами папки имеет смысл вынести в облачное хранилище — это позволит работать с одним и тем же проектом на разных компьютерах, например, дома и на работе.
   Все слои отображаются в окне слева. Слои можно перемещать выше или ниже, включать и выключать, изменять их прозрачность (у растров), цвет и вид (у векторных данных). Я стараюсь организовать всю информацию по папкам: карты к картам, треки к трекам, не смешивая их и располагая так, чтобы при включении слои не закрывали друг друга. Поэтому векторные данные, которые представляют собой линии или точки, правильнее всегда располагать выше.

   В самом низу у меня базовые слои, взятые из плагина OSM. В самом верху векторные слои, созданные на основе *.kml, с достаточно сложным содержимым. NextGIS читает kml-теги и организует из них табличку, что позволяет, пусть и не без ручного труда, связать информацию собранную в таблицах Fusion Tables с картами в NextGIS, и при помощи стилей эффектно ее отобразить. Было бы лучше подключить базу данных напрямую, но я этого не умею (пока).
   Однако, попадается и немало источников, карт и схем, которые не имеют привязки или привязка которых неудовлетворительна. Как известно, военные карты имеют некоторое смещение относительно современной сетки. Это некрасиво при смешивании слоев (включении полупрозрачного режима), это вводит в заблуждение при расположении объектов снятых на местности, да и обратный поиск на местности оказывается затруднен. Поэтому, что вполне очевидно, привязка таких карт по углам современных листов недопустима. Кроме того, сканы склеек карт могут быть «мятыми», содержать сдвиги и другие дефекты, которые приводят к погрешностям в десятки и сотни метров.
   Для ручной привязки используется инструмент «Привязка растров», который вызывает отдельное окно, в котором необходимо открыть привязываемую картинку. По опыту могу сказать, что привязывать лучше *.gif . С jpg-файлами часто возникают проблемы.

   Привязку лучше вести на большом мониторе, для того, чтобы видеть сразу два окна. Процесс привязки прост — ставим точку на одной карте, отмечаем ее же на другой. И так много раз. Чем меньше и ровнее исходник, тем большей точности можно добиться.

   В окне привязки растра есть пункт меню «Настройки привязки», где из пунктов выпадающего меню необходимо выбрать наиболее подходящие. Если картинка небольшая и не имеет искажений, то подойдет и линейная трансформация. Я же последнее время предпочитаю ставить десятки точки и использовать трансформацию «полиноминальная 3», метод интерполяции «ближайший сосед». При этом цвета карты страдают в наименьшей степени.

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

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

   Кроме задания прозрачности, есть еще очень полезная функция индексирования цвета: во время привязки очень часто появляются черные поля замысловатой формы, которые перекрывают подложку или соседние листы. Индексация черного цвета, позволяет быстро справиться с этим — достаточно лишь кликнуть по цвету мышкой. Правда, это приводит к «выбиванию» этого же тона черного и на самой карте, но по большей части это не критично.

   С подложками есть свои сложности. Как правило, они не совпадают друг с другом. Даже спутниковые снимки имеют погрешности в несколько метров, а то и десятков метров. Свои погрешности есть и у навигаторов, которые выступают поставщиками данных треков и маршрутных точек, карты также имеют свои погрешности, про схемы, нарисованные от руки, и говорить не стоит.
   Чтобы не множить ошибок, лучше всего использовать одну и ту же подложку для привязки разных карт и схем данной местности. И в качестве этой подложки можно выбрать спутниковые снимки Google или Bing, заранее проверив, насколько сильно они расходятся в отображении действительности. Для этого достаточно посмотреть, насколько точно «попадают» треки. Хорошая новость заключается в том, что и карты РККА, и вермахта использовали один и тот же источник, из-за чего имея изначально хорошо (а лучше — отлично) привязанную карту, на нее можно легко «натягивать» и другие карты этой местности, используя как координатную сетку, так и перекрестки дорог, а также абрисы населенных пунктов. Нельзя не отметить более четкое и аккуратное выполнение схем в немецкой армии — даже нарисованные наспех карты практически не имеют искажений. В свою очередь, в документах РККА очень часто попадаются весьма абстрактные рисунки, которые приходится притягивать к реальности проставлением большего числа контрольных точек. Кстати, не забывайте сохранять привязанные точки — программа иногда бывает неустойчивой и внезапно зависает, что чревато потерей несохраненных данных.

   Также «Привязка растров» позволяет привязать и кадры аэрофотосъемки. Их также надо перевести в *.gif и максимально развернуть на север, для удобства ориентировки. Лучше всего осуществлять привязку по спутниковому слою, но с оглядкой на изменения прохождения дорог, расположения мостов, излучин рек. В большинстве случаев деревни, заснятые на АФС, более не существуют. В этом случае помогут ранее привязанные карты 30–40 годов, которые составлялись, в том числе по итогам аэрофотосъемки и указанные на них перекрестки, леса и деревни очень хорошо совпадают с АФС 1941–1943 годов. После первой, может быть даже грубой привязки, следует сравнить получившийся результат со спутниковой подложкой. Уверен, вы обнаружите массу участков, которые не претерпели изменений за 70 лет, и по которым можно улучшить привязку. Это могут быть отдельные излучины ручьев, болота, пруды, межи, противотанковые рвы, участки дорог. Заменяя одни точки привязки другими, можно добиться очень неплохой точности в пару десятков метров.

   Теперь, имея несколько слоев карт, схем и АФС, данные полевых изысканий, можно проводить анализ местности, выявляя объекты, которые ранее оказались незамеченными.

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

(

   Так же, с помощью создания нескольких векторных слоев и придания стилей, можно отрисовать растровую карту в «векторе». Правда, это довольно долгое и непростое занятие.
   Любой из растровых слоев можно сохранить как GeoTiff и, используя другие программные продукты, сформировать из него файл для ПК или мобильной версии OziExplorer для использования на местности.
   NextGIS также позволяет создавать макеты карт с высоким разрешением (которое, конечно, зависит от качества подложки). Несомненным плюсом этого является возможность создать карту в необходимом масштабе, с нанесенными на нее условными знаками. Такую карту можно использовать либо для полевых работ, либо для публикаций. Чтобы избежать юридических проблем, можно использовать в качестве подложки карты OSM.

Анатолий Воронин