Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

docs: linked the wiki page explaining FLINT modules #173

Open
wants to merge 3 commits into
base: master
Choose a base branch
from
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
185 changes: 95 additions & 90 deletions docs/Understanding-FLINT/moja-flint/modules.rst
Original file line number Diff line number Diff line change
@@ -1,90 +1,95 @@
Modules
======================

What is a module?
-----------------

A module is a self-contained set of operations that determine the state
of, or change in, variables across a specified period for a single
Simulation Unit in direct response to event notifications from the FLINT
core system (Unit Controller). For example, the empirical forest growth
module includes all the operations required to simulate biomass
accumulation.

How do modules operate?
-----------------------

Each module reads (or is provided with – see Unit Controller)
information about the current state variables and the data required to
update the state variables, such as climate data or information about
disturbances to simulate. Each module then performs the required
calculations and returns information about the updates to apply to each
state variable and C pools. For state variables such as age or height,
modules can return the updated value, but for all carbon pools and other
fluxes, the module returns the proposed operations' array (sparse
matrix). This array will include information about the source pool, the
sink pool, and the amount (Mg ha-1 per time step) of the flux.
Module-specific metadata regarding units and time step size is also
required. This information is all returned to the Unit Controller.

In terms of the FLINT programming framework, there are internal and
external modules. The internal modules tend to be generic utility
modules, for example, for producing output tables. At the same time,
external modules are regionally or nationally specific. By using modules
and separating the generic and specific, FLINT's framework remains
highly flexible, and new modules can be 'plugged in' as they are
developed. Standard modules in FLINT

The FLINT includes six standard modules for simulating changes in forest
and crop systems, including changes in soil carbon. These modules each
run for all simulations at a monthly step interval (see Temporal
Distribution) and include:

- Empirical forest growth module
- Hybrid forest growth module
- WOFOST crop growth module
- Turnover module
- Decomposition module
- RothC soil carbon module

Modules for disturbance events
------------------------------

Disturbance events occur intermittently (rather than for every step in a
simulation) and affect carbon stocks. Disturbance events include natural
and anthropogenic events, including fire, harvesting, plowing, and
fertilizer application (Table 2). While disturbance events are modules
within FLINT, they are referred to separately as they are not run on
every simulation, as are the modules mentioned above. FLINT can use
tabular or spatial data to account for disturbance events as a minimum
FLINT needs the date of the disturbance and the disturbance type. Where
tabular data is used, information is also needed for the amount (or
proportion) affected, the units the disturbance event is reported in
(area, carbon, etc.), and any eligibility criteria (i.e., Simulation
Unit characteristics that the event is allowed to affect). We can use
this information to attribute the disturbance event to Simulation Units
using pre-determined criteria (e.g., randomly, weighted, or based on a
unit characteristic).

The following are disturbance events included in FLINT. Carbon pool
events directly affect one or more carbon pools, while non-carbon pool
events indirectly affect one or more non-carbon pools.

Carbon pool events
~~~~~~~~~~~~~~~~~~

- Fire
- Harvest
- Herbicide
- Plough
- Debris mulching
- Grazing
- Organic matter additions
- Planting

Non-Carbon Events
~~~~~~~~~~~~~~~~~

- Irrigation
- Fertilizer application
- Compaction
Modules
======================

What is a module?
-----------------

A module is a self-contained set of operations that determine the state
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

A question that may arise in a reader's mind is-- "What kind of operations?"

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

IMO linking the operations.rst here should serve the purpose

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please add the hyperlink

of, or change in, variables across a specified period for a single
Simulation Unit in direct response to event notifications from the FLINT
core system (Unit Controller). For example, the empirical forest growth
module includes all the operations required to simulate biomass
accumulation.

How do modules operate?
-----------------------

Each module reads (or is provided with – see Unit Controller)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

From a new reader's prespective-
'see Unit Controller' for what?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The concept of a unit controller is not very clear, can we have a page/section for this and link it everywhere it is mentioned?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggest removing unit controllers for now.

information about the current state variables and the data required to
update the state variables, such as climate data or information about
disturbances to simulate. Each module then performs the required
calculations and returns information about the updates to apply to each
state variable and C pools. For state variables such as age or height,
modules can return the updated value, but for all carbon pools and other
fluxes, the module returns the proposed operations' array (sparse
matrix). This array will include information about the source pool, the
sink pool, and the amount (Mg ha-1 per time step) of the flux.
Module-specific metadata regarding units and time step size is also
required. This information is all returned to the Unit Controller.

In terms of the FLINT programming framework, there are internal and
external modules. The internal modules tend to be generic utility
modules, for example, for producing output tables. At the same time,
external modules are regionally or nationally specific. By using modules
and separating the generic and specific, FLINT's framework remains
highly flexible, and new modules can be 'plugged in' as they are
developed. Standard modules in FLINT

The FLINT includes six standard modules for simulating changes in forest
and crop systems, including changes in soil carbon. These modules each
run for all simulations at a monthly step interval (see Temporal
Distribution) and include:

- Empirical forest growth module
- Hybrid forest growth module
- WOFOST crop growth module
- Turnover module
- Decomposition module
- RothC soil carbon module

Refer on our `modules documentation`_.

.. _modules documentation: https://github.com/moja-global/FLINT/wiki/3.4-Module-Science


Modules for disturbance events
------------------------------

Disturbance events occur intermittently (rather than for every step in a
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think it would be a good idea to add a line at the beginning about what are Disturbance events are before jumping it?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, the interpretation of a disturbance can be added first, then about the modules

simulation) and affect carbon stocks. Disturbance events include natural
and anthropogenic events, including fire, harvesting, plowing, and
fertilizer application (Table 2). While disturbance events are modules
within FLINT, they are referred to separately as they are not run on
every simulation, as are the modules mentioned above. FLINT can use
tabular or spatial data to account for disturbance events as a minimum
FLINT needs the date of the disturbance and the disturbance type. Where
tabular data is used, information is also needed for the amount (or
proportion) affected, the units the disturbance event is reported in
(area, carbon, etc.), and any eligibility criteria (i.e., Simulation
Unit characteristics that the event is allowed to affect). We can use
this information to attribute the disturbance event to Simulation Units
using pre-determined criteria (e.g., randomly, weighted, or based on a
unit characteristic).

The following are disturbance events included in FLINT. Carbon pool
events directly affect one or more carbon pools, while non-carbon pool
events indirectly affect one or more non-carbon pools.

Carbon pool events
~~~~~~~~~~~~~~~~~~

- Fire
- Harvest
- Herbicide
- Plough
- Debris mulching
- Grazing
- Organic matter additions
- Planting

Non-Carbon Events
~~~~~~~~~~~~~~~~~

- Irrigation
- Fertilizer application
- Compaction