Learn R Programming

Report a Bug    |    Request a Feature    |    Ask a Question

Estimates and predicts the wet season calendar (WSC) and soil water balance for agricultural applications. It integrates daily potential evapotranspiration (PET) and soil water balance parameters to compute the WSC for crop and soil water management. Using these parameters, AquaBEHER can estimate and predict the onset, cessation, and duration of the wet season based on an agroclimatic approach.

⛓ Key Features

  • Daily potential evapotranspiration (PET) estimation using various methods.
  • Daily soil water balance estimation based on adjustable soil water holding capacity (soilWHC).
  • Wet season calendar estimation and seasonal prediction including:
    • Onset of the wet season
    • Cessation of the wet season
    • Duration of the wet season

AquaBEHER is designed to facilitate water-efficient agricultural practices in response to climate variability and change.


:arrow_down: Installation

Install from CRAN:

install.packages("AquaBEHER")

Install the development version from GitHub:

# install.packages("devtools")
devtools::install_github("RobelTakele/AquaBEHER")

To view the vignettes in RStudio, run:

vignette("AquaBEHER", "AquaBEHER")

Further details regarding AquaBEHER are available on the package website, visit here.


:fast_forward: Quick Example

Here’s a quick example to estimate daily soil water balance:

library(AquaBEHER)
data(AgroClimateData)

# Estimate PET using Penman-Monteith method
PET <- calcEto(AgroClimateData, method = "PM", Zh = 10)

# Add PET to the dataset
AgroClimateData$Eto <- PET$ET.Daily

# Estimate daily soil water balance for a soil with 100mm water holding capacity
watBal.list <- calcWatBal(data = AgroClimateData, soilWHC = 100)
watBal <- watBal.list$data
head(watBal)
#>       GridID       Lat     Lon     Elev      WHC Year Month Day Rain     Tmax
#> 1 MOZ0007149 -15.09238 39.2519 392.1337 97.84914 1982     1   1    0 32.24396
#> 2 MOZ0007149 -15.09238 39.2519 392.1337 97.84914 1982     1   2    0 33.07202
#> 3 MOZ0007149 -15.09238 39.2519 392.1337 97.84914 1982     1   3    0 33.49679
#> 4 MOZ0007149 -15.09238 39.2519 392.1337 97.84914 1982     1   4    0 32.76818
#> 5 MOZ0007149 -15.09238 39.2519 392.1337 97.84914 1982     1   5    0 32.65872
#> 6 MOZ0007149 -15.09238 39.2519 392.1337 97.84914 1982     1   6    0 31.80630
#>       Tmin       Rs     Tdew       Uz      Eto R AVAIL TRAN DRAIN RUNOFF
#> 1 23.11500 23.86698 20.21160 4.723783 6.447727 0     0    0     0      0
#> 2 23.12585 26.38375 20.48284 4.279407 6.802067 0     0    0     0      0
#> 3 23.12602 25.00704 20.45689 3.622179 6.485418 0     0    0     0      0
#> 4 23.60351 24.16475 20.83896 2.535047 5.838723 0     0    0     0      0
#> 5 22.79294 23.44483 21.36882 1.477617 5.231518 0     0    0     0      0
#> 6 22.43975 21.99277 21.29297 1.953415 5.026133 0     0    0     0      0

:bar_chart: Visualization

Visualize the daily soil water balance, rainfall, and potential evapotranspiration (Eto) for the climatological year 2019–2020:

library(ggplot2)

# Filter the data for 2019 and 2020
watBal.19T20 <- watBal[watBal$Year %in% c(2019, 2020), ]
date.vec <- as.Date(paste(watBal.19T20$Year, watBal.19T20$Month, watBal.19T20$Day, sep = "-"), format = "%Y-%m-%d")
watBal.19T20$date <- date.vec

# Plot water balance with ggplot2
ggplot(watBal.19T20, aes(x = date)) +
  geom_bar(aes(y = Rain), stat = "identity", fill = "#1f78b4", alpha = 0.6, width = 0.8) +
  geom_line(aes(y = AVAIL), color = "#33a02c", size = 1.5) +
  geom_line(aes(y = Eto), color = "#ff7f00", size = 1.2, linetype = "dashed") +
  scale_x_date(date_labels = "%b %Y", date_breaks = "1 month", expand = c(0.01, 0)) +
  scale_y_continuous(
    name = "Available Soil Water (mm)",
    sec.axis = sec_axis(~., name = "Rainfall (mm)")
  ) +
  labs(
    title = "Rainfall, Available Soil Water, and Potential Evapotranspiration",
    subtitle = "2019-2020 Data",
    x = NULL, y = NULL
  ) +
  theme_minimal(base_size = 15) +
  theme(
    plot.title = element_text(face = "bold", size = 18, hjust = 0.5),
    plot.subtitle = element_text(size = 14, hjust = 0.5, color = "grey40"),
    axis.text.x = element_text(angle = 45, hjust = 1),
    panel.grid.minor = element_blank(),
    panel.grid.major = element_line(linetype = "dotted", color = "grey80")
  )

:memo: Citation

If you used AquaBEHER in your work, please cite it. You can view the most recent citation by running:

citation(package = "AquaBEHER")
To cite `AquaBEHER` in publications, please use:

  Robel Takele, Matteo Dell'Acqua (2023). `AquaBEHER`: Estimation and Prediction of Wet Season Calendar and Soil
  Water Balance for Agriculture. R package version 1.0.0. Available at
  https://cran.r-project.org/web/packages/AquaBEHER

A BibTeX entry for LaTeX users is:

  @Manual{,
    title = {`AquaBEHER`: Estimation and Prediction of Wet Season Calendar and Soil Water Balance for Agriculture},
    author = {Robel Takele and Matteo Dell'Acqua},
    year = {2023},
    note = {R package version 1.0.0},
    url = {https://robeltakele.github.io/AquaBEHER/},
  }

:earth_africa: Feedback and Contributions

Copy Link

Version

Install

install.packages('AquaBEHER')

Monthly Downloads

230

Version

1.4.0

License

GPL (>= 3)

Issues

Pull Requests

Stars

Forks

Maintainer

Robel Takele

Last Published

September 25th, 2024

Functions in AquaBEHER (1.4.0)

%>%

Pipe operator
calcSeasCal

Wet Season Calendar
calcWatBal

Daily Soil Water Balance Estimation
calcEto

Potential Evapotranspiration
seasFcstQBR

Seasonal Forecast of Wet Season Calendar (WSC) from Tercile Rainfall Probabilities using Quantile Bin Resampling (QBR)
climateData

Daily Weather Data (1996-2020) from Angochen Weather Observing Station, Mozambique
AgroClimateData

Daily Surface Meteorological Data (1982-2022) Extracted from AgERA5