Skip to content
mmyrte edited this page Sep 1, 2025 · 4 revisions

What goes where?

The evoland-plus R package documentation follows the Diátaxis framework; the wiki is only for explanations.

---
config:
  theme: neutral
  quadrantChart:
    chartWidth: 600
    chartHeight: 200
    pointRadius: 0
    quadrantTextTopPadding: 30
---
quadrantChart
    quadrant-1 "How-To Guides"
    Achieve a known goal: [0.75, 0.73]
    quadrant-2 Tutorials
    Learn about achievable analyses: [0.25, 0.73]
    quadrant-3 Explanation
    Inform about implementation details: [0.75, 0.23]
    quadrant-4 Reference
    Explain implementation rationale: [0.25, 0.23]
Loading

Tutorials

Tutorials use a step by step list of instructions to showcase standard usage patterns, e.g. in the case of evoland-plus running an end-to-end analysis projecting future land use. Such tutorials should be recorded in R package vignettes. Eventually, we will use pkgdown to make these vignettes available online.

How-To

Once you know what you want to achieve, but still need a recipe for how to get there, a specific set of steps may be recorded in a vignette or as an example usage in the package documentation. Again, this will eventually be made available online.

Reference

If you need to use a specific feature/function and want to know about detailed usage instructions, refer to the R package documentation.

Explanation

Explanations should be given for how and why the software is designed as it is, which is what this wiki is for. Theoretical considerations regarding the problem domain are brought together with overarching design ideas, such as "Why do we represent climate data in a tabular format?" or "Why is model coupling approached through a database instead of an FFI or a messaging queue?"

Keeping most of the concrete documentation as part of the codebase makes it more likely that it is kept up to date.

Overview model workflow

The fundamental function of evoland-plus is to use a statistically calibrated, constrained model predicting locations for future land use / land cover change (LULCC), see the graph below. Additional functions such as one or two-way coupling to other models is considered additional functionality.

---
config:
  theme: neutral
---

flowchart TD
    ts@{shape : brace, label: " Timesteps: \n t = now \n t-1 = one step in the past \n t+1 = one step in the future"}
    style ts stroke:#ccc, stroke-width:2px

    subgraph preparation["1\. Data Preparation"]
        direction LR
        config@{shape : doc, label: "Parameters"}
        predictors@{shape : docs, label: "Predictors"}
        lulc_data@{shape : doc, label: "LULC data \n @ {t, t-1, t-2, ...}"}
        config --- predictors
        predictors --- lulc_data
        linkStyle 0,1 stroke-opacity:0
    end
    preparation --> calibration

    subgraph calibration["2\. Calibration Phase"]
        direction LR
        varsel["Select Features"]
        varsel --> markovmods
        markovmods["Train Markovian Models"]
        markovmods --> parametrize_alloc
        parametrize_alloc["Parameterize Allocation Strategy"]
    end

    calibration --> estimation

    subgraph estimation["3\. Prediction + Allocation"]
        direction LR
        evalmodel["`Evaluate Models @ t`"]
        Predictions["Transition Potential Maps @ t+1"]
        evalmodel --> Predictions
        Changes["Allocate projected LULCC <br> (patch / expand)"]
        Predictions --> Changes
    end

    estimation --> projection
    projection@{shape : terminal, label: "LULC projection\n @ t+1"}
    projection -->|Next iteration with t+1 as t| estimation

    classDef phase fill:#f9f9f990,stroke:#333,stroke-dasharray:2 4,color:#000000
    classDef data fill:#ddf1d5,stroke:#82b366,color:#000000
    classDef user_input fill:#fff2cc,stroke:#d6b655,color:#000000

    class calibration,preparation,estimation,allocation phase
    class predictors,lulc_data,projection data
    class config user_input
Loading

Clone this wiki locally