promote develop → main: per-zone weather (22.4.0)#377
Merged
Conversation
When `ConfigMulti.per_zone_weather=True`, each of the four German TSO control zones (load_50hertz/load_amprion/load_tennet/load_transnetbw) is driven by weather from its own region instead of one shared national index. Calendar, holiday and event-window features stay shared (they are national); only weather becomes regional, under the same un-prefixed column names so no estimator, factory or column matcher downstream changes. Opt-in, default OFF -> byte -identical to the prior shared-weather baseline. Mechanism: the existing single global weather build stays as the shared schema/ baseline; build_exogenous_features additionally fetches one weather frame per zone (reusing the multi-city get_weather_features path with each zone's city list) into self.zone_weather_aligned. At the single per-target seam (get_target_data, new keyword-only `zone_weather`) the zone's weather columns overwrite the shared values in-place; column order and shape are preserved. The per-zone frame keeps its native [start, cov_end] index so it spans the forecast horizon (regression-tested). On all-zones-success the shared schema is seeded from the first zone, so per-zone weather survives a global fetch that failed under on_weather_failure="skip". - weather/locations.py: registry 13->15 (Mannheim, Karlsruhe for TransnetBW); frozen GERMAN_TSO_ZONE_CITIES partition (provenance: SMARD control-area map + TSO wiki; Hamburg in 50Hertz, Bremen in TenneT); locations_for_zone resolver (fail-safe ValueError on unknown zone). Pre-existing Sphinx roles swept. - configurator: per_zone_weather + zone_weather_locations fields; validate_config guards reject combination with use_population_weighted_weather (mutual exclusivity), use_exogenous_features=False, and poly_features_degree>=2. - Fail-safe: under "skip" any zone fetch failure degrades the whole pipeline to no-weather (never substitutes the global index); under "raise" aborts naming the zone. - tasks/task_safe_zone_load_demo.py: --per_zone_weather flag (default off, offline-safe via on_weather_failure="skip"). - 36 network-free tests incl. mapping/partition, config guards, the seam overwrite, forecast-horizon coverage, skip-degradation, and non-zone-target fail-safe. quartodoc reference + freeze regenerated. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…er-zone-weather-entsoe feat(weather): per-zone weather for the ENTSO-E four-zone pipeline
## [22.4.0-rc.1](v22.3.0...v22.4.0-rc.1) (2026-06-13) ### Features * **weather:** per-zone weather for the ENTSO-E four-zone pipeline ([260a084](260a084)) ### Documentation * **tasks:** drop stale n-to-1 task wrapper references from task_multi ([00e9dab](00e9dab))
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Promotion of
develop→mainto release 22.4.0.Contains PR #376 —
feat(weather): per-zone weather for the ENTSO-E four-zone pipeline(opt-in, default OFF; each TSO zone driven by its own regional weather). semantic-release will cut 22.4.0, build the wheel/sdist, publish to PyPI + GitHub Release, and deploy docs.All CI green on develop; rc cut as
22.4.0-rc.1.🤖 Generated with Claude Code