Solar-PV power forecasting locations¶
Welcome to the alitiq Solar Power Forecasting API! This guide explains how to create a location for a PV power plant, including subsystems for each unique combination of azimuth and tilt.
Key Concepts 📚¶
In the alitiq Solar API, a PV power plant is represented as a location with one or more subsystems. Each subsystem corresponds to a unique configuration of azimuth and tilt of the PV modules. By defining these subsystems, the API ensures precise forecasting for the entire power plant.
Subsystems¶
- A subsystem is defined by:
- Azimuth: Orientation of the module relative to true north (in degrees, South 180°).
- Tilt: Angle of the module from the horizontal plane (in degrees).
- Power Capacity: Installed capacity of the modules in the subsystem (in kW).
- installed_power: The capacity of all modules per subsystem in the power plant.
-
inverter_power: The capacity of the inverters per subsystem in the power plant.
-
Each unique combination of azimuth and tilt requires a separate subsystem for accurate forecasting.
Add a new PV systems to your portfolio 🚀¶
To add a new location to your portfolio, you have to use the pv_systems/add
endpoint.
import requests
url = "https://solar.alitiq.com/pv_systems/add"
payload = [
{
"location_id": 12,
"site_name": "test_2",
"latitude": 48.9,
"longitude": 10.3,
"installed_power": 320,
"installed_power_inverter": 300,
"orientation": 180,
"tilt": 13,
"temp_factor": 0.033,
"mover": 1
},
{
"location_id": 12,
"site_name": "test_2",
"latitude": 48.9,
"longitude": 10.3,
"power": 320,
"installed_power_inverter": 300,
"azimuth": 180,
"tilt": 15,
"temp_factor": 0.033,
"mover": 1
}
]
headers = {"Content-Type": "application/json", "x-api-key": {api-key}}
response = requests.request("POST", url, json=payload, headers=headers)
print(response.text)
from alitiq import alitiqSolarAPI, SolarPowerPlantModel
# Initialize the API client
solar_api = alitiqSolarAPI(api_key="your-api-key")
# Define the PV power plant with subsystems
plant = SolarPowerPlantModel(
site_name="My Solar Plant",
location_id="SP123",
latitude=48.160170,
longitude=10.55907,
installed_power=1000.0,
installed_power_inverter=950.0,
azimuth=180.0,
tilt=25.0,
)
# Create the location
response = solar_api.create_location(plant)
print("Location created:", response)
curl --request POST \
--url https://solar.alitiq.com/pv_systems/add \
--header 'Content-Type: application/json' \
--header 'x-api-key: {api-key}' \
--data '[
{
"site_name": "test_2",
"latitude": 48.9,
"installed_power": 10.3,
"power": 320,
"installed_power_inverter": 300,
"azimuth": 180,
"tilt": 13,
"temp_factor": 0.033,
"mover": 0
},
{
"site_name": "test_2",
"latitude": 48.9,
"longitude": 10.3,
"installed_power": 320,
"installed_power_inverter": 300,
"azimuth": 180,
"tilt": 15,
"temp_factor": 0.033,
"mover": 0
}
]'
Inspect your portfolio¶
After setting up your portfolio or to check out existing locations, you can use the pv_systems/list
endpoint.
Example response json:
{
"columns": [
"location_id",
"altitude",
"latitude",
"longitude",
"site_name",
"zip_code",
"country",
"do_backtracking",
"row_distance",
"tso_area",
"subsystem_id",
"installed_power",
"installed_power_inverter",
"temp_factor",
"azimuth",
"tilt",
"mover",
"height",
"table_length",
"max_rotation_angle"
],
"index": [
0,
1,
2,
3
],
"data": [
[
"1",
126.95,
50.06,
8.83,
"Obertshausen",
"63179",
"DE",
false,
null,
"Amprion",
5599,
709.3,
636.0,
0.0,
195.0,
10.0,
1,
null,
null,
null
],
[
"1",
126.95,
50.06,
8.83,
"Obertshausen",
"63179",
"DE",
false,
null,
"Amprion",
5759,
999.38,
480.0,
0.0,
180.0,
15.0,
1,
null,
null,
null
],
[
"4507",
557.75,
48.9,
10.3,
"test_2",
null,
null,
null,
null,
null,
5796,
320.0,
300.0,
0.0,
50.0,
15.0,
1,
null,
null,
null
]
]
}
In the response of your portfolio you might find additional information that you have not defined e.g. the TSO-Area or a ZIP Code. These information are defined by alitiq.
In case you use the html- Response of the API the systems will be shown in a table like this:
Delete system from your portfolio¶
In case you want to delete a pv-system from your portfolio, you can simply use a POST request to the endpoint pv_systems/delete
it. Please use your individually defined location_id to delete the system:
FAQs ❓¶
Which temp_factor should I use?¶
The temperature factor (temp_factor) accounts for the temperature-related efficiency loss of PV systems. Use the appropriate value based on the type of mounting for accurate forecasting.
System Type | Description | Temp Factor (temp_factor) |
---|---|---|
Free-Mounted Systems | Modules mounted on open frames with good ventilation | 0.0033 |
Roof-Mounted Systems | Modules mounted on roofs with moderate ventilation | 0.004 |
Roof-Integrated Systems | Modules integrated into the roof with limited ventilation | 0.005 |
What if my power plant has only one subsystem?¶
You can omit the subsystems
field and define the azimuth, tilt, and installed_power at the plant level.
Can I update the location later?¶
Yes, you can use the update_location
method to modify the configuration of an existing location.
Support & Feedback 💬¶
- Contact Support: support@alitiq.com
- Documentation: Solar Forecasting Docs (coming soon)
🌟 Start forecasting smarter with alitiq today! 🌟