← RTM-Suite tutorials

Tutorials overview

From a first simulation to a full course manual: sensor convolution, sensitivity analysis, and trait inversion, in R and Python. Every tutorial linked below is verified by actually running it end-to-end — not just written. This page groups all 31 tutorials by what they're about, with a real generated figure from each area, as a five-minute visual map before you dive into any one of them.

ToolsRTM models SCOPE, in R and Python ML inversion Deep learning Sensitivity analysis Satellite & spatial applications

ToolsRTMLeaf, canopy, soil, atmosphere models

Five leaf models (PROSPECT-D, PROSPECT-PRO, Fluspect-B, Fluspect-B-Cx, Liberty) × three canopy models (fourSAIL, foursail2, INFORM) × two soil models (BSM, MARMIT) × SPART for the full soil–canopy–atmosphere chain to top-of-atmosphere. All 15 leaf×canopy combinations agree with their Python port to R²=1.0 (see R vs Python).

Reflectance spectra for all 15 leaf x canopy model combinations
All 15 leaf × canopy combinations, one example spectrum each (Tutorial 04)
SPART soil-plant-atmosphere top-of-atmosphere reflectance
SPART: top-of-canopy vs. top-of-atmosphere reflectance (Tutorial 03)
MARMIT soil moisture reflectance sweep
MARMIT: soil reflectance across a moisture gradient (Tutorial 16)
#Tutorial
01Getting Started with ToolsRTM
02From Leaf to Canopy Reflectance
03SPART: Soil-Plant-Atmosphere Radiative Transfer
04Comparing Radiative Transfer Models
05Building Look-Up Tables
06Large-Scale and Parallel RTM Simulation
07Sensor Convolution
08Hyperspectral and VNIR Sensor Convolution
09Vegetation Indices and Spectral Features
16MARMIT + fourSAIL + SPART: Realistic Soil Moisture
17Monitoring a Forest Site Through Time
19FLEX Cal/Val: ESU Heterogeneity MappingPython examples →

SCOPEinR / scopeinpythonSCOPE, in R and Python

The full coupled model: radiative transfer + energy balance + photosynthesis + chlorophyll fluorescence, in one simulation. Ported line-for-line to Python (scopeinpython) and cross-checked against the R original.

SCOPE TOC reflectance components and fluorescence spectrum
TOC reflectance components and the fluorescence spectrum (How-in-R/Python — SCOPEinR)
SCOPE fluorescence emission spectrum
SIF emission spectrum, PSI/PSII contributions (Tutorial 04)
R vs Python SCOPE 2.1 agreement across 600 simulations
Full SCOPE 2.1: R vs. Python agreement, 600 simulations (R vs Python)
#Tutorial
00SCOPE's Options Table
01Getting Started with SCOPEinRHow-in-R/Python →
02Soil, Canopy BRDF, and the SCOPE Input Structure
03Energy Balance Basics
04Fluorescence (SIF)
05Building SCOPE LUTs
06Large-Scale and Parallel SCOPE Runs
10End-to-End SCOPE Pipeline

Hybrid inversionMachine-learning inversion: spectra → traits

Going backwards: from a simulated or real reflectance spectrum to the vegetation trait that produced it. LUT-trained Random Forest, SVM, PLSR and ensemble models, applied to both synthetic and real Sentinel-2 data.

Cab retrieved from Sentinel-2A bands via Random Forest
Cab retrieved from Sentinel-2A bands, Random Forest (How-in-R/Python)
LAI retrieved from Sentinel-2A bands via SCOPE apparent reflectance
LAI retrieved from SCOPE apparent reflectance (How-in-R/Python — SCOPEinR)
Net photosynthesis map from real Sentinel-2 imagery
Net photosynthesis mapped from real Sentinel-2, Speulderbos (Tutorial 11)
#Tutorial
ToolsRTM 11From Physics to Vegetation Traits: Hybrid Inversion
ToolsRTM 12Comparing ML Algorithms for RTM Inversion
ToolsRTM 14End-to-End RTM Inversion Pipeline
ToolsRTM 15From Satellite Reflectance to Traits: Real EO Application
ToolsRTM 18Data-Driven Spatial Index MappingPython capstone →
SCOPEinR 08Hybrid Inversion from SCOPE Reflectance
SCOPEinR 09Does SIF Add Information About Photosynthesis?
SCOPEinR 11Capstone: ML Inversion of Net Photosynthesis, Real Sentinel-2Python capstone →

ToolsRTM Tutorial 13, R + PythonDeep learning for RTM inversion

Dense networks and a 1D-CNN reading a PRISMA-resolution spectrum directly (TensorFlow/Keras, R and Python both), compared head-to-head against Random Forest from Tutorial 12 -- and a real, documented bug hunt (a train/predict scaling mismatch) that took both architectures from looking broken to genuinely competing with, and sometimes beating, RF.

Dense network vs Random Forest, true vs predicted Cab and LAI, compact feature set
Dense vs. RF on 9 well-chosen features — Cab (top) and LAI (bottom), where dense edges out RF (R, Tutorial 13)
1D-CNN true vs predicted Cab scatter plot, 234 PRISMA bands
1D-CNN on 234 PRISMA bands, true vs. predicted Cab (R, Tutorial 13)
Python 1D-CNN training curve and true vs predicted Cab scatter plot
Same 1D-CNN architecture, Python (toolsrtm.deep_learning)
#Tutorial
13Deep Learning for RTM InversionPython examples →

Global & local sensitivityWhich traits actually move the signal

One-at-a-time sweeps, Sobol variance-based indices, and Johnson relative-weights regression — three complementary ways to answer "which input trait matters, and where in the spectrum." Ported to Python (toolsrtm.sensitivity) and verified against R to 8 decimal places.

Canopy reflectance sensitivity to Cab and EWT
Canopy reflectance sensitivity to Cab and EWT (How-in-R/Python)
Stacked-area chart of Johnson relative-importance index by wavelength for Cab, EWT, LAI, SoilCoef
Which trait dominates at each wavelength — Cab (VIS), LAI (red-edge/NIR), EWT (SWIR) (Tutorial 10)
SCOPE reflectance sensitivity to Vcmax25
Reflectance sensitivity to Vcmax25 — direct vs. indirect effect (SCOPEinR Tutorial 07)
#Tutorial
ToolsRTM 10Understanding RTM SensitivityPython module →
SCOPEinR 07Sensitivity: Direct vs. Indirect Trait Effects

Real Sentinel-2 & FLEXSatellite & spatial applications

Same models, real pixels: pulling actual Sentinel-2 scenes via STAC, inverting trait maps pixel-by-pixel, and scaling up to FLEX's coarser footprint with sub-pixel heterogeneity. This is where the LUTs, ML inversion, and sensitivity results above turn into an actual map.

Spatial maps of REIP1 index and retrieved Cab from real Sentinel-2 imagery
REIP1 index and retrieved Cab, real Sentinel-2 scene (Tutorial 18)
Cab, LAI and Car trait maps at 10m resolution over a FLEX elementary sampling unit
Cab, LAI, Car trait maps at 10m, FLEX ESU (Tutorial 19)
NDVI spatial map from a real Sentinel-2 scene over Speulderbos
NDVI from a real Sentinel-2 scene, Speulderbos (SCOPEinR Tutorial 11)
#Tutorial
ToolsRTM 15From Satellite Reflectance to Traits: Real EO Application
ToolsRTM 17Monitoring a Forest Site Through Time
ToolsRTM 18Data-Driven Spatial Index MappingPython capstone →
ToolsRTM 19FLEX Cal/Val: ESU Heterogeneity Mapping
SCOPEinR 11Capstone: ML Inversion of Net Photosynthesis, Real Sentinel-2Python capstone →

This is a curated visual subset — the full numbered list (31 tutorials) is on the homepage, and every package's complete article index is under its own Documentation (ToolsRTM / SCOPEinR).