Closed nelsonvnperu closed 3 years ago
1) qual a saída da expressão
options("download.file.method")
em sua máquina?
2) não precisa baixar manualmente os arquivos, pois isso foi feito com o script https://github.com/lhmet-ped/fuse.prep/blob/master/data-raw/join-netcdfs.R e então disponibilizei no dropbox um arquivo netcdf (RasterBrick) único. Este processo seria necessário para temperatura por exemplo.
A saída abaixo é muito esquisita, pois foi possível baixar o arquivo "VazoesNaturaisONS_D_87UHEsDirceuAssis_2018.dat" utilizando o comando "download.file(dropbox_link, dest_file, mode = "wb")"
> options("download.file.method")
$download.file.method
NULL
OK, mas a documentação gerada pela vinheta diz "... Se você optar por baixar manualmente cada arquivo, não altere o nome original dos arquivos...". Eu decidi baixá-los para testar os comandos seguintes, mas não foi possível continuar.
@nelsonvnperu
Sim mas você está baixando os dados errados. Veja que no início desta vinheta há
Esta base de dados também foi usada no pré-processamento dos dados de bandas de elevação (ver vinheta Pré-processamento dos dados de bandas de elevação).
Os links para os dados nc integrados (todo período) estão na vinheta das bandas de elevação. Se repares no README e no índice do pacote sempre aparece a primeira vinheta como a pp-elevbands, depois a pp-forcmets. Essa é a ordem recomendada pois na primeira vinheta descrevo mais detalhadamente os dados das forçantes meteorológicas.
Apesar disso não estar explícito deixarei agora isso explícito no README.
Reinstale a nova versão do pacote para testar se a alteração no código resolve o problema.
Obrigado.
@nelsonvnperu
Sobre a opção de download não sei pq par arquivos texto funciona e para binários não. Para fixar sua opção de método de download você pode fazer no RStudio
usethis::edit_r_profile()
e colar options(download.file.method = "libcurl")
salve o arquivo e este problema espera-se não ocorrer mais.
Este é um problema reportado por vários e resolvi dessa forma no linux.
Deinstalei e reinstalei os pacotes usando os comandos descritos em https://github.com/lhmet-ped/fuse.prep/issues/3. Entretanto, ao tentar baixar os arquivos de precipitação e temperatura obtive um erro de "timeout":
> nc_files <- meteo_nc(c("prec", "et0"), dest_dir = "input") downlonding file: brick-prec-25km-19800101-20151231.nc trying URL 'https://www.dropbox.com/s/hj6bu183myfor9y/brick-prec-25km-19800101-20151231.nc?dl=1' Content type 'application/binary' length 1431719160 bytes (1365.4 MB) = downloaded 35.6 MB Error in utils::download.file(lnk_nc[i], destfile = dest_file[i], mode = "wb") : download from 'https://www.dropbox.com/s/hj6bu183myfor9y/brick-prec-25km-19800101-20151231.nc?dl=1' failed In addition: Warning messages: 1: In utils::download.file(lnk_nc[i], destfile = dest_file[i], mode = "wb") : downloaded length 37281049 != reported length 1431719160 2: In utils::download.file(lnk_nc[i], destfile = dest_file[i], mode = "wb") : URL 'https://uc64640231454859f6ff242750a8.dl.dropboxusercontent.com/cd/0/get/BDxNPULgLRTL_50tLYdaAUmogOFWTy28CcwaIwwlX44QQ-4gtFFti17sMj-cpBssNxytPDg08TAiGy98-C20Hj291rybv_vAD5xxce7kQqiKt-cjXLSX5IpqO_ZI5serphg/file?dl=1': Timeout of 60 seconds was reached
Então baixei manualmente os arquivos "brick-prec-25km-19800101-20151231.nc" e "brick-ETo-25km-19800101-20171231.nc" (aliás, aqui em casa, cada um demorou quase 1h30m). Agora, vai ser quase impossível baixar o arquivo "sa_con_3s_hydrosheds.grd" que, segundo a documentação da função "extract_condem", têm aproximadamente 12.5Gb (aliás, dito arquivo no Dropbox têm apenas 375 bytes e pelo jeito é só o cabeçalho do raster).
De qualquer forma, consegui reproduzir os comandos do tópico "Centróide da BH (ccoords)" da vinheta "pp-elevbands" para a bacia que têm como parte do nome a palavra "MUNHOZ" e também para a bacia que têm como parte do nome a palavra "CAMARGOS".
Agora, para reproduzir o tópico "Elevação do terreno da BH (con_dem)", é necessário ter o arquivo "sa_con_3s_hydrosheds.grd".
@nelsonvnperu, welcome to the big data era! o 'sa_con_3s_hydrosheds.gri' é que é o pesado.
Ocorreu um erro ao executar o comando "extract_condem", na seção "Elevação do terreno da BH (con_dem)" da vinheta "pp-elevbands" :
> path_hs <- "/home/mpiuser/fusepoc-prep/input/sa_con_3s_hydrosheds.grd" > > con_hs <- raster(path_hs) Warning message: In .rasterFromRasterFile(grdfile, band = band, objecttype, ...) : size of values file does not match the number of cells (given the data type) > > con_dem <- extract_condem(condem = con_hs, poly_station = poly_posto) Error in h(simpleError(msg, call)) : error in evaluating the argument 'x' in selecting a method for function 'mask': replacement has length zero
Os comandos da seção anterior "Centróide da BH (ccoords)" ocorreram normalmente. Os arquivos "sa_con_3s_hydrosheds.grd" e "sa_con_3s_hydrosheds.gri" se encontram na pasta "/home/mpiuser/fusepoc-prep/input".
O tamanho do arquivo "sa_con_3s_hydrosheds.gri" é de 4.3 Gb. Isso está correto? Dadas as dimensões do raster (85200 x 73200) e o tipo de dado (inteiro não negativo de dois bytes), eu esperava um arquivo de aprox. 12 Gb.
Acho que sei onde está o erro. Um arquivo no sistema de arquivos FAT32 pode ter como máximo um tamanho de 4 Gb menos um byte (4 1024 1024 * 1024 - 1 bytes = 4294967295 bytes) que é exatamente o tamanho que têm o arquivo "sa_con_3s_hydrosheds.gri" no pendrive. Uma verificação do pendrive indicou que têm sistema de arquivos FAT32.
Realmente @nelsovnperu não havia verificado o sistema de arquivos do pendrive, apenas copiei o arquivo para ele. Mas estranho que o tamanho aparecia com ~12Gb. @andreza-santos teve este problema também?
Realmente @nelsovnperu não havia verificado o sistema de arquivos do pendrive, apenas copiei o arquivo para ele. Mas estranho que o tamanho aparecia com ~12Gb. @andreza-santos teve este problema também?
Bom, eu tive que baixar os dados manualmente, pois sempre só baixava pela metade no R e então aparecia, por exemplo:
downlonding file: brick-prec-25km-19800101-20151231.nc
trying URL 'https://www.dropbox.com/s/hj6bu183myfor9y/brick-prec-25km-19800101-20151231.nc?dl=1'
Content type 'application/binary' length 1431719160 bytes (1365.4 MB)
====================
downloaded 559.3 MB
downloaded length 586486048 != reported length 1431719160URL 'https://ucc8f859b1e42866a6eec58e0b8e.dl.dropboxusercontent.com/cd/0/get/BEAOqL9F_s5W-Gi3iKw0OmszNocqjsLwOtWBJETic_EA34BTmUE6cSLjOUV_92xDsQ4-a4KMIA4saainFqPYvGhRzITxkfYhPMusP4n8S7FwnPMpqBz5crsdcHF8W2jkIl8/file?dl=1': Timeout of 60 seconds was reachedError in utils::download.file(lnk_nc[i], destfile = dest_file[i], mode = "wb") :
download from 'https://www.dropbox.com/s/hj6bu183myfor9y/brick-prec-25km-19800101-20151231.nc?dl=1' failed
Em Médias das forçantes meteorológicas na área da BH da vinheta pp-forcmets
, não era reconhecido o arquivo manualmente baixado, assim também retornava o erro:
downlonding file: brick-ETo-25km-19800101-20171231.nc
trying URL 'https://www.dropbox.com/s/jfsehx65g0z8yjo/brick-ETo-25km-19800101-20171231.nc?dl=1'
Content type 'application/binary' length 1494654124 bytes (1425.4 MB)
===================
downloaded 558.8 MB
Error in utils::download.file(lnk_nc[i], destfile = dest_file[i], mode = "wb") :
download from 'https://www.dropbox.com/s/jfsehx65g0z8yjo/brick-ETo-25km-19800101-20171231.nc?dl=1' failed
In addition: Warning messages:
1: In utils::download.file(lnk_nc[i], destfile = dest_file[i], mode = "wb") :
downloaded length 585990509 != reported length 1494654124
2: In utils::download.file(lnk_nc[i], destfile = dest_file[i], mode = "wb") :
URL 'https://uc2cb049a3c39f1f8484b877b004.dl.dropboxusercontent.com/cd/0/get/BEAvzQb1ToUW12aO8-Gcf_InDNbam2pisQtOLM5Bf6FHJ-a-G2f7WQiMnPVnsYq0USKvfCO7ZUzCbQHB0oRbmk_ojJmmvDn86AiS4ocv6YfKv7HI9lAjS2-RuB985Ipn_l4/file?dl=1': Timeout of 60 seconds was reached
E então notei que o link refere-se a "brick-ETo-25km-19800101-20171231.nc", mas baixando pelo navegador (com o mesmo link) o arquivo baixava "brick-ETo-25km-19800101-20170731". Com a impossibilidade de baixar através do RStudio, tentei renomear o arquivo baixado. Rodou, mas encontrou um problema:
Loading previously downloaded data available in the 'input' directory.
Error in raster::setZ(x = b, z = seq(min(b_dates), max(b_dates), by = "days")) :
length(z) == nlayers(x) is not TRUE
E então não sei mais como proceder.
Comigo ocorreu o mesmo erro relatado pela Andreza. Eu baixei manualmente os arquivos "brick-prec-25km-19800101-20151231.nc" e "brick-ETo-25km-19800101-20171231.nc", via "wget". A função "import_nc" funciona para o arquivo de precipitação, mas falha para o arquivo da evapotranspiração:
> prec_brick <- import_nc(varnc = "prec", dest_dir = dest_dir) Loading previously downloaded data available in the 'input' directory. > prec_brick class : RasterBrick dimensions : 162, 168, 27216, 13149 (nrow, ncol, ncell, nlayers) resolution : 0.25, 0.25 (x, y) extent : -74.25, -32.25, -34.25, 6.25 (xmin, xmax, ymin, ymax) crs : +proj=longlat +datum=WGS84 +no_defs source : /home/mpiuser/fusepoc-prep/input/brick-prec-25km-19800101-20151231.nc names : X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13, X14, X15, ... min values : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ... max values : 79.81250, 89.37500, 97.81250, 54.09375, 82.31250, 64.06250, 54.90625, 51.93750, 78.25000, 85.50000, 109.43750, 69.00000, 115.75000, 109.43750, 101.87500, ... time : 1980-01-01, 2015-12-31 (min, max) varname : variable > > et0_brick <- import_nc(varnc = "et0", dest_dir = dest_dir) Loading previously downloaded data available in the 'input' directory. Error in raster::setZ(x = b, z = seq(min(b_dates), max(b_dates), by = "days")) : length(z) == nlayers(x) is not TRUE
@andreza-santos e @nelsonvnperu instalem a última versão do fuse.rep. Arrumei os problemas conforme commits acima, inclusive o problema do download dos arquivos (testado), mas testei somente em linux. O problema do nome do arquivo foi erro de digitação. Agora deve funcionar. Peço que por gentileza, criem uma issue para cada problema. Todos os problemas aqui eram relacionados a vinheta, mas eram problemas diferentes. Obrigado.
Reinstalei os pacotes "fuse.prep", "HEgis", "HEobs" e "lhmetools" (previa desinstalação) e o erro continua.
> et0_brick <- import_nc(varnc = "et0", dest_dir = dest_dir) File names from previously downloaded data available in the 'input' directory. Error in raster::setZ(x = b, z = seq(min(b_dates), max(b_dates), by = "days")) : length(z) == nlayers(x) is not TRUE
Não abri um novo "issue" porque o erro continua sendo o mesmo.
O nome do arquivo de et0 deve ser "brick-ETo-25km-19800101-20170731.nc" ao invés "brick-ETo-25km-19800101-20171231.nc". Isto ocorreu porque na vinheta estava errado previamente. Agora foi corrigido. Mas tu podes apenas renomear o arquivo que deve resolver o problema. É que as datas são obtidas a partir do nome do nc. O nc desta base de dados não inclui o atributo de tempo, infelizmente.
Sim, os nomes dos arquivos são "brick-prec-25km-19800101-20151231.nc" e "brick-ETo-25km-19800101-20170731.nc" (se um deles falta a função "import_nc" vai baixá-lo).
Acabei de desinstalar os pacotes "fuse.prep", "HEgis", "HEobs" e "lhmetools" e quando fui reinstalá-los ocorreu o seguinte erro:
> devtools::install_github("lhmet-ped/fuse.prep", build_vignettes = TRUE, force = TRUE) Downloading GitHub repo lhmet-ped/fuse.prep@HEAD Downloading GitHub repo lhmet-ped/HEobs@HEAD Downloading GitHub repo lhmet/lhmetools@HEAD checking for file ‘/tmp/RtmpatYftb/remotes4335795e7cf3/lhmet-lhmetools-d15fc7c/DESCRIPT✔ checking for file ‘/tmp/RtmpatYftb/remotes4335795e7cf3/lhmet-lhmetools-d15fc7c/DESCRIPTION’ ─ preparing ‘lhmetools’: ✔ checking DESCRIPTION meta-information ... ─ checking for LF line-endings in source and make files and shell scripts ─ checking for empty or unneeded directories ─ building ‘lhmetools_0.1.1.tar.gz’ Installing package into ‘/home/mpiuser/R/x86_64-pc-linux-gnu-library/4.0’ (as ‘lib’ is unspecified) * installing *source* package ‘lhmetools’ ... ** using staged installation ** R ** data *** moving datasets to lazyload DB ** byte-compile and prepare package for lazy loading ** help *** installing help indices ** building package indices ** testing if installed package can be loaded from temporary location ** testing if installed package can be loaded from final location ** testing if installed package keeps a record of temporary installation path * DONE (lhmetools) Downloading GitHub repo lhmet/lhmetools@HEAD Skipping lhmetools, it is already being installed checking for file ‘/tmp/RtmpatYftb/remotes4335484bae0a/lhmet-ped-HEobs-cfb770c/DESCRIPT✔ checking for file ‘/tmp/RtmpatYftb/remotes4335484bae0a/lhmet-ped-HEobs-cfb770c/DESCRIPTION’ ─ preparing ‘HEobs’: ✔ checking DESCRIPTION meta-information ... ─ checking for LF line-endings in source and make files and shell scripts ─ checking for empty or unneeded directories ─ building ‘HEobs_0.0.3.tar.gz’ Installing package into ‘/home/mpiuser/R/x86_64-pc-linux-gnu-library/4.0’ (as ‘lib’ is unspecified) * installing *source* package ‘HEobs’ ... ** using staged installation ** R ** byte-compile and prepare package for lazy loading ** help *** installing help indices ** building package indices ** testing if installed package can be loaded from temporary location ** testing if installed package can be loaded from final location ** testing if installed package keeps a record of temporary installation path * DONE (HEobs) Downloading GitHub repo lhmet-ped/HEgis@HEAD Error in utils::download.file(url, path, method = method, quiet = quiet, : download from 'https://api.github.com/repos/lhmet-ped/HEgis/tarball/HEAD' failed Downloading GitHub repo lhmet/lhmetools@HEAD Skipping lhmetools, it is already being installed Downloading GitHub repo lhmet-ped/HEobs@HEAD Skipping HEobs, it is already being installed Downloading GitHub repo lhmet-ped/HEgis@HEAD Error in utils::download.file(url, path, method = method, quiet = quiet, : download from 'https://api.github.com/repos/lhmet-ped/HEgis/tarball/HEAD' failed Downloading GitHub repo lhmet/lhmetools@HEAD Skipping lhmetools, it is already being installed checking for file ‘/tmp/RtmpatYftb/remotes43356d6d6622/lhmet-ped-fuse.prep-76f8015/DESC✔ checking for file ‘/tmp/RtmpatYftb/remotes43356d6d6622/lhmet-ped-fuse.prep-76f8015/DESCRIPTION’ ─ preparing ‘fuse.prep’: ✔ checking DESCRIPTION meta-information ... ─ installing the package to build vignettes ----------------------------------- ERROR: dependency ‘HEgis’ is not available for package ‘fuse.prep’ ─ removing ‘/tmp/RtmpSIpqYb/Rinst454627016dc2/fuse.prep’ ----------------------------------- ERROR: package installation failed Error: Failed to install 'fuse.prep' from GitHub: System command 'R' failed, exit status: 1, stdout + stderr: E> * checking for file ‘/tmp/RtmpatYftb/remotes43356d6d6622/lhmet-ped-fuse.prep-76f8015/DESCRIPTION’ ... OK E> * preparing ‘fuse.prep’: E> * checking DESCRIPTION meta-information ... OK E> * installing the package to build vignettes E> ----------------------------------- E> ERROR: dependency ‘HEgis’ is not available for package ‘fuse.prep’ E> * removing ‘/tmp/RtmpSIpqYb/Rinst454627016dc2/fuse.prep’ E> ----------------------------------- E> ERROR: package installation failed
Emtão tentei instalar somente o pacote "HEgis", mas ocorreu o seguinte erro
> devtools::install_github("lhmet-ped/HEgis") Downloading GitHub repo lhmet-ped/HEgis@HEAD Error in utils::download.file(url, path, method = method, quiet = quiet, : download from 'https://api.github.com/repos/lhmet-ped/HEgis/tarball/HEAD' failed
pelo que baixei o código fonte do pacote "HEgis" do GitHub e o instalei manualmente, com o seguinte comando:
> install.packages('/home/mpiuser/Downloads/HEgis-master', repos = NULL, type='source')
Após a instalação do pacote "HEgis" consegui instalar o pacote "fuse.prep", com o seguinte comando:
> devtools::install_github("lhmet-ped/fuse.prep", build_vignettes = TRUE, force = TRUE)
Mas na hora de executar os comandos da vinheta "pp-forcmets", continua ocorrendo o mesmo erro
@nelsonvnperu por gentileza,
1) confirme se você fez o indicado neste comentário dessa issue mesmo.
2) Se você conseguiu instalar a nova versão do fuse.prep mostre a saída dos seguintes comandos:
library(fuse.prep)
getwd()
system.file(package = "HEgis")
packageVersion("HEgis")
system.file(package = "fuse.prep")
packageVersion("fuse.prep")
fs::dir_info("input")
fs::path_abs(fs::dir_info("input")[[1]])
fuse.prep:::.nc_name()
fuse.prep:::.find_nc(FALSE)
A resposta à sua primeira pergunta é sim. Essa opção está no arquivo "~/.Rprofile".
Tentei refazer o processo inteiro. Desinstalei os pacotes "fuse.prep", "HEgis", "HEobs" e "lhmetools" e tentei reinstalá-los com o comando
> devtools::install_github("lhmet-ped/fuse.prep", build_vignettes = TRUE, force = TRUE)
que consegue instalar os pacotes "lhmetools" e "HEobs" mas da erro ao instalar o pacote "HEgis", exatamente igual como relatei neste post. Então baixei o código fonte do pacote "HEgis" do site do Github e o instalei manualmente com o comando
> install.packages('/home/mpiuser/Downloads/HEgis-master', repos = NULL, type='source')
Uma vez feito isso, tentei instalar o pacote "fuse.prep" com o comando
> devtools::install_github("lhmet-ped/fuse.prep", build_vignettes = TRUE, force = TRUE)
mas agora ocorreu o seguinte erro
E creating vignettes (17.7s) --- re-building ‘pp-elevbands.Rmd’ using rmarkdown Warning in engine$weave(file, quiet = quiet, encoding = enc) : Pandoc (>= 1.12.3) and/or pandoc-citeproc not available. Falling back to R Markdown v1. Loading required package: sp Attaching package: 'dplyr' The following objects are masked from 'package:raster': intersect, select, union The following objects are masked from 'package:stats': filter, lag The following objects are masked from 'package:base': intersect, setdiff, setequal, union trying URL 'https://www.ccee.org.br/ccee/documentos/NW202012' Content type 'application/zip' length 1727965 bytes (1.6 MB) ================================================== downloaded 1.6 MB Quitting from lines 162-174 (pp-elevbands.Rmd) Error: processing vignette 'pp-elevbands.Rmd' failed with diagnostics: Assertion on 'confhd_file' failed: No file provided. --- failed re-building ‘pp-elevbands.Rmd’ --- re-building ‘pp-forcmets.Rmd’ using rmarkdown Warning in engine$weave(file, quiet = quiet, encoding = enc) : Pandoc (>= 1.12.3) and/or pandoc-citeproc not available. Falling back to R Markdown v1. --- finished re-building ‘pp-forcmets.Rmd’ SUMMARY: processing the following file failed: ‘pp-elevbands.Rmd’ Error: Vignette re-building failed. Execution halted Error: Failed to install 'fuse.prep' from GitHub: System command 'R' failed, exit status: 1, stdout + stderr (last 10 lines): E> --- re-building ‘pp-forcmets.Rmd’ using rmarkdown E> Warning in engine$weave(file, quiet = quiet, encoding = enc) : E> Pandoc (>= 1.12.3) and/or pandoc-citeproc not available. Falling back to R Markdown v1. E> --- finished re-building ‘pp-forcmets.Rmd’ E> E> SUMMARY: processing the following file failed: E> ‘pp-elevbands.Rmd’ E> E> Error: Vignette re-building failed. E> Execution halted
Entretanto, se desconsidero a construção das vinhetas, isto é, uso o comando
> devtools::install_github("lhmet-ped/fuse.prep", force = TRUE)
o pacote "fuse.prep" é instalado.
Em relação à sua segunda pergunta, seguem abaixo as respostas.
> library(fuse.prep) > getwd() [1] "/home/mpiuser/fusepoc-prep" > system.file(package = "HEgis") [1] "/home/mpiuser/R/x86_64-pc-linux-gnu-library/4.0/HEgis" > packageVersion("HEgis") [1] ‘0.0.5.9000’ > system.file(package = "fuse.prep") [1] "/home/mpiuser/R/x86_64-pc-linux-gnu-library/4.0/fuse.prep" > packageVersion("fuse.prep") [1] ‘0.2.0.9000’ > > fs::dir_info("input") # A tibble: 10 x 18 path type size permissions modification_time user group <fs::path> <fct> <fs::b> <fs::perms> <dttm> <chr> <chr> 1 input/Vaz… file 42.66M rw-rw-r-- 2020-11-21 00:08:15 mpiu… mpiu… 2 input/bri… syml… 35 rwxrwxrwx 2020-11-30 02:04:11 mpiu… mpiu… 3 input/bri… file 1.39G rw-rw-r-- 2020-11-23 19:03:37 mpiu… mpiu… 4 input/bri… file 1.33G rw-rw-r-- 2020-11-23 17:16:53 mpiu… mpiu… 5 input/sa_… file 375 rw-rw-r-- 2020-11-23 16:47:54 mpiu… mpiu… 6 input/sa_… file 11.62G rw-rw-r-- 2020-11-27 21:13:58 mpiu… mpiu… 7 input/sa_… file 3G rw-r--r-- 2020-11-27 20:32:22 mpiu… mpiu… 8 input/sa_… file 3G rw-r--r-- 2020-11-27 20:33:06 mpiu… mpiu… 9 input/sa_… file 3G rw-r--r-- 2020-11-27 20:33:56 mpiu… mpiu… 10 input/sa_… file 2.62G rw-r--r-- 2020-11-27 20:34:44 mpiu… mpiu… # … with 11 more variables: device_id <dbl>, hard_links <dbl>, # special_device_id <dbl>, inode <dbl>, block_size <dbl>, blocks <dbl>, # flags <int>, generation <dbl>, access_time <dttm>, change_time <dttm>, # birth_time <dttm> > fs::path_abs(fs::dir_info("input")[[1]]) /home/mpiuser/fusepoc-prep/input/VazoesNaturaisONS_D_87UHEsDirceuAssis_2018.dat /home/mpiuser/fusepoc-prep/input/brick-ETo-25km-19800101-20170731.nc /home/mpiuser/fusepoc-prep/input/brick-ETo-25km-19800101-20171231.nc /home/mpiuser/fusepoc-prep/input/brick-prec-25km-19800101-20151231.nc /home/mpiuser/fusepoc-prep/input/sa_con_3s_hydrosheds.grd /home/mpiuser/fusepoc-prep/input/sa_con_3s_hydrosheds.gri /home/mpiuser/fusepoc-prep/input/sa_parte_00 /home/mpiuser/fusepoc-prep/input/sa_parte_01 /home/mpiuser/fusepoc-prep/input/sa_parte_02 /home/mpiuser/fusepoc-prep/input/sa_parte_03 > fuse.prep:::.nc_name() [1] "brick-prec-25km-19800101-20151231.nc" [2] "brick-ETo-25km-19800101-20170731.nc" > fuse.prep:::.find_nc(FALSE) prec "https://www.dropbox.com/s/hj6bu183myfor9y/brick-prec-25km-19800101-20151231.nc?dl=1" et0 "https://www.dropbox.com/s/jfsehx65g0z8yjo/brick-ETo-25km-19800101-20170731.nc?dl=1" >
Segue em anexo um arquivo com a saída completa do processo acima descrito. fuse.prep_install_output.txt
@nelsonvnperu
o arquivo "/home/mpiuser/fusepoc-prep/input/brick-ETo-25km-19800101-20171231.nc" e os /home/mpiuser/fusepoc-prep/input/sa_parte* são desnecessários, sugiro removê-los.
Você não está usando o RStudio?
rmarkdown::find_pandoc()
$version
[1] ‘2.7.3’
$dir
[1] "/usr/lib/rstudio/bin/pandoc"
Sobre 'Error: processing vignette 'pp-elevbands.Rmd' failed with diagnostics' ver https://github.com/lhmet-ped/HEgis/issues/2
Instalação do fuse.prep e construção das vinhetas realizadas com sucesso em Ubuntu 18.04.5 LTS, usando:
options(download.file.method = "wget")
devtools::install_github("lhmet-ped/fuse.prep", build_vignettes = TRUE, dependencies = TRUE)
vignette('pp-elevbands', package = "fuse.prep")
vignette('pp-forcmets', package = "fuse.prep")
Confirmo que a instalação do "fuse.prep" e a construção das vinhetas foram realizadas com sucesso em Ubuntu 20.04.1 LTS, como relatado neste post. Em breve comunicarei o resultado da reprodução dos comandos das vinhetas.
Confirmo que os comandos da vinheta "pp-elevbands" foram executados com sucesso. Já para a vinheta "pp-forcmets" o erro relatado aqui continua ocorrendo. Preciso salientar que dito erro ocorre quando uso o R desde o terminal ou o RStudio 1.3.1093.
Como o erro ocorre apenas com a ET, vou baixar (novamente) o arquivo "brick-ETo-25km-19800101-20170731.nc" e testar de novo.
O arquivo "brick-ETo-25km-19800101-20170731.nc" novamente baixado é idêntico ao que já tinha. Então apaguei a pasta onde o R instala os pacotes (no meu caso, "/home/mpiuser/R" e executei os comandos
> install.packages("devtools") > devtools::install_github("lhmet-ped/fuse.prep", build_vignettes = TRUE, force = TRUE) > vignette('pp-elevbands', package = "fuse.prep") > vignette('pp-forcmets', package = "fuse.prep")
que foram executados com sucesso e instalaram todos os pacotes necessários para executar os comandos do pacote "fuse.prep". O erro na função "import_nc" não ocorre mais. Entretanto, aparecem uns "warnings" ao executar a função "spatial_average", como é mostrado a seguir:
> prec_posto <- spatial_average(meteo_brick = prec_brick, poly_station = poly_posto, var_name = "pr", fun = mean) Warning message: In st_buffer.sfc(st_geometry(x), dist, nQuadSegs, endCapStyle = endCapStyle, : st_buffer does not correctly buffer longitude/latitude data > str(prec_posto) tibble [13,149 × 3] (S3: tbl_df/tbl/data.frame) $ date : Date[1:13149], format: "1980-01-01" "1980-01-02" ... $ posto: int [1:13149] 74 74 74 74 74 74 74 74 74 74 ... $ pr : num [1:13149] 0.3299 0.0578 0.1773 0.0476 0.0517 ... > > > pet_posto <- spatial_average(meteo_brick = et0_brick, poly_station = poly_posto, var_name = "pet", fun = mean) Warning message: In st_buffer.sfc(st_geometry(x), dist, nQuadSegs, endCapStyle = endCapStyle, : st_buffer does not correctly buffer longitude/latitude data > str(pet_posto) tibble [13,727 × 3] (S3: tbl_df/tbl/data.frame) $ date : Date[1:13727], format: "1980-01-01" "1980-01-02" ... $ posto: int [1:13727] 74 74 74 74 74 74 74 74 74 74 ... $ pet : num [1:13727] 5.41 5.01 5.36 5.57 5.49 ...
Finalmente, ocorre o seguinte erro ao executar a função "meteo_forcing_nc":
> forcings_nc <- path("output", "posto74_input.nc") > meteo_forcing_nc(forc_tbl = meteo_data, ccoords = centroids(poly_station = poly_posto), file_nc = forcings_nc) Error: Can't subset columns that don't exist. ✖ Column `id` doesn't exist. Run `rlang::last_error()` to see where the error occurred.
A saída do comando sugerido e
> rlang::last_error() <error/vctrs_error_subscript_oob> Can't subset columns that don't exist. ✖ Column `id` doesn't exist. Backtrace: 1. fuse.prep::meteo_forcing_nc(...) 2. fuse.prep:::.check_inputs_meteo_forc(...) 4. dplyr:::select.data.frame(variab_list, -date, -id) 5. tidyselect::eval_select(expr(c(...)), .data) 6. tidyselect:::eval_select_impl(...) 14. tidyselect:::vars_select_eval(...) 15. tidyselect:::walk_data_tree(expr, data_mask, context_mask) 16. tidyselect:::eval_c(expr, data_mask, context_mask) 17. tidyselect:::reduce_sels(node, data_mask, context_mask, init = init) 18. tidyselect:::walk_data_tree(new, data_mask, context_mask) 19. tidyselect:::as_indices_sel_impl(...) 20. tidyselect:::as_indices_impl(x, vars, strict = strict) 21. tidyselect:::chr_as_locations(x, vars) 22. vctrs::vec_as_location(x, n = length(vars), names = vars) 24. vctrs:::stop_subscript_oob(...) 25. vctrs:::stop_subscript(...) Run `rlang::last_trace()` to see the full context.
enquanto a saída do novo comando sugerido é
> rlang::last_trace() <error/vctrs_error_subscript_oob> Can't subset columns that don't exist. ✖ Column `id` doesn't exist. Backtrace: █ 1. └─fuse.prep::meteo_forcing_nc(...) 2. └─fuse.prep:::.check_inputs_meteo_forc(...) 3. ├─dplyr::select(variab_list, -date, -id) 4. └─dplyr:::select.data.frame(variab_list, -date, -id) 5. └─tidyselect::eval_select(expr(c(...)), .data) 6. └─tidyselect:::eval_select_impl(...) 7. ├─tidyselect:::with_subscript_errors(...) 8. │ ├─base::tryCatch(...) 9. │ │ └─base:::tryCatchList(expr, classes, parentenv, handlers) 10. │ │ └─base:::tryCatchOne(expr, names, parentenv, handlers[[1L]]) 11. │ │ └─base:::doTryCatch(return(expr), name, parentenv, handler) 12. │ └─tidyselect:::instrument_base_errors(expr) 13. │ └─base::withCallingHandlers(...) 14. └─tidyselect:::vars_select_eval(...) 15. └─tidyselect:::walk_data_tree(expr, data_mask, context_mask) 16. └─tidyselect:::eval_c(expr, data_mask, context_mask) 17. └─tidyselect:::reduce_sels(node, data_mask, context_mask, init = init) 18. └─tidyselect:::walk_data_tree(new, data_mask, context_mask) 19. └─tidyselect:::as_indices_sel_impl(...) 20. └─tidyselect:::as_indices_impl(x, vars, strict = strict) 21. └─tidyselect:::chr_as_locations(x, vars) 22. └─vctrs::vec_as_location(x, n = length(vars), names = vars) 23. └─(function () ... 24. └─vctrs:::stop_subscript_oob(...) 25. └─vctrs:::stop_subscript(...) >
@nelsonvnperu os avisos são esperados, sem problema. Obrigado por reportar o problema. Corrigido na nova versão do fuse.prep.
Confirmo que a instalação do "fuse.prep" e a construção das vinhetas "pp-elevbands" e "pp-forcmets", junto com a execução dos comandos nelas contidas, foram realizadas com sucesso para o Ubuntu 20.04.1 LTS, Debian 11 e, com mínimas modificações nos arquivos DESCRIPTION dos pacotes "lhmetools" e "HEgis", para o Debian 10.
@nelsonvnperu por gentileza seja específico, que alterações no DESCRIPTION foram feitas. A proposta das issues é justamente documentar os problemas e buscar as soluções. Alterar o DESCRIPTION jamais deve ser feito. Há algo muito estranho aí. As alterações foram feitas para reprodução das vinhetas em particular, ou para instalação dos pacotes?
Ao esecutar os comandos fornecidos pela vinheta "pp-forcmets" (http://xxxxxxxx/library/fuse.prep/doc/pp-forcmets.html), ocorre um erro na função "import_nc", como é mostrado a seguir:
Baixei manualmente os arquivos .nc
ETo_daily_UT_Brazil_v2_19800101_19891231.nc ETo_daily_UT_Brazil_v2_19900101_19991231.nc ETo_daily_UT_Brazil_v2_20000101_20061231.nc ETo_daily_UT_Brazil_v2_20070101_20131231.nc prec_daily_UT_Brazil_v2.2_19800101_19891231.nc prec_daily_UT_Brazil_v2.2_19900101_19991231.nc prec_daily_UT_Brazil_v2.2_20000101_20091231.nc prec_daily_UT_Brazil_v2.2_20100101_20151231.nc
mas não consigo continuar com os comandos da documentação. Segue abaixo a informação do sistema: