DKI() calculates the original version of the Danish quality index DKI
(Carstensen et al., 2014)
The DKI is based on AMBI and can only be calculated after first calculating
AMBI, the AZTI Marine Biotic Index, and H', the Shannon diversity index.
Both indices are included in output from the function AMBI().
The function uses an estimated maximum possible value of H' H_max in Danish
waters as a reference value to normalise DKI. If this value is not specified
as an argument, the default value is used 5.0
"However, in the present exercise, the Danish method used \(H_{max}\) (~5) as a kind of reference" (Borja et al., 2007)
Details
The AMBI() and Hdash() functions take a dataframe of observations as an
argument. The DKI functions, DKI2() and DKI(), do not take a dataframe
as an argument. Instead they take values of the input parameters, either
single values or as vectors.
To calculate DKI for a dataframe of AMBI values, it could be called from
e.g. within a dplyr::mutate() function call. See the examples below.
References
Borja, A., Josefson, A., Miles, A., Muxika, I., Olsgard, F., Phillips, G., Rodriguez, J., Rygg, B. (2007). An Approach to the Intercalibration of Benthic Ecological Status Assessment in the North Atlantic Ecoregion, According to the European Water Framework Directive. Marine Pollution Bulletin, 55(1-6), 42-52. #' doi:10.1016/j.marpolbul.2006.08.018
Carstensen, J., Krause-Jensen, D., Josefson, A. (2014). "Development and testing of tools for intercalibration of phytoplankton, macrovegetation and benthic fauna in Danish coastal areas." Aarhus University, DCE – Danish Centre for Environment and Energy, 85 pp. Scientific Report from DCE – Danish Centre for Environment and Energy No. 93. https://dce2.au.dk/pub/SR93.pdf
See also
DKI v1 has been superseded by DKI2() a salinity-normalised version of DKI.
Examples
# Simple example
DKI(AMBI = 1.61, H = 2.36, N = 25, S = 6)
#> [1] 0.55683
# ------ Example workflow for calculating DKI from species counts ----
# calculate AMBI index
dfAMBI <- AMBI(test_data, by = c("station"), var_rep="replicate")[["AMBI"]]
# show AMBI results
dfAMBI
#> # A tibble: 3 × 13
#> station AMBI AMBI_SD H S fNA N I II III IV V
#> <dbl> <dbl> <dbl> <dbl> <int> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
#> 1 1 1.48 0.338 1.80 6 0 16 0.125 0.75 0.125 0 0
#> 2 2 1.89 0.238 3.54 22 0 80 0.4 0.138 0.3 0.15 0.0125
#> 3 3 4.12 0.884 2.50 9 0 24 0 0.125 0.292 0.0833 0.5
#> # ℹ 1 more variable: Disturbance <chr>
# calculate DKI from AMBI results
dplyr::mutate(dfAMBI, DKI = DKI(AMBI, H, N, S))
#> # A tibble: 3 × 14
#> station AMBI AMBI_SD H S fNA N I II III IV V
#> <dbl> <dbl> <dbl> <dbl> <int> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
#> 1 1 1.48 0.338 1.80 6 0 16 0.125 0.75 0.125 0 0
#> 2 2 1.89 0.238 3.54 22 0 80 0.4 0.138 0.3 0.15 0.0125
#> 3 3 4.12 0.884 2.50 9 0 24 0 0.125 0.292 0.0833 0.5
#> # ℹ 2 more variables: Disturbance <chr>, DKI <dbl>
