{"id":18023160,"url":"https://github.com/rustyconover/nyiso-electricity-models","last_synced_at":"2025-10-11T19:40:13.678Z","repository":{"id":143787917,"uuid":"324910535","full_name":"rustyconover/nyiso-electricity-models","owner":"rustyconover","description":"A collection of Tensorflow.js models for NYISO electricity demand, generation and pricing for use with microprediction.org.","archived":false,"fork":false,"pushed_at":"2021-01-01T04:03:28.000Z","size":44211,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-10-04T00:58:09.568Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/rustyconover.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":null,"funding":null,"license":"license.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2020-12-28T04:21:50.000Z","updated_at":"2021-01-01T04:03:30.000Z","dependencies_parsed_at":"2023-03-27T17:16:57.435Z","dependency_job_id":null,"html_url":"https://github.com/rustyconover/nyiso-electricity-models","commit_stats":{"total_commits":28,"total_committers":1,"mean_commits":28.0,"dds":0.0,"last_synced_commit":"9a65fc01f72ec54d887954d8a18bfcf598181c03"},"previous_names":[],"tags_count":6,"template":false,"template_full_name":null,"purl":"pkg:github/rustyconover/nyiso-electricity-models","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rustyconover%2Fnyiso-electricity-models","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rustyconover%2Fnyiso-electricity-models/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rustyconover%2Fnyiso-electricity-models/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rustyconover%2Fnyiso-electricity-models/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rustyconover","download_url":"https://codeload.github.com/rustyconover/nyiso-electricity-models/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rustyconover%2Fnyiso-electricity-models/sbom","scorecard":{"id":790818,"data":{"date":"2025-08-11","repo":{"name":"github.com/rustyconover/nyiso-electricity-models","commit":"9a65fc01f72ec54d887954d8a18bfcf598181c03"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":2.5,"checks":[{"name":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Code-Review","score":0,"reason":"Found 0/28 approved changesets -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: no topLevel permission defined: .github/workflows/npm-publish.yml:1","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"SAST","score":0,"reason":"no SAST tool detected","details":["Warn: no pull requests merged into dev branch"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: license.txt:0","Info: FSF or OSI recognized license: MIT License: license.txt:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":0,"reason":"branch protection not enabled on development/release branches","details":["Warn: branch protection not enabled for branch 'master'"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/npm-publish.yml:9: update your workflow using https://app.stepsecurity.io/secureworkflow/rustyconover/nyiso-electricity-models/npm-publish.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/npm-publish.yml:11: update your workflow using https://app.stepsecurity.io/secureworkflow/rustyconover/nyiso-electricity-models/npm-publish.yml/master?enable=pin","Warn: npmCommand not pinned by hash: .github/workflows/npm-publish.yml:16","Info:   0 out of   2 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   1 npmCommand dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"Vulnerabilities","score":0,"reason":"32 existing vulnerabilities detected","details":["Warn: Project is vulnerable to: GHSA-93q8-gq69-wqmw","Warn: Project is vulnerable to: GHSA-grv7-fg5c-xmjg","Warn: Project is vulnerable to: GHSA-x9w5-v3q2-3rhw","Warn: Project is vulnerable to: GHSA-w8qv-6jwh-64r5","Warn: Project is vulnerable to: GHSA-3xgq-45jj-v275","Warn: Project is vulnerable to: GHSA-r9p9-mrjm-926w","Warn: Project is vulnerable to: GHSA-434g-2637-qmqr","Warn: Project is vulnerable to: GHSA-49q7-c7j4-3p7m","Warn: Project is vulnerable to: GHSA-977x-g7h5-7qgw","Warn: Project is vulnerable to: GHSA-f7q4-pwc6-w24p","Warn: Project is vulnerable to: GHSA-fc9h-whq2-v747","Warn: Project is vulnerable to: GHSA-vjh7-7g9h-fjfh","Warn: Project is vulnerable to: GHSA-fjxv-7rqg-78g4","Warn: Project is vulnerable to: GHSA-9c47-m6qq-7p4h","Warn: Project is vulnerable to: GHSA-76p3-8jx3-jpfq","Warn: Project is vulnerable to: GHSA-3rfm-jhwj-7488","Warn: Project is vulnerable to: GHSA-hhq3-ff78-jv3g","Warn: Project is vulnerable to: GHSA-29mw-wpgm-hmr9","Warn: Project is vulnerable to: GHSA-35jh-r3h4-6jhm","Warn: Project is vulnerable to: GHSA-952p-6rrq-rcjv","Warn: Project is vulnerable to: GHSA-xvch-5gv4-984h","Warn: Project is vulnerable to: GHSA-8hfj-j24r-96c4","Warn: Project is vulnerable to: GHSA-wc69-rhjr-hc9g","Warn: Project is vulnerable to: GHSA-r683-j2x4-v87g","Warn: Project is vulnerable to: GHSA-hj48-42vr-x3v9","Warn: Project is vulnerable to: GHSA-h7cp-r72f-jxh6","Warn: Project is vulnerable to: GHSA-v62p-rq8g-8h59","Warn: Project is vulnerable to: GHSA-c2qf-rxjj-qqgw","Warn: Project is vulnerable to: GHSA-4wf5-vphf-c2xc","Warn: Project is vulnerable to: GHSA-hc6q-2mpp-qw7j","Warn: Project is vulnerable to: GHSA-4vvj-4cpr-p986","Warn: Project is vulnerable to: GHSA-776f-qx25-q3cc"],"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}}]},"last_synced_at":"2025-08-23T07:29:01.336Z","repository_id":143787917,"created_at":"2025-08-23T07:29:01.337Z","updated_at":"2025-08-23T07:29:01.337Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279008430,"owners_count":26084460,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-11T02:00:06.511Z","response_time":55,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-10-30T07:07:37.577Z","updated_at":"2025-10-11T19:40:13.650Z","avatar_url":"https://github.com/rustyconover.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# NYISO Electricity Models using Tensorflow.js\n\nThis module is a collection of Tensorflow.js models that I've created\nin [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\ncan be used in browsers and via AWS Lambda functions.\n\nThe models included are:\n\n- Electricity demand for each NYISO zone.\n- Wind power generation (NYISO wide)\n- Solar power generation (NYISO wide)\n- Locational Based Marginal Prices (LBMP) for each NYISO zone\n\nThe models make forecasts at the ~1 minute, 5 minutes, 15 minutes\nand 1 hour ahead of time horizons. Each model produces 225 guesses\nabout what the true value will be to form a probablity distribution.\n\n## Microprediction.org Prediction Bot\n\nA simple [Microprediction.org](http://microprediction.com) prediction\nrobot is included in [`src/bot/bot.ts`](https://github.com/rustyconover/nyiso-electricity-models/blob/master/src/bot/bot.ts) that submits the\npredictions from the models as part of the electicity prediction competition.\n\n## Examples\n\n### Utilize a model to generate predictions.\n\nThis example shows how to use a model to generate predictions:\n\n```js\nimport * as models from \"@rustyconover/nyiso-electricity-models\";\nimport moment from \"moment\";\n\nasync function exampleModelUsage() {\n  // Load a model that predicts the overall electicity load/demand\n  // for the entire state of New York an hour ahead.\n  //\n  // 12 forecast intervals ahead is an hour since each forecast\n  // interval is five minutes.\n  const model = models.getModel(\"electricity-load-nyiso-overall.json\", 12);\n  const target_time = moment.utc().format(\"YYYY-MM-DDTHH:mm:ss\");\n\n  // Obtain the weather information for the model.\n  const weather = await models.getWeatherForModels([model], target_time);\n\n  // Obtain the stream data for the model.\n  const stream_data = await models.getStreamValuesForModels(\n    [model],\n    target_time\n  );\n\n  // Obtain the regressors of the model.\n  const regressors = await model.regressors(\n    target_time,\n    weather,\n    stream_values\n  );\n\n  // Using the regressors retrieve the predictions.\n  const predicted_values = await model.predict(regressors);\n\n  // The 225 predicted values form a non-parameteric probablity distribution\n  // which express the model's prediction of the electricity demand\n  // an hour from the current time.\n\n  console.log(predicted_values);\n}\n\nexampleModelUsage().catch((e) =\u003e {\n  console.error(e);\n  process.exit(1);\n});\n```\n\n## Model Data Sources\n\nThe models use data from these sources:\n\n1. [High Resolution Rapid Refresh](https://rapidrefresh.noaa.gov/hrrr/) forecast products from NCEP/NOAA:\n\n   - Temperature\n   - Surface Pressure\n   - 2 Meter Dewpoint Temperature\n   - 2 Meter Relative Humidity\n   - 10 Meter U/V Wind Components\n   - Downward Short-Wave Radiation Flux\n   - Visible Beam Downward Solar Flux\n   - Visible Diffuse Downward Solar Flux\n   - Total Cloud Cover\n   - Low Cloud Cover\n   - High Cloud Cover\n   - Middle Cloud Cover\n\n2. Existing electicity demand forecasts from NYISO.\n\nThe models where trained the [continuous ranked probablity score](https://www.lokad.com/continuous-ranked-probability-score) used as the loss metric.\n\nAll of the code necessary to generate features, perform feature selection\nand train/test these models is [open source](https://github.com/rustyconover/microprediction-nyiso-electricity).\n\nThese models are released under the MIT license and will be updated\nfrom time to time.\n\nIf you have feedback email [rusty@conover.me](mailto:rusty@conover.me).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frustyconover%2Fnyiso-electricity-models","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frustyconover%2Fnyiso-electricity-models","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frustyconover%2Fnyiso-electricity-models/lists"}