<div> </div>
<div><span style="font-size: medium; color: #0000ff;">Eu não consegui rodar este exemplo:</span></div>
<div><br /><span style="font-size: 12.8px;">> require(rgdal)</span>
<div><span style="font-size: 12.8px;">Carregando pacotes exigidos: rgdal</span></div>
<div><span style="font-size: 12.8px;">Carregando pacotes exigidos: sp</span></div>
<div><span style="font-size: 12.8px;">rgdal: version: 1.3-4, (SVN revision 766)</span></div>
<div><span style="font-size: 12.8px;"> Geospatial Data Abstraction Library extensions to R successfully loaded</span></div>
<div><span style="font-size: 12.8px;"> Loaded GDAL runtime: GDAL 2.2.3, released 2017/11/20</span></div>
<div><span style="font-size: 12.8px;"> Path to GDAL shared files: C:/Users/Mauro/Documents/R/win-library/3.4/rgdal/gdal</span></div>
<div><span style="font-size: 12.8px;"> GDAL binary built with GEOS: TRUE </span></div>
<div><span style="font-size: 12.8px;"> Loaded PROJ.4 runtime: Rel. 4.9.3, 15 August 2016, [PJ_VERSION: 493]</span></div>
<div><span style="font-size: 12.8px;"> Path to PROJ.4 shared files: C:/Users/Mauro/Documents/R/win-library/3.4/rgdal/proj</span></div>
<div><span style="font-size: 12.8px;"> Linking to sp version: 1.3-1 </span></div>
<div><span style="font-size: 12.8px;">Warning message:</span></div>
<div><span style="font-size: 12.8px;">package ‘rgdal’ was built under R version 3.4.4 </span></div>
<div><span style="font-size: 12.8px;">> require(sp)</span></div>
<div><span style="font-size: 12.8px;">> </span></div>
<div><span style="font-size: 12.8px;">> p <- </span></div>
<div><span style="font-size: 12.8px;">+ SpatialPolygons(list(Polygons(list(Polygon(cbind(c(2,4,4,1,2),c(2,3,5,4,2)))), </span></div>
<div><span style="font-size: 12.8px;">+ "2"), Polygons(list(Polygon(cbind(c(5,4,2,5),c(2,3,2,2)))), "3")))</span></div>
<div><span style="font-size: 12.8px;">> </span></div>
<div><span style="font-size: 12.8px;">> # o codigo abaixo vai dar o mesmo erro que voce teve:</span></div>
<div><span style="font-size: 12.8px;">> writeOGR(p,dsn = ".", layer = "abc", driver = 'ESRI Shapefile', </span></div>
<div><span style="font-size: 12.8px;">+ overwrite_layer = TRUE)</span></div>
<div><span style="font-size: 12.8px;">Error in writeOGR(p, dsn = ".", layer = "abc", driver = "ESRI Shapefile", : </span></div>
<div><span style="font-size: 12.8px;"> obj must be a SpatialPointsDataFrame, SpatialLinesDataFrame or</span></div>
<div><span style="font-size: 12.8px;"> SpatialPolygonsDataFrame</span></div>
<div><span style="font-size: 12.8px;">> </span></div>
<div><span style="font-size: 12.8px;">> # transforma o SpatialPolygons em um SpatialPolygonsDataFrame</span></div>
<div><span style="font-size: 12.8px;">> p.df <- data.frame(value=1:length(p)) # cria um atributo fake</span></div>
<div><span style="font-size: 12.8px;">> rownames(p.df)<-getSpPPolygonsIDSlots(p)</span></div>
<div><span style="font-size: 12.8px;">Warning message:</span></div>
<div><span style="font-size: 12.8px;">use *apply and slot directly </span></div>
<div><span style="font-size: 12.8px;">> p <- SpatialPolygonsDataFrame(p, p.df)</span></div>
<div><span style="font-size: 12.8px;">> </span></div>
<div><span style="font-size: 12.8px;">> # agora funciona (mesmo codigo pra salvar acima)</span></div>
<div><span style="font-size: 12.8px;">> writeOGR(p,dsn = ".", layer = "abc", driver = 'ESRI Shapefile', </span></div>
<div><span style="font-size: 12.8px;">+ overwrite_layer = TRUE)</span></div>
<div><span style="font-size: 12.8px;">> q()</span></div>
<div><span style="font-size: 12.8px;">> </span></div>
<div> </div>
<br />todo shapefile precisa de uma tabela de atributos, mesmo que voce nao <br />tenha uma. Por isto o writeOGR precisa de um Spatial*DataFrame. Para <br />conseguir salvar, basta criar um SpatialPolygonsDataFrame a partir do <br />seu SpatialPolygons. Por exemplo:<br /><br />require(rgdal)<br />require(sp)<br /><br />p <- <br />SpatialPolygons(list(Polygons(list(Polygon(cbind(c(2,4,4,1,2),c(2,3,5,4,2)))), <br />"2"), Polygons(list(Polygon(cbind(c(5,4,2,5),c(2,3,2,2)))), "3")))<br /><br /># o codigo abaixo vai dar o mesmo erro que voce teve:<br />writeOGR(p,dsn = ".", layer = "abc", driver = 'ESRI Shapefile', <br />overwrite_layer = TRUE)<br /><br /># transforma o SpatialPolygons em um SpatialPolygonsDataFrame<br />p.df <- data.frame(value=1:length(p)) # cria um atributo fake<br />rownames(p.df)<-getSpPPolygonsIDSlots(p)<br />p <- SpatialPolygonsDataFrame(p, p.df)<br /><br /># agora funciona (mesmo codigo pra salvar acima)<br />writeOGR(p,dsn = ".", layer = "abc", driver = 'ESRI Shapefile', <br />overwrite_layer = TRUE)<br /><br />Agora, caso o seu dado seja muito grande e o rgdal nao funcione, melhor <br />migrar para o sf que é muito mais rapido e eficiente em termos de memória.<br /><br />Um abraço,<br /><br />Pedro<br /><br /><br />Em 16/01/2019 16:22, Yury Duarte por (R-br) escreveu:<br />> Testei o efeito da função gSimplify(), mas acho que não vou poder <br />> utiliza-la.<br />> Mesmo passando um valor baixo no parâmetro 'tol', a quantidade de <br />> detalhes perdida nos contornos dos meus polígonos é grande.<br />> Acredito que eliminar polígonos concêntricos possa ajudar a diminuir o <br />> tamanho do objeto gerado pelo script (ainda não sei como fazer essa <br />> verificação e eliminação), mas o número de casos em que isso ocorre não <br />> está sendo tão grande assim.<br />> <br />> Yury Duarte<br />> Engenheiro Agrônomo - ESALQ/USP<br />> <br />> <br />> Em qua, 16 de jan de 2019 às 13:22, Elias T. Krainski <br />> <eliaskrainski@yahoo.com.br <mailto:eliaskrainski@yahoo.com.br>> escreveu:<br />> <br />> Não seria o caso de reduzir a resolução do shapefile? Já teve<br />> situaçoes que usei gSimplify() e escolhi parametros que se mostraram<br />> adequados ao meu objetivo.<br />> <br />> Elias T. Krainski<br />> <br />> <br />> Em quarta-feira, 16 de janeiro de 2019 12:08:04 BRST, Yury Duarte<br />> <yurynepomuceno@gmail.com <mailto:yurynepomuceno@gmail.com>> escreveu:<br />> <br />> <br />> Bom dia Elias, como vai?<br />> <br />> Interessante sua solução!<br />> Não estou acostumado a salvar minhas saídas no formato .RData. Irei<br />> testar esse formato nos casos onde irei trabalhar os dados/analises<br />> apenas em ambiente R.<br />> Aparentemente, esse formato economiza bastante espaço em disco.<br />> Entretanto, para essa situação em especial, eu realmente tenho a<br />> necessidade de salvar as saídas em formato .shp, pois tenho que<br />> aplicar o resultado do script em outros ambientes (nos SIGs em geral<br />> e no Google Earth).<br />> <br />> Caso tenha(m) mais alguma sugestão, ficarei feliz em testar.<br />> <br />> Mais uma vez, agradeço pela disponibilidade e apoio!<br />> <br />> Att<br />> <br />> Yury Duarte<br />> Engenheiro Agrônomo - ESALQ/USP<br />> <br />> <br />> Em qua, 16 de jan de 2019 às 11:24, Elias T. Krainski<br />> <eliaskrainski@yahoo.com.br <mailto:eliaskrainski@yahoo.com.br>><br />> escreveu:<br />> <br />> se você for usar apenas em ambiente R, a melhor opção é usar<br />> save(...). Frequentemente uso com compress='xz'.<br />> <br />> Elias T. Krainski<br />> <br />> <br />> Em terça-feira, 15 de janeiro de 2019 11:30:21 BRST, Yury Duarte<br />> por (R-br) <r-br@listas.c3sl.ufpr.br<br />> <mailto:r-br@listas.c3sl.ufpr.br>> escreveu:<br />> <br />> <br />> Bom dia colegas listeiros!<br />> <br />> Ultimamente venho tentando manusear arquivos espaciais<br />> utilizando o R.<br />> Em alguns casos, objetos do tipo 'large SpatialPolygons' são<br />> gerados dentro do código. Quando isso ocorre (acredito que seja<br />> algo que acontece por padrão, devido a grande quantidade de<br />> informações armazenadas no objeto), a função writeOGR, que<br />> utilizo para salvar os shapefiles, quebra, por só tratar de<br />> objetos do tipo 'Spatial' e não os 'large Spatial'.<br />> Sendo assim, gostaria de saber se existe a possibilidade de<br />> salvar um shapefile a partir de um objeto do tipo 'large<br />> Spatial' ou ainda se existe a possibilidade de transformar esse<br />> num objeto do tipo SpatialPolygonsDataFrame, para que a função<br />> writeOGR possa funcionar normalmente.<br />> <br />> Segue código desenvolvido seguido do erro gerado.<br />> Desde já, agradeço pela ajuda de todos!<br />> <br />> rodar_bibliotecas = function(necessarias_para_o_projeto){<br />> if(necessarias_para_o_projeto){<br />> library(rgrass7)<br />> library(spatstat)<br />> library(maptools)<br />> library(shapefiles)<br />> library(foreign)<br />> library(magrittr)<br />> library(formattable)<br />> library(e1071)<br />> library(rlang)<br />> library(rgdal)<br />> library(rgeos)<br />> library(raster)<br />> library(sp)<br />> library(sf)<br />> library(RcppCNPy)<br />> library(deldir)<br />> library(dismo)<br />> library(dplyr)<br />> library(ggplot2)<br />> library(gstat)<br />> library(tidyverse)<br />> library(smoothr)<br />> library(viridisLite)<br />> }<br />> return('Ok')<br />> }<br />> <br />> rodar_bibliotecas(TRUE)<br />> <br />> raiz = '/home/yury/pesquisa/arquivos/areas/'<br />> clientes = dir(raiz)<br />> <br />> for (cliente in 1:length(clientes)) {<br />> analises = dir(paste0(raiz, clientes[cliente]))<br />> q = list()<br />> for (analise in 1:length(analises)) {<br />> shapefile_contorno = readOGR(paste0(raiz,<br />> clientes[cliente], '/', analises[analise], '/', 'vetores.shp'))<br />> shapefile_contorno$id = 1<br />> dissolvido = unionSpatialPolygons(shapefile_contorno, IDs =<br />> shapefile_contorno$id)<br />> #plot(dissolvido)<br />> q[analise] = dissolvido<br />> }<br />> fim = q[[1]]<br />> for (x in 2:length(q)){<br />> fim = bind(fim, q[[x]])<br />> }<br />> plot(fim)<br />> <br />> path_to_save = paste0(raiz, clientes[cliente])<br />> writeOGR(fim,<br />> dsn = path_to_save,<br />> layer = paste0('contorno_', clientes[cliente]),<br />> driver = 'ESRI Shapefile',<br />> overwrite_layer = TRUE)<br />> <br />> }<br />> <br />> Error in writeOGR(fim, dsn = path_to_save, layer =<br />> paste0("contorno_", : obj must be a SpatialPointsDataFrame,<br />> SpatialLinesDataFrame or SpatialPolygonsDataFrame<br />> <br />> Yury Duarte<br />> Engenheiro Agrônomo - ESALQ/USP<br />> _______________________________________________<br />> R-br mailing list<br />> R-br@listas.c3sl.ufpr.br <mailto:R-br@listas.c3sl.ufpr.br><br />> <a href="https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br" target="_blank">https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br</a><br />> Leia o guia de postagem (<a href="http://www.leg.ufpr.br/r-br-guia" target="_blank">http://www.leg.ufpr.br/r-br-guia</a>) e<br />> forne�a c�digo m�nimo reproduz�vel.<br />> <br />> <br />> _______________________________________________<br />> R-br mailing list<br />> R-br@listas.c3sl.ufpr.br<br />> <a href="https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br" target="_blank">https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br</a><br />> Leia o guia de postagem (<a href="http://www.leg.ufpr.br/r-br-guia" target="_blank">http://www.leg.ufpr.br/r-br-guia</a>) e forne�a c�digo m�nimo reproduz�vel.<br />> <br /><br />-- <br />Pedro R. Andrade, Dr.<br />Earth System Science Center (CCST)<br />National Institute for Space Research (INPE)<br />Sao Jose dos Campos, Brazil<br />_______________________________________________<br />R-br mailing list<br />R-br@listas.c3sl.ufpr.br<br /><a href="https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br" target="_blank">https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br</a><br />Leia o guia de postagem (<a href="http://www.leg.ufpr.br/r-br-guia" target="_blank">http://www.leg.ufpr.br/r-br-guia</a>) e fornea cdigo mnimo reproduzvel.</div>