[R-br] Como Salvar Shapefile
Yury Duarte
yurynepomuceno em gmail.com
Ter Jan 15 11:29:54 -02 2019
Bom dia colegas listeiros!
Ultimamente venho tentando manusear arquivos espaciais utilizando o R.
Em alguns casos, objetos do tipo 'large SpatialPolygons' são gerados dentro
do código. Quando isso ocorre (acredito que seja algo que acontece por
padrão, devido a grande quantidade de informações armazenadas no objeto), a
função writeOGR, que utilizo para salvar os shapefiles, quebra, por só
tratar de objetos do tipo 'Spatial' e não os 'large Spatial'.
Sendo assim, gostaria de saber se existe a possibilidade de salvar um
shapefile a partir de um objeto do tipo 'large Spatial' ou ainda se existe
a possibilidade de transformar esse num objeto do tipo
SpatialPolygonsDataFrame, para que a função writeOGR possa funcionar
normalmente.
Segue código desenvolvido seguido do erro gerado.
Desde já, agradeço pela ajuda de todos!
rodar_bibliotecas = function(necessarias_para_o_projeto){
if(necessarias_para_o_projeto){
library(rgrass7)
library(spatstat)
library(maptools)
library(shapefiles)
library(foreign)
library(magrittr)
library(formattable)
library(e1071)
library(rlang)
library(rgdal)
library(rgeos)
library(raster)
library(sp)
library(sf)
library(RcppCNPy)
library(deldir)
library(dismo)
library(dplyr)
library(ggplot2)
library(gstat)
library(tidyverse)
library(smoothr)
library(viridisLite)
}
return('Ok')
}
rodar_bibliotecas(TRUE)
raiz = '/home/yury/pesquisa/arquivos/areas/'
clientes = dir(raiz)
for (cliente in 1:length(clientes)) {
analises = dir(paste0(raiz, clientes[cliente]))
q = list()
for (analise in 1:length(analises)) {
shapefile_contorno = readOGR(paste0(raiz, clientes[cliente], '/',
analises[analise], '/', 'vetores.shp'))
shapefile_contorno$id = 1
dissolvido = unionSpatialPolygons(shapefile_contorno, IDs =
shapefile_contorno$id)
#plot(dissolvido)
q[analise] = dissolvido
}
fim = q[[1]]
for (x in 2:length(q)){
fim = bind(fim, q[[x]])
}
plot(fim)
path_to_save = paste0(raiz, clientes[cliente])
writeOGR(fim,
dsn = path_to_save,
layer = paste0('contorno_', clientes[cliente]),
driver = 'ESRI Shapefile',
overwrite_layer = TRUE)
}
Error in writeOGR(fim, dsn = path_to_save, layer = paste0("contorno_", :
obj must be a SpatialPointsDataFrame, SpatialLinesDataFrame or
SpatialPolygonsDataFrame
Yury Duarte
Engenheiro Agrônomo - ESALQ/USP
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://listas.inf.ufpr.br/pipermail/r-br/attachments/20190115/ba495bb5/attachment.html>
Mais detalhes sobre a lista de discussão R-br