Skip to content

Commit 025ad90

Browse files
authored
Fix import and farao-dichotomy version for shift (#21)
Signed-off-by: Viktor Terrier <viktor.terrier@rte-france.com>
1 parent 3d91f2c commit 025ad90

6 files changed

Lines changed: 920 additions & 13 deletions

File tree

pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@
4242
</sonar.jacoco.reportPath>
4343

4444
<!-- Dependencies versions -->
45-
<farao-dichotomy.version>4.32.0</farao-dichotomy.version>
45+
<farao-dichotomy.version>4.33.1</farao-dichotomy.version>
4646
<gridcapa-cse.version>1.46.1</gridcapa-cse.version>
4747
<gridcapa-swe.version>1.40.0</gridcapa-swe.version>
4848
<junit-jupiter.version>5.10.2</junit-jupiter.version>

src/main/java/com/rte_france/trm_algorithm/operational_conditions_aligners/exchange_and_net_position/SplittingFactorsUtils.java

Lines changed: 25 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -8,11 +8,7 @@
88
package com.rte_france.trm_algorithm.operational_conditions_aligners.exchange_and_net_position;
99

1010
import com.farao_community.farao.cse.data.DataUtil;
11-
import com.farao_community.farao.cse.data.ntc.DailyNtcDocumentAdapted;
12-
import com.farao_community.farao.cse.data.ntc.Ntc;
13-
import com.farao_community.farao.cse.data.ntc.YearlyNtcDocumentAdapted;
14-
import com.farao_community.farao.cse.data.xsd.ntc_adapted.NTCAnnualDocument;
15-
import com.farao_community.farao.cse.data.xsd.ntc_adapted.NTCReductionsDocument;
11+
import com.farao_community.farao.cse.data.ntc.*;
1612
import com.powsybl.glsk.commons.CountryEICode;
1713
import com.powsybl.iidm.network.Country;
1814
import com.rte_france.trm_algorithm.TrmException;
@@ -32,16 +28,16 @@ private SplittingFactorsUtils() {
3228
// Utility class
3329
}
3430

35-
public static Map<String, Double> importSplittingFactorsFromNtcDocs(OffsetDateTime targetDateTime, InputStream ntcAnnualPath, InputStream ntcReductionsPath) {
31+
public static Map<String, Double> importSplittingFactorsFromAdaptedNtcDocs(OffsetDateTime targetDateTime, InputStream ntcAnnualPath, InputStream ntcReductionsPath) {
3632

3733
YearlyNtcDocumentAdapted yearlyNtcDocument;
3834
DailyNtcDocumentAdapted dailyNtcDocument;
3935
try {
40-
yearlyNtcDocument = new YearlyNtcDocumentAdapted(targetDateTime, DataUtil.unmarshalFromInputStream(ntcAnnualPath, NTCAnnualDocument.class));
41-
dailyNtcDocument = new DailyNtcDocumentAdapted(targetDateTime, DataUtil.unmarshalFromInputStream(ntcReductionsPath, NTCReductionsDocument.class));
36+
yearlyNtcDocument = new YearlyNtcDocumentAdapted(targetDateTime, DataUtil.unmarshalFromInputStream(ntcAnnualPath, com.farao_community.farao.cse.data.xsd.ntc_adapted.NTCAnnualDocument.class));
37+
dailyNtcDocument = new DailyNtcDocumentAdapted(targetDateTime, DataUtil.unmarshalFromInputStream(ntcReductionsPath, com.farao_community.farao.cse.data.xsd.ntc_adapted.NTCReductionsDocument.class));
4238

4339
} catch (JAXBException e) {
44-
throw new TrmException("An error occurred in the NTC files import for " + targetDateTime + ": " + e);
40+
throw new TrmException("An error occurred in the adapted NTC files import for " + targetDateTime + ": " + e);
4541
}
4642

4743
Ntc ntc = new Ntc(yearlyNtcDocument, dailyNtcDocument, true);
@@ -51,4 +47,24 @@ public static Map<String, Double> importSplittingFactorsFromNtcDocs(OffsetDateTi
5147
return reducedSplittingFactors;
5248

5349
}
50+
51+
public static Map<String, Double> importSplittingFactorsFromNtcDocs(OffsetDateTime targetDateTime, InputStream ntcAnnualPath, InputStream ntcReductionsPath) {
52+
53+
YearlyNtcDocument yearlyNtcDocument;
54+
DailyNtcDocument dailyNtcDocument;
55+
try {
56+
yearlyNtcDocument = new YearlyNtcDocument(targetDateTime, DataUtil.unmarshalFromInputStream(ntcAnnualPath, com.farao_community.farao.cse.data.xsd.NTCAnnualDocument.class));
57+
dailyNtcDocument = new DailyNtcDocument(targetDateTime, DataUtil.unmarshalFromInputStream(ntcReductionsPath, com.farao_community.farao.cse.data.xsd.NTCReductionsDocument.class));
58+
59+
} catch (JAXBException e) {
60+
throw new TrmException("An error occurred in the NTC files import for " + targetDateTime + ": " + e);
61+
}
62+
63+
Ntc ntc = new Ntc(yearlyNtcDocument, dailyNtcDocument, false);
64+
Map<String, Double> reducedSplittingFactors = new HashMap<>();
65+
ntc.computeReducedSplittingFactors().forEach((country, value) -> reducedSplittingFactors.put(new CountryEICode(Country.valueOf(country)).getCode(), value));
66+
67+
return reducedSplittingFactors;
68+
69+
}
5470
}

src/test/java/com/rte_france/trm_algorithm/operational_conditions_aligners/ItalyNorthExchangeAlignerTest.java

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

2121
import static com.powsybl.iidm.network.Country.*;
2222
import static com.rte_france.trm_algorithm.operational_conditions_aligners.ExchangeAlignerStatus.*;
23-
import static com.rte_france.trm_algorithm.operational_conditions_aligners.exchange_and_net_position.SplittingFactorsUtils.importSplittingFactorsFromNtcDocs;
23+
import static com.rte_france.trm_algorithm.operational_conditions_aligners.exchange_and_net_position.SplittingFactorsUtils.importSplittingFactorsFromAdaptedNtcDocs;
2424
import static org.junit.jupiter.api.Assertions.assertEquals;
2525

2626
/**
@@ -90,7 +90,7 @@ void testShiftWithImportedSplittingFactors() {
9090
InputStream yearlyData = ItalyNorthExchangeAlignerTest.class.getResourceAsStream("../TestCase12Nodes/NTC_annual_CSE_simplified_without_special_lines.xml");
9191
InputStream dailyData = ItalyNorthExchangeAlignerTest.class.getResourceAsStream("../TestCase12Nodes/NTC_reductions_CSE.xml");
9292

93-
Map<String, Double> reducedSplittingFactors = importSplittingFactorsFromNtcDocs(OffsetDateTime.parse("2021-02-25T16:30Z"), yearlyData, dailyData);
93+
Map<String, Double> reducedSplittingFactors = importSplittingFactorsFromAdaptedNtcDocs(OffsetDateTime.parse("2021-02-25T16:30Z"), yearlyData, dailyData);
9494

9595
// These are not the splitting factors but the reduced splitting factors
9696
assertEquals(0.046, reducedSplittingFactors.get(new CountryEICode(AT).getCode()), EPSILON);

src/test/java/com/rte_france/trm_algorithm/operational_conditions_aligners/exchange_and_net_position/SplittingFactorsUtilsTest.java

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,11 +24,26 @@ class SplittingFactorsUtilsTest {
2424
private static final double DOUBLE_PRECISION = 0.001;
2525

2626
@Test
27-
void testNtcReductionsImport() {
27+
void testAdaptedNtcReductionsImport() {
2828

2929
InputStream yearlyData = SplittingFactorsUtilsTest.class.getResourceAsStream("../../TestCase12Nodes/NTC_annual_CSE_simplified_without_special_lines.xml");
3030
InputStream dailyData = SplittingFactorsUtilsTest.class.getResourceAsStream("../../TestCase12Nodes/NTC_reductions_CSE.xml");
3131

32+
Map<String, Double> splittingFactors = SplittingFactorsUtils.importSplittingFactorsFromAdaptedNtcDocs(OffsetDateTime.parse("2021-02-25T16:30Z"), yearlyData, dailyData);
33+
34+
assertEquals(4, splittingFactors.size());
35+
assertEquals(0.456, splittingFactors.get(new CountryEICode(FR).getCode()), DOUBLE_PRECISION);
36+
assertEquals(0.425, splittingFactors.get(new CountryEICode(CH).getCode()), DOUBLE_PRECISION);
37+
assertEquals(0.045, splittingFactors.get(new CountryEICode(AT).getCode()), DOUBLE_PRECISION);
38+
assertEquals(0.073, splittingFactors.get(new CountryEICode(SI).getCode()), DOUBLE_PRECISION);
39+
}
40+
41+
@Test
42+
void testNtcReductionsImport() {
43+
44+
InputStream yearlyData = SplittingFactorsUtilsTest.class.getResourceAsStream("../../TestCase12Nodes/NTC_annual_CSE_simplified_without_special_lines_old_format.xml");
45+
InputStream dailyData = SplittingFactorsUtilsTest.class.getResourceAsStream("../../TestCase12Nodes/NTC_reductions_CSE_old_format.xml");
46+
3247
Map<String, Double> splittingFactors = SplittingFactorsUtils.importSplittingFactorsFromNtcDocs(OffsetDateTime.parse("2021-02-25T16:30Z"), yearlyData, dailyData);
3348

3449
assertEquals(4, splittingFactors.size());

0 commit comments

Comments
 (0)