![]() |
0.1.8
|
High-level interface for energy balance modeling and thermal calculations. More...
High-level interface for energy balance modeling and thermal calculations.
This class provides a user-friendly wrapper around the native Helios energy balance plugin with automatic plugin availability checking and graceful error handling.
The energy balance model computes surface temperatures based on local energy balance equations, including radiation absorption, convection, and transpiration. It supports both steady-state and dynamic (time-stepping) calculations.
System requirements:
Examples
Definition at line 62 of file EnergyBalance.py.
Public Member Functions | |
__init__ (self, Context context) | |
Initialize EnergyBalanceModel with graceful plugin handling. | |
__enter__ (self) | |
Context manager entry. | |
__exit__ (self, exc_type, exc_value, traceback) | |
Context manager exit with proper cleanup. | |
getNativePtr (self) | |
Get the native pointer for advanced operations. | |
None | enableMessages (self) |
Enable console output messages from the energy balance model. | |
None | disableMessages (self) |
Disable console output messages from the energy balance model. | |
None | run (self, Optional[List[int]] uuids=None, Optional[float] dt=None) |
Run the energy balance model. | |
None | addRadiationBand (self, Union[str, List[str]] band) |
Add a radiation band or bands for absorbed flux calculations. | |
None | enableAirEnergyBalance (self, Optional[float] canopy_height_m=None, Optional[float] reference_height_m=None) |
Enable air energy balance model for canopy-scale thermal calculations. | |
None | evaluateAirEnergyBalance (self, float dt_sec, float time_advance_sec, Optional[List[int]] UUIDs=None) |
Advance the air energy balance over time. | |
None | optionalOutputPrimitiveData (self, str label) |
Add optional output primitive data to the Context. | |
None | printDefaultValueReport (self, Optional[List[int]] UUIDs=None) |
Print a report detailing usage of default input values. | |
bool | is_available (self) |
Check if EnergyBalanceModel is available in current build. | |
Public Attributes | |
context = context | |
energy_model = None | |
pyhelios.EnergyBalance.EnergyBalanceModel.__init__ | ( | self, | |
Context | context ) |
Initialize EnergyBalanceModel with graceful plugin handling.
context | Helios Context instance |
TypeError | If context is not a Context instance |
EnergyBalanceModelError | If energy balance plugin is not available |
Definition at line 74 of file EnergyBalance.py.
pyhelios.EnergyBalance.EnergyBalanceModel.__enter__ | ( | self | ) |
Context manager entry.
Definition at line 127 of file EnergyBalance.py.
pyhelios.EnergyBalance.EnergyBalanceModel.__exit__ | ( | self, | |
exc_type, | |||
exc_value, | |||
traceback ) |
Context manager exit with proper cleanup.
Definition at line 131 of file EnergyBalance.py.
None pyhelios.EnergyBalance.EnergyBalanceModel.addRadiationBand | ( | self, | |
Union[str, List[str]] | band ) |
Add a radiation band or bands for absorbed flux calculations.
The energy balance model uses radiation bands from the RadiationModel plugin to calculate absorbed radiation flux for each primitive.
band | Name of radiation band (e.g., "SW", "PAR", "NIR", "LW") or list of band names |
ValueError | If band name is invalid |
EnergyBalanceModelError | If operation fails |
Examples
Definition at line 241 of file EnergyBalance.py.
None pyhelios.EnergyBalance.EnergyBalanceModel.disableMessages | ( | self | ) |
Disable console output messages from the energy balance model.
EnergyBalanceModelError | If operation fails |
Definition at line 163 of file EnergyBalance.py.
None pyhelios.EnergyBalance.EnergyBalanceModel.enableAirEnergyBalance | ( | self, | |
Optional[float] | canopy_height_m = None, | ||
Optional[float] | reference_height_m = None ) |
Enable air energy balance model for canopy-scale thermal calculations.
The air energy balance computes average air temperature and water vapor mole fraction based on the energy balance of the air layer in the canopy.
canopy_height_m | Optional canopy height in meters. If not provided, computed automatically from primitive bounding box. |
reference_height_m | Optional reference height in meters where ambient conditions are measured. If not provided, assumes reference height is at canopy top. |
ValueError | If parameters are invalid |
EnergyBalanceModelError | If operation fails |
Examples
Definition at line 289 of file EnergyBalance.py.
None pyhelios.EnergyBalance.EnergyBalanceModel.enableMessages | ( | self | ) |
Enable console output messages from the energy balance model.
EnergyBalanceModelError | If operation fails |
Definition at line 151 of file EnergyBalance.py.
None pyhelios.EnergyBalance.EnergyBalanceModel.evaluateAirEnergyBalance | ( | self, | |
float | dt_sec, | ||
float | time_advance_sec, | ||
Optional[List[int]] | UUIDs = None ) |
Advance the air energy balance over time.
This method advances the air energy balance model by integrating over multiple timesteps to reach the target time advancement.
dt_sec | Timestep in seconds for integration |
time_advance_sec | Total time to advance in seconds (must be >= dt_sec) |
uuids | Optional list of primitive UUIDs. If None, processes all primitives. |
ValueError | If parameters are invalid |
EnergyBalanceModelError | If operation fails |
Examples
Definition at line 334 of file EnergyBalance.py.
pyhelios.EnergyBalance.EnergyBalanceModel.getNativePtr | ( | self | ) |
Get the native pointer for advanced operations.
Definition at line 142 of file EnergyBalance.py.
bool pyhelios.EnergyBalance.EnergyBalanceModel.is_available | ( | self | ) |
Check if EnergyBalanceModel is available in current build.
Definition at line 421 of file EnergyBalance.py.
None pyhelios.EnergyBalance.EnergyBalanceModel.optionalOutputPrimitiveData | ( | self, | |
str | label ) |
Add optional output primitive data to the Context.
This method adds additional data fields to primitives that will be calculated and stored during energy balance execution.
label | Name of the data field to add (e.g., "vapor_pressure_deficit", "boundary_layer_conductance", "net_radiation") |
ValueError | If label is invalid |
EnergyBalanceModelError | If operation fails |
Examples
Definition at line 372 of file EnergyBalance.py.
None pyhelios.EnergyBalance.EnergyBalanceModel.printDefaultValueReport | ( | self, | |
Optional[List[int]] | UUIDs = None ) |
Print a report detailing usage of default input values.
This diagnostic method prints information about which primitives are using default values for energy balance parameters, helping identify where additional parameter specification might be needed.
uuids | Optional list of primitive UUIDs to report on. If None, reports on all primitives. |
EnergyBalanceModelError | If operation fails |
Examples
Definition at line 405 of file EnergyBalance.py.
None pyhelios.EnergyBalance.EnergyBalanceModel.run | ( | self, | |
Optional[List[int]] | uuids = None, | ||
Optional[float] | dt = None ) |
Run the energy balance model.
This method supports multiple execution modes: - Steady state for all primitives: run() - Dynamic with timestep for all primitives: run(dt=60.0) - Steady state for specific primitives: run(uuids=[1, 2, 3]) - Dynamic with timestep for specific primitives: run(uuids=[1, 2, 3], dt=60.0)
uuids | Optional list of primitive UUIDs to process. If None, processes all primitives. |
dt | Optional timestep in seconds for dynamic simulation. If None, runs steady-state. |
ValueError | If parameters are invalid |
EnergyBalanceModelError | If energy balance calculation fails |
Examples
Definition at line 202 of file EnergyBalance.py.
pyhelios.EnergyBalance.EnergyBalanceModel.context = context |
Definition at line 79 of file EnergyBalance.py.
pyhelios.EnergyBalance.EnergyBalanceModel.energy_model = None |
Definition at line 80 of file EnergyBalance.py.