[R-br] Converter Shape de Pontos para Shape de Polígonos

classic Classic list List threaded Threaded
7 messages Options
Reply | Threaded
Open this post in threaded view
|

[R-br] Converter Shape de Pontos para Shape de Polígonos

R-br mailing list
Boa tarde colegas listeiros, como vão?

Estou começando a trabalhar com dados georreferenciados e geoestatistica no R e me deparei com uma dificuldade que não estou conseguindo contornar.
Tenho um shapefile de pontos que eu gostaria de transformar em um shape de polígonos e não estou sabendo como fazer essa conversão. 
Depois de fazer essa transformação de pontos para polígonos, queria saber se também é possível eu unir os polígonos adjacentes quando seus valores forem iguais, afim de reduzir o numero total de polígonos do meu shapefile.

Desde já, agradeço pela ajuda e atenção de todos!

Att 

Yury Duarte
Engenheiro Agrônomo - ESALQ/USP

_______________________________________________
R-br mailing list
[hidden email]
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.

X.rar (190K) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: [R-br] Converter Shape de Pontos para Shape de Polígonos

R-br mailing list
Supondo que o polígono de interesse seja a envoltória convexa dos pontos.

library(sp)
library(rgdal)
library(raster)

pts_shp <- shapefile("X/x.shp")
plot(pts_shp)
p <- coordinates(pts_shp)

ch <- chull(p)
coords <- p[c(ch, ch[1]), ] # fechando o polígono

plot(p, pch = 19)
lines(coords, col = "red", lwd = 3)

sp_pol <- SpatialPolygons(
  list(Polygons(
    list(Polygon(coords)),
    ID = 1
  ))
)
plot(sp_pol, axes = TRUE)
points(pts_shp, pch = 20, cex = 0.2)

sp_pol_df <- SpatialPolygonsDataFrame(
  sp_pol,
  data = data.frame(ID = 1)
)
#shapefile(sp_pol_df, "pol-from-pts.shp", overwrite = TRUE)
#x <- shapefile("pol-from-pts.shp")
#plot(x, axes = TRUE)


On Wed, Aug 22, 2018 at 2:23 PM Yury Duarte via R-br <[hidden email]> wrote:
Boa tarde colegas listeiros, como vão?

Estou começando a trabalhar com dados georreferenciados e geoestatistica no R e me deparei com uma dificuldade que não estou conseguindo contornar.
Tenho um shapefile de pontos que eu gostaria de transformar em um shape de polígonos e não estou sabendo como fazer essa conversão. 
Depois de fazer essa transformação de pontos para polígonos, queria saber se também é possível eu unir os polígonos adjacentes quando seus valores forem iguais, afim de reduzir o numero total de polígonos do meu shapefile.

Desde já, agradeço pela ajuda e atenção de todos!

Att 

Yury Duarte
Engenheiro Agrônomo - ESALQ/USP
_______________________________________________
R-br mailing list
[hidden email]
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.


--
###############################################################
##  Jônatan Dupont Tatsch
##  Professor do Departamento de Física
##  Centro de Ciências Exatas e Naturais (CCNE)
##  Universidade Federal de Santa Maria - UFSM
##  Faixa de Camobi, Prédio 13 - Campus UFSM - Santa Maria, RS, Brasil - 97105-900
##  Telefone: +55(55)33012083
###############################################################

_______________________________________________
R-br mailing list
[hidden email]
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.
Reply | Threaded
Open this post in threaded view
|

Re: [R-br] Converter Shape de Pontos para Shape de Polígonos

R-br mailing list
Bom dia Jônatan e colegas listeiros, como vão?

Muito obrigado pela sua ajuda, Jônatan, acho que vão ser bastante úteis esses comandos que você mostrou.
Delimitar o perímetro da minha área também é um objetivo desse trabalho, mas a intenção principal dele é de formar polígonos unindo cada ponto com seus pontos adjacentes (vizinhos), de forma que eu fique com N polígonos dentro da minha área e que cada polígono gerado carregue consigo as informações dos pontos utilizados para gerar o polígono. 
Não sei se utilizando a função buffer eu teria um resultado satisfatório. Também me foi indicado utilizar a função 'voronoi' para atingir esse objetivo, mas não consigo aplica-la de forma assertiva. 

Mais uma vez, agradeço pela ajuda e atenção de todos!

Att

Yury Duarte
Engenheiro Agrônomo - ESALQ/USP


Em qui, 23 de ago de 2018 às 00:53, Jônatan <[hidden email]> escreveu:
Supondo que o polígono de interesse seja a envoltória convexa dos pontos.

library(sp)
library(rgdal)
library(raster)

pts_shp <- shapefile("X/x.shp")
plot(pts_shp)
p <- coordinates(pts_shp)

ch <- chull(p)
coords <- p[c(ch, ch[1]), ] # fechando o polígono

plot(p, pch = 19)
lines(coords, col = "red", lwd = 3)

sp_pol <- SpatialPolygons(
  list(Polygons(
    list(Polygon(coords)),
    ID = 1
  ))
)
plot(sp_pol, axes = TRUE)
points(pts_shp, pch = 20, cex = 0.2)

sp_pol_df <- SpatialPolygonsDataFrame(
  sp_pol,
  data = data.frame(ID = 1)
)
#shapefile(sp_pol_df, "pol-from-pts.shp", overwrite = TRUE)
#x <- shapefile("pol-from-pts.shp")
#plot(x, axes = TRUE)


On Wed, Aug 22, 2018 at 2:23 PM Yury Duarte via R-br <[hidden email]> wrote:
Boa tarde colegas listeiros, como vão?

Estou começando a trabalhar com dados georreferenciados e geoestatistica no R e me deparei com uma dificuldade que não estou conseguindo contornar.
Tenho um shapefile de pontos que eu gostaria de transformar em um shape de polígonos e não estou sabendo como fazer essa conversão. 
Depois de fazer essa transformação de pontos para polígonos, queria saber se também é possível eu unir os polígonos adjacentes quando seus valores forem iguais, afim de reduzir o numero total de polígonos do meu shapefile.

Desde já, agradeço pela ajuda e atenção de todos!

Att 

Yury Duarte
Engenheiro Agrônomo - ESALQ/USP
_______________________________________________
R-br mailing list
[hidden email]
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.


--
###############################################################
##  Jônatan Dupont Tatsch
##  Professor do Departamento de Física
##  Centro de Ciências Exatas e Naturais (CCNE)
##  Universidade Federal de Santa Maria - UFSM
##  Faixa de Camobi, Prédio 13 - Campus UFSM - Santa Maria, RS, Brasil - 97105-900
##  Telefone: +55(55)33012083
###############################################################

_______________________________________________
R-br mailing list
[hidden email]
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.
Reply | Threaded
Open this post in threaded view
|

Re: [R-br] Converter Shape de Pontos para Shape de Polígonos

R-br mailing list
Nao acredito que haja alguma funcionalidade de GIS que nao esteja
disponivel em R ou que possa facilmente ser implementada.

On 23/08/2018 09:13, Yury Duarte via R-br wrote:
> a função 'voronoi' para atingir esse objetivo
Seria a uma opcao aplicar a funcao tile.list() ao resultado da funcao
deldir(), ambas do pacote 'deldir'?
Adicionalmente, se voce tiver definido o poligono da area de estudo,
pode fechar os polignos das bordas intersectando-os com esse poligono.

Elias
_______________________________________________
R-br mailing list
[hidden email]
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 fornea cdigo mnimo reproduzvel.
Reply | Threaded
Open this post in threaded view
|

Re: [R-br] Converter Shape de Pontos para Shape de Polígonos

R-br mailing list
Bom dia Elias, como vai?

Agradeço demais pela sua ajuda. Essas funções me ajudaram bastante a caminhar para o objetivo da tarefa.
Fiz dessa forma para gerar os poligonos:

a = readOGR(paste0('Diretorio\\', 'arquivo_com_informacoes_por_ponto.shp'))
d = deldir(a@coords[,1], a@coords[,2])
t = triang.list(d)
plot(t, border="red", showrect = TRUE)
s = tile.list(d)
plot(s)

Agora o que acontece é que sigo travado no como indexar as informações que eu tinha originalmente no meu objeto 'a'.
Seria possível, de algum modo, indexar todas as informações presentes no meu arquivo .shp original (objeto 'a') no resultado da triangulação feita pelos comandos acima (objeto 's'), retornando um arquivo .shp? 

De antemão, peço desculpas aos colegas listeiros caso eu não estiver sendo claro o suficiente na explanação da minha dúvida/problema.
Mais uma vez, agradeço pela atenção de todos!

Yury Duarte
Engenheiro Agrônomo - ESALQ/USP


Em qui, 23 de ago de 2018 às 10:20, Elias T Krainski via R-br <[hidden email]> escreveu:
Nao acredito que haja alguma funcionalidade de GIS que nao esteja
disponivel em R ou que possa facilmente ser implementada.

On 23/08/2018 09:13, Yury Duarte via R-br wrote:
> a função 'voronoi' para atingir esse objetivo
Seria a uma opcao aplicar a funcao tile.list() ao resultado da funcao
deldir(), ambas do pacote 'deldir'?
Adicionalmente, se voce tiver definido o poligono da area de estudo,
pode fechar os polignos das bordas intersectando-os com esse poligono.

Elias
_______________________________________________
R-br mailing list
[hidden email]
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 fornea cdigo mnimo reproduzvel.

_______________________________________________
R-br mailing list
[hidden email]
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.
Reply | Threaded
Open this post in threaded view
|

Re: [R-br] Converter Shape de Pontos para Shape de Polígonos

R-br mailing list
Veja a resposta do Adrian Baddeley (ao final do link abaixo) de como
criar um SpatialPolygons nesse contexto:

http://r-sig-geo.2731867.n2.nabble.com/convertion-delaunay-triangulation-to-SpatialPolygons-td4914093.html 


Apos, use, por exemplo, writeOGR para gravar o SpatialPolygons em
shapefile.

Elias
_______________________________________________
R-br mailing list
[hidden email]
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 fornea cdigo mnimo reproduzvel.
Reply | Threaded
Open this post in threaded view
|

Re: [R-br] Converter Shape de Pontos para Shape de Polígonos

R-br mailing list
Obrigado mais uma vez, Jônatan e Elias!

As dicas de vocês foram muito úteis!
Ainda não consegui alcançar meu objetivo com os dados, mas creio que com mais algum tempo encontrarei uma saída e conseguirei transformar meu shape de pontos em polígonos mantendo toda informação no novo shapefile! 

Mais uma vez, agradeço à todos.

Yury Duarte
Engenheiro Agrônomo - ESALQ/USP


Em qui, 23 de ago de 2018 às 13:29, Elias T Krainski via R-br <[hidden email]> escreveu:
Veja a resposta do Adrian Baddeley (ao final do link abaixo) de como
criar um SpatialPolygons nesse contexto:

http://r-sig-geo.2731867.n2.nabble.com/convertion-delaunay-triangulation-to-SpatialPolygons-td4914093.html


Apos, use, por exemplo, writeOGR para gravar o SpatialPolygons em
shapefile.

Elias
_______________________________________________
R-br mailing list
[hidden email]
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 fornea cdigo mnimo reproduzvel.

_______________________________________________
R-br mailing list
[hidden email]
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.