Ricardo,

Sua função gera vários valores para cada célula.
veja: 
map1[i]=map1[1]-(sample(dist)[1]>=runif(1))*1

Eu ainda não sei se entendi qual o produto final que você deseja, mas vamos lá.

Um passo bem simples para aumentar a velocidade é transformar o dataframe (dist) em numeric.

Segundo, você poderia tentar vetorizar os cálculos.
eu começaria com algo assim:

map1<-raster("map1.asc")
map2<-raster("map2.asc")
r1<-rasterToPoints(map1)
r2<-extract(map2,r1[,1:2])
##Aqui faz o calculo da probabilidade
teste<-r1[,3]==3&r2==1&!is.na(r2)
##Aqui substitui tudo de uma só vez

Espero ter ajudado.
Abraço


Em 5 de outubro de 2015 21:17, Mauro Sznelwar <sznelwar@uol.com.br> escreveu:

Onde estão os arquivos para rodar? Só anexou o código fonte!

 

 

Faltou a função!

 

Em 5 de outubro de 2015 12:37, Ricardo Dobrovolski <rdobrovolski@gmail.com> escreveu:

Prezados,

 

Quero reclassificar o map1 de acordo com o map2.

 

O mapa 2 tem duas categorias, 3 e 2.

 

Quero que as células do map1 com a categoria 3 virem 2 se elas for sobreposta à categoria 1 do map2, de acordo com uma distribuição de probabilidades empírica, armazenada em change.dist.

 

Na verdade, preparei uma função para resolver esse problema, mas ela é baseada em um for no qual cada célula é avaliada. E isso é muito lento para a área avaliada.

 

Além disso, como o modelo é probabilistico, teríamos de fazer isso pelo menos 100 vezes. 

 

Assim, peço a ajuda dos senhores & senhoras para resolver o problema.

 

Segue abaixo a função e em anexo os arquivos.

 

Valeu!

 

Abraço,

 

RD.

 




Avast logo

Este email foi escaneado pelo Avast antivírus.
www.avast.com



_______________________________________________
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.



--
Luciano F. Sgarbi
Laboratório de Ecologia Teórica e Síntese
Departamento de Ecologia, Instituto de Ciências Biológicas V.
Universidade Federal de Goiás, campus II, Goiânia-GO, Brasil