[R-br] Criando um processo de pontos sobre uma área regular
Paulo Nogueira
paulons em gmail.com
Sexta Novembro 25 20:49:00 BRST 2011
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 em 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 em 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 em 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 em 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.
>
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://listas.inf.ufpr.br/pipermail/r-br/attachments/20111125/b0f788ea/attachment.html>
Mais detalhes sobre a lista de discussão R-br