diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..04c6e33 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,3 @@ +{ + "restructuredtext.confPath": "${workspaceFolder}/docs" +} diff --git a/docs/DeveloperWorkflow/flint_architecture.rst b/docs/DeveloperWorkflow/flint_architecture.rst index 5ff9097..23adf6d 100644 --- a/docs/DeveloperWorkflow/flint_architecture.rst +++ b/docs/DeveloperWorkflow/flint_architecture.rst @@ -2,3 +2,45 @@ FLINT Architecture ################## + +FLINT is a fully modular and highly flexible open-source software that +allows users to integrate the carbon model(for estimating greenhouse gas +emission) and other models with remote sensing data to produce +greenhouse gas accounts for the land sector. + +The overall framework is based on the simulation of events and +processes. Key elements of the framework includes the overall +integration module, a transaction service, and individual modules that +are easily exchanged and modified, and each serves key functions +such as the representation of growth, decomposition, disturbances, +forest management actions, and so on. + +.. figure:: ../images/architecture/Hl_FLINT_design.png + :alt: High Level Design of FLINT + :width: 600 + :align: center + + High Level Design of FLINT + +Core Components of FLINT System +------------------------------- + + +.. toctree:: + :maxdepth: 1 + + pool + operation + modules + simulation_units + local_domain + synchronized_events + temporal_distribution + reporting_indicator + +.. figure:: ../images/architecture/Core_Component.png + :alt: Core Components of FLINT System + :width: 600 + :align: center + + Core Components of FLINT System \ No newline at end of file diff --git a/docs/DeveloperWorkflow/local_domain.rst b/docs/DeveloperWorkflow/local_domain.rst new file mode 100644 index 0000000..211f3b6 --- /dev/null +++ b/docs/DeveloperWorkflow/local_domain.rst @@ -0,0 +1,21 @@ +.. _DeveloperWorkflow: + +Local Domain +================== +Above Simulation Units, is the Local Domain. The Local Domain is the +collection of Simulation Units that are bound for a specific purpose. +This can be, for example, to report on the changes in carbon stocks for +a particular region. + +Within FLINT, Local Domains have three main functions:- + +- Store the variable values for all the simulation + units which they represent. +- Assign these values to the + simulation units during a simulation through a LocalDomain Controller. +- Recieves the ourput simulation units and update the domain characteristics. + +.. figure:: ../images/architecture/LocalDomain.png + :alt: Local DOmain:- FLINT Core_Component + :width: 600 + :align: center \ No newline at end of file diff --git a/docs/DeveloperWorkflow/modules.rst b/docs/DeveloperWorkflow/modules.rst new file mode 100644 index 0000000..3d05e32 --- /dev/null +++ b/docs/DeveloperWorkflow/modules.rst @@ -0,0 +1,19 @@ +.. _DeveloperWorkflow: + +Modules +========= + +A module is a self-contained set of operations that determine the state +of, or change in, variables across a specified period of time for a +single Simulation Unit in direct response to event notifications from +the FLINT core system (Unit Controller). + +Each module reads information about the current state variables and the +data required to update them, such as climate data or information about +disturbances to simulate. Each module computes the required calculations +and returns up-to-date information about state variables and C pools. + +.. figure:: ../images/architecture/ModuleOperation.png + :alt: Module:- FLINT Core_Component + :width: 600 + :align: center \ No newline at end of file diff --git a/docs/DeveloperWorkflow/operation.rst b/docs/DeveloperWorkflow/operation.rst new file mode 100644 index 0000000..24658ef --- /dev/null +++ b/docs/DeveloperWorkflow/operation.rst @@ -0,0 +1,15 @@ +.. _DeveloperWorkflow: + +Operation +============= + +An operation is a process within the FLINT that moves carbon stock +between pools. FLINT uses operations to update the values for Simulation +Units and to record flux values in a flux table. For example, an +operation, reflecting plant growth can be applied to aboveground biomass +pools to estimate the growth flux. + +.. figure:: ../images/architecture/operation_pic.png + :alt: Operation:- FLINT Core_Component + :width: 600 + :align: center \ No newline at end of file diff --git a/docs/DeveloperWorkflow/pool.rst b/docs/DeveloperWorkflow/pool.rst new file mode 100644 index 0000000..8aca2e4 --- /dev/null +++ b/docs/DeveloperWorkflow/pool.rst @@ -0,0 +1,17 @@ +.. _DeveloperWorkflow: + +Pools +========= + +A pool is a reservoir within which something can be stored and released. +For example, a carbon pool is a reservoir from which carbon can be +stored or emitted, such as debris. FLINT assigns a value to each pool, +such as tonnes carbon, and at every time step, it can move stores from +one pool to another using operations. + +.. figure:: ../images/architecture/carbon_pool.png + :alt: Terrestial Carbon Pool + :width: 600 + :align: center + + Terrestial Carbon Pool \ No newline at end of file diff --git a/docs/DeveloperWorkflow/reporting_indicator.rst b/docs/DeveloperWorkflow/reporting_indicator.rst new file mode 100644 index 0000000..f8529e2 --- /dev/null +++ b/docs/DeveloperWorkflow/reporting_indicator.rst @@ -0,0 +1,4 @@ +.. _DeveloperWorkflow: + +Reporting Indicator +========================= diff --git a/docs/DeveloperWorkflow/simulation_units.rst b/docs/DeveloperWorkflow/simulation_units.rst new file mode 100644 index 0000000..5101bde --- /dev/null +++ b/docs/DeveloperWorkflow/simulation_units.rst @@ -0,0 +1,24 @@ +.. _DeveloperWorkflow: + +Simulation Units +====================== +A Simulation Unit is a unit where a module is applied. A Simulation Unit +can represent a spatial area, such as a pixel or ``forest stand``\ \_, +or it can represent an emissions source, such as livestock. Referring to +a geographically referenced region, the Simulation Unit is known as as a +Land Unit. + +.. _forest stand: https://g.co/kgs/1K49wo + +Within the databases and data layers, that are building blocks of the FLINT, there +are attribute values that describe the characteristics of each +Simulation Unit. For example, for a Land Unit, there may be information +on the unit’s area, land type, age of vegetation, species, and carbon +pools. The overall framework of FLINT manages the processing of +Simulation Units over time. While Simulation Units are the basis of all +simulations run in FLINT, they are rarely used for reporting purposes. + +.. figure:: ../images/architecture/simulation.png + :alt: Simulation Unit:- FLINT Core_Component + :width: 600 + :align: center \ No newline at end of file diff --git a/docs/DeveloperWorkflow/synchronized_events.rst b/docs/DeveloperWorkflow/synchronized_events.rst new file mode 100644 index 0000000..1d1c20e --- /dev/null +++ b/docs/DeveloperWorkflow/synchronized_events.rst @@ -0,0 +1,22 @@ +.. _DeveloperWorkflow: + +Synchronized Events +====================== + +Modules are dependent on other Simulation Units. There is an +interdependence across the Simulation Units. So, a process is necessary +that synchronizes across the related Simulation Units. + +.. figure:: ../images/architecture/Synchronised_events.png + :alt: Synchronised_events:- FLINT Core_Component + :width: 600 + :align: center + +FLINT included a synchronized server. This server uses a set of +user-inputted criteria to identify particular Simulation Units for which +a module will, or could, be applied. A module can be applied to all +Simulation Units that meet the criteria, or the module can be attributed +to a sub-set of the identified Simulation Units using pre-determined +criteria (e.g. randomly, weighted, or based on a unit characteristic). +Once identified, the module is run and the outputs computed. Notably, +this is carried out during the simulation. \ No newline at end of file diff --git a/docs/DeveloperWorkflow/temporal_distribution.rst b/docs/DeveloperWorkflow/temporal_distribution.rst new file mode 100644 index 0000000..a8eefd5 --- /dev/null +++ b/docs/DeveloperWorkflow/temporal_distribution.rst @@ -0,0 +1,20 @@ +.. _DeveloperWorkflow: + +Temporal Distribution +=========================== +Carbon stock change reports require tracking interactions between carbon +pools over time, which inherently includes a temporal component. The +carbon pools must share a comparable temporal scale to study such +interactions. interactions. In general, tracking changes across multiple +pools, over time, is relatively straightforward, but also complicated by +the need to design modules with appropriate timeframes to match those of +the pools that are being modeled. The temporal scale in FLINT is +referred to as time-steps. + +Time-steps are lengths of time measured for reporting operations. It is +only at the end of a time-step that carbon can be moved from one pool to +another. Time-steps are used to reduce the processing requirements of +the model. If the step is finer (i.e. shorter), simulation requires more +processing. Because of time-steps, rather than continuous changes, there +is a ‘graininess’ in the output data of FLINT. + diff --git a/docs/images/architecture/Core_Component.png b/docs/images/architecture/Core_Component.png new file mode 100644 index 0000000..512cc7d Binary files /dev/null and b/docs/images/architecture/Core_Component.png differ diff --git a/docs/images/architecture/Hl_FLINT_design.png b/docs/images/architecture/Hl_FLINT_design.png new file mode 100644 index 0000000..a885327 Binary files /dev/null and b/docs/images/architecture/Hl_FLINT_design.png differ diff --git a/docs/images/architecture/LocalDomain.png b/docs/images/architecture/LocalDomain.png new file mode 100644 index 0000000..286690a Binary files /dev/null and b/docs/images/architecture/LocalDomain.png differ diff --git a/docs/images/architecture/ModuleOperation.png b/docs/images/architecture/ModuleOperation.png new file mode 100644 index 0000000..77d084b Binary files /dev/null and b/docs/images/architecture/ModuleOperation.png differ diff --git a/docs/images/architecture/Synchronised_events.png b/docs/images/architecture/Synchronised_events.png new file mode 100644 index 0000000..3d07790 Binary files /dev/null and b/docs/images/architecture/Synchronised_events.png differ diff --git a/docs/images/architecture/carbon_pool.png b/docs/images/architecture/carbon_pool.png new file mode 100644 index 0000000..46a4c04 Binary files /dev/null and b/docs/images/architecture/carbon_pool.png differ diff --git a/docs/images/architecture/operation_pic.png b/docs/images/architecture/operation_pic.png new file mode 100644 index 0000000..5696c38 Binary files /dev/null and b/docs/images/architecture/operation_pic.png differ diff --git a/docs/images/architecture/simulation.png b/docs/images/architecture/simulation.png new file mode 100644 index 0000000..c9db231 Binary files /dev/null and b/docs/images/architecture/simulation.png differ