alitiq


Namealitiq JSON
Version 2025.1.2 PyPI version JSON
download
home_pageNone
Summaryalitiq python SDK
upload_time2025-01-02 05:59:44
maintainerNone
docs_urlNone
authorDaniel Lassahn | alitiq GmbH
requires_pythonNone
licenseIP belongs to alitiq GmbH
keywords energy forecasting solar pv demand prediction wind windpower solarpower power powerprediction
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            
<p align="center">
  <a href="https://www.alitiq.com"><img src="https://alitiq.com/wp-content/uploads/2022/08/Logo-1.png" alt="alitiq Forecasting Energy"></a>
</p>
<p align="center">
    <em>alitiq-py , high performance, easy to use, ready for production python software development kit </em>
</p>
<p align="center">
<a href="" target="_blank">
    <img src="https://img.shields.io/pypi/pyversions/fastapi.svg?color=%2334D058" alt="Supported Python versions">
</a>
</p>

## Overview πŸ› οΈ
Welcome to **alitiq's Forecasting Service SDK**, a robust Python-based SDK that simplifies interaction with alitiq’s Solar, and Engine (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](https://solar-app.alitiq.com)

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.  
- **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: 
```bash
pip install alitiq
```

Or check out locally:
1. Clone the repository:  
   ```bash
   git clone https://github.com/alitiq/forecasting-sdk.git
   cd forecasting-sdk
   ```
2. Install dependencies:  
   ```bash
   pip install -r requirements.txt
   ```

3. (Optional) Install the SDK locally:  
   ```bash
   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. 
```python
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,
)

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)

```
Please note this docs for setting up your PV system locations: [How to setup PV systems at alitiq](https://makandracards.com/alitiq/621166-setup-pv-system-solar-power-forecast-alitiq/read)

---

## Project Structure πŸ—οΈ  

```plaintext
forecasting-sdk/
β”œβ”€β”€ alitiq/
β”‚   β”œβ”€β”€ base.py              # Base class for interacting with APIs
β”‚   β”œβ”€β”€ solar_api.py         # Solar forecasting service SDK
β”‚   β”œβ”€β”€ load_api.py          # Load forecasting service SDK
β”‚   └── enumerations/        # Enumerations for services and forecasting models
β”œβ”€β”€ models/
β”‚   β”œβ”€β”€ solar.py             # Pydantic models for solar APIs
β”‚   └── load_forecast.py     # Pydantic models for load APIs
β”œβ”€β”€ tests/                   # Unit tests for the SDK
└── README.md                # Project documentation
```

---

## 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.  
- `push_measurements`: Submit real-time measurements for your solar plant.  
- `get_measurements`: Retrieve historical data for a location.  

### Load Forecasting Module (`demand_forecast.py`)  
Interact with alitiq's load forecast API for heat, gas, and electricity. Key methods:  
- `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:  
   ```bash
   git checkout -b feature/new-feature
   ```
3. Commit your changes:  
   ```bash
   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](mailto:support@alitiq.com).  

🌟 **Happy Forecasting!** 🌟

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "alitiq",
    "maintainer": null,
    "docs_url": null,
    "requires_python": null,
    "maintainer_email": null,
    "keywords": "energy, forecasting, solar, pv, demand, prediction, wind, windpower, solarpower, power, powerprediction",
    "author": "Daniel Lassahn | alitiq GmbH",
    "author_email": "info@alitiq.com",
    "download_url": "https://files.pythonhosted.org/packages/27/8d/51ebf717b9fb5ce50031349d6d182d1438c4c0196dbb6cbef91b7b45698b/alitiq-2025.1.2.tar.gz",
    "platform": null,
    "description": "\n<p align=\"center\">\n  <a href=\"https://www.alitiq.com\"><img src=\"https://alitiq.com/wp-content/uploads/2022/08/Logo-1.png\" alt=\"alitiq Forecasting Energy\"></a>\n</p>\n<p align=\"center\">\n    <em>alitiq-py , high performance, easy to use, ready for production python software development kit </em>\n</p>\n<p align=\"center\">\n<a href=\"\" target=\"_blank\">\n    <img src=\"https://img.shields.io/pypi/pyversions/fastapi.svg?color=%2334D058\" alt=\"Supported Python versions\">\n</a>\n</p>\n\n## Overview \ud83d\udee0\ufe0f\nWelcome to **alitiq's Forecasting Service SDK**, a robust Python-based SDK that simplifies interaction with alitiq\u2019s Solar, and Engine (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.\n\nBefore 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](https://solar-app.alitiq.com)\n\nThis is a work in progress. We will shortly add an extensive documentation with step by step guides to use our API with python. \n\n---\n\n## Features \u2728  \n- **Solar Power Plant Management**:  \n  Manage PV system configurations and retrieve forecasts for your solar power installations.  \n- **Load Forecasting** by alitiq Engine:  \n  Fetch and manage energy load forecasts for heat, gas, and electricity demand.  \n- **Pushing and Retrieving Measurements**:  \n  Push new measurement data to the API and inspect historical measurement data.  \n- **Robust Validation**:  \n  Powered by Pydantic, ensuring data integrity for all API interactions.  \n\n---\n\n## Installation \ud83d\udce6  \nWith pip: \n```bash\npip install alitiq\n```\n\nOr check out locally:\n1. Clone the repository:  \n   ```bash\n   git clone https://github.com/alitiq/forecasting-sdk.git\n   cd forecasting-sdk\n   ```\n2. Install dependencies:  \n   ```bash\n   pip install -r requirements.txt\n   ```\n\n3. (Optional) Install the SDK locally:  \n   ```bash\n   pip install .\n   ```\n\n\n---\n\n## Quickstart \ud83d\ude80  \nExample shows how to add a new Solar PV power plant, retrieve most recent forecast and push measurements for a given location. \n```python\nfrom datetime import datetime\nfrom alitiq import alitiqSolarAPI, SolarPowerPlantModel, PvMeasurementForm\n\n# Initialize the API client\nsolar_api = alitiqSolarAPI(api_key=\"your-api-key\")\n\n# Create a solar power plant location\nplant = SolarPowerPlantModel(\n    site_name=\"My Solar Plant\",\n    location_id=\"SP123\",\n    latitude=48.160170,\n    longitude=10.55907,\n    installed_power=500.0,\n    installed_power_inverter=480.0,\n    azimuth=180.0,\n    tilt=25.0,\n)\n\nresponse = solar_api.create_location(plant)\nprint(\"Location created:\", response)\n\n# Retrieve a forecast ( after 1-6 hours after creation available)\nforecast = solar_api.get_forecast(location_id=\"SP123\")\nprint(forecast)\n\n# Post measurements \npv_measurements = [\n    PvMeasurementForm(\n        location_id=\"SP123\",\n        dt=datetime(2024, 6, 10, 10).isoformat(),\n        power=120.5,\n        power_measure=\"kW\",\n        timezone=\"UTC\",\n        interval_in_minutes=15,\n    ),\n    PvMeasurementForm(\n        location_id=\"SP123\",\n        dt=datetime(2024, 6, 10, 10, 15).isoformat(),\n        power=90.8,\n        power_measure=\"kW\",\n        timezone=\"UTC\",\n        interval_in_minutes=15,\n    ),\n    PvMeasurementForm(\n        location_id=\"SP123\",\n        dt=datetime(2024, 6, 10, 10, 30).isoformat(),\n        power=150.0,\n        power_measure=\"kW\",\n        timezone=\"UTC\",\n        interval_in_minutes=15,\n    ),\n]\n\nresponse = solar_api.post_measurements(pv_measurements)\nprint(response)\n\n```\nPlease note this docs for setting up your PV system locations: [How to setup PV systems at alitiq](https://makandracards.com/alitiq/621166-setup-pv-system-solar-power-forecast-alitiq/read)\n\n---\n\n## Project Structure \ud83c\udfd7\ufe0f  \n\n```plaintext\nforecasting-sdk/\n\u251c\u2500\u2500 alitiq/\n\u2502   \u251c\u2500\u2500 base.py              # Base class for interacting with APIs\n\u2502   \u251c\u2500\u2500 solar_api.py         # Solar forecasting service SDK\n\u2502   \u251c\u2500\u2500 load_api.py          # Load forecasting service SDK\n\u2502   \u2514\u2500\u2500 enumerations/        # Enumerations for services and forecasting models\n\u251c\u2500\u2500 models/\n\u2502   \u251c\u2500\u2500 solar.py             # Pydantic models for solar APIs\n\u2502   \u2514\u2500\u2500 load_forecast.py     # Pydantic models for load APIs\n\u251c\u2500\u2500 tests/                   # Unit tests for the SDK\n\u2514\u2500\u2500 README.md                # Project documentation\n```\n\n---\n\n## Key Modules \ud83d\udcda  \n\n### Solar Forecasting Module (`solar_power_forecast.py`)  \nManage PV systems and retrieve solar power forecasts. Key methods:  \n- `create_location`: Add new PV system configurations.\n- `list_locations`: List current portfolio\n- `delete_location`: Deletes one location from portfolio\n- `get_forecast`: Retrieve solar power forecasts for a specific location.  \n- `get_forecast_portfolio`: Retrieve solar power forecasts for the whole portfolio.  \n- `push_measurements`: Submit real-time measurements for your solar plant.  \n- `get_measurements`: Retrieve historical data for a location.  \n\n### Load Forecasting Module (`demand_forecast.py`)  \nInteract with alitiq's load forecast API for heat, gas, and electricity. Key methods:  \n- `get_measurements`: Retrieve historical data for a location.  \n- `post_measurements`: Push new measurement data.  \n- `get_forecast`: Fetch load forecasts for your configured location.  \n\n---\n\n## Contributing \ud83e\udd1d  \nWe welcome contributions! To contribute:  \n1. Fork the repository.  \n2. Create a new branch:  \n   ```bash\n   git checkout -b feature/new-feature\n   ```\n3. Commit your changes:  \n   ```bash\n   git commit -m \"Add a new feature\"\n   ```\n4. Push to your branch and submit a pull request.  \n\n---\n\n## License \ud83d\udcdc  \n\nMIT License, see attached LICENSE\n\n---\n\n---\n\n## Developer Notes\n\nRun `python3 -m build` to build the package and then upload with twine: `twine upload -r pypi dist/*`  \n\n---\n\n## Support & Contact \ud83d\udce7  \nFor any questions or issues, please contact [support@alitiq.com](mailto:support@alitiq.com).  \n\n\ud83c\udf1f **Happy Forecasting!** \ud83c\udf1f\n",
    "bugtrack_url": null,
    "license": "IP belongs to alitiq GmbH",
    "summary": "alitiq python SDK",
    "version": "2025.1.2",
    "project_urls": null,
    "split_keywords": [
        "energy",
        " forecasting",
        " solar",
        " pv",
        " demand",
        " prediction",
        " wind",
        " windpower",
        " solarpower",
        " power",
        " powerprediction"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "60189107ad2fc24014ebc25858bb26221e65f1fe0ccd20977a7d12cb448c60d7",
                "md5": "dc7ac5a86fde5618b547d38a3f50d814",
                "sha256": "cb63b003b391658c9464e8fb7d3680dca0317934a31ce359fea1dc12441fdd77"
            },
            "downloads": -1,
            "filename": "alitiq-2025.1.2-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "dc7ac5a86fde5618b547d38a3f50d814",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": null,
            "size": 15439,
            "upload_time": "2025-01-02T05:59:43",
            "upload_time_iso_8601": "2025-01-02T05:59:43.423560Z",
            "url": "https://files.pythonhosted.org/packages/60/18/9107ad2fc24014ebc25858bb26221e65f1fe0ccd20977a7d12cb448c60d7/alitiq-2025.1.2-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "278d51ebf717b9fb5ce50031349d6d182d1438c4c0196dbb6cbef91b7b45698b",
                "md5": "24eb68955a550f40204242701e37a044",
                "sha256": "dd1de5f4ae2de1f4d4f3d5cdd3335605936c6037401be7e42de682ce23299b57"
            },
            "downloads": -1,
            "filename": "alitiq-2025.1.2.tar.gz",
            "has_sig": false,
            "md5_digest": "24eb68955a550f40204242701e37a044",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": null,
            "size": 13051,
            "upload_time": "2025-01-02T05:59:44",
            "upload_time_iso_8601": "2025-01-02T05:59:44.828715Z",
            "url": "https://files.pythonhosted.org/packages/27/8d/51ebf717b9fb5ce50031349d6d182d1438c4c0196dbb6cbef91b7b45698b/alitiq-2025.1.2.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-01-02 05:59:44",
    "github": false,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "lcname": "alitiq"
}
        
Elapsed time: 0.43228s