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://api.alitiq.com/solar/pv_systems/add/"
payload = [
{
"location_id": "12",
"site_name": "test_2",
"latitude": 48.9,
"longitude": 10.3,
"installed_power": 320,
"installed_power_inverter": 300,
"azimuth": 180,
"tilt": 13,
"temp_factor": 0.033,
"mover": 1
},
{
"location_id": "12",
"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": 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://api.alitiq.com/solar/pv_systems/add/ \
--header 'Content-Type: application/json' \
--header 'x-api-key: {api-key}' \
--data '[
{
"location_id": "12",
"site_name": "test_2",
"latitude": 48.9,
"longitude": 10.3,
"installed_power": 320,
"installed_power_inverter": 300,
"azimuth": 180,
"tilt": 13,
"temp_factor": 0.033,
"mover": 0
},
{
"location_id": "12",
"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
}
]'
Note
After you have created your first or new pv system, it takes up to 6 hours to receive a first baseline forecast. Optimized forecast are available the next day in case you have provided measurement data from the system.
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?¶
Currently not, this feature is under development. Please delete
the system and re-configure it.
Support & Feedback 💬¶
- Contact Support: support@alitiq.com
🌟 Start forecasting smarter with alitiq today! 🌟