-
Notifications
You must be signed in to change notification settings - Fork 4
/
pvlive_api_demo.py
130 lines (121 loc) · 6.93 KB
/
pvlive_api_demo.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
"""
Demo script for the PVLive-API library.
See https://github.com/SheffieldSolar/PV_Live-API for installation instructions.
- Jamie Taylor <[email protected]>
- Ethan Jones <[email protected]>
- First Authored: 2018-06-04
- Updated: 2020-10-20 to return Pandas dataframe object
"""
from datetime import datetime, date
import pytz
from pvlive_api import PVLive
def main():
"""
Demo API's functionality.
"""
pvlive = PVLive()
print("---------- NATIONAL ----------")
print("\nLatest: ")
print(pvlive.latest())
print("\nAt 2019-03-18 12:00: ")
print(pvlive.at_time(datetime(2019, 3, 18, 12, 0, tzinfo=pytz.utc)))
print("\nAt 2019-03-18 12:00 as a Pandas DataFrame object: ")
print(pvlive.at_time(datetime(2019, 3, 18, 12, 0, tzinfo=pytz.utc), dataframe=True))
print("\nAt 2019-03-18 12:35 (with period=30): ")
print(pvlive.at_time(datetime(2019, 3, 18, 12, 35, tzinfo=pytz.utc)))
print("\nBetween 2019-03-18 10:30 and 2019-03-18 14:00: ")
print(pvlive.between(datetime(2019, 3, 18, 10, 30, tzinfo=pytz.utc),
datetime(2019, 3, 18, 14, 0, tzinfo=pytz.utc)))
print("\nBetween 2019-03-18 10:30 and 2019-03-18 14:00 as a Pandas DataFrame object: ")
print(pvlive.between(datetime(2019, 3, 18, 10, 30, tzinfo=pytz.utc),
datetime(2019, 3, 18, 14, 0, tzinfo=pytz.utc), dataframe=True))
print("\nPeak on 2019-03-18: ")
print(pvlive.day_peak(date(2019, 3, 18)))
print("\nPeak on 2019-03-18 as a Pandas DataFrame object: ")
print(pvlive.day_peak(date(2019, 3, 18), dataframe=True))
print("\nCumulative generation on 2019-03-18: ")
print(pvlive.day_energy(date(2019, 3, 18)))
print("\n\n---------- NATIONAL 5 MIN----------")
print("\nLatest: ")
print(pvlive.latest(period=5))
print("\nAt 2023-12-01 12:05: ")
print(pvlive.at_time(datetime(2023, 12, 1, 12, 5, tzinfo=pytz.utc), period=5))
print("\nAt 2023-12-01 12:05 as a Pandas DataFrame object: ")
print(pvlive.at_time(datetime(2023, 12, 1, 12, 5, tzinfo=pytz.utc), period=5, dataframe=True))
print("\nBetween 2023-12-01 10:30 and 2023-12-01 14:00: ")
print(pvlive.between(datetime(2023, 12, 1, 10, 30, tzinfo=pytz.utc),
datetime(2023, 12, 1, 14, 0, tzinfo=pytz.utc), period=5))
print("\nBetween 2023-12-01 10:30 and 2023-12-01 14:00 as a Pandas DataFrame object: ")
print(pvlive.between(datetime(2023, 12, 1, 10, 30, tzinfo=pytz.utc),
datetime(2023, 12, 1, 14, 0, tzinfo=pytz.utc), period=5, dataframe=True))
print("\nPeak on 2023-12-01: ")
print(pvlive.day_peak(date(2023, 12, 1), period=5))
print("\nPeak on 2023-12-01 as a Pandas DataFrame object: ")
print(pvlive.day_peak(date(2023, 12, 1), period=5, dataframe=True))
print("\n\n---------- REGIONAL - PES REGION 23 ----------")
print("\nLatest PES region 23: ")
print(pvlive.latest(entity_type="pes", entity_id=23))
print("\nLatest PES region 23 as a Pandas DataFrame object: ")
print(pvlive.latest(entity_type="pes", entity_id=23, dataframe=True))
print("\nPES region 23 at 2019-03-18 12:00: ")
print(pvlive.at_time(datetime(2019, 3, 18, 12, 0, tzinfo=pytz.utc), entity_type="pes",
entity_id=23))
print("\nPES region 23 at 2019-03-18 12:00 as a Pandas DataFrame object: ")
print(pvlive.at_time(datetime(2019, 3, 18, 12, 0, tzinfo=pytz.utc), entity_type="pes",
entity_id=23, dataframe=True))
print("\nPES region 23 between 2019-03-18 10:30 and 2019-03-18 14:00: ")
print(pvlive.between(datetime(2019, 3, 18, 10, 30, tzinfo=pytz.utc),
datetime(2019, 3, 18, 14, 0, tzinfo=pytz.utc), entity_type="pes",
entity_id=23))
print("\nPES region 23 between 2019-03-18 10:30 and 2019-03-18 14:00 as a Pandas DataFrame "
"object: ")
print(pvlive.between(datetime(2019, 3, 18, 10, 30, tzinfo=pytz.utc),
datetime(2019, 3, 18, 14, 0, tzinfo=pytz.utc), entity_type="pes",
entity_id=23, dataframe=True))
print("\nPES region 23 peak on 2019-03-18: ")
print(pvlive.day_peak(date(2019, 3, 18), entity_type="pes", entity_id=23))
print("\nPES region 23 peak on 2019-03-18 as a Pandas DataFrame object: ")
print(pvlive.day_peak(date(2019, 3, 18), entity_type="pes", entity_id=23, dataframe=True))
print("\nPES region 23 cumulative generation on 2019-03-18: ")
print(pvlive.day_energy(date(2019, 3, 18), entity_type="pes", entity_id=23))
print("\n\n---------- REGIONAL - GSP ID 120 ----------")
print("\nLatest GSP ID 120: ")
print(pvlive.latest(entity_type="gsp", entity_id=120))
print("\nLatest GSP ID 120 as a Pandas DataFrame object: ")
print(pvlive.latest(entity_type="gsp", entity_id=120, dataframe=True))
print("\nGSP ID 120 at 2019-03-18 12:00: ")
print(pvlive.at_time(datetime(2019, 3, 18, 12, 0, tzinfo=pytz.utc), entity_type="gsp",
entity_id=120))
print("\nGSP ID 120 at 2019-03-18 12:00 as a Pandas DataFrame object: ")
print(pvlive.at_time(datetime(2019, 3, 18, 12, 0, tzinfo=pytz.utc), entity_type="gsp",
entity_id=120, dataframe=True))
print("\nGSP ID 120 between 2019-03-18 10:30 and 2019-03-18 14:00: ")
print(pvlive.between(datetime(2019, 3, 18, 10, 30, tzinfo=pytz.utc),
datetime(2019, 3, 18, 14, 0, tzinfo=pytz.utc), entity_type="gsp",
entity_id=120))
print("\nGSP ID 120 between 2019-03-18 10:30 and 2019-03-18 14:00 as a Pandas DataFrame "
"object: ")
print(pvlive.between(datetime(2019, 3, 18, 10, 30, tzinfo=pytz.utc),
datetime(2019, 3, 18, 14, 0, tzinfo=pytz.utc), entity_type="gsp",
entity_id=120, dataframe=True))
print("\nGSP ID 120 peak on 2019-03-18: ")
print(pvlive.day_peak(date(2019, 3, 18), entity_type="gsp", entity_id=120))
print("\nGSP ID 120 peak on 2019-03-18 as a Pandas DataFrame object: ")
print(pvlive.day_peak(date(2019, 3, 18), entity_type="gsp", entity_id=120, dataframe=True))
print("\nGSP ID 120 cumulative generation on 2019-03-18: ")
print(pvlive.day_energy(date(2019, 3, 18), entity_type="gsp", entity_id=120))
print("\n\n---------- PV deployment ----------")
print("\nLatest by GSP: ")
print(pvlive.deployment(region="gsp"))
print("\nLatest by LLSOA: ")
print(pvlive.deployment(region="llsoa"))
print("\nHistorical by GSP: ")
print(pvlive.deployment(region="gsp", include_history=True))
print("\nHistorical by GSP and system size: ")
print(pvlive.deployment(region="gsp", include_history=True, by_system_size=True))
print("\nLatest by GSP, using previous release: ")
print(pvlive.deployment(region="gsp", release=1))
print("\nLatest by GSP, using specific release (20230404): ")
print(pvlive.deployment(region="gsp", release="20230404"))
if __name__ == "__main__":
main()