Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
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 @@ -18,6 +18,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- Added mising fields to field validation [#1422](https://github.com/ie3-institute/PowerSystemDataModel/issues/1422)
- Fixed the issues with rtd for Cylindrical thermal storage [#1273](https://github.com/ie3-institute/PowerSystemDataModel/issues/1273)
- Updated Controlling_em for all the loads in readthedocs[#1447](https://github.com/ie3-institute/PowerSystemDataModel/issues/1447)
- Correctly persist EmInput entities in CsvFileSink [#1337](https://github.com/ie3-institute/PowerSystemDataModel/issues/1337)

### Changed
- Updated CI-Pipeline to run task `Deploy` and `Staging` only for `Main` [#1403](https://github.com/ie3-institute/PowerSystemDataModel/issues/1403)
Expand Down
18 changes: 17 additions & 1 deletion src/main/java/edu/ie3/datamodel/io/sink/CsvFileSink.java
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
import edu.ie3.datamodel.io.csv.BufferedCsvWriter;
import edu.ie3.datamodel.io.csv.CsvFileDefinition;
import edu.ie3.datamodel.io.extractor.Extractor;
import edu.ie3.datamodel.io.extractor.HasEm;
import edu.ie3.datamodel.io.extractor.NestedEntity;
import edu.ie3.datamodel.io.naming.FileNamingStrategy;
import edu.ie3.datamodel.io.processor.ProcessorProvider;
Expand Down Expand Up @@ -225,14 +226,29 @@ public void persistJointGrid(JointGridContainer jointGridContainer) {
.flatMap(Optional::stream)
.collect(Collectors.toSet());

// extract all EmInput entities
Set<EmInput> emInputs =
systemParticipants.allEntitiesAsList().stream()
.filter(Objects::nonNull)
.map(HasEm.class::cast)
.map(HasEm::getControllingEm)
.flatMap(Optional::stream)
.flatMap(
em ->
Stream.iterate(
em, Objects::nonNull, current -> current.getControllingEm().orElse(null)))
.collect(Collectors.toSet());

// persist all entities
Stream.of(
rawGridElements.allEntitiesAsList(),
systemParticipants.allEntitiesAsList(),
graphicElements.allEntitiesAsList(),
types,
operators)
operators,
emInputs)
.flatMap(Collection::stream)
.collect(Collectors.toSet())
.forEach(this::persistIgnoreNested);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ import edu.ie3.datamodel.io.processor.input.InputEntityProcessor
import edu.ie3.datamodel.io.processor.result.ResultEntityProcessor
import edu.ie3.datamodel.io.processor.timeseries.TimeSeriesProcessor
import edu.ie3.datamodel.io.processor.timeseries.TimeSeriesProcessorKey
import edu.ie3.datamodel.io.source.csv.CsvJointGridContainerSource
import edu.ie3.datamodel.models.OperationTime
import edu.ie3.datamodel.models.StandardUnits
import edu.ie3.datamodel.models.input.EmInput
Expand Down Expand Up @@ -357,6 +358,7 @@ class CsvFileSinkTest extends Specification implements TimeSeriesTestData {
testBaseFolderPath.resolve("storage_type_input.csv").toFile().exists()
testBaseFolderPath.resolve("transformer_2_w_input.csv").toFile().exists()
testBaseFolderPath.resolve("transformer_2_w_type_input.csv").toFile().exists()
testBaseFolderPath.resolve("em_input.csv").toFile().exists()

cleanup:
csvFileSink.shutdown()
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
uuid,id,operator,operates_from,operates_until,controlStrategy,controllingEm
4e2f47a6-40f4-4952-9b2f-7b7d2558a143,em_system_1,,,,"SelfConsumptionOptimized",
a3e8e4a3-7b1b-4b1e-9e7b-8d6e3f5a2b1d,em_system_2,,,,GridSupportive,4e2f47a6-40f4-4952-9b2f-7b7d2558a143
b8d9c5b2-6c2c-4c2d-8f8c-9e7f4a6b3c2e,em_system_3,,,,PriceReactive,4e2f47a6-40f4-4952-9b2f-7b7d2558a143
c7f0d6c1-5d3d-4d3e-7a9d-1f8a5b7c4d3f,em__system_4,,,,StoragePriority,4e2f47a6-40f4-4952-9b2f-7b7d2558a143
d6a1e7d0-4e4e-4e4f-6b0e-2a9b6c8d5e4a,em_system_5,,,,FeedInLimitation,4e2f47a6-40f4-4952-9b2f-7b7d2558a143