Skip to content

Fix problem with naive load forecast, issue 516 #522

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 4 commits into
base: master
Choose a base branch
from

Conversation

davidusb-geek
Copy link
Owner

@davidusb-geek davidusb-geek commented Apr 24, 2025

Summary by Sourcery

Fix timezone and indexing issues in load forecast method to improve forecast date handling and timezone conversion

Bug Fixes:

  • Resolve timezone conversion problems in load forecast by converting forecast dates to UTC and handling timezone-related indexing more robustly

Enhancements:

  • Improve forecast date rounding and timezone conversion to ensure consistent and accurate forecast indexing

Copy link

sourcery-ai bot commented Apr 24, 2025

Reviewer's Guide by Sourcery

This pull request addresses a bug in the naive load forecast within src/emhass/forecast.py. The issue stemmed from inconsistent timezone handling between the historical data index and the forecast dates. The fix involves ensuring that the forecast index is converted to UTC and rounded to the nearest frequency, and then converting the timezone of the forecast index to match the timezone of the forecast dates after the intersection.

Sequence diagram for naive load forecast with timezone conversion

sequenceDiagram
    participant Forecast as Forecast Module
    participant HistoricalData as Historical Data
    participant ForecastDates as Forecast Dates

    Forecast->>HistoricalData: Load historical data
    Forecast->>ForecastDates: Convert forecast dates to UTC
    Forecast->>ForecastDates: Round forecast dates to nearest frequency
    Forecast->>HistoricalData: Find intersection between historical data and forecast dates
    Forecast->>ForecastDates: Convert timezone of forecast index to match forecast dates
    Forecast->>Forecast: Return load forecast
Loading

File-Level Changes

Change Details Files
Fixed an issue in the naive load forecast method where the timezones of the forecast index were not correctly aligned, leading to incorrect forecast results.
  • Removed timezone localization and conversion of the data index when loading data from pickle.
  • Converted the forecast dates to UTC and rounded them to the nearest frequency to ensure proper intersection with the forecast index.
  • Converted the timezone of the forecast index to match the timezone of the forecast dates after the intersection.
src/emhass/forecast.py

Possibly linked issues


Tips and commands

Interacting with Sourcery

  • Trigger a new review: Comment @sourcery-ai review on the pull request.
  • Continue discussions: Reply directly to Sourcery's review comments.
  • Generate a GitHub issue from a review comment: Ask Sourcery to create an
    issue from a review comment by replying to it. You can also reply to a
    review comment with @sourcery-ai issue to create an issue from it.
  • Generate a pull request title: Write @sourcery-ai anywhere in the pull
    request title to generate a title at any time. You can also comment
    @sourcery-ai title on the pull request to (re-)generate the title at any time.
  • Generate a pull request summary: Write @sourcery-ai summary anywhere in
    the pull request body to generate a PR summary at any time exactly where you
    want it. You can also comment @sourcery-ai summary on the pull request to
    (re-)generate the summary at any time.
  • Generate reviewer's guide: Comment @sourcery-ai guide on the pull
    request to (re-)generate the reviewer's guide at any time.
  • Resolve all Sourcery comments: Comment @sourcery-ai resolve on the
    pull request to resolve all Sourcery comments. Useful if you've already
    addressed all the comments and don't want to see them anymore.
  • Dismiss all Sourcery reviews: Comment @sourcery-ai dismiss on the pull
    request to dismiss all existing Sourcery reviews. Especially useful if you
    want to start fresh with a new review - don't forget to comment
    @sourcery-ai review to trigger a new review!

Customizing Your Experience

Access your dashboard to:

  • Enable or disable review features such as the Sourcery-generated pull request
    summary, the reviewer's guide, and others.
  • Change the review language.
  • Add, remove or edit custom review instructions.
  • Adjust other review settings.

Getting Help

Copy link

@sourcery-ai sourcery-ai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hey @davidusb-geek - I've reviewed your changes - here's some feedback:

Overall Comments:

  • It looks like you've commented out some timezone conversions, can you explain why?
Here's what I looked at during the review
  • 🟢 General issues: all looks good
  • 🟢 Security: all looks good
  • 🟢 Testing: all looks good
  • 🟢 Complexity: all looks good
  • 🟢 Documentation: all looks good

Sourcery is free for open source - if you like our reviews please consider sharing them ✨
Help me be more useful! Please click 👍 or 👎 on each comment and I'll use the feedback to improve your reviews.

Copy link

codecov bot commented Apr 24, 2025

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 66.47%. Comparing base (b01eada) to head (9eeb93d).
Report is 19 commits behind head on master.

Additional details and impacted files
@@            Coverage Diff             @@
##           master     #522      +/-   ##
==========================================
- Coverage   66.53%   66.47%   -0.07%     
==========================================
  Files           8        8              
  Lines        3269     3272       +3     
==========================================
  Hits         2175     2175              
- Misses       1094     1097       +3     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

Copy link

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant