stoch_crm | R Documentation |
Runs a Stochastic Collision Risk Model (SCRM) for estimating the number of in-flight collisions with offshore windfarm turbines, for given species and windfarm scenario. Core calculations follow the work developed by Masden (2015). See Background and Updates section below for more details.
stoch_crm( model_options = c("1", "2", "3", "4"), n_iter = 1000, flt_speed_pars, body_lt_pars, wing_span_pars, avoid_bsc_pars = NULL, avoid_ext_pars = NULL, noct_act_pars, prop_crh_pars = NULL, bird_dens_opt = c("tnorm", "resample", "qtiles"), bird_dens_dt, flight_type, prop_upwind, gen_fhd_boots = NULL, site_fhd_boots = NULL, n_blades, air_gap_pars, rtr_radius_pars, bld_width_pars, bld_chord_prf = chord_prof_5MW, rtn_pitch_opt = c("probDist", "windSpeedReltn"), bld_pitch_pars = NULL, rtn_speed_pars = NULL, windspd_pars = NULL, rtn_pitch_windspd_dt = NULL, trb_wind_avbl, trb_downtime_pars, wf_n_trbs, wf_width, wf_latitude, tidal_offset, lrg_arr_corr = TRUE, xinc = 0.05, yinc = 0.05, out_format = c("draws", "summaries"), out_sampled_pars = FALSE, out_period = c("months", "seasons", "annum"), season_specs = NULL, verbose = TRUE, log_file = NULL, seed = NULL )
model_options |
Character vector, the model options for calculating collision risk (see Details section below). |
n_iter |
An integer. The number of iterations for the model simulation. |
flt_speed_pars |
A single row data frame with columns |
body_lt_pars |
A single row data frame with columns |
wing_span_pars |
A single row data frame with columns |
avoid_bsc_pars, avoid_ext_pars |
Single row data frames with columns
|
noct_act_pars |
A single row data frame with columns |
prop_crh_pars |
Required only for model Option 1, a single row data
frame with columns |
bird_dens_opt |
Option for specifying the random sampling mechanism for bird densities:
|
bird_dens_dt |
A data frame with monthly estimates of bird density within the windfarm footprint, expressed as the number of daytime in-flight birds/km^2 per month. Data frame format requirements:
|
flight_type |
A character string, either 'flapping' or 'gliding', indicating the species' characteristic flight type. |
prop_upwind |
Numeric value between 0-1 giving the proportion of flights upwind - defaults to 0.5. |
gen_fhd_boots |
Required only for model Options 2 and 3, a data frame
with bootstrap samples of flight height distributions (FHD) of the species
derived from general (country/regional level) data. FHD provides relative
frequency distribution of bird flights at 1-+
-metre height bands, starting
from sea surface. The first column must be named as NOTE: generic_fhd_bootstraps is a list object with generic FHD bootstrap estimates for 25 seabird species from Johnson et al (2014) doi: 10.1111/1365-2664.12191 (see usage in Example Section below). |
site_fhd_boots |
Required only for model Option 4, a data frame similar
to |
n_blades |
An integer, the number of blades in rotor (b). |
air_gap_pars |
A single row data frame with columns |
rtr_radius_pars |
A single row data frame with columns |
bld_width_pars |
A single row data frame with columns |
bld_chord_prf |
A data frame with the chord taper profile of the rotor blade. It must contain the columns:
Defaults to a generic profile for a typical modern 5MW turbine. See
|
rtn_pitch_opt |
a character string, the option for specifying the sampling mechanism for rotation speed and blade pitch:
|
bld_pitch_pars |
Only required if |
rtn_speed_pars |
Only required if |
windspd_pars |
Only required if |
rtn_pitch_windspd_dt |
Only required if
|
trb_wind_avbl |
A data frame with the monthly estimates of operational wind availability. It must contain the columns:
|
trb_downtime_pars |
A data frame with monthly estimates of maintenance downtime, assumed to follow a tnorm-lw0 distribution. It must contain the following columns:
|
wf_n_trbs |
Integer, the number of turbines on the windfarm. |
wf_width |
Numeric value, the approximate longitudinal width of the wind farm, in kilometres (w). |
wf_latitude |
A decimal value. The latitude of the centroid of the windfarm, in degrees. |
tidal_offset |
A numeric value, the tidal offset, the difference between HAT and mean sea level, in metres. |
lrg_arr_corr |
Boolean value. If TRUE, the large array correction will be applied. This is a correction factor to account for the decay in bird density at later rows in wind farms with a large array of turbines. |
yinc, xinc |
numeric values, the increments along the y-axis and x-axis for numerical integration across segments of the rotor circle. Chosen values express proportion of rotor radius. By default these are set to 0.05, i.e. integration will be performed at a resolution of one twentieth of the rotor radius. |
out_format |
Output format specification. Possible values are:
|
out_sampled_pars |
Logical, whether to output summary statistics of values sampled for each stochastic model parameter. |
out_period |
Controls level of temporal aggregation of collision outputs. Possible values are:
|
season_specs |
Only required if
|
verbose |
Logical, print model run progress on the console? |
log_file |
Path to log file to store session info and main model run options. If set to NULL (default value), log file is not created. |
seed |
Integer, the random seed for random number generation, for analysis reproducibility. |
Collision risk can be calculated under 4 options, specified by model_options
:
Option 1 - Basic model with proportion at
collision risk height derived from site survey (prop_crh_surv
).
Option 2 - Basic model with proportion
at collision risk height derived from a generic flight height distribution
(gen_fhd
).
Option 3 - Extended model using a
generic flight height distribution (gen_fhd
).
Option 4 - Extended model using a
site-specific flight height distribution (site_fhd
).
Where,
Basic model - assumes a uniform distribution of bird flights at collision risk height (i.e. above the minimum and below the maximum height of the rotor blade).
Extended model - takes into account the distribution of bird flight heights at collision risk height.
If out_sampled_pars = FALSE
, returns a list with estimates of number of
collisions per chosen time periods, with elements containing the outputs for
each CRM Option.
If out_sampled_pars = TRUE
, returns a list object with two top-level
elements:
collisions
, a list comprising collision estimates for each CRM Option,
sampled_pars
, a list with summary statistics of values sampled for
stochastic model parameters.
# ------------------------------------------------------ # Run with arbitrary parameter values, for illustration # ------------------------------------------------------ # ------------------------------------------------------ # Setting some of the required inputs upfront b_dens <- data.frame( month = month.abb, mean = runif(12, 0.8, 1.5), sd = runif(12, 0.2, 0.3) ) head(b_dens) # Generic FHD bootstraps from Johnson et al (2014) fhd_boots <- generic_fhd_bootstraps[[1]] head(fhd_boots) # wind speed vs rotation speed vs blade pitch wind_rtn_ptch <- data.frame( wind_speed = seq_len(30), rtn_speed = 10/(30:1), bld_pitch = c(rep(90, 4), rep(0, 8), 5:22) ) head(wind_rtn_ptch) # wind availability windavb <- data.frame( month = month.abb, pctg = runif(12, 85, 98) ) head(windavb) # maintenance downtime dwntm <- data.frame( month = month.abb, mean = runif(12, 6, 10), sd = rep(2, 12)) head(dwntm) # seasons specification seas_dt <- data.frame( season_id = c("a", "b", "c"), start_month = c("Jan", "May", "Oct"), end_month = c("Apr", "Sep", "Dec") ) head(seas_dt) # ---------------------------------------------------------- # Run stochastic CRM, treating rotor radius, air gap and # blade width as fixed parameters (i.e. not stochastic) stoch_crm( model_options = c(1, 2, 3), n_iter = 1000, flt_speed_pars = data.frame(mean = 7.26, sd = 1.5), body_lt_pars = data.frame(mean = 0.39, sd = 0.005), wing_span_pars = data.frame(mean = 1.08, sd = 0.04), avoid_bsc_pars = data.frame(mean = 0.99, sd = 0.001), avoid_ext_pars = data.frame(mean = 0.96, sd = 0.002), noct_act_pars = data.frame(mean = 0.033, sd = 0.005), prop_crh_pars = data.frame(mean = 0.06, sd = 0.009), bird_dens_opt = "tnorm", bird_dens_dt = b_dens, flight_type = "flapping", prop_upwind = 0.5, gen_fhd_boots = fhd_boots, n_blades = 3, rtr_radius_pars = data.frame(mean = 80, sd = 0), # sd = 0, rotor radius is fixed air_gap_pars = data.frame(mean = 36, sd = 0), # sd = 0, air gap is fixed bld_width_pars = data.frame(mean = 8, sd = 0), # sd = 0, blade width is fixed rtn_pitch_opt = "windSpeedReltn", windspd_pars = data.frame(mean = 7.74, sd = 3), rtn_pitch_windspd_dt = wind_rtn_ptch, trb_wind_avbl = windavb, trb_downtime_pars = dwntm, wf_n_trbs = 200, wf_width = 15, wf_latitude = 56.9, tidal_offset = 2.5, lrg_arr_corr = TRUE, verbose = TRUE, seed = 1234, out_format = "summaries", out_sampled_pars = TRUE, out_period = "seasons", season_specs = seas_dt, log_file = file.path(getwd(), "scrm_example.log") )
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.