Version: [4699] SOLWEIG 0.1.0-beta83 Experimental

0.1.0-beta83
- Fix PVGIS TMY reference period docs (2005-2020 -> 2005-2023 for
v5.3)
- Clarify that TMY row timestamps legitimately span multiple years
(each month is a real historical month)
0.1.0-beta82
- Fix silent scale convention inversion in Rust shadow caster
(tan_altitude_by_scale operator)
- Add DEM stair-step smoothing (auto-detects int16 1m quantization)
- Add prepare() warm-run fast-path (100x speedup on cache hit with
detailed mismatch logs)
- Fix tile sizer buffer accounting (removes spurious "buffer exceeds
limit" warning)
- Optimize GridAccumulator.update() with in-place numpy ufuncs
- Plugin metadata consolidation: delegate metadata.json write to
SurfaceData.save_cleaned()
0.1.0-beta80
- Add NVIDIA VRAM detection on Linux via NVML
0.1.0-beta79
- Fix Windows PermissionError on memmap temp dir cleanup
- Fix rasterio create_empty_raster not initializing with nodata
0.1.0-beta77
- Fix GPU OOM on large rasters
0.1.0-beta74
- Fix rasterio resampling pixel drift (from_bounds back-computed
inexact pixel size)
- Fix phantom vegetation shadows: QGIS load path preserved CDSM NaN
markers
- Add SurfaceData.load() API; eliminate QGIS/core loading duplication
- Remove duplicate root-level SVF/raster saves from QGIS preprocessing
- Fix progress bar regression: wall computation now reports progress
0.1.0-beta73
- Fix CDSM/TDSM preprocessing tests for sub-threshold NaN behaviour
0.1.0-beta72
- Handle CDSM reconciliation with DEM to prevent shadow artefacts on
hills
0.1.0-beta71
- Clarify TMY nature of PVGIS downloads in docs and QGIS plugin (#8)
0.1.0-beta70
- Fix sitting posture producing negative Tmrt with anisotropic sky
(issue #9)
- Add box direct beam splitting for sitting posture shortwave
0.1.0-beta69
- Fix SVF Options 3/4 zenith patch count to match upstream UMEP
- Fix documentation examples and spec discrepancies
- Move geopandas to optional extra [geo]; CI adds Python 3.13
0.1.0-beta68
- Lower min_object_height default from 1.5m to 1.0m
0.1.0-beta67
- Flatten sub-threshold DSM features to DEM before shadow casting
(min_object_height=1.0m default) to remove kerbs, street furniture,
and LiDAR noise
- Expose MIN_OBJECT_HEIGHT as advanced parameter in Surface
Preparation
- Use original measurement station POIs from shapefiles (GeoJSON) for
validation
0.1.0-beta65
- Fix backend auto-detection test: access lazy _compat attrs before
restoring QGIS mocks to sys.modules, so in_osgeo_environment() sees
the clean (non-QGIS) state
0.1.0-beta64
- Fix _compat.py reload bug: stale backend attrs (GDAL_ENV,
RASTERIO_AVAILABLE) survived importlib.reload(), causing wrong backend
after switching between GDAL-forced and auto-detect modes
0.1.0-beta63
- Consistent GDAL/rasterio backend separation: CRS validation and
coordinate transforms now use osgeo.osr in QGIS environments instead
of unconditionally importing pyproj
- Fix backend auto-detection test for environments with partial
rasterio stack
0.1.0-beta62
- Bug fixes and refinements
0.1.0-beta61
- Fix file-mode prepare() order: preprocess relative heights before
walls/SVF computation
- Fix tiled execution silently dropping wall_height/wall_aspect from
tiles
- Fix calculate() crash on single Weather object (now accepts Weather
| list[Weather])
- Fix ModelConfig.from_json() populating dead material_params instead
of materials
- Fix QGIS land-cover override table inheriting missing values from
cobblestone instead of existing class
- Fix QGIS EPW loader cross-year/TMY timestamp non-monotonicity
- Update validation thresholds for corrected SVF geometry (absolute
heights)
0.1.0-beta60
- GPU GVF compute shader: offload cached thermal accumulation (18
azimuths x ray march) to wgpu with automatic CPU fallback
- Fix PVGIS EPW download: use QgsBlockingNetworkRequest instead of
QgsNetworkAccessManager (fixes SSL errors on macOS)
0.1.0-beta58
- HPC performance: Cargo release profile (LTO, codegen-units=1),
parallel SVF bitpacking, dynamic tile worker scaling, tile array view
optimization, GPU SVF buffer reuse, increased GPU inflight submissions
- Codebase cleanup: input validation, dead code removal, constants
consolidation, deduplication, type hints
- Fix test expectations for early ModelConfig validation
0.1.0-beta57
- Move optional deps (rasterio, geopandas, tqdm, pillow) to core so
pip install solweig works out of the box
0.1.0-beta56
- Fix nighttime Ldown: CI now defaults to 1.0 (clear) instead of 0 at
night; carry forward last daytime CI into nighttime hours
- Fix GPU SVF: guard against f32 tan(~90°) sign flip in shadow
propagation shader
- Fix SVF recompute: fall back to recomputation when old SVF zips lack
shadow matrices needed for anisotropic sky
- Auto-detect met file timestep instead of hard-coding 60/10 min
- Add Kronenhuset validation test and report (Lindberg et al. 2008)
0.1.0-beta55
- Adds tutorial for Bilbao; Fixes DEM vs CDSM absolute handling.
0.1.0-beta54
- Fix docs consistency tests; fix CI GDAL build for QGIS compat
0.1.0-beta53
- Enforce output directory for timeseries outputs
0.1.0-beta52
- Array vs. GeoTIFF API consistency
0.1.0-beta51
- Linting
0.1.0-beta50
- Cleanup
0.1.0-beta49
- Calculate API change and specs cleanup
0.1.0-beta48
- Add MkDocs site with API reference, I/O docs, and QGIS plugin guide
0.1.0-beta46
- Support QGIS 4 (Qt6); raise minimum to QGIS 4.0, Python 3.11
0.1.0-beta45
- Fix mountain shadow reach; simplify QGIS tiling options; minor bug
fixes
0.1.0-beta44
- Expose day/night UTCI heat-stress thresholds; optional per-timestep
Tmrt output; log TimeseriesSummary report
0.1.0-beta43
- TimeseriesSummary with aggregated grids and inline UTCI/PET; remove
batch postprocess
0.1.0-beta42
- Remove percent symbol from changelog (fixes ini-style metadata
parsing)
0.1.0-beta41
- Configurable land cover materials table in Surface Preparation with
UMEP defaults
- Save/load UMEP-compatible parametersforsolweig.json from surface
directory
0.1.0-beta40
- Tighten golden test tolerances (SVF, wall temp, Tmrt, PET, ground
temp)
0.1.0-beta39
- Fix nighttime Tmrt: full longwave radiation balance via Rust
pipeline
- Remove deprecated Python physics; all paths use fused Rust pipeline
0.1.0-beta38
- SVF must be prepared before calculate(); fix shadow spec convention
- Documentation and quick-start improvements
0.1.0-beta37
- Fix integer raster crash on NaN assignment; rename coerce_f64_to_f32
to ensure_float32
0.1.0-beta36
- GPU shadow-to-bitpack shader; anisotropic sky GPU cleanup
- SVF core API tests; Python 3.9 fix; surface model type-safety fixes
0.1.0-beta35
- Fall back to Python logging/tqdm when QGIS is importable but
inactive
0.1.0-beta34
- Use local relief for max_height; harden NaN handling; fix SVF
tile-size context
0.1.0-beta33
- GPU and processing performance improvements; multi-resolution
SVF/wall cache
0.1.0-beta32 - Bump
0.1.0-beta31 - Bump
0.1.0-beta30
- Reuse precomputed SVF and shadow matrices in tiled timeseries
0.1.0-beta29
- Configurable tile orchestration (workers, queue depth, prefetch)
- Backpressure-controlled dispatch; memory-aware prefetch; adaptive
worker count
0.1.0-beta28
- Optimized tiled timeseries; parallel tile execution via
ThreadPoolExecutor
0.1.0-beta27
- Fix 4 tiling bugs (pipelining split, tile-size semantics,
anisotropic sky, overlap buffer)
- Free result arrays after writing to disk in timeseries mode
0.1.0-beta26
- Vegetation transmissivity for diffuse SVF; configurable leaf-off
transmissivity
- Expose vegetation parameters in QGIS (transmissivity, seasonal leaf
dates)
0.1.0-beta25
- Fix multiple bugs: GVF shadow inversion, CDSM/TDSM clamping, thermal
delay state mutation, nighttime NaN propagation, diffuse fraction
division by zero, clearness index log(0), TMY date filter, polar
winter altmax, missing conifer params
0.1.0-beta24
- Skip tiling for nighttime timesteps (single-pass full grid)
0.1.0-beta23
- Fix EPW hour-24 timestamp bug; fix hardcoded Gothenburg lat/lon
defaults
0.1.0-beta22
- GPU pipelining for sustained utilisation; opt-in timing
instrumentation
0.1.0-beta21
- Height-aware tile buffer (reduces tile count for short buildings)
0.1.0-beta20
- QGIS progress monitor for timeseries; auto-tile large rasters
- Resource-aware tile sizing from real GPU/RAM limits
0.1.0-beta19
- Fix import sorting (ruff formatting)
0.1.0-beta18
- Enable anisotropic sky by default; port Perez model to Rust
- Fix bitpacked shadow extraction; fix veg shadow init; release GIL
0.1.0-beta17
- Install solweig with --no-deps in QGIS (fixes gdal_array ABI crash)
0.1.0-beta16
- Catch all exceptions on import so upgrade prompt still appears
0.1.0-beta15
- Force GDAL backend via env var (fixes rasterio detection in QGIS)
0.1.0-beta14
- Gate plugin build on passing tests; fix CI test reload failure
0.1.0-beta13
- Add Location.from_epw(); enable anisotropic sky in tiled mode
- Fix SVF cache reuse and validation; enforce release-mode Rust builds
0.1.0-beta12
- CI: create GitHub Release with wheels on tag push
0.1.0-beta11
- Fix PyPI upload: include LICENSE in sdist
0.1.0-beta10
- Auto-fill NaN with DEM ground reference; clamp near-ground noise
0.1.0-beta9
- Fix numpy dtype crash in QGIS; consolidate backend detection
0.1.0-beta8
- Fix plugin not appearing in Processing Toolbox; defer install prompt
0.1.0-beta7
- Publish workflow gates on passing tests
0.1.0-beta6
- Auto-detect outdated library and prompt to upgrade
0.1.0-beta5
- CI fixes: simplified build workflow; tags no longer trigger
redundant workflows
0.1.0-beta4
- Library installed via pip (auto-prompted); EPW proxy support; remove
bundled binaries
0.1.0-beta1 - First public beta
- Tmrt and thermal comfort; SVF preprocessing; anisotropic sky; GPU
shadows
0.1.0-alpha1 - Internal alpha
- Single timestep and timeseries Tmrt; SVF; UTCI/PET; EPW import;
tiled processing

yes

songololo

2026-04-13T13:15:06.453317+00:00

4.0.0

4.99.0

None

yes

Version management

Plugin details