This new feature is to take the canopy model description added in the WIP pull request #227 and implement the creation of a Canopy instance:
Approximate specification:
The Canopy class should take a Community object (as in the current sketch) as an __init__ argument.
It should populate attributes that record:
the vertical heights of the canopy layers ($z^*_l$), which will be a one dimensional array of heights in metres.
the vertical light extinction profile through the canopy layers, as a one dimensional array of proportion of down-welling Tlight absorbed layer $l$
the leaf area within each layer for each cohort: this is a 2 dimensional array (n cohorts x n layers) of areas in metres squared.
It isn't clear to me that this needs anything public except the __init__ method? It makes sense to break up the calculations into logical subfunctions for testing and readability, but basically it is one big calculation. We could have an explicit calculate_canopy step?
This new feature is to take the canopy model description added in the WIP pull request #227 and implement the creation of a Canopy instance:
Approximate specification:
The
Canopy
class should take aCommunity
object (as in the current sketch) as an__init__
argument.It should populate attributes that record:
It isn't clear to me that this needs anything public except the
__init__
method? It makes sense to break up the calculations into logical subfunctions for testing and readability, but basically it is one big calculation. We could have an explicitcalculate_canopy
step?