01 - Introduction to LESS Model¶
What is LESS?¶
LESS is a three-dimensional radiative transfer model for remote sensing research. It uses Monte Carlo methods to describe the propagation of radiation in terrain, vegetation surfaces, and bulk media, and can generate simulation products such as optical, thermal infrared, radiation fields, energy balance, photosynthesis, and solar-induced chlorophyll fluorescence (SIF).
The current LESS 3.x series redesigns the computing core and Python API based on LESS 2.x:
- Three computing backends: NVIDIA GPU can use OptiX; GPU that supports Ray Query can use Vulkan; CPU can use Embree.
- Unified Python API: Scenes, properties, lighting, sensors and processes are all configured through the
lesspackage. - Persistent Scenes: Once a scene is built, it can be simulated repeatedly; there is usually no need to rebuild geometry when lighting or properties are modified.
- Two vegetation representations: use
Meshfor explicit triangle geometry andTurbidBoundaryfor continuous vegetation volumes. - Joint Physiological Processes: Mesh, Turbid and Terrain can be solved in the same Energy Balance and Photosynthesis workflow.
The backend only determines the hardware used and the execution method. The same scene and process have consistent physical quantity, unit and product fields in different backends.
What can be simulated?¶
| Applications | Main Products or Processes |
|---|---|
| Optical remote sensing | RGB, multispectral and hyperspectral imagery, BRF and albedo |
| Canopy radiation | Three-dimensional radiation field, fPAR, upwelling and downwelling irradiance |
| Thermal infrared remote sensing | Fixed temperature or energy balance temperature driven thermal infrared images |
| Vegetation Physiology | Leaf temperature, net photosynthetic rate, stomatal conductance, status of sun leaves and shade leaves |
| Chlorophyll fluorescence | Static or dynamic SIF process and SIF image |
| LiDAR | Point cloud and waveform products |
| Atmospheric coupling | Atmospheric profile, 6S, sun-sky and environment map lighting models |
Specific chapters will describe the scenario attributes and process parameters required for each type of product.
Basic principles¶
LESS's optical and thermal radiation transmission is performed by a native backend:
- The sensor or process generates a sampling light path in the scene;
- The light path interacts with the terrain, Mesh surface or Turbid medium;
- Calculate reflection, transmission, absorption and emission based on optical, thermal and physiological properties;
- Statistics of sampling results are obtained to obtain image or scene status products.
Parameters such as quality and num_photons control the sampling volume. Tutorials typically use lower quality to shorten run times; formal experiments should increase the sample size and check that the results converge.
Select backend¶
By default, LESS selects from the backends available on the current machine. It can also be specified explicitly:
import less
scene = less.Scene(backend="optix") # NVIDIA GPU
scene = less.Scene(backend="vulkan") # GPU supporting Ray Query
scene = less.Scene(backend="embree") # CPU
If you want to check whether a function is available before running, you can use Scene.can_use():
scene = less.Scene()
if scene.can_use("optical_imaging"):
print("Optical imaging can be performed")
scene.can_use("energy_balance", explain=True)
10 lines of code to complete a simulation¶
import less
scene = less.Scene()
scene.size = 10.0
scene.terrain = less.Terrain(
property=less.Lambertian(reflectance=0.3)
)
scene.illumination = less.Illumination(source=less.Sun(zenith=30, azimuth=150), atmosphere=less.NoAtmosphere())
image = scene.simulate(less.OpticalImager(
less.Orthographic(image_size=256),
bands=[650, 550, 450],
))
image.save("first_image.png")
Version rules¶
LESS uses standard pre-release tags and semantic versions:
b1means Beta 1: Major functionality has been established, but API, file format, or behavior may still be tweaked.rc1means Release Candidate 1: The planned public functions are basically completed, API and scientific semantics are ready to be frozen.- If a release blocking issue is found for
3.0.0rc1, the next release candidate is3.0.0rc2. - After passing the final release check, the version is
3.0.0. - Use
3.0.1for compatibility bug fixes after official release; use3.1.0for backward-compatible new features.
The name of the Python distribution package is less3d, and the import method in the program is import less.
Chapter 05 explains scenes, lighting, sensors and output products step by step.
Next step¶
- 02 - Installation and environment configuration
- 04 - Core concepts and scene life cycle
- API refer to
Related API¶
less.Scene、less.Scene.simulate()、less.Scene.rebuild()less.Scene.can_use()less.Terrain、less.Mesh、less.TurbidBoundaryless.Lambertian、less.Illumination、less.Sun、less.NoAtmosphereless.Orthographic、less.OpticalImager