[R-br] Criar um novo shapefile à partir da seleção de áreas no shapefile original

ASANTOS alexandresantosbr em yahoo.com.br
Sábado Agosto 22 15:01:41 BRT 2015


Caros listeiros,

       Ainda estou enrolado com o meu problema e gostaria de ver se 
alguém conseguiria me ajudar, quando seleciono 1 polígono (df.serra15) e 
faço data.frame(ID=1:length(df.serra15)), seguido da conversão para 
SpatialPolygonsDataFrame funciona a transformação para shapefile, mas se 
seleciono dois polígonos 
df.serra15e16<-c(list(df.serra15),list(df.serra16)), recebo o erro:   
tentativa de obter um slot "polygons" de um objeto de uma classe básica 
("list") sem slots,

      Segue o exemplo que fiz abaixo, sem CRM pois não queria que 
ninguém tivesse que fazer download de nenhum shapefile, obrigado


#Tentativa 2 
-------------------------------------------------------------------
#Pacotes utilizados
require(sp); require(rgdal); require(shapefiles)

#Arquivo shapefile original
contorno_line_a <- readShapeLines ("Mosaico_Geral.shp", 
proj4string=CRS("+proj=utm +zone=23 +south +datum=WGS84 +units=m +no_defs"))
df.data = as.data.frame(contorno_line_a)

# Seleciono 1 polígono
df.serra15 = contorno_line_a[contorno_line_a$Link=='00496015',]##
p.df <- data.frame(ID=1:length(df.serra15))
p <- SpatialPolygonsDataFrame(contorno_serra15,p.df)
writeOGR(srdf, "serra15", layer="serra15", driver="ESRI Shapefile")

# Seleciono 2 polígono
df.serra15 = contorno_line_a[contorno_line_a$Link=='00496015',]##
df.serra16 = contorno_line_a[contorno_line_a$Link=='00496016',]
df.serra15e16<-c(list(df.serra15),list(df.serra16))
p.df2 <- data.frame(ID=1:length(df.serra15e16))
p2 <- SpatialPolygonsDataFrame(df.serra15e16,p.df2)
writeOGR(srdf, "serra15e16", layer="serra15e16", driver="ESRI Shapefile")
#
Erro em SpatialPolygonsDataFrame(df.serra15e16, p.df2) :
   tentativa de obter um slot "polygons" de um objeto de uma classe 
básica ("list") sem slots




        Ainda

Em 20/08/2015 16:56, ASANTOS escreveu:
> Caros listeiros,
>
>       Tenho um shapefile com inúmeras áreas e gostaria de selecionar 
> apenas duas e criar um novo shapefile, no entanto, quanto tento unir 
> os dois polígonos e visualizar a seleção, recebo o erro:
>
> Erro em polypath(x = mcrds[, 1], y = mcrds[, 2], border = border, col 
> = col,  :
>   Caminho gráfico inválido
>
>
> *Segue o caminho que estou trilhando:*
>
> #Arquivo shapefile original
> contorno_line_a <- readShapeLines ("completo.shp", 
> proj4string=CRS("+proj=utm +zone=23 +south +datum=WGS84 +units=m 
> +no_defs"))
> df.data = as.data.frame(contorno_line_a)
>
> # Seleciono o primeiro polígono
> df.serra15 = contorno_line_a[contorno_line_a$Link=='00496015',]## 
> Seleciono um talhão no mapa inteiro
> contorno_serra15<- 
> PolySet2SpatialPolygons(SpatialLines2PolySet(df.serra15), 
> close_polys=TRUE) ##
> P1 = Polygon (contorno_serra15)
> #
>
> # Seleciono o segundo polígono
> df.serra16 = contorno_line_a[contorno_line_a$Link=='00496016',]## 
> Seleciono um talhão no mapa inteiro
> contorno_serra16<- 
> PolySet2SpatialPolygons(SpatialLines2PolySet(df.serra16), 
> close_polys=TRUE) ##
> P2 = Polygon (contorno_serra16)
> #
>
> #União dos dois polígonos
> Ps1 = Polygons (list (P1,P2), ID = "t")
>
> # Crio uma estrutura em data frame dos polígonos espaciais
> SPs = SpatialPolygons (list(Ps1), proj4string=CRS("+proj=utm +zone=23 
> +south +datum=WGS84 +units=m +no_defs"))
> plot(SPs)
> SPDF = SpatialPolygonsDataFrame (SPs, data.frame (N = c ("t"), 
> row.names = c("t")))
> SPDF em data
>
> #Crio o novo shapefile
> writeOGR(SPDF, getwd(), 'parcial', 'ESRI Shapefile')
> #
>
> #Chamo o shapefile novo e visualizo
> contorno_line_b <- readShapeLines ("parcial.shp", 
> proj4string=CRS("+proj=utm +zone=23 +south +datum=WGS84 +units=m 
> +no_defs"))
> plot(contorno_line_b)
> #
>
>
>
> Alguém poderia me dar uma ajuda,
>
> Obrigado,
>
>
> -- 
> ======================================================================
> Alexandre dos Santos
> Proteção Florestal
> IFMT - Instituto Federal de Educação, Ciência e Tecnologia de Mato Grosso
> Campus Cáceres
> Caixa Postal 244
> Avenida dos Ramires, s/n
> Bairro: Distrito Industrial
> Cáceres - MT                      CEP: 78.200-000
> Fone: (+55) 65 8132-8112 (TIM)   (+55) 65 9686-6970 (VIVO)
> e-mails:alexandresantosbr em yahoo.com.br  
>          alexandre.santos em cas.ifmt.edu.br  
> Lattes:http://lattes.cnpq.br/1360403201088680                    
> ======================================================================
>
>
> _______________________________________________
> R-br mailing list
> R-br em listas.c3sl.ufpr.br
> https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br
> Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forneça código mínimo reproduzível.

-- 
======================================================================
Alexandre dos Santos
Proteção Florestal
IFMT - Instituto Federal de Educação, Ciência e Tecnologia de Mato Grosso
Campus Cáceres
Caixa Postal 244
Avenida dos Ramires, s/n
Bairro: Distrito Industrial
Cáceres - MT                      CEP: 78.200-000
Fone: (+55) 65 8132-8112 (TIM)   (+55) 65 9686-6970 (VIVO)
e-mails:alexandresantosbr em yahoo.com.br
         alexandre.santos em cas.ifmt.edu.br
Lattes: http://lattes.cnpq.br/1360403201088680
======================================================================

-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://listas.inf.ufpr.br/pipermail/r-br/attachments/20150822/5ff3b466/attachment.html>


Mais detalhes sobre a lista de discussão R-br