daily_energy_storage#

Parse CAISO Daily Energy Storage HTML reports.

Each report embeds chart series as JavaScript array literals assigned to named variables (for example tot_energy_rtd). The arrays contain numeric values only; they do not include timestamps. We align values to clock time by index from the report operating day start in Pacific time; see _interval_index.

Module Contents#

Functions#

build_storage_awards_fmm(→ pandas.DataFrame)

build_storage_awards_ifm(→ pandas.DataFrame)

build_storage_awards_rtd(→ pandas.DataFrame)

build_storage_energy_awards_ruc(→ pandas.DataFrame)

build_storage_energy_bids_fmm(→ pandas.DataFrame)

build_storage_energy_bids_ifm(→ pandas.DataFrame)

build_storage_soc_fmm(→ pandas.DataFrame)

build_storage_soc_hourly(→ pandas.DataFrame)

Hourly IFM and RUC SOC from tot_charge_ifm and tot_charge_ruc.

build_storage_soc_rtd(→ pandas.DataFrame)

load_daily_energy_storage_report(→ tuple[str, ...)

Attributes Summary#

Contents#

gridstatus.caiso.daily_energy_storage.BID_IFM_NEG_ORDER: list[tuple[str, str]] = [('bid_ifm_neg_ss', 'Self Schedule'), ('bid_ifm_neg_1', '[-$150,-$100]'), ('bid_ifm_neg_2',...[source]#
gridstatus.caiso.daily_energy_storage.BID_IFM_RANGE_ORDER: list[tuple[str, str]] = [('bid_ifm_pos_ss', 'Self Schedule'), ('bid_ifm_pos_1', '[-$150,-$100]'), ('bid_ifm_pos_2',...[source]#
gridstatus.caiso.daily_energy_storage.BID_RTPD_NEG_ORDER: list[tuple[str, str]] = [('bid_rtpd_neg_ss', 'Self Schedule'), ('bid_rtpd_neg_1', '[-$150,-$100]'), ('bid_rtpd_neg_2',...[source]#
gridstatus.caiso.daily_energy_storage.BID_RTPD_RANGE_ORDER: list[tuple[str, str]] = [('bid_rtpd_pos_ss', 'Self Schedule'), ('bid_rtpd_pos_1', '[-$150,-$100]'), ('bid_rtpd_pos_2',...[source]#
gridstatus.caiso.daily_energy_storage.build_storage_awards_fmm(html: str, report_start: pandas.Timestamp) pandas.DataFrame[source]#
gridstatus.caiso.daily_energy_storage.build_storage_awards_ifm(html: str, report_start: pandas.Timestamp) pandas.DataFrame[source]#
gridstatus.caiso.daily_energy_storage.build_storage_awards_rtd(html: str, report_start: pandas.Timestamp) pandas.DataFrame[source]#
gridstatus.caiso.daily_energy_storage.build_storage_energy_awards_ruc(html: str, report_start: pandas.Timestamp) pandas.DataFrame[source]#
gridstatus.caiso.daily_energy_storage.build_storage_energy_bids_fmm(html: str, report_start: pandas.Timestamp) pandas.DataFrame[source]#
gridstatus.caiso.daily_energy_storage.build_storage_energy_bids_ifm(html: str, report_start: pandas.Timestamp) pandas.DataFrame[source]#
gridstatus.caiso.daily_energy_storage.build_storage_soc_fmm(html: str, report_start: pandas.Timestamp) pandas.DataFrame[source]#
gridstatus.caiso.daily_energy_storage.build_storage_soc_hourly(html: str, report_start: pandas.Timestamp) pandas.DataFrame[source]#

Hourly IFM and RUC SOC from tot_charge_ifm and tot_charge_ruc.

The HTML arrays use a 5-minute index (typically 288 points) but IFM and RUC repeat one SOC per clock hour across twelve consecutive slots. One value per hour is taken (the first slot of each hour) and intervals use a one-hour frequency.

gridstatus.caiso.daily_energy_storage.build_storage_soc_rtd(html: str, report_start: pandas.Timestamp) pandas.DataFrame[source]#
gridstatus.caiso.daily_energy_storage.load_daily_energy_storage_report(date: str | pandas.Timestamp, tz: str, verbose: bool = False) tuple[str, pandas.Timestamp][source]#