[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