question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

deprecate existing code in forecast.py, possibly replace with solarforecastarbiter shim

See original GitHub issue

forecast.py is a burden to maintain. I haven’t used it in years, I don’t think any of the other pvlib maintainers are interested in it, and I don’t see any users stepping up to volunteer to maintain it. The code is not up to my present standards and I don’t see how I’d get it there without a complete rewrite. This leads to difficult to track bugs such as the one recently reported on the google group. It also complicates the pvlib dependencies.

solarforecastarbiter includes a reference_forecasts package that is much more robust. See documentation here and example notebook here (no promises that this works without modification for the latest version).

The main reason to prefer forecast.py to solarforecastarbiter is the data fetch process. forecast.py pulls point data from a Unidata THREDDS server. solarforecastarbiter.reference_forecasts assumes you already have gridded data stored in a netcdf file. solarforecastarbiter.io.nwp provides functions to fetch that gridded data from NCEP. We have very good reasons for that approach in solarforecastarbiter, but I doubt that many forecast.py users are interested in configuring that two step process for their application.

I’m very tempted to stop here, remove forecast.py after deprecation, and say “not my problem anymore”, but it seems to attract a fair number of people to pvlib, so I hesitate to remove it without some kind of replacement. Let’s explore a few ideas.

  1. Within forecast.py, rewrite code to fetch relevant data from Unidata. Make this function compatible with the expectations for the load_forecast function passed into solarforecastarbiter.reference_forecasts.models functions.
  2. Same as 1., except put that code somewhere else. Could be a documentation example, could be in solarforecastarbiter, or could be in a gist.
  3. Copy/refactor solarforecastarbiter code into forecast.py.
  4. Do nothing and let the forecast.py bugs and technical debt pile up.

Other thoughts?

Issue Analytics

  • State:closed
  • Created 3 years ago
  • Comments:9 (5 by maintainers)

github_iconTop GitHub Comments

3reactions
spanejacommented, Sep 9, 2020

I used these forecast functions earlier in my career for production forecasting (getting forecasted irradiance data). But that said, everything I used it for can be done with different tools (some already in pvlib). There are some good free/paid weather services out there that return weather forecast data, and pvlib already has functions to determine irradiance from cloud_coverage.

While it could be tough for some to deprecate forecast.py, you have other tools that provide solutions and inputs. I have no problem with it being removed, especially if the amount of work to maintain is greater than the number of users who utilize it.

1reaction
slightfootecommented, Jan 21, 2021
Read more comments on GitHub >

github_iconTop Results From Across the Web

How to use the solarforecastarbiter.pvmodel function in ... - Snyk
Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately. Enable here. github SolarArbiter /...
Read more >
API reference - Solar Forecast Arbiter Core documentation
The following modules contain code for initializing the reference aggregates using Reference Observations that have already been created. Examples include ...
Read more >
python - How do i decrease the time period from 3 hours to 1 ...
I have been looking at the source code to see if it is possible to get more detailed forecasting from the library, as...
Read more >
The Solar Forecast Arbiter: An Open Source Evaluation ...
For a use case that involves assessing multiple forecasts against a common set of observations, a missing forecast is replaced with the last...
Read more >
The Solar Forecast Arbiter - ESIG
An Open Source Evaluation Framework for Solar Forecasting ... Each data owner retains full control to limit access or remove data at any ......
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found