Skip to main content

alitiq Forecasting Energy

alitiq-py , high performance, easy to use, ready for production python software development kit

Supported Python versions

Overview 🛠️

Welcome to alitiq's Forecasting Service SDK, a robust Python-based SDK that simplifies interaction with alitiq’s Solar, Wind and Load Forecast APIs. This SDK enables seamless data retrieval, measurements management, and forecasting for solar power plants, energy demand, and more. Built with flexibility and scalability in mind, it supports a range of features such as pushing measurements, retrieving forecasts, and managing locations.

Before you start using the SDK, you need to obtain an API key. For the engine / load API you will receive your key and relevant information from the alitiq Team. To obtain a key for the solar power forecasting API register here: Solar-APP

This is a work in progress. We will shortly add an extensive documentation with step by step guides to use our API with python.


Features ✨

  • Solar Power Plant Management:
    Manage PV system configurations and retrieve forecasts for your solar power installations.
  • WindPark Management:
    Manage WindPark configurations and retrieve forecasts for your portfolio.
  • Load Forecasting by alitiq Engine:
    Fetch and manage energy load forecasts for heat, gas, and electricity demand.
  • Pushing and Retrieving Measurements:
    Push new measurement data to the API and inspect historical measurement data.
  • Robust Validation:
    Powered by Pydantic, ensuring data integrity for all API interactions.

Installation 📦

With pip:

pip install alitiq

Or check out locally:

  1. Clone the repository:

    git clone https://github.com/alitiq/alitiq-py.git
    cd alitiq-py
    
  2. Install dependencies:

    pip install -r requirements.txt
    
  3. (Optional) Install the SDK locally:

    pip install .
    

Quickstart 🚀

Example shows how to add a new Solar PV power plant, retrieve most recent forecast and push measurements for a given location.

from datetime import datetime
from alitiq import alitiqSolarAPI, SolarPowerPlantModel, PvMeasurementForm

# Initialize the API client
solar_api = alitiqSolarAPI(api_key="your-api-key")

# Create a solar power plant location
plant = SolarPowerPlantModel(
    site_name="My Solar Plant",
    location_id="SP123",
    latitude=48.160170,
    longitude=10.55907,
    installed_power=500.0,
    installed_power_inverter=480.0,
    azimuth=180.0,
    tilt=25.0,
    temp_factor=0.03
)

response = solar_api.create_location(plant)
print("Location created:", response)

# Retrieve a forecast ( after 1-6 hours after creation available)
forecast = solar_api.get_forecast(location_id="SP123")
print(forecast)

# Post measurements 
pv_measurements = [
    PvMeasurementForm(
        location_id="SP123",
        dt=datetime(2024, 6, 10, 10).isoformat(),
        power=120.5,
        power_measure="kW",
        timezone="UTC",
        interval_in_minutes=15,
    ),
    PvMeasurementForm(
        location_id="SP123",
        dt=datetime(2024, 6, 10, 10, 15).isoformat(),
        power=90.8,
        power_measure="kW",
        timezone="UTC",
        interval_in_minutes=15,
    ),
    PvMeasurementForm(
        location_id="SP123",
        dt=datetime(2024, 6, 10, 10, 30).isoformat(),
        power=150.0,
        power_measure="kW",
        timezone="UTC",
        interval_in_minutes=15,
    ),
]

response = solar_api.post_measurements(pv_measurements)
print(response)

Setup a load location

from alitiq import alitiqLoadAPI, LoadLocationForm
from alitiq.enumerations.services import Services

# Example
api = alitiqLoadAPI(api_key="your-key")

location = LoadLocationForm(
    site_name="HQ Campus",
    location_id="HQ-001",
    latitude=52.52,
    longitude=13.405,
    service=Services.ELECTRICITY_LOAD.value,
)

resp = api.create_location(location)
print(resp)

Please go to our docs for detailed information alitiq-Docs


Project Structure 🏗️

alitiq/
│── enumerations/
│   │── __init__.py
│   │── forecast_models.py
│   │── services.py
│
│── models/
│   │── __init__.py
│   │── load_forecast.py
│   │── solar_power_forecast.py
│   │── wind_power_forecast.py
│
│── __init__.py
│── base.py
│── load_forecast.py
│── solar_power_forecast.py
│── wind_power_forecast.py

Key Modules 📚

Solar Forecasting Module (solar_power_forecast.py)

Manage PV systems and retrieve solar power forecasts. Key methods:

  • create_location: Add new PV system configurations.
  • list_locations: List current portfolio
  • delete_location: Deletes one location from portfolio
  • get_forecast: Retrieve solar power forecasts for a specific location.
  • get_forecast_portfolio: Retrieve solar power forecasts for the whole portfolio.
  • post_measurements: Submit real-time measurements for your solar plant.
  • get_measurements: Retrieve historical data for a location.

Wind Forecasting Module (wind_power_forecast.py)

Manage WindParks and retrieve wind power forecasts. Key methods:

  • create_location: Add new WindPark configurations.
  • list_locations: List current portfolio
  • delete_location: Deletes one location from portfolio
  • get_forecast: Retrieve wind power forecasts for a specific location.
  • get_forecast_portfolio: Retrieve wind power forecasts for the whole portfolio.
  • post_measurements: Submit real-time measurements for your WindPark.
  • get_measurements: Retrieve historical data for a location.

Load Forecasting Module (load_forecast.py)

Interact with alitiq's load forecast API for heat, gas, and electricity. Key methods:

  • create_location: Add new load forecast asset/location.
  • list_locations: List your load forecasting portfolio.
  • get_measurements: Retrieve historical data for a location.
  • post_measurements: Push new measurement data.
  • get_forecast: Fetch load forecasts for your configured location.

Contributing 🤝

We welcome contributions! To contribute:

  1. Fork the repository.
  2. Create a new branch:
    git checkout -b feature/new-feature
    
  3. Commit your changes:
    git commit -m "Add a new feature"
    
  4. Push to your branch and submit a pull request.

License 📜

MIT License, see attached LICENSE


Developer Notes

Run python3 -m build to build the package and then upload with twine: twine upload -r pypi dist/*


Support & Contact 📧

For any questions or issues, please contact support@alitiq.com.

🌟 Happy Forecasting! 🌟

Metadata

Release files for alitiq 2026.8.10

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for alitiq 2026.8.10
File Size Uploaded
alitiq-2026.8.10.tar.gz 16.6 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for alitiq 2026.8.10
File Interpreter ABI Platform
alitiq-2026.8.10-py3-none-any.whl Python 3 none any Details

Total release size: 38.1 kB

Release files / alitiq-2026.8.10.tar.gz

Download URL alitiq-2026.8.10.tar.gz
Size 16.6 kB
Tags Source
SHA-256 checksum
How to use checksums
aa8d0adfa65d750023281f5def4558600f64686f148a9d77dd6211ba2929e308
BLAKE2b-256 checksum
How to use checksums
65dd785a0f5e84bb1d1d6024fa27166160c1906d4a8d7ac6602b715938a8daca
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.0.0 CPython/3.12.3

Release files / alitiq-2026.8.10-py3-none-any.whl

Download URL alitiq-2026.8.10-py3-none-any.whl
Size 21.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
93ecb50a89925b461727bcc5bbecd58b64894d7558ea937f8b205a6a9e36702d
BLAKE2b-256 checksum
How to use checksums
7e6389f46c6f4995664cefcce4b41efe0c433403f408931e09a279ff61bc20f7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.0.0 CPython/3.12.3
Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page