Criar um novo shapefile à partir da seleção de áreas no shapefile original

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

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

Você colocou seu código e as mensagens erro, porém, seu exemplo não é reproduzível. Talvez a fonte de erro a tratar seja os dados que você não providenciou. Como não sou familiar com mapas fico numa posição que só posso lamentar. À disposição. Walmes.

Tente, df.serra15e16 = contorno_line_a[contorno_line_a$Link%in%c('00496015', '00496016'),] Elias

Obrigado Elias e Walmes, Consegui montar um CRM para mostrar o meu problema, que se divide nas seguintes partes: 1) Criação de 4 polígonos; 2) Conversão para polígonos espaciais; 3) Transforma em shapefile; 4) No shapefile criado seleciono 2 polígonos; e 5) Como os polígonos escolhidos tento criar um novo shapefile, o que não funciona ... e não sei porque (tentei a solução do Elias e não deu certo) #<START> ------------------------------------------------------------------ require(sp) require(shapefile) #------------------------------------------------------------------------------- #Criação de 4 polígonos sr1=Polygons(list(Polygon(cbind(c(180114, 180553, 181127, 181477, 181294, 181007, 180409, 180162, 180114), c(332349, 332057, 332342, 333250, 333558, 333676, 332618, 332413, 332349)))),'1') sr2=Polygons(list(Polygon(cbind(c(180042, 180545, 180553, 180314, 179955, 179142, 179437, 179524, 179979, 180042), c(332373, 332026, 331426, 330889, 330683, 331133, 331623, 332152, 332357, 332373)))),'2') sr3=Polygons(list(Polygon(cbind(c(179110, 179907, 180433, 180712, 180752, 180329, 179875, 179668, 179572, 179269, 178879, 178600, 178544, 179046, 179110), c(331086, 330620, 330494, 330265, 330075, 330233, 330336, 330004, 329783, 329665, 329720, 329933, 330478, 331062, 331086)))),'3') sr4=Polygons(list(Polygon(cbind(c(180304, 180403,179632,179420,180304), c(332791, 333204, 333635, 333058, 332791)))),'4') #Converte em polígonos espaciais sr=SpatialPolygons(list(sr1,sr2,sr3,sr4)) srdf=SpatialPolygonsDataFrame(sr, data.frame(row.names=c('1','2','3','4'), PIDS=1:4)) #Cria o shapefile writeOGR(srdf, getwd(), 'POLY', 'ESRI Shapefile') #Leitura do shapefile contorno_line_X <- readShapeLines ("POLY.shp") df.data = as.data.frame(contorno_line_X) # Seleciono 2 polígono df.serra15 = contorno_line_X[contorno_line_X$PIDS=='1',]## df.serra16 = contorno_line_X[contorno_line_X$PIDS=='4',]## #Junto df.serra15e16<-c(list(df.serra15),list(df.serra16)) #Converte em polígonos espaciais p.df2 <- data.frame(ID=1:length(df.serra15e16)) p2 <- SpatialPolygonsDataFrame(df.serra15e16,p.df2) #Cria o novo shapefile writeOGR(p2, getwd(), 'POLY2s', 'ESRI Shapefile') #<END>--------------------------------------------------------------------- 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 ====================================================================== Em 23/08/2015 10:09, Elias Teixeira Krainski escreveu:
Tente, df.serra15e16 = contorno_line_a[contorno_line_a$Link%in%c('00496015', '00496016'),]
Elias _______________________________________________ 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.

Estava tentando rodar o código, mas não consegui porque ele não carrega a biblioteca 'shapefie', package shapefile is not available (for R version 3.2.1) Eu estou com o Windows XP, sabem se é por ai? Obrigado Elias e Walmes, Consegui montar um CRM para mostrar o meu problema, que se divide nas seguintes partes: 1) Criação de 4 polígonos; 2) Conversão para polígonos espaciais; 3) Transforma em shapefile; 4) No shapefile criado seleciono 2 polígonos; e 5) Como os polígonos escolhidos tento criar um novo shapefile, o que não funciona ... e não sei porque (tentei a solução do Elias e não deu certo) #<START> ------------------------------------------------------------------ require(sp) require(shapefile) #--------------------------------------------------------------------------- ---- #Criação de 4 polígonos sr1=Polygons(list(Polygon(cbind(c(180114, 180553, 181127, 181477, 181294, 181007, 180409, 180162, 180114), c(332349, 332057, 332342, 333250, 333558, 333676, 332618, 332413, 332349)))),'1') sr2=Polygons(list(Polygon(cbind(c(180042, 180545, 180553, 180314, 179955, 179142, 179437, 179524, 179979, 180042), c(332373, 332026, 331426, 330889, 330683, 331133, 331623, 332152, 332357, 332373)))),'2') sr3=Polygons(list(Polygon(cbind(c(179110, 179907, 180433, 180712, 180752, 180329, 179875, 179668, 179572, 179269, 178879, 178600, 178544, 179046, 179110), c(331086, 330620, 330494, 330265, 330075, 330233, 330336, 330004, 329783, 329665, 329720, 329933, 330478, 331062, 331086)))),'3') sr4=Polygons(list(Polygon(cbind(c(180304, 180403,179632,179420,180304), c(332791, 333204, 333635, 333058, 332791)))),'4') #Converte em polígonos espaciais sr=SpatialPolygons(list(sr1,sr2,sr3,sr4)) srdf=SpatialPolygonsDataFrame(sr, data.frame(row.names=c('1','2','3','4'), PIDS=1:4)) #Cria o shapefile writeOGR(srdf, getwd(), 'POLY', 'ESRI Shapefile') #Leitura do shapefile contorno_line_X <- readShapeLines ("POLY.shp") df.data = as.data.frame(contorno_line_X) # Seleciono 2 polígono df.serra15 = contorno_line_X[contorno_line_X$PIDS=='1',]## df.serra16 = contorno_line_X[contorno_line_X$PIDS=='4',]## #Junto df.serra15e16<-c(list(df.serra15),list(df.serra16)) #Converte em polígonos espaciais p.df2 <- data.frame(ID=1:length(df.serra15e16)) p2 <- SpatialPolygonsDataFrame(df.serra15e16,p.df2) #Cria o novo shapefile writeOGR(p2, getwd(), 'POLY2s', 'ESRI Shapefile') #<END>--------------------------------------------------------------------- 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 ====================================================================== --- Este email foi escaneado pelo Avast antivírus. https://www.avast.com/antivirus

Desculpa Mauro o pacote é shapefiles, corrigi o CRM Em 23/08/2015 22:18, Mauro Sznelwar escreveu:
Estava tentando rodar o código, mas não consegui porque ele não carrega a biblioteca 'shapefie', package ‘shapefile’ is not available (for R version 3.2.1) Eu estou com o Windows XP, sabem se é por ai?
Obrigado Elias e Walmes,
Consegui montar um CRM para mostrar o meu problema, que se divide nas seguintes partes: 1) Criação de 4 polígonos; 2) Conversão para polígonos espaciais; 3) Transforma em shapefile; 4) No shapefile criado seleciono 2 polígonos; e 5) Como os polígonos escolhidos tento criar um novo shapefile, o que não funciona ... e não sei porque (tentei a solução do Elias e não deu certo)
#<START> ------------------------------------------------------------------ require(sp) require(shapefiles)
#--------------------------------------------------------------------------- ---- #Criação de 4 polígonos sr1=Polygons(list(Polygon(cbind(c(180114, 180553, 181127, 181477, 181294, 181007, 180409, 180162, 180114), c(332349, 332057, 332342, 333250, 333558, 333676, 332618, 332413, 332349)))),'1') sr2=Polygons(list(Polygon(cbind(c(180042, 180545, 180553, 180314, 179955, 179142, 179437, 179524, 179979, 180042), c(332373, 332026, 331426, 330889, 330683, 331133, 331623, 332152, 332357, 332373)))),'2') sr3=Polygons(list(Polygon(cbind(c(179110, 179907, 180433, 180712, 180752, 180329, 179875, 179668, 179572, 179269, 178879, 178600, 178544, 179046, 179110), c(331086, 330620, 330494, 330265, 330075, 330233, 330336, 330004, 329783, 329665, 329720, 329933, 330478, 331062, 331086)))),'3') sr4=Polygons(list(Polygon(cbind(c(180304, 180403,179632,179420,180304), c(332791, 333204, 333635, 333058, 332791)))),'4')
#Converte em polígonos espaciais sr=SpatialPolygons(list(sr1,sr2,sr3,sr4)) srdf=SpatialPolygonsDataFrame(sr, data.frame(row.names=c('1','2','3','4'), PIDS=1:4))
#Cria o shapefile writeOGR(srdf, getwd(), 'POLY', 'ESRI Shapefile')
#Leitura do shapefile contorno_line_X <- readShapeLines ("POLY.shp") df.data = as.data.frame(contorno_line_X)
# Seleciono 2 polígono df.serra15 = contorno_line_X[contorno_line_X$PIDS=='1',]## df.serra16 = contorno_line_X[contorno_line_X$PIDS=='4',]##
#Junto df.serra15e16<-c(list(df.serra15),list(df.serra16))
#Converte em polígonos espaciais p.df2 <- data.frame(ID=1:length(df.serra15e16)) p2 <- SpatialPolygonsDataFrame(df.serra15e16,p.df2)
#Cria o novo shapefile writeOGR(p2, getwd(), 'POLY2s', 'ESRI Shapefile')
#<END>---------------------------------------------------------------------
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 ======================================================================

com base no seu CMR: df.serra15e16 = contorno_line_X[contorno_line_X$PIDS%in%c('1', '4'),] comentario: voce mistura funcoes dos pacotes shapelines e rgdal... poderia usar so um desses pacotes.

Bom dia Elias, O comando sugerido deu certo, mas quando tento converter o objeto df.serra15e16 em polígono espacial, recebo o erro:
p2 <- SpatialPolygonsDataFrame(df.serra15e16,p.df2) Erro em SpatialPolygonsDataFrame(df.serra15e16, p.df2) : nenhum slot de nome "polygons" para esse objeto de classe "SpatialLinesDataFrame"
Segue CRM: require(shapefiles) require(rgdal) #------------------------------------------------------------------------------- #Criação de 4 polígonos sr1=Polygons(list(Polygon(cbind(c(180114, 180553, 181127, 181477, 181294, 181007, 180409, 180162, 180114), c(332349, 332057, 332342, 333250, 333558, 333676, 332618, 332413, 332349)))),'1') sr2=Polygons(list(Polygon(cbind(c(180042, 180545, 180553, 180314, 179955, 179142, 179437, 179524, 179979, 180042), c(332373, 332026, 331426, 330889, 330683, 331133, 331623, 332152, 332357, 332373)))),'2') sr3=Polygons(list(Polygon(cbind(c(179110, 179907, 180433, 180712, 180752, 180329, 179875, 179668, 179572, 179269, 178879, 178600, 178544, 179046, 179110), c(331086, 330620, 330494, 330265, 330075, 330233, 330336, 330004, 329783, 329665, 329720, 329933, 330478, 331062, 331086)))),'3') sr4=Polygons(list(Polygon(cbind(c(180304, 180403,179632,179420,180304), c(332791, 333204, 333635, 333058, 332791)))),'4') #Converte em polígonos espaciais sr=SpatialPolygons(list(sr1,sr2,sr3,sr4)) srdf=SpatialPolygonsDataFrame(sr, data.frame(row.names=c('1','2','3','4'), PIDS=1:4)) #Cria o shapefile writeOGR(srdf, getwd(), 'POLY', 'ESRI Shapefile') #Leitura do shapefile contorno_line_X <- readShapeLines ("POLY.shp") df.data = as.data.frame(contorno_line_X) # Seleciono 2 polígono df.serra15e16 = contorno_line_X[contorno_line_X$PIDS%in%c('1', '4'),] #Converte em polígonos espaciais p.df2 <- data.frame(ID=1:length(df.serra15e16)) p2 <- SpatialPolygonsDataFrame(df.serra15e16,p.df2) #Cria o novo shapefile writeOGR(p2, getwd(), 'POLY2s', 'ESRI Shapefile') #------------------------------------------------------------------------------- -- ====================================================================== 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 ====================================================================== Em 24/08/2015 07:04, Elias Teixeira Krainski escreveu:
com base no seu CMR: df.serra15e16 = contorno_line_X[contorno_line_X$PIDS%in%c('1', '4'),]
comentario: voce mistura funcoes dos pacotes shapelines e rgdal... poderia usar so um desses pacotes.
_______________________________________________ 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.

note que o objeto 'df.serra15e16' já é 'SpatialPolygonsDataFrame': class(df.serra15e16)

Muito obrigado Elias, era esse mesmo o problema, estava tentando transformar em polígono espacial duas vezes, segue CRM final: #Pacotes require(shapefiles) require(rgdal) require(maptools) #------------------------------------------------------------------------------- #Criação de 4 polígonos sr1=Polygons(list(Polygon(cbind(c(180114, 180553, 181127, 181477, 181294, 181007, 180409, 180162, 180114), c(332349, 332057, 332342, 333250, 333558, 333676, 332618, 332413, 332349)))),'1') sr2=Polygons(list(Polygon(cbind(c(180042, 180545, 180553, 180314, 179955, 179142, 179437, 179524, 179979, 180042), c(332373, 332026, 331426, 330889, 330683, 331133, 331623, 332152, 332357, 332373)))),'2') sr3=Polygons(list(Polygon(cbind(c(179110, 179907, 180433, 180712, 180752, 180329, 179875, 179668, 179572, 179269, 178879, 178600, 178544, 179046, 179110), c(331086, 330620, 330494, 330265, 330075, 330233, 330336, 330004, 329783, 329665, 329720, 329933, 330478, 331062, 331086)))),'3') sr4=Polygons(list(Polygon(cbind(c(180304, 180403,179632,179420,180304), c(332791, 333204, 333635, 333058, 332791)))),'4') #Converte em polígonos espaciais sr=SpatialPolygons(list(sr1,sr2,sr3,sr4)) srdf=SpatialPolygonsDataFrame(sr, data.frame(row.names=c('1','2','3','4'), PIDS=1:4)) #Cria o shapefile writeOGR(srdf, getwd(), 'POLY', 'ESRI Shapefile') #Leitura do shapefile contorno_line_X <- readShapeLines ("POLY.shp") df.data = as.data.frame(contorno_line_X) # Seleciono 2 polígono df.serra15e16 = contorno_line_X[contorno_line_X$PIDS%in%c('1', '4'),] #Cria o novo shapefile writeOGR(df.serra15e16, getwd(), 'POLY2s', 'ESRI Shapefile') #------------------------------------------------------------------------------- -- ====================================================================== 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 ====================================================================== Em 24/08/2015 08:58, Elias Teixeira Krainski escreveu:
note que o objeto 'df.serra15e16' já é 'SpatialPolygonsDataFrame': class(df.serra15e16) _______________________________________________ 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.

Me deu este problema aqui quando rodei.
writeOGR(srdf, getwd(), 'POLY', 'ESRI Shapefile') Error in writeOGR(srdf, getwd(), "POLY", "ESRI Shapefile") : layer exists, use a new layer name
Onde eu abro arquivos de formato shp e shx? S egue CRM final: #Pacotes require(shapefiles) require(rgdal) require(maptools) #--------------------------------------------------------------------------- ---- #Criação de 4 polígonos sr1=Polygons(list(Polygon(cbind(c(180114, 180553, 181127, 181477, 181294, 181007, 180409, 180162, 180114), c(332349, 332057, 332342, 333250, 333558, 333676, 332618, 332413, 332349)))),'1') sr2=Polygons(list(Polygon(cbind(c(180042, 180545, 180553, 180314, 179955, 179142, 179437, 179524, 179979, 180042), c(332373, 332026, 331426, 330889, 330683, 331133, 331623, 332152, 332357, 332373)))),'2') sr3=Polygons(list(Polygon(cbind(c(179110, 179907, 180433, 180712, 180752, 180329, 179875, 179668, 179572, 179269, 178879, 178600, 178544, 179046, 179110), c(331086, 330620, 330494, 330265, 330075, 330233, 330336, 330004, 329783, 329665, 329720, 329933, 330478, 331062, 331086)))),'3') sr4=Polygons(list(Polygon(cbind(c(180304, 180403,179632,179420,180304), c(332791, 333204, 333635, 333058, 332791)))),'4') #Converte em polígonos espaciais sr=SpatialPolygons(list(sr1,sr2,sr3,sr4)) srdf=SpatialPolygonsDataFrame(sr, data.frame(row.names=c('1','2','3','4'), PIDS=1:4)) #Cria o shapefile writeOGR(srdf, getwd(), 'POLY', 'ESRI Shapefile') #Leitura do shapefile contorno_line_X <- readShapeLines ("POLY.shp") df.data = as.data.frame(contorno_line_X) # Seleciono 2 polígono df.serra15e16 = contorno_line_X[contorno_line_X$PIDS%in%c('1', '4'),] #Cria o novo shapefile writeOGR(df.serra15e16, getwd(), 'POLY2s', 'ESRI Shapefile') #--------------------------------------------------------------------------- ---- -- ====================================================================== 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 ====================================================================== Em 24/08/2015 08:58, Elias Teixeira Krainski escreveu:
note que o objeto 'df.serra15e16' já é 'SpatialPolygonsDataFrame': class(df.serra15e16) _______________________________________________ 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.
_______________________________________________ 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. --- Este email foi escaneado pelo Avast antivírus. https://www.avast.com/antivirus

Mauro, Você precisa mudar o nome 'POLY' ou apagar os arquivos criados, pois a função writeOGR() não sobrescreve um arquivo criado, Abraço, -- ====================================================================== 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 ====================================================================== Em 24/08/2015 22:26, Mauro Sznelwar escreveu:
Me deu este problema aqui quando rodei.
writeOGR(srdf, getwd(), 'POLY', 'ESRI Shapefile') Error in writeOGR(srdf, getwd(), "POLY", "ESRI Shapefile") : layer exists, use a new layer name
Onde eu abro arquivos de formato shp e shx?
S
egue CRM final:
#Pacotes require(shapefiles) require(rgdal) require(maptools) #--------------------------------------------------------------------------- ---- #Criação de 4 polígonos sr1=Polygons(list(Polygon(cbind(c(180114, 180553, 181127, 181477, 181294, 181007, 180409, 180162, 180114), c(332349, 332057, 332342, 333250, 333558, 333676, 332618, 332413, 332349)))),'1') sr2=Polygons(list(Polygon(cbind(c(180042, 180545, 180553, 180314, 179955, 179142, 179437, 179524, 179979, 180042), c(332373, 332026, 331426, 330889, 330683, 331133, 331623, 332152, 332357, 332373)))),'2') sr3=Polygons(list(Polygon(cbind(c(179110, 179907, 180433, 180712, 180752, 180329, 179875, 179668, 179572, 179269, 178879, 178600, 178544, 179046, 179110), c(331086, 330620, 330494, 330265, 330075, 330233, 330336, 330004, 329783, 329665, 329720, 329933, 330478, 331062, 331086)))),'3') sr4=Polygons(list(Polygon(cbind(c(180304, 180403,179632,179420,180304), c(332791, 333204, 333635, 333058, 332791)))),'4')
#Converte em polígonos espaciais sr=SpatialPolygons(list(sr1,sr2,sr3,sr4)) srdf=SpatialPolygonsDataFrame(sr, data.frame(row.names=c('1','2','3','4'), PIDS=1:4))
#Cria o shapefile writeOGR(srdf, getwd(), 'POLY', 'ESRI Shapefile')
#Leitura do shapefile contorno_line_X <- readShapeLines ("POLY.shp") df.data = as.data.frame(contorno_line_X)
# Seleciono 2 polígono df.serra15e16 = contorno_line_X[contorno_line_X$PIDS%in%c('1', '4'),]
#Cria o novo shapefile writeOGR(df.serra15e16, getwd(), 'POLY2s', 'ESRI Shapefile')
#--------------------------------------------------------------------------- ----

Esqueci Mauro, Para você abri e visualizar o arquivo criado, faça: contorno_POLY<- readShapeLines ("POLY.shp") plot(contorno_POLY) Em 25/08/2015 00:00, ASANTOS escreveu:
Mauro,
Você precisa mudar o nome 'POLY' ou apagar os arquivos criados, pois a função writeOGR() não sobrescreve um arquivo criado,
Abraço,
-- ====================================================================== 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 ======================================================================

Prezados, Tenho a seguinte variável:
dim(dados) [1] 189 24
Escola.Pd.Pr.sujeito 8.2.6 2.1.5 2.1.8 2.1.7 2.1.6 2.2.1 11.2.2 7.1.6 7.1.5 7.1.4 12.2.4 ..... Quero criar uma nova variável que guarde os valores no meio (que variam entre 1 e 2) Pensei em usar a função substring:
variavel.nova<-substr(d$Escola.Pd.Pr.sujeito,3,3)
Mas como o primeiro valor varia entre 1 e 12 não dá. Pensei em adicionar com a função paste(), mais um caracter no início dos valores que não são dezenas pois assim as posições seriam compatíveis para usar substr(d$Escola.Pd.Pr.sujeito,4,4).
paste("0",d$Escola.Pd.Pr.sujeito, sep = '')
Como poderia fazer isso? -- Atenciosamente Felipe E. Barletta Mendes Estatístico - Conre3 9766-A +55 (41)-92077191 +55 (41)-33287216

Desculpem pelo assunto equivocado no e-mail anterior. Em 25-08-2015 16:18, Felipe escreveu:
Prezados,
Tenho a seguinte variável:
dim(dados) [1] 189 24
Escola.Pd.Pr.sujeito 8.2.6 2.1.5 2.1.8 2.1.7 2.1.6 2.2.1 11.2.2 7.1.6 7.1.5 7.1.4 12.2.4 .....
Quero criar uma nova variável que guarde os valores no meio (que variam entre 1 e 2) Pensei em usar a função substring:
variavel.nova<-substr(d$Escola.Pd.Pr.sujeito,3,3)
Mas como o primeiro valor varia entre 1 e 12 não dá. Pensei em adicionar com a função paste(), mais um caracter no início dos valores que não são dezenas pois assim as posições seriam compatíveis para usar substr(d$Escola.Pd.Pr.sujeito,4,4).
paste("0",d$Escola.Pd.Pr.sujeito, sep = '')
Como poderia fazer isso?
-- Atenciosamente Felipe E. Barletta Mendes Estatístico - Conre3 9766-A +55 (41)-92077191 +55 (41)-33287216

Felipe, veja se é isto o que tu deseja. Talvez não seja a solução mais elegante, mas aparentemente funciona: # gera dados aleatorios set.seed(123) n <- 100 x <- paste(rpois(n, 5), rbinom(n, 1, .4)+1, rpois(n, 5), sep=".") # separa os elementos das strings de acordo com os pontos x.split <- unlist(strsplit(x, "[.]")) # seleciona apenas os elementos do meio dos dados originais, que são os elementos 2, 5, 8, etc. do vetor x.split unlist(strsplit(x, "[.]"))[seq(from=2, to=length(x.split), by=3)] # para transformar o resultado acima em numeros as.numeric(unlist(strsplit(x, "[.]"))[seq(from=2, to=length(x.split), by=3)]) 2015-08-25 16:37 GMT-03:00 Felipe <felipe.e.barletta@gmail.com>:
Desculpem pelo assunto equivocado no e-mail anterior.
Em 25-08-2015 16:18, Felipe escreveu:
Prezados,
Tenho a seguinte variável:
dim(dados) [1] 189 24
Escola.Pd.Pr.sujeito 8.2.6 2.1.5 2.1.8 2.1.7 2.1.6 2.2.1 11.2.2 7.1.6 7.1.5 7.1.4 12.2.4 .....
Quero criar uma nova variável que guarde os valores no meio (que variam entre 1 e 2) Pensei em usar a função substring:
variavel.nova<-substr(d$Escola.Pd.Pr.sujeito,3,3)
Mas como o primeiro valor varia entre 1 e 12 não dá. Pensei em adicionar com a função paste(), mais um caracter no início dos valores que não são dezenas pois assim as posições seriam compatíveis para usar substr(d$Escola.Pd.Pr.sujeito,4,4).
paste("0",d$Escola.Pd.Pr.sujeito, sep = '')
Como poderia fazer isso?
-- Atenciosamente Felipe E. Barletta Mendes Estatístico - Conre3 9766-A +55 (41)-92077191 +55 (41)-33287216
_______________________________________________ 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.
-- Marcus Nunes http://marcusnunes.me/

É isso sim Marcus, muito obrigado pela resposta e ajuda! -- Atenciosamente Felipe E. Barletta Mendes Estatístico - Conre3 9766-A +55 (41)-92077191 +55 (41)-33287216

Muito obrigado! Felipe, veja se é isto o que tu deseja. Talvez não seja a solução mais elegante, mas aparentemente funciona: # gera dados aleatorios set.seed(123) n <- 100 x <- paste(rpois(n, 5), rbinom(n, 1, .4)+1, rpois(n, 5), sep=".") # separa os elementos das strings de acordo com os pontos x.split <- unlist(strsplit(x, "[.]")) # seleciona apenas os elementos do meio dos dados originais, que são os elementos 2, 5, 8, etc. do vetor x.split unlist(strsplit(x, "[.]"))[seq(from=2, to=length(x.split), by=3)] # para transformar o resultado acima em numeros as.numeric(unlist(strsplit(x, "[.]"))[seq(from=2, to=length(x.split), by=3)]) 2015-08-25 16:37 GMT-03:00 Felipe <felipe.e.barletta@gmail.com>: Desculpem pelo assunto equivocado no e-mail anterior. Em 25-08-2015 16 <tel:25-08-2015%2016> :18, Felipe escreveu: Prezados, Tenho a seguinte variável:
dim(dados) [1] 189 24
Escola.Pd.Pr.sujeito 8.2.6 2.1.5 2.1.8 2.1.7 2.1.6 2.2.1 11.2.2 7.1.6 7.1.5 7.1.4 12.2.4 ..... Quero criar uma nova variável que guarde os valores no meio (que variam entre 1 e 2) Pensei em usar a função substring:
variavel.nova<-substr(d$Escola.Pd.Pr.sujeito,3,3)
Mas como o primeiro valor varia entre 1 e 12 não dá. Pensei em adicionar com a função paste(), mais um caracter no início dos valores que não são dezenas pois assim as posições seriam compatíveis para usar substr(d$Escola.Pd.Pr.sujeito,4,4).
paste("0",d$Escola.Pd.Pr.sujeito, sep = '')
Como poderia fazer isso? -- Atenciosamente Felipe E. Barletta Mendes Estatístico - Conre3 9766-A +55 <tel:%2B55%20%2841%29-92077191> (41)-92077191 +55 <tel:%2B55%20%2841%29-33287216> (41)-33287216 _______________________________________________ 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. -- Marcus Nunes http://marcusnunes.me/ --- Este email foi escaneado pelo Avast antivírus. https://www.avast.com/antivirus
participantes (6)
-
ASANTOS
-
Elias Teixeira Krainski
-
Felipe
-
Marcus Nunes
-
Mauro Sznelwar
-
Walmes Zeviani