gridstatus icon indicating copy to clipboard operation
gridstatus copied to clipboard

Add ERCOT Historical Load

Open gsheni opened this issue 2 years ago • 4 comments

  • Fixes https://github.com/kmax12/gridstatus/issues/187

gsheni avatar Mar 28 '23 02:03 gsheni

are you mixing up "load" and "load forecast" in this PR?

also, i think just hardcoding the ~20 odd urls is better than using beautiful soup to scrape. much easier to maintain

kmax12 avatar Mar 31 '23 14:03 kmax12

3 Days Ago

import gridstatus
import pandas as pd 

ercot = gridstatus.Ercot()
default_timezone = "US/Central"
today = pd.Timestamp.now(tz=default_timezone).date()
three_days_ago = today - pd.Timedelta(days=3)

df = ercot.get_load(three_days_ago)
                        Time            Interval Start              Interval End      Load
0  2023-04-11 00:00:00-05:00 2023-04-11 00:00:00-05:00 2023-04-11 01:00:00-05:00  37807.89
1  2023-04-11 01:00:00-05:00 2023-04-11 01:00:00-05:00 2023-04-11 02:00:00-05:00  36228.48
2  2023-04-11 02:00:00-05:00 2023-04-11 02:00:00-05:00 2023-04-11 03:00:00-05:00  35333.05
3  2023-04-11 03:00:00-05:00 2023-04-11 03:00:00-05:00 2023-04-11 04:00:00-05:00  34901.97
4  2023-04-11 04:00:00-05:00 2023-04-11 04:00:00-05:00 2023-04-11 05:00:00-05:00  35387.89
5  2023-04-11 05:00:00-05:00 2023-04-11 05:00:00-05:00 2023-04-11 06:00:00-05:00  37093.27
6  2023-04-11 06:00:00-05:00 2023-04-11 06:00:00-05:00 2023-04-11 07:00:00-05:00  39820.48
7  2023-04-11 07:00:00-05:00 2023-04-11 07:00:00-05:00 2023-04-11 08:00:00-05:00  41033.60
8  2023-04-11 08:00:00-05:00 2023-04-11 08:00:00-05:00 2023-04-11 09:00:00-05:00  41292.06
9  2023-04-11 09:00:00-05:00 2023-04-11 09:00:00-05:00 2023-04-11 10:00:00-05:00  41766.29
10 2023-04-11 10:00:00-05:00 2023-04-11 10:00:00-05:00 2023-04-11 11:00:00-05:00  42363.85
11 2023-04-11 11:00:00-05:00 2023-04-11 11:00:00-05:00 2023-04-11 12:00:00-05:00  42989.00
12 2023-04-11 12:00:00-05:00 2023-04-11 12:00:00-05:00 2023-04-11 13:00:00-05:00  43858.97
13 2023-04-11 13:00:00-05:00 2023-04-11 13:00:00-05:00 2023-04-11 14:00:00-05:00  44852.15
14 2023-04-11 14:00:00-05:00 2023-04-11 14:00:00-05:00 2023-04-11 15:00:00-05:00  45574.68
15 2023-04-11 15:00:00-05:00 2023-04-11 15:00:00-05:00 2023-04-11 16:00:00-05:00  46310.64
16 2023-04-11 16:00:00-05:00 2023-04-11 16:00:00-05:00 2023-04-11 17:00:00-05:00  47437.53
17 2023-04-11 17:00:00-05:00 2023-04-11 17:00:00-05:00 2023-04-11 18:00:00-05:00  47967.48
18 2023-04-11 18:00:00-05:00 2023-04-11 18:00:00-05:00 2023-04-11 19:00:00-05:00  47791.10
19 2023-04-11 19:00:00-05:00 2023-04-11 19:00:00-05:00 2023-04-11 20:00:00-05:00  47223.20
20 2023-04-11 20:00:00-05:00 2023-04-11 20:00:00-05:00 2023-04-11 21:00:00-05:00  47315.22
21 2023-04-11 21:00:00-05:00 2023-04-11 21:00:00-05:00 2023-04-11 22:00:00-05:00  46148.75
22 2023-04-11 22:00:00-05:00 2023-04-11 22:00:00-05:00 2023-04-11 23:00:00-05:00  43443.81
23 2023-04-11 23:00:00-05:00 2023-04-11 23:00:00-05:00 2023-04-12 00:00:00-05:00  40548.36

gsheni avatar Apr 14 '23 19:04 gsheni

Specific Historical Date

import gridstatus
import pandas as pd 

ercot = gridstatus.Ercot()
datetime = pd.Timestamp(2005, 1, 1).tz_localize("US/Central")

df = ercot.get_load(datetime)
                               Time                   Interval Start                     Interval End          Load
0  2005-01-01 00:00:00.003000-06:00 2005-01-01 00:00:00.003000-06:00 2005-01-01 01:00:00.003000-06:00  23715.488663
1  2005-01-01 00:59:59.997000-06:00 2005-01-01 00:59:59.997000-06:00 2005-01-01 01:59:59.997000-06:00  22823.712923
2         2005-01-01 02:00:00-06:00        2005-01-01 02:00:00-06:00        2005-01-01 03:00:00-06:00  21882.924807
3  2005-01-01 03:00:00.003000-06:00 2005-01-01 03:00:00.003000-06:00 2005-01-01 04:00:00.003000-06:00  21229.184273
4  2005-01-01 03:59:59.997000-06:00 2005-01-01 03:59:59.997000-06:00 2005-01-01 04:59:59.997000-06:00  20940.912981
5         2005-01-01 05:00:00-06:00        2005-01-01 05:00:00-06:00        2005-01-01 06:00:00-06:00  20993.581538
6  2005-01-01 06:00:00.003000-06:00 2005-01-01 06:00:00.003000-06:00 2005-01-01 07:00:00.003000-06:00  21419.440432
7  2005-01-01 06:59:59.997000-06:00 2005-01-01 06:59:59.997000-06:00 2005-01-01 07:59:59.997000-06:00  21736.141618
8         2005-01-01 08:00:00-06:00        2005-01-01 08:00:00-06:00        2005-01-01 09:00:00-06:00  22333.858100
9  2005-01-01 09:00:00.003000-06:00 2005-01-01 09:00:00.003000-06:00 2005-01-01 10:00:00.003000-06:00  23730.170219
10 2005-01-01 09:59:59.997000-06:00 2005-01-01 09:59:59.997000-06:00 2005-01-01 10:59:59.997000-06:00  25096.510457
11        2005-01-01 11:00:00-06:00        2005-01-01 11:00:00-06:00        2005-01-01 12:00:00-06:00  26013.733199
12 2005-01-01 12:00:00.003000-06:00 2005-01-01 12:00:00.003000-06:00 2005-01-01 13:00:00.003000-06:00  26424.790673
13 2005-01-01 12:59:59.997000-06:00 2005-01-01 12:59:59.997000-06:00 2005-01-01 13:59:59.997000-06:00  26428.374452
14        2005-01-01 14:00:00-06:00        2005-01-01 14:00:00-06:00        2005-01-01 15:00:00-06:00  26217.727104
15 2005-01-01 15:00:00.003000-06:00 2005-01-01 15:00:00.003000-06:00 2005-01-01 16:00:00.003000-06:00  26057.562752
16 2005-01-01 15:59:59.997000-06:00 2005-01-01 15:59:59.997000-06:00 2005-01-01 16:59:59.997000-06:00  25997.352589
17        2005-01-01 17:00:00-06:00        2005-01-01 17:00:00-06:00        2005-01-01 18:00:00-06:00  26990.367724
18 2005-01-01 18:00:00.003000-06:00 2005-01-01 18:00:00.003000-06:00 2005-01-01 19:00:00.003000-06:00  28637.089643
19 2005-01-01 18:59:59.997000-06:00 2005-01-01 18:59:59.997000-06:00 2005-01-01 19:59:59.997000-06:00  28420.330687
20        2005-01-01 20:00:00-06:00        2005-01-01 20:00:00-06:00        2005-01-01 21:00:00-06:00  28099.391850
21 2005-01-01 21:00:00.003000-06:00 2005-01-01 21:00:00.003000-06:00 2005-01-01 22:00:00.003000-06:00  27215.927018
22 2005-01-01 21:59:59.997000-06:00 2005-01-01 21:59:59.997000-06:00 2005-01-01 22:59:59.997000-06:00  26149.984178
23        2005-01-01 23:00:00-06:00        2005-01-01 23:00:00-06:00        2005-01-02 00:00:00-06:00  24531.124390

gsheni avatar Apr 14 '23 19:04 gsheni

Historical Start and End Date

import gridstatus
import pandas as pd 

ercot = gridstatus.Ercot()

start_dt = pd.Timestamp(2005, 3, 1).tz_localize("US/Central")
end_dt = pd.Timestamp(2005, 4, 30).tz_localize("US/Central")
df = ercot.get_load(start_dt.date(), end=end_dt.date())
                                 Time                   Interval Start                     Interval End          Load
0    2005-03-01 00:00:00.003000-06:00 2005-03-01 00:00:00.003000-06:00 2005-03-01 01:00:00.003000-06:00  24490.051274
1    2005-03-01 00:59:59.997000-06:00 2005-03-01 00:59:59.997000-06:00 2005-03-01 01:59:59.997000-06:00  24108.925989
2           2005-03-01 02:00:00-06:00        2005-03-01 02:00:00-06:00        2005-03-01 03:00:00-06:00  24000.468123
3    2005-03-01 03:00:00.003000-06:00 2005-03-01 03:00:00.003000-06:00 2005-03-01 04:00:00.003000-06:00  24307.817046
4    2005-03-01 03:59:59.997000-06:00 2005-03-01 03:59:59.997000-06:00 2005-03-01 04:59:59.997000-06:00  25182.107938
...                               ...                              ...                              ...           ...
1458 2005-04-30 18:59:59.997000-05:00 2005-04-30 18:59:59.997000-05:00 2005-04-30 19:59:59.997000-05:00  26868.286353
1459        2005-04-30 20:00:00-05:00        2005-04-30 20:00:00-05:00        2005-04-30 21:00:00-05:00  27917.457468
1460 2005-04-30 21:00:00.003000-05:00 2005-04-30 21:00:00.003000-05:00 2005-04-30 22:00:00.003000-05:00  27759.160948
1461 2005-04-30 21:59:59.997000-05:00 2005-04-30 21:59:59.997000-05:00 2005-04-30 22:59:59.997000-05:00  26336.542658
1462        2005-04-30 23:00:00-05:00        2005-04-30 23:00:00-05:00        2005-05-01 00:00:00-05:00  24468.255670

[1463 rows x 4 columns]

gsheni avatar Apr 14 '23 19:04 gsheni