Add a column of basin areas to a daily streamflow data set, in units of square kilometres.
add_basin_area(data, groups = STATION_NUMBER, station_number, basin_area)
Data frame of daily data that contains columns of dates, flow values, and (optional) groups (e.g. station numbers).
Leave blank or set to NULL
if using station_number
argument.
Name of column in data
that contains unique identifiers for different data sets, if applicable. Only required
if groups column name is not 'STATION_NUMBER'. Function will automatically group by a column named 'STATION_NUMBER' if
present. Remove the 'STATION_NUMBER' column beforehand to remove this grouping. Leave blank if using station_number
argument.
Character string vector of seven digit Water Survey of Canada station numbers (e.g. "08NM116"
) of
which to extract daily streamflow data from a HYDAT database. Requires tidyhydat
package and a HYDAT database.
Leave blank if using data
argument.
Upstream drainage basin area, in square kilometres, to apply to observations. Three options:
(1) Leave blank if groups
is STATION_NUMBER with HYDAT station numbers to extract basin areas from HYDAT.
(2) A single numeric value to apply to all observations.
(3) List each basin area for each group/station in groups (can override HYDAT value if listed) as such c("08NM116" = 795,
"08NM242" = 10)
. If group is not listed the HYDAT area will be applied if it exists, otherwise it will be NA
.
A tibble data frame of the original source data with an additional column:
area of upstream drainage basin area, in square kilometres
# Run if HYDAT database has been downloaded (using tidyhydat::download_hydat())
if (file.exists(tidyhydat::hy_downloaded_db())) {
# Add the HYDAT basin area to a data frame with station numbers
flow_data <- tidyhydat::hy_daily_flows(station_number = "08NM116")
add_basin_area(data = flow_data)
# Add the HYDAT basin area to data from HYDAT
add_basin_area(station_number = "08NM116")
# Set a custom basin area
add_basin_area(station_number = "08NM116",
basin_area = 800)
# Set multiple custom basin areas for multiple stations
add_basin_area(station_number = c("08NM116", "08NM242"),
basin_area = c("08NM116" = 800, "08NM242" = 10))
}
#> # A tibble: 35,528 × 6
#> STATION_NUMBER Date Parameter Value Symbol Basin_Area_sqkm
#> <chr> <date> <chr> <dbl> <chr> <dbl>
#> 1 08NM116 1949-04-01 Flow 1.13 E 800
#> 2 08NM116 1949-04-02 Flow 1.53 E 800
#> 3 08NM116 1949-04-03 Flow 2.07 E 800
#> 4 08NM116 1949-04-04 Flow 2.07 E 800
#> 5 08NM116 1949-04-05 Flow 2.21 E 800
#> 6 08NM116 1949-04-06 Flow 2.21 NA 800
#> 7 08NM116 1949-04-07 Flow 2.27 NA 800
#> 8 08NM116 1949-04-08 Flow 2.35 NA 800
#> 9 08NM116 1949-04-09 Flow 2.78 NA 800
#> 10 08NM116 1949-04-10 Flow 2.94 NA 800
#> # … with 35,518 more rows