Commit af72e74
committed
[v0.1.21] 2026-06-07
- Updated helios-core to v1.3.73
## Context
- Added `clearAllPrimitiveData(label)` and `clearAllObjectData(label)` to remove a named data field from *every* primitive/compound object in the Context (including hidden ones) and release the registered data type for that label, complementing the existing per-UUID/per-objID `clearPrimitiveData()`/`clearObjectData()`.
- Added `deleteTimeseriesDataPoint(date, time, label=None)` to delete a single timeseries data point at a given date/time — for one variable when `label` is given, or across all variables when `label` is `None`.
- `Location` gained an `altitude` field (meters above sea level, default 0.0); `setLocation()` accepts an optional `altitude` in its float form, `getLocation()` now returns it, and `make_Location()` accepts an optional 4th argument. Existing 3-argument usage is unchanged. Note Helios's non-standard longitude convention (+W / −E), which is auto-flipped to the standard +E convention when written into camera EXIF metadata.
## Radiation
- `CameraProperties` gained a `manufacturer` field (helios-core v1.3.73 maps it to the EXIF camera *Make* tag; empty ⇒ "Helios"). Like the other `CameraProperties` string fields, it is exposed on the Python class for forward compatibility but is not yet plumbed through to the native camera. Camera images written via `writeCameraImage()` embed EXIF/XMP metadata (camera intrinsics, orientation, and GPS derived from the Context `Location`) automatically on the native side.
## LiDAR
- `LiDARCloud.addScan()` gained optional `range_noise_stddev` (meters) and `angle_noise_stddev` (radians) arguments that drive realistic anisotropic positional error during `syntheticScan()` (along-beam range noise and across-beam beam-pointing jitter). Both default to 0.0 (disabled), preserving prior behavior. Query them with `getScanRangeNoiseStdDev(scanID)` / `getScanAngleNoiseStdDev(scanID)`.
- Added `exportScans(filename)` to write all scans as an XML metadata file plus one ASCII data file per scan (auto-named `<base>_<scanID>.xyz`), re-loadable with `loadXML()`.1 parent 46c2f15 commit af72e74
20 files changed
Lines changed: 1401 additions & 92 deletions
File tree
- docs
- native
- include
- src
- pyhelios
- wrappers
- tests
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | 2 | | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
3 | 19 | | |
4 | 20 | | |
5 | 21 | | |
| |||
26 | 42 | | |
27 | 43 | | |
28 | 44 | | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
29 | 49 | | |
30 | 50 | | |
31 | 51 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
140 | 140 | | |
141 | 141 | | |
142 | 142 | | |
143 | | - | |
| 143 | + | |
144 | 144 | | |
145 | 145 | | |
146 | 146 | | |
| |||
197 | 197 | | |
198 | 198 | | |
199 | 199 | | |
200 | | - | |
| 200 | + | |
201 | 201 | | |
202 | 202 | | |
203 | 203 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
103 | 103 | | |
104 | 104 | | |
105 | 105 | | |
| 106 | + | |
| 107 | + | |
106 | 108 | | |
107 | 109 | | |
108 | 110 | | |
| |||
498 | 500 | | |
499 | 501 | | |
500 | 502 | | |
| 503 | + | |
501 | 504 | | |
502 | 505 | | |
503 | 506 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
33 | 33 | | |
34 | 34 | | |
35 | 35 | | |
36 | | - | |
37 | | - | |
| 36 | + | |
| 37 | + | |
38 | 38 | | |
39 | 39 | | |
40 | 40 | | |
| |||
223 | 223 | | |
224 | 224 | | |
225 | 225 | | |
226 | | - | |
227 | | - | |
| 226 | + | |
| 227 | + | |
228 | 228 | | |
229 | 229 | | |
230 | 230 | | |
| |||
250 | 250 | | |
251 | 251 | | |
252 | 252 | | |
253 | | - | |
254 | | - | |
| 253 | + | |
| 254 | + | |
255 | 255 | | |
256 | 256 | | |
257 | 257 | | |
| |||
327 | 327 | | |
328 | 328 | | |
329 | 329 | | |
330 | | - | |
331 | | - | |
| 330 | + | |
| 331 | + | |
332 | 332 | | |
333 | 333 | | |
334 | 334 | | |
| |||
440 | 440 | | |
441 | 441 | | |
442 | 442 | | |
443 | | - | |
| 443 | + | |
444 | 444 | | |
445 | 445 | | |
446 | 446 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
34 | 34 | | |
35 | 35 | | |
36 | 36 | | |
37 | | - | |
38 | | - | |
39 | | - | |
40 | | - | |
41 | | - | |
42 | | - | |
43 | | - | |
44 | | - | |
45 | | - | |
46 | | - | |
47 | | - | |
48 | | - | |
49 | | - | |
50 | | - | |
51 | | - | |
52 | | - | |
53 | | - | |
54 | | - | |
55 | | - | |
56 | | - | |
57 | | - | |
58 | | - | |
59 | | - | |
60 | | - | |
61 | | - | |
62 | | - | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
63 | 63 | | |
64 | 64 | | |
65 | | - | |
| 65 | + | |
66 | 66 | | |
67 | 67 | | |
68 | 68 | | |
| |||
106 | 106 | | |
107 | 107 | | |
108 | 108 | | |
109 | | - | |
| 109 | + | |
110 | 110 | | |
111 | 111 | | |
112 | 112 | | |
| |||
115 | 115 | | |
116 | 116 | | |
117 | 117 | | |
118 | | - | |
119 | | - | |
| 118 | + | |
| 119 | + | |
| 120 | + | |
120 | 121 | | |
121 | 122 | | |
122 | 123 | | |
123 | | - | |
| 124 | + | |
124 | 125 | | |
125 | 126 | | |
126 | 127 | | |
| |||
203 | 204 | | |
204 | 205 | | |
205 | 206 | | |
206 | | - | |
| 207 | + | |
207 | 208 | | |
208 | 209 | | |
209 | 210 | | |
210 | 211 | | |
211 | 212 | | |
212 | 213 | | |
213 | 214 | | |
214 | | - | |
| 215 | + | |
215 | 216 | | |
216 | 217 | | |
217 | 218 | | |
| |||
230 | 231 | | |
231 | 232 | | |
232 | 233 | | |
233 | | - | |
| 234 | + | |
234 | 235 | | |
235 | 236 | | |
236 | 237 | | |
| |||
239 | 240 | | |
240 | 241 | | |
241 | 242 | | |
242 | | - | |
| 243 | + | |
243 | 244 | | |
244 | 245 | | |
245 | 246 | | |
| |||
500 | 501 | | |
501 | 502 | | |
502 | 503 | | |
503 | | - | |
| 504 | + | |
504 | 505 | | |
505 | 506 | | |
506 | 507 | | |
507 | 508 | | |
508 | 509 | | |
509 | 510 | | |
510 | | - | |
| 511 | + | |
511 | 512 | | |
512 | 513 | | |
513 | 514 | | |
| |||
Submodule helios-core updated 72 files
- .gitignore+2-1
- core/CMakeLists.txt+1
- core/include/Context.h+45-11
- core/include/exif_writer.h+51
- core/include/global.h+16
- core/include/helios_vector_types.h+39-3
- core/include/image_metadata.h+127
- core/src/Context.cpp+62-5
- core/src/Context_data.cpp+72
- core/src/Context_fileIO.cpp+36-40
- core/src/Context_primitive.cpp+30-6
- core/src/exif_writer.cpp+700
- core/src/global.cpp+31-6
- core/tests/Test_context.h+75
- core/tests/Test_data.h+65-2
- core/tests/Test_functions.h+221
- core/tests/Test_utilities.h+15-2
- doc/CHANGELOG.md+41
- plugins/aeriallidar/include/AerialLiDAR.h+1-1
- plugins/aeriallidar/src/AerialLiDAR.cu+5-1
- plugins/canopygenerator/doc/images/ConicalCanopy.png
- plugins/collisiondetection/doc/CollisionDetection.dox+11-2
- plugins/collisiondetection/include/CollisionDetection.h+22
- plugins/collisiondetection/src/CollisionDetection_RayTracing.cpp+151-17
- plugins/collisiondetection/src/CollisionDetection_Slicing.cpp+1-1
- plugins/collisiondetection/tests/selfTest.cpp+87
- plugins/energybalance/src/EnergyBalanceModel.cpp+2-2
- plugins/energybalance/src/EnergyBalanceModel.cu+2-2
- plugins/leafoptics/src/LeafOptics.cpp+13-9
- plugins/lidar/data/leafcube_multi.xyz+9.3k
- plugins/lidar/doc/LiDAR.dox+41
- plugins/lidar/include/LiDAR.h+58-6
- plugins/lidar/src/LiDAR.cpp+314-49
- plugins/lidar/src/fileIO.cpp+129-16
- plugins/lidar/tests/selfTest.cpp+522-18
- plugins/lidar/xml/leafcube_multi.xml+30
- plugins/plantarchitecture/include/PlantArchitecture.h+51-27
- plugins/plantarchitecture/src/CarbohydrateModel.cpp+106-61
- plugins/plantarchitecture/src/InputOutput.cpp+9-4
- plugins/plantarchitecture/src/PlantArchitecture.cpp+19-15
- plugins/plantarchitecture/src/PlantLibrary.cpp+26-23
- plugins/projectbuilder/include/ProjectBuilder.h+1-1
- plugins/projectbuilder/src/ProjectBuilder.cpp+2-2
- plugins/radiation/CMakeLists.txt+1
- plugins/radiation/doc/Radiation.dox+30
- plugins/radiation/doc/SIFCamera.dox+490
- plugins/radiation/include/RadiationModel.h+19-2
- plugins/radiation/include/RayTracing.cuh+2
- plugins/radiation/include/RayTracingBackend.h+7-1
- plugins/radiation/shaders/camera_raygen.comp+9
- plugins/radiation/src/CameraCalibration.cpp+8-4
- plugins/radiation/src/RadiationCamera.cpp+15-4
- plugins/radiation/src/RadiationCameraEXIF.cpp+300
- plugins/radiation/src/RadiationModel.cpp+19-7
- plugins/radiation/src/backends/OptiX6Backend.cpp+16-3
- plugins/radiation/src/backends/OptiX6Backend.h+8-2
- plugins/radiation/src/backends/OptiX8Backend.cpp+27-1
- plugins/radiation/src/backends/OptiX8Backend.h+5-1
- plugins/radiation/src/backends/VulkanComputeBackend.cpp+89-2
- plugins/radiation/src/backends/VulkanComputeBackend.h+4-1
- plugins/radiation/src/optix8/OptiX8DeviceCode.cu+7
- plugins/radiation/src/optix8/OptiX8LaunchParams.h+2
- plugins/radiation/src/rayHit.cu+6
- plugins/radiation/tests/selfTest.cpp+287
- plugins/solarposition/doc/images/CloudyFluxPartitioning.png
- plugins/solarposition/src/SolarPosition.cpp+2-2
- plugins/solarposition/tests/selfTest.cpp+28
- plugins/visualizer/doc/images/Visualizer.png
- plugins/visualizer/include/Visualizer.h+7-7
- plugins/visualizer/tests/selfTest.cpp+31
- samples/tutorial10/CMakeLists.txt+20
- samples/tutorial10/main.cpp+57
0 commit comments