Generates the random samples of all the stochastic CRM parameters. For internal use.
Usage
sample_parameters(
model_options,
mod_mths,
n_iter = 10,
flt_speed_pars,
body_lt_pars,
wing_span_pars,
avoid_bsc_pars,
avoid_ext_pars,
noct_act_pars,
prop_crh_pars,
bird_dens_opt = "tnorm",
bird_dens_dt,
gen_fhd_boots = NULL,
site_fhd_boots = NULL,
rtr_radius_pars,
air_gap_pars,
bld_width_pars,
rtn_pitch_opt = "probDist",
bld_pitch_pars,
rtn_speed_pars,
windspd_pars,
rtn_pitch_windspd_dt,
trb_wind_avbl,
trb_downtime_pars,
lrg_arr_corr
)
Arguments
- model_options
Character vector, the model options for calculating collision risk (see Details section below).
- mod_mths
character vector, the names of months under modelling
- n_iter
An integer. The number of iterations for the model simulation.
- flt_speed_pars
A single row data frame with columns
mean
andsd
, the mean and standard deviation of the species flying speed, in metres/sec. Assumed to follow a Truncated Normal with lower bound at 0 (tnorm-lw0).- body_lt_pars
A single row data frame with columns
mean
andsd
, the mean and standard deviation of the species body length, in metres. Assumed to follow a tnorm-lw0 distribution.- wing_span_pars
A single row data frame with columns
mean
andsd
, the mean and standard deviation of the species wingspan, in metres. Assumed to follow a tnorm-lw0 distribution.- avoid_bsc_pars, avoid_ext_pars
Single row data frames with columns
mean
andsd
, the mean and standard deviation of the species avoidance rate to be used in the basic model (Options 1 and 2) and extended model (Options 3 and 4) calculations (see Details section). Avoidance rate expresses the probability that a bird flying on a collision course with a turbine will take evading action to avoid collision, and it is assumed to follow a Beta distribution.- noct_act_pars
A single row data frame with columns
mean
andsd
, The mean and standard deviation of the species nocturnal flight activity level, expressed as a proportion of daytime activity levels, and assumed to be Beta distributed.- prop_crh_pars
Required only for model Option 1, a single row data frame with columns
mean
andsd
. The mean and standard deviation of the proportion of flights at collision risk height derived from site survey, assumed to be Beta distributed.- bird_dens_opt
Option for specifying the random sampling mechanism for bird densities:
"tnorm"
: Sampling of density estimates from a tnorm-lw0 distribution (default value),"resample"
: Re-sample draws of bird density estimates (e.g. bootstrap samples),"qtiles"
: Sampling from a set of quantile estimates of 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:
If
bird_dens_opt = "tnorm"
,bird_dens_dt
must contain the following columns:month
, (unique) month names,mean
, the mean number of birds in flight at any height per square kilometre in each month,sd
, idem, for standard deviation.
If
bird_dens_opt = "resample"
,bird_dens_dt
columns must be named as months (i.e.Jan
,Feb
, ...), each containing random samples of monthly density estimates.If
bird_dens_opt = "qtiles"
,bird_dens_dt
must comply with:First column named as
p
, giving reference probabilities,Remaining columns named as months (i.e.
Jan
,Feb
, ...), each giving the quantile estimates of bird density in a given month, for the reference probabilities in columnp
.
- 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
height
, expressing the lower bound of the height band (thus it's first element must be 0). Each remaining column should provide a bootstrap sample of the proportion of bird flights at each height band, with no column naming requirements.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
gen_fhd_boots
, but for FHD estimates derived from site-specific data.- rtr_radius_pars
A single row data frame with columns
mean
andsd
, the mean and standard deviation of the radius of the rotor, in metres. Assumed to follow a tnorm-lw0 distribution.- air_gap_pars
A single row data frame with columns
mean
andsd
, the mean and standard deviation of the tip clearance gap, in metres, i.e. the distance between the minimum rotor tip height and the highest astronomical tide (HAT). Assumed to follow a tnorm-lw0 distribution.- bld_width_pars
A single row data frame with columns
mean
andsd
, the mean and standard deviation of the maximum blade width, in metres. Assumed to be tnorm-lw0 distribution.- rtn_pitch_opt
a character string, the option for specifying the sampling mechanism for rotation speed and blade pitch:
"probDist"
: sample rotation speed and blade pitch values from a tnorm-lw0 distribution (default value)."windSpeedReltn"
: generate rotation speed and blade pitch values as a function of wind speed intensity.
- bld_pitch_pars
Only required if
rtn_pitch_opt = "probDist"
, a single row data frame with columnsmean
andsd
, the mean and standard deviation of the blade pitch angle, i.e. the angle between the blade surface and the rotor plane, in degrees. Assumed to follow a tnorm-lw0 distribution.- rtn_speed_pars
Only required if
rtn_pitch_opt = "probDist"
, a single row data frame with columnsmean
andsd
, the mean and standard deviation of the operational rotation speed, in revolutions per minute. Assumed to follow a tnorm-lw0 distribution.- windspd_pars
Only required if
rtn_pitch_opt = "windSpeedReltn"
, a single row data frame with columnsmean
andsd
, the mean and the standard deviation of wind speed at the windfarm site, in metres/sec. Assumed to follow a tnorm-lw0 distribution.- rtn_pitch_windspd_dt
Only required if
rtn_pitch_opt = "windSpeedReltn"
, a data frame giving the relationship between wind speed, rotation speed and blade pitch values. It must contain the columns:wind_speed
, wind speed in m/s,rtn_speed
, rotation speed in rpm,bld_pitch
, blade pitch values in degrees.
- trb_wind_avbl
A data frame with the monthly estimates of operational wind availability. It must contain the columns:
month
, (unique) month names,pctg
, the percentage of time wind conditions allow for turbine operation per month.
- 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:
month
, (unique) month names,mean
, numeric, the mean percentage of time in each month when turbines are not operating due to maintenance,sd
, the standard deviation of monthly maintenance downtime.
- 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.
Details
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.
Examples
bird_dens_dt <- data.frame(
month = month.abb,
mean = runif(12, 0.8, 1.5),
sd = runif(12, 0.2, 0.3)
)
# wind availability
trb_wind_avbl <- data.frame(
month = month.abb,
pctg = runif(12, 85, 98)
)
# maintenance downtime
trb_downtime_pars <- data.frame(
month = month.abb,
mean = runif(12, 6, 10),
sd = rep(2, 12))
# Wind speed relationships
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)
)
bird_dens_opt <- "tnorm"
### extract and standardize month format from monthly data sets
b_dens_mth <- switch (bird_dens_opt,
tnorm = bird_dens_dt$month,
resample = names(bird_dens_dt),
qtiles = names(bird_dens_dt)[names(bird_dens_dt) != "p"]
) %>% format_months()
dwntm_mth <- format_months(trb_downtime_pars$month)
windav_mth <- format_months(trb_wind_avbl$month)
### Set months to model: only those in common amongst monthly data sets
mod_mths <- Reduce(intersect, list(b_dens_mth, dwntm_mth, windav_mth))
### Order chronologically
mod_mths <- mod_mths[order(match(mod_mths, month.abb))]
param_draws <- sample_parameters(
model_options = c(1,2,3),
n_iter = 10,
mod_mths = mod_mths,
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 = bird_dens_dt,
gen_fhd_boots = generic_fhd_bootstraps[[1]],
site_fhd_boots = NULL,
rtr_radius_pars = data.frame(mean=80,sd=0),
air_gap_pars = data.frame(mean=36,sd=0),
bld_width_pars = data.frame(mean=8,sd=0),
rtn_pitch_opt = "windSpeedReltn",
bld_pitch_pars = NULL,
rtn_speed_pars = NULL,
windspd_pars = data.frame(mean=7.74,sd=3),
rtn_pitch_windspd_dt = wind_rtn_ptch,
trb_wind_avbl = trb_wind_avbl,
trb_downtime_pars = trb_downtime_pars,
lrg_arr_corr = TRUE
)