Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/rustyconover/nyiso-electricity-models
A collection of Tensorflow.js models for NYISO electricity demand, generation and pricing for use with microprediction.org.
https://github.com/rustyconover/nyiso-electricity-models
Last synced: 9 days ago
JSON representation
A collection of Tensorflow.js models for NYISO electricity demand, generation and pricing for use with microprediction.org.
- Host: GitHub
- URL: https://github.com/rustyconover/nyiso-electricity-models
- Owner: rustyconover
- License: mit
- Created: 2020-12-28T04:21:50.000Z (almost 4 years ago)
- Default Branch: master
- Last Pushed: 2021-01-01T04:03:28.000Z (almost 4 years ago)
- Last Synced: 2024-10-06T22:36:46.365Z (about 1 month ago)
- Language: TypeScript
- Size: 42.2 MB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: readme.md
- License: license.txt
Awesome Lists containing this project
README
# NYISO Electricity Models using Tensorflow.js
This module is a collection of Tensorflow.js models that I've created
in [Julia](https://julialang.org/) using [Flux](https://fluxml.ai/Flux.jl/stable/) but have exported to [Tensorflow.js](https://www.tensorflow.org/js) so that they
can be used in browsers and via AWS Lambda functions.The models included are:
- Electricity demand for each NYISO zone.
- Wind power generation (NYISO wide)
- Solar power generation (NYISO wide)
- Locational Based Marginal Prices (LBMP) for each NYISO zoneThe models make forecasts at the ~1 minute, 5 minutes, 15 minutes
and 1 hour ahead of time horizons. Each model produces 225 guesses
about what the true value will be to form a probablity distribution.## Microprediction.org Prediction Bot
A simple [Microprediction.org](http://microprediction.com) prediction
robot is included in [`src/bot/bot.ts`](https://github.com/rustyconover/nyiso-electricity-models/blob/master/src/bot/bot.ts) that submits the
predictions from the models as part of the electicity prediction competition.## Examples
### Utilize a model to generate predictions.
This example shows how to use a model to generate predictions:
```js
import * as models from "@rustyconover/nyiso-electricity-models";
import moment from "moment";async function exampleModelUsage() {
// Load a model that predicts the overall electicity load/demand
// for the entire state of New York an hour ahead.
//
// 12 forecast intervals ahead is an hour since each forecast
// interval is five minutes.
const model = models.getModel("electricity-load-nyiso-overall.json", 12);
const target_time = moment.utc().format("YYYY-MM-DDTHH:mm:ss");// Obtain the weather information for the model.
const weather = await models.getWeatherForModels([model], target_time);// Obtain the stream data for the model.
const stream_data = await models.getStreamValuesForModels(
[model],
target_time
);// Obtain the regressors of the model.
const regressors = await model.regressors(
target_time,
weather,
stream_values
);// Using the regressors retrieve the predictions.
const predicted_values = await model.predict(regressors);// The 225 predicted values form a non-parameteric probablity distribution
// which express the model's prediction of the electricity demand
// an hour from the current time.console.log(predicted_values);
}exampleModelUsage().catch((e) => {
console.error(e);
process.exit(1);
});
```## Model Data Sources
The models use data from these sources:
1. [High Resolution Rapid Refresh](https://rapidrefresh.noaa.gov/hrrr/) forecast products from NCEP/NOAA:
- Temperature
- Surface Pressure
- 2 Meter Dewpoint Temperature
- 2 Meter Relative Humidity
- 10 Meter U/V Wind Components
- Downward Short-Wave Radiation Flux
- Visible Beam Downward Solar Flux
- Visible Diffuse Downward Solar Flux
- Total Cloud Cover
- Low Cloud Cover
- High Cloud Cover
- Middle Cloud Cover2. Existing electicity demand forecasts from NYISO.
The models where trained the [continuous ranked probablity score](https://www.lokad.com/continuous-ranked-probability-score) used as the loss metric.
All of the code necessary to generate features, perform feature selection
and train/test these models is [open source](https://github.com/rustyconover/microprediction-nyiso-electricity).These models are released under the MIT license and will be updated
from time to time.If you have feedback email [[email protected]](mailto:[email protected]).