
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@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@yahoo.com.br alexandre.santos@cas.ifmt.edu.br Lattes:http://lattes.cnpq.br/1360403201088680 ======================================================================
_______________________________________________ R-br mailing list R-br@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@yahoo.com.br alexandre.santos@cas.ifmt.edu.br Lattes: http://lattes.cnpq.br/1360403201088680 ======================================================================