GIS-LAB

Географические информационные системы и дистанционное зондирование

Создание точечного слоя из текстовых данных в QGIS

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

Обсудить в форуме Комментариев — 3

Одна из распространенных задач в ГИС - преобразование наборов координат из различного рода таблиц в векторные слои точечного типа. Разберем эту задачу на примере создания векторного слоя поворотных точек границ субъектов РФ на основе данных Росреестра.

Для каждой границы двух соседних регионов существует *.doc файл, содержащий описание так называемых поворотных точек, принадлежащих данной границе. Фрагмент одного из таких файлов представлен на следующем рисунке:

Нас будут интересовать первые 3 столбца таблицы, содержащейся в файле описания: номер точки, координата X, координата Y.

Выделяем эти три столбца и копируем их в любой табличный процессор, например, OO Calc. Удаляем пустые строки и строки, в которых не содержится информации о координатах:

В нашем конкретном примере координаты даны в километрах, поэтому значения координат (x и y) умножаем на 1000. В результате должны получиться значения следующего порядка:

1 5911000 13693900
2 5918400 13695900
3 5922000 13697500
4 5928600 13694200
5 5927500 13405200
6 5931400 14305600
7 5933000 13696700

...

...

...

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

От номера листа отнимаем 30 и получаем номер зоны (другой простой способ определить номер зоны - определить количество миллионов по Y, оно равно номеру зоны). Результат представим в виде следующей таблицы:

X Y Зона
1 5911000 13693900 13
2 5918400 13695900 13
3 5922000 13697500 13
4 5928600 13694200 13
5 5927500 13405200 11
6 5931400 14305600 14
7 5933000 13696700 13

...

...

...

 

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

N,X,Y
1,5911000,13693900
2,5918400,13695900
…

Следующие шаги выполняем для каждого csv-файла.

  1. Запускаем QGIS;
  2. МодулиТекст с разделителями Добавить слой из текста с разделителями;
  3. Открываем csv-файл и производим следующие манипуляции: в поле X-поле указываем Y, в Y-поле указываем X и жмем OK:

  4. Щелкаем правой кнопкой мыши на имени слоя, выбираем Свойства и переходим на вкладку Общие. Жмем кнопку Система координат и выбираем СК Pulkovo 1942 / Gauss-Kruger, соответствующую зоне. Так для зоны №13 - СК Pulkovo 1942 / Gauss-Kruger zone 13 (EPSG: 28413):

  5. Щелкаем правой кнопкой мыши на имени слоя и выбираем Сохранить как shape-файл. При сохранении выбираем СК Pulkovo 1942 (EPSG: 4284).

Далее необходимо склеить все полученные shape-file в один. Выполним это с помощью утилиты ogr2ogr. Допустим мы получили 3 shape-файла: zone13.shp, zone14.shp, zone15.shp, тогда для склейки этих файлов в один необходимо выполнить команды в следующем порядке:

ogr2ogr result.shp zone13.shp
ogr2ogr -update -append result.shp zone14.shp -nln merged
ogr2ogr -update -append result.shp zone15.shp -nln merged

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

Если точки с одинаковыми номерами совпадают на растре и на векторе, значит все прошло успешно. Если же какие-то точки «улетели», то, возможно, вы ошиблись при выборе зоны. Однако, ошибки могут присутствовать и в исходных данных!

Обсудить в форуме Комментариев — 3

Последнее обновление: September 09 2021

Дата создания: 25.01.2010
Автор(ы): Денис Рыков