Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
66 commits
Select commit Hold shift + click to select a range
80460e7
Add JSON source infrastructure and Markov factory
PhilippSchmelter Nov 10, 2025
80e932d
bug Fix
PhilippSchmelter Nov 10, 2025
5c7b704
Merge branch 'dev' into ps/#1472-markovBased
PhilippSchmelter Nov 17, 2025
a590311
little fix
PhilippSchmelter Nov 17, 2025
81f4295
Merge branch 'dev' into ps/#1472-markovBased
PhilippSchmelter Nov 24, 2025
a7ca4d7
Merge branch 'dev' into ps/#1472-markovBased
PhilippSchmelter Nov 26, 2025
26a9a54
tests and regex
PhilippSchmelter Nov 26, 2025
b84ecb3
refactor
PhilippSchmelter Nov 26, 2025
dd38436
refactor for sonar
PhilippSchmelter Nov 26, 2025
a346e16
Merge branch 'dev' into ps/#1472-markovBased
PhilippSchmelter Dec 11, 2025
b5a3ccd
abstraction
PhilippSchmelter Dec 11, 2025
fbf01ee
spotless
PhilippSchmelter Dec 11, 2025
8abcb4e
Merge branch 'dev' into ps/#1472-markovBased
PhilippSchmelter Jan 3, 2026
59bb6d0
Completig PSDM Markov Logic by feeding PowerValueIdentifier and build…
PhilippSchmelter Jan 5, 2026
f5b18d3
Merge branch 'dev' into ps/#1472-markovBased
PhilippSchmelter Jan 5, 2026
cda6f42
Addressed Sonar improvements
PhilippSchmelter Jan 5, 2026
c042b9d
Merge remote-tracking branch 'origin/ps/#1472-markovBased' into ps/#1…
PhilippSchmelter Jan 5, 2026
9e9c017
some more sonar
PhilippSchmelter Jan 5, 2026
b8bea29
sonar..
PhilippSchmelter Jan 5, 2026
469d93c
Merge branch 'dev' into ps/#1472-markovBased
staudtMarius Jan 7, 2026
6b9852d
fixed denormalization issue
PhilippSchmelter Jan 7, 2026
2f1a7b4
Improving PowerValueSource.getValueSupplier()
staudtMarius Jan 8, 2026
90dd28f
Updating to jackson-databind 3.0.3
staudtMarius Jan 8, 2026
07331d9
Merge branch 'dev' into ps/#1472-markovBased
PhilippSchmelter Feb 1, 2026
e155530
Merge branch 'dev' into ps/#1472-markovBased
staudtMarius Feb 6, 2026
67a806c
refactored to new supplier wrapper approach
PhilippSchmelter Feb 10, 2026
3f656ef
some fixes
PhilippSchmelter Feb 10, 2026
8389e65
Merge dev into ps/#1472-markovBased
PhilippSchmelter Feb 10, 2026
85d8365
conflicts
PhilippSchmelter Feb 10, 2026
cb0edea
fix
PhilippSchmelter Feb 10, 2026
9153fb3
fix
PhilippSchmelter Feb 10, 2026
413f707
rtd and rename
PhilippSchmelter Feb 10, 2026
a929572
Merge branch 'dev' into ps/#1472-markovBased
PhilippSchmelter Feb 10, 2026
c182277
Merge branch 'dev' into ps/#1472-markovBased
staudtMarius Feb 18, 2026
eb94cba
Merge branch 'dev' into ps/#1472-markovBased
staudtMarius Feb 23, 2026
97637f9
Merge branch 'dev' into ps/#1472-markovBased
staudtMarius Feb 24, 2026
b6c81b5
refactoring after conversation
PhilippSchmelter Feb 25, 2026
a6d31a2
Merge branch 'dev' into ps/#1472-markovBased
PhilippSchmelter Mar 2, 2026
671d5ed
conversation and some added tests
PhilippSchmelter Mar 2, 2026
d7e0c07
rm volatile
PhilippSchmelter Mar 2, 2026
e63eba4
Merge branch 'dev' into ps/#1472-markovBased
staudtMarius Mar 5, 2026
606af3e
Merge branch 'dev' into ps/#1472-markovBased
PhilippSchmelter Mar 9, 2026
25f9e76
Merge branch 'dev' into ps/#1472-markovBased
PhilippSchmelter Mar 25, 2026
82e96d3
Fix compilation errors in Markov factory and source after validate re…
PhilippSchmelter Mar 25, 2026
a00e339
Merge branch 'dev' into ps/#1472-markovBased
PhilippSchmelter Mar 30, 2026
f5ee7ca
fixed validation and added test
PhilippSchmelter Mar 30, 2026
fc0e6af
refactored and ordered
PhilippSchmelter Apr 2, 2026
f5315e4
Merge branch 'dev' into ps/#1472-markovBased
PhilippSchmelter Apr 7, 2026
292ffce
Merge branch 'dev' into ps/#1472-markovBased
PhilippSchmelter Apr 22, 2026
0ab539b
Merge branch 'dev' into ps/#1472-markovBased
PhilippSchmelter May 5, 2026
f8620ea
slim down + doku
PhilippSchmelter May 6, 2026
7edc06c
sonar
PhilippSchmelter May 6, 2026
fb4f1d2
added todos and remove getFields
PhilippSchmelter May 6, 2026
7e7d9e1
TODOs
PhilippSchmelter May 7, 2026
e07d0cd
Merge branch 'dev' into ps/#1472-markovBased
PhilippSchmelter May 18, 2026
298ca36
readTheDocs added for Branch
PhilippSchmelter May 18, 2026
95197f3
Merge branch 'ps/#1472-markovBased' of https://github.com/ie3-institu…
PhilippSchmelter May 18, 2026
2fe7af3
Merge remote-tracking branch 'origin/dev' into ps/#1472-markovBased
PhilippSchmelter Jul 2, 2026
04f689e
Merge branch 'dev' into ps/#1472-markovBased
PhilippSchmelter Jul 3, 2026
b92bc0e
some improvements
PhilippSchmelter Jul 3, 2026
b556b59
additions to docu
PhilippSchmelter Jul 6, 2026
1a59219
Align validation and docs
PhilippSchmelter Jul 8, 2026
220ef76
Meeting Changes
PhilippSchmelter Jul 8, 2026
60ce3da
Review Comments
PhilippSchmelter Jul 9, 2026
a9d81ab
Changed Comment
PhilippSchmelter Jul 9, 2026
dfbe093
SonarQube Complexity Warning
PhilippSchmelter Jul 9, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
## [Unreleased/Snapshot]

### Added
- Added support for Markov-chain-based load profiles loaded from JSON [#1472](https://github.com/ie3-institute/PowerSystemDataModel/issues/1472)


### Fixed
Expand Down
2 changes: 2 additions & 0 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -102,6 +102,8 @@ dependencies {
implementation 'commons-io:commons-io:2.22.0' // I/O functionalities
implementation 'commons-codec:commons-codec:1.22.0' // needed by commons-compress
implementation 'org.apache.commons:commons-compress:1.28.0' // I/O functionalities

implementation 'tools.jackson.core:jackson-databind:3.0.3'
}

tasks.withType(JavaCompile).configureEach {
Expand Down
1 change: 1 addition & 0 deletions docs/readthedocs/io/basiciousage.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ maxdepth: 2
---
naming
csvfiles
markov
sql
influxdb
ValidationUtils.md
Expand Down
96 changes: 95 additions & 1 deletion docs/readthedocs/io/csvfiles.md
Original file line number Diff line number Diff line change
Expand Up @@ -89,6 +89,100 @@ You may extend / alter the naming with pre- or suffix by calling `new EntityPers
- *prefix_* lpts *_profileKey* *_suffix*
```

#### Individual Time Series

Let's spend a few more words on the individual time series:
Those files are meant to carry different types of content - one might give information about wholesale market prices,
the other is a record of power values provided by a real system.
To be able to understand, what's inside of the file, the *columnScheme* part of the file name gives insight of its
content.

For example, you have an IndividualTimeSeries CSV file for energy prices, then you use the key `c` from the table below
for columnScheme `its_c_2fcb3e53-b94a-4b96-bea4-c469e499f1a1.csv`.
The CSV file must then have the appropriate format for the key `c` :

```text
time,price
2020-01-01T00:00:00Z,100.0
```

The CSV file requires a unique identification number.
The UUID (Universally Unique Identifier) can be created [here](https://www.uuidgenerator.net/).
You can also use the Method `java.util.UUID#randomUUID` to create a UUID.
This is the UUID from the example above `2fcb3e53-b94a-4b96-bea4-c469e499f1a1`.

The following keys are supported until now:
```{list-table}
:widths: auto
:class: wrapping
:header-rows: 1

* - Key
- Information and supported head line.
* - c
- An energy price (e.g. in €/MWh; c stands for charge).
Permissible head line: ``time,price``
* - p
- Active power.
Permissible head line: ``time,p``
* - pq
- Active and reactive power.
Permissible head line: ``time,p,q``
* - h
- Heat power demand.
Permissible head line: ``time,h``
* - ph
- Active and heat power.
Permissible head line: ``time,p,h``
* - pqh
- Active, reactive and heat power.
Permissible head line: ``time,p,q,h``
* - v
- Voltage magnitude in pu and angle in °.
Permissible head line: ``time,vMag,vAng``
* - weather
- Weather information.
Permissible head line: ``time,coordinate,direct_irradiation,diffuse_irradiation,temperature,wind_velocity,wind_direction``

```


##### Load Profile Time Series

The following profiles are supported until now:

Note:
Load profile keys must be unique across all load-profile sources. Do not use the same profile key
for both CSV (lpts_*) and Markov JSON (markov_*), e.g. avoid having both lpts_h0.csv and
markov_h0.json.

Markov-based load models (`markov_*`) do not support energy scaling. Calls to
`getProfileEnergyScaling()` will always return `Optional.empty()`.
Comment thread
PhilippSchmelter marked this conversation as resolved.

```{list-table}
:widths: auto
:class: wrapping
:header-rows: 1

* - Key
- Information
- Supported head line.
* - e.g.: H0
- BDEW standard load profiles 1999 ([source](https://www.bdew.de/energie/standardlastprofile-strom/))
- Permissible head line: ``SuSa,SuSu,SuWd,TrSa,TrSu,TrWd,WiSa,WiSu,WiWd,quarterHour``
* - e.g.: h25
- BDEW standard load profiles 2025 ([source](https://www.bdew.de/energie/standardlastprofile-strom/))
- Permissible head line: ``janSa,janSu,janWd,febSa,febSu,febWd,marSa,marSu,marWd,aprSa,aprSu,aprWd,maySa,maySu,mayWd,junSa,junSu,junWd,julSa,julSu,julWd,augSa,augSu,augWd,sepSa,sepSu,sepWd,octSa,octSu,octWd,novSa,novSu,novWd,decSa,decSu,decWd,quarterHour``
* - random
- A random load profile based on: ``Kays - Agent-based simulation environment for improving the planning of distribution grids``
- Permissible head line: ``kSa,kSu,kWd,mySa,mySu,myWd,sigmaSa,sigmaSu,sigmaWd,quarterHour``
* - markov
- Markov-chain-based stochastic load profiles from JSON files (``markov_<key>.json``).
See {ref}`Markov-based Load Profiles <markov-load-model>` for the full JSON schema documentation.
- Not a CSV format. Uses JSON with schema ``simonaMarkovLoad:psdm:1.0``.

```

### Results

```{list-table}
Expand Down Expand Up @@ -240,4 +334,4 @@ occur.

We consider either regular directories or compressed [tarball archives](https://en.wikipedia.org/wiki/Tar_(computing))
(`*.tar.gz`) as source of input files.
The class `TarballUtils` offers some helpful functions to compress or extract input data files for easier shipping.
The class `TarballUtils` offers some helpful functions to compress or extract input data files for easier shipping.
Loading
Loading