![]() |
PyHelios 0.1.11
|
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:
Definition at line 60 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. | |
| __del__ (self) | |
| Destructor to ensure C++ resources freed even without 'with' statement. | |
| 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 72 of file EnergyBalance.py.
| pyhelios.EnergyBalance.EnergyBalanceModel.__del__ | ( | self | ) |
Destructor to ensure C++ resources freed even without 'with' statement.
Definition at line 140 of file EnergyBalance.py.
| pyhelios.EnergyBalance.EnergyBalanceModel.__enter__ | ( | self | ) |
Context manager entry.
Definition at line 125 of file EnergyBalance.py.
| pyhelios.EnergyBalance.EnergyBalanceModel.__exit__ | ( | self, | |
| exc_type, | |||
| exc_value, | |||
| traceback ) |
Context manager exit with proper cleanup.
Definition at line 129 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 |
Definition at line 245 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 171 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 |
Definition at line 291 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 159 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 |
Definition at line 334 of file EnergyBalance.py.
| pyhelios.EnergyBalance.EnergyBalanceModel.getNativePtr | ( | self | ) |
Get the native pointer for advanced operations.
Definition at line 150 of file EnergyBalance.py.
| bool pyhelios.EnergyBalance.EnergyBalanceModel.is_available | ( | self | ) |
Check if EnergyBalanceModel is available in current build.
Definition at line 417 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 |
Definition at line 370 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 |
Definition at line 401 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 |
Definition at line 208 of file EnergyBalance.py.
| pyhelios.EnergyBalance.EnergyBalanceModel.context = context |
Definition at line 77 of file EnergyBalance.py.
| pyhelios.EnergyBalance.EnergyBalanceModel.energy_model = None |
Definition at line 78 of file EnergyBalance.py.