detect(data, climatology_start = 1983, climatology_end = 2012, pctile = 90, window_half_width = 5, smooth_percentile = TRUE, smooth_percentile_width = 31, min_duration = 5, join_across_gaps = TRUE, max_gap = 2, max_pad_length = 3, cold_spells = FALSE)
doy
,
which is the Julian day running from 1 to 366, but modified so that the
day-of-year (doy) vector for non-leap-years runs 1...59 and then
61...366. For leap years the 60th day is February 29. The date
column
is a vector of dates of class Date
, while temp
is the
temperature. Data of the appropriate format are created by the function
make_whole
, but your own data can be supplied if they meet the
criteria specified by make_whole
.1983
.2012
(but see comment
above).90
th percentile for marine heat waves and 10
th
percentile for marine cold spells.5
days, which gives a window width of 11 days centered on the 6th day of the
series of 11 days.31
days.smooth_percentile
. Default is TRUE
.5
days.max_gap
. Default
is TRUE
.2
days.NA
) in the input
temperature time series; i.e., any consecutive blocks of NAs with length
greater than max_pad_length
will be left as NA
. Set as an
integer. Default is 3
days.FALSE
.clim
and
event
, which are the climatology and MHW (or MCS) events, respectively.
The climatology contains the full time series of daily temperatures, as well
as the the seasonal climatology, the threshold and various aspects of the
events that were detected:The events are summarised using a range of event metrics:int_max_rel_thresh
, int_mean_rel_thresh
,
int_var_rel_thresh
, and int_cum_rel_thresh
are as above except relative to the threshold (e.g., 90th percentile) rather
than the seasonal climatology.int_max_abs
, int_mean_abs
, int_var_abs
, and
int_cum_abs
are as above except as absolute magnitudes
rather than relative to the seasonal climatology or threshold.int_max_norm
and int_mean_norm
are as above except
units are in multiples of threshold exceedances, i.e., a value of 1.5
indicates the event intensity (relative to the climatology) was 1.5 times the
value of the threshold (relative to climatology,
i.e., threshold - climatology.)Note that rate_onset
and rate_decline
will return NA or
NaN when the event occurs at the start or end of time series. This
may be particularly evident when the function is applied to large gridded
data sets. Although the other metrics do not contain any errors and
provide sensible values, please take this into account in its
interpretation.
make_whole
aids in the preparation of a time series that is
suitable for use with detect
, although this may also be accomplished
'by hand' as long as the criteria are met as discussed in the documentation
to make_whole
.
climatology_start
and ending on 31 December of the specified
climatology_end
. Even one day short of a full year (i.e. 365 day during
non-leap years and 366 days during leap years) at the beginning/end of the
climatology period will cause the function to fail. This may be changed in
future versions of the function.
max_pad_length
) will be set equal
to the seasonal climatology. This means they will trigger the end/start of
any adjacent temperature values which satisfy the event definition criteria.
coldSpells
= TRUE),
then it works just as for heat waves except that events are detected as
deviations below the (100 - pctile)th percentile (e.g., the 10th instead of
90th) for at least 5 days. Intensities are reported as negative values and
represent the temperature anomaly below climatology.
The original Python algorithm was written by Eric Oliver, Institute for Marine and Antarctic Studies, University of Tasmania, Feb 2015, and is documented by Hobday et al. (2016). The marine cold spell option was implemented in version 0.13 (21 Nov 2015) of the Python module as a result of our preparation of Schlegel et al. (submitted), wherein the cold events receive a brief overview.
Schlegel, R. W., Oliver, C. J., Wernberg, T. W., Smit, A. J. (in press). Coastal and offshore co-occurrences of marine heatwaves and cold-spells. Progress in Oceanography.
t_dat <- make_whole(sst_WA)
res <- detect(t_dat, climatology_start = 1983, climatology_end = 2012)
# show a portion of the climatology:
res$clim[1:10, ]
# show some of the heat waves:
res$event[1:5, 1:10]
Run the code above in your browser using DataLab