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.87611
2UniqueNormalisedAlpha1.0typessubcommunity[10.0, 20.0) × [0.0, 10.0) km9.89641
3UniqueNormalisedAlpha1.0typessubcommunity[20.0, 30.0) × [0.0, 10.0) km9.95034
4UniqueNormalisedAlpha1.0typessubcommunity[30.0, 40.0) × [0.0, 10.0) km9.89602
5UniqueNormalisedAlpha1.0typessubcommunity[40.0, 50.0) × [0.0, 10.0) km9.90947
6UniqueNormalisedAlpha1.0typessubcommunity[0.0, 10.0) × [10.0, 20.0) km9.87443
7UniqueNormalisedAlpha1.0typessubcommunity[10.0, 20.0) × [10.0, 20.0) km9.91314
8UniqueNormalisedAlpha1.0typessubcommunity[20.0, 30.0) × [10.0, 20.0) km9.96038
9UniqueNormalisedAlpha1.0typessubcommunity[30.0, 40.0) × [10.0, 20.0) km9.93027
10UniqueNormalisedAlpha1.0typessubcommunity[40.0, 50.0) × [10.0, 20.0) km9.91519
11UniqueNormalisedAlpha1.0typessubcommunity[0.0, 10.0) × [20.0, 30.0) km9.94813
12UniqueNormalisedAlpha1.0typessubcommunity[10.0, 20.0) × [20.0, 30.0) km9.94756
13UniqueNormalisedAlpha1.0typessubcommunity[20.0, 30.0) × [20.0, 30.0) km9.86484
14UniqueNormalisedAlpha1.0typessubcommunity[30.0, 40.0) × [20.0, 30.0) km9.95111
15UniqueNormalisedAlpha1.0typessubcommunity[40.0, 50.0) × [20.0, 30.0) km9.95114
16UniqueNormalisedAlpha1.0typessubcommunity[0.0, 10.0) × [30.0, 40.0) km9.89392
17UniqueNormalisedAlpha1.0typessubcommunity[10.0, 20.0) × [30.0, 40.0) km9.96328
18UniqueNormalisedAlpha1.0typessubcommunity[20.0, 30.0) × [30.0, 40.0) km9.94799
19UniqueNormalisedAlpha1.0typessubcommunity[30.0, 40.0) × [30.0, 40.0) km9.95281
20UniqueNormalisedAlpha1.0typessubcommunity[40.0, 50.0) × [30.0, 40.0) km9.9535
21UniqueNormalisedAlpha1.0typessubcommunity[0.0, 10.0) × [40.0, 50.0) km9.94844
22UniqueNormalisedAlpha1.0typessubcommunity[10.0, 20.0) × [40.0, 50.0) km9.80038
23UniqueNormalisedAlpha1.0typessubcommunity[20.0, 30.0) × [40.0, 50.0) km9.96902
24UniqueNormalisedAlpha1.0typessubcommunity[30.0, 40.0) × [40.0, 50.0) km9.88443
25UniqueNormalisedAlpha1.0typessubcommunity[40.0, 50.0) × [40.0, 50.0) km9.91023
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.92081

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.01017
27UniqueNormalisedBeta1.0typessubcommunity[10.0, 20.0) × [0.0, 10.0) km1.01008
28UniqueNormalisedBeta1.0typessubcommunity[20.0, 30.0) × [0.0, 10.0) km1.00674
29UniqueNormalisedBeta1.0typessubcommunity[30.0, 40.0) × [0.0, 10.0) km1.00856
30UniqueNormalisedBeta1.0typessubcommunity[40.0, 50.0) × [0.0, 10.0) km1.00899
31UniqueNormalisedBeta1.0typessubcommunity[0.0, 10.0) × [10.0, 20.0) km1.01166
32UniqueNormalisedBeta1.0typessubcommunity[10.0, 20.0) × [10.0, 20.0) km1.00693
33UniqueNormalisedBeta1.0typessubcommunity[20.0, 30.0) × [10.0, 20.0) km1.00427
34UniqueNormalisedBeta1.0typessubcommunity[30.0, 40.0) × [10.0, 20.0) km1.00644
35UniqueNormalisedBeta1.0typessubcommunity[40.0, 50.0) × [10.0, 20.0) km1.00945
36UniqueNormalisedBeta1.0typessubcommunity[0.0, 10.0) × [20.0, 30.0) km1.00535
37UniqueNormalisedBeta1.0typessubcommunity[10.0, 20.0) × [20.0, 30.0) km1.00506
38UniqueNormalisedBeta1.0typessubcommunity[20.0, 30.0) × [20.0, 30.0) km1.01228
39UniqueNormalisedBeta1.0typessubcommunity[30.0, 40.0) × [20.0, 30.0) km1.00361
40UniqueNormalisedBeta1.0typessubcommunity[40.0, 50.0) × [20.0, 30.0) km1.0045
41UniqueNormalisedBeta1.0typessubcommunity[0.0, 10.0) × [30.0, 40.0) km1.00906
42UniqueNormalisedBeta1.0typessubcommunity[10.0, 20.0) × [30.0, 40.0) km1.00289
43UniqueNormalisedBeta1.0typessubcommunity[20.0, 30.0) × [30.0, 40.0) km1.00701
44UniqueNormalisedBeta1.0typessubcommunity[30.0, 40.0) × [30.0, 40.0) km1.00525
45UniqueNormalisedBeta1.0typessubcommunity[40.0, 50.0) × [30.0, 40.0) km1.00519
46UniqueNormalisedBeta1.0typessubcommunity[0.0, 10.0) × [40.0, 50.0) km1.00602
47UniqueNormalisedBeta1.0typessubcommunity[10.0, 20.0) × [40.0, 50.0) km1.02074
48UniqueNormalisedBeta1.0typessubcommunity[20.0, 30.0) × [40.0, 50.0) km1.00268
49UniqueNormalisedBeta1.0typessubcommunity[30.0, 40.0) × [40.0, 50.0) km1.01207
50UniqueNormalisedBeta1.0typessubcommunity[40.0, 50.0) × [40.0, 50.0) km1.00807
51UniqueNormalisedBeta2.0typessubcommunity[0.0, 10.0) × [0.0, 10.0) km1.02051
52UniqueNormalisedBeta2.0typessubcommunity[10.0, 20.0) × [0.0, 10.0) km1.02003
53UniqueNormalisedBeta2.0typessubcommunity[20.0, 30.0) × [0.0, 10.0) km1.01353
54UniqueNormalisedBeta2.0typessubcommunity[30.0, 40.0) × [0.0, 10.0) km1.0171
55UniqueNormalisedBeta2.0typessubcommunity[40.0, 50.0) × [0.0, 10.0) km1.01817
56UniqueNormalisedBeta2.0typessubcommunity[0.0, 10.0) × [10.0, 20.0) km1.02307
57UniqueNormalisedBeta2.0typessubcommunity[10.0, 20.0) × [10.0, 20.0) km1.01462
58UniqueNormalisedBeta2.0typessubcommunity[20.0, 30.0) × [10.0, 20.0) km1.00862
59UniqueNormalisedBeta2.0typessubcommunity[30.0, 40.0) × [10.0, 20.0) km1.01288
60UniqueNormalisedBeta2.0typessubcommunity[40.0, 50.0) × [10.0, 20.0) km1.01805
61UniqueNormalisedBeta2.0typessubcommunity[0.0, 10.0) × [20.0, 30.0) km1.01049
62UniqueNormalisedBeta2.0typessubcommunity[10.0, 20.0) × [20.0, 30.0) km1.01003
63UniqueNormalisedBeta2.0typessubcommunity[20.0, 30.0) × [20.0, 30.0) km1.02386
64UniqueNormalisedBeta2.0typessubcommunity[30.0, 40.0) × [20.0, 30.0) km1.00717
65UniqueNormalisedBeta2.0typessubcommunity[40.0, 50.0) × [20.0, 30.0) km1.00902
66UniqueNormalisedBeta2.0typessubcommunity[0.0, 10.0) × [30.0, 40.0) km1.01804
67UniqueNormalisedBeta2.0typessubcommunity[10.0, 20.0) × [30.0, 40.0) km1.00577
68UniqueNormalisedBeta2.0typessubcommunity[20.0, 30.0) × [30.0, 40.0) km1.0136
69UniqueNormalisedBeta2.0typessubcommunity[30.0, 40.0) × [30.0, 40.0) km1.01041
70UniqueNormalisedBeta2.0typessubcommunity[40.0, 50.0) × [30.0, 40.0) km1.01023
71UniqueNormalisedBeta2.0typessubcommunity[0.0, 10.0) × [40.0, 50.0) km1.01147
72UniqueNormalisedBeta2.0typessubcommunity[10.0, 20.0) × [40.0, 50.0) km1.04139
73UniqueNormalisedBeta2.0typessubcommunity[20.0, 30.0) × [40.0, 50.0) km1.0053
74UniqueNormalisedBeta2.0typessubcommunity[30.0, 40.0) × [40.0, 50.0) km1.0239
75UniqueNormalisedBeta2.0typessubcommunity[40.0, 50.0) × [40.0, 50.0) km1.01663
76UniqueNormalisedBeta3.0typessubcommunity[0.0, 10.0) × [0.0, 10.0) km1.03091
77UniqueNormalisedBeta3.0typessubcommunity[10.0, 20.0) × [0.0, 10.0) km1.02976
78UniqueNormalisedBeta3.0typessubcommunity[20.0, 30.0) × [0.0, 10.0) km1.02036
79UniqueNormalisedBeta3.0typessubcommunity[30.0, 40.0) × [0.0, 10.0) km1.0256
80UniqueNormalisedBeta3.0typessubcommunity[40.0, 50.0) × [0.0, 10.0) km1.02741
81UniqueNormalisedBeta3.0typessubcommunity[0.0, 10.0) × [10.0, 20.0) km1.03415
82UniqueNormalisedBeta3.0typessubcommunity[10.0, 20.0) × [10.0, 20.0) km1.02309
83UniqueNormalisedBeta3.0typessubcommunity[20.0, 30.0) × [10.0, 20.0) km1.01303
84UniqueNormalisedBeta3.0typessubcommunity[30.0, 40.0) × [10.0, 20.0) km1.01926
85UniqueNormalisedBeta3.0typessubcommunity[40.0, 50.0) × [10.0, 20.0) km1.02582
86UniqueNormalisedBeta3.0typessubcommunity[0.0, 10.0) × [20.0, 30.0) km1.01538
87UniqueNormalisedBeta3.0typessubcommunity[10.0, 20.0) × [20.0, 30.0) km1.0149
88UniqueNormalisedBeta3.0typessubcommunity[20.0, 30.0) × [20.0, 30.0) km1.03467
89UniqueNormalisedBeta3.0typessubcommunity[30.0, 40.0) × [20.0, 30.0) km1.01065
90UniqueNormalisedBeta3.0typessubcommunity[40.0, 50.0) × [20.0, 30.0) km1.01354
91UniqueNormalisedBeta3.0typessubcommunity[0.0, 10.0) × [30.0, 40.0) km1.02683
92UniqueNormalisedBeta3.0typessubcommunity[10.0, 20.0) × [30.0, 40.0) km1.00863
93UniqueNormalisedBeta3.0typessubcommunity[20.0, 30.0) × [30.0, 40.0) km1.01975
94UniqueNormalisedBeta3.0typessubcommunity[30.0, 40.0) × [30.0, 40.0) km1.01548
95UniqueNormalisedBeta3.0typessubcommunity[40.0, 50.0) × [30.0, 40.0) km1.01509
96UniqueNormalisedBeta3.0typessubcommunity[0.0, 10.0) × [40.0, 50.0) km1.01642
97UniqueNormalisedBeta3.0typessubcommunity[10.0, 20.0) × [40.0, 50.0) km1.06153
98UniqueNormalisedBeta3.0typessubcommunity[20.0, 30.0) × [40.0, 50.0) km1.00787
99UniqueNormalisedBeta3.0typessubcommunity[30.0, 40.0) × [40.0, 50.0) km1.03534
100UniqueNormalisedBeta3.0typessubcommunity[40.0, 50.0) × [40.0, 50.0) km1.02566