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:[email protected]
[email protected]
Lattes:http://lattes.cnpq.br/1360403201088680
======================================================================
_______________________________________________
R-br mailing list
[email protected]
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:[email protected]
[email protected]
Lattes: http://lattes.cnpq.br/1360403201088680
======================================================================
_______________________________________________
R-br mailing list
[email protected]
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.