Version: [4699] SOLWEIG 0.1.0-beta74 Experimental

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-03-18T02:25:29.035415+00:00

4.0.0

4.99.0

None

yes

Version management

Plugin details

QGIS sustaining members

Flagship membership


Flagship membership


Large membership


Large membership


Large membership


Large membership


Large membership


Large membership


Large membership


Large membership


Large membership


Large membership