-
Notifications
You must be signed in to change notification settings - Fork 43
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
CGMES: remove extension for Control Areas, use IIDM Area #3149
Conversation
Signed-off-by: Luma <[email protected]>
Signed-off-by: Luma <[email protected]>
Signed-off-by: Luma <[email protected]>
Signed-off-by: Luma <[email protected]>
Signed-off-by: Luma <[email protected]>
Signed-off-by: Luma <[email protected]>
Signed-off-by: Luma <[email protected]>
Signed-off-by: Luma <[email protected]>
Signed-off-by: Luma <[email protected]>
Signed-off-by: Luma <[email protected]>
Signed-off-by: Luma <[email protected]>
cgmes/cgmes-conversion/src/main/java/com/powsybl/cgmes/conversion/Conversion.java
Outdated
Show resolved
Hide resolved
cgmes/cgmes-conversion/src/main/java/com/powsybl/cgmes/conversion/Conversion.java
Show resolved
Hide resolved
cgmes/cgmes-conversion/src/main/java/com/powsybl/cgmes/conversion/Conversion.java
Outdated
Show resolved
Hide resolved
...s/cgmes-conversion/src/main/java/com/powsybl/cgmes/conversion/export/CgmesExportContext.java
Outdated
Show resolved
Hide resolved
cgmes/cgmes-conversion/src/main/java/com/powsybl/cgmes/conversion/Conversion.java
Outdated
Show resolved
Hide resolved
...s-conversion/src/test/java/com/powsybl/cgmes/conversion/test/export/EquipmentExportTest.java
Outdated
Show resolved
Hide resolved
...s-conversion/src/test/java/com/powsybl/cgmes/conversion/test/export/EquipmentExportTest.java
Show resolved
Hide resolved
...gmes-conversion/src/test/java/com/powsybl/cgmes/conversion/test/export/ExportXmlCompare.java
Outdated
Show resolved
Hide resolved
...version/src/test/java/com/powsybl/cgmes/conversion/test/export/StateVariablesExportTest.java
Outdated
Show resolved
Hide resolved
cgmes/cgmes-conversion/src/main/java/com/powsybl/cgmes/conversion/Conversion.java
Outdated
Show resolved
Hide resolved
Signed-off-by: Luma <[email protected]>
Signed-off-by: Luma <[email protected]>
Signed-off-by: Luma <[email protected]>
Signed-off-by: Luma <[email protected]>
Signed-off-by: Luma <[email protected]>
Signed-off-by: Luma <[email protected]>
…is used Signed-off-by: Luma <[email protected]>
.../cgmes-conversion/src/main/java/com/powsybl/cgmes/conversion/elements/TieFlowConversion.java
Outdated
Show resolved
Hide resolved
.../cgmes-conversion/src/main/java/com/powsybl/cgmes/conversion/elements/TieFlowConversion.java
Outdated
Show resolved
Hide resolved
cgmes/cgmes-conversion/src/main/java/com/powsybl/cgmes/conversion/Conversion.java
Show resolved
Hide resolved
...onversion/src/main/java/com/powsybl/cgmes/conversion/export/SteadyStateHypothesisExport.java
Outdated
Show resolved
Hide resolved
...onversion/src/main/java/com/powsybl/cgmes/conversion/export/SteadyStateHypothesisExport.java
Outdated
Show resolved
Hide resolved
cgmes/cgmes-conversion/src/main/java/com/powsybl/cgmes/conversion/CgmesExport.java
Outdated
Show resolved
Hide resolved
Co-authored-by: rcourtier <[email protected]> Signed-off-by: Luma <[email protected]>
Signed-off-by: Luma <[email protected]>
cgmes/cgmes-extensions/src/main/java/com/powsybl/cgmes/extensions/CgmesControlAreasSerDe.java
Show resolved
Hide resolved
...es-conversion/src/main/java/com/powsybl/cgmes/conversion/elements/ControlAreaConversion.java
Outdated
Show resolved
Hide resolved
.../cgmes-conversion/src/main/java/com/powsybl/cgmes/conversion/elements/TieFlowConversion.java
Outdated
Show resolved
Hide resolved
...onversion/src/main/java/com/powsybl/cgmes/conversion/export/SteadyStateHypothesisExport.java
Outdated
Show resolved
Hide resolved
...s/cgmes-conversion/src/main/java/com/powsybl/cgmes/conversion/export/elements/TieFlowEq.java
Outdated
Show resolved
Hide resolved
...s-conversion/src/test/java/com/powsybl/cgmes/conversion/test/export/EquipmentExportTest.java
Show resolved
Hide resolved
cgmes/cgmes-conversion/src/main/java/com/powsybl/cgmes/conversion/CgmesExport.java
Show resolved
Hide resolved
…ion/elements/ControlAreaConversion.java Co-authored-by: Olivier Perrin <[email protected]> Signed-off-by: Luma <[email protected]>
…ion/elements/TieFlowConversion.java Co-authored-by: Olivier Perrin <[email protected]> Signed-off-by: Luma <[email protected]>
…ion/export/SteadyStateHypothesisExport.java Co-authored-by: Olivier Perrin <[email protected]> Signed-off-by: Luma <[email protected]>
Signed-off-by: Luma <[email protected]>
…Exception Signed-off-by: Luma <[email protected]>
Signed-off-by: Luma <[email protected]>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Could you also update the doc about CGMES import?
It still references the CgmesControlArea
extension here.
Signed-off-by: Luma <[email protected]>
Updated. Thanks for the catch! |
I think that some lines should also be added (in the same page) about the imported IIDM Areas, in replacement of the deleted section. |
Signed-off-by: Luma <[email protected]>
Added a short description about the behaviour of the import for control areas. |
Thanks a lot @zamarrenolm! |
|
Please check if the PR fulfills these requirements
Does this PR already have an issue describing the problem?
What kind of change does this PR introduce?
Update
What is the current behavior?
Information from CGMES control areas is stored using an extension to the Network Model (
CgmesControlArea
).What is the new behavior (if this is a feature change)?
Information from CGMES control areas is stored using native IIDM objects of class
Area
.CGMES
pTolerance
attribute is stored as a property.The ENTSO-E attribute
IdentifiedObject.energyIdentCodeEic
is stored as an alias.For assembled models (CGM), the new behaviour has support for tie flows of a control area located at the boundary point of tie lines
Does this PR introduce a breaking change or deprecate an API?
If yes, please check if the following requirements are fulfilled
What changes might users need to make in their application due to this PR? (migration steps)
Import
During import, CGMES control areas (objects of class
ControlArea
) are now mapped directly to PowSyBl objects of typeArea
.Here is a correspondance table to access to the control area data:
CgmesControlArea
extensionArea
of typeCgmesNames.CONTROL_AREA_TYPE_KIND_INTERCHANGE
extension.getId()
area.getId()
extension.getName()
area.getName()
extension.getNetInterchange()
area.getInterchangeTarget()
.orElse(Double.NaN)
extension.getPTolerance()
Double.parseDouble(area.getProperty(CgmesNames.P_TOLERANCE, "NaN")
extension.getEnergyIdentificationCodeEIC()
area.getAliasFromType(CgmesNames.ENERGY_IDENT_CODE_EIC)
.orElse(null)
extension.getTerminals()
area.getAreaBoundaryStream()
.map(AreaBoundary::getTerminal)
.filter(Optional::isPresent)
.map(Optional::get)
.toSet()
extension.getBoundaries()
area.getAreaBoundaryStream()
.map(AreaBoundary::getBoundary)
.filter(Optional::isPresent)
.map(Optional::get)
.toSet()
Export
Previously, during export, if the
CgmesControlArea
extension was not present in the exported network, a new one was created and a control area representing the whole network was added to it, with the terminals of all dangling lines defined as its tie flows. As a result, the CGMES export always had a control area of type interchange.After this PR, no control area is automatically created during export. The export process itself will not add, remove or change the attributes of the objects in the IIDM model.
If the user wants to define a control area interchange based on the whole network, it can do it programmatically using the following line of code:
It is located in the
CgmesExport
exporter because the creation of a default area involves potential access to reference data (boundaries) and using some export parameters that the user may have already configured. The relevant data: the sourcing actor (that determines its region and the corresponding EIC code), the consideration of boundary nodes (and associated tie flows) as AC or DC. Also, the user can provide some of the parameters explicitly, if needed. As an example, including the final call to CGMES export:Other information:
CgmesControlAreas
extension deserialization is handled by Add backward compatibility for CgmesControlAreas extension deserialization #3298