#grid #electricity #api-bindings #sgip #emissions #california


Unofficial Rust bindings for the SIGP Signal API, providing real-time and forecast GHG emissions data for California's electric grid

2 releases

0.1.1 Mar 12, 2021
0.1.0 Mar 11, 2021

#503 in Science

MIT license

422 lines

Unofficial Rust bindings to the SGIP Signal API, which provides access to real-time and forecasted marginal Greenhouse Gas (GHG) emissions data for participants in California's Self Generation Incentive Program (SGIP).

More information is available on the SGIP Signal website:

Further details about SGIP itself can be found on the SGIP website. The SGIP program is implementing new GHG requirements, which are explained in the SGIP Handbook. This website provides data which will assist energy storage developers, operators, and others in implementing those rules.

The API reports GHG emissions data in the form of Marginal Operating Emissions Rates (MOERs), represented in this crate by the Moer type. Forecasted MOERs are represented by the Forecast type, whose Forecast::at method allows querying forecasted data. API calls are performed using the SgipSignal type, which represents an authenticated session with the API and automatically handles credential lifetimes and periodic reauthentication.

This crate currently supports the following subset of the API:

  • ☐ user registration (use a one-off curl command for now);
  • ☑ user authentication and session management, using the SgipSignal type;
  • ☑ current MOER data, using SgipSignal::moer;
  • ☑ historical MOER data, using SgipSignal::historic_moers;
  • ☑ current short-term (72-hour) MOER forecasts, using SgipSignal::forecast;
  • ☑ historical short-term (72-hour) MOER forecasts, using SgipSignal::historic_forecasts;
  • ☐ current long-term (1-month and 1-year) MOER forecasts;
  • ☐ historical long-term (1-month and 1-year) MOER forecasts;
  • ☐ rate limiting and backpressure;

This is an unofficial set of bindings, with no guarantees about maintenance or functional correctness.


~255K SLoC