Skip to content

Commit 6f83769

Browse files
Merge pull request #1235 from ie3-institute/ms/#1234-refactor-CongestionResult
Refactoring `CongestionResult`
2 parents 9af34b1 + 09806f5 commit 6f83769

23 files changed

+173
-215
lines changed

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
2727
- Renamed timeseries mapping `participant` column to `asset` [#1191](https://github.com/ie3-institute/PowerSystemDataModel/issues/1191)
2828
- Removed attribute `dsm` from `LoadInput` [#1195](https://github.com/ie3-institute/PowerSystemDataModel/issues/1195)
2929
- Fix spotless deprecations [#1123](https://github.com/ie3-institute/PowerSystemDataModel/issues/1223)
30+
- Refactored `CongestionResult`, removed `ModelResultEntity` [#1234](https://github.com/ie3-institute/PowerSystemDataModel/issues/1234)
3031

3132
## [5.1.0] - 2024-06-24
3233

docs/readthedocs/models/result/grid/congestion.md

Lines changed: 21 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
# Congestion
44

5-
Representation of a congestion result for a given subnet.
5+
Representation of a congestion result for a given asset.
66

77
## Attributes, Units and Remarks
88

@@ -18,30 +18,30 @@ Representation of a congestion result for a given subnet.
1818
* - time
1919
- ZonedDateTime
2020
- date and time for the produced result
21-
22-
* - subgrid
21+
22+
* - inputModel
2323
-
24-
- Sub grid number
25-
26-
* - vMin
27-
- p.u.
28-
- minimal voltage of the subnet
29-
30-
* - vMax
31-
- p.u.
32-
- maximal voltage of the subnet
33-
34-
* - voltage
24+
- uuid for the associated input model
25+
26+
* - inputModelType
3527
-
36-
- Boolean indicator, if a voltage congestion occurred
37-
38-
* - line
28+
- the type of the input model (e.g. node, line, etc.)
29+
30+
* - subgrid
3931
-
40-
- Boolean indicator, if a line congestion occurred
32+
- Sub grid number
4133
42-
* - transformer
43-
-
44-
- Boolean indicator, if a transformer congestion occurred
34+
* - value
35+
- Percent
36+
- the actual value that was calculated in relation to its base value
37+
38+
* - min
39+
- Percent
40+
- minimal limit value
41+
42+
* - max
43+
- Percent
44+
- maximal limit value
4545
```
4646

4747
## Caveats

src/main/java/edu/ie3/datamodel/io/factory/result/CongestionResultFactory.java

Lines changed: 23 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -5,24 +5,28 @@
55
*/
66
package edu.ie3.datamodel.io.factory.result;
77

8-
import static edu.ie3.util.quantities.PowerSystemUnits.PU;
8+
import static tech.units.indriya.unit.Units.PERCENT;
99

10+
import edu.ie3.datamodel.exceptions.FactoryException;
11+
import edu.ie3.datamodel.exceptions.ParsingException;
1012
import edu.ie3.datamodel.io.factory.EntityData;
1113
import edu.ie3.datamodel.models.result.CongestionResult;
14+
import edu.ie3.datamodel.models.result.CongestionResult.InputModelType;
15+
import edu.ie3.datamodel.utils.Try;
1216
import java.time.ZonedDateTime;
1317
import java.time.format.DateTimeFormatter;
1418
import java.util.List;
1519
import java.util.Set;
20+
import java.util.UUID;
1621
import javax.measure.quantity.Dimensionless;
1722
import tech.units.indriya.ComparableQuantity;
1823

1924
public class CongestionResultFactory extends ResultEntityFactory<CongestionResult> {
25+
private static final String TYPE = "type";
2026
private static final String SUBGRID = "subgrid";
21-
private static final String VMIN = "vMin";
22-
private static final String VMAX = "vMax";
23-
private static final String VOLTAGE = "voltage";
24-
private static final String LINE = "line";
25-
private static final String TRANSFORMER = "transformer";
27+
private static final String VALUE = "value";
28+
private static final String MIN = "min";
29+
private static final String MAX = "max";
2630

2731
public CongestionResultFactory() {
2832
super(CongestionResult.class);
@@ -34,19 +38,25 @@ public CongestionResultFactory(DateTimeFormatter dateTimeFormatter) {
3438

3539
@Override
3640
protected List<Set<String>> getFields(Class<?> entityClass) {
37-
return List.of(newSet(TIME, SUBGRID, VMIN, VMAX, VOLTAGE, LINE, TRANSFORMER));
41+
return List.of(newSet(TIME, INPUT_MODEL, TYPE, SUBGRID, MIN, MAX));
3842
}
3943

4044
@Override
4145
protected CongestionResult buildModel(EntityData data) {
4246
ZonedDateTime zdtTime = timeUtil.toZonedDateTime(data.getField(TIME));
47+
UUID inputModel = data.getUUID(INPUT_MODEL);
48+
49+
InputModelType type =
50+
Try.of(() -> InputModelType.parse(data.getField(TYPE)), ParsingException.class)
51+
.transformF(FactoryException::new)
52+
.getOrThrow();
53+
4354
int subgrid = data.getInt(SUBGRID);
44-
ComparableQuantity<Dimensionless> vMin = data.getQuantity(VMIN, PU);
45-
ComparableQuantity<Dimensionless> vMax = data.getQuantity(VMAX, PU);
46-
boolean voltage = data.getBoolean(VOLTAGE);
47-
boolean line = data.getBoolean(LINE);
48-
boolean transformer = data.getBoolean(TRANSFORMER);
4955

50-
return new CongestionResult(zdtTime, subgrid, vMin, vMax, voltage, line, transformer);
56+
ComparableQuantity<Dimensionless> value = data.getQuantity(VALUE, PERCENT);
57+
ComparableQuantity<Dimensionless> min = data.getQuantity(MIN, PERCENT);
58+
ComparableQuantity<Dimensionless> max = data.getQuantity(MAX, PERCENT);
59+
60+
return new CongestionResult(zdtTime, inputModel, type, subgrid, value, min, max);
5161
}
5262
}

src/main/java/edu/ie3/datamodel/io/factory/result/ConnectorResultFactory.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020
import javax.measure.quantity.ElectricCurrent;
2121
import tech.units.indriya.ComparableQuantity;
2222

23-
public class ConnectorResultFactory extends ModelResultFactory<ConnectorResult> {
23+
public class ConnectorResultFactory extends ResultEntityFactory<ConnectorResult> {
2424

2525
private static final String IAMAG = "iAMag";
2626
private static final String IAANG = "iAAng";

src/main/java/edu/ie3/datamodel/io/factory/result/FlexOptionsResultFactory.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
import javax.measure.quantity.Power;
1515
import tech.units.indriya.ComparableQuantity;
1616

17-
public class FlexOptionsResultFactory extends ModelResultFactory<FlexOptionsResult> {
17+
public class FlexOptionsResultFactory extends ResultEntityFactory<FlexOptionsResult> {
1818

1919
private static final String P_REF = "pRef";
2020
private static final String P_MIN = "pMin";

src/main/java/edu/ie3/datamodel/io/factory/result/ModelResultFactory.java

Lines changed: 0 additions & 23 deletions
This file was deleted.

src/main/java/edu/ie3/datamodel/io/factory/result/NodeResultFactory.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
import javax.measure.quantity.Dimensionless;
1616
import tech.units.indriya.ComparableQuantity;
1717

18-
public class NodeResultFactory extends ModelResultFactory<NodeResult> {
18+
public class NodeResultFactory extends ResultEntityFactory<NodeResult> {
1919
private static final String VMAG = "vMag";
2020
private static final String VANG = "vAng";
2121

src/main/java/edu/ie3/datamodel/io/factory/result/ResultEntityFactory.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ public abstract class ResultEntityFactory<T extends ResultEntity>
2222
extends EntityFactory<T, EntityData> {
2323

2424
protected static final String TIME = "time";
25+
protected static final String INPUT_MODEL = "inputModel";
2526

2627
protected final TimeUtil timeUtil;
2728

src/main/java/edu/ie3/datamodel/io/factory/result/SwitchResultFactory.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
import java.time.format.DateTimeFormatter;
1212
import java.util.*;
1313

14-
public class SwitchResultFactory extends ModelResultFactory<SwitchResult> {
14+
public class SwitchResultFactory extends ResultEntityFactory<SwitchResult> {
1515

1616
private static final String CLOSED = "closed";
1717

src/main/java/edu/ie3/datamodel/io/factory/result/SystemParticipantResultFactory.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323
* Factory class for creating {@link SystemParticipantResult} entities from provided {@link
2424
* EntityData} data objects.
2525
*/
26-
public class SystemParticipantResultFactory extends ModelResultFactory<SystemParticipantResult> {
26+
public class SystemParticipantResultFactory extends ResultEntityFactory<SystemParticipantResult> {
2727

2828
private static final String POWER = "p";
2929
private static final String REACTIVE_POWER = "q";

0 commit comments

Comments
 (0)