14 - Photosynthesis with SIF Simulation¶
Dynamic
PhotosynthesisProcessandEnergyBalanceProcessare in the same joint native state Two product views.scene_elementsAlign Mesh primitive, Turbid component and terrain,summarygives the convergence residuals of temperature, energy and physiology and the real executor.
This chapter describes a unified process for dynamic leaf temperature, Farquhar photosynthesis, and daylight-induced chlorophyll fluorescence (SIF).
The same scene can contain Mesh, TurbidBoundary, or a mixture of both.
What attributes are required?¶
The leaf component participating in dynamic photosynthesis and dynamic SIF requires:
| Attribute domain | Common attributes | Purpose |
|---|---|---|
| optical | Fluspect |
Leaf reflection, transmission, absorption and fluorescence spectra |
| thermal | ThermalProperty |
Initial temperature and long-wave emissivity |
| biophysical | BiophysicalProperty |
Leaf width, stomatal surface, heat and water vapor exchange |
| physiological | Farquhar |
An, gs and dynamic Phi_f |
plant.set_property(
"leaves",
less.Fluspect(
N=1.5, cab=45, car=10, cw=0.012, cm=0.006,
fqe=0.012,
),
)
plant.set_property(
"leaves",
less.ThermalProperty(
temperature="air",
emissivity=0.98,
),
)
plant.set_property(
"leaves",
less.BiophysicalProperty(
leaf_width=0.05,
stomata_side="bottom",
),
)
plant.set_property(
"leaves",
less.Farquhar(
Vcmax25=60.0,
Jmax25=120.0,
),
)
Fluspect.fqe is used for static SIF. The dynamic SIF of Phi_f is calculated from the photosynthetic state.
Recommendation process¶
microclimate = less.Microclimate(
air_temperature=25.0, # degrees celsius
humidity=60.0, # percentage
wind_speed=2.0,
ca=400.0,
)
state = scene.solve(
microclimate=microclimate,
modules=["energy_balance", "photosynthesis", "sif"],
)
photo = state.photosynthesis
print("An:", photo.An)
print("gs:", photo.gs)
print("Phi_f:", photo.Phi_f)
print("leaf temperature:", photo.T_leaf)
thermal = scene.simulate(
less.ThermalImager(
less.Orthographic(image_size=512),
bands=[10600.0],
quality=128,
)
)
sif = scene.simulate(
less.SIFImager(
less.Orthographic(image_size=512),
bands=[687.0, 740.0, 760.0],
quality=256,
)
)
thermal.save("dynamic_temperature.tif")
sif.save("dynamic_sif.tif")
This time in solve, the energy balance, An, gs and Phi_f use the same coupling state.
ThermalImager and SIFImager read this current status by default and do not need to manually pass the intermediate results.
Sun leaves and shade leaves¶
Direct light is not uniform across the canopy. LESS records:
sunlit_fraction: Proportion of leaf area that directly sees the sun;APAR_sunlit: Conditional sun leaf APAR;APAR_shaded: Conditional shade leaf APAR;T_sunlit,T_shaded: Conditional sun leaf and shade leaf temperatures;An_sunlit,An_shaded: corresponding net photosynthetic rate.
Sky light and multiple scattering enter both the sun and shade leaves simultaneously. Only the conditional sun leaf contains the unobstructed direct sunlight term. The final component or patch result is weighted by the proportion of sun leaves:
Photosynthesis is a nonlinear process, so solve the sun leaves and shade leaves separately first, and then average; you cannot average APAR first. Run Farquhar just once again.
Result space hierarchy¶
- A pure Mesh scene returns
"primitive", one result for each triangle patch; - Scenes containing
TurbidBoundaryreturn"component"; - Temporary leaf area samples in statistical media are only used for numerical integration and will not become permanent voxels or scene geometry;
- If finer statistical media output is required, the crown can be divided into multiple components.
Static SIF: No photosynthesis or temperature required¶
If you only wish to simulate fluorescence using a given Fluspect.fqe, you can directly calculate the static SIF:
source = scene.simulate(
less.SIFProcess(
mode="static",
quality="high",
)
)
image = scene.simulate(
less.SIFImager(
less.Orthographic(image_size=512),
bands=[687.0, 740.0, 760.0],
quality=256,
sif_result=source,
)
)
Static SIF does not run Farquhar, does not require PhotosynthesisProcess, and does not require a temperature attribute.
It still requires Fluspect because the reflection, transmission, absorption, fluorescence excitation and emission spectra come from this property.
Sampling quality¶
Quality presets are available for dynamic physiological processes:
state = scene.solve(
microclimate=microclimate,
modules=["energy_balance", "photosynthesis", "sif"],
photosynthesis_kwargs={"quality": "high"},
sif_kwargs={"quality": "high"},
seed=42,
)
Optional values are "preview", "standard" and "high". Formal studies should also vary the number of samples taken,
Check if APAR, leaf temperature, An, gs and Phi_f are stable. Fixed seed to reproducible experiments.
Three backend consistency¶
The following backends use the same set of public API:
scene = less.Scene(backend="optix")
scene = less.Scene(backend="vulkan")
scene = less.Scene(backend="embree")
OptiX is suitable for NVIDIA GPU; Vulkan can use GPU that supports Ray Query; Embree can use CPU.
Switching backends does not require changing the way solve, ThermalImager or SIFImager is called.
View closure and convergence¶
eb = state.energy_balance.result
print("energy converged:", eb.converged)
print("photo converged:", state.photosynthesis.converged)
print("iterations:", state.photosynthesis.iterations)
print("max residual:", abs(eb.residual[eb.active_mask]).max())
If lighting, microclimate, properties, or geometry change, rerun scene.solve(...). LESS will
Refuse to use old state for new Thermal or SIF images.
Next step¶
Mesh and Turbid mixed scene¶
The scene.solve(...) can handle Mesh blades, TurbidBoundary canopy and terrain simultaneously.
scene_elements in the result will identify the scene element corresponding to each row, and provide leaf area, sun leaf ratio,
Fields such as sun leaf/shade leaf temperature, APAR, net photosynthetic rate, and stomatal conductance. After modifying scene properties, lighting or microclimate,
Please re-run scene.solve(...) and then pass the new energy_balance or sif product to the imaging sensor.
Related API¶
less.PhotosynthesisProcess、less.SIFProcessless.Farquhar、less.Fluspect、less.BiophysicalPropertyless.Microclimate、less.EnergyBalanceProcessless.SIFImager、less.ThermalImagerless.PhotosynthesisProduct、less.SIFProduct