knitr::opts_chunk$set( collapse = TRUE, comment = "#>", fig.path = "man/figures/README-", out.width = "100%" )
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:
bandas de elevação do terreno: armazena as frações de área da bacia hidrográfica e da precipitação anual por banda de elevação;
forçantes meteorológicas: armazena as séries temporais da média diárias na área da bacia hidrográfica das variáveis: temperatura do ar (°C), precipitação (mm dia^-1^), evapotranspiração potencial (mm dia^-1^) e opcionalmente de vazão observada (ou deflúvio, mm dia^-1^);
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:
vignette('pp-elevbands', package = "fuse.prep")
vignette('pp-forcmets', package = "fuse.prep")
Como o {fuse.prep
} depende dos pacotes {lhmetools
}, {HEgis
} e {HEobs
}. Para sistemas linux, você precisa instalar:
unrar (>= 5.61, instruções de instalação aqui)
netcdf (>= 4.7.3) e udunits-2 (instruções de instalação aqui)
GDAL (>= 2.0.1), GEOS (>= 3.4.0) and Proj.4 (>= 4.8.0) (instruções de instalação aqui).
No Windows você precisa do 7-zip, um software livre, facilmente instalado a partir do R com o pacote {installr
} usando installr::install.7zip()
.
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.
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:
raster da precipitação climatológica anual
raster da elevação do terreno hidrologicamente condicionado
polígono da bacia hidrográfica (Simple Feature, sf
)
Estes dados são disponibilizados com este pacote (precclim74
) e com o pacote
{HEgis}
(poly74
e condem74
).
library(HEgis) poly74 condem74 library(fuse.prep) precclim74
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))
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)) 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 ) elev_bands_file file.exists(elev_bands_file)
#Verificação do arquivo gerado. if (requireNamespace("tidync", quietly = TRUE)) { library(tidync) out <- tidync(elev_bands_file) %>% hyper_tibble() # compara arquivo de exemplo do FUSE ref <- tidync::tidync("/home/hidrometeorologista/Desktop/fuse-poc-sim/fuse_catch/input/us_09066300_elev_bands.nc") %>% tidync::hyper_tibble() } out
ref <- tidync::tidync("/home/hidrometeorologista/Desktop/fuse-poc-sim/fuse_catch/input/us_09066300_input.nc") %>% tidync::hyper_tibble() ref names(ref)
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)
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 ) file.exists(forcings_ncname)
library(tidync) forcing_file <- forcings_ncname out <- tidync(forcing_file) %>% hyper_tibble() # compara arquivo de exemplo do FUSE ref <- tidync("/home/hidrometeorologista/Desktop/fuse-poc-sim/fuse_catch/input/us_09066300_input.nc") %>% hyper_tibble() out ref
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.