The basics of EcoSISTEM.jl
Install
using Pkg
Pkg.add("EcoSISTEM")Setting up an ecosystem
The package runs on an Ecosystem containing information about species, the SpeciesList, their environment, AbioticEnvironment and the relationship between the two, TraitRelationship.
A simple example
Load required packages
using EcoSISTEM
using EcoSISTEM.Units
using Unitful, Unitful.DefaultSymbols
using Distributions
using DiversitySet up initial parameters for ecosystem
numSpecies = 10; grid = (5, 5); req= 10.0kJ; individuals=1000; area = 1000.0*km^2; totalK = 1.0kJ/km^2Set up how much energy each species consumes
energy_vec = SolarRequirement(fill(req, numSpecies))Set rates for birth and death
birth = 0.6/year
death = 0.6/year
longevity = 1.0
survival = 0.2
boost = 1.0
# Collect model parameters together
param = EqualPop(birth, death, longevity, survival, boost)Create kernel for movement
kernel = fill(GaussianKernel(10.0km, 10e-10), numSpecies)
movement = BirthOnlyMovement(kernel, Torus())Create species list, including their temperature preferences, seed abundance and native status
opts = fill(274.0K, numSpecies)
vars = fill(0.5K, numSpecies)
traits = GaussTrait(opts, vars)
native = fill(true, numSpecies)
# abun = rand(Multinomial(individuals, numSpecies))
abun = fill(div(individuals, numSpecies), numSpecies)
sppl = SpeciesList(numSpecies, traits, abun, energy_vec,
    movement, param, native)Create abiotic environment - even grid of one temperature
abenv = simplehabitatAE(274.0K, grid, totalK, area)Set relationship between species and environment (gaussian)
rel = Gauss{typeof(1.0K)}()Create ecosystem
eco = Ecosystem(sppl, abenv, rel)Run simulation
# EcoSISTEM Parameters
burnin = 5years; times = 50years; timestep = 1month; record_interval = 3months; repeats = 1
lensim = length(0years:record_interval:times)
# Burnin
@time simulate!(eco, burnin, timestep)Plot using SpatialEcology
using SpatialEcology
plot(eco)