Integration with Diversity.jl

EcoSISTEM is integrated with the Diversity package, so diversity measures can be calculated directly on an ecosystem - an Ecosystem is a Diversity metacommunity, with one subcommunity per grid cell.

See The basics of EcoSISTEM.jl for how to set one up; the example below builds a small one to measure.

Every grid cell is a subcommunity, including inactive ones - sea off a coastline, or a cell a Deactivate intervention has destroyed. That costs nothing for the metacommunity measures, which weight each subcommunity by its share of the total abundance and so give an empty cell zero weight; the partitioned results are identical whether or not the empty cells are there. But a subcommunity measure returns one row per cell, so on a small island in a large grid most of those rows describe empty sea, and an index of an empty community is not defined. Select the occupied cells before asking a per-cell question.

using Diversity

norm_sub_alpha(eco, 1.0)      # subcommunity measures - one row per grid cell
25×8 DataFrame
Rowdiv_typemeasureqtype_leveltype_namepartition_levelpartition_namediversity
StringStringFloat64StringStringStringStringFloat64
1UniqueNormalisedAlpha1.0typessubcommunity[0.0, 10.0) × [0.0, 10.0) km9.89801
2UniqueNormalisedAlpha1.0typessubcommunity[10.0, 20.0) × [0.0, 10.0) km9.93625
3UniqueNormalisedAlpha1.0typessubcommunity[20.0, 30.0) × [0.0, 10.0) km9.9641
4UniqueNormalisedAlpha1.0typessubcommunity[30.0, 40.0) × [0.0, 10.0) km9.89108
5UniqueNormalisedAlpha1.0typessubcommunity[40.0, 50.0) × [0.0, 10.0) km9.88269
6UniqueNormalisedAlpha1.0typessubcommunity[0.0, 10.0) × [10.0, 20.0) km9.9448
7UniqueNormalisedAlpha1.0typessubcommunity[10.0, 20.0) × [10.0, 20.0) km9.96516
8UniqueNormalisedAlpha1.0typessubcommunity[20.0, 30.0) × [10.0, 20.0) km9.96071
9UniqueNormalisedAlpha1.0typessubcommunity[30.0, 40.0) × [10.0, 20.0) km9.93265
10UniqueNormalisedAlpha1.0typessubcommunity[40.0, 50.0) × [10.0, 20.0) km9.92121
11UniqueNormalisedAlpha1.0typessubcommunity[0.0, 10.0) × [20.0, 30.0) km9.92047
12UniqueNormalisedAlpha1.0typessubcommunity[10.0, 20.0) × [20.0, 30.0) km9.96118
13UniqueNormalisedAlpha1.0typessubcommunity[20.0, 30.0) × [20.0, 30.0) km9.9087
14UniqueNormalisedAlpha1.0typessubcommunity[30.0, 40.0) × [20.0, 30.0) km9.95041
15UniqueNormalisedAlpha1.0typessubcommunity[40.0, 50.0) × [20.0, 30.0) km9.93696
16UniqueNormalisedAlpha1.0typessubcommunity[0.0, 10.0) × [30.0, 40.0) km9.84087
17UniqueNormalisedAlpha1.0typessubcommunity[10.0, 20.0) × [30.0, 40.0) km9.91192
18UniqueNormalisedAlpha1.0typessubcommunity[20.0, 30.0) × [30.0, 40.0) km9.92677
19UniqueNormalisedAlpha1.0typessubcommunity[30.0, 40.0) × [30.0, 40.0) km9.96532
20UniqueNormalisedAlpha1.0typessubcommunity[40.0, 50.0) × [30.0, 40.0) km9.96222
21UniqueNormalisedAlpha1.0typessubcommunity[0.0, 10.0) × [40.0, 50.0) km9.92376
22UniqueNormalisedAlpha1.0typessubcommunity[10.0, 20.0) × [40.0, 50.0) km9.82651
23UniqueNormalisedAlpha1.0typessubcommunity[20.0, 30.0) × [40.0, 50.0) km9.96422
24UniqueNormalisedAlpha1.0typessubcommunity[30.0, 40.0) × [40.0, 50.0) km9.91624
25UniqueNormalisedAlpha1.0typessubcommunity[40.0, 50.0) × [40.0, 50.0) km9.89983
norm_meta_alpha(eco, 1.0)     # or metacommunity measures - one row for the landscape
1×8 DataFrame
Rowdiv_typemeasureqtype_leveltype_namepartition_levelpartition_namediversity
StringStringFloat64StringStringStringStringFloat64
1UniqueNormalisedAlpha1.0typesmetacommunity9.92518

Any measure takes several values of the viewpoint parameter q at once - 0 counts rare and common species alike, and larger values weight towards the commonest:

norm_sub_beta(eco, 0.0:3.0)
100×8 DataFrame
Rowdiv_typemeasureqtype_leveltype_namepartition_levelpartition_namediversity
StringStringFloat64StringStringStringStringFloat64
1UniqueNormalisedBeta0.0typessubcommunity[0.0, 10.0) × [0.0, 10.0) km1.0
2UniqueNormalisedBeta0.0typessubcommunity[10.0, 20.0) × [0.0, 10.0) km1.0
3UniqueNormalisedBeta0.0typessubcommunity[20.0, 30.0) × [0.0, 10.0) km1.0
4UniqueNormalisedBeta0.0typessubcommunity[30.0, 40.0) × [0.0, 10.0) km1.0
5UniqueNormalisedBeta0.0typessubcommunity[40.0, 50.0) × [0.0, 10.0) km1.0
6UniqueNormalisedBeta0.0typessubcommunity[0.0, 10.0) × [10.0, 20.0) km1.0
7UniqueNormalisedBeta0.0typessubcommunity[10.0, 20.0) × [10.0, 20.0) km1.0
8UniqueNormalisedBeta0.0typessubcommunity[20.0, 30.0) × [10.0, 20.0) km1.0
9UniqueNormalisedBeta0.0typessubcommunity[30.0, 40.0) × [10.0, 20.0) km1.0
10UniqueNormalisedBeta0.0typessubcommunity[40.0, 50.0) × [10.0, 20.0) km1.0
11UniqueNormalisedBeta0.0typessubcommunity[0.0, 10.0) × [20.0, 30.0) km1.0
12UniqueNormalisedBeta0.0typessubcommunity[10.0, 20.0) × [20.0, 30.0) km1.0
13UniqueNormalisedBeta0.0typessubcommunity[20.0, 30.0) × [20.0, 30.0) km1.0
14UniqueNormalisedBeta0.0typessubcommunity[30.0, 40.0) × [20.0, 30.0) km1.0
15UniqueNormalisedBeta0.0typessubcommunity[40.0, 50.0) × [20.0, 30.0) km1.0
16UniqueNormalisedBeta0.0typessubcommunity[0.0, 10.0) × [30.0, 40.0) km1.0
17UniqueNormalisedBeta0.0typessubcommunity[10.0, 20.0) × [30.0, 40.0) km1.0
18UniqueNormalisedBeta0.0typessubcommunity[20.0, 30.0) × [30.0, 40.0) km1.0
19UniqueNormalisedBeta0.0typessubcommunity[30.0, 40.0) × [30.0, 40.0) km1.0
20UniqueNormalisedBeta0.0typessubcommunity[40.0, 50.0) × [30.0, 40.0) km1.0
21UniqueNormalisedBeta0.0typessubcommunity[0.0, 10.0) × [40.0, 50.0) km1.0
22UniqueNormalisedBeta0.0typessubcommunity[10.0, 20.0) × [40.0, 50.0) km1.0
23UniqueNormalisedBeta0.0typessubcommunity[20.0, 30.0) × [40.0, 50.0) km1.0
24UniqueNormalisedBeta0.0typessubcommunity[30.0, 40.0) × [40.0, 50.0) km1.0
25UniqueNormalisedBeta0.0typessubcommunity[40.0, 50.0) × [40.0, 50.0) km1.0
26UniqueNormalisedBeta1.0typessubcommunity[0.0, 10.0) × [0.0, 10.0) km1.00792
27UniqueNormalisedBeta1.0typessubcommunity[10.0, 20.0) × [0.0, 10.0) km1.00584
28UniqueNormalisedBeta1.0typessubcommunity[20.0, 30.0) × [0.0, 10.0) km1.00466
29UniqueNormalisedBeta1.0typessubcommunity[30.0, 40.0) × [0.0, 10.0) km1.00885
30UniqueNormalisedBeta1.0typessubcommunity[40.0, 50.0) × [0.0, 10.0) km1.01249
31UniqueNormalisedBeta1.0typessubcommunity[0.0, 10.0) × [10.0, 20.0) km1.00518
32UniqueNormalisedBeta1.0typessubcommunity[10.0, 20.0) × [10.0, 20.0) km1.00199
33UniqueNormalisedBeta1.0typessubcommunity[20.0, 30.0) × [10.0, 20.0) km1.00365
34UniqueNormalisedBeta1.0typessubcommunity[30.0, 40.0) × [10.0, 20.0) km1.00666
35UniqueNormalisedBeta1.0typessubcommunity[40.0, 50.0) × [10.0, 20.0) km1.00909
36UniqueNormalisedBeta1.0typessubcommunity[0.0, 10.0) × [20.0, 30.0) km1.00723
37UniqueNormalisedBeta1.0typessubcommunity[10.0, 20.0) × [20.0, 30.0) km1.00346
38UniqueNormalisedBeta1.0typessubcommunity[20.0, 30.0) × [20.0, 30.0) km1.00777
39UniqueNormalisedBeta1.0typessubcommunity[30.0, 40.0) × [20.0, 30.0) km1.00398
40UniqueNormalisedBeta1.0typessubcommunity[40.0, 50.0) × [20.0, 30.0) km1.00573
41UniqueNormalisedBeta1.0typessubcommunity[0.0, 10.0) × [30.0, 40.0) km1.01439
42UniqueNormalisedBeta1.0typessubcommunity[10.0, 20.0) × [30.0, 40.0) km1.00667
43UniqueNormalisedBeta1.0typessubcommunity[20.0, 30.0) × [30.0, 40.0) km1.01039
44UniqueNormalisedBeta1.0typessubcommunity[30.0, 40.0) × [30.0, 40.0) km1.00413
45UniqueNormalisedBeta1.0typessubcommunity[40.0, 50.0) × [30.0, 40.0) km1.004
46UniqueNormalisedBeta1.0typessubcommunity[0.0, 10.0) × [40.0, 50.0) km1.00788
47UniqueNormalisedBeta1.0typessubcommunity[10.0, 20.0) × [40.0, 50.0) km1.01586
48UniqueNormalisedBeta1.0typessubcommunity[20.0, 30.0) × [40.0, 50.0) km1.0033
49UniqueNormalisedBeta1.0typessubcommunity[30.0, 40.0) × [40.0, 50.0) km1.00841
50UniqueNormalisedBeta1.0typessubcommunity[40.0, 50.0) × [40.0, 50.0) km1.00911
51UniqueNormalisedBeta2.0typessubcommunity[0.0, 10.0) × [0.0, 10.0) km1.01576
52UniqueNormalisedBeta2.0typessubcommunity[10.0, 20.0) × [0.0, 10.0) km1.01184
53UniqueNormalisedBeta2.0typessubcommunity[20.0, 30.0) × [0.0, 10.0) km1.00966
54UniqueNormalisedBeta2.0typessubcommunity[30.0, 40.0) × [0.0, 10.0) km1.01782
55UniqueNormalisedBeta2.0typessubcommunity[40.0, 50.0) × [0.0, 10.0) km1.02445
56UniqueNormalisedBeta2.0typessubcommunity[0.0, 10.0) × [10.0, 20.0) km1.01001
57UniqueNormalisedBeta2.0typessubcommunity[10.0, 20.0) × [10.0, 20.0) km1.00398
58UniqueNormalisedBeta2.0typessubcommunity[20.0, 30.0) × [10.0, 20.0) km1.00736
59UniqueNormalisedBeta2.0typessubcommunity[30.0, 40.0) × [10.0, 20.0) km1.01354
60UniqueNormalisedBeta2.0typessubcommunity[40.0, 50.0) × [10.0, 20.0) km1.01756
61UniqueNormalisedBeta2.0typessubcommunity[0.0, 10.0) × [20.0, 30.0) km1.01429
62UniqueNormalisedBeta2.0typessubcommunity[10.0, 20.0) × [20.0, 30.0) km1.00687
63UniqueNormalisedBeta2.0typessubcommunity[20.0, 30.0) × [20.0, 30.0) km1.01504
64UniqueNormalisedBeta2.0typessubcommunity[30.0, 40.0) × [20.0, 30.0) km1.00793
65UniqueNormalisedBeta2.0typessubcommunity[40.0, 50.0) × [20.0, 30.0) km1.01161
66UniqueNormalisedBeta2.0typessubcommunity[0.0, 10.0) × [30.0, 40.0) km1.0292
67UniqueNormalisedBeta2.0typessubcommunity[10.0, 20.0) × [30.0, 40.0) km1.01322
68UniqueNormalisedBeta2.0typessubcommunity[20.0, 30.0) × [30.0, 40.0) km1.01998
69UniqueNormalisedBeta2.0typessubcommunity[30.0, 40.0) × [30.0, 40.0) km1.00819
70UniqueNormalisedBeta2.0typessubcommunity[40.0, 50.0) × [30.0, 40.0) km1.00807
71UniqueNormalisedBeta2.0typessubcommunity[0.0, 10.0) × [40.0, 50.0) km1.01536
72UniqueNormalisedBeta2.0typessubcommunity[10.0, 20.0) × [40.0, 50.0) km1.0307
73UniqueNormalisedBeta2.0typessubcommunity[20.0, 30.0) × [40.0, 50.0) km1.00656
74UniqueNormalisedBeta2.0typessubcommunity[30.0, 40.0) × [40.0, 50.0) km1.01646
75UniqueNormalisedBeta2.0typessubcommunity[40.0, 50.0) × [40.0, 50.0) km1.01879
76UniqueNormalisedBeta3.0typessubcommunity[0.0, 10.0) × [0.0, 10.0) km1.02348
77UniqueNormalisedBeta3.0typessubcommunity[10.0, 20.0) × [0.0, 10.0) km1.01796
78UniqueNormalisedBeta3.0typessubcommunity[20.0, 30.0) × [0.0, 10.0) km1.015
79UniqueNormalisedBeta3.0typessubcommunity[30.0, 40.0) × [0.0, 10.0) km1.02687
80UniqueNormalisedBeta3.0typessubcommunity[40.0, 50.0) × [0.0, 10.0) km1.03574
81UniqueNormalisedBeta3.0typessubcommunity[0.0, 10.0) × [10.0, 20.0) km1.01449
82UniqueNormalisedBeta3.0typessubcommunity[10.0, 20.0) × [10.0, 20.0) km1.00596
83UniqueNormalisedBeta3.0typessubcommunity[20.0, 30.0) × [10.0, 20.0) km1.01111
84UniqueNormalisedBeta3.0typessubcommunity[30.0, 40.0) × [10.0, 20.0) km1.02059
85UniqueNormalisedBeta3.0typessubcommunity[40.0, 50.0) × [10.0, 20.0) km1.02538
86UniqueNormalisedBeta3.0typessubcommunity[0.0, 10.0) × [20.0, 30.0) km1.0211
87UniqueNormalisedBeta3.0typessubcommunity[10.0, 20.0) × [20.0, 30.0) km1.01023
88UniqueNormalisedBeta3.0typessubcommunity[20.0, 30.0) × [20.0, 30.0) km1.02186
89UniqueNormalisedBeta3.0typessubcommunity[30.0, 40.0) × [20.0, 30.0) km1.01183
90UniqueNormalisedBeta3.0typessubcommunity[40.0, 50.0) × [20.0, 30.0) km1.01762
91UniqueNormalisedBeta3.0typessubcommunity[0.0, 10.0) × [30.0, 40.0) km1.04416
92UniqueNormalisedBeta3.0typessubcommunity[10.0, 20.0) × [30.0, 40.0) km1.01963
93UniqueNormalisedBeta3.0typessubcommunity[20.0, 30.0) × [30.0, 40.0) km1.02874
94UniqueNormalisedBeta3.0typessubcommunity[30.0, 40.0) × [30.0, 40.0) km1.01219
95UniqueNormalisedBeta3.0typessubcommunity[40.0, 50.0) × [30.0, 40.0) km1.01218
96UniqueNormalisedBeta3.0typessubcommunity[0.0, 10.0) × [40.0, 50.0) km1.02243
97UniqueNormalisedBeta3.0typessubcommunity[10.0, 20.0) × [40.0, 50.0) km1.04428
98UniqueNormalisedBeta3.0typessubcommunity[20.0, 30.0) × [40.0, 50.0) km1.00979
99UniqueNormalisedBeta3.0typessubcommunity[30.0, 40.0) × [40.0, 50.0) km1.02415
100UniqueNormalisedBeta3.0typessubcommunity[40.0, 50.0) × [40.0, 50.0) km1.02902