Skip to content

Commit bb43f99

Browse files
committed
[v0.1.11] 2025-12-05
- Updated helios-core to v1.3.59 ## Core - Added `magnitude()` and `normalize()` methods to vec2 and vec3 - Added `scale()` method to RGBcolor and RGBAcolor for color intensity adjustment - Added `JulianDay()`, `incrementDay()`, and `isLeapYear()` methods to Date - Added `scaleConeObjectLength()` and `scaleConeObjectGirth()` methods for cone object manipulation ## Solar Position - Added modern state-based API with `setAtmosphericConditions()`, `getAtmosphericConditions()`, and parameter-free flux methods - Added `getAmbientLongwaveFlux()` for ambient longwave radiation calculation - Added Prague Sky Model support with `enablePragueSkyModel()`, `updatePragueSkyModel()`, `isPragueSkyModelEnabled()`, and `pragueSkyModelNeedsUpdate()` ## Leaf Optics - Added `optionalOutputPrimitiveData()` for selective biochemical property output (chlorophyll, carotenoid, water, etc.) - CRITICAL BUG: leaf optics was not being built with default build ## WeberPennTree - Added `loadXML()` method for loading custom tree species from XML files - Extended `buildTree()` to accept custom species names (strings) in addition to `WPTType` enum
1 parent 90621d0 commit bb43f99

83 files changed

Lines changed: 5538 additions & 2924 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

README.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ cd PyHelios/
5757
# Build native libraries (optional - pre-built binaries included)
5858
./build_scripts/build_helios
5959

60-
# Install PyHelios
60+
# Install PyHelios dependencies
6161
pip install -e .
6262
```
6363

@@ -75,11 +75,11 @@ xcode-select --install
7575
git clone --recursive https://github.com/PlantSimulationLab/PyHelios.git
7676
cd PyHelios/
7777

78-
# Install dependencies and build native libraries
78+
# Install c++ dependencies and build native libraries
7979
source helios-core/utilities/dependencies.sh
8080
./build_scripts/build_helios
8181

82-
# Install PyHelios
82+
# Install PyHelios dependencies
8383
pip install -e .
8484
```
8585

@@ -95,11 +95,11 @@ pip install -e .
9595
git clone --recursive https://github.com/PlantSimulationLab/PyHelios.git
9696
cd PyHelios/
9797

98-
# Install dependencies and build native libraries
98+
# Install c++ dependencies and build native libraries
9999
source helios-core/utilities/dependencies.sh
100100
./build_scripts/build_helios
101101

102-
# Install PyHelios
102+
# Install PyHelios dependencies
103103
pip install -e .
104104
```
105105

build_scripts/build_helios.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1638,6 +1638,7 @@ def get_default_plugins() -> List[str]:
16381638
- solarposition: Solar position calculations and sun angle modeling
16391639
- photosynthesis: Photosynthesis modeling and carbon assimilation
16401640
- plantarchitecture: Advanced plant structure and architecture modeling with procedural plant library
1641+
- leafoptics: Implementation of PROSPECT-PRO leaf optical model
16411642
16421643
Returns:
16431644
List of default plugins

docs/CHANGELOG.md

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,28 @@
11
# Changelog
22

3+
# [v0.1.11] 2025-12-05
4+
5+
- Updated helios-core to v1.3.59
6+
7+
## Core
8+
- Added `magnitude()` and `normalize()` methods to vec2 and vec3
9+
- Added `scale()` method to RGBcolor and RGBAcolor for color intensity adjustment
10+
- Added `JulianDay()`, `incrementDay()`, and `isLeapYear()` methods to Date
11+
- Added `scaleConeObjectLength()` and `scaleConeObjectGirth()` methods for cone object manipulation
12+
13+
## Solar Position
14+
- Added modern state-based API with `setAtmosphericConditions()`, `getAtmosphericConditions()`, and parameter-free flux methods
15+
- Added `getAmbientLongwaveFlux()` for ambient longwave radiation calculation
16+
- Added Prague Sky Model support with `enablePragueSkyModel()`, `updatePragueSkyModel()`, `isPragueSkyModelEnabled()`, and `pragueSkyModelNeedsUpdate()`
17+
18+
## Leaf Optics
19+
- Added `optionalOutputPrimitiveData()` for selective biochemical property output (chlorophyll, carotenoid, water, etc.)
20+
- CRITICAL BUG: leaf optics was not being built with default build
21+
22+
## WeberPennTree
23+
- Added `loadXML()` method for loading custom tree species from XML files
24+
- Extended `buildTree()` to accept custom species names (strings) in addition to `WPTType` enum
25+
326
# [v0.1.10] 2025-12-02
427

528
🚨++ New Plug-in Integrated ++ 🚨

docs/Doxyfile.python

Lines changed: 11 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -40,8 +40,7 @@ PYTHON_DOCSTRING = YES
4040
INHERIT_DOCS = YES
4141
SEPARATE_MEMBER_PAGES = NO
4242
TAB_SIZE = 4
43-
ALIASES =
44-
TCL_SUBST =
43+
ALIASES =
4544
OPTIMIZE_OUTPUT_FOR_C = NO
4645
OPTIMIZE_OUTPUT_JAVA = YES
4746
OPTIMIZE_FOR_FORTRAN = NO
@@ -129,6 +128,7 @@ INPUT = pyhelios \
129128
docs/file_io.md \
130129
docs/cross_platform.md \
131130
docs/plugin_system.md \
131+
docs/cuda_setup.md \
132132
docs/plugin_integration_guide.md \
133133
docs/plugin_boundarylayerconductance.md \
134134
docs/plugin_energybalance.md \
@@ -150,6 +150,8 @@ FILE_PATTERNS = *.py \
150150
RECURSIVE = YES
151151
EXCLUDE = pyhelios/plugins/__pycache__ \
152152
pyhelios/__pycache__ \
153+
docs/plugin_integration_guide.md \
154+
docs/cpp_plugin_integration_guide.md \
153155
pyhelios/wrappers/UBoundaryLayerConductanceWrapper.py \
154156
pyhelios/wrappers/UContextWrapper.py \
155157
pyhelios/wrappers/UGlobalWrapper.py \
@@ -175,13 +177,13 @@ EXCLUDE = pyhelios/plugins/__pycache__ \
175177
EXCLUDE_SYMLINKS = NO
176178
EXCLUDE_PATTERNS = */__pycache__/* \
177179
*/.*
178-
EXCLUDE_SYMBOLS =
180+
EXCLUDE_SYMBOLS = *::int *::float *::str *::bool *::list *::tuple *::dict
179181
EXAMPLE_PATH = docs/examples
180182
EXAMPLE_PATTERNS = *.py
181183
EXAMPLE_RECURSIVE = YES
182184
IMAGE_PATH = docs/images
183185
INPUT_FILTER =
184-
FILTER_PATTERNS = *.py="doxypypy --autobrief --autocode"
186+
FILTER_PATTERNS = *.py="doxypypy --autobrief"
185187
FILTER_SOURCE_FILES = NO
186188
FILTER_SOURCE_PATTERNS =
187189
USE_MDFILE_AS_MAINPAGE = README.md
@@ -199,10 +201,6 @@ REFERENCES_LINK_SOURCE = YES
199201
SOURCE_TOOLTIPS = YES
200202
USE_HTAGS = NO
201203
VERBATIM_HEADERS = YES
202-
CLANG_ASSISTED_PARSING = NO
203-
CLANG_ADD_INC_PATHS = YES
204-
CLANG_OPTIONS =
205-
CLANG_DATABASE_PATH =
206204

207205
#---------------------------------------------------------------------------
208206
# Configuration options related to the alphabetical class index
@@ -218,7 +216,7 @@ IGNORE_PREFIX =
218216
GENERATE_HTML = YES
219217
HTML_OUTPUT = html
220218
HTML_FILE_EXTENSION = .html
221-
HTML_HEADER = docs/header.html
219+
# HTML_HEADER = docs/header.html
222220
HTML_FOOTER =
223221
HTML_STYLESHEET =
224222
HTML_EXTRA_STYLESHEET = docs/assets/doxygen-awesome.css \
@@ -235,7 +233,6 @@ HTML_EXTRA_FILES = docs/assets/doxygen-awesome-darkmode-toggle.js \
235233
HTML_COLORSTYLE_HUE = 220
236234
HTML_COLORSTYLE_SAT = 100
237235
HTML_COLORSTYLE_GAMMA = 80
238-
HTML_TIMESTAMP = NO
239236
HTML_DYNAMIC_MENUS = YES
240237
HTML_DYNAMIC_SECTIONS = YES
241238
HTML_INDEX_NUM_ENTRIES = 100
@@ -268,12 +265,12 @@ TREEVIEW_WIDTH = 250
268265
EXT_LINKS_IN_WINDOW = NO
269266
HTML_FORMULA_FORMAT = png
270267
FORMULA_FONTSIZE = 10
271-
FORMULA_TRANSPARENT = YES
272268
FORMULA_MACROFILE =
273-
USE_MATHJAX = NO
269+
USE_MATHJAX = YES
270+
MATHJAX_VERSION = MathJax_3
274271
MATHJAX_FORMAT = HTML-CSS
275-
MATHJAX_RELPATH = http://cdn.mathjax.org/mathjax/latest
276-
MATHJAX_EXTENSIONS =
272+
MATHJAX_RELPATH = https://cdn.jsdelivr.net/npm/mathjax@3
273+
MATHJAX_EXTENSIONS =
277274
MATHJAX_CODEFILE =
278275
SEARCHENGINE = YES
279276
SERVER_BASED_SEARCH = NO
@@ -353,13 +350,10 @@ EXTERNAL_PAGES = YES
353350
# Configuration options related to the dot tool
354351
#---------------------------------------------------------------------------
355352

356-
CLASS_DIAGRAMS = YES
357353
DIA_PATH =
358354
HIDE_UNDOC_RELATIONS = YES
359355
HAVE_DOT = YES
360356
DOT_NUM_THREADS = 0
361-
DOT_FONTNAME = Helvetica
362-
DOT_FONTSIZE = 10
363357
DOT_FONTPATH =
364358
CLASS_GRAPH = YES
365359
COLLABORATION_GRAPH = YES
@@ -384,7 +378,6 @@ PLANTUML_CFG_FILE =
384378
PLANTUML_INCLUDE_PATH =
385379
DOT_GRAPH_MAX_NODES = 50
386380
MAX_DOT_GRAPH_DEPTH = 0
387-
DOT_TRANSPARENT = NO
388381
DOT_MULTI_TARGETS = NO
389382
GENERATE_LEGEND = YES
390383
DOT_CLEANUP = YES

docs/DoxygenLayout.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
<!-- Currently Implemented Plugins (Alphabetized) -->
1919
<tab type="user" visible="yes" url="@ref BoundaryLayerConductanceDoc" title="Boundary Layer Conductance"/>
2020
<tab type="user" visible="yes" url="@ref EnergyBalanceDoc" title="Energy Balance Model"/>
21+
<tab type="user" visible="yes" url="@ref LeafOpticsDoc" title="Leaf Optics Model"/>
2122
<tab type="user" visible="yes" url="@ref PhotosynthesisDoc" title="Photosynthesis Model"/>
2223
<tab type="user" visible="yes" url="@ref PlantArchitectureDoc" title="Plant Architecture"/>
2324
<tab type="user" visible="yes" url="@ref RadiationDoc" title="Radiation Model"/>

0 commit comments

Comments
 (0)