overwinter_drought_code {cffdrs} | R Documentation |
Overwintering Drought Code
Description
overwinter_drought_code
calculates an initial or season
starting Drought Code (DC) value based on a standard method of overwintering
the Drought Code (Lawson and Armitage 2008). This method uses the final DC
value from previous year, over winter precipitation and estimates of how much
over-winter precipitation 'refills' the moisture in this fuel layer. This
function could be used for either one weather station or for multiple weather
stations.
Of the three fuel moisture codes (i.e. FFMC, DMC and DC) making up the FWI System, only the DC needs to be considered in terms of its values carrying over from one fire season to the next. In Canada both the FFMC and the DMC are assumed to reach moisture saturation from overwinter precipitation at or before spring melt; this is a reasonable assumption and any error in these assumed starting conditions quickly disappears. If snowfall (or other overwinter precipitation) is not large enough however, the fuel layer tracked by the Drought Code may not fully reach saturation after spring snow melt; because of the long response time in this fuel layer (53 days in standard conditions) a large error in this spring starting condition can affect the DC for a significant portion of the fire season. In areas where overwinter precipitation is 200 mm or more, full moisture recharge occurs and DC overwintering is usually unnecessary. More discussion of overwintering and fuel drying time lag can be found in Lawson and Armitage (2008) and Van Wagner (1985).
Usage
overwinter_drought_code(DCf = 100, rw = 200, a = 0.75, b = 0.75)
Arguments
DCf |
Final fall DC value from previous year |
rw |
Winter precipitation (mm) |
a |
User selected values accounting for carry-over fraction (view table below) |
b |
User selected values accounting for wetting efficiency fraction (view table below) |
Value
overwinter_drought_code
returns either a single value or a
vector of wDC values.
Author(s)
Xianli Wang, Mike Wotton, Alan Cantin, and Mike Flannigan
References
Lawson B.D. and Armitage O.B. 2008. Weather Guide for the Canadian Forest Fire Danger Rating System. Natural Resources Canada, Canadian Forest Service, Northern Forestry Centre, Edmonton, Alberta. 84 p. https://cfs.nrcan.gc.ca/pubwarehouse/pdfs/29152.pdf
Van Wagner, C.E. 1985. Drought, timelag and fire danger rating. Pages 178-185 in L.R. Donoghue and R.E. Martin, eds. Proc. 8th Conf. Fire For. Meteorol., 29 Apr.-3 May 1985, Detroit, MI. Soc. Am. For., Bethesda, MD. https://cfs.nrcan.gc.ca/pubwarehouse/pdfs/23550.pdf
See Also
Examples
library(cffdrs)
# The standard test data:
data("test_wDC")
# (1) Simple case previous fall's DC was 300, overwinter
# rain 110mm
winter_DC <- overwinter_drought_code(DCf = 300, rw = 110)
winter_DC
# (2) modified a and b parameters. Find table values in listed
# reference for Lawson and Armitage, 2008.
winter_DC <- overwinter_drought_code(DCf = 300, rw = 110, a = 1.0, b = 0.9)
winter_DC
# (3)with multiple inputs:
winter_DC <- overwinter_drought_code(
DCf = c(400, 300, 250), rw = c(99, 110, 200),
a = c(0.75, 1.0, 0.75), b = c(0.75, 0.9, 0.75)
)
winter_DC
# (4) A realistic example:
# precipitation accumulation and date boundaries
input <- test_wDC
# order data by ID and date
input <- with(input, input[order(id, yr, mon, day), ])
input$date <- as.Date(as.POSIXlt(
paste0(input$yr, "-", input$mon, "-", input$day), format = "%Y-%m-%d"
))
# select id value 1
input.2 <- input[input$id == 2, ]
# Explicitly defined fire start and end dates.
data("test_wDC_fs")
print(test_wDC_fs)
# Set date field
test_wDC_fs$date <- as.Date(as.POSIXlt(
paste0(test_wDC_fs$yr, "-", test_wDC_fs$mon, "-", test_wDC_fs$day), format = "%Y-%m-%d"
))
# match to current id value
input.2.fs <- test_wDC_fs[test_wDC_fs$id == 2, ]
# assign start of winter date (or end of fire season date)
winterStartDate <- input.2.fs[2, "date"]
# assign end of winter date (or start of new fire season date)
winterEndDate <- input.2.fs[3, "date"]
# Accumulate overwinter precip based on chosen dates
curYr.prec <- sum(
input.2[(input.2$date > winterStartDate &
input.2$date < winterEndDate), ]$prec
)
# Assign a fall DC value
fallDC <- 500
# calculate winter DC
winter_DC <- overwinter_drought_code(DCf = fallDC, rw = curYr.prec)
winter_DC
# Assign a different fall DC value
fallDC <- 250
# calculate winter DC
winter_DC <- overwinter_drought_code(DCf = fallDC, rw = curYr.prec, a = 1.0)
winter_DC