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

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

Добавлено: 15 окт 2014, 21:44
HasT
Необходимо разбить шейп-файл по полю в табл. атрибутов из командной строки в 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)
}

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

Добавлено: 20 окт 2014, 14:08
HasT
Проблему решил путем выполнения записи команд в файл и его запуском

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

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