SaplingList Class
ABE\saplinglist_doc.js:2
The SaplingList class represents a list of saplings (=cohort of trees <4m height) that can be manipulated (e.g., removed) with functions of the class.
Overview
initializing the list
The object is available automatically when using the Bite-submodule.
SaplingList
can also be used as a standalone object, but in this case populating the sapling list needs to be
done by the user with functions such loadFromStand()
.
Example
var saps = new SaplingList; // create a SaplingList object
saps.loadFromStand(123); // load saplings of stand 123
saps.kill(); // and be nasty
manipulating the content of the list
The list of sapling cohorts may be manipulated using functions such as filter()
. There are functions helping to get aggregate values
(sum()
).
manipulationg saplings
The class provides function to kill cohorts (kill()
) or to modify cohorts (e.g. browse()
).
Variables
A list of available variables for saplings: https://iland-model.org/sapling+variables
general notes
The sapling list heavily used the expression engine of iLand https://iland-model.org/Expression. Expressions are provided as strings to the
respective Javascript functions (e.g.,filter
) and evaluated by iLand. Note that tree species names are treated as a special case (https://iland-model.org/Expression#Constants).
Example
var saplings = biteAgent.cell(0,0).saplings; // currently, only available via Bite
// load of saplings in Bite: bitecell.reloadSaplings();
saplings.filter('height > 2'); // keep only larger cohorts
trees.sum('foliagemass*nrep'); // calculate total leaf mass of all trees in a cohort
saplings.browse(); // affect saplings (browsing: reduced height growth)
Methods
browse
-
do_browse
Affect all saplings in the list by browsing; this reduces the height growth in the current year to 0.
Parameters:
-
do_browse
Booleanif
true
, the cohorts are marked as browsed (false
unmarks cohorts)
Returns:
the number of trees that have been removed.
Example:
saplings.browse(); // browse saplings
clear
()
Clear the list without affecting the saplings in the list. Note that explcitly clearing the list is usually not necessary (e.g. when using loadFromStand() )
Example:
saplings.clear(); // empty lsit
console.log(saplings.count); // -> 0
filter
-
filter
Apply a filter on the list. Only saplings for which the filter condition filter
evaluates to true, remain in the list.
Parameters:
-
filter
StringA valid filter Expression.
Returns:
the number of trees that remain in the list.
Example:
saplings.filter('species=fasy'); // remove all trees that are not Beech
trees.filter('incsum(foliagemass*nrep)<1'); // max foliage mass after filtering 1kg
kill
-
filter
Kill (i.e., cut down and do not remove from the forest) the saplings in the list, filtered with filter
. If filter
is omitted, all saplings are killed.
Parameters:
-
filter
StringA valid filter Expression.
Returns:
the number of trees that have been removed.
Example:
saplings.kill('age<5'); // kill young saplings
loadFromStand
-
standId
-
filter
-
do_append
Load all (or a subset) of sapling that are located on the stand denoted by standId
. The filter
let you control
which saplings should be loaded. Control with do_append
whether the list should be cleared before loading saplings.
Parameters:
-
standId
IntegerA numeric standId that refers to the stand-grid of iLand.
-
filter
StringA valid filter Expression (see above), can be omitted
-
do_append
Boolif true, saplings are added to the list without clearing the list first. Default is false (list is cleared). Can be omitted.
Returns:
the number of trees that have been loaded.
Example:
saplings.loadFromStand(123, 'species=fasy'); // load all beech saplings of stand 123
saplings.loadFromStand(124, 'true', true); // append (all) saplings from stand 124
sum
-
expr
-
filter
Calculates the sum of a given expr
that can contain any of the available sapling variables. The optional filter
is another expression
that filters the trees that are processed. Returns the sum of expr
.
Note: counting saplings that fulfill the filter
expression can be expressed as: sum('1', '<filter-expr>')
.
Parameters:
-
expr
Stringa valid expression that should be processed
-
filter
Stringonly saplings that pass the filter are processed
Returns:
the sum over the value of expr
of the population
Example:
console.log('number of repr. trees: ' + saplings.sum('nrep') ); // just a count, same as saplings.length
console.log('cohorts > 1m: ' + trees.sum('1', 'height>1') ); // note that '1' is a string (and parsed by the expression engine)
Properties
count
Integer
the number of cohorts that are currently loaded in the list.