Excessive API calls bugfix - #2
Merged
Merged
Conversation
Two bugs fixed: 1. Forecaster was making zones×slots API calls (up to 720+) per run. Each predict_for_zone() call triggered a separate load_recent_observations() and weather.get_at() → most timed out → only 1-2 zones got forecasts. Fix: pre-fetch recent_hourly once per zone in forecaster.run(), pass it through predict() → predict_for_zone() so the thread pool does pure math. Also cache zone→camera map in weather module (one get_zones call per process). 2. Forecasts beyond ~25h were always identical (static) because load_recent_observations(zone, future_ts, 25h) returns empty — all lag/MA features were constant FALLBACK=0.5 regardless of hour. Fix: store per-zone per-hour historical averages in zone_meta.json at training time; use them as lag/MA fallback so 3am and 4pm get meaningfully different feature vectors.
When recent data exists but is sparse (e.g. 1-2 readings in 25h window), all get_lag() calls were resolving to the same last-known value, making every prediction slot produce identical feature vectors and therefore identical forecasts. Fix: when no observation exists at the exact lag timestamp, use the per-zone per-hour historical average instead of the last known reading. Same logic applied to MA windows when the window is empty. Result: 3am and 4pm now get meaningfully different lag/MA values.
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.
No description provided.