Выгрузки в shp по полигонам

Ответить
oleg
Завсегдатай
Сообщения: 460
Зарегистрирован: 03 фев 2005, 11:46
Репутация: 15
Контактная информация:

Выгрузки в shp по полигонам

Сообщение oleg » 25 фев 2012, 12:46

Есть задача регулярной выгрузки нескольких слоёв в шейп (или sqllite) по границам полигонов. Исходные слои - разных типов геометрии. Полигоны границ выгрузок могут пересекаться, могут иметь общую границу. Конечный результат вижу, как папки или архивы с шейп-файлами, имеющими в названии имя полигона границ и время выгрузки или номер. Буду признателен за ссылки и советы.
Последний раз редактировалось oleg 25 фев 2012, 22:03, всего редактировалось 1 раз.

Voltron
Гуру
Сообщения: 2627
Зарегистрирован: 29 мар 2007, 14:12
Репутация: 34
Откуда: Ukraine

Re: Выгрузки в shp по полигонам.

Сообщение Voltron » 25 фев 2012, 15:48

Не очень понял причем тут PostgreSQL, ну кроме того, что данные хранятся в этой базе. Задача легко решается при помощи OGR (либо через Python-интерфейс либо через командный файл). Ну или расширение для QGIS если нужны «кнопачки»

oleg
Завсегдатай
Сообщения: 460
Зарегистрирован: 03 фев 2005, 11:46
Репутация: 15
Контактная информация:

Re: Выгрузки в shp по полигонам

Сообщение oleg » 25 фев 2012, 22:06

Voltron, спасибо! Прошу перенести тему в "Свободные, бесплатные, открытые ГИС".

В поиске решение в форме скрипта для OSGeo4W. Представляю себе настройку скрипта, как простую правку в текстовом редакторе - параметры доступа, вход - база, путь выхода. При работе сохраняются все таблицы указанной базы (баз?) в отдельные шейп-файлы либо в SQLite. Должно быть полезно многим.

Замечания и дополнения приветствуются.

HasT
Активный участник
Сообщения: 142
Зарегистрирован: 16 окт 2009, 22:08
Репутация: 55
Откуда: Харьков

Re: Выгрузки в shp по полигонам

Сообщение HasT » 14 мар 2013, 11:19

Необходимо было выполнять данную задачу (в БД PostgGIS были загружены shp-слои через модуль SPIT/QGIS, SRID 4326), сделал bat-файл со следующим содержимым:

Код: Выделить всё

C:\OSGeo4W\OSGeo4W.bat ogr2ogr -overwrite -f "ESRI Shapefile" D:\layers PG:"host=hostname dbname=databasename user=username password=password" -t_srs EPSG:4326
- выгрузка слоев в каталог D:\layers с перезаписью файлов (-overwrite) при каждом запуске bat-файла из БД databasename. Выполнение bat-файла выполнялось через Планировщик задач в заданное время. Через некоторое время для всех выгружаемых слоев из БД в каталоге, слои SHX стали размером 1КБ (при загрузке в QGIS слоя не было отображения геометрии, пустая таблица атрибутов). Тогда сделал bat-файл для выгрузки слоёв из БД с указанием имени каждого слоя:

Код: Выделить всё

CALL C:\OSGeo4W\OSGeo4W.bat ogr2ogr -overwrite -f "ESRI Shapefile" D:\layers PG:"host=hostname dbname=databasename user=username password=password" LayerA
CALL C:\OSGeo4W\OSGeo4W.bat ogr2ogr -overwrite -f "ESRI Shapefile" D:\layers PG:"host=hostname dbname=databasename user=username password=password" LayerB
CALL C:\OSGeo4W\OSGeo4W.bat ogr2ogr -overwrite -f "ESRI Shapefile" D:\layers PG:"host=hostname dbname=databasename user=username password=password" LayerC

Ответить

Вернуться в «PostGIS/PostgreSQL»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 3 гостя