README.md

fuse.prep

Lifecycle:
experimental Codecov test
coverage

O pacote {fuse.prep} tem o objetivo de gerar os dados de entrada para aplicação do Framework for Understanding Structural Errors (FUSE) nomodo de escala de bacia hidrográfica. São necessários dois arquivos NetCDF de entrada para o FUSE:

A seguir apresenta-se como gerar estes dois arquivos a partir de dados pré-processados fornecidos com os pacotes. Após conhecer estas funções, você pode estar interessado em gerar os dados para sua bacia hidrográfica de interesse. Este procedimento é detalhado nas vinhetas fornecidas com o {fuse.prep}. Recomenda-se reproduzi-las na seguinte ordem:

  1. vignette('pp-elevbands', package = "fuse.prep")

  2. vignette('pp-forcmets', package = "fuse.prep")

Pré-requisitos do sistema

Como o {fuse.prep} depende dos pacotes {lhmetools}, {HEgis} e {HEobs}. Para sistemas linux, você precisa instalar:

No Windows você precisa do 7-zip, um software livre, facilmente instalado a partir do R com o pacote {installr} usando installr::install.7zip().

Instalação

O {fuse.prep} pode ser instalado do GitHub com:

# install.packages("devtools")
devtools::install_github(
  "lhmet-ped/fuse.prep",
  build_vignettes = TRUE,
  dependencies = TRUE
)

A opção build_vignettes = TRUE instalará o pacote incluindo as vinhetas do pacote que apresentam as etapas de pré-processamento dos dados necessários para criação dos arquivos NetCDF.

NetCDF de bandas de elevação

Os dados de exemplo são da Bacia Hidrográfica associada ao posto 74 (UHE G.B. MUNHOZ). Os dados necessários para geração do arquivo NetCDF de bandas de elevação:

Estes dados são disponibilizados com este pacote (precclim74) e com o pacote {HEgis} (poly74 e condem74).

library(HEgis)
poly74
#> Simple feature collection with 1 feature and 9 fields
#> geometry type:  POLYGON
#> dimension:      XY
#> bbox:           xmin: -51.72274 ymin: -26.85503 xmax: -48.94853 ymax: -25.22428
#> geographic CRS: SIRGAS 2000
#>   codONS codANA       nome                                   nomeOri    adkm2
#> 1     74   7659 G_B_MUNHOZ UHE Governador Bento Munhoz da Rocha Neto 30207.57
#>   volhm3        rio cobacia        tpopera                       geometry
#> 1   5779 Rio Iguaçu 8625591 Regulariza_ONS POLYGON ((-51.56304 -26.259...
condem74
#> class      : RasterLayer 
#> dimensions : 1957, 3329, 6514853  (nrow, ncol, ncell)
#> resolution : 0.0008333333, 0.0008333333  (x, y)
#> extent     : -51.7225, -48.94833, -26.855, -25.22417  (xmin, xmax, ymin, ymax)
#> crs        : +proj=longlat +datum=WGS84 +no_defs 
#> source     : memory
#> names      : layer 
#> values     : 588, 1506  (min, max)
library(fuse.prep)
precclim74
#> class      : RasterLayer 
#> dimensions : 8, 13, 104  (nrow, ncol, ncell)
#> resolution : 0.25, 0.25  (x, y)
#> extent     : -52, -48.75, -27, -25  (xmin, xmax, ymin, ymax)
#> crs        : +proj=longlat +datum=WGS84 +no_defs 
#> source     : memory
#> names      : layer 
#> values     : 1444.804, 2400.077  (min, max)

Para saber como estes 3 arquivos foram gerados consulte a vinheta de Pré-processamento dos dados de bandas de elevação digitando vignette('pp-elevbands', package = "fuse.prep").

O arquivo NetCDF de bandas de elevação é gerado com a função elev_bands_ncname() que requer como entrada os dados carregados acima e o centróide do polígono. O centróide do polígono da bacia hidrográfica é obtido com a função centroids().

(poly_ctrd <- centroids(poly_station = poly74))
#> # A tibble: 1 x 3
#>     lon   lat station
#>   <dbl> <dbl> <chr>  
#> 1 -50.3 -26.0 74

Para gerar o arquivo precisamos definir onde ele será salvo.

# arquivo de saída - altere o caminho para o local desejado
# nome do arquivo netcdf: 'suffix_elev_bands.nc'
(suffix <- paste0("posto", poly74$codONS))
#> [1] "posto74"
dest_dir <- tempdir()
elev_bands_ncname <- file.path(
  dest_dir, 
  paste(suffix, "elev_bands.nc", sep = "_")
)

Agora temos os dados de entrada para função elev_bands_ncname() gerar o arquivo NetCDF.

elev_bands_file <- elev_bands_nc(
  con_dem = condem74, 
  meteo_raster = precclim74, 
  nbands = 14,
  ccoords = poly_ctrd,
  file_nc = elev_bands_ncname,
  na = -9999
)
#>   |                                                                              |                                                                      |   0%  |                                                                              |==================                                                    |  25%  |                                                                              |===================================                                   |  50%  |                                                                              |====================================================                  |  75%  |                                                                              |======================================================================| 100%
#> 
#>   |                                                                              |                                                                      |   0%  |                                                                              |===================================                                   |  50%
elev_bands_file
#> [1] "/tmp/Rtmp5UUq7h/posto74_elev_bands.nc"
file.exists(elev_bands_file)
#> [1] TRUE

NetCDF das forçantes meteorológicas

Para gerar o arquivo NetCDF com as séries temporais das forçantes hidrometeorológicas médias na área da BH, utilizaremos o conjunto de dados forcdata74 disponibilizado com este pacote.

str(forcdata74)
#> tibble [13,149 × 6] (S3: tbl_df/tbl/data.frame)
#>  $ date   : Date[1:13149], format: "1980-01-01" "1980-01-02" ...
#>  $ station: num [1:13149] 74 74 74 74 74 74 74 74 74 74 ...
#>  $ temp   : num [1:13149] 20.6 20.6 20.6 20.6 20.6 ...
#>  $ pr     : num [1:13149] 0.3635 0.2136 0.169 0.226 0.0616 ...
#>  $ pet    : num [1:13149] 5.37 5.01 5.38 5.53 5.51 ...
#>  $ q_obs  : num [1:13149] 1.81 1.64 1.43 1.34 1.22 ...

Para saber como gerar estes dados consulte a vinheta de Pré-processamento dos dados das forçantes meteorológicas digitando vignette('pp-forcmets', package = "fuse.prep").

Cada variável é passada como um vetor conforme código abaixo. Os nomes dos vetores devem seguir este padrão: pr para precipitação, pet para evapotranspiração potencial e q_obs para vazão observada. Além das séries temporais das variáveis precisamos das datas, as coordenadas da bacia hidrográfica do posto e o arquivo NetCDF que será salvo.

# arquivo de saída - altere o caminho para o local desejado
forcings_ncname <- file.path(
  dest_dir, 
  paste(suffix, "input.nc", sep = "_")
)
# exporta dados para netcdf
meteo_forcing_nc(
  forc_tbl = forcdata74,
  ccoords = centroids(poly_station = poly74),
  file_nc = forcings_ncname 
)
#> [1] "/tmp/Rtmp5UUq7h/posto74_input.nc"
file.exists(forcings_ncname)
#> [1] TRUE


lhmet-ped/fuse.prep documentation built on Dec. 7, 2020, 3:08 p.m.