Разбить шейп-файл по полю в таб. атр. из командной строки

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

Разбить шейп-файл по полю в таб. атр. из командной строки

Сообщение HasT » 15 окт 2014, 21:44

Необходимо разбить шейп-файл по полю в табл. атрибутов из командной строки в CentOS, при этом имя output шейп-файлов должны соответствовать значениям объектов в поле таблице атрибутов.
В наличии: ogr2ogr, GDAL, R, Python.
Пробывал скрипт из gis.stackexchange.com/questions/63746/splitting-a-shapefile-into-many-shapefiles-with-open-source
но при запуске из командной строки в выходном каталоге создается "первый объект" из исходного шейп-файла и возникают ошибки что "объект с именем nnn уже существует"...
Пример скрипта:

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

#!/usr/bin/env Rscript

library(foreign)
dfBlocks = read.dbf("/source_folder/input_shapefile.dbf", as.is=TRUE)

strTract = unique(dfBlocks$name)
for (i in length(strTract)) {
  strOGR = paste(
    "ogr2ogr -where \"name = '", strTract, 
    "'\" /dest_folder /source_folder layer_name -nln base_name_", 
    strTract, sep=""
    )
  system(strOGR)
}

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

Re: Разбить шейп-файл по полю в таб. атр. из командной строк

Сообщение HasT » 20 окт 2014, 14:08

Проблему решил путем выполнения записи команд в файл и его запуском

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

fileConn<-file("/rscript.sh")
writeLines(c(strOGR), fileConn)
close(fileConn)
system('/rscript.sh')

Ответить

Вернуться в «Свободные, бесплатные, открытые ГИС»

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

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