Skip to content

Commit fe45af3

Browse files
authored
PV Simulation Module (#21)
* Simple PV Simulation based on Elia Load Factors * add isort pre-commit hook for consistent import sorting. * PVLIB * Enhance PVLib simulator by adding PVLibSimulationInput class and updating initialization parameters * Enhance PVSimulator and subclasses by adding result_resolution parameter and updating initialization; refactor from_pydantic methods for improved input handling. --------- Co-authored-by: Jan Pecinovsky <=>
1 parent 066a1dd commit fe45af3

34 files changed

Lines changed: 2728 additions & 1128 deletions

.pre-commit-config.yaml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,3 +43,9 @@ repos:
4343
- --output-file=requirements-dev.txt
4444
- --dev
4545
- id: uv-lock
46+
47+
- repo: https://github.com/pre-commit/mirrors-isort
48+
rev: v5.10.1
49+
hooks:
50+
- id: isort
51+
args: ["--profile", "black"] # Optional: Use Black-compatible sorting

demo_pvsimulation.ipynb

Lines changed: 204 additions & 0 deletions
Large diffs are not rendered by default.

openenergyid/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
"""Open Energy ID Python SDK."""
22

3-
__version__ = "0.1.28"
3+
__version__ = "0.1.30"
44

55
from .enums import Granularity
66
from .models import TimeDataFrame, TimeSeries

openenergyid/baseload/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
"""Baseload analysis package for power consumption data."""
22

3-
from .models import PowerReadingSchema, PowerSeriesSchema, BaseloadResultSchema
43
from .analysis import BaseloadAnalyzer
54
from .exceptions import InsufficientDataError, InvalidDataError
5+
from .models import BaseloadResultSchema, PowerReadingSchema, PowerSeriesSchema
66

77
__version__ = "0.1.0"
88
__all__ = [

openenergyid/capacity/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
"""Power Offtake peak analysis module."""
22

3-
from .models import CapacityInput, CapacityOutput, PeakDetail
43
from .main import CapacityAnalysis
4+
from .models import CapacityInput, CapacityOutput, PeakDetail
55

66
__all__ = ["CapacityInput", "CapacityAnalysis", "CapacityOutput", "PeakDetail"]

openenergyid/capacity/main.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import datetime as dt
44
import typing
5+
56
import pandas as pd
67
import pandera.typing as pdt
78

openenergyid/capacity/models.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,9 @@
11
"""Model for Capacity Analysis."""
22

33
import datetime as dt
4+
45
from pydantic import BaseModel, ConfigDict, Field
6+
57
from openenergyid.models import TimeSeries
68

79

openenergyid/dyntar/main.py

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
"""Main module of the DynTar package."""
22

33
from typing import cast
4+
45
import pandas as pd
56

67
from openenergyid.const import (
@@ -13,22 +14,22 @@
1314
)
1415

1516
from .const import (
16-
ELECTRICITY_DELIVERED_SMR3,
17-
ELECTRICITY_EXPORTED_SMR3,
18-
ELECTRICITY_DELIVERED_SMR2,
19-
ELECTRICITY_EXPORTED_SMR2,
2017
COST_ELECTRICITY_DELIVERED_SMR2,
21-
COST_ELECTRICITY_EXPORTED_SMR2,
2218
COST_ELECTRICITY_DELIVERED_SMR3,
19+
COST_ELECTRICITY_EXPORTED_SMR2,
2320
COST_ELECTRICITY_EXPORTED_SMR3,
24-
RLP_WEIGHTED_PRICE_DELIVERED,
25-
SPP_WEIGHTED_PRICE_EXPORTED,
21+
ELECTRICITY_DELIVERED_SMR2,
22+
ELECTRICITY_DELIVERED_SMR3,
23+
ELECTRICITY_EXPORTED_SMR2,
24+
ELECTRICITY_EXPORTED_SMR3,
2625
HEATMAP_DELIVERED,
27-
HEATMAP_EXPORTED,
28-
HEATMAP_TOTAL,
2926
HEATMAP_DELIVERED_DESCRIPTION,
27+
HEATMAP_EXPORTED,
3028
HEATMAP_EXPORTED_DESCRIPTION,
29+
HEATMAP_TOTAL,
3130
HEATMAP_TOTAL_DESCRIPTION,
31+
RLP_WEIGHTED_PRICE_DELIVERED,
32+
SPP_WEIGHTED_PRICE_EXPORTED,
3233
Register,
3334
)
3435

openenergyid/dyntar/models.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,12 @@
11
"""Models for dynamic tariff analysis."""
22

33
from typing import Literal
4-
from pydantic import Field, conlist, confloat, BaseModel
4+
5+
from pydantic import BaseModel, Field, confloat, conlist
56

67
from openenergyid.models import TimeDataFrame
7-
from .const import Register
88

9+
from .const import Register
910

1011
RequiredColumns = Literal[
1112
"electricity_delivered",

openenergyid/elia/__init__.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
from .api import get_dataset, parse_response
2+
from .const import Region
3+
4+
__all__ = ["get_dataset", "parse_response", "Region"]

0 commit comments

Comments
 (0)