[R-br] Removendo pontos dentro de um grid

Alexandre dos Santos alexandresantosbr em yahoo.com.br
Sexta Abril 22 12:08:38 BRT 2011


Obrigado Prof.Paulo, Ivan e Gustavo,

     Mais não é bem isso ainda, na verdade eu tenho uma matriz de
coordenadas xp e yp, mas usando o exemplo anterior ainda para explicar
melhor, 
Com uma matriz de pontos equidistantes em 10 metros, sendo,
> head(malha10)
  xp yp
1 15 15
2 25 15
3 35 15
4 45 15
5 55 15
6 65 15
     Quero agora utilizar somente as coordenadas que estão equidistantes em
20 metros, então no meu novo objeto malha20, eu não teria as linhas 2, 4 e 6
do exemplo anterior. Estou tentando estabelecer uma rotina, pois tenho
vários bancos de dados e vou reorganizar em, por exemplo, para as
coordenadas 10x20metros, 20x20m, 20x30m, e assim por diante, estou tentando
fazer algo como:

malha20<-malha10
 if(malha20[malha20$xp[2]-malha20$xp[1]<20,]) {malha20[malha20$xp[2]=0,]}
 if(malha20[malha20$yp[2]-malha20$yp[1]<20,]) {malha20[malha20$yp[2]=0,]}
malha20<-malha20[malha20$xp!=0 & malha20$yp!=0]

	Mais minha ignorância em programação não esta me termitindo
selecionar corretamente os elementos da linha dentro da coluna, mais quando
faço para as duas primeiras linhas da primeira coluna, como :
if(malha20$xp[2]-malha20$xp[1]<20) {malha20$xp[2]=0}
Funciona, 
Obrigado , 


 
Alexandre dos Santos
Ingenieur forestier, Msc.
INRA- Biostatistique et Processus Spatiaux (BioSP)
Domaine Saint-Paul
Site Agroparc 
84914 -  Avignon - France
Tél. : +33 (0)6 87 95 16 29






 

-----Original Message-----
From: r-br-bounces em listas.c3sl.ufpr.br
[mailto:r-br-bounces em listas.c3sl.ufpr.br] On Behalf Of Paulo Justiniano
Sent: sexta-feira, 22 de abril de 2011 10:22
To: r-br em listas.c3sl.ufpr.br
Subject: Re: [R-br] Removendo pontos dentro de um grid

Nests caso pensando no grid de pontos como uma matriz vc quer pegar os
pontos que estao nas posicoes impares de linhas e colunas

ind <- outer(2*(1:10)-1, 2*(1:10)-1, function(i,j) i+ 20*(j-1)) malha20 <-
malha10[ind,]


On Fri, 22 Apr 2011, Alexandre dos Santos wrote:

> 
> Bom dia pessoal,
> 
>  
> 
>     Estou criando uma malha de pontos da seguinte forma:
> 
> p0<- c(15,15)#Ponto inicial
> 
> malha10<- expand.grid(xp=seq(p0[1], by=10, length.out=20), 
> yp=seq(p0[2], by=10, length.out=20))#Criando um grid de pontos a cada 
> 10 metros
> 
> plot(malha10)# Visualizando a malha de postos
> 
>  
> 
> Agora, gostaria das coordenadas dos pontos a cada 20m, à partir de p0, 
> mas gostaria de manipular o objeto já criado malha10, sem ter que
> 
> fazer um novo objeto expand.grid(... by=20), na verdade, gostaria de 
> criar um novo objeto malha20, mas fazendo malha20=malha10 e após 
> remover as coordenadas dos pontos do objeto malha10 que não satisfaçam 
> a condição , tentei um
> outer() para descobrir as distancias entre todos os pontos e após 
> impor uma condição =20, mas não estou conseguindo não, alguem poderia 
> dar um help,
> 
> Obrigado,
> 
>  
> 
>  
> 
> Alexandre dos Santos
> 
> Ingenieur forestier, Msc.
> 
> INRA- Biostatistique et Processus Spatiaux (BioSP)
> 
> Domaine Saint-Paul
> Site Agroparc
> 84914 -  Avignon - France
> Tél. : +33 (0)6 87 95 16 29
> 
>  
> 
> 
>



Mais detalhes sobre a lista de discussão R-br