[R-br] Diferenças entre sistemas operacionais (geoR)

Yury Duarte yurynepomuceno em gmail.com
Qua Nov 7 10:14:54 -02 2018


Olá Thiago, como vai?

Desculpe pela demora na resposta. Mas não houve nenhum desdobramento na
discussão.
Acabei optando por utilizar outra estratégia para resolver o problema.
Utilizando a função krige, independente do sistema operacional utilizado,
os resultados das saidas foram os mesmo. Anexei o código abaixo, caso
queira dar uma olhada.

Abraços

#-----Gera uma malha de pontos raster-----#
gerar_grade_de_pontos_dentro_do_talhao = function(tamanho_pixel_em_m,

shapefile_contorno_do_talhao,
                                                  distancia){

  print('gerar_grade_de_pontos_dentro_do_talhao')
  extensao_do_talhao =
data.frame(bbox(shapefile_contorno_do_talhao_original))

  datum_utm = proj4string(shapefile_contorno_do_talhao)

  grade = expand.grid(x = seq(from = extensao_do_talhao[1, 1],
                              to = extensao_do_talhao[1, 2],
                              by = tamanho_pixel_em_m),
                      y = seq(from = extensao_do_talhao[2, 1],
                              to = extensao_do_talhao[2, 2],
                              by = tamanho_pixel_em_m))

  coordinates(grade) = ~x + y
  proj4string(grade) = CRS(datum_utm)

  buffer_do_talhao = ativar_buffer(shapefile_contorno_do_talhao,
#'ativar_buffer' eh uma funcao
                                   TRUE,
                                   datum_utm,
                                   distancia)

  grade_dentro_do_talhao = crop(grade, buffer_do_talhao)

  gridded(grade_dentro_do_talhao) = TRUE
  fullgrid(grade_dentro_do_talhao) = TRUE


  return(grade_dentro_do_talhao)
}

#-----Gera o grid para receber os valores interpolados-----#
    grid_talhao = gerar_grade_de_pontos_dentro_do_talhao(20,

 shapefile_contorno_do_talhao_original,
                                                         0)

    #-----Krigagem-----#
    variograma = variogram( layer ~ 1, shapefile_pontos_ndvi, cutoff =
50000, width = 30 )
    plot(variograma)
    maxima_semivariancia = max(variograma$gamma)
    maximo_alcance =
variograma[which(variograma$gamma==maxima_semivariancia),2]
    modelo = vgm( maxima_semivariancia, "Sph", maximo_alcance, nug = 0)
    krigagem_ordinaria = krige(layer ~ 1, shapefile_pontos_ndvi,
grid_talhao, model = modelo, nmax=9);
    #-----descomentar a linha abaixo caso queira ver o plot-----#
    #print( sp::spplot(OK["var1.pred"], xlab="(NDVI)"), split=c( 1, 1, 2, 1
), more=T )

    coordenadas_raster = raster(grid_talhao, 20)
    coordenadas = rasterToPoints(coordenadas_raster, spatial = FALSE)

    fim = data.frame(coordenadas[,1], coordenadas[,2],
krigagem_ordinaria$var1.pred)
    coordenadas = data.frame(coordenadas[,1], coordenadas[,2])
    coordenadas = coordinates(coordenadas)
    dados = data.frame(fim$krigagem_ordinaria.var1.pred)
    #-----Descomentar linha abaixo para salvar o dataframe em .txt das
interpolacoes e suas coordenadas-----#
    #write.table(fim, paste0(raiz, i, '_', 'teste_grid.txt'), sep = ',',
row.names = F)

    shp_final = SpatialPointsDataFrame(coords = coordenadas, data = dados)
    shp_final = intersect(shp_final, shapefile_contorno_do_talhao_original)

Yury Duarte
Engenheiro Agrônomo - ESALQ/USP


Em ter, 16 de out de 2018 às 18:45, Thiago V. dos Santos <
thi_veloso em yahoo.com.br> escreveu:

> Apenas por curiosidade: essa duvida teve algum desdobramento?
>
> Greetings,
>  -- Thiago V. dos Santos
>
> Postdoctoral Research Fellow
> Department of Climate and Space Science and Engineering
> University of Michigan
>
>
> On Thursday, October 4, 2018, 7:12:29 PM EDT, Yury Duarte <
> yurynepomuceno em gmail.com> wrote:
>
>
> Boa noite Paulo, como vai?
>
> Agradeço desde já pela atenção.
> Tentei remover ao máximo as partes que não afetam na função e anexei o
> script no arquivo texto que segue.
>
> Att
>
> Em qui, 4 de out de 2018 19:23, Paulo Justiniano Ribeiro Junior <
> paulojus em ufpr.br> escreveu:
>
> Olá!
>
> krige.conv() só utiliza simulações caso seja indicado em output.options
> o número de simulações da distribuição preditiva.
> Neste caso são geradas simulações.
> As simulações só são geradas se:
> 1. especificado explicitamente
> 2. se for utilizada alguma transformação com lambda diferente de 0, 1/2
>
> O seu exemplo se enquadra em algum caso?
>
> A msg tb indica que voce colocou algum em micro.scale e seria bom saber o
> que deseja com isto.
>
> Se dados e códigos são grande Envie  o comando completo da chamada da
> krige.conv() para vermos as opções
>
> P.J.
>
>
>
>
> ------------------------------
> *From: *"Yury Duarte" <yurynepomuceno em gmail.com>
> *To: *"Thiago V. dos Santos" <thi_veloso em yahoo.com.br>
> *Cc: *"a lista Brasileira oficial de discussão do programa R." <
> r-br em listas.c3sl.ufpr.br>, paulojus em ufpr.br, "p diggle" <
> p.diggle em lancaster.ac.uk>
> *Sent: *Thursday, 4 October, 2018 6:08:32 PM
> *Subject: *Re: [R-br] Diferenças entre sistemas operacionais (geoR)
>
> Não sei se existe um gerador de números aleatórios dentro da função, mas
> estou passando pra ela todos os parâmetros já pré definidos antes dela ser
> chamada.
> Vou colocar um set.sead() no início do código, conforme sugestão do César
> para então comparar os valores gerados nos diferentes sistemas operacionais
> e ver o que acontece.
>
> Em qui, 4 de out de 2018 17:45, Thiago V. dos Santos <
> thi_veloso em yahoo.com.br> escreveu:
>
> Da maneira que eu vejo, a unica explicacao plausivel seria se a krige.conv
> usasse um algoritmo gerador de numeros aleatorios. Caso voce tenha
> experiencia com esmagamento de bugs, vc pode conferir isso no codigo dela.
> Ou entao esperar o feedback dos autores.
>
> Greetings,
>  -- Thiago V. dos Santos
>
> Postdoctoral Research Fellow
> Department of Climate and Space Science and Engineering
> University of Michigan
>
>
> On Thursday, October 4, 2018, 4:39:08 PM EDT, Yury Duarte <
> yurynepomuceno em gmail.com> wrote:
>
>
> Sim, Thiago.
> Até o último passo os resultados são iguais. A mesma grade com o mesmo
> número de pontos é gerada. As mesmas informações são passadas como
> parâmetro para a função, mas os resultados não batem.
> Nem mesmo em casos onde a função não quebra, os valores gerados no Ubuntu
> não batem com os valores gerados em Windows. Isso está me intrigando muito.
>
> Em qui, 4 de out de 2018 17:23, Thiago V. dos Santos <
> thi_veloso em yahoo.com.br> escreveu:
>
> Nao deveria ser assim.
>
> O seu codigo produz resultados identicos ate o momento em que voce roda a
> krige.conv?
>
> Em caso positivo, acho que seria uma boa ideia reportar esse erro ao Paulo
> (paulojus em ufpr.br) ou ao Peter (p.diggle em lancaster.ac.uk).
>
> Greetings,
>  -- Thiago V. dos Santos
>
> Postdoctoral Research Fellow
> Department of Climate and Space Science and Engineering
> University of Michigan
>
>
> On Thursday, October 4, 2018, 3:42:35 PM EDT, Yury Duarte via R-br <
> r-br em listas.c3sl.ufpr.br> wrote:
>
>
> Boa tarde a todos os coleas!
>
> Fiz um código simples para interpolar valores que tenho em uma grade que
> construo dentro do próprio código. Para isso, estou utilizando um modelo
> esférico de interpolação por krigagem através da função krige.conv().
> Estou achando muito estranho o fato de que, quando rodo o script em
> ambiente Windows, não tenho problemas e meu script gera as saídas
> exatamente como o esperado, entretanto, quando rodo o mesmo script (com o
> mesmo banco de dados) em ambiente Linux (Ubuntu), a função krige.conv()
> corrompe e o erro gerado é:
> krige.control: micro.scale must be in the interval [0, nugget]
>
> Não encontrei nada em outros fóruns que pudesse me ajudar para explicar
> isso.
> Caso alguém tenha interesse em testar exatamente o mesmo conjunto de dados
> que estou utilizando, informem que passo um link no google drive, já que o
> código e os dados de entrada são grandes demais para serem anexados no
> corpo do e-mail/nos anexos.
>
> Desde já, agradeço a atenção e a ajuda de todos!
>
> Yury Duarte
> Engenheiro Agrônomo - ESALQ/USP
> _______________________________________________
> 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/20181107/82440821/attachment-0001.html>


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