Re: [R-br] Reclassificando mapa baseado em outro mapa e distribuição de probabilidades

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.

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. --- Este email foi escaneado pelo Avast antivírus. https://www.avast.com/antivirus

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.
------------------------------ [image: Avast logo] <https://www.avast.com/antivirus>
Este email foi escaneado pelo Avast antivírus. www.avast.com <https://www.avast.com/antivirus>
_______________________________________________ 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 Currículo Lattes <http://buscatextual.cnpq.br/buscatextual/visualizacv.do?id=K4299200T7> 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
participantes (3)
-
Luciano F. Sgarbi
-
Mauro Sznelwar
-
Ricardo Dobrovolski