[R-br] Operacionalizando a criação de múltiplos SpatialPolygons
ASANTOS
alexandresantosbr em yahoo.com.br
Segunda Julho 2 13:55:54 BRT 2012
Boa Tarde pessoal,
Gostaria de criar múltiplos polígonos do tipo SpatialPolygons
sem precisar ficar criando um objeto de cada vez, uma vez que disponho
de muitas parcelas. Como por exemplo, tenho 4 polígonos, sendo que as
etapas para a criação do SpatialPolygons, fica:
###Transforma as parcelas em objeto espacial
parc1 = Polygon(coordV_gr[[1]])
parc2 = Polygon(coordV_gr[[2]])
parc3 = Polygon(coordV_gr[[3]])
parc4 = Polygon(coordV_gr[[4]])
parc.all = Polygons(list(parc1, parc2, parc3, parc4), "parcs")
parcSP = SpatialPolygons(list(parc.all))
plot(parcSP)
Porém, no meu caso real eu tenho centenas de polígonos (parcelas)
dentro do objeto coordV_gr, então gostaria de saber se existe alguma
alternativa onde eu especifique o length(coordV_gr) e sejam criados os
objetos parc1 ate parc n, lançados dentro do list em Polygons(), criando
um novo arquivo parcSP de uma maneira otimizada, ou tenho que fazer
parcela por parcela na mão. Segue meu CRM completo abaixo, obrigado,
########################################################################
# Parcelas
##Calculado os vértices e desenhando as parcelas
ID<-1:4 ## identificador
xcc<-c(672036,672332,672674,672079)##coord X
ycc<-c(6783650,6784105,6783470,6782354)#coord Y
p.central<-cbind(ID,xcc,ycc)
p.central ## Criando um arquivo único com o centro dos transectos
###Criando os vértices do transectos
coordV <- vector()
for (i in 1:length(p.central)) {
coordV <-
rbind(coordV,cbind(p.central[,2][i]+c(-20,20,20,-20,-20),p.central[,3][i]+c(20,20,-20,-20,20)))
}
coordV
coordV2=coordV[!is.na(coordV[,1]),]
coordV2
### Criar um objeto list a cada 4 coordenadas
coordV_gr<-split(as.data.frame(coordV2), rep(1:nrow(coordV2), each=5,
length.out=nrow(coordV2)))
coordV_gr
###Transforma as parcelas em objeto espacial
parc1 = Polygon(coordV_gr[[1]])
parc2 = Polygon(coordV_gr[[2]])
parc3 = Polygon(coordV_gr[[3]])
parc4 = Polygon(coordV_gr[[4]])
parc.all = Polygons(list(parc1, parc2, parc3, parc4), "parcs")
parcSP = SpatialPolygons(list(parc.all))
plot(parcSP)
########################################################################
--
Alexandre dos Santos
Engenheiro Florestal, Dr.
Universidade Federal de Lavras
Departamento de Entomologia
Laboratório de Entomologia Florestal
Caixa Postal 3037
37200-000 - Lavras/MG
Fone: +55 (35) 9223-0304
Mais detalhes sobre a lista de discussão R-br