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
======================================================================