Пакетное склеивание shape-файлов в MergeShapes/OGR

Материал из GIS-Lab
Перейти к навигации Перейти к поиску
Эта страница опубликована в основном списке статей сайта
по адресу http://gis-lab.info/qa/merge-shapes.html


Описание инструмента и операции, которую он производит.

Склеивание shape-файлов в OGR

Сначала остановимся на том, как выполнить операцию склеивания файл за файлом. Подразумевается что GDAL/OGR уже установлен и как его запускать читатель знает. Если нет, то сначала нужно его установить (подробнее про установку) и научиться с ним работать (подробнее про начало работы).

Принцип работы заключается в следующем, склеивание итерационное, т.е. shape-файлы «приклеиваются» к основному (merged.shp) по-очереди командами -update -append. Первой командой из первого shape-файла можно создать этот основной файл.

ogr2ogr merged.shp shapefile1.shp
ogr2ogr -update -append merged.shp shapefile2.shp -nln merged
ogr2ogr -update -append merged.shp shapefile3.shp -nln merged
...

Пакетное склеивание

Склеивание сотен или тысяч shape-файлов практически невозможно без дополнительного программирования. В Arcview GIS склеивание большого количества shape-файлов неизбежно приводит рано или поздно к переполнению памяти, в ArcGIS это более удобно, но так же вызывает затруднения связанные с ограничениями реализации диалогов программы.

Mergeshapes-gdal — программа-оболочка для программы ogr2ogr из пакета GDAL/OGR. Работает только под Windows.

Перед началом работы, нужно установить GDAL/OGR, например через пакет FWTools.

Для начала работы нужно задать:

  1. папку содержащую все shape-файлы
  2. месторасположение ogr2ogr.exe

И нажать «Make batch». В результате работы программы будет создан batch-файл merge.bat в папке с shape-файлами, содержащий все необходимые команды для склеивания. Его необходимо запустить, результатом работы будет единый shape-файл merge.shp.

Примечание: подразумевается, что структура атрибутивной информации (типы и названия полей) shape-файлов идентична.

Merge-shapes-01.gif

Скачать программу и библиотеки.

Инструменты для QGIS

MergeShapes

Расширение MergeShapes доступно из официального репозитория.

MergeShapes разработан для QGIS версии 1.0.0 и старше, для работы не требует наличия дополнительных модулей.

Исходный код модуля можно получить выполнив команду

svn co http://svn.gis-lab.info/mergeshapes mergeshapes

Вызывается нажатием на кнопку

Mergeshapes.png

Окно расширения имеет вид

Merge-shapes-03.png

В поле «Исходный каталог» указывается папка с шейпами, которые необходимо объединить, а в «Выходной файл», соответственно, куда будет записан результат. При выборе выходного файла можно задать желаемую кодировку атрибутивных данных. Выпадающий список «Тип shape-файлов» позволяет выполнять обработку каталогов с shape-файлами разных типов (геометрией), при этом склеиваться будут только файлы с заданной геометрией. Если объединять надо не все файлы из папки, а только некоторые — нужно установить флаг «Выбрать файлы в каталоге» и вместо папки можно будет выбирать файлы. При выборе отдельных файлов можно задать кодировку атрибутивных данных (применяется ко всем выбранным файлам).

Если атрибутивные таблицы исходных shape-файлов отличаюся, результирующий файл будет содержать все уникальные поля всех исходных файлов.

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

Верхний индикатор отображает прогресс обработки текущего файла, а нижний показывает общий прогресс.

fTools

Ранняя версия MergeShapes была интегрирована в состав fTools. Новый инструмент находится в меню «Вектор → Управление данными → Объединение shape-файлов».

Merge-shapes-04.png

Работа с инструментом объединения во многом аналогична работе с расширением MergeShapes. В поле «Исходный каталог» указывается папка с shape-файлами, которые необходимо объединить. Если необходимо выбрать несколько файлов в папке, устанавливается флаг «Select by layers in the folder». Результат объединения будет сохранен в файл, заданный полем «Сохранить результат в shape-файл». Есть возможность автоматической загрузки результатов в QGIS.

Объединение shape-файлов с разными атрибутивными таблицами может приводить к непредсказуемым результатам, а при обработке папок необходимо следить чтобы в них были файлы с одинаковым типом геометрии.

Ссылки по теме