Страница 1 из 1

Можно выполнить такую задачу средствами СПО?

Добавлено: 27 сен 2011, 14:32
mak-vas
Есть шейп-файл со множеством объектов в нём. Каждый объект имеет уникальнное имя в атрибутах. Можно ли автоматически извлечь все объекты и сохранить каждый в отдельный шейп-файл, при этом чтобы имя файла задавалось из колонки табличных данных?

Re: Можно выполнить такую задачу средствами СПО?

Добавлено: 27 сен 2011, 15:38
Александр Мурый
Скорее всего, shell- или питон-скриптинг + ogr2ogr + немного SQL спасет отца русской демократии в этой ситуации.

Re: Можно выполнить такую задачу средствами СПО?

Добавлено: 27 сен 2011, 16:58
ericsson
Если те самые табличные данные содержат записи вида "имя объекта","имя файла" (плюс что-то еще, возможно) и хранятся (или могут быть выгружены) в текстовике, то можно, пользуясь шелл- или батч-скриптом, обойти эту таблицу, выбирая из каждой строки эти два параметра, первый использовать в качестве аргумента параметру -clipdstwhere у ogr2ogr, а второй - в качестве параметра имени файла ему же.

Re: Можно выполнить такую задачу средствами СПО?

Добавлено: 27 сен 2011, 18:24
Voltron
Почти готовый инструмент есть в QGIS: «Вектор → Управление данными → Разбить векторный слой». Только файлы переименовать надо будет самостоятельно.

Re: Можно выполнить такую задачу средствами СПО?

Добавлено: 27 сен 2011, 19:16
Александр Мурый
Вообще предметно обсуждать как-то интереснее :) Есть такие-то данные, такие-то поля поимённо, надо получить вот такие вот имена.. Хотя я понимаю, конспирация и т.д... 8)

Re: Можно выполнить такую задачу средствами СПО?

Добавлено: 27 сен 2011, 23:25
mak-vas
Voltron писал(а):Почти готовый инструмент есть в QGIS: «Вектор → Управление данными → Разбить векторный слой». Только файлы переименовать надо будет самостоятельно.
То, что нужно, спасибо!!! Файлы переименовать потом вторично не проблема.

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