Criando um processo de pontos sobre uma área regular

Boa tarde pessoal, Estou tentando criar um processo de pontos aleatório sobre uma área regular representada por árvores regularmente espaçadas, sendo que o processo de pontos só pode ocorrer onde não existam árvores e estou quebrando a cabeça com isso, bom primeiro criei a área com as árvores: require(plotrix) ##Cria o limite da área limx<-c(2,2,20.5,20.5) limy<-c(2,20.5,20.5,2) plot(limx,limy) lim=cbind(limx,limy) lim<-as.matrix(lim) polygon(lim) ##Aqui criei a posição das árvores e com área igual ao seu diâmetro sq=seq(2.5,20,2.5) for (k in sq) { for(j in sq){ draw.circle(k,j,radius=0.3,col="red") }} Bom agora eu queria jogar sobre essa área o processo de pontos: ##Criando o processo de pontos x <- runif(n=500,min=0, max=20) y <- runif(n=500,min=0, max=20) xy<-cbind(x,y) points(xy) ## Porém, os pontos também caem nas mesmas posições ocupadas pelas árvores (obviamente), onde gostaria de saber se alguém conheceria alguma solução para eu fazer com que não haja sobreposição entre os raios que representam os diâmetros das árvores e os pontos criados? Na verdade, preciso definir uma maneira de fazer com que as coordenadas contidas nos diâmetros das árvores não sejam validas no momento da geração do processo de pontos, atualmente estou tentando soluções com o pacote spatstat mais sem sucesso, pois não consigo fazer com que a área criada seja um objeto ppp valido. Obrigado, -- Alexandre DOS SANTOS Engenheiro Florestal, Msc. Laboratório de Entomologia Florestal Departamento de Entomologia Universidade Federal de Lavras Caixa Postal 3037 37200-000 - Lavras - Minas Gerais - Brasil Tel: +55 35 92230304

Alexandre todas as arvores tem o mesmo " diametro" (area) se positivo o caminho seria uma simulação dentro de um loop "while" até conseguir completar o numero de pontos requerido o algoritmo seria enquanto o numero de pontos nao é atingido: 1. sorteie 1 ponto 2. calcule a distancia deste 'as arvores presentes e tome a menor 3. verifique se ele está no raio da árvoce 4 se nao estiver guarde o ponto e aumente o valor do contador caso contrario simule outro sem mudar o contador On Wed, 16 Nov 2011, ASANTOS wrote:
Boa tarde pessoal,
Estou tentando criar um processo de pontos aleatório sobre uma área regular representada por árvores regularmente espaçadas, sendo que o processo de pontos só pode ocorrer onde não existam árvores e estou quebrando a cabeça com isso, bom primeiro criei a área com as árvores:
require(plotrix) ##Cria o limite da área limx<-c(2,2,20.5,20.5) limy<-c(2,20.5,20.5,2) plot(limx,limy) lim=cbind(limx,limy) lim<-as.matrix(lim) polygon(lim)
##Aqui criei a posição das árvores e com área igual ao seu diâmetro sq=seq(2.5,20,2.5) for (k in sq) { for(j in sq){ draw.circle(k,j,radius=0.3,col="red") }}
Bom agora eu queria jogar sobre essa área o processo de pontos:
##Criando o processo de pontos x <- runif(n=500,min=0, max=20) y <- runif(n=500,min=0, max=20) xy<-cbind(x,y) points(xy) ##
Porém, os pontos também caem nas mesmas posições ocupadas pelas árvores (obviamente), onde gostaria de saber se alguém conheceria alguma solução para eu fazer com que não haja sobreposição entre os raios que representam os diâmetros das árvores e os pontos criados? Na verdade, preciso definir uma maneira de fazer com que as coordenadas contidas nos diâmetros das árvores não sejam validas no momento da geração do processo de pontos, atualmente estou tentando soluções com o pacote spatstat mais sem sucesso, pois não consigo fazer com que a área criada seja um objeto ppp valido. Obrigado,
-- Alexandre DOS SANTOS Engenheiro Florestal, Msc. Laboratório de Entomologia Florestal Departamento de Entomologia Universidade Federal de Lavras Caixa Postal 3037 37200-000 - Lavras - Minas Gerais - Brasil Tel: +55 35 92230304
_______________________________________________ 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.

Prof. Paulo, Perfeito, as árvores tem aproximadamente o mesmo diâmetro sim, pois são clones de eucalipto. Vou montar o algoritmo sugerido e calcular as distâncias com a função outer(). Novamente obrigado, -- Alexandre DOS SANTOS Engenheiro Florestal, Msc. Laboratório de Entomologia Florestal Departamento de Entomologia Universidade Federal de Lavras Caixa Postal 3037 37200-000 - Lavras - Minas Gerais - Brasil Tel: +55 35 92230304 Em 16-11-2011 15:29, Paulo Justiniano escreveu:
Alexandre
todas as arvores tem o mesmo " diametro" (area)
se positivo o caminho seria uma simulação dentro de um loop "while" até conseguir completar o numero de pontos requerido
o algoritmo seria
enquanto o numero de pontos nao é atingido:
1. sorteie 1 ponto 2. calcule a distancia deste 'as arvores presentes e tome a menor 3. verifique se ele está no raio da árvoce 4 se nao estiver guarde o ponto e aumente o valor do contador caso contrario simule outro sem mudar o contador
On Wed, 16 Nov 2011, ASANTOS wrote:
Boa tarde pessoal,
Estou tentando criar um processo de pontos aleatório sobre uma área regular representada por árvores regularmente espaçadas, sendo que o processo de pontos só pode ocorrer onde não existam árvores e estou quebrando a cabeça com isso, bom primeiro criei a área com as árvores:
require(plotrix) ##Cria o limite da área limx<-c(2,2,20.5,20.5) limy<-c(2,20.5,20.5,2) plot(limx,limy) lim=cbind(limx,limy) lim<-as.matrix(lim) polygon(lim)
##Aqui criei a posição das árvores e com área igual ao seu diâmetro sq=seq(2.5,20,2.5) for (k in sq) { for(j in sq){ draw.circle(k,j,radius=0.3,col="red") }}
Bom agora eu queria jogar sobre essa área o processo de pontos:
##Criando o processo de pontos x <- runif(n=500,min=0, max=20) y <- runif(n=500,min=0, max=20) xy<-cbind(x,y) points(xy) ##
Porém, os pontos também caem nas mesmas posições ocupadas pelas árvores (obviamente), onde gostaria de saber se alguém conheceria alguma solução para eu fazer com que não haja sobreposição entre os raios que representam os diâmetros das árvores e os pontos criados? Na verdade, preciso definir uma maneira de fazer com que as coordenadas contidas nos diâmetros das árvores não sejam validas no momento da geração do processo de pontos, atualmente estou tentando soluções com o pacote spatstat mais sem sucesso, pois não consigo fazer com que a área criada seja um objeto ppp valido. Obrigado,
-- Alexandre DOS SANTOS Engenheiro Florestal, Msc. Laboratório de Entomologia Florestal Departamento de Entomologia Universidade Federal de Lavras Caixa Postal 3037 37200-000 - Lavras - Minas Gerais - Brasil Tel: +55 35 92230304
_______________________________________________ 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.
-- Alexandre DOS SANTOS Engenheiro Florestal, Msc. Laboratório de Entomologia Florestal Departamento de Entomologia Universidade Federal de Lavras Caixa Postal 3037 37200-000 - Lavras - Minas Gerais - Brasil Tel: +55 35 92230304

Deu certo? Fiquei curioso. Aliás, não faz diferença no atual problema, mas como eu venho treinando o uso de funções da família apply para evitar loopings, resolvi mexer no código informado na primeira mensagem. Troquei: for (k in sq) { for(j in sq){ draw.circle(k,j,radius=0.3,col="red") }} por dois sapply, um dentro do outro: sapply(sq, function(k) sapply(sq,function(j) {draw.circle(k,j,radius=0.3,col="red")})) O resultado foi o mesmo. Eu só não soube dizer se isso é mais eficiente do que como estava inicialmente, com os dois for. Para bases grandes (talvez gigantes) os sapply reduziriam bastante o tempo de processamento ou de memória utilizada? Abs. Paulo Em 16 de novembro de 2011 17:03, ASANTOS <alexandresantosbr@yahoo.com.br>escreveu:
Prof. Paulo,
Perfeito, as árvores tem aproximadamente o mesmo diâmetro sim, pois são clones de eucalipto. Vou montar o algoritmo sugerido e calcular as distâncias com a função outer().
Novamente obrigado,
-- Alexandre DOS SANTOS Engenheiro Florestal, Msc. Laboratório de Entomologia Florestal Departamento de Entomologia Universidade Federal de Lavras Caixa Postal 3037 37200-000 - Lavras - Minas Gerais - Brasil Tel: +55 35 92230304
Em 16-11-2011 15:29, Paulo Justiniano escreveu:
Alexandre
todas as arvores tem o mesmo " diametro" (area)
se positivo o caminho seria uma simulação dentro de um loop "while" até conseguir completar o numero de pontos requerido
o algoritmo seria
enquanto o numero de pontos nao é atingido:
1. sorteie 1 ponto 2. calcule a distancia deste 'as arvores presentes e tome a menor 3. verifique se ele está no raio da árvoce 4 se nao estiver guarde o ponto e aumente o valor do contador caso contrario simule outro sem mudar o contador
On Wed, 16 Nov 2011, ASANTOS wrote:
Boa tarde pessoal,
Estou tentando criar um processo de pontos aleatório sobre uma área regular representada por árvores regularmente espaçadas, sendo que o processo de pontos só pode ocorrer onde não existam árvores e estou quebrando a cabeça com isso, bom primeiro criei a área com as árvores:
require(plotrix) ##Cria o limite da área limx<-c(2,2,20.5,20.5) limy<-c(2,20.5,20.5,2) plot(limx,limy) lim=cbind(limx,limy) lim<-as.matrix(lim) polygon(lim)
##Aqui criei a posição das árvores e com área igual ao seu diâmetro sq=seq(2.5,20,2.5) for (k in sq) { for(j in sq){ draw.circle(k,j,radius=0.3,col="red") }}
Bom agora eu queria jogar sobre essa área o processo de pontos:
##Criando o processo de pontos x <- runif(n=500,min=0, max=20) y <- runif(n=500,min=0, max=20) xy<-cbind(x,y) points(xy) ##
Porém, os pontos também caem nas mesmas posições ocupadas pelas árvores (obviamente), onde gostaria de saber se alguém conheceria alguma solução para eu fazer com que não haja sobreposição entre os raios que representam os diâmetros das árvores e os pontos criados? Na verdade, preciso definir uma maneira de fazer com que as coordenadas contidas nos diâmetros das árvores não sejam validas no momento da geração do processo de pontos, atualmente estou tentando soluções com o pacote spatstat mais sem sucesso, pois não consigo fazer com que a área criada seja um objeto ppp valido. Obrigado,
-- Alexandre DOS SANTOS Engenheiro Florestal, Msc. Laboratório de Entomologia Florestal Departamento de Entomologia Universidade Federal de Lavras Caixa Postal 3037 37200-000 - Lavras - Minas Gerais - Brasil Tel: +55 35 92230304
_______________________________________________ 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 listR-br@listas.c3sl.ufpr.brhttps://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 Engenheiro Florestal, Msc. Laboratório de Entomologia Florestal Departamento de Entomologia Universidade Federal de Lavras Caixa Postal 3037 37200-000 - Lavras - Minas Gerais - Brasil Tel: +55 35 92230304
_______________________________________________ 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.

Boa tarde pessoal, Retornei ao problema de simular um processo de pontos sobre uma área regular, representada por um plantio de árvores com 25cm de tronco (com espaçamento 3x2.5m), onde os pontos não podem sobrepor os troncos. Tentei montar o algoritmo sugerido pelo Prof. Paulo, mas me deparei com alguns problemas, vou explicar passo a passo e ver se alguém da programação pode me dar um help, fiz: require(plotrix) require(gpclib) require(spatstat) ##Cria o limite da área limx<-c(2,2,21,21) limy<-c(2,21,21,2) plot(limx,limy)##Plota o limite lim=cbind(limx,limy) lim<-as.matrix(lim) polygon(lim) ##Cria as árvores regularmente espaçadas -3x2m sq=seq(2.5,20,2.5) coord<-NULL for (k in sq) { for(j in sq){ draw.circle(k,j+0.5,radius=0.25,col="red")##Representação gráfica dos troncos com 25cm de diâmetro coord<-rbind(coord,c(k,j+0.5))##Coordenada das árvores -3x2m colnames(coord)<-c("xc","yc") }} ###Criando a janela a ser utilizada no pacote spatstat cont<-lim a <- as(lim, "gpc.poly") w <- as.owin(a) ### Cria o processo de pontos - Poisson E é aqui vem o problema, pois não tem como eu adicionar um contador para ver ponto por ponto se a coordenada do ponto esta sobrepondo o tronco, pois a função rpoispp() do spatstat, cria o processo de pontos de Poisson em intensidade por unidade de área, sendo que minha ideia seria fazer: res<-NULL while (sqrt(outer(xy[,1],xc,"-")^2+outer(xy[,2],yc,"-")^2)>0.25) {##Calcula a distância dos pontos que não sobrepõem o tronco xypois=rpoispp(2,win=a)##Lambda = 2/m^2 xd=xypois$x yd=xypois$y points(xd,yd) res=cbind(res,c(xd,yd)) #Cria a matriz de coordenada dos pontos } point(res[,1],res[,2]) ## Sendo que o resultado final que espero obter são as coordenadas dos pontos que não ocupam o mesmo local que os troncos. Então pergunto se alguém poderia me dar uma luz, Obrigado, Alexandre Em 16-11-2011 17:03, ASANTOS escreveu:
Prof. Paulo,
Perfeito, as árvores tem aproximadamente o mesmo diâmetro sim, pois são clones de eucalipto. Vou montar o algoritmo sugerido e calcular as distâncias com a função outer().
Novamente obrigado,
-- Alexandre DOS SANTOS Engenheiro Florestal, Msc. Laboratório de Entomologia Florestal Departamento de Entomologia Universidade Federal de Lavras Caixa Postal 3037 37200-000 - Lavras - Minas Gerais - Brasil Tel: +55 35 92230304
Em 16-11-2011 15:29, Paulo Justiniano escreveu:
Alexandre
todas as arvores tem o mesmo " diametro" (area)
se positivo o caminho seria uma simulação dentro de um loop "while" até conseguir completar o numero de pontos requerido
o algoritmo seria
enquanto o numero de pontos nao é atingido:
1. sorteie 1 ponto 2. calcule a distancia deste 'as arvores presentes e tome a menor 3. verifique se ele está no raio da árvoce 4 se nao estiver guarde o ponto e aumente o valor do contador caso contrario simule outro sem mudar o contador
On Wed, 16 Nov 2011, ASANTOS wrote:
Boa tarde pessoal,
Estou tentando criar um processo de pontos aleatório sobre uma área regular representada por árvores regularmente espaçadas, sendo que o processo de pontos só pode ocorrer onde não existam árvores e estou quebrando a cabeça com isso, bom primeiro criei a área com as árvores:
require(plotrix) ##Cria o limite da área limx<-c(2,2,20.5,20.5) limy<-c(2,20.5,20.5,2) plot(limx,limy) lim=cbind(limx,limy) lim<-as.matrix(lim) polygon(lim)
##Aqui criei a posição das árvores e com área igual ao seu diâmetro sq=seq(2.5,20,2.5) for (k in sq) { for(j in sq){ draw.circle(k,j,radius=0.3,col="red") }}
Bom agora eu queria jogar sobre essa área o processo de pontos:
##Criando o processo de pontos x <- runif(n=500,min=0, max=20) y <- runif(n=500,min=0, max=20) xy<-cbind(x,y) points(xy) ##
Porém, os pontos também caem nas mesmas posições ocupadas pelas árvores (obviamente), onde gostaria de saber se alguém conheceria alguma solução para eu fazer com que não haja sobreposição entre os raios que representam os diâmetros das árvores e os pontos criados? Na verdade, preciso definir uma maneira de fazer com que as coordenadas contidas nos diâmetros das árvores não sejam validas no momento da geração do processo de pontos, atualmente estou tentando soluções com o pacote spatstat mais sem sucesso, pois não consigo fazer com que a área criada seja um objeto ppp valido. Obrigado,
-- Alexandre DOS SANTOS Engenheiro Florestal, Msc. Laboratório de Entomologia Florestal Departamento de Entomologia Universidade Federal de Lavras Caixa Postal 3037 37200-000 - Lavras - Minas Gerais - Brasil Tel: +55 35 92230304
_______________________________________________ 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.
-- Alexandre DOS SANTOS Engenheiro Florestal, Msc. Laboratório de Entomologia Florestal Departamento de Entomologia Universidade Federal de Lavras Caixa Postal 3037 37200-000 - Lavras - Minas Gerais - Brasil Tel: +55 35 92230304
_______________________________________________ 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 Engenheiro Florestal, Msc. Laboratório de Entomologia Florestal Departamento de Entomologia Universidade Federal de Lavras Caixa Postal 3037 37200-000 - Lavras - Minas Gerais - Brasil Tel: +55 35 92230304

Veja um exemplo a seguir: x0 <- seq(3, 21, 3) y0 <- seq(2.5, 21, 2.5) xy0 <- as.matrix(expand.grid(x=x0, y=y0)) n0 <- nrow(xy0) symbols(xy0[,1], xy0[,2], rep(0.3, n0), inches=FALSE, bg=4, asp=1) rpts <- function(n, xy.no, xlim, ylim, radius) { xy.res <- matrix(NA, n, 2) for (i in 1:n) { sim <- TRUE while (sim) { x <- runif(1, xlim[1], xlim[2]) y <- runif(1, ylim[1], ylim[2]) sim <- min(sqrt((xy.no[,1]-x)^2 + (xy.no[,2]-y)^2))<radius } xy.res[i,] <- c(x,y) } return(xy.res) } pts <- rpts(30, xy0, c(2,22), c(2,21), 0.3) points(pts, col=2, pch=3) Att. Elias T. Krainski
________________________________ De: ASANTOS <alexandresantosbr@yahoo.com.br> Para: r-br@listas.c3sl.ufpr.br Enviadas: Terça-feira, 10 de Janeiro de 2012 16:14 Assunto: Re: [R-br] Criando um processo de pontos sobre uma área regular
Boa tarde pessoal, Retornei ao problema de simular um processo de pontos sobre uma área regular, representada por um plantio de árvores com 25cm de tronco (com espaçamento 3x2.5m), onde os pontos não podem sobrepor os troncos. Tentei montar o algoritmo sugerido pelo Prof. Paulo, mas me deparei com alguns problemas, vou explicar passo a passo e ver se alguém da programação pode me dar um help, fiz:
require(plotrix) require(gpclib) require(spatstat)
##Cria o limite da área limx<-c(2,2,21,21) limy<-c(2,21,21,2) plot(limx,limy)##Plota o limite lim=cbind(limx,limy) lim<-as.matrix(lim) polygon(lim)
##Cria as árvores regularmente espaçadas -3x2m sq=seq(2.5,20,2.5) coord<-NULL for (k in sq) { for(j in sq){ draw.circle(k,j+0.5,radius=0.25,col="red")##Representação gráfica dos troncos com 25cm de diâmetro coord<-rbind(coord,c(k,j+0.5))##Coordenada das árvores -3x2m colnames(coord)<-c("xc","yc") }}
###Criando a janela a ser utilizada no pacote spatstat cont<-lim a <- as(lim, "gpc.poly") w <- as.owin(a)
### Cria o processo de pontos - Poisson
E é aqui vem o problema, pois não tem como eu adicionar um contador para ver ponto por ponto se a coordenada do ponto esta sobrepondo o tronco, pois a função rpoispp() do spatstat, cria o processo de pontos de Poisson em intensidade por unidade de área, sendo que minha ideia seria fazer:
res<-NULL
while (sqrt(outer(xy[,1],xc,"-")^2+outer(xy[,2],yc,"-")^2)>0.25) {##Calcula a distância dos pontos que não sobrepõem o tronco
xypois=rpoispp(2,win=a)##Lambda = 2/m^2 xd=xypois$x yd=xypois$y points(xd,yd) res=cbind(res,c(xd,yd)) #Cria a matriz de coordenada dos pontos } point(res[,1],res[,2]) ## Sendo que o resultado final que espero obter são as coordenadas dos pontos que não ocupam o mesmo local que os troncos. Então pergunto se alguém poderia me dar uma luz, Obrigado, Alexandre
Em 16-11-2011 17:03, ASANTOS escreveu: Prof. Paulo,
Perfeito, as árvores tem aproximadamente o mesmo diâmetro sim, pois são clones de eucalipto. Vou montar o algoritmo sugerido e calcular as distâncias com a função outer().
Novamente obrigado,
-- Alexandre DOS SANTOS Engenheiro Florestal, Msc. Laboratório de Entomologia Florestal Departamento de Entomologia Universidade Federal de Lavras Caixa Postal 3037 37200-000 - Lavras - Minas Gerais - Brasil Tel: +55 35 92230304 Em 16-11-2011 15:29, Paulo Justiniano escreveu: Alexandre
todas as arvores tem o mesmo " diametro" (area)
se positivo o caminho seria uma simulação dentro de um loop
"while"
até conseguir completar o numero de pontos requerido
o algoritmo seria
enquanto o numero de pontos nao é atingido:
1. sorteie 1 ponto 2. calcule a distancia deste 'as arvores presentes e tome a menor 3. verifique se ele está no raio da árvoce 4 se nao estiver guarde o ponto e aumente o valor do contador caso contrario simule outro sem mudar o contador
On Wed, 16 Nov 2011, ASANTOS wrote:
Boa tarde pessoal,
Estou tentando criar um processo de pontos aleatório sobre
uma área regular representada por árvores regularmente espaçadas, sendo que o processo de pontos só pode ocorrer onde não existam árvores e estou quebrando a cabeça com isso, bom primeiro criei a área com as árvores:
require(plotrix) ##Cria o limite da área limx<-c(2,2,20.5,20.5) limy<-c(2,20.5,20.5,2) plot(limx,limy) lim=cbind(limx,limy) lim<-as.matrix(lim) polygon(lim)
##Aqui criei a posição das árvores e com área igual ao seu
diâmetro
sq=seq(2.5,20,2.5) for (k in sq) { for(j in sq){ draw.circle(k,j,radius=0.3,col="red") }}
Bom agora eu queria jogar sobre essa área o processo de pontos:
##Criando o processo de pontos x <- runif(n=500,min=0, max=20) y <- runif(n=500,min=0, max=20) xy<-cbind(x,y) points(xy) ##
Porém, os pontos também caem nas mesmas posições ocupadas pelas árvores (obviamente), onde gostaria de saber se alguém conheceria alguma solução para eu fazer com que não haja sobreposição entre os raios que representam os diâmetros das árvores e os pontos criados? Na verdade, preciso definir uma maneira de fazer com que as coordenadas contidas nos diâmetros das árvores não sejam validas no momento da geração do processo de pontos, atualmente estou tentando soluções com o pacote spatstat mais sem sucesso, pois não consigo fazer com que a área criada seja um objeto ppp valido. Obrigado,
-- Alexandre DOS SANTOS Engenheiro Florestal, Msc. Laboratório de Entomologia Florestal Departamento de Entomologia Universidade Federal de Lavras Caixa Postal 3037 37200-000 - Lavras - Minas Gerais - Brasil Tel: +55 35 92230304
_______________________________________________ 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.
-- Alexandre DOS SANTOS Engenheiro Florestal, Msc. Laboratório de Entomologia Florestal Departamento de Entomologia Universidade Federal de Lavras Caixa Postal 3037 37200-000 - Lavras - Minas Gerais - Brasil Tel: +55 35 92230304
_______________________________________________ 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 Engenheiro Florestal, Msc. Laboratório de Entomologia Florestal Departamento de Entomologia Universidade Federal de Lavras Caixa Postal 3037 37200-000 - Lavras - Minas Gerais - Brasil Tel: +55 35 92230304 _______________________________________________ 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.

Muito Obrigado Elias, Era exatamente isso que eu estava procurando, Redobrados agradecimentos, Alexandre Em 10-01-2012 16:42, Elias T. Krainski escreveu:
Veja um exemplo a seguir:
x0 <- seq(3, 21, 3) y0 <- seq(2.5, 21, 2.5) xy0 <- as.matrix(expand.grid(x=x0, y=y0)) n0 <- nrow(xy0)
symbols(xy0[,1], xy0[,2], rep(0.3, n0), inches=FALSE, bg=4, asp=1)
rpts <- function(n, xy.no, xlim, ylim, radius) { xy.res <- matrix(NA, n, 2) for (i in 1:n) { sim <- TRUE while (sim) { x <- runif(1, xlim[1], xlim[2]) y <- runif(1, ylim[1], ylim[2]) sim <- min(sqrt((xy.no[,1]-x)^2 + (xy.no[,2]-y)^2))<radius } xy.res[i,] <- c(x,y) } return(xy.res) }
pts <- rpts(30, xy0, c(2,22), c(2,21), 0.3)
points(pts, col=2, pch=3)
Att. Elias T. Krainski
------------------------------------------------------------------------ *De:* ASANTOS <alexandresantosbr@yahoo.com.br> *Para:* r-br@listas.c3sl.ufpr.br *Enviadas:* Terça-feira, 10 de Janeiro de 2012 16:14 *Assunto:* Re: [R-br] Criando um processo de pontos sobre uma área regular
Boa tarde pessoal,
Retornei ao problema de simular um processo de pontos sobre uma área regular, representada por um plantio de árvores com 25cm de tronco (com espaçamento 3x2.5m), onde os pontos não podem sobrepor os troncos. Tentei montar o algoritmo sugerido pelo Prof. Paulo, mas me deparei com alguns problemas, vou explicar passo a passo e ver se alguém da programação pode me dar um help, fiz:
require(plotrix) require(gpclib) require(spatstat)
##Cria o limite da área limx<-c(2,2,21,21) limy<-c(2,21,21,2) plot(limx,limy)##Plota o limite lim=cbind(limx,limy) lim<-as.matrix(lim) polygon(lim)
##Cria as árvores regularmente espaçadas -3x2m sq=seq(2.5,20,2.5) coord<-NULL for (k in sq) { for(j in sq){ draw.circle(k,j+0.5,radius=0.25,col="red")##Representação gráfica dos troncos com 25cm de diâmetro coord<-rbind(coord,c(k,j+0.5))##Coordenada das árvores -3x2m colnames(coord)<-c("xc","yc") }}
###Criando a janela a ser utilizada no pacote spatstat cont<-lim a <- as(lim, "gpc.poly") w <- as.owin(a)
### Cria o processo de pontos - Poisson
E é aqui vem o problema, pois não tem como eu adicionar um contador para ver ponto por ponto se a coordenada do ponto esta sobrepondo o tronco, pois a função rpoispp() do spatstat, cria o processo de pontos de Poisson em intensidade por unidade de área, sendo que minha ideia seria fazer:
res<-NULL
while (sqrt(outer(xy[,1],xc,"-")^2+outer(xy[,2],yc,"-")^2)>0.25) {##Calcula a distância dos pontos que não sobrepõem o tronco
xypois=rpoispp(2,win=a)##Lambda = 2/m^2 xd=xypois$x yd=xypois$y points(xd,yd) res=cbind(res,c(xd,yd)) #Cria a matriz de coordenada dos pontos } point(res[,1],res[,2]) ## Sendo que o resultado final que espero obter são as coordenadas dos pontos que não ocupam o mesmo local que os troncos. Então pergunto se alguém poderia me dar uma luz, Obrigado, Alexandre
Em 16-11-2011 17:03, ASANTOS escreveu:
Prof. Paulo,
Perfeito, as árvores tem aproximadamente o mesmo diâmetro sim, pois são clones de eucalipto. Vou montar o algoritmo sugerido e calcular as distâncias com a função outer().
Novamente obrigado,
-- Alexandre DOS SANTOS Engenheiro Florestal, Msc. Laboratório de Entomologia Florestal Departamento de Entomologia Universidade Federal de Lavras Caixa Postal 3037 37200-000 - Lavras - Minas Gerais - Brasil Tel: +55 35 92230304
Em 16-11-2011 15:29, Paulo Justiniano escreveu:
Alexandre
todas as arvores tem o mesmo " diametro" (area)
se positivo o caminho seria uma simulação dentro de um loop "while" até conseguir completar o numero de pontos requerido
o algoritmo seria
enquanto o numero de pontos nao é atingido:
1. sorteie 1 ponto 2. calcule a distancia deste 'as arvores presentes e tome a menor 3. verifique se ele está no raio da árvoce 4 se nao estiver guarde o ponto e aumente o valor do contador caso contrario simule outro sem mudar o contador
On Wed, 16 Nov 2011, ASANTOS wrote:
Boa tarde pessoal,
Estou tentando criar um processo de pontos aleatório sobre uma área regular representada por árvores regularmente espaçadas, sendo que o processo de pontos só pode ocorrer onde não existam árvores e estou quebrando a cabeça com isso, bom primeiro criei a área com as árvores:
require(plotrix) ##Cria o limite da área limx<-c(2,2,20.5,20.5) limy<-c(2,20.5,20.5,2) plot(limx,limy) lim=cbind(limx,limy) lim<-as.matrix(lim) polygon(lim)
##Aqui criei a posição das árvores e com área igual ao seu diâmetro sq=seq(2.5,20,2.5) for (k in sq) { for(j in sq){ draw.circle(k,j,radius=0.3,col="red") }}
Bom agora eu queria jogar sobre essa área o processo de pontos:
##Criando o processo de pontos x <- runif(n=500,min=0, max=20) y <- runif(n=500,min=0, max=20) xy<-cbind(x,y) points(xy) ##
Porém, os pontos também caem nas mesmas posições ocupadas pelas árvores (obviamente), onde gostaria de saber se alguém conheceria alguma solução para eu fazer com que não haja sobreposição entre os raios que representam os diâmetros das árvores e os pontos criados? Na verdade, preciso definir uma maneira de fazer com que as coordenadas contidas nos diâmetros das árvores não sejam validas no momento da geração do processo de pontos, atualmente estou tentando soluções com o pacote spatstat mais sem sucesso, pois não consigo fazer com que a área criada seja um objeto ppp valido. Obrigado,
-- Alexandre DOS SANTOS Engenheiro Florestal, Msc. Laboratório de Entomologia Florestal Departamento de Entomologia Universidade Federal de Lavras Caixa Postal 3037 37200-000 - Lavras - Minas Gerais - Brasil Tel: +55 35 92230304
_______________________________________________ R-br mailing list R-br@listas.c3sl.ufpr.br <mailto: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 <mailto: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 Engenheiro Florestal, Msc. Laboratório de Entomologia Florestal Departamento de Entomologia Universidade Federal de Lavras Caixa Postal 3037 37200-000 - Lavras - Minas Gerais - Brasil Tel: +55 35 92230304
_______________________________________________ R-br mailing list R-br@listas.c3sl.ufpr.br <mailto: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 Engenheiro Florestal, Msc. Laboratório de Entomologia Florestal Departamento de Entomologia Universidade Federal de Lavras Caixa Postal 3037 37200-000 - Lavras - Minas Gerais - Brasil Tel: +55 35 92230304
_______________________________________________ R-br mailing list R-br@listas.c3sl.ufpr.br <mailto: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.
-- Alexandre DOS SANTOS Engenheiro Florestal, Msc. Laboratório de Entomologia Florestal Departamento de Entomologia Universidade Federal de Lavras Caixa Postal 3037 37200-000 - Lavras - Minas Gerais - Brasil Tel: +55 35 92230304

Ola pessoal estou precisando de ajuda, para fazer uma simulação com quatro testes de comparação de médias e ver qual seria o mais eficiente entre ele porem, não tenho muito conhecimento em simulação: consiste testar um experimento inteiramente ao acaso, com os pressupostos checados e realizar os testes de médias duas a duas, para verificar qual é mais eficiente! Quantos ao teste quais o testes usados eu acrescentaria posteriormente na rotina porem não tem conhecimento para realizar essa simulação. Desde já muito obrigado!!! Carlos Pereira da Silva Bacharel em Estatística - UEPB Campina Grande Cel: 083 - 9672- 1966 Email: ccpsilva81@hotmail.com __________________________________________ Tenha Um Dia Abençoado Por DEUS!!! Sl – 34, 8

Ola pessoal estou precisando de ajuda, para fazer uma simulação com quatro testes de comparação de médias e ver qual seria o mais eficiente entre ele porem, não tenho muito conhecimento em simulação: consiste testar um experimento inteiramente ao acaso, com os pressupostos checados e realizar os testes de médias duas a duas, para verificar qual é mais eficiente! Quantos ao teste quais o testes usados eu acrescentaria posteriormente na rotina porem não tem conhecimento para realizar essa simulação. Desde já muito obrigado!!! Carlos Pereira da Silva Bacharel em Estatística - UEPB Campina Grande Cel: 083 - 9672- 1966 Email: ccpsilva81@hotmail.com __________________________________________ Tenha Um Dia Abençoado Por DEUS!!! Sl – 34, 8

Procure as funções que façam os testes que deseja e crie a rotina para simular. A função replicate() pode ser útil nisso. Você quer ver o nível de significancia nominal por comparação (pairwise), por família de comparações (global)? Veja o pacote multcomp para opções de testes de médias (ou critérios para correção da multiplicidade). À disposição. Walmes. ========================================================================== Walmes Marques Zeviani LEG (Laboratório de Estatística e Geoinformação, 25.450418 S, 49.231759 W) Departamento de Estatística - Universidade Federal do Paraná fone: (+55) 41 3361 3573 VoIP: (3361 3600) 1053 1173 e-mail: walmes@ufpr.br twitter: @walmeszeviani homepage: http://www.leg.ufpr.br/~walmes linux user number: 531218 ==========================================================================
participantes (6)
-
ASANTOS
-
Carlos Pereira
-
Elias T. Krainski
-
Paulo Justiniano
-
Paulo Nogueira
-
Walmes Zeviani