Install
pip install solcast
# Optional: pandas for .to_pandas()
pip install solcast pandas
# Optional: notebooks and extra tooling
pip install solcast[all]
All optional extras
pip install solcast[all]
API key
# Recommended: set SOLCAST_API_KEY in your environment
export SOLCAST_API_KEY="your-api-key"
Live radiation & weather
from solcast import live
res = live.radiation_and_weather(
latitude=-33.8567,
longitude=151.2152,
output_parameters=["air_temp", "ghi"],
)
data = res.to_dict()
# df = res.to_pandas() # requires pandas
Response helpers
data = res.to_dict()
# Timeseries as a DataFrame (requires pandas)
df = res.to_pandas()
Unmetered location
from solcast import forecast
from solcast.unmetered_locations import UNMETERED_LOCATIONS
sydney = UNMETERED_LOCATIONS["Sydney Opera House"]
res = forecast.rooftop_pv_power(
latitude=sydney["latitude"],
longitude=sydney["longitude"],
period="PT5M",
capacity=5,
tilt=22,
output_parameters="pv_power_rooftop",
)
solcast.live
from solcast import live
res = live.radiation_and_weather(
latitude=-33.8567,
longitude=151.2152,
output_parameters="dni,ghi",
)
df = res.to_pandas() # requires pandassolcast.forecast
from solcast import forecast
res = forecast.radiation_and_weather(
latitude=-33.8567,
longitude=151.2152,
output_parameters="air_temp",
)
res.to_pandas().head()solcast.historic
from solcast import historic
res = historic.radiation_and_weather(
latitude=-33.8567,
longitude=151.2152,
start="2022-06-01T06:00",
duration="P1D",
)
res.to_pandas().head()solcast.tmy
from solcast import tmy
res = tmy.rooftop_pv_power(
latitude=-33.8567,
longitude=151.2152,
capacity=3,
)
res.to_pandas().head()solcast.aggregations
from solcast import aggregations
res = aggregations.forecast(
collection_id="country_total",
aggregation_id="it_total",
output_parameters=["percentage", "pv_estimate"],
)
res.to_pandas().head()solcast.pv_power_sites
from solcast import pv_power_sites
# List sites to find a resource_id, then fetch metadata
res = pv_power_sites.get_pv_power_site("ba75-e17a-7374-95ed")
res.to_dict()