From ddfda01ff12f4e81a8083ec692edcc5a028bc6d9 Mon Sep 17 00:00:00 2001 From: mvogt Date: Wed, 27 Sep 2023 11:32:54 +0200 Subject: [PATCH 01/39] some fixes around the generation of generic coordinates. (cherry picked from commit 3cf392416515b2ed4176742771a913bf5b44ffad) --- pandapower/plotting/generic_geodata.py | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/pandapower/plotting/generic_geodata.py b/pandapower/plotting/generic_geodata.py index 42474a83e..ecb07c6a3 100644 --- a/pandapower/plotting/generic_geodata.py +++ b/pandapower/plotting/generic_geodata.py @@ -142,29 +142,32 @@ def coords_from_igraph(graph, roots, meshed=False, calculate_meshed=False): return list(zip(*layout.coords)) -def coords_from_nxgraph(mg=None): +def coords_from_nxgraph(mg=None, layout_engine='neato'): """ Create a list of generic coordinates from a networkx graph layout. :param mg: The networkx graph on which the coordinates shall be based :type mg: networkx.Graph + :param layout_engine: GraphViz Layout Engine for layouting a network. See https://graphviz.org/docs/layouts/ + :type layout_engine: str :return: coords - list of coordinates from the graph layout """ # workaround for bug in agraph - for u, v in mg.edges(data=False, keys=False): + for u, v in mg.edges(data=False): if 'key' in mg[int(u)][int(v)]: del mg[int(u)][int(v)]['key'] if 'key' in mg[int(u)][int(v)][0]: del mg[int(u)][int(v)][0]['key'] # ToDo: Insert fallback layout for nxgraph - return list(zip(*(list(nx.drawing.nx_agraph.graphviz_layout(mg, prog='neato').values())))) + return list(zip(*(list(nx.drawing.nx_agraph.graphviz_layout(mg, prog=layout_engine).values())))) def create_generic_coordinates(net, mg=None, library="igraph", respect_switches=False, geodata_table="bus_geodata", buses=None, - overwrite=False): + overwrite=False, + layout_engine='neato'): """ This function will add arbitrary geo-coordinates for all buses based on an analysis of branches and rings. It will remove out of service buses/lines from the net. The coordinates will be @@ -174,6 +177,8 @@ def create_generic_coordinates(net, mg=None, library="igraph", :type net: pandapowerNet :param mg: Existing networkx multigraph, if available. Convenience to save computation time. :type mg: networkx.Graph + :param respect_switches: respect switches in a network for generic coordinates + :type respect_switches: bool :param library: "igraph" to use igraph package or "networkx" to use networkx package :type library: str :param geodata_table: table to write the generic geodatas to @@ -182,6 +187,8 @@ def create_generic_coordinates(net, mg=None, library="igraph", :type buses: list :param overwrite: overwrite existing geodata :type overwrite: bool + :param layout_engine: GraphViz Layout Engine for layouting a network. See https://graphviz.org/docs/layouts/ + :type layout_engine: str :return: net - pandapower network with added geo coordinates for the buses :Example: @@ -200,7 +207,7 @@ def create_generic_coordinates(net, mg=None, library="igraph", include_out_of_service=True) else: nxg = copy.deepcopy(mg) - coords = coords_from_nxgraph(nxg) + coords = coords_from_nxgraph(nxg, layout_engine=layout_engine) else: raise ValueError("Unknown library %s - chose 'igraph' or 'networkx'" % library) if len(coords): From 3e5dd89ddf6d9d3b94d4cd53e3b6d7198f1a8f86 Mon Sep 17 00:00:00 2001 From: Roman Bolgaryn Date: Tue, 24 Oct 2023 14:46:59 +0200 Subject: [PATCH 02/39] bugfix powerflow algorithm id for fdxb, fdbx (closes #2142) --- CHANGELOG.rst | 1 + pandapower/pf/runpf_pypower.py | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.rst b/CHANGELOG.rst index 6eb76b3f1..ffa31e7a7 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -32,6 +32,7 @@ Change Log - [CHANGED] PowerFactory converter - name :code:`for_name` as :code:`equipment` for all elements; also add to line - [ADDED] option to use a second tap changer for the trafo element - [FIXED] :code:`convert_format.py`: update the attributes of the characteristic objects to match the new characteristic +- [FIXED] fixed the wrong id numbers for pypower powerflow algorithms fdxb and fdbx [2.13.1] - 2023-05-12 diff --git a/pandapower/pf/runpf_pypower.py b/pandapower/pf/runpf_pypower.py index 6972a7739..5b912eb22 100644 --- a/pandapower/pf/runpf_pypower.py +++ b/pandapower/pf/runpf_pypower.py @@ -78,7 +78,7 @@ def _get_options(options, **kwargs): max_iteration = options["max_iteration"] # algorithms implemented within pypower - algorithm_pypower_dict = {'nr': 1, 'fdbx': 2, 'fdxb': 3, 'gs': 4} + algorithm_pypower_dict = {'nr': 1, 'fdxb': 2, 'fdbx': 3, 'gs': 4} ppopt = ppoption(ENFORCE_Q_LIMS=enforce_q_lims, PF_TOL=tolerance_mva, PF_ALG=algorithm_pypower_dict[algorithm], **kwargs) From 3fbf737f551261f405e2345aeaf446f22760c36c Mon Sep 17 00:00:00 2001 From: mrichter Date: Mon, 20 Nov 2023 15:40:26 +0100 Subject: [PATCH 03/39] cim2pp: extracted getting default classes, added generic setting datatypes from CGMES XMI schema --- CHANGELOG.rst | 1 + pandapower/converter/cim/cim2pp/from_cim.py | 47 +- pandapower/converter/cim/cim_classes.py | 60 +- pandapower/converter/cim/cim_tools.py | 22 +- .../CIM16_4.0.8_schema.json | 11344 ++++++++++++++++ 5 files changed, 11409 insertions(+), 65 deletions(-) create mode 100644 pandapower/converter/cim/serialized_schemas/CIM16_4.0.8_schema.json diff --git a/CHANGELOG.rst b/CHANGELOG.rst index 45d9d8bcb..0908384d9 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -34,6 +34,7 @@ Change Log - [ADDED] option to use a second tap changer for the trafo element - [CHANGED] parameters of function merge_internal_net_and_equivalent_external_net() - [FIXED] :code:`convert_format.py`: update the attributes of the characteristic objects to match the new characteristic +- [CHANGED] cim2pp: extracted getting default classes, added generic setting datatypes from CGMES XMI schema [2.13.1] - 2023-05-12 diff --git a/pandapower/converter/cim/cim2pp/from_cim.py b/pandapower/converter/cim/cim2pp/from_cim.py index 9ec7cfe8b..36e6afd64 100644 --- a/pandapower/converter/cim/cim2pp/from_cim.py +++ b/pandapower/converter/cim/cim2pp/from_cim.py @@ -9,6 +9,7 @@ from . import build_pp_net from .. import cim_classes from .. import interfaces +from . import converter_classes as std_converter_classes logger = logging.getLogger('cim.cim2pp.from_cim') @@ -38,8 +39,30 @@ def from_cim_dict(cim_parser: cim_classes.CimParser, log_debug=False, convert_li :param custom_converter_classes: Dict to inject classes for different functionality. Optional, default: None :return: The pandapower net. """ - from . import converter_classes as std_converter_classes - converter_classes: dict = { + converter_classes = get_converter_classes() + if custom_converter_classes is not None: + for key in custom_converter_classes: + converter_classes[key] = custom_converter_classes.get(key) + + # repair the input CIM data + if repair_cim is not None and repair_cim_class is not None: + repair_cim = repair_cim_class().deserialize(repair_cim, report_container=cim_parser.get_report_container()) + repair_cim.repair(cim_parser.get_cim_dict(), report_container=cim_parser.get_report_container()) + + cim_converter = build_pp_net.CimConverter(cim_parser=cim_parser, converter_classes=converter_classes, **kwargs) + pp_net = cim_converter.convert_to_pp(convert_line_to_switch=convert_line_to_switch, line_r_limit=line_r_limit, + line_x_limit=line_x_limit, log_debug=log_debug, **kwargs) + + # repair the output pandapower network + if repair_pp is not None and repair_pp_class is not None: + repair_pp = repair_pp_class().deserialize(repair_pp, report_container=cim_parser.get_report_container()) + repair_pp.repair(pp_net, report_container=cim_parser.get_report_container()) + + return pp_net + + +def get_converter_classes(): + converter_classes: Dict[str,classmethod] = { 'connectivityNodesCim16': std_converter_classes.connectivitynodes.connectivityNodesCim16, 'externalNetworkInjectionsCim16': std_converter_classes.externalnetworks.externalNetworkInjectionsCim16, 'acLineSegmentsCim16': std_converter_classes.lines.acLineSegmentsCim16, @@ -63,25 +86,7 @@ def from_cim_dict(cim_parser: cim_classes.CimParser, log_debug=False, convert_li 'geoCoordinatesFromGLCim16': std_converter_classes.coordinates.geoCoordinatesFromGLCim16, 'coordinatesFromDLCim16': std_converter_classes.coordinates.coordinatesFromDLCim16, } - if custom_converter_classes is not None: - for key in custom_converter_classes: - converter_classes[key] = custom_converter_classes.get(key) - - # repair the input CIM data - if repair_cim is not None and repair_cim_class is not None: - repair_cim = repair_cim_class().deserialize(repair_cim, report_container=cim_parser.get_report_container()) - repair_cim.repair(cim_parser.get_cim_dict(), report_container=cim_parser.get_report_container()) - - cim_converter = build_pp_net.CimConverter(cim_parser=cim_parser, converter_classes=converter_classes, **kwargs) - pp_net = cim_converter.convert_to_pp(convert_line_to_switch=convert_line_to_switch, line_r_limit=line_r_limit, - line_x_limit=line_x_limit, log_debug=log_debug, **kwargs) - - # repair the output pandapower network - if repair_pp is not None and repair_pp_class is not None: - repair_pp = repair_pp_class().deserialize(repair_pp, report_container=cim_parser.get_report_container()) - repair_pp.repair(pp_net, report_container=cim_parser.get_report_container()) - - return pp_net + return converter_classes def from_cim(file_list: List[str] = None, encoding: str = 'utf-8', convert_line_to_switch: bool = False, diff --git a/pandapower/converter/cim/cim_classes.py b/pandapower/converter/cim/cim_classes.py index b651941b1..eb19c2bc7 100644 --- a/pandapower/converter/cim/cim_classes.py +++ b/pandapower/converter/cim/cim_classes.py @@ -14,6 +14,7 @@ import xml.etree.ElementTree import xml.etree.cElementTree as xmlET from .other_classes import ReportContainer, Report, LogLevel, ReportCode +from .cim_tools import get_cim16_schema class CimParser: @@ -76,60 +77,39 @@ def set_cim_data_types(self) -> CimParser: float_type = float int_type = pd.Int64Dtype() bool_type = pd.BooleanDtype() - data_types = dict({'nominalVoltage': float_type, 'r': float_type, 'x': float_type, 'r2': float_type, - 'x2': float_type, 'bch': float_type, 'v': float_type, 'p': float_type, 'q': float_type, - 'ratedUdc': float_type, 'targetUpcc': float_type, 'droop': float_type, - 'droopCompensation': float_type, 'qShare': float_type, 'targetUdc': float_type, - 'targetPpcc': float_type, 'targetQpcc': float_type, - 'minP': float_type, 'maxP': float_type, 'minQ': float_type, 'maxQ': float_type, - 'ratedPowerFactor': float_type, 'minOperatingP': float_type, 'maxOperatingP': float_type, - 'nominalP': float_type, 'initialP': float_type, 'baseS': float_type, - 'maxInitialSymShCCurrent': float_type, 'minInitialSymShCCurrent': float_type, - 'maxR1ToX1Ratio': float_type, 'minR1ToX1Ratio': float_type, 'targetValue': float_type, - 'activePower': float_type, 'reactivePower': float_type, 'b': float_type, - 'ratedS': float_type, 'ratedU': float_type, 'stepVoltageIncrement': float_type, - 'stepPhaseShiftIncrement': float_type, 'step': float_type, 'length': float_type, - 'g': float_type, 'ratio': float_type, 'regulationTarget': float_type, 'value': float_type, - 'sensorAccuracy': float_type, 'neutralU': float_type, 'voltageStepIncrement': float_type, - 'xPosition': float_type, 'yPosition': float_type, 'r21': float_type, 'x21': float_type, - 'nomU': float_type, 'gPerSection': float_type, 'bPerSection': float_type, - 'angle': float_type, 'r0': float_type, 'x0': float_type, 'b0ch': float_type, - 'gch': float_type, 'g0ch': float_type, 'shortCircuitEndTemperature': float_type, - 'targetDeadband': float_type, 'netInterchange': float_type, 'iaIrRatio': float_type, - 'voltageRegulationRange': float_type, 'rxLockedRotorRatio': float_type, - 'maxR0ToX0Ratio': float_type, 'maxZ0ToZ1Ratio': float_type, 'xground': float_type, - 'efficiency': float_type, 'ratedMechanicalPower': float_type, 'voltageSetPoint': float_type, - 'zeroR12': float_type, 'zeroR21': float_type, 'zeroX12': float_type, 'zeroX21': float_type, - 'voltageAngle': float_type, 'voltageMagnitude': float_type, - 'controlEnabled': bool_type, 'connected': bool_type, 'open': bool_type, - 'regulationStatus': bool_type, 'positiveFlowIn': bool_type, - 'isPartOfGeneratorUnit': bool_type, 'ltcFlag': bool_type, 'discrete': bool_type, - 'enabled': bool_type, 'grounded': bool_type, - 'referencePriority': int_type, 'sectionNumber': int_type, 'sections': int_type, - 'maximumSections': int_type, 'endNumber': int_type, 'sequenceNumber': int_type, - 'neutralStep': int_type, 'lowStep': int_type, 'highStep': int_type, 'normalStep': int_type, - 'phaseAngleClock': int_type, 'position': int_type}) + data_types_map = dict({'Float': float_type, 'Integer': int_type, 'Boolean': bool_type}) + cim_16_schema = get_cim16_schema() for profile in self.cim.keys(): for cim_element_type, item in self.cim[profile].items(): for col in item.columns: - if col in data_types.keys(): + # skip elements which are not available in the schema like FullModel + if cim_element_type not in cim_16_schema[profile]: + self.logger.debug("Skipping CIM element type %s from profile %s." % (cim_element_type, profile)) + continue + if col in cim_16_schema[profile][cim_element_type]['fields'].keys() and \ + 'data_type_prim' in cim_16_schema[profile][cim_element_type]['fields'][col].keys(): + data_type_col_str = cim_16_schema[profile][cim_element_type]['fields'][col]['data_type_prim'] + if data_type_col_str in data_types_map.keys(): + data_type_col = data_types_map[data_type_col_str] + else: + continue self.logger.debug("Setting data type of %s from CIM element %s as type %s" % - (col, cim_element_type, data_types[col])) - if col in default_values.keys(): + (col, cim_element_type, data_type_col_str)) + if col in default_values.keys(): # todo deprecated due to repair function? self.cim[profile][cim_element_type][col].fillna(value=default_values[col], inplace=True) - if data_types[col] == bool_type: + if data_type_col == bool_type: self.cim[profile][cim_element_type][col] = \ self.cim[profile][cim_element_type][col].map(to_bool) try: # special fix for integers: - if data_types[col] == int_type: + if data_type_col == int_type: self.cim[profile][cim_element_type][col] = \ self.cim[profile][cim_element_type][col].astype(float_type) self.cim[profile][cim_element_type][col] = \ - self.cim[profile][cim_element_type][col].astype(data_types[col]) + self.cim[profile][cim_element_type][col].astype(data_type_col) except Exception as e: self.logger.warning("Couldn't set the datatype to %s for field %s at CIM type %s in " - "profile %s!" % (data_types[col], col, cim_element_type, profile)) + "profile %s!" % (data_type_col_str, col, cim_element_type, profile)) self.logger.warning("This may be harmless if the data is not need by the converter. " "Message: %s" % e) self.logger.info("Finished setting the cim data types.") diff --git a/pandapower/converter/cim/cim_tools.py b/pandapower/converter/cim/cim_tools.py index 0cfec20d6..24f4a43c5 100644 --- a/pandapower/converter/cim/cim_tools.py +++ b/pandapower/converter/cim/cim_tools.py @@ -1,13 +1,13 @@ # -*- coding: utf-8 -*- - # Copyright (c) 2016-2023 by University of Kassel and Fraunhofer Institute for Energy Economics # and Energy System Technology (IEE), Kassel. All rights reserved. import logging +import os +import json from typing import Dict, List import numpy as np from pandapower.auxiliary import pandapowerNet import pandas as pd -from . import cim_classes logger = logging.getLogger(__name__) @@ -129,5 +129,19 @@ def extend_pp_net_cim(net: pandapowerNet, override: bool = True) -> pandapowerNe return net -def get_cim_data_structure() -> Dict[str, Dict[str, pd.DataFrame]]: - return cim_classes.CimParser().get_cim_data_structure() +def get_cim16_schema() -> Dict[str, Dict[str, Dict[str, str or Dict[str, Dict[str, str]]]]]: + """ + Parses the CIM 16 schema from the CIM 16 RDF schema files for the serializer from the CIM data structure used by + the cim2pp and pp2cim converters. + :return: The CIM 16 schema as dictionary. + """ + path_with_serialized_schemas = os.path.dirname(__file__) + os.sep + 'serialized_schemas' + if not os.path.isdir(path_with_serialized_schemas): + os.mkdir(path_with_serialized_schemas) + for one_file in os.listdir(path_with_serialized_schemas): + if one_file.lower().endswith('_schema.json'): + path_to_schema = path_with_serialized_schemas + os.sep + one_file + logger.info("Parsing the schema from CIM 16 from disk: %s" % path_to_schema) + with open(path_to_schema, encoding='UTF-8', mode='r') as f: + cim16_schema = json.load(f) + return cim16_schema diff --git a/pandapower/converter/cim/serialized_schemas/CIM16_4.0.8_schema.json b/pandapower/converter/cim/serialized_schemas/CIM16_4.0.8_schema.json new file mode 100644 index 000000000..765df9a5d --- /dev/null +++ b/pandapower/converter/cim/serialized_schemas/CIM16_4.0.8_schema.json @@ -0,0 +1,11344 @@ +{ + "eq": { + "ControlArea": { + "rdf_type": " rdf:ID=\"", + "label": "cim:ControlArea", + "fields": { + "type": { + "label": "cim:ControlArea.type", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#ControlAreaTypeKind.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#ControlAreaTypeKind." + }, + "ControlAreaGeneratingUnit": { + "label": "cim:ControlArea.ControlAreaGeneratingUnit", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#ControlAreaGeneratingUnit.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#ControlAreaGeneratingUnit." + }, + "TieFlow": { + "label": "cim:ControlArea.TieFlow", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#TieFlow.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#TieFlow." + }, + "EnergyArea": { + "label": "cim:ControlArea.EnergyArea", + "data_type": " rdf:resource=\"#", + "data_type_prim": " rdf:resource=\"#" + }, + "Measurements": { + "label": "cim:PowerSystemResource.Measurements", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Measurement.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Measurement." + }, + "Controls": { + "label": "cim:PowerSystemResource.Controls", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Control.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Control." + }, + "mRID": { + "label": "cim:IdentifiedObject.mRID", + "data_type": "String", + "data_type_prim": "String" + }, + "name": { + "label": "cim:IdentifiedObject.name", + "data_type": "String", + "data_type_prim": "String" + }, + "description": { + "label": "cim:IdentifiedObject.description", + "data_type": "String", + "data_type_prim": "String" + }, + "energyIdentCodeEic": { + "label": "entsoe:IdentifiedObject.energyIdentCodeEic", + "data_type": "String", + "data_type_prim": "String" + }, + "shortName": { + "label": "entsoe:IdentifiedObject.shortName", + "data_type": "String", + "data_type_prim": "String" + } + } + }, + "TieFlow": { + "rdf_type": " rdf:ID=\"", + "label": "cim:TieFlow", + "fields": { + "Terminal": { + "label": "cim:TieFlow.Terminal", + "data_type": " rdf:resource=\"#", + "data_type_prim": " rdf:resource=\"#" + }, + "positiveFlowIn": { + "label": "cim:TieFlow.positiveFlowIn", + "data_type": "Boolean", + "data_type_prim": "Boolean" + }, + "ControlArea": { + "label": "cim:TieFlow.ControlArea", + "data_type": " rdf:resource=\"#", + "data_type_prim": " rdf:resource=\"#" + } + } + }, + "ConnectivityNode": { + "rdf_type": " rdf:ID=\"", + "label": "cim:ConnectivityNode", + "fields": { + "ConnectivityNodeContainer": { + "label": "cim:ConnectivityNode.ConnectivityNodeContainer", + "data_type": " rdf:resource=\"#", + "data_type_prim": " rdf:resource=\"#" + }, + "Terminals": { + "label": "cim:ConnectivityNode.Terminals", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Terminal.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Terminal." + }, + "mRID": { + "label": "cim:IdentifiedObject.mRID", + "data_type": "String", + "data_type_prim": "String" + }, + "name": { + "label": "cim:IdentifiedObject.name", + "data_type": "String", + "data_type_prim": "String" + }, + "description": { + "label": "cim:IdentifiedObject.description", + "data_type": "String", + "data_type_prim": "String" + }, + "energyIdentCodeEic": { + "label": "entsoe:IdentifiedObject.energyIdentCodeEic", + "data_type": "String", + "data_type_prim": "String" + }, + "shortName": { + "label": "entsoe:IdentifiedObject.shortName", + "data_type": "String", + "data_type_prim": "String" + } + } + }, + "Bay": { + "rdf_type": " rdf:ID=\"", + "label": "cim:Bay", + "fields": { + "VoltageLevel": { + "label": "cim:Bay.VoltageLevel", + "data_type": " rdf:resource=\"#", + "data_type_prim": " rdf:resource=\"#" + }, + "Equipments": { + "label": "cim:EquipmentContainer.Equipments", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Equipment.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Equipment." + }, + "ConnectivityNodes": { + "label": "cim:ConnectivityNodeContainer.ConnectivityNodes", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#ConnectivityNode.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#ConnectivityNode." + }, + "Measurements": { + "label": "cim:PowerSystemResource.Measurements", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Measurement.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Measurement." + }, + "Controls": { + "label": "cim:PowerSystemResource.Controls", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Control.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Control." + }, + "mRID": { + "label": "cim:IdentifiedObject.mRID", + "data_type": "String", + "data_type_prim": "String" + }, + "name": { + "label": "cim:IdentifiedObject.name", + "data_type": "String", + "data_type_prim": "String" + }, + "description": { + "label": "cim:IdentifiedObject.description", + "data_type": "String", + "data_type_prim": "String" + }, + "energyIdentCodeEic": { + "label": "entsoe:IdentifiedObject.energyIdentCodeEic", + "data_type": "String", + "data_type_prim": "String" + }, + "shortName": { + "label": "entsoe:IdentifiedObject.shortName", + "data_type": "String", + "data_type_prim": "String" + } + } + }, + "Substation": { + "rdf_type": " rdf:ID=\"", + "label": "cim:Substation", + "fields": { + "DCConverterUnit": { + "label": "cim:Substation.DCConverterUnit", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#DCConverterUnit.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#DCConverterUnit." + }, + "Region": { + "label": "cim:Substation.Region", + "data_type": " rdf:resource=\"#", + "data_type_prim": " rdf:resource=\"#" + }, + "VoltageLevels": { + "label": "cim:Substation.VoltageLevels", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#VoltageLevel.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#VoltageLevel." + }, + "Equipments": { + "label": "cim:EquipmentContainer.Equipments", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Equipment.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Equipment." + }, + "ConnectivityNodes": { + "label": "cim:ConnectivityNodeContainer.ConnectivityNodes", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#ConnectivityNode.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#ConnectivityNode." + }, + "Measurements": { + "label": "cim:PowerSystemResource.Measurements", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Measurement.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Measurement." + }, + "Controls": { + "label": "cim:PowerSystemResource.Controls", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Control.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Control." + }, + "mRID": { + "label": "cim:IdentifiedObject.mRID", + "data_type": "String", + "data_type_prim": "String" + }, + "name": { + "label": "cim:IdentifiedObject.name", + "data_type": "String", + "data_type_prim": "String" + }, + "description": { + "label": "cim:IdentifiedObject.description", + "data_type": "String", + "data_type_prim": "String" + }, + "energyIdentCodeEic": { + "label": "entsoe:IdentifiedObject.energyIdentCodeEic", + "data_type": "String", + "data_type_prim": "String" + }, + "shortName": { + "label": "entsoe:IdentifiedObject.shortName", + "data_type": "String", + "data_type_prim": "String" + } + } + }, + "GeographicalRegion": { + "rdf_type": " rdf:ID=\"", + "label": "cim:GeographicalRegion", + "fields": { + "Regions": { + "label": "cim:GeographicalRegion.Regions", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#SubGeographicalRegion.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#SubGeographicalRegion." + }, + "mRID": { + "label": "cim:IdentifiedObject.mRID", + "data_type": "String", + "data_type_prim": "String" + }, + "name": { + "label": "cim:IdentifiedObject.name", + "data_type": "String", + "data_type_prim": "String" + }, + "description": { + "label": "cim:IdentifiedObject.description", + "data_type": "String", + "data_type_prim": "String" + }, + "energyIdentCodeEic": { + "label": "entsoe:IdentifiedObject.energyIdentCodeEic", + "data_type": "String", + "data_type_prim": "String" + }, + "shortName": { + "label": "entsoe:IdentifiedObject.shortName", + "data_type": "String", + "data_type_prim": "String" + } + } + }, + "SubGeographicalRegion": { + "rdf_type": " rdf:ID=\"", + "label": "cim:SubGeographicalRegion", + "fields": { + "DCLines": { + "label": "cim:SubGeographicalRegion.DCLines", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#DCLine.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#DCLine." + }, + "Region": { + "label": "cim:SubGeographicalRegion.Region", + "data_type": " rdf:resource=\"#", + "data_type_prim": " rdf:resource=\"#" + }, + "Lines": { + "label": "cim:SubGeographicalRegion.Lines", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Line.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Line." + }, + "Substations": { + "label": "cim:SubGeographicalRegion.Substations", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Substation.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Substation." + }, + "mRID": { + "label": "cim:IdentifiedObject.mRID", + "data_type": "String", + "data_type_prim": "String" + }, + "name": { + "label": "cim:IdentifiedObject.name", + "data_type": "String", + "data_type_prim": "String" + }, + "description": { + "label": "cim:IdentifiedObject.description", + "data_type": "String", + "data_type_prim": "String" + }, + "energyIdentCodeEic": { + "label": "entsoe:IdentifiedObject.energyIdentCodeEic", + "data_type": "String", + "data_type_prim": "String" + }, + "shortName": { + "label": "entsoe:IdentifiedObject.shortName", + "data_type": "String", + "data_type_prim": "String" + } + } + }, + "VoltageLevel": { + "rdf_type": " rdf:ID=\"", + "label": "cim:VoltageLevel", + "fields": { + "Bays": { + "label": "cim:VoltageLevel.Bays", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Bay.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Bay." + }, + "lowVoltageLimit": { + "label": "cim:VoltageLevel.lowVoltageLimit", + "data_type": "Voltage", + "data_type_prim": "Float" + }, + "highVoltageLimit": { + "label": "cim:VoltageLevel.highVoltageLimit", + "data_type": "Voltage", + "data_type_prim": "Float" + }, + "BaseVoltage": { + "label": "cim:VoltageLevel.BaseVoltage", + "data_type": " rdf:resource=\"#", + "data_type_prim": " rdf:resource=\"#" + }, + "Substation": { + "label": "cim:VoltageLevel.Substation", + "data_type": " rdf:resource=\"#", + "data_type_prim": " rdf:resource=\"#" + }, + "Equipments": { + "label": "cim:EquipmentContainer.Equipments", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Equipment.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Equipment." + }, + "ConnectivityNodes": { + "label": "cim:ConnectivityNodeContainer.ConnectivityNodes", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#ConnectivityNode.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#ConnectivityNode." + }, + "Measurements": { + "label": "cim:PowerSystemResource.Measurements", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Measurement.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Measurement." + }, + "Controls": { + "label": "cim:PowerSystemResource.Controls", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Control.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Control." + }, + "mRID": { + "label": "cim:IdentifiedObject.mRID", + "data_type": "String", + "data_type_prim": "String" + }, + "name": { + "label": "cim:IdentifiedObject.name", + "data_type": "String", + "data_type_prim": "String" + }, + "description": { + "label": "cim:IdentifiedObject.description", + "data_type": "String", + "data_type_prim": "String" + }, + "energyIdentCodeEic": { + "label": "entsoe:IdentifiedObject.energyIdentCodeEic", + "data_type": "String", + "data_type_prim": "String" + }, + "shortName": { + "label": "entsoe:IdentifiedObject.shortName", + "data_type": "String", + "data_type_prim": "String" + } + } + }, + "BaseVoltage": { + "rdf_type": " rdf:ID=\"", + "label": "cim:BaseVoltage", + "fields": { + "TransformerEnds": { + "label": "cim:BaseVoltage.TransformerEnds", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#TransformerEnd.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#TransformerEnd." + }, + "ConductingEquipment": { + "label": "cim:BaseVoltage.ConductingEquipment", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#ConductingEquipment.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#ConductingEquipment." + }, + "VoltageLevel": { + "label": "cim:BaseVoltage.VoltageLevel", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#VoltageLevel.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#VoltageLevel." + }, + "nominalVoltage": { + "label": "cim:BaseVoltage.nominalVoltage", + "data_type": "Voltage", + "data_type_prim": "Float" + }, + "mRID": { + "label": "cim:IdentifiedObject.mRID", + "data_type": "String", + "data_type_prim": "String" + }, + "name": { + "label": "cim:IdentifiedObject.name", + "data_type": "String", + "data_type_prim": "String" + }, + "description": { + "label": "cim:IdentifiedObject.description", + "data_type": "String", + "data_type_prim": "String" + }, + "energyIdentCodeEic": { + "label": "entsoe:IdentifiedObject.energyIdentCodeEic", + "data_type": "String", + "data_type_prim": "String" + }, + "shortName": { + "label": "entsoe:IdentifiedObject.shortName", + "data_type": "String", + "data_type_prim": "String" + } + } + }, + "ExternalNetworkInjection": { + "rdf_type": " rdf:ID=\"", + "label": "cim:ExternalNetworkInjection", + "fields": { + "minQ": { + "label": "cim:ExternalNetworkInjection.minQ", + "data_type": "ReactivePower", + "data_type_prim": "Float" + }, + "maxInitialSymShCCurrent": { + "label": "cim:ExternalNetworkInjection.maxInitialSymShCCurrent", + "data_type": "CurrentFlow", + "data_type_prim": "Float" + }, + "maxP": { + "label": "cim:ExternalNetworkInjection.maxP", + "data_type": "ActivePower", + "data_type_prim": "Float" + }, + "governorSCD": { + "label": "cim:ExternalNetworkInjection.governorSCD", + "data_type": "ActivePowerPerFrequency", + "data_type_prim": "Float" + }, + "maxQ": { + "label": "cim:ExternalNetworkInjection.maxQ", + "data_type": "ReactivePower", + "data_type_prim": "Float" + }, + "maxR1ToX1Ratio": { + "label": "cim:ExternalNetworkInjection.maxR1ToX1Ratio", + "data_type": "Simple_Float", + "data_type_prim": "Float" + }, + "minR1ToX1Ratio": { + "label": "cim:ExternalNetworkInjection.minR1ToX1Ratio", + "data_type": "Simple_Float", + "data_type_prim": "Float" + }, + "maxR0ToX0Ratio": { + "label": "cim:ExternalNetworkInjection.maxR0ToX0Ratio", + "data_type": "Simple_Float", + "data_type_prim": "Float" + }, + "ikSecond": { + "label": "cim:ExternalNetworkInjection.ikSecond", + "data_type": "Boolean", + "data_type_prim": "Boolean" + }, + "minR0ToX0Ratio": { + "label": "cim:ExternalNetworkInjection.minR0ToX0Ratio", + "data_type": "Simple_Float", + "data_type_prim": "Float" + }, + "minInitialSymShCCurrent": { + "label": "cim:ExternalNetworkInjection.minInitialSymShCCurrent", + "data_type": "CurrentFlow", + "data_type_prim": "Float" + }, + "voltageFactor": { + "label": "cim:ExternalNetworkInjection.voltageFactor", + "data_type": "PU", + "data_type_prim": "Float" + }, + "minP": { + "label": "cim:ExternalNetworkInjection.minP", + "data_type": "ActivePower", + "data_type_prim": "Float" + }, + "minZ0ToZ1Ratio": { + "label": "cim:ExternalNetworkInjection.minZ0ToZ1Ratio", + "data_type": "Simple_Float", + "data_type_prim": "Float" + }, + "maxZ0ToZ1Ratio": { + "label": "cim:ExternalNetworkInjection.maxZ0ToZ1Ratio", + "data_type": "Simple_Float", + "data_type_prim": "Float" + }, + "RegulatingControl": { + "label": "cim:RegulatingCondEq.RegulatingControl", + "data_type": " rdf:resource=\"#", + "data_type_prim": " rdf:resource=\"#" + }, + "Terminals": { + "label": "cim:ConductingEquipment.Terminals", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Terminal.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Terminal." + }, + "BaseVoltage": { + "label": "cim:ConductingEquipment.BaseVoltage", + "data_type": " rdf:resource=\"#", + "data_type_prim": " rdf:resource=\"#" + }, + "EquipmentContainer": { + "label": "cim:Equipment.EquipmentContainer", + "data_type": " rdf:resource=\"#", + "data_type_prim": " rdf:resource=\"#" + }, + "aggregate": { + "label": "cim:Equipment.aggregate", + "data_type": "Boolean", + "data_type_prim": "Boolean" + }, + "OperationalLimitSet": { + "label": "cim:Equipment.OperationalLimitSet", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#OperationalLimitSet.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#OperationalLimitSet." + }, + "Measurements": { + "label": "cim:PowerSystemResource.Measurements", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Measurement.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Measurement." + }, + "Controls": { + "label": "cim:PowerSystemResource.Controls", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Control.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Control." + }, + "mRID": { + "label": "cim:IdentifiedObject.mRID", + "data_type": "String", + "data_type_prim": "String" + }, + "name": { + "label": "cim:IdentifiedObject.name", + "data_type": "String", + "data_type_prim": "String" + }, + "description": { + "label": "cim:IdentifiedObject.description", + "data_type": "String", + "data_type_prim": "String" + }, + "energyIdentCodeEic": { + "label": "entsoe:IdentifiedObject.energyIdentCodeEic", + "data_type": "String", + "data_type_prim": "String" + }, + "shortName": { + "label": "entsoe:IdentifiedObject.shortName", + "data_type": "String", + "data_type_prim": "String" + } + } + }, + "ACLineSegment": { + "rdf_type": " rdf:ID=\"", + "label": "cim:ACLineSegment", + "fields": { + "r": { + "label": "cim:ACLineSegment.r", + "data_type": "Resistance", + "data_type_prim": "Float" + }, + "shortCircuitEndTemperature": { + "label": "cim:ACLineSegment.shortCircuitEndTemperature", + "data_type": "Temperature", + "data_type_prim": "Float" + }, + "r0": { + "label": "cim:ACLineSegment.r0", + "data_type": "Resistance", + "data_type_prim": "Float" + }, + "x0": { + "label": "cim:ACLineSegment.x0", + "data_type": "Reactance", + "data_type_prim": "Float" + }, + "gch": { + "label": "cim:ACLineSegment.gch", + "data_type": "Conductance", + "data_type_prim": "Float" + }, + "b0ch": { + "label": "cim:ACLineSegment.b0ch", + "data_type": "Susceptance", + "data_type_prim": "Float" + }, + "x": { + "label": "cim:ACLineSegment.x", + "data_type": "Reactance", + "data_type_prim": "Float" + }, + "g0ch": { + "label": "cim:ACLineSegment.g0ch", + "data_type": "Conductance", + "data_type_prim": "Float" + }, + "bch": { + "label": "cim:ACLineSegment.bch", + "data_type": "Susceptance", + "data_type_prim": "Float" + }, + "length": { + "label": "cim:Conductor.length", + "data_type": "Length", + "data_type_prim": "Float" + }, + "Terminals": { + "label": "cim:ConductingEquipment.Terminals", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Terminal.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Terminal." + }, + "BaseVoltage": { + "label": "cim:ConductingEquipment.BaseVoltage", + "data_type": " rdf:resource=\"#", + "data_type_prim": " rdf:resource=\"#" + }, + "EquipmentContainer": { + "label": "cim:Equipment.EquipmentContainer", + "data_type": " rdf:resource=\"#", + "data_type_prim": " rdf:resource=\"#" + }, + "aggregate": { + "label": "cim:Equipment.aggregate", + "data_type": "Boolean", + "data_type_prim": "Boolean" + }, + "OperationalLimitSet": { + "label": "cim:Equipment.OperationalLimitSet", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#OperationalLimitSet.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#OperationalLimitSet." + }, + "Measurements": { + "label": "cim:PowerSystemResource.Measurements", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Measurement.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Measurement." + }, + "Controls": { + "label": "cim:PowerSystemResource.Controls", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Control.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Control." + }, + "mRID": { + "label": "cim:IdentifiedObject.mRID", + "data_type": "String", + "data_type_prim": "String" + }, + "name": { + "label": "cim:IdentifiedObject.name", + "data_type": "String", + "data_type_prim": "String" + }, + "description": { + "label": "cim:IdentifiedObject.description", + "data_type": "String", + "data_type_prim": "String" + }, + "energyIdentCodeEic": { + "label": "entsoe:IdentifiedObject.energyIdentCodeEic", + "data_type": "String", + "data_type_prim": "String" + }, + "shortName": { + "label": "entsoe:IdentifiedObject.shortName", + "data_type": "String", + "data_type_prim": "String" + } + } + }, + "Terminal": { + "rdf_type": " rdf:ID=\"", + "label": "cim:Terminal", + "fields": { + "ConverterDCSides": { + "label": "cim:Terminal.ConverterDCSides", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#ACDCConverter.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#ACDCConverter." + }, + "RegulatingControl": { + "label": "cim:Terminal.RegulatingControl", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#RegulatingControl.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#RegulatingControl." + }, + "TieFlow": { + "label": "cim:Terminal.TieFlow", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#TieFlow.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#TieFlow." + }, + "phases": { + "label": "cim:Terminal.phases", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#PhaseCode.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#PhaseCode." + }, + "TransformerEnd": { + "label": "cim:Terminal.TransformerEnd", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#TransformerEnd.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#TransformerEnd." + }, + "ConnectivityNode": { + "label": "cim:Terminal.ConnectivityNode", + "data_type": " rdf:resource=\"#", + "data_type_prim": " rdf:resource=\"#" + }, + "ConductingEquipment": { + "label": "cim:Terminal.ConductingEquipment", + "data_type": " rdf:resource=\"#", + "data_type_prim": " rdf:resource=\"#" + }, + "HasSecondMutualCoupling": { + "label": "cim:Terminal.HasSecondMutualCoupling", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#MutualCoupling.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#MutualCoupling." + }, + "HasFirstMutualCoupling": { + "label": "cim:Terminal.HasFirstMutualCoupling", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#MutualCoupling.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#MutualCoupling." + }, + "BusNameMarker": { + "label": "cim:ACDCTerminal.BusNameMarker", + "data_type": " rdf:resource=\"#", + "data_type_prim": " rdf:resource=\"#" + }, + "OperationalLimitSet": { + "label": "cim:ACDCTerminal.OperationalLimitSet", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#OperationalLimitSet.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#OperationalLimitSet." + }, + "Measurements": { + "label": "cim:ACDCTerminal.Measurements", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Measurement.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Measurement." + }, + "sequenceNumber": { + "label": "cim:ACDCTerminal.sequenceNumber", + "data_type": "Integer", + "data_type_prim": "Integer" + }, + "mRID": { + "label": "cim:IdentifiedObject.mRID", + "data_type": "String", + "data_type_prim": "String" + }, + "name": { + "label": "cim:IdentifiedObject.name", + "data_type": "String", + "data_type_prim": "String" + }, + "description": { + "label": "cim:IdentifiedObject.description", + "data_type": "String", + "data_type_prim": "String" + }, + "energyIdentCodeEic": { + "label": "entsoe:IdentifiedObject.energyIdentCodeEic", + "data_type": "String", + "data_type_prim": "String" + }, + "shortName": { + "label": "entsoe:IdentifiedObject.shortName", + "data_type": "String", + "data_type_prim": "String" + } + } + }, + "OperationalLimitSet": { + "rdf_type": " rdf:ID=\"", + "label": "cim:OperationalLimitSet", + "fields": { + "Terminal": { + "label": "cim:OperationalLimitSet.Terminal", + "data_type": " rdf:resource=\"#", + "data_type_prim": " rdf:resource=\"#" + }, + "OperationalLimitValue": { + "label": "cim:OperationalLimitSet.OperationalLimitValue", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#OperationalLimit.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#OperationalLimit." + }, + "Equipment": { + "label": "cim:OperationalLimitSet.Equipment", + "data_type": " rdf:resource=\"#", + "data_type_prim": " rdf:resource=\"#" + }, + "mRID": { + "label": "cim:IdentifiedObject.mRID", + "data_type": "String", + "data_type_prim": "String" + }, + "name": { + "label": "cim:IdentifiedObject.name", + "data_type": "String", + "data_type_prim": "String" + }, + "description": { + "label": "cim:IdentifiedObject.description", + "data_type": "String", + "data_type_prim": "String" + }, + "energyIdentCodeEic": { + "label": "entsoe:IdentifiedObject.energyIdentCodeEic", + "data_type": "String", + "data_type_prim": "String" + }, + "shortName": { + "label": "entsoe:IdentifiedObject.shortName", + "data_type": "String", + "data_type_prim": "String" + } + } + }, + "OperationalLimitType": { + "rdf_type": " rdf:ID=\"", + "label": "cim:OperationalLimitType", + "fields": { + "direction": { + "label": "cim:OperationalLimitType.direction", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#OperationalLimitDirectionKind.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#OperationalLimitDirectionKind." + }, + "acceptableDuration": { + "label": "cim:OperationalLimitType.acceptableDuration", + "data_type": "Seconds", + "data_type_prim": "Float" + }, + "limitType": { + "label": "entsoe:OperationalLimitType.limitType", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#LimitTypeKind.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#LimitTypeKind." + }, + "OperationalLimit": { + "label": "cim:OperationalLimitType.OperationalLimit", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#OperationalLimit.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#OperationalLimit." + }, + "mRID": { + "label": "cim:IdentifiedObject.mRID", + "data_type": "String", + "data_type_prim": "String" + }, + "name": { + "label": "cim:IdentifiedObject.name", + "data_type": "String", + "data_type_prim": "String" + }, + "description": { + "label": "cim:IdentifiedObject.description", + "data_type": "String", + "data_type_prim": "String" + }, + "energyIdentCodeEic": { + "label": "entsoe:IdentifiedObject.energyIdentCodeEic", + "data_type": "String", + "data_type_prim": "String" + }, + "shortName": { + "label": "entsoe:IdentifiedObject.shortName", + "data_type": "String", + "data_type_prim": "String" + } + } + }, + "CurrentLimit": { + "rdf_type": " rdf:ID=\"", + "label": "cim:CurrentLimit", + "fields": { + "value": { + "label": "cim:CurrentLimit.value", + "data_type": "CurrentFlow", + "data_type_prim": "Float" + }, + "OperationalLimitType": { + "label": "cim:OperationalLimit.OperationalLimitType", + "data_type": " rdf:resource=\"#", + "data_type_prim": " rdf:resource=\"#" + }, + "OperationalLimitSet": { + "label": "cim:OperationalLimit.OperationalLimitSet", + "data_type": " rdf:resource=\"#", + "data_type_prim": " rdf:resource=\"#" + }, + "mRID": { + "label": "cim:IdentifiedObject.mRID", + "data_type": "String", + "data_type_prim": "String" + }, + "name": { + "label": "cim:IdentifiedObject.name", + "data_type": "String", + "data_type_prim": "String" + }, + "description": { + "label": "cim:IdentifiedObject.description", + "data_type": "String", + "data_type_prim": "String" + }, + "energyIdentCodeEic": { + "label": "entsoe:IdentifiedObject.energyIdentCodeEic", + "data_type": "String", + "data_type_prim": "String" + }, + "shortName": { + "label": "entsoe:IdentifiedObject.shortName", + "data_type": "String", + "data_type_prim": "String" + } + } + }, + "VoltageLimit": { + "rdf_type": " rdf:ID=\"", + "label": "cim:VoltageLimit", + "fields": { + "value": { + "label": "cim:VoltageLimit.value", + "data_type": "Voltage", + "data_type_prim": "Float" + }, + "OperationalLimitType": { + "label": "cim:OperationalLimit.OperationalLimitType", + "data_type": " rdf:resource=\"#", + "data_type_prim": " rdf:resource=\"#" + }, + "OperationalLimitSet": { + "label": "cim:OperationalLimit.OperationalLimitSet", + "data_type": " rdf:resource=\"#", + "data_type_prim": " rdf:resource=\"#" + }, + "mRID": { + "label": "cim:IdentifiedObject.mRID", + "data_type": "String", + "data_type_prim": "String" + }, + "name": { + "label": "cim:IdentifiedObject.name", + "data_type": "String", + "data_type_prim": "String" + }, + "description": { + "label": "cim:IdentifiedObject.description", + "data_type": "String", + "data_type_prim": "String" + }, + "energyIdentCodeEic": { + "label": "entsoe:IdentifiedObject.energyIdentCodeEic", + "data_type": "String", + "data_type_prim": "String" + }, + "shortName": { + "label": "entsoe:IdentifiedObject.shortName", + "data_type": "String", + "data_type_prim": "String" + } + } + }, + "DCNode": { + "rdf_type": " rdf:ID=\"", + "label": "cim:DCNode", + "fields": { + "DCTerminals": { + "label": "cim:DCNode.DCTerminals", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#DCBaseTerminal.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#DCBaseTerminal." + }, + "DCEquipmentContainer": { + "label": "cim:DCNode.DCEquipmentContainer", + "data_type": " rdf:resource=\"#", + "data_type_prim": " rdf:resource=\"#" + }, + "mRID": { + "label": "cim:IdentifiedObject.mRID", + "data_type": "String", + "data_type_prim": "String" + }, + "name": { + "label": "cim:IdentifiedObject.name", + "data_type": "String", + "data_type_prim": "String" + }, + "description": { + "label": "cim:IdentifiedObject.description", + "data_type": "String", + "data_type_prim": "String" + }, + "energyIdentCodeEic": { + "label": "entsoe:IdentifiedObject.energyIdentCodeEic", + "data_type": "String", + "data_type_prim": "String" + }, + "shortName": { + "label": "entsoe:IdentifiedObject.shortName", + "data_type": "String", + "data_type_prim": "String" + } + } + }, + "DCEquipmentContainer": { + "rdf_type": " rdf:ID=\"", + "label": "cim:DCEquipmentContainer", + "fields": { + "DCNodes": { + "label": "cim:DCEquipmentContainer.DCNodes", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#DCNode.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#DCNode." + }, + "Equipments": { + "label": "cim:EquipmentContainer.Equipments", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Equipment.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Equipment." + }, + "ConnectivityNodes": { + "label": "cim:ConnectivityNodeContainer.ConnectivityNodes", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#ConnectivityNode.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#ConnectivityNode." + }, + "Measurements": { + "label": "cim:PowerSystemResource.Measurements", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Measurement.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Measurement." + }, + "Controls": { + "label": "cim:PowerSystemResource.Controls", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Control.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Control." + }, + "mRID": { + "label": "cim:IdentifiedObject.mRID", + "data_type": "String", + "data_type_prim": "String" + }, + "name": { + "label": "cim:IdentifiedObject.name", + "data_type": "String", + "data_type_prim": "String" + }, + "description": { + "label": "cim:IdentifiedObject.description", + "data_type": "String", + "data_type_prim": "String" + }, + "energyIdentCodeEic": { + "label": "entsoe:IdentifiedObject.energyIdentCodeEic", + "data_type": "String", + "data_type_prim": "String" + }, + "shortName": { + "label": "entsoe:IdentifiedObject.shortName", + "data_type": "String", + "data_type_prim": "String" + } + } + }, + "DCConverterUnit": { + "rdf_type": " rdf:ID=\"", + "label": "cim:DCConverterUnit", + "fields": { + "operationMode": { + "label": "cim:DCConverterUnit.operationMode", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#DCConverterOperatingModeKind.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#DCConverterOperatingModeKind." + }, + "Substation": { + "label": "cim:DCConverterUnit.Substation", + "data_type": " rdf:resource=\"#", + "data_type_prim": " rdf:resource=\"#" + }, + "DCNodes": { + "label": "cim:DCEquipmentContainer.DCNodes", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#DCNode.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#DCNode." + }, + "Equipments": { + "label": "cim:EquipmentContainer.Equipments", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Equipment.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Equipment." + }, + "ConnectivityNodes": { + "label": "cim:ConnectivityNodeContainer.ConnectivityNodes", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#ConnectivityNode.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#ConnectivityNode." + }, + "Measurements": { + "label": "cim:PowerSystemResource.Measurements", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Measurement.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Measurement." + }, + "Controls": { + "label": "cim:PowerSystemResource.Controls", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Control.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Control." + }, + "mRID": { + "label": "cim:IdentifiedObject.mRID", + "data_type": "String", + "data_type_prim": "String" + }, + "name": { + "label": "cim:IdentifiedObject.name", + "data_type": "String", + "data_type_prim": "String" + }, + "description": { + "label": "cim:IdentifiedObject.description", + "data_type": "String", + "data_type_prim": "String" + }, + "energyIdentCodeEic": { + "label": "entsoe:IdentifiedObject.energyIdentCodeEic", + "data_type": "String", + "data_type_prim": "String" + }, + "shortName": { + "label": "entsoe:IdentifiedObject.shortName", + "data_type": "String", + "data_type_prim": "String" + } + } + }, + "DCLineSegment": { + "rdf_type": " rdf:ID=\"", + "label": "cim:DCLineSegment", + "fields": { + "capacitance": { + "label": "cim:DCLineSegment.capacitance", + "data_type": "Capacitance", + "data_type_prim": "Float" + }, + "inductance": { + "label": "cim:DCLineSegment.inductance", + "data_type": "Inductance", + "data_type_prim": "Float" + }, + "PerLengthParameter": { + "label": "cim:DCLineSegment.PerLengthParameter", + "data_type": " rdf:resource=\"#", + "data_type_prim": " rdf:resource=\"#" + }, + "length": { + "label": "cim:DCLineSegment.length", + "data_type": "Length", + "data_type_prim": "Float" + }, + "resistance": { + "label": "cim:DCLineSegment.resistance", + "data_type": "Resistance", + "data_type_prim": "Float" + }, + "DCTerminals": { + "label": "cim:DCConductingEquipment.DCTerminals", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#DCTerminal.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#DCTerminal." + }, + "EquipmentContainer": { + "label": "cim:Equipment.EquipmentContainer", + "data_type": " rdf:resource=\"#", + "data_type_prim": " rdf:resource=\"#" + }, + "aggregate": { + "label": "cim:Equipment.aggregate", + "data_type": "Boolean", + "data_type_prim": "Boolean" + }, + "OperationalLimitSet": { + "label": "cim:Equipment.OperationalLimitSet", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#OperationalLimitSet.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#OperationalLimitSet." + }, + "Measurements": { + "label": "cim:PowerSystemResource.Measurements", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Measurement.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Measurement." + }, + "Controls": { + "label": "cim:PowerSystemResource.Controls", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Control.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Control." + }, + "mRID": { + "label": "cim:IdentifiedObject.mRID", + "data_type": "String", + "data_type_prim": "String" + }, + "name": { + "label": "cim:IdentifiedObject.name", + "data_type": "String", + "data_type_prim": "String" + }, + "description": { + "label": "cim:IdentifiedObject.description", + "data_type": "String", + "data_type_prim": "String" + }, + "energyIdentCodeEic": { + "label": "entsoe:IdentifiedObject.energyIdentCodeEic", + "data_type": "String", + "data_type_prim": "String" + }, + "shortName": { + "label": "entsoe:IdentifiedObject.shortName", + "data_type": "String", + "data_type_prim": "String" + } + } + }, + "CsConverter": { + "rdf_type": " rdf:ID=\"", + "label": "cim:CsConverter", + "fields": { + "minAlpha": { + "label": "cim:CsConverter.minAlpha", + "data_type": "AngleDegrees", + "data_type_prim": "Float" + }, + "ratedIdc": { + "label": "cim:CsConverter.ratedIdc", + "data_type": "CurrentFlow", + "data_type_prim": "Float" + }, + "minIdc": { + "label": "cim:CsConverter.minIdc", + "data_type": "CurrentFlow", + "data_type_prim": "Float" + }, + "maxGamma": { + "label": "cim:CsConverter.maxGamma", + "data_type": "AngleDegrees", + "data_type_prim": "Float" + }, + "minGamma": { + "label": "cim:CsConverter.minGamma", + "data_type": "AngleDegrees", + "data_type_prim": "Float" + }, + "maxAlpha": { + "label": "cim:CsConverter.maxAlpha", + "data_type": "AngleDegrees", + "data_type_prim": "Float" + }, + "maxIdc": { + "label": "cim:CsConverter.maxIdc", + "data_type": "CurrentFlow", + "data_type_prim": "Float" + }, + "PccTerminal": { + "label": "cim:ACDCConverter.PccTerminal", + "data_type": " rdf:resource=\"#", + "data_type_prim": " rdf:resource=\"#" + }, + "maxUdc": { + "label": "cim:ACDCConverter.maxUdc", + "data_type": "Voltage", + "data_type_prim": "Float" + }, + "switchingLoss": { + "label": "cim:ACDCConverter.switchingLoss", + "data_type": "ActivePowerPerCurrentFlow", + "data_type_prim": "Float" + }, + "ratedUdc": { + "label": "cim:ACDCConverter.ratedUdc", + "data_type": "Voltage", + "data_type_prim": "Float" + }, + "valveU0": { + "label": "cim:ACDCConverter.valveU0", + "data_type": "Voltage", + "data_type_prim": "Float" + }, + "DCTerminals": { + "label": "cim:ACDCConverter.DCTerminals", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#ACDCConverterDCTerminal.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#ACDCConverterDCTerminal." + }, + "baseS": { + "label": "cim:ACDCConverter.baseS", + "data_type": "ApparentPower", + "data_type_prim": "Float" + }, + "numberOfValves": { + "label": "cim:ACDCConverter.numberOfValves", + "data_type": "Integer", + "data_type_prim": "Integer" + }, + "minUdc": { + "label": "cim:ACDCConverter.minUdc", + "data_type": "Voltage", + "data_type_prim": "Float" + }, + "idleLoss": { + "label": "cim:ACDCConverter.idleLoss", + "data_type": "ActivePower", + "data_type_prim": "Float" + }, + "resistiveLoss": { + "label": "cim:ACDCConverter.resistiveLoss", + "data_type": "Resistance", + "data_type_prim": "Float" + }, + "Terminals": { + "label": "cim:ConductingEquipment.Terminals", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Terminal.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Terminal." + }, + "BaseVoltage": { + "label": "cim:ConductingEquipment.BaseVoltage", + "data_type": " rdf:resource=\"#", + "data_type_prim": " rdf:resource=\"#" + }, + "EquipmentContainer": { + "label": "cim:Equipment.EquipmentContainer", + "data_type": " rdf:resource=\"#", + "data_type_prim": " rdf:resource=\"#" + }, + "aggregate": { + "label": "cim:Equipment.aggregate", + "data_type": "Boolean", + "data_type_prim": "Boolean" + }, + "OperationalLimitSet": { + "label": "cim:Equipment.OperationalLimitSet", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#OperationalLimitSet.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#OperationalLimitSet." + }, + "Measurements": { + "label": "cim:PowerSystemResource.Measurements", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Measurement.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Measurement." + }, + "Controls": { + "label": "cim:PowerSystemResource.Controls", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Control.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Control." + }, + "mRID": { + "label": "cim:IdentifiedObject.mRID", + "data_type": "String", + "data_type_prim": "String" + }, + "name": { + "label": "cim:IdentifiedObject.name", + "data_type": "String", + "data_type_prim": "String" + }, + "description": { + "label": "cim:IdentifiedObject.description", + "data_type": "String", + "data_type_prim": "String" + }, + "energyIdentCodeEic": { + "label": "entsoe:IdentifiedObject.energyIdentCodeEic", + "data_type": "String", + "data_type_prim": "String" + }, + "shortName": { + "label": "entsoe:IdentifiedObject.shortName", + "data_type": "String", + "data_type_prim": "String" + } + } + }, + "VsConverter": { + "rdf_type": " rdf:ID=\"", + "label": "cim:VsConverter", + "fields": { + "maxValveCurrent": { + "label": "cim:VsConverter.maxValveCurrent", + "data_type": "CurrentFlow", + "data_type_prim": "Float" + }, + "maxModulationIndex": { + "label": "cim:VsConverter.maxModulationIndex", + "data_type": "Simple_Float", + "data_type_prim": "Float" + }, + "CapabilityCurve": { + "label": "cim:VsConverter.CapabilityCurve", + "data_type": " rdf:resource=\"#", + "data_type_prim": " rdf:resource=\"#" + }, + "PccTerminal": { + "label": "cim:ACDCConverter.PccTerminal", + "data_type": " rdf:resource=\"#", + "data_type_prim": " rdf:resource=\"#" + }, + "maxUdc": { + "label": "cim:ACDCConverter.maxUdc", + "data_type": "Voltage", + "data_type_prim": "Float" + }, + "switchingLoss": { + "label": "cim:ACDCConverter.switchingLoss", + "data_type": "ActivePowerPerCurrentFlow", + "data_type_prim": "Float" + }, + "ratedUdc": { + "label": "cim:ACDCConverter.ratedUdc", + "data_type": "Voltage", + "data_type_prim": "Float" + }, + "valveU0": { + "label": "cim:ACDCConverter.valveU0", + "data_type": "Voltage", + "data_type_prim": "Float" + }, + "DCTerminals": { + "label": "cim:ACDCConverter.DCTerminals", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#ACDCConverterDCTerminal.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#ACDCConverterDCTerminal." + }, + "baseS": { + "label": "cim:ACDCConverter.baseS", + "data_type": "ApparentPower", + "data_type_prim": "Float" + }, + "numberOfValves": { + "label": "cim:ACDCConverter.numberOfValves", + "data_type": "Integer", + "data_type_prim": "Integer" + }, + "minUdc": { + "label": "cim:ACDCConverter.minUdc", + "data_type": "Voltage", + "data_type_prim": "Float" + }, + "idleLoss": { + "label": "cim:ACDCConverter.idleLoss", + "data_type": "ActivePower", + "data_type_prim": "Float" + }, + "resistiveLoss": { + "label": "cim:ACDCConverter.resistiveLoss", + "data_type": "Resistance", + "data_type_prim": "Float" + }, + "Terminals": { + "label": "cim:ConductingEquipment.Terminals", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Terminal.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Terminal." + }, + "BaseVoltage": { + "label": "cim:ConductingEquipment.BaseVoltage", + "data_type": " rdf:resource=\"#", + "data_type_prim": " rdf:resource=\"#" + }, + "EquipmentContainer": { + "label": "cim:Equipment.EquipmentContainer", + "data_type": " rdf:resource=\"#", + "data_type_prim": " rdf:resource=\"#" + }, + "aggregate": { + "label": "cim:Equipment.aggregate", + "data_type": "Boolean", + "data_type_prim": "Boolean" + }, + "OperationalLimitSet": { + "label": "cim:Equipment.OperationalLimitSet", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#OperationalLimitSet.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#OperationalLimitSet." + }, + "Measurements": { + "label": "cim:PowerSystemResource.Measurements", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Measurement.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Measurement." + }, + "Controls": { + "label": "cim:PowerSystemResource.Controls", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Control.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Control." + }, + "mRID": { + "label": "cim:IdentifiedObject.mRID", + "data_type": "String", + "data_type_prim": "String" + }, + "name": { + "label": "cim:IdentifiedObject.name", + "data_type": "String", + "data_type_prim": "String" + }, + "description": { + "label": "cim:IdentifiedObject.description", + "data_type": "String", + "data_type_prim": "String" + }, + "energyIdentCodeEic": { + "label": "entsoe:IdentifiedObject.energyIdentCodeEic", + "data_type": "String", + "data_type_prim": "String" + }, + "shortName": { + "label": "entsoe:IdentifiedObject.shortName", + "data_type": "String", + "data_type_prim": "String" + } + } + }, + "DCTerminal": { + "rdf_type": " rdf:ID=\"", + "label": "cim:DCTerminal", + "fields": { + "DCConductingEquipment": { + "label": "cim:DCTerminal.DCConductingEquipment", + "data_type": " rdf:resource=\"#", + "data_type_prim": " rdf:resource=\"#" + }, + "DCNode": { + "label": "cim:DCBaseTerminal.DCNode", + "data_type": " rdf:resource=\"#", + "data_type_prim": " rdf:resource=\"#" + }, + "BusNameMarker": { + "label": "cim:ACDCTerminal.BusNameMarker", + "data_type": " rdf:resource=\"#", + "data_type_prim": " rdf:resource=\"#" + }, + "OperationalLimitSet": { + "label": "cim:ACDCTerminal.OperationalLimitSet", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#OperationalLimitSet.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#OperationalLimitSet." + }, + "Measurements": { + "label": "cim:ACDCTerminal.Measurements", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Measurement.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Measurement." + }, + "sequenceNumber": { + "label": "cim:ACDCTerminal.sequenceNumber", + "data_type": "Integer", + "data_type_prim": "Integer" + }, + "mRID": { + "label": "cim:IdentifiedObject.mRID", + "data_type": "String", + "data_type_prim": "String" + }, + "name": { + "label": "cim:IdentifiedObject.name", + "data_type": "String", + "data_type_prim": "String" + }, + "description": { + "label": "cim:IdentifiedObject.description", + "data_type": "String", + "data_type_prim": "String" + }, + "energyIdentCodeEic": { + "label": "entsoe:IdentifiedObject.energyIdentCodeEic", + "data_type": "String", + "data_type_prim": "String" + }, + "shortName": { + "label": "entsoe:IdentifiedObject.shortName", + "data_type": "String", + "data_type_prim": "String" + } + } + }, + "ACDCConverterDCTerminal": { + "rdf_type": " rdf:ID=\"", + "label": "cim:ACDCConverterDCTerminal", + "fields": { + "polarity": { + "label": "cim:ACDCConverterDCTerminal.polarity", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#DCPolarityKind.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#DCPolarityKind." + }, + "DCConductingEquipment": { + "label": "cim:ACDCConverterDCTerminal.DCConductingEquipment", + "data_type": " rdf:resource=\"#", + "data_type_prim": " rdf:resource=\"#" + }, + "DCNode": { + "label": "cim:DCBaseTerminal.DCNode", + "data_type": " rdf:resource=\"#", + "data_type_prim": " rdf:resource=\"#" + }, + "BusNameMarker": { + "label": "cim:ACDCTerminal.BusNameMarker", + "data_type": " rdf:resource=\"#", + "data_type_prim": " rdf:resource=\"#" + }, + "OperationalLimitSet": { + "label": "cim:ACDCTerminal.OperationalLimitSet", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#OperationalLimitSet.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#OperationalLimitSet." + }, + "Measurements": { + "label": "cim:ACDCTerminal.Measurements", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Measurement.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Measurement." + }, + "sequenceNumber": { + "label": "cim:ACDCTerminal.sequenceNumber", + "data_type": "Integer", + "data_type_prim": "Integer" + }, + "mRID": { + "label": "cim:IdentifiedObject.mRID", + "data_type": "String", + "data_type_prim": "String" + }, + "name": { + "label": "cim:IdentifiedObject.name", + "data_type": "String", + "data_type_prim": "String" + }, + "description": { + "label": "cim:IdentifiedObject.description", + "data_type": "String", + "data_type_prim": "String" + }, + "energyIdentCodeEic": { + "label": "entsoe:IdentifiedObject.energyIdentCodeEic", + "data_type": "String", + "data_type_prim": "String" + }, + "shortName": { + "label": "entsoe:IdentifiedObject.shortName", + "data_type": "String", + "data_type_prim": "String" + } + } + }, + "Breaker": { + "rdf_type": " rdf:ID=\"", + "label": "cim:Breaker", + "fields": { + "SwitchSchedules": { + "label": "cim:Switch.SwitchSchedules", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#SwitchSchedule.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#SwitchSchedule." + }, + "ratedCurrent": { + "label": "cim:Switch.ratedCurrent", + "data_type": "CurrentFlow", + "data_type_prim": "Float" + }, + "normalOpen": { + "label": "cim:Switch.normalOpen", + "data_type": "Boolean", + "data_type_prim": "Boolean" + }, + "retained": { + "label": "cim:Switch.retained", + "data_type": "Boolean", + "data_type_prim": "Boolean" + }, + "Terminals": { + "label": "cim:ConductingEquipment.Terminals", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Terminal.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Terminal." + }, + "BaseVoltage": { + "label": "cim:ConductingEquipment.BaseVoltage", + "data_type": " rdf:resource=\"#", + "data_type_prim": " rdf:resource=\"#" + }, + "EquipmentContainer": { + "label": "cim:Equipment.EquipmentContainer", + "data_type": " rdf:resource=\"#", + "data_type_prim": " rdf:resource=\"#" + }, + "aggregate": { + "label": "cim:Equipment.aggregate", + "data_type": "Boolean", + "data_type_prim": "Boolean" + }, + "OperationalLimitSet": { + "label": "cim:Equipment.OperationalLimitSet", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#OperationalLimitSet.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#OperationalLimitSet." + }, + "Measurements": { + "label": "cim:PowerSystemResource.Measurements", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Measurement.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Measurement." + }, + "Controls": { + "label": "cim:PowerSystemResource.Controls", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Control.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Control." + }, + "mRID": { + "label": "cim:IdentifiedObject.mRID", + "data_type": "String", + "data_type_prim": "String" + }, + "name": { + "label": "cim:IdentifiedObject.name", + "data_type": "String", + "data_type_prim": "String" + }, + "description": { + "label": "cim:IdentifiedObject.description", + "data_type": "String", + "data_type_prim": "String" + }, + "energyIdentCodeEic": { + "label": "entsoe:IdentifiedObject.energyIdentCodeEic", + "data_type": "String", + "data_type_prim": "String" + }, + "shortName": { + "label": "entsoe:IdentifiedObject.shortName", + "data_type": "String", + "data_type_prim": "String" + } + } + }, + "Disconnector": { + "rdf_type": " rdf:ID=\"", + "label": "cim:Disconnector", + "fields": { + "SwitchSchedules": { + "label": "cim:Switch.SwitchSchedules", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#SwitchSchedule.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#SwitchSchedule." + }, + "ratedCurrent": { + "label": "cim:Switch.ratedCurrent", + "data_type": "CurrentFlow", + "data_type_prim": "Float" + }, + "normalOpen": { + "label": "cim:Switch.normalOpen", + "data_type": "Boolean", + "data_type_prim": "Boolean" + }, + "retained": { + "label": "cim:Switch.retained", + "data_type": "Boolean", + "data_type_prim": "Boolean" + }, + "Terminals": { + "label": "cim:ConductingEquipment.Terminals", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Terminal.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Terminal." + }, + "BaseVoltage": { + "label": "cim:ConductingEquipment.BaseVoltage", + "data_type": " rdf:resource=\"#", + "data_type_prim": " rdf:resource=\"#" + }, + "EquipmentContainer": { + "label": "cim:Equipment.EquipmentContainer", + "data_type": " rdf:resource=\"#", + "data_type_prim": " rdf:resource=\"#" + }, + "aggregate": { + "label": "cim:Equipment.aggregate", + "data_type": "Boolean", + "data_type_prim": "Boolean" + }, + "OperationalLimitSet": { + "label": "cim:Equipment.OperationalLimitSet", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#OperationalLimitSet.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#OperationalLimitSet." + }, + "Measurements": { + "label": "cim:PowerSystemResource.Measurements", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Measurement.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Measurement." + }, + "Controls": { + "label": "cim:PowerSystemResource.Controls", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Control.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Control." + }, + "mRID": { + "label": "cim:IdentifiedObject.mRID", + "data_type": "String", + "data_type_prim": "String" + }, + "name": { + "label": "cim:IdentifiedObject.name", + "data_type": "String", + "data_type_prim": "String" + }, + "description": { + "label": "cim:IdentifiedObject.description", + "data_type": "String", + "data_type_prim": "String" + }, + "energyIdentCodeEic": { + "label": "entsoe:IdentifiedObject.energyIdentCodeEic", + "data_type": "String", + "data_type_prim": "String" + }, + "shortName": { + "label": "entsoe:IdentifiedObject.shortName", + "data_type": "String", + "data_type_prim": "String" + } + } + }, + "Switch": { + "rdf_type": " rdf:ID=\"", + "label": "cim:Switch", + "fields": { + "SwitchSchedules": { + "label": "cim:Switch.SwitchSchedules", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#SwitchSchedule.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#SwitchSchedule." + }, + "ratedCurrent": { + "label": "cim:Switch.ratedCurrent", + "data_type": "CurrentFlow", + "data_type_prim": "Float" + }, + "normalOpen": { + "label": "cim:Switch.normalOpen", + "data_type": "Boolean", + "data_type_prim": "Boolean" + }, + "retained": { + "label": "cim:Switch.retained", + "data_type": "Boolean", + "data_type_prim": "Boolean" + }, + "Terminals": { + "label": "cim:ConductingEquipment.Terminals", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Terminal.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Terminal." + }, + "BaseVoltage": { + "label": "cim:ConductingEquipment.BaseVoltage", + "data_type": " rdf:resource=\"#", + "data_type_prim": " rdf:resource=\"#" + }, + "EquipmentContainer": { + "label": "cim:Equipment.EquipmentContainer", + "data_type": " rdf:resource=\"#", + "data_type_prim": " rdf:resource=\"#" + }, + "aggregate": { + "label": "cim:Equipment.aggregate", + "data_type": "Boolean", + "data_type_prim": "Boolean" + }, + "OperationalLimitSet": { + "label": "cim:Equipment.OperationalLimitSet", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#OperationalLimitSet.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#OperationalLimitSet." + }, + "Measurements": { + "label": "cim:PowerSystemResource.Measurements", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Measurement.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Measurement." + }, + "Controls": { + "label": "cim:PowerSystemResource.Controls", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Control.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Control." + }, + "mRID": { + "label": "cim:IdentifiedObject.mRID", + "data_type": "String", + "data_type_prim": "String" + }, + "name": { + "label": "cim:IdentifiedObject.name", + "data_type": "String", + "data_type_prim": "String" + }, + "description": { + "label": "cim:IdentifiedObject.description", + "data_type": "String", + "data_type_prim": "String" + }, + "energyIdentCodeEic": { + "label": "entsoe:IdentifiedObject.energyIdentCodeEic", + "data_type": "String", + "data_type_prim": "String" + }, + "shortName": { + "label": "entsoe:IdentifiedObject.shortName", + "data_type": "String", + "data_type_prim": "String" + } + } + }, + "LoadBreakSwitch": { + "rdf_type": " rdf:ID=\"", + "label": "cim:LoadBreakSwitch", + "fields": { + "SwitchSchedules": { + "label": "cim:Switch.SwitchSchedules", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#SwitchSchedule.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#SwitchSchedule." + }, + "ratedCurrent": { + "label": "cim:Switch.ratedCurrent", + "data_type": "CurrentFlow", + "data_type_prim": "Float" + }, + "normalOpen": { + "label": "cim:Switch.normalOpen", + "data_type": "Boolean", + "data_type_prim": "Boolean" + }, + "retained": { + "label": "cim:Switch.retained", + "data_type": "Boolean", + "data_type_prim": "Boolean" + }, + "Terminals": { + "label": "cim:ConductingEquipment.Terminals", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Terminal.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Terminal." + }, + "BaseVoltage": { + "label": "cim:ConductingEquipment.BaseVoltage", + "data_type": " rdf:resource=\"#", + "data_type_prim": " rdf:resource=\"#" + }, + "EquipmentContainer": { + "label": "cim:Equipment.EquipmentContainer", + "data_type": " rdf:resource=\"#", + "data_type_prim": " rdf:resource=\"#" + }, + "aggregate": { + "label": "cim:Equipment.aggregate", + "data_type": "Boolean", + "data_type_prim": "Boolean" + }, + "OperationalLimitSet": { + "label": "cim:Equipment.OperationalLimitSet", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#OperationalLimitSet.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#OperationalLimitSet." + }, + "Measurements": { + "label": "cim:PowerSystemResource.Measurements", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Measurement.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Measurement." + }, + "Controls": { + "label": "cim:PowerSystemResource.Controls", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Control.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Control." + }, + "mRID": { + "label": "cim:IdentifiedObject.mRID", + "data_type": "String", + "data_type_prim": "String" + }, + "name": { + "label": "cim:IdentifiedObject.name", + "data_type": "String", + "data_type_prim": "String" + }, + "description": { + "label": "cim:IdentifiedObject.description", + "data_type": "String", + "data_type_prim": "String" + }, + "energyIdentCodeEic": { + "label": "entsoe:IdentifiedObject.energyIdentCodeEic", + "data_type": "String", + "data_type_prim": "String" + }, + "shortName": { + "label": "entsoe:IdentifiedObject.shortName", + "data_type": "String", + "data_type_prim": "String" + } + } + }, + "EnergyConsumer": { + "rdf_type": " rdf:ID=\"", + "label": "cim:EnergyConsumer", + "fields": { + "LoadResponse": { + "label": "cim:EnergyConsumer.LoadResponse", + "data_type": " rdf:resource=\"#", + "data_type_prim": " rdf:resource=\"#" + }, + "pfixedPct": { + "label": "cim:EnergyConsumer.pfixedPct", + "data_type": "PerCent", + "data_type_prim": "Float" + }, + "qfixed": { + "label": "cim:EnergyConsumer.qfixed", + "data_type": "ReactivePower", + "data_type_prim": "Float" + }, + "qfixedPct": { + "label": "cim:EnergyConsumer.qfixedPct", + "data_type": "PerCent", + "data_type_prim": "Float" + }, + "pfixed": { + "label": "cim:EnergyConsumer.pfixed", + "data_type": "ActivePower", + "data_type_prim": "Float" + }, + "Terminals": { + "label": "cim:ConductingEquipment.Terminals", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Terminal.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Terminal." + }, + "BaseVoltage": { + "label": "cim:ConductingEquipment.BaseVoltage", + "data_type": " rdf:resource=\"#", + "data_type_prim": " rdf:resource=\"#" + }, + "EquipmentContainer": { + "label": "cim:Equipment.EquipmentContainer", + "data_type": " rdf:resource=\"#", + "data_type_prim": " rdf:resource=\"#" + }, + "aggregate": { + "label": "cim:Equipment.aggregate", + "data_type": "Boolean", + "data_type_prim": "Boolean" + }, + "OperationalLimitSet": { + "label": "cim:Equipment.OperationalLimitSet", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#OperationalLimitSet.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#OperationalLimitSet." + }, + "Measurements": { + "label": "cim:PowerSystemResource.Measurements", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Measurement.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Measurement." + }, + "Controls": { + "label": "cim:PowerSystemResource.Controls", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Control.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Control." + }, + "mRID": { + "label": "cim:IdentifiedObject.mRID", + "data_type": "String", + "data_type_prim": "String" + }, + "name": { + "label": "cim:IdentifiedObject.name", + "data_type": "String", + "data_type_prim": "String" + }, + "description": { + "label": "cim:IdentifiedObject.description", + "data_type": "String", + "data_type_prim": "String" + }, + "energyIdentCodeEic": { + "label": "entsoe:IdentifiedObject.energyIdentCodeEic", + "data_type": "String", + "data_type_prim": "String" + }, + "shortName": { + "label": "entsoe:IdentifiedObject.shortName", + "data_type": "String", + "data_type_prim": "String" + } + } + }, + "ConformLoad": { + "rdf_type": " rdf:ID=\"", + "label": "cim:ConformLoad", + "fields": { + "LoadGroup": { + "label": "cim:ConformLoad.LoadGroup", + "data_type": " rdf:resource=\"#", + "data_type_prim": " rdf:resource=\"#" + }, + "LoadResponse": { + "label": "cim:EnergyConsumer.LoadResponse", + "data_type": " rdf:resource=\"#", + "data_type_prim": " rdf:resource=\"#" + }, + "pfixedPct": { + "label": "cim:EnergyConsumer.pfixedPct", + "data_type": "PerCent", + "data_type_prim": "Float" + }, + "qfixed": { + "label": "cim:EnergyConsumer.qfixed", + "data_type": "ReactivePower", + "data_type_prim": "Float" + }, + "qfixedPct": { + "label": "cim:EnergyConsumer.qfixedPct", + "data_type": "PerCent", + "data_type_prim": "Float" + }, + "pfixed": { + "label": "cim:EnergyConsumer.pfixed", + "data_type": "ActivePower", + "data_type_prim": "Float" + }, + "Terminals": { + "label": "cim:ConductingEquipment.Terminals", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Terminal.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Terminal." + }, + "BaseVoltage": { + "label": "cim:ConductingEquipment.BaseVoltage", + "data_type": " rdf:resource=\"#", + "data_type_prim": " rdf:resource=\"#" + }, + "EquipmentContainer": { + "label": "cim:Equipment.EquipmentContainer", + "data_type": " rdf:resource=\"#", + "data_type_prim": " rdf:resource=\"#" + }, + "aggregate": { + "label": "cim:Equipment.aggregate", + "data_type": "Boolean", + "data_type_prim": "Boolean" + }, + "OperationalLimitSet": { + "label": "cim:Equipment.OperationalLimitSet", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#OperationalLimitSet.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#OperationalLimitSet." + }, + "Measurements": { + "label": "cim:PowerSystemResource.Measurements", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Measurement.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Measurement." + }, + "Controls": { + "label": "cim:PowerSystemResource.Controls", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Control.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Control." + }, + "mRID": { + "label": "cim:IdentifiedObject.mRID", + "data_type": "String", + "data_type_prim": "String" + }, + "name": { + "label": "cim:IdentifiedObject.name", + "data_type": "String", + "data_type_prim": "String" + }, + "description": { + "label": "cim:IdentifiedObject.description", + "data_type": "String", + "data_type_prim": "String" + }, + "energyIdentCodeEic": { + "label": "entsoe:IdentifiedObject.energyIdentCodeEic", + "data_type": "String", + "data_type_prim": "String" + }, + "shortName": { + "label": "entsoe:IdentifiedObject.shortName", + "data_type": "String", + "data_type_prim": "String" + } + } + }, + "NonConformLoad": { + "rdf_type": " rdf:ID=\"", + "label": "cim:NonConformLoad", + "fields": { + "LoadGroup": { + "label": "cim:NonConformLoad.LoadGroup", + "data_type": " rdf:resource=\"#", + "data_type_prim": " rdf:resource=\"#" + }, + "LoadResponse": { + "label": "cim:EnergyConsumer.LoadResponse", + "data_type": " rdf:resource=\"#", + "data_type_prim": " rdf:resource=\"#" + }, + "pfixedPct": { + "label": "cim:EnergyConsumer.pfixedPct", + "data_type": "PerCent", + "data_type_prim": "Float" + }, + "qfixed": { + "label": "cim:EnergyConsumer.qfixed", + "data_type": "ReactivePower", + "data_type_prim": "Float" + }, + "qfixedPct": { + "label": "cim:EnergyConsumer.qfixedPct", + "data_type": "PerCent", + "data_type_prim": "Float" + }, + "pfixed": { + "label": "cim:EnergyConsumer.pfixed", + "data_type": "ActivePower", + "data_type_prim": "Float" + }, + "Terminals": { + "label": "cim:ConductingEquipment.Terminals", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Terminal.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Terminal." + }, + "BaseVoltage": { + "label": "cim:ConductingEquipment.BaseVoltage", + "data_type": " rdf:resource=\"#", + "data_type_prim": " rdf:resource=\"#" + }, + "EquipmentContainer": { + "label": "cim:Equipment.EquipmentContainer", + "data_type": " rdf:resource=\"#", + "data_type_prim": " rdf:resource=\"#" + }, + "aggregate": { + "label": "cim:Equipment.aggregate", + "data_type": "Boolean", + "data_type_prim": "Boolean" + }, + "OperationalLimitSet": { + "label": "cim:Equipment.OperationalLimitSet", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#OperationalLimitSet.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#OperationalLimitSet." + }, + "Measurements": { + "label": "cim:PowerSystemResource.Measurements", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Measurement.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Measurement." + }, + "Controls": { + "label": "cim:PowerSystemResource.Controls", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Control.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Control." + }, + "mRID": { + "label": "cim:IdentifiedObject.mRID", + "data_type": "String", + "data_type_prim": "String" + }, + "name": { + "label": "cim:IdentifiedObject.name", + "data_type": "String", + "data_type_prim": "String" + }, + "description": { + "label": "cim:IdentifiedObject.description", + "data_type": "String", + "data_type_prim": "String" + }, + "energyIdentCodeEic": { + "label": "entsoe:IdentifiedObject.energyIdentCodeEic", + "data_type": "String", + "data_type_prim": "String" + }, + "shortName": { + "label": "entsoe:IdentifiedObject.shortName", + "data_type": "String", + "data_type_prim": "String" + } + } + }, + "StationSupply": { + "rdf_type": " rdf:ID=\"", + "label": "cim:StationSupply", + "fields": { + "LoadResponse": { + "label": "cim:EnergyConsumer.LoadResponse", + "data_type": " rdf:resource=\"#", + "data_type_prim": " rdf:resource=\"#" + }, + "pfixedPct": { + "label": "cim:EnergyConsumer.pfixedPct", + "data_type": "PerCent", + "data_type_prim": "Float" + }, + "qfixed": { + "label": "cim:EnergyConsumer.qfixed", + "data_type": "ReactivePower", + "data_type_prim": "Float" + }, + "qfixedPct": { + "label": "cim:EnergyConsumer.qfixedPct", + "data_type": "PerCent", + "data_type_prim": "Float" + }, + "pfixed": { + "label": "cim:EnergyConsumer.pfixed", + "data_type": "ActivePower", + "data_type_prim": "Float" + }, + "Terminals": { + "label": "cim:ConductingEquipment.Terminals", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Terminal.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Terminal." + }, + "BaseVoltage": { + "label": "cim:ConductingEquipment.BaseVoltage", + "data_type": " rdf:resource=\"#", + "data_type_prim": " rdf:resource=\"#" + }, + "EquipmentContainer": { + "label": "cim:Equipment.EquipmentContainer", + "data_type": " rdf:resource=\"#", + "data_type_prim": " rdf:resource=\"#" + }, + "aggregate": { + "label": "cim:Equipment.aggregate", + "data_type": "Boolean", + "data_type_prim": "Boolean" + }, + "OperationalLimitSet": { + "label": "cim:Equipment.OperationalLimitSet", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#OperationalLimitSet.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#OperationalLimitSet." + }, + "Measurements": { + "label": "cim:PowerSystemResource.Measurements", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Measurement.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Measurement." + }, + "Controls": { + "label": "cim:PowerSystemResource.Controls", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Control.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Control." + }, + "mRID": { + "label": "cim:IdentifiedObject.mRID", + "data_type": "String", + "data_type_prim": "String" + }, + "name": { + "label": "cim:IdentifiedObject.name", + "data_type": "String", + "data_type_prim": "String" + }, + "description": { + "label": "cim:IdentifiedObject.description", + "data_type": "String", + "data_type_prim": "String" + }, + "energyIdentCodeEic": { + "label": "entsoe:IdentifiedObject.energyIdentCodeEic", + "data_type": "String", + "data_type_prim": "String" + }, + "shortName": { + "label": "entsoe:IdentifiedObject.shortName", + "data_type": "String", + "data_type_prim": "String" + } + } + }, + "GeneratingUnit": { + "rdf_type": " rdf:ID=\"", + "label": "cim:GeneratingUnit", + "fields": { + "RotatingMachine": { + "label": "cim:GeneratingUnit.RotatingMachine", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#RotatingMachine.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#RotatingMachine." + }, + "maxOperatingP": { + "label": "cim:GeneratingUnit.maxOperatingP", + "data_type": "ActivePower", + "data_type_prim": "Float" + }, + "longPF": { + "label": "cim:GeneratingUnit.longPF", + "data_type": "Simple_Float", + "data_type_prim": "Float" + }, + "variableCost": { + "label": "cim:GeneratingUnit.variableCost", + "data_type": "Money", + "data_type_prim": "Decimal" + }, + "minOperatingP": { + "label": "cim:GeneratingUnit.minOperatingP", + "data_type": "ActivePower", + "data_type_prim": "Float" + }, + "shortPF": { + "label": "cim:GeneratingUnit.shortPF", + "data_type": "Simple_Float", + "data_type_prim": "Float" + }, + "totalEfficiency": { + "label": "cim:GeneratingUnit.totalEfficiency", + "data_type": "PerCent", + "data_type_prim": "Float" + }, + "ratedGrossMinP": { + "label": "cim:GeneratingUnit.ratedGrossMinP", + "data_type": "ActivePower", + "data_type_prim": "Float" + }, + "ControlAreaGeneratingUnit": { + "label": "cim:GeneratingUnit.ControlAreaGeneratingUnit", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#ControlAreaGeneratingUnit.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#ControlAreaGeneratingUnit." + }, + "startupCost": { + "label": "cim:GeneratingUnit.startupCost", + "data_type": "Money", + "data_type_prim": "Decimal" + }, + "governorSCD": { + "label": "cim:GeneratingUnit.governorSCD", + "data_type": "PerCent", + "data_type_prim": "Float" + }, + "GrossToNetActivePowerCurves": { + "label": "cim:GeneratingUnit.GrossToNetActivePowerCurves", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#GrossToNetActivePowerCurve.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#GrossToNetActivePowerCurve." + }, + "maximumAllowableSpinningReserve": { + "label": "cim:GeneratingUnit.maximumAllowableSpinningReserve", + "data_type": "ActivePower", + "data_type_prim": "Float" + }, + "ratedGrossMaxP": { + "label": "cim:GeneratingUnit.ratedGrossMaxP", + "data_type": "ActivePower", + "data_type_prim": "Float" + }, + "ratedNetMaxP": { + "label": "cim:GeneratingUnit.ratedNetMaxP", + "data_type": "ActivePower", + "data_type_prim": "Float" + }, + "genControlSource": { + "label": "cim:GeneratingUnit.genControlSource", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#GeneratorControlSource.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#GeneratorControlSource." + }, + "initialP": { + "label": "cim:GeneratingUnit.initialP", + "data_type": "ActivePower", + "data_type_prim": "Float" + }, + "nominalP": { + "label": "cim:GeneratingUnit.nominalP", + "data_type": "ActivePower", + "data_type_prim": "Float" + }, + "EquipmentContainer": { + "label": "cim:Equipment.EquipmentContainer", + "data_type": " rdf:resource=\"#", + "data_type_prim": " rdf:resource=\"#" + }, + "aggregate": { + "label": "cim:Equipment.aggregate", + "data_type": "Boolean", + "data_type_prim": "Boolean" + }, + "OperationalLimitSet": { + "label": "cim:Equipment.OperationalLimitSet", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#OperationalLimitSet.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#OperationalLimitSet." + }, + "Measurements": { + "label": "cim:PowerSystemResource.Measurements", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Measurement.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Measurement." + }, + "Controls": { + "label": "cim:PowerSystemResource.Controls", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Control.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Control." + }, + "mRID": { + "label": "cim:IdentifiedObject.mRID", + "data_type": "String", + "data_type_prim": "String" + }, + "name": { + "label": "cim:IdentifiedObject.name", + "data_type": "String", + "data_type_prim": "String" + }, + "description": { + "label": "cim:IdentifiedObject.description", + "data_type": "String", + "data_type_prim": "String" + }, + "energyIdentCodeEic": { + "label": "entsoe:IdentifiedObject.energyIdentCodeEic", + "data_type": "String", + "data_type_prim": "String" + }, + "shortName": { + "label": "entsoe:IdentifiedObject.shortName", + "data_type": "String", + "data_type_prim": "String" + } + } + }, + "WindGeneratingUnit": { + "rdf_type": " rdf:ID=\"", + "label": "cim:WindGeneratingUnit", + "fields": { + "windGenUnitType": { + "label": "cim:WindGeneratingUnit.windGenUnitType", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#WindGenUnitKind.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#WindGenUnitKind." + }, + "RotatingMachine": { + "label": "cim:GeneratingUnit.RotatingMachine", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#RotatingMachine.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#RotatingMachine." + }, + "maxOperatingP": { + "label": "cim:GeneratingUnit.maxOperatingP", + "data_type": "ActivePower", + "data_type_prim": "Float" + }, + "longPF": { + "label": "cim:GeneratingUnit.longPF", + "data_type": "Simple_Float", + "data_type_prim": "Float" + }, + "variableCost": { + "label": "cim:GeneratingUnit.variableCost", + "data_type": "Money", + "data_type_prim": "Decimal" + }, + "minOperatingP": { + "label": "cim:GeneratingUnit.minOperatingP", + "data_type": "ActivePower", + "data_type_prim": "Float" + }, + "shortPF": { + "label": "cim:GeneratingUnit.shortPF", + "data_type": "Simple_Float", + "data_type_prim": "Float" + }, + "totalEfficiency": { + "label": "cim:GeneratingUnit.totalEfficiency", + "data_type": "PerCent", + "data_type_prim": "Float" + }, + "ratedGrossMinP": { + "label": "cim:GeneratingUnit.ratedGrossMinP", + "data_type": "ActivePower", + "data_type_prim": "Float" + }, + "ControlAreaGeneratingUnit": { + "label": "cim:GeneratingUnit.ControlAreaGeneratingUnit", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#ControlAreaGeneratingUnit.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#ControlAreaGeneratingUnit." + }, + "startupCost": { + "label": "cim:GeneratingUnit.startupCost", + "data_type": "Money", + "data_type_prim": "Decimal" + }, + "governorSCD": { + "label": "cim:GeneratingUnit.governorSCD", + "data_type": "PerCent", + "data_type_prim": "Float" + }, + "GrossToNetActivePowerCurves": { + "label": "cim:GeneratingUnit.GrossToNetActivePowerCurves", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#GrossToNetActivePowerCurve.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#GrossToNetActivePowerCurve." + }, + "maximumAllowableSpinningReserve": { + "label": "cim:GeneratingUnit.maximumAllowableSpinningReserve", + "data_type": "ActivePower", + "data_type_prim": "Float" + }, + "ratedGrossMaxP": { + "label": "cim:GeneratingUnit.ratedGrossMaxP", + "data_type": "ActivePower", + "data_type_prim": "Float" + }, + "ratedNetMaxP": { + "label": "cim:GeneratingUnit.ratedNetMaxP", + "data_type": "ActivePower", + "data_type_prim": "Float" + }, + "genControlSource": { + "label": "cim:GeneratingUnit.genControlSource", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#GeneratorControlSource.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#GeneratorControlSource." + }, + "initialP": { + "label": "cim:GeneratingUnit.initialP", + "data_type": "ActivePower", + "data_type_prim": "Float" + }, + "nominalP": { + "label": "cim:GeneratingUnit.nominalP", + "data_type": "ActivePower", + "data_type_prim": "Float" + }, + "EquipmentContainer": { + "label": "cim:Equipment.EquipmentContainer", + "data_type": " rdf:resource=\"#", + "data_type_prim": " rdf:resource=\"#" + }, + "aggregate": { + "label": "cim:Equipment.aggregate", + "data_type": "Boolean", + "data_type_prim": "Boolean" + }, + "OperationalLimitSet": { + "label": "cim:Equipment.OperationalLimitSet", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#OperationalLimitSet.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#OperationalLimitSet." + }, + "Measurements": { + "label": "cim:PowerSystemResource.Measurements", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Measurement.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Measurement." + }, + "Controls": { + "label": "cim:PowerSystemResource.Controls", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Control.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Control." + }, + "mRID": { + "label": "cim:IdentifiedObject.mRID", + "data_type": "String", + "data_type_prim": "String" + }, + "name": { + "label": "cim:IdentifiedObject.name", + "data_type": "String", + "data_type_prim": "String" + }, + "description": { + "label": "cim:IdentifiedObject.description", + "data_type": "String", + "data_type_prim": "String" + }, + "energyIdentCodeEic": { + "label": "entsoe:IdentifiedObject.energyIdentCodeEic", + "data_type": "String", + "data_type_prim": "String" + }, + "shortName": { + "label": "entsoe:IdentifiedObject.shortName", + "data_type": "String", + "data_type_prim": "String" + } + } + }, + "HydroGeneratingUnit": { + "rdf_type": " rdf:ID=\"", + "label": "cim:HydroGeneratingUnit", + "fields": { + "energyConversionCapability": { + "label": "cim:HydroGeneratingUnit.energyConversionCapability", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#HydroEnergyConversionKind.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#HydroEnergyConversionKind." + }, + "HydroPowerPlant": { + "label": "cim:HydroGeneratingUnit.HydroPowerPlant", + "data_type": " rdf:resource=\"#", + "data_type_prim": " rdf:resource=\"#" + }, + "RotatingMachine": { + "label": "cim:GeneratingUnit.RotatingMachine", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#RotatingMachine.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#RotatingMachine." + }, + "maxOperatingP": { + "label": "cim:GeneratingUnit.maxOperatingP", + "data_type": "ActivePower", + "data_type_prim": "Float" + }, + "longPF": { + "label": "cim:GeneratingUnit.longPF", + "data_type": "Simple_Float", + "data_type_prim": "Float" + }, + "variableCost": { + "label": "cim:GeneratingUnit.variableCost", + "data_type": "Money", + "data_type_prim": "Decimal" + }, + "minOperatingP": { + "label": "cim:GeneratingUnit.minOperatingP", + "data_type": "ActivePower", + "data_type_prim": "Float" + }, + "shortPF": { + "label": "cim:GeneratingUnit.shortPF", + "data_type": "Simple_Float", + "data_type_prim": "Float" + }, + "totalEfficiency": { + "label": "cim:GeneratingUnit.totalEfficiency", + "data_type": "PerCent", + "data_type_prim": "Float" + }, + "ratedGrossMinP": { + "label": "cim:GeneratingUnit.ratedGrossMinP", + "data_type": "ActivePower", + "data_type_prim": "Float" + }, + "ControlAreaGeneratingUnit": { + "label": "cim:GeneratingUnit.ControlAreaGeneratingUnit", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#ControlAreaGeneratingUnit.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#ControlAreaGeneratingUnit." + }, + "startupCost": { + "label": "cim:GeneratingUnit.startupCost", + "data_type": "Money", + "data_type_prim": "Decimal" + }, + "governorSCD": { + "label": "cim:GeneratingUnit.governorSCD", + "data_type": "PerCent", + "data_type_prim": "Float" + }, + "GrossToNetActivePowerCurves": { + "label": "cim:GeneratingUnit.GrossToNetActivePowerCurves", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#GrossToNetActivePowerCurve.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#GrossToNetActivePowerCurve." + }, + "maximumAllowableSpinningReserve": { + "label": "cim:GeneratingUnit.maximumAllowableSpinningReserve", + "data_type": "ActivePower", + "data_type_prim": "Float" + }, + "ratedGrossMaxP": { + "label": "cim:GeneratingUnit.ratedGrossMaxP", + "data_type": "ActivePower", + "data_type_prim": "Float" + }, + "ratedNetMaxP": { + "label": "cim:GeneratingUnit.ratedNetMaxP", + "data_type": "ActivePower", + "data_type_prim": "Float" + }, + "genControlSource": { + "label": "cim:GeneratingUnit.genControlSource", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#GeneratorControlSource.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#GeneratorControlSource." + }, + "initialP": { + "label": "cim:GeneratingUnit.initialP", + "data_type": "ActivePower", + "data_type_prim": "Float" + }, + "nominalP": { + "label": "cim:GeneratingUnit.nominalP", + "data_type": "ActivePower", + "data_type_prim": "Float" + }, + "EquipmentContainer": { + "label": "cim:Equipment.EquipmentContainer", + "data_type": " rdf:resource=\"#", + "data_type_prim": " rdf:resource=\"#" + }, + "aggregate": { + "label": "cim:Equipment.aggregate", + "data_type": "Boolean", + "data_type_prim": "Boolean" + }, + "OperationalLimitSet": { + "label": "cim:Equipment.OperationalLimitSet", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#OperationalLimitSet.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#OperationalLimitSet." + }, + "Measurements": { + "label": "cim:PowerSystemResource.Measurements", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Measurement.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Measurement." + }, + "Controls": { + "label": "cim:PowerSystemResource.Controls", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Control.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Control." + }, + "mRID": { + "label": "cim:IdentifiedObject.mRID", + "data_type": "String", + "data_type_prim": "String" + }, + "name": { + "label": "cim:IdentifiedObject.name", + "data_type": "String", + "data_type_prim": "String" + }, + "description": { + "label": "cim:IdentifiedObject.description", + "data_type": "String", + "data_type_prim": "String" + }, + "energyIdentCodeEic": { + "label": "entsoe:IdentifiedObject.energyIdentCodeEic", + "data_type": "String", + "data_type_prim": "String" + }, + "shortName": { + "label": "entsoe:IdentifiedObject.shortName", + "data_type": "String", + "data_type_prim": "String" + } + } + }, + "SolarGeneratingUnit": { + "rdf_type": " rdf:ID=\"", + "label": "cim:SolarGeneratingUnit", + "fields": { + "RotatingMachine": { + "label": "cim:GeneratingUnit.RotatingMachine", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#RotatingMachine.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#RotatingMachine." + }, + "maxOperatingP": { + "label": "cim:GeneratingUnit.maxOperatingP", + "data_type": "ActivePower", + "data_type_prim": "Float" + }, + "longPF": { + "label": "cim:GeneratingUnit.longPF", + "data_type": "Simple_Float", + "data_type_prim": "Float" + }, + "variableCost": { + "label": "cim:GeneratingUnit.variableCost", + "data_type": "Money", + "data_type_prim": "Decimal" + }, + "minOperatingP": { + "label": "cim:GeneratingUnit.minOperatingP", + "data_type": "ActivePower", + "data_type_prim": "Float" + }, + "shortPF": { + "label": "cim:GeneratingUnit.shortPF", + "data_type": "Simple_Float", + "data_type_prim": "Float" + }, + "totalEfficiency": { + "label": "cim:GeneratingUnit.totalEfficiency", + "data_type": "PerCent", + "data_type_prim": "Float" + }, + "ratedGrossMinP": { + "label": "cim:GeneratingUnit.ratedGrossMinP", + "data_type": "ActivePower", + "data_type_prim": "Float" + }, + "ControlAreaGeneratingUnit": { + "label": "cim:GeneratingUnit.ControlAreaGeneratingUnit", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#ControlAreaGeneratingUnit.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#ControlAreaGeneratingUnit." + }, + "startupCost": { + "label": "cim:GeneratingUnit.startupCost", + "data_type": "Money", + "data_type_prim": "Decimal" + }, + "governorSCD": { + "label": "cim:GeneratingUnit.governorSCD", + "data_type": "PerCent", + "data_type_prim": "Float" + }, + "GrossToNetActivePowerCurves": { + "label": "cim:GeneratingUnit.GrossToNetActivePowerCurves", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#GrossToNetActivePowerCurve.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#GrossToNetActivePowerCurve." + }, + "maximumAllowableSpinningReserve": { + "label": "cim:GeneratingUnit.maximumAllowableSpinningReserve", + "data_type": "ActivePower", + "data_type_prim": "Float" + }, + "ratedGrossMaxP": { + "label": "cim:GeneratingUnit.ratedGrossMaxP", + "data_type": "ActivePower", + "data_type_prim": "Float" + }, + "ratedNetMaxP": { + "label": "cim:GeneratingUnit.ratedNetMaxP", + "data_type": "ActivePower", + "data_type_prim": "Float" + }, + "genControlSource": { + "label": "cim:GeneratingUnit.genControlSource", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#GeneratorControlSource.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#GeneratorControlSource." + }, + "initialP": { + "label": "cim:GeneratingUnit.initialP", + "data_type": "ActivePower", + "data_type_prim": "Float" + }, + "nominalP": { + "label": "cim:GeneratingUnit.nominalP", + "data_type": "ActivePower", + "data_type_prim": "Float" + }, + "EquipmentContainer": { + "label": "cim:Equipment.EquipmentContainer", + "data_type": " rdf:resource=\"#", + "data_type_prim": " rdf:resource=\"#" + }, + "aggregate": { + "label": "cim:Equipment.aggregate", + "data_type": "Boolean", + "data_type_prim": "Boolean" + }, + "OperationalLimitSet": { + "label": "cim:Equipment.OperationalLimitSet", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#OperationalLimitSet.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#OperationalLimitSet." + }, + "Measurements": { + "label": "cim:PowerSystemResource.Measurements", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Measurement.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Measurement." + }, + "Controls": { + "label": "cim:PowerSystemResource.Controls", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Control.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Control." + }, + "mRID": { + "label": "cim:IdentifiedObject.mRID", + "data_type": "String", + "data_type_prim": "String" + }, + "name": { + "label": "cim:IdentifiedObject.name", + "data_type": "String", + "data_type_prim": "String" + }, + "description": { + "label": "cim:IdentifiedObject.description", + "data_type": "String", + "data_type_prim": "String" + }, + "energyIdentCodeEic": { + "label": "entsoe:IdentifiedObject.energyIdentCodeEic", + "data_type": "String", + "data_type_prim": "String" + }, + "shortName": { + "label": "entsoe:IdentifiedObject.shortName", + "data_type": "String", + "data_type_prim": "String" + } + } + }, + "ThermalGeneratingUnit": { + "rdf_type": " rdf:ID=\"", + "label": "cim:ThermalGeneratingUnit", + "fields": { + "FossilFuels": { + "label": "cim:ThermalGeneratingUnit.FossilFuels", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#FossilFuel.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#FossilFuel." + }, + "RotatingMachine": { + "label": "cim:GeneratingUnit.RotatingMachine", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#RotatingMachine.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#RotatingMachine." + }, + "maxOperatingP": { + "label": "cim:GeneratingUnit.maxOperatingP", + "data_type": "ActivePower", + "data_type_prim": "Float" + }, + "longPF": { + "label": "cim:GeneratingUnit.longPF", + "data_type": "Simple_Float", + "data_type_prim": "Float" + }, + "variableCost": { + "label": "cim:GeneratingUnit.variableCost", + "data_type": "Money", + "data_type_prim": "Decimal" + }, + "minOperatingP": { + "label": "cim:GeneratingUnit.minOperatingP", + "data_type": "ActivePower", + "data_type_prim": "Float" + }, + "shortPF": { + "label": "cim:GeneratingUnit.shortPF", + "data_type": "Simple_Float", + "data_type_prim": "Float" + }, + "totalEfficiency": { + "label": "cim:GeneratingUnit.totalEfficiency", + "data_type": "PerCent", + "data_type_prim": "Float" + }, + "ratedGrossMinP": { + "label": "cim:GeneratingUnit.ratedGrossMinP", + "data_type": "ActivePower", + "data_type_prim": "Float" + }, + "ControlAreaGeneratingUnit": { + "label": "cim:GeneratingUnit.ControlAreaGeneratingUnit", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#ControlAreaGeneratingUnit.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#ControlAreaGeneratingUnit." + }, + "startupCost": { + "label": "cim:GeneratingUnit.startupCost", + "data_type": "Money", + "data_type_prim": "Decimal" + }, + "governorSCD": { + "label": "cim:GeneratingUnit.governorSCD", + "data_type": "PerCent", + "data_type_prim": "Float" + }, + "GrossToNetActivePowerCurves": { + "label": "cim:GeneratingUnit.GrossToNetActivePowerCurves", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#GrossToNetActivePowerCurve.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#GrossToNetActivePowerCurve." + }, + "maximumAllowableSpinningReserve": { + "label": "cim:GeneratingUnit.maximumAllowableSpinningReserve", + "data_type": "ActivePower", + "data_type_prim": "Float" + }, + "ratedGrossMaxP": { + "label": "cim:GeneratingUnit.ratedGrossMaxP", + "data_type": "ActivePower", + "data_type_prim": "Float" + }, + "ratedNetMaxP": { + "label": "cim:GeneratingUnit.ratedNetMaxP", + "data_type": "ActivePower", + "data_type_prim": "Float" + }, + "genControlSource": { + "label": "cim:GeneratingUnit.genControlSource", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#GeneratorControlSource.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#GeneratorControlSource." + }, + "initialP": { + "label": "cim:GeneratingUnit.initialP", + "data_type": "ActivePower", + "data_type_prim": "Float" + }, + "nominalP": { + "label": "cim:GeneratingUnit.nominalP", + "data_type": "ActivePower", + "data_type_prim": "Float" + }, + "EquipmentContainer": { + "label": "cim:Equipment.EquipmentContainer", + "data_type": " rdf:resource=\"#", + "data_type_prim": " rdf:resource=\"#" + }, + "aggregate": { + "label": "cim:Equipment.aggregate", + "data_type": "Boolean", + "data_type_prim": "Boolean" + }, + "OperationalLimitSet": { + "label": "cim:Equipment.OperationalLimitSet", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#OperationalLimitSet.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#OperationalLimitSet." + }, + "Measurements": { + "label": "cim:PowerSystemResource.Measurements", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Measurement.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Measurement." + }, + "Controls": { + "label": "cim:PowerSystemResource.Controls", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Control.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Control." + }, + "mRID": { + "label": "cim:IdentifiedObject.mRID", + "data_type": "String", + "data_type_prim": "String" + }, + "name": { + "label": "cim:IdentifiedObject.name", + "data_type": "String", + "data_type_prim": "String" + }, + "description": { + "label": "cim:IdentifiedObject.description", + "data_type": "String", + "data_type_prim": "String" + }, + "energyIdentCodeEic": { + "label": "entsoe:IdentifiedObject.energyIdentCodeEic", + "data_type": "String", + "data_type_prim": "String" + }, + "shortName": { + "label": "entsoe:IdentifiedObject.shortName", + "data_type": "String", + "data_type_prim": "String" + } + } + }, + "NuclearGeneratingUnit": { + "rdf_type": " rdf:ID=\"", + "label": "cim:NuclearGeneratingUnit", + "fields": { + "RotatingMachine": { + "label": "cim:GeneratingUnit.RotatingMachine", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#RotatingMachine.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#RotatingMachine." + }, + "maxOperatingP": { + "label": "cim:GeneratingUnit.maxOperatingP", + "data_type": "ActivePower", + "data_type_prim": "Float" + }, + "longPF": { + "label": "cim:GeneratingUnit.longPF", + "data_type": "Simple_Float", + "data_type_prim": "Float" + }, + "variableCost": { + "label": "cim:GeneratingUnit.variableCost", + "data_type": "Money", + "data_type_prim": "Decimal" + }, + "minOperatingP": { + "label": "cim:GeneratingUnit.minOperatingP", + "data_type": "ActivePower", + "data_type_prim": "Float" + }, + "shortPF": { + "label": "cim:GeneratingUnit.shortPF", + "data_type": "Simple_Float", + "data_type_prim": "Float" + }, + "totalEfficiency": { + "label": "cim:GeneratingUnit.totalEfficiency", + "data_type": "PerCent", + "data_type_prim": "Float" + }, + "ratedGrossMinP": { + "label": "cim:GeneratingUnit.ratedGrossMinP", + "data_type": "ActivePower", + "data_type_prim": "Float" + }, + "ControlAreaGeneratingUnit": { + "label": "cim:GeneratingUnit.ControlAreaGeneratingUnit", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#ControlAreaGeneratingUnit.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#ControlAreaGeneratingUnit." + }, + "startupCost": { + "label": "cim:GeneratingUnit.startupCost", + "data_type": "Money", + "data_type_prim": "Decimal" + }, + "governorSCD": { + "label": "cim:GeneratingUnit.governorSCD", + "data_type": "PerCent", + "data_type_prim": "Float" + }, + "GrossToNetActivePowerCurves": { + "label": "cim:GeneratingUnit.GrossToNetActivePowerCurves", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#GrossToNetActivePowerCurve.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#GrossToNetActivePowerCurve." + }, + "maximumAllowableSpinningReserve": { + "label": "cim:GeneratingUnit.maximumAllowableSpinningReserve", + "data_type": "ActivePower", + "data_type_prim": "Float" + }, + "ratedGrossMaxP": { + "label": "cim:GeneratingUnit.ratedGrossMaxP", + "data_type": "ActivePower", + "data_type_prim": "Float" + }, + "ratedNetMaxP": { + "label": "cim:GeneratingUnit.ratedNetMaxP", + "data_type": "ActivePower", + "data_type_prim": "Float" + }, + "genControlSource": { + "label": "cim:GeneratingUnit.genControlSource", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#GeneratorControlSource.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#GeneratorControlSource." + }, + "initialP": { + "label": "cim:GeneratingUnit.initialP", + "data_type": "ActivePower", + "data_type_prim": "Float" + }, + "nominalP": { + "label": "cim:GeneratingUnit.nominalP", + "data_type": "ActivePower", + "data_type_prim": "Float" + }, + "EquipmentContainer": { + "label": "cim:Equipment.EquipmentContainer", + "data_type": " rdf:resource=\"#", + "data_type_prim": " rdf:resource=\"#" + }, + "aggregate": { + "label": "cim:Equipment.aggregate", + "data_type": "Boolean", + "data_type_prim": "Boolean" + }, + "OperationalLimitSet": { + "label": "cim:Equipment.OperationalLimitSet", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#OperationalLimitSet.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#OperationalLimitSet." + }, + "Measurements": { + "label": "cim:PowerSystemResource.Measurements", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Measurement.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Measurement." + }, + "Controls": { + "label": "cim:PowerSystemResource.Controls", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Control.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Control." + }, + "mRID": { + "label": "cim:IdentifiedObject.mRID", + "data_type": "String", + "data_type_prim": "String" + }, + "name": { + "label": "cim:IdentifiedObject.name", + "data_type": "String", + "data_type_prim": "String" + }, + "description": { + "label": "cim:IdentifiedObject.description", + "data_type": "String", + "data_type_prim": "String" + }, + "energyIdentCodeEic": { + "label": "entsoe:IdentifiedObject.energyIdentCodeEic", + "data_type": "String", + "data_type_prim": "String" + }, + "shortName": { + "label": "entsoe:IdentifiedObject.shortName", + "data_type": "String", + "data_type_prim": "String" + } + } + }, + "RegulatingControl": { + "rdf_type": " rdf:ID=\"", + "label": "cim:RegulatingControl", + "fields": { + "RegulatingCondEq": { + "label": "cim:RegulatingControl.RegulatingCondEq", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#RegulatingCondEq.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#RegulatingCondEq." + }, + "Terminal": { + "label": "cim:RegulatingControl.Terminal", + "data_type": " rdf:resource=\"#", + "data_type_prim": " rdf:resource=\"#" + }, + "RegulationSchedule": { + "label": "cim:RegulatingControl.RegulationSchedule", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#RegulationSchedule.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#RegulationSchedule." + }, + "mode": { + "label": "cim:RegulatingControl.mode", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#RegulatingControlModeKind.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#RegulatingControlModeKind." + }, + "Measurements": { + "label": "cim:PowerSystemResource.Measurements", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Measurement.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Measurement." + }, + "Controls": { + "label": "cim:PowerSystemResource.Controls", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Control.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Control." + }, + "mRID": { + "label": "cim:IdentifiedObject.mRID", + "data_type": "String", + "data_type_prim": "String" + }, + "name": { + "label": "cim:IdentifiedObject.name", + "data_type": "String", + "data_type_prim": "String" + }, + "description": { + "label": "cim:IdentifiedObject.description", + "data_type": "String", + "data_type_prim": "String" + }, + "energyIdentCodeEic": { + "label": "entsoe:IdentifiedObject.energyIdentCodeEic", + "data_type": "String", + "data_type_prim": "String" + }, + "shortName": { + "label": "entsoe:IdentifiedObject.shortName", + "data_type": "String", + "data_type_prim": "String" + } + } + }, + "SynchronousMachine": { + "rdf_type": " rdf:ID=\"", + "label": "cim:SynchronousMachine", + "fields": { + "voltageRegulationRange": { + "label": "cim:SynchronousMachine.voltageRegulationRange", + "data_type": "PerCent", + "data_type_prim": "Float" + }, + "shortCircuitRotorType": { + "label": "cim:SynchronousMachine.shortCircuitRotorType", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#ShortCircuitRotorKind.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#ShortCircuitRotorKind." + }, + "ikk": { + "label": "cim:SynchronousMachine.ikk", + "data_type": "CurrentFlow", + "data_type_prim": "Float" + }, + "x2": { + "label": "cim:SynchronousMachine.x2", + "data_type": "PU", + "data_type_prim": "Float" + }, + "minQ": { + "label": "cim:SynchronousMachine.minQ", + "data_type": "ReactivePower", + "data_type_prim": "Float" + }, + "mu": { + "label": "cim:SynchronousMachine.mu", + "data_type": "Simple_Float", + "data_type_prim": "Float" + }, + "r2": { + "label": "cim:SynchronousMachine.r2", + "data_type": "PU", + "data_type_prim": "Float" + }, + "InitialReactiveCapabilityCurve": { + "label": "cim:SynchronousMachine.InitialReactiveCapabilityCurve", + "data_type": " rdf:resource=\"#", + "data_type_prim": " rdf:resource=\"#" + }, + "type": { + "label": "cim:SynchronousMachine.type", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#SynchronousMachineKind.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#SynchronousMachineKind." + }, + "earthingStarPointX": { + "label": "cim:SynchronousMachine.earthingStarPointX", + "data_type": "Reactance", + "data_type_prim": "Float" + }, + "satDirectSyncX": { + "label": "cim:SynchronousMachine.satDirectSyncX", + "data_type": "PU", + "data_type_prim": "Float" + }, + "r": { + "label": "cim:SynchronousMachine.r", + "data_type": "Resistance", + "data_type_prim": "Float" + }, + "maxQ": { + "label": "cim:SynchronousMachine.maxQ", + "data_type": "ReactivePower", + "data_type_prim": "Float" + }, + "satDirectTransX": { + "label": "cim:SynchronousMachine.satDirectTransX", + "data_type": "PU", + "data_type_prim": "Float" + }, + "r0": { + "label": "cim:SynchronousMachine.r0", + "data_type": "PU", + "data_type_prim": "Float" + }, + "satDirectSubtransX": { + "label": "cim:SynchronousMachine.satDirectSubtransX", + "data_type": "PU", + "data_type_prim": "Float" + }, + "qPercent": { + "label": "cim:SynchronousMachine.qPercent", + "data_type": "PerCent", + "data_type_prim": "Float" + }, + "earthingStarPointR": { + "label": "cim:SynchronousMachine.earthingStarPointR", + "data_type": "Resistance", + "data_type_prim": "Float" + }, + "earthing": { + "label": "cim:SynchronousMachine.earthing", + "data_type": "Boolean", + "data_type_prim": "Boolean" + }, + "x0": { + "label": "cim:SynchronousMachine.x0", + "data_type": "PU", + "data_type_prim": "Float" + }, + "ratedS": { + "label": "cim:RotatingMachine.ratedS", + "data_type": "ApparentPower", + "data_type_prim": "Float" + }, + "HydroPump": { + "label": "cim:RotatingMachine.HydroPump", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#HydroPump.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#HydroPump." + }, + "ratedU": { + "label": "cim:RotatingMachine.ratedU", + "data_type": "Voltage", + "data_type_prim": "Float" + }, + "GeneratingUnit": { + "label": "cim:RotatingMachine.GeneratingUnit", + "data_type": " rdf:resource=\"#", + "data_type_prim": " rdf:resource=\"#" + }, + "ratedPowerFactor": { + "label": "cim:RotatingMachine.ratedPowerFactor", + "data_type": "Simple_Float", + "data_type_prim": "Float" + }, + "RegulatingControl": { + "label": "cim:RegulatingCondEq.RegulatingControl", + "data_type": " rdf:resource=\"#", + "data_type_prim": " rdf:resource=\"#" + }, + "Terminals": { + "label": "cim:ConductingEquipment.Terminals", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Terminal.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Terminal." + }, + "BaseVoltage": { + "label": "cim:ConductingEquipment.BaseVoltage", + "data_type": " rdf:resource=\"#", + "data_type_prim": " rdf:resource=\"#" + }, + "EquipmentContainer": { + "label": "cim:Equipment.EquipmentContainer", + "data_type": " rdf:resource=\"#", + "data_type_prim": " rdf:resource=\"#" + }, + "aggregate": { + "label": "cim:Equipment.aggregate", + "data_type": "Boolean", + "data_type_prim": "Boolean" + }, + "OperationalLimitSet": { + "label": "cim:Equipment.OperationalLimitSet", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#OperationalLimitSet.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#OperationalLimitSet." + }, + "Measurements": { + "label": "cim:PowerSystemResource.Measurements", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Measurement.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Measurement." + }, + "Controls": { + "label": "cim:PowerSystemResource.Controls", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Control.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Control." + }, + "mRID": { + "label": "cim:IdentifiedObject.mRID", + "data_type": "String", + "data_type_prim": "String" + }, + "name": { + "label": "cim:IdentifiedObject.name", + "data_type": "String", + "data_type_prim": "String" + }, + "description": { + "label": "cim:IdentifiedObject.description", + "data_type": "String", + "data_type_prim": "String" + }, + "energyIdentCodeEic": { + "label": "entsoe:IdentifiedObject.energyIdentCodeEic", + "data_type": "String", + "data_type_prim": "String" + }, + "shortName": { + "label": "entsoe:IdentifiedObject.shortName", + "data_type": "String", + "data_type_prim": "String" + } + } + }, + "AsynchronousMachine": { + "rdf_type": " rdf:ID=\"", + "label": "cim:AsynchronousMachine", + "fields": { + "polePairNumber": { + "label": "cim:AsynchronousMachine.polePairNumber", + "data_type": "Integer", + "data_type_prim": "Integer" + }, + "ratedMechanicalPower": { + "label": "cim:AsynchronousMachine.ratedMechanicalPower", + "data_type": "ActivePower", + "data_type_prim": "Float" + }, + "efficiency": { + "label": "cim:AsynchronousMachine.efficiency", + "data_type": "PerCent", + "data_type_prim": "Float" + }, + "reversible": { + "label": "cim:AsynchronousMachine.reversible", + "data_type": "Boolean", + "data_type_prim": "Boolean" + }, + "rxLockedRotorRatio": { + "label": "cim:AsynchronousMachine.rxLockedRotorRatio", + "data_type": "Simple_Float", + "data_type_prim": "Float" + }, + "nominalSpeed": { + "label": "cim:AsynchronousMachine.nominalSpeed", + "data_type": "RotationSpeed", + "data_type_prim": "Float" + }, + "nominalFrequency": { + "label": "cim:AsynchronousMachine.nominalFrequency", + "data_type": "Frequency", + "data_type_prim": "Float" + }, + "iaIrRatio": { + "label": "cim:AsynchronousMachine.iaIrRatio", + "data_type": "Simple_Float", + "data_type_prim": "Float" + }, + "converterFedDrive": { + "label": "cim:AsynchronousMachine.converterFedDrive", + "data_type": "Boolean", + "data_type_prim": "Boolean" + }, + "ratedS": { + "label": "cim:RotatingMachine.ratedS", + "data_type": "ApparentPower", + "data_type_prim": "Float" + }, + "HydroPump": { + "label": "cim:RotatingMachine.HydroPump", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#HydroPump.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#HydroPump." + }, + "ratedU": { + "label": "cim:RotatingMachine.ratedU", + "data_type": "Voltage", + "data_type_prim": "Float" + }, + "GeneratingUnit": { + "label": "cim:RotatingMachine.GeneratingUnit", + "data_type": " rdf:resource=\"#", + "data_type_prim": " rdf:resource=\"#" + }, + "ratedPowerFactor": { + "label": "cim:RotatingMachine.ratedPowerFactor", + "data_type": "Simple_Float", + "data_type_prim": "Float" + }, + "RegulatingControl": { + "label": "cim:RegulatingCondEq.RegulatingControl", + "data_type": " rdf:resource=\"#", + "data_type_prim": " rdf:resource=\"#" + }, + "Terminals": { + "label": "cim:ConductingEquipment.Terminals", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Terminal.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Terminal." + }, + "BaseVoltage": { + "label": "cim:ConductingEquipment.BaseVoltage", + "data_type": " rdf:resource=\"#", + "data_type_prim": " rdf:resource=\"#" + }, + "EquipmentContainer": { + "label": "cim:Equipment.EquipmentContainer", + "data_type": " rdf:resource=\"#", + "data_type_prim": " rdf:resource=\"#" + }, + "aggregate": { + "label": "cim:Equipment.aggregate", + "data_type": "Boolean", + "data_type_prim": "Boolean" + }, + "OperationalLimitSet": { + "label": "cim:Equipment.OperationalLimitSet", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#OperationalLimitSet.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#OperationalLimitSet." + }, + "Measurements": { + "label": "cim:PowerSystemResource.Measurements", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Measurement.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Measurement." + }, + "Controls": { + "label": "cim:PowerSystemResource.Controls", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Control.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Control." + }, + "mRID": { + "label": "cim:IdentifiedObject.mRID", + "data_type": "String", + "data_type_prim": "String" + }, + "name": { + "label": "cim:IdentifiedObject.name", + "data_type": "String", + "data_type_prim": "String" + }, + "description": { + "label": "cim:IdentifiedObject.description", + "data_type": "String", + "data_type_prim": "String" + }, + "energyIdentCodeEic": { + "label": "entsoe:IdentifiedObject.energyIdentCodeEic", + "data_type": "String", + "data_type_prim": "String" + }, + "shortName": { + "label": "entsoe:IdentifiedObject.shortName", + "data_type": "String", + "data_type_prim": "String" + } + } + }, + "EnergySource": { + "rdf_type": " rdf:ID=\"", + "label": "cim:EnergySource", + "fields": { + "EnergySchedulingType": { + "label": "cim:EnergySource.EnergySchedulingType", + "data_type": " rdf:resource=\"#", + "data_type_prim": " rdf:resource=\"#" + }, + "rn": { + "label": "cim:EnergySource.rn", + "data_type": "Resistance", + "data_type_prim": "Float" + }, + "x": { + "label": "cim:EnergySource.x", + "data_type": "Reactance", + "data_type_prim": "Float" + }, + "x0": { + "label": "cim:EnergySource.x0", + "data_type": "Reactance", + "data_type_prim": "Float" + }, + "voltageAngle": { + "label": "cim:EnergySource.voltageAngle", + "data_type": "AngleRadians", + "data_type_prim": "Float" + }, + "r": { + "label": "cim:EnergySource.r", + "data_type": "Resistance", + "data_type_prim": "Float" + }, + "nominalVoltage": { + "label": "cim:EnergySource.nominalVoltage", + "data_type": "Voltage", + "data_type_prim": "Float" + }, + "voltageMagnitude": { + "label": "cim:EnergySource.voltageMagnitude", + "data_type": "Voltage", + "data_type_prim": "Float" + }, + "r0": { + "label": "cim:EnergySource.r0", + "data_type": "Resistance", + "data_type_prim": "Float" + }, + "xn": { + "label": "cim:EnergySource.xn", + "data_type": "Reactance", + "data_type_prim": "Float" + }, + "Terminals": { + "label": "cim:ConductingEquipment.Terminals", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Terminal.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Terminal." + }, + "BaseVoltage": { + "label": "cim:ConductingEquipment.BaseVoltage", + "data_type": " rdf:resource=\"#", + "data_type_prim": " rdf:resource=\"#" + }, + "EquipmentContainer": { + "label": "cim:Equipment.EquipmentContainer", + "data_type": " rdf:resource=\"#", + "data_type_prim": " rdf:resource=\"#" + }, + "aggregate": { + "label": "cim:Equipment.aggregate", + "data_type": "Boolean", + "data_type_prim": "Boolean" + }, + "OperationalLimitSet": { + "label": "cim:Equipment.OperationalLimitSet", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#OperationalLimitSet.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#OperationalLimitSet." + }, + "Measurements": { + "label": "cim:PowerSystemResource.Measurements", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Measurement.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Measurement." + }, + "Controls": { + "label": "cim:PowerSystemResource.Controls", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Control.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Control." + }, + "mRID": { + "label": "cim:IdentifiedObject.mRID", + "data_type": "String", + "data_type_prim": "String" + }, + "name": { + "label": "cim:IdentifiedObject.name", + "data_type": "String", + "data_type_prim": "String" + }, + "description": { + "label": "cim:IdentifiedObject.description", + "data_type": "String", + "data_type_prim": "String" + }, + "energyIdentCodeEic": { + "label": "entsoe:IdentifiedObject.energyIdentCodeEic", + "data_type": "String", + "data_type_prim": "String" + }, + "shortName": { + "label": "entsoe:IdentifiedObject.shortName", + "data_type": "String", + "data_type_prim": "String" + } + } + }, + "EnergySchedulingType": { + "rdf_type": " rdf:ID=\"", + "label": "entsoe:EnergySchedulingType", + "fields": { + "EnergySource": { + "label": "cim:EnergySchedulingType.EnergySource", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#EnergySource.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#EnergySource." + }, + "description": { + "label": "cim:IdentifiedObject.description", + "data_type": "String", + "data_type_prim": "String" + }, + "energyIdentCodeEic": { + "label": "entsoe:IdentifiedObject.energyIdentCodeEic", + "data_type": "String", + "data_type_prim": "String" + }, + "mRID": { + "label": "cim:IdentifiedObject.mRID", + "data_type": "String", + "data_type_prim": "String" + }, + "name": { + "label": "cim:IdentifiedObject.name", + "data_type": "String", + "data_type_prim": "String" + }, + "shortName": { + "label": "entsoe:IdentifiedObject.shortName", + "data_type": "String", + "data_type_prim": "String" + } + } + }, + "StaticVarCompensator": { + "rdf_type": " rdf:ID=\"", + "label": "cim:StaticVarCompensator", + "fields": { + "inductiveRating": { + "label": "cim:StaticVarCompensator.inductiveRating", + "data_type": "Reactance", + "data_type_prim": "Float" + }, + "sVCControlMode": { + "label": "cim:StaticVarCompensator.sVCControlMode", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#SVCControlMode.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#SVCControlMode." + }, + "slope": { + "label": "cim:StaticVarCompensator.slope", + "data_type": "VoltagePerReactivePower", + "data_type_prim": "Float" + }, + "voltageSetPoint": { + "label": "cim:StaticVarCompensator.voltageSetPoint", + "data_type": "Voltage", + "data_type_prim": "Float" + }, + "capacitiveRating": { + "label": "cim:StaticVarCompensator.capacitiveRating", + "data_type": "Reactance", + "data_type_prim": "Float" + }, + "RegulatingControl": { + "label": "cim:RegulatingCondEq.RegulatingControl", + "data_type": " rdf:resource=\"#", + "data_type_prim": " rdf:resource=\"#" + }, + "Terminals": { + "label": "cim:ConductingEquipment.Terminals", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Terminal.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Terminal." + }, + "BaseVoltage": { + "label": "cim:ConductingEquipment.BaseVoltage", + "data_type": " rdf:resource=\"#", + "data_type_prim": " rdf:resource=\"#" + }, + "EquipmentContainer": { + "label": "cim:Equipment.EquipmentContainer", + "data_type": " rdf:resource=\"#", + "data_type_prim": " rdf:resource=\"#" + }, + "aggregate": { + "label": "cim:Equipment.aggregate", + "data_type": "Boolean", + "data_type_prim": "Boolean" + }, + "OperationalLimitSet": { + "label": "cim:Equipment.OperationalLimitSet", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#OperationalLimitSet.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#OperationalLimitSet." + }, + "Measurements": { + "label": "cim:PowerSystemResource.Measurements", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Measurement.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Measurement." + }, + "Controls": { + "label": "cim:PowerSystemResource.Controls", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Control.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Control." + }, + "mRID": { + "label": "cim:IdentifiedObject.mRID", + "data_type": "String", + "data_type_prim": "String" + }, + "name": { + "label": "cim:IdentifiedObject.name", + "data_type": "String", + "data_type_prim": "String" + }, + "description": { + "label": "cim:IdentifiedObject.description", + "data_type": "String", + "data_type_prim": "String" + }, + "energyIdentCodeEic": { + "label": "entsoe:IdentifiedObject.energyIdentCodeEic", + "data_type": "String", + "data_type_prim": "String" + }, + "shortName": { + "label": "entsoe:IdentifiedObject.shortName", + "data_type": "String", + "data_type_prim": "String" + } + } + }, + "PowerTransformer": { + "rdf_type": " rdf:ID=\"", + "label": "cim:PowerTransformer", + "fields": { + "operationalValuesConsidered": { + "label": "cim:PowerTransformer.operationalValuesConsidered", + "data_type": "Boolean", + "data_type_prim": "Boolean" + }, + "beforeShCircuitHighestOperatingCurrent": { + "label": "cim:PowerTransformer.beforeShCircuitHighestOperatingCurrent", + "data_type": "CurrentFlow", + "data_type_prim": "Float" + }, + "highSideMinOperatingU": { + "label": "cim:PowerTransformer.highSideMinOperatingU", + "data_type": "Voltage", + "data_type_prim": "Float" + }, + "PowerTransformerEnd": { + "label": "cim:PowerTransformer.PowerTransformerEnd", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#PowerTransformerEnd.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#PowerTransformerEnd." + }, + "beforeShCircuitHighestOperatingVoltage": { + "label": "cim:PowerTransformer.beforeShCircuitHighestOperatingVoltage", + "data_type": "Voltage", + "data_type_prim": "Float" + }, + "isPartOfGeneratorUnit": { + "label": "cim:PowerTransformer.isPartOfGeneratorUnit", + "data_type": "Boolean", + "data_type_prim": "Boolean" + }, + "beforeShortCircuitAnglePf": { + "label": "cim:PowerTransformer.beforeShortCircuitAnglePf", + "data_type": "AngleDegrees", + "data_type_prim": "Float" + }, + "Terminals": { + "label": "cim:ConductingEquipment.Terminals", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Terminal.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Terminal." + }, + "BaseVoltage": { + "label": "cim:ConductingEquipment.BaseVoltage", + "data_type": " rdf:resource=\"#", + "data_type_prim": " rdf:resource=\"#" + }, + "EquipmentContainer": { + "label": "cim:Equipment.EquipmentContainer", + "data_type": " rdf:resource=\"#", + "data_type_prim": " rdf:resource=\"#" + }, + "aggregate": { + "label": "cim:Equipment.aggregate", + "data_type": "Boolean", + "data_type_prim": "Boolean" + }, + "OperationalLimitSet": { + "label": "cim:Equipment.OperationalLimitSet", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#OperationalLimitSet.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#OperationalLimitSet." + }, + "Measurements": { + "label": "cim:PowerSystemResource.Measurements", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Measurement.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Measurement." + }, + "Controls": { + "label": "cim:PowerSystemResource.Controls", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Control.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Control." + }, + "mRID": { + "label": "cim:IdentifiedObject.mRID", + "data_type": "String", + "data_type_prim": "String" + }, + "name": { + "label": "cim:IdentifiedObject.name", + "data_type": "String", + "data_type_prim": "String" + }, + "description": { + "label": "cim:IdentifiedObject.description", + "data_type": "String", + "data_type_prim": "String" + }, + "energyIdentCodeEic": { + "label": "entsoe:IdentifiedObject.energyIdentCodeEic", + "data_type": "String", + "data_type_prim": "String" + }, + "shortName": { + "label": "entsoe:IdentifiedObject.shortName", + "data_type": "String", + "data_type_prim": "String" + } + } + }, + "PowerTransformerEnd": { + "rdf_type": " rdf:ID=\"", + "label": "cim:PowerTransformerEnd", + "fields": { + "g": { + "label": "cim:PowerTransformerEnd.g", + "data_type": "Conductance", + "data_type_prim": "Float" + }, + "phaseAngleClock": { + "label": "cim:PowerTransformerEnd.phaseAngleClock", + "data_type": "Integer", + "data_type_prim": "Integer" + }, + "r": { + "label": "cim:PowerTransformerEnd.r", + "data_type": "Resistance", + "data_type_prim": "Float" + }, + "PowerTransformer": { + "label": "cim:PowerTransformerEnd.PowerTransformer", + "data_type": " rdf:resource=\"#", + "data_type_prim": " rdf:resource=\"#" + }, + "g0": { + "label": "cim:PowerTransformerEnd.g0", + "data_type": "Conductance", + "data_type_prim": "Float" + }, + "x": { + "label": "cim:PowerTransformerEnd.x", + "data_type": "Reactance", + "data_type_prim": "Float" + }, + "b": { + "label": "cim:PowerTransformerEnd.b", + "data_type": "Susceptance", + "data_type_prim": "Float" + }, + "ratedU": { + "label": "cim:PowerTransformerEnd.ratedU", + "data_type": "Voltage", + "data_type_prim": "Float" + }, + "x0": { + "label": "cim:PowerTransformerEnd.x0", + "data_type": "Reactance", + "data_type_prim": "Float" + }, + "ratedS": { + "label": "cim:PowerTransformerEnd.ratedS", + "data_type": "ApparentPower", + "data_type_prim": "Float" + }, + "connectionKind": { + "label": "cim:PowerTransformerEnd.connectionKind", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#WindingConnection.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#WindingConnection." + }, + "b0": { + "label": "cim:PowerTransformerEnd.b0", + "data_type": "Susceptance", + "data_type_prim": "Float" + }, + "r0": { + "label": "cim:PowerTransformerEnd.r0", + "data_type": "Resistance", + "data_type_prim": "Float" + }, + "rground": { + "label": "cim:TransformerEnd.rground", + "data_type": "Resistance", + "data_type_prim": "Float" + }, + "BaseVoltage": { + "label": "cim:TransformerEnd.BaseVoltage", + "data_type": " rdf:resource=\"#", + "data_type_prim": " rdf:resource=\"#" + }, + "PhaseTapChanger": { + "label": "cim:TransformerEnd.PhaseTapChanger", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#PhaseTapChanger.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#PhaseTapChanger." + }, + "endNumber": { + "label": "cim:TransformerEnd.endNumber", + "data_type": "Integer", + "data_type_prim": "Integer" + }, + "grounded": { + "label": "cim:TransformerEnd.grounded", + "data_type": "Boolean", + "data_type_prim": "Boolean" + }, + "xground": { + "label": "cim:TransformerEnd.xground", + "data_type": "Reactance", + "data_type_prim": "Float" + }, + "RatioTapChanger": { + "label": "cim:TransformerEnd.RatioTapChanger", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#RatioTapChanger.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#RatioTapChanger." + }, + "Terminal": { + "label": "cim:TransformerEnd.Terminal", + "data_type": " rdf:resource=\"#", + "data_type_prim": " rdf:resource=\"#" + }, + "mRID": { + "label": "cim:IdentifiedObject.mRID", + "data_type": "String", + "data_type_prim": "String" + }, + "name": { + "label": "cim:IdentifiedObject.name", + "data_type": "String", + "data_type_prim": "String" + }, + "description": { + "label": "cim:IdentifiedObject.description", + "data_type": "String", + "data_type_prim": "String" + }, + "energyIdentCodeEic": { + "label": "entsoe:IdentifiedObject.energyIdentCodeEic", + "data_type": "String", + "data_type_prim": "String" + }, + "shortName": { + "label": "entsoe:IdentifiedObject.shortName", + "data_type": "String", + "data_type_prim": "String" + } + } + }, + "TapChangerControl": { + "rdf_type": " rdf:ID=\"", + "label": "cim:TapChangerControl", + "fields": { + "TapChanger": { + "label": "cim:TapChangerControl.TapChanger", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#TapChanger.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#TapChanger." + }, + "RegulatingCondEq": { + "label": "cim:RegulatingControl.RegulatingCondEq", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#RegulatingCondEq.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#RegulatingCondEq." + }, + "Terminal": { + "label": "cim:RegulatingControl.Terminal", + "data_type": " rdf:resource=\"#", + "data_type_prim": " rdf:resource=\"#" + }, + "RegulationSchedule": { + "label": "cim:RegulatingControl.RegulationSchedule", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#RegulationSchedule.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#RegulationSchedule." + }, + "mode": { + "label": "cim:RegulatingControl.mode", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#RegulatingControlModeKind.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#RegulatingControlModeKind." + }, + "Measurements": { + "label": "cim:PowerSystemResource.Measurements", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Measurement.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Measurement." + }, + "Controls": { + "label": "cim:PowerSystemResource.Controls", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Control.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Control." + }, + "mRID": { + "label": "cim:IdentifiedObject.mRID", + "data_type": "String", + "data_type_prim": "String" + }, + "name": { + "label": "cim:IdentifiedObject.name", + "data_type": "String", + "data_type_prim": "String" + }, + "description": { + "label": "cim:IdentifiedObject.description", + "data_type": "String", + "data_type_prim": "String" + }, + "energyIdentCodeEic": { + "label": "entsoe:IdentifiedObject.energyIdentCodeEic", + "data_type": "String", + "data_type_prim": "String" + }, + "shortName": { + "label": "entsoe:IdentifiedObject.shortName", + "data_type": "String", + "data_type_prim": "String" + } + } + }, + "RatioTapChanger": { + "rdf_type": " rdf:ID=\"", + "label": "cim:RatioTapChanger", + "fields": { + "stepVoltageIncrement": { + "label": "cim:RatioTapChanger.stepVoltageIncrement", + "data_type": "PerCent", + "data_type_prim": "Float" + }, + "TransformerEnd": { + "label": "cim:RatioTapChanger.TransformerEnd", + "data_type": " rdf:resource=\"#", + "data_type_prim": " rdf:resource=\"#" + }, + "tculControlMode": { + "label": "cim:RatioTapChanger.tculControlMode", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#TransformerControlMode.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#TransformerControlMode." + }, + "RatioTapChangerTable": { + "label": "cim:RatioTapChanger.RatioTapChangerTable", + "data_type": " rdf:resource=\"#", + "data_type_prim": " rdf:resource=\"#" + }, + "neutralU": { + "label": "cim:TapChanger.neutralU", + "data_type": "Voltage", + "data_type_prim": "Float" + }, + "normalStep": { + "label": "cim:TapChanger.normalStep", + "data_type": "Integer", + "data_type_prim": "Integer" + }, + "neutralStep": { + "label": "cim:TapChanger.neutralStep", + "data_type": "Integer", + "data_type_prim": "Integer" + }, + "TapChangerControl": { + "label": "cim:TapChanger.TapChangerControl", + "data_type": " rdf:resource=\"#", + "data_type_prim": " rdf:resource=\"#" + }, + "highStep": { + "label": "cim:TapChanger.highStep", + "data_type": "Integer", + "data_type_prim": "Integer" + }, + "ltcFlag": { + "label": "cim:TapChanger.ltcFlag", + "data_type": "Boolean", + "data_type_prim": "Boolean" + }, + "lowStep": { + "label": "cim:TapChanger.lowStep", + "data_type": "Integer", + "data_type_prim": "Integer" + }, + "TapSchedules": { + "label": "cim:TapChanger.TapSchedules", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#TapSchedule.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#TapSchedule." + }, + "Measurements": { + "label": "cim:PowerSystemResource.Measurements", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Measurement.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Measurement." + }, + "Controls": { + "label": "cim:PowerSystemResource.Controls", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Control.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Control." + }, + "mRID": { + "label": "cim:IdentifiedObject.mRID", + "data_type": "String", + "data_type_prim": "String" + }, + "name": { + "label": "cim:IdentifiedObject.name", + "data_type": "String", + "data_type_prim": "String" + }, + "description": { + "label": "cim:IdentifiedObject.description", + "data_type": "String", + "data_type_prim": "String" + }, + "energyIdentCodeEic": { + "label": "entsoe:IdentifiedObject.energyIdentCodeEic", + "data_type": "String", + "data_type_prim": "String" + }, + "shortName": { + "label": "entsoe:IdentifiedObject.shortName", + "data_type": "String", + "data_type_prim": "String" + } + } + }, + "PhaseTapChangerLinear": { + "rdf_type": " rdf:ID=\"", + "label": "cim:PhaseTapChangerLinear", + "fields": { + "xMax": { + "label": "cim:PhaseTapChangerLinear.xMax", + "data_type": "Reactance", + "data_type_prim": "Float" + }, + "xMin": { + "label": "cim:PhaseTapChangerLinear.xMin", + "data_type": "Reactance", + "data_type_prim": "Float" + }, + "stepPhaseShiftIncrement": { + "label": "cim:PhaseTapChangerLinear.stepPhaseShiftIncrement", + "data_type": "AngleDegrees", + "data_type_prim": "Float" + }, + "TransformerEnd": { + "label": "cim:PhaseTapChanger.TransformerEnd", + "data_type": " rdf:resource=\"#", + "data_type_prim": " rdf:resource=\"#" + }, + "neutralU": { + "label": "cim:TapChanger.neutralU", + "data_type": "Voltage", + "data_type_prim": "Float" + }, + "normalStep": { + "label": "cim:TapChanger.normalStep", + "data_type": "Integer", + "data_type_prim": "Integer" + }, + "neutralStep": { + "label": "cim:TapChanger.neutralStep", + "data_type": "Integer", + "data_type_prim": "Integer" + }, + "TapChangerControl": { + "label": "cim:TapChanger.TapChangerControl", + "data_type": " rdf:resource=\"#", + "data_type_prim": " rdf:resource=\"#" + }, + "highStep": { + "label": "cim:TapChanger.highStep", + "data_type": "Integer", + "data_type_prim": "Integer" + }, + "ltcFlag": { + "label": "cim:TapChanger.ltcFlag", + "data_type": "Boolean", + "data_type_prim": "Boolean" + }, + "lowStep": { + "label": "cim:TapChanger.lowStep", + "data_type": "Integer", + "data_type_prim": "Integer" + }, + "TapSchedules": { + "label": "cim:TapChanger.TapSchedules", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#TapSchedule.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#TapSchedule." + }, + "Measurements": { + "label": "cim:PowerSystemResource.Measurements", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Measurement.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Measurement." + }, + "Controls": { + "label": "cim:PowerSystemResource.Controls", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Control.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Control." + }, + "mRID": { + "label": "cim:IdentifiedObject.mRID", + "data_type": "String", + "data_type_prim": "String" + }, + "name": { + "label": "cim:IdentifiedObject.name", + "data_type": "String", + "data_type_prim": "String" + }, + "description": { + "label": "cim:IdentifiedObject.description", + "data_type": "String", + "data_type_prim": "String" + }, + "energyIdentCodeEic": { + "label": "entsoe:IdentifiedObject.energyIdentCodeEic", + "data_type": "String", + "data_type_prim": "String" + }, + "shortName": { + "label": "entsoe:IdentifiedObject.shortName", + "data_type": "String", + "data_type_prim": "String" + } + } + }, + "PhaseTapChangerAsymmetrical": { + "rdf_type": " rdf:ID=\"", + "label": "cim:PhaseTapChangerAsymmetrical", + "fields": { + "windingConnectionAngle": { + "label": "cim:PhaseTapChangerAsymmetrical.windingConnectionAngle", + "data_type": "AngleDegrees", + "data_type_prim": "Float" + }, + "xMin": { + "label": "cim:PhaseTapChangerNonLinear.xMin", + "data_type": "Reactance", + "data_type_prim": "Float" + }, + "xMax": { + "label": "cim:PhaseTapChangerNonLinear.xMax", + "data_type": "Reactance", + "data_type_prim": "Float" + }, + "voltageStepIncrement": { + "label": "cim:PhaseTapChangerNonLinear.voltageStepIncrement", + "data_type": "PerCent", + "data_type_prim": "Float" + }, + "TransformerEnd": { + "label": "cim:PhaseTapChanger.TransformerEnd", + "data_type": " rdf:resource=\"#", + "data_type_prim": " rdf:resource=\"#" + }, + "neutralU": { + "label": "cim:TapChanger.neutralU", + "data_type": "Voltage", + "data_type_prim": "Float" + }, + "normalStep": { + "label": "cim:TapChanger.normalStep", + "data_type": "Integer", + "data_type_prim": "Integer" + }, + "neutralStep": { + "label": "cim:TapChanger.neutralStep", + "data_type": "Integer", + "data_type_prim": "Integer" + }, + "TapChangerControl": { + "label": "cim:TapChanger.TapChangerControl", + "data_type": " rdf:resource=\"#", + "data_type_prim": " rdf:resource=\"#" + }, + "highStep": { + "label": "cim:TapChanger.highStep", + "data_type": "Integer", + "data_type_prim": "Integer" + }, + "ltcFlag": { + "label": "cim:TapChanger.ltcFlag", + "data_type": "Boolean", + "data_type_prim": "Boolean" + }, + "lowStep": { + "label": "cim:TapChanger.lowStep", + "data_type": "Integer", + "data_type_prim": "Integer" + }, + "TapSchedules": { + "label": "cim:TapChanger.TapSchedules", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#TapSchedule.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#TapSchedule." + }, + "Measurements": { + "label": "cim:PowerSystemResource.Measurements", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Measurement.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Measurement." + }, + "Controls": { + "label": "cim:PowerSystemResource.Controls", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Control.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Control." + }, + "mRID": { + "label": "cim:IdentifiedObject.mRID", + "data_type": "String", + "data_type_prim": "String" + }, + "name": { + "label": "cim:IdentifiedObject.name", + "data_type": "String", + "data_type_prim": "String" + }, + "description": { + "label": "cim:IdentifiedObject.description", + "data_type": "String", + "data_type_prim": "String" + }, + "energyIdentCodeEic": { + "label": "entsoe:IdentifiedObject.energyIdentCodeEic", + "data_type": "String", + "data_type_prim": "String" + }, + "shortName": { + "label": "entsoe:IdentifiedObject.shortName", + "data_type": "String", + "data_type_prim": "String" + } + } + }, + "PhaseTapChangerSymmetrical": { + "rdf_type": " rdf:ID=\"", + "label": "cim:PhaseTapChangerSymmetrical", + "fields": { + "xMin": { + "label": "cim:PhaseTapChangerNonLinear.xMin", + "data_type": "Reactance", + "data_type_prim": "Float" + }, + "xMax": { + "label": "cim:PhaseTapChangerNonLinear.xMax", + "data_type": "Reactance", + "data_type_prim": "Float" + }, + "voltageStepIncrement": { + "label": "cim:PhaseTapChangerNonLinear.voltageStepIncrement", + "data_type": "PerCent", + "data_type_prim": "Float" + }, + "TransformerEnd": { + "label": "cim:PhaseTapChanger.TransformerEnd", + "data_type": " rdf:resource=\"#", + "data_type_prim": " rdf:resource=\"#" + }, + "neutralU": { + "label": "cim:TapChanger.neutralU", + "data_type": "Voltage", + "data_type_prim": "Float" + }, + "normalStep": { + "label": "cim:TapChanger.normalStep", + "data_type": "Integer", + "data_type_prim": "Integer" + }, + "neutralStep": { + "label": "cim:TapChanger.neutralStep", + "data_type": "Integer", + "data_type_prim": "Integer" + }, + "TapChangerControl": { + "label": "cim:TapChanger.TapChangerControl", + "data_type": " rdf:resource=\"#", + "data_type_prim": " rdf:resource=\"#" + }, + "highStep": { + "label": "cim:TapChanger.highStep", + "data_type": "Integer", + "data_type_prim": "Integer" + }, + "ltcFlag": { + "label": "cim:TapChanger.ltcFlag", + "data_type": "Boolean", + "data_type_prim": "Boolean" + }, + "lowStep": { + "label": "cim:TapChanger.lowStep", + "data_type": "Integer", + "data_type_prim": "Integer" + }, + "TapSchedules": { + "label": "cim:TapChanger.TapSchedules", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#TapSchedule.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#TapSchedule." + }, + "Measurements": { + "label": "cim:PowerSystemResource.Measurements", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Measurement.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Measurement." + }, + "Controls": { + "label": "cim:PowerSystemResource.Controls", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Control.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Control." + }, + "mRID": { + "label": "cim:IdentifiedObject.mRID", + "data_type": "String", + "data_type_prim": "String" + }, + "name": { + "label": "cim:IdentifiedObject.name", + "data_type": "String", + "data_type_prim": "String" + }, + "description": { + "label": "cim:IdentifiedObject.description", + "data_type": "String", + "data_type_prim": "String" + }, + "energyIdentCodeEic": { + "label": "entsoe:IdentifiedObject.energyIdentCodeEic", + "data_type": "String", + "data_type_prim": "String" + }, + "shortName": { + "label": "entsoe:IdentifiedObject.shortName", + "data_type": "String", + "data_type_prim": "String" + } + } + }, + "PhaseTapChangerTabular": { + "rdf_type": " rdf:ID=\"", + "label": "cim:PhaseTapChangerTabular", + "fields": { + "PhaseTapChangerTable": { + "label": "cim:PhaseTapChangerTabular.PhaseTapChangerTable", + "data_type": " rdf:resource=\"#", + "data_type_prim": " rdf:resource=\"#" + }, + "TransformerEnd": { + "label": "cim:PhaseTapChanger.TransformerEnd", + "data_type": " rdf:resource=\"#", + "data_type_prim": " rdf:resource=\"#" + }, + "neutralU": { + "label": "cim:TapChanger.neutralU", + "data_type": "Voltage", + "data_type_prim": "Float" + }, + "normalStep": { + "label": "cim:TapChanger.normalStep", + "data_type": "Integer", + "data_type_prim": "Integer" + }, + "neutralStep": { + "label": "cim:TapChanger.neutralStep", + "data_type": "Integer", + "data_type_prim": "Integer" + }, + "TapChangerControl": { + "label": "cim:TapChanger.TapChangerControl", + "data_type": " rdf:resource=\"#", + "data_type_prim": " rdf:resource=\"#" + }, + "highStep": { + "label": "cim:TapChanger.highStep", + "data_type": "Integer", + "data_type_prim": "Integer" + }, + "ltcFlag": { + "label": "cim:TapChanger.ltcFlag", + "data_type": "Boolean", + "data_type_prim": "Boolean" + }, + "lowStep": { + "label": "cim:TapChanger.lowStep", + "data_type": "Integer", + "data_type_prim": "Integer" + }, + "TapSchedules": { + "label": "cim:TapChanger.TapSchedules", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#TapSchedule.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#TapSchedule." + }, + "Measurements": { + "label": "cim:PowerSystemResource.Measurements", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Measurement.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Measurement." + }, + "Controls": { + "label": "cim:PowerSystemResource.Controls", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Control.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Control." + }, + "mRID": { + "label": "cim:IdentifiedObject.mRID", + "data_type": "String", + "data_type_prim": "String" + }, + "name": { + "label": "cim:IdentifiedObject.name", + "data_type": "String", + "data_type_prim": "String" + }, + "description": { + "label": "cim:IdentifiedObject.description", + "data_type": "String", + "data_type_prim": "String" + }, + "energyIdentCodeEic": { + "label": "entsoe:IdentifiedObject.energyIdentCodeEic", + "data_type": "String", + "data_type_prim": "String" + }, + "shortName": { + "label": "entsoe:IdentifiedObject.shortName", + "data_type": "String", + "data_type_prim": "String" + } + } + }, + "PhaseTapChangerTablePoint": { + "rdf_type": " rdf:ID=\"", + "label": "cim:PhaseTapChangerTablePoint", + "fields": { + "PhaseTapChangerTable": { + "label": "cim:PhaseTapChangerTablePoint.PhaseTapChangerTable", + "data_type": " rdf:resource=\"#", + "data_type_prim": " rdf:resource=\"#" + }, + "angle": { + "label": "cim:PhaseTapChangerTablePoint.angle", + "data_type": "AngleDegrees", + "data_type_prim": "Float" + }, + "r": { + "label": "cim:TapChangerTablePoint.r", + "data_type": "PerCent", + "data_type_prim": "Float" + }, + "g": { + "label": "cim:TapChangerTablePoint.g", + "data_type": "PerCent", + "data_type_prim": "Float" + }, + "b": { + "label": "cim:TapChangerTablePoint.b", + "data_type": "PerCent", + "data_type_prim": "Float" + }, + "ratio": { + "label": "cim:TapChangerTablePoint.ratio", + "data_type": "Simple_Float", + "data_type_prim": "Float" + }, + "step": { + "label": "cim:TapChangerTablePoint.step", + "data_type": "Integer", + "data_type_prim": "Integer" + }, + "x": { + "label": "cim:TapChangerTablePoint.x", + "data_type": "PerCent", + "data_type_prim": "Float" + } + } + }, + "RatioTapChangerTable": { + "rdf_type": " rdf:ID=\"", + "label": "cim:RatioTapChangerTable", + "fields": { + "RatioTapChangerTablePoint": { + "label": "cim:RatioTapChangerTable.RatioTapChangerTablePoint", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#RatioTapChangerTablePoint.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#RatioTapChangerTablePoint." + }, + "RatioTapChanger": { + "label": "cim:RatioTapChangerTable.RatioTapChanger", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#RatioTapChanger.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#RatioTapChanger." + }, + "mRID": { + "label": "cim:IdentifiedObject.mRID", + "data_type": "String", + "data_type_prim": "String" + }, + "name": { + "label": "cim:IdentifiedObject.name", + "data_type": "String", + "data_type_prim": "String" + }, + "description": { + "label": "cim:IdentifiedObject.description", + "data_type": "String", + "data_type_prim": "String" + }, + "energyIdentCodeEic": { + "label": "entsoe:IdentifiedObject.energyIdentCodeEic", + "data_type": "String", + "data_type_prim": "String" + }, + "shortName": { + "label": "entsoe:IdentifiedObject.shortName", + "data_type": "String", + "data_type_prim": "String" + } + } + }, + "RatioTapChangerTablePoint": { + "rdf_type": " rdf:ID=\"", + "label": "cim:RatioTapChangerTablePoint", + "fields": { + "RatioTapChangerTable": { + "label": "cim:RatioTapChangerTablePoint.RatioTapChangerTable", + "data_type": " rdf:resource=\"#", + "data_type_prim": " rdf:resource=\"#" + }, + "r": { + "label": "cim:TapChangerTablePoint.r", + "data_type": "PerCent", + "data_type_prim": "Float" + }, + "g": { + "label": "cim:TapChangerTablePoint.g", + "data_type": "PerCent", + "data_type_prim": "Float" + }, + "b": { + "label": "cim:TapChangerTablePoint.b", + "data_type": "PerCent", + "data_type_prim": "Float" + }, + "ratio": { + "label": "cim:TapChangerTablePoint.ratio", + "data_type": "Simple_Float", + "data_type_prim": "Float" + }, + "step": { + "label": "cim:TapChangerTablePoint.step", + "data_type": "Integer", + "data_type_prim": "Integer" + }, + "x": { + "label": "cim:TapChangerTablePoint.x", + "data_type": "PerCent", + "data_type_prim": "Float" + } + } + }, + "LinearShuntCompensator": { + "rdf_type": " rdf:ID=\"", + "label": "cim:LinearShuntCompensator", + "fields": { + "b0PerSection": { + "label": "cim:LinearShuntCompensator.b0PerSection", + "data_type": "Susceptance", + "data_type_prim": "Float" + }, + "bPerSection": { + "label": "cim:LinearShuntCompensator.bPerSection", + "data_type": "Susceptance", + "data_type_prim": "Float" + }, + "gPerSection": { + "label": "cim:LinearShuntCompensator.gPerSection", + "data_type": "Conductance", + "data_type_prim": "Float" + }, + "g0PerSection": { + "label": "cim:LinearShuntCompensator.g0PerSection", + "data_type": "Conductance", + "data_type_prim": "Float" + }, + "maximumSections": { + "label": "cim:ShuntCompensator.maximumSections", + "data_type": "Integer", + "data_type_prim": "Integer" + }, + "switchOnCount": { + "label": "cim:ShuntCompensator.switchOnCount", + "data_type": "Integer", + "data_type_prim": "Integer" + }, + "aVRDelay": { + "label": "cim:ShuntCompensator.aVRDelay", + "data_type": "Seconds", + "data_type_prim": "Float" + }, + "normalSections": { + "label": "cim:ShuntCompensator.normalSections", + "data_type": "Integer", + "data_type_prim": "Integer" + }, + "voltageSensitivity": { + "label": "cim:ShuntCompensator.voltageSensitivity", + "data_type": "VoltagePerReactivePower", + "data_type_prim": "Float" + }, + "nomU": { + "label": "cim:ShuntCompensator.nomU", + "data_type": "Voltage", + "data_type_prim": "Float" + }, + "switchOnDate": { + "label": "cim:ShuntCompensator.switchOnDate", + "data_type": "DateTime", + "data_type_prim": "DateTime" + }, + "grounded": { + "label": "cim:ShuntCompensator.grounded", + "data_type": "Boolean", + "data_type_prim": "Boolean" + }, + "RegulatingControl": { + "label": "cim:RegulatingCondEq.RegulatingControl", + "data_type": " rdf:resource=\"#", + "data_type_prim": " rdf:resource=\"#" + }, + "Terminals": { + "label": "cim:ConductingEquipment.Terminals", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Terminal.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Terminal." + }, + "BaseVoltage": { + "label": "cim:ConductingEquipment.BaseVoltage", + "data_type": " rdf:resource=\"#", + "data_type_prim": " rdf:resource=\"#" + }, + "EquipmentContainer": { + "label": "cim:Equipment.EquipmentContainer", + "data_type": " rdf:resource=\"#", + "data_type_prim": " rdf:resource=\"#" + }, + "aggregate": { + "label": "cim:Equipment.aggregate", + "data_type": "Boolean", + "data_type_prim": "Boolean" + }, + "OperationalLimitSet": { + "label": "cim:Equipment.OperationalLimitSet", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#OperationalLimitSet.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#OperationalLimitSet." + }, + "Measurements": { + "label": "cim:PowerSystemResource.Measurements", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Measurement.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Measurement." + }, + "Controls": { + "label": "cim:PowerSystemResource.Controls", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Control.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Control." + }, + "mRID": { + "label": "cim:IdentifiedObject.mRID", + "data_type": "String", + "data_type_prim": "String" + }, + "name": { + "label": "cim:IdentifiedObject.name", + "data_type": "String", + "data_type_prim": "String" + }, + "description": { + "label": "cim:IdentifiedObject.description", + "data_type": "String", + "data_type_prim": "String" + }, + "energyIdentCodeEic": { + "label": "entsoe:IdentifiedObject.energyIdentCodeEic", + "data_type": "String", + "data_type_prim": "String" + }, + "shortName": { + "label": "entsoe:IdentifiedObject.shortName", + "data_type": "String", + "data_type_prim": "String" + } + } + }, + "NonlinearShuntCompensator": { + "rdf_type": " rdf:ID=\"", + "label": "cim:NonlinearShuntCompensator", + "fields": { + "NonlinearShuntCompensatorPoints": { + "label": "cim:NonlinearShuntCompensator.NonlinearShuntCompensatorPoints", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#NonlinearShuntCompensatorPoint.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#NonlinearShuntCompensatorPoint." + }, + "maximumSections": { + "label": "cim:ShuntCompensator.maximumSections", + "data_type": "Integer", + "data_type_prim": "Integer" + }, + "switchOnCount": { + "label": "cim:ShuntCompensator.switchOnCount", + "data_type": "Integer", + "data_type_prim": "Integer" + }, + "aVRDelay": { + "label": "cim:ShuntCompensator.aVRDelay", + "data_type": "Seconds", + "data_type_prim": "Float" + }, + "normalSections": { + "label": "cim:ShuntCompensator.normalSections", + "data_type": "Integer", + "data_type_prim": "Integer" + }, + "voltageSensitivity": { + "label": "cim:ShuntCompensator.voltageSensitivity", + "data_type": "VoltagePerReactivePower", + "data_type_prim": "Float" + }, + "nomU": { + "label": "cim:ShuntCompensator.nomU", + "data_type": "Voltage", + "data_type_prim": "Float" + }, + "switchOnDate": { + "label": "cim:ShuntCompensator.switchOnDate", + "data_type": "DateTime", + "data_type_prim": "DateTime" + }, + "grounded": { + "label": "cim:ShuntCompensator.grounded", + "data_type": "Boolean", + "data_type_prim": "Boolean" + }, + "RegulatingControl": { + "label": "cim:RegulatingCondEq.RegulatingControl", + "data_type": " rdf:resource=\"#", + "data_type_prim": " rdf:resource=\"#" + }, + "Terminals": { + "label": "cim:ConductingEquipment.Terminals", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Terminal.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Terminal." + }, + "BaseVoltage": { + "label": "cim:ConductingEquipment.BaseVoltage", + "data_type": " rdf:resource=\"#", + "data_type_prim": " rdf:resource=\"#" + }, + "EquipmentContainer": { + "label": "cim:Equipment.EquipmentContainer", + "data_type": " rdf:resource=\"#", + "data_type_prim": " rdf:resource=\"#" + }, + "aggregate": { + "label": "cim:Equipment.aggregate", + "data_type": "Boolean", + "data_type_prim": "Boolean" + }, + "OperationalLimitSet": { + "label": "cim:Equipment.OperationalLimitSet", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#OperationalLimitSet.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#OperationalLimitSet." + }, + "Measurements": { + "label": "cim:PowerSystemResource.Measurements", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Measurement.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Measurement." + }, + "Controls": { + "label": "cim:PowerSystemResource.Controls", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Control.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Control." + }, + "mRID": { + "label": "cim:IdentifiedObject.mRID", + "data_type": "String", + "data_type_prim": "String" + }, + "name": { + "label": "cim:IdentifiedObject.name", + "data_type": "String", + "data_type_prim": "String" + }, + "description": { + "label": "cim:IdentifiedObject.description", + "data_type": "String", + "data_type_prim": "String" + }, + "energyIdentCodeEic": { + "label": "entsoe:IdentifiedObject.energyIdentCodeEic", + "data_type": "String", + "data_type_prim": "String" + }, + "shortName": { + "label": "entsoe:IdentifiedObject.shortName", + "data_type": "String", + "data_type_prim": "String" + } + } + }, + "NonlinearShuntCompensatorPoint": { + "rdf_type": " rdf:ID=\"", + "label": "cim:NonlinearShuntCompensatorPoint", + "fields": { + "sectionNumber": { + "label": "cim:NonlinearShuntCompensatorPoint.sectionNumber", + "data_type": "Integer", + "data_type_prim": "Integer" + }, + "g": { + "label": "cim:NonlinearShuntCompensatorPoint.g", + "data_type": "Conductance", + "data_type_prim": "Float" + }, + "b0": { + "label": "cim:NonlinearShuntCompensatorPoint.b0", + "data_type": "Susceptance", + "data_type_prim": "Float" + }, + "b": { + "label": "cim:NonlinearShuntCompensatorPoint.b", + "data_type": "Susceptance", + "data_type_prim": "Float" + }, + "g0": { + "label": "cim:NonlinearShuntCompensatorPoint.g0", + "data_type": "Conductance", + "data_type_prim": "Float" + }, + "NonlinearShuntCompensator": { + "label": "cim:NonlinearShuntCompensatorPoint.NonlinearShuntCompensator", + "data_type": " rdf:resource=\"#", + "data_type_prim": " rdf:resource=\"#" + } + } + }, + "EquivalentBranch": { + "rdf_type": " rdf:ID=\"", + "label": "cim:EquivalentBranch", + "fields": { + "x21": { + "label": "cim:EquivalentBranch.x21", + "data_type": "Reactance", + "data_type_prim": "Float" + }, + "r21": { + "label": "cim:EquivalentBranch.r21", + "data_type": "Resistance", + "data_type_prim": "Float" + }, + "positiveX12": { + "label": "cim:EquivalentBranch.positiveX12", + "data_type": "Reactance", + "data_type_prim": "Float" + }, + "x": { + "label": "cim:EquivalentBranch.x", + "data_type": "Reactance", + "data_type_prim": "Float" + }, + "r": { + "label": "cim:EquivalentBranch.r", + "data_type": "Resistance", + "data_type_prim": "Float" + }, + "positiveR12": { + "label": "cim:EquivalentBranch.positiveR12", + "data_type": "Resistance", + "data_type_prim": "Float" + }, + "negativeR12": { + "label": "cim:EquivalentBranch.negativeR12", + "data_type": "Resistance", + "data_type_prim": "Float" + }, + "zeroR21": { + "label": "cim:EquivalentBranch.zeroR21", + "data_type": "Resistance", + "data_type_prim": "Float" + }, + "zeroR12": { + "label": "cim:EquivalentBranch.zeroR12", + "data_type": "Resistance", + "data_type_prim": "Float" + }, + "positiveX21": { + "label": "cim:EquivalentBranch.positiveX21", + "data_type": "Reactance", + "data_type_prim": "Float" + }, + "zeroX21": { + "label": "cim:EquivalentBranch.zeroX21", + "data_type": "Reactance", + "data_type_prim": "Float" + }, + "zeroX12": { + "label": "cim:EquivalentBranch.zeroX12", + "data_type": "Reactance", + "data_type_prim": "Float" + }, + "negativeX12": { + "label": "cim:EquivalentBranch.negativeX12", + "data_type": "Reactance", + "data_type_prim": "Float" + }, + "negativeR21": { + "label": "cim:EquivalentBranch.negativeR21", + "data_type": "Resistance", + "data_type_prim": "Float" + }, + "negativeX21": { + "label": "cim:EquivalentBranch.negativeX21", + "data_type": "Reactance", + "data_type_prim": "Float" + }, + "positiveR21": { + "label": "cim:EquivalentBranch.positiveR21", + "data_type": "Resistance", + "data_type_prim": "Float" + }, + "EquivalentNetwork": { + "label": "cim:EquivalentEquipment.EquivalentNetwork", + "data_type": " rdf:resource=\"#", + "data_type_prim": " rdf:resource=\"#" + }, + "Terminals": { + "label": "cim:ConductingEquipment.Terminals", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Terminal.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Terminal." + }, + "BaseVoltage": { + "label": "cim:ConductingEquipment.BaseVoltage", + "data_type": " rdf:resource=\"#", + "data_type_prim": " rdf:resource=\"#" + }, + "EquipmentContainer": { + "label": "cim:Equipment.EquipmentContainer", + "data_type": " rdf:resource=\"#", + "data_type_prim": " rdf:resource=\"#" + }, + "aggregate": { + "label": "cim:Equipment.aggregate", + "data_type": "Boolean", + "data_type_prim": "Boolean" + }, + "OperationalLimitSet": { + "label": "cim:Equipment.OperationalLimitSet", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#OperationalLimitSet.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#OperationalLimitSet." + }, + "Measurements": { + "label": "cim:PowerSystemResource.Measurements", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Measurement.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Measurement." + }, + "Controls": { + "label": "cim:PowerSystemResource.Controls", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Control.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Control." + }, + "mRID": { + "label": "cim:IdentifiedObject.mRID", + "data_type": "String", + "data_type_prim": "String" + }, + "name": { + "label": "cim:IdentifiedObject.name", + "data_type": "String", + "data_type_prim": "String" + }, + "description": { + "label": "cim:IdentifiedObject.description", + "data_type": "String", + "data_type_prim": "String" + }, + "energyIdentCodeEic": { + "label": "entsoe:IdentifiedObject.energyIdentCodeEic", + "data_type": "String", + "data_type_prim": "String" + }, + "shortName": { + "label": "entsoe:IdentifiedObject.shortName", + "data_type": "String", + "data_type_prim": "String" + } + } + }, + "EquivalentInjection": { + "rdf_type": " rdf:ID=\"", + "label": "cim:EquivalentInjection", + "fields": { + "minP": { + "label": "cim:EquivalentInjection.minP", + "data_type": "ActivePower", + "data_type_prim": "Float" + }, + "r0": { + "label": "cim:EquivalentInjection.r0", + "data_type": "Resistance", + "data_type_prim": "Float" + }, + "x": { + "label": "cim:EquivalentInjection.x", + "data_type": "Reactance", + "data_type_prim": "Float" + }, + "maxP": { + "label": "cim:EquivalentInjection.maxP", + "data_type": "ActivePower", + "data_type_prim": "Float" + }, + "x2": { + "label": "cim:EquivalentInjection.x2", + "data_type": "Reactance", + "data_type_prim": "Float" + }, + "r": { + "label": "cim:EquivalentInjection.r", + "data_type": "Resistance", + "data_type_prim": "Float" + }, + "ReactiveCapabilityCurve": { + "label": "cim:EquivalentInjection.ReactiveCapabilityCurve", + "data_type": " rdf:resource=\"#", + "data_type_prim": " rdf:resource=\"#" + }, + "regulationCapability": { + "label": "cim:EquivalentInjection.regulationCapability", + "data_type": "Boolean", + "data_type_prim": "Boolean" + }, + "r2": { + "label": "cim:EquivalentInjection.r2", + "data_type": "Resistance", + "data_type_prim": "Float" + }, + "maxQ": { + "label": "cim:EquivalentInjection.maxQ", + "data_type": "ReactivePower", + "data_type_prim": "Float" + }, + "x0": { + "label": "cim:EquivalentInjection.x0", + "data_type": "Reactance", + "data_type_prim": "Float" + }, + "minQ": { + "label": "cim:EquivalentInjection.minQ", + "data_type": "ReactivePower", + "data_type_prim": "Float" + }, + "EquivalentNetwork": { + "label": "cim:EquivalentEquipment.EquivalentNetwork", + "data_type": " rdf:resource=\"#", + "data_type_prim": " rdf:resource=\"#" + }, + "Terminals": { + "label": "cim:ConductingEquipment.Terminals", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Terminal.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Terminal." + }, + "BaseVoltage": { + "label": "cim:ConductingEquipment.BaseVoltage", + "data_type": " rdf:resource=\"#", + "data_type_prim": " rdf:resource=\"#" + }, + "EquipmentContainer": { + "label": "cim:Equipment.EquipmentContainer", + "data_type": " rdf:resource=\"#", + "data_type_prim": " rdf:resource=\"#" + }, + "aggregate": { + "label": "cim:Equipment.aggregate", + "data_type": "Boolean", + "data_type_prim": "Boolean" + }, + "OperationalLimitSet": { + "label": "cim:Equipment.OperationalLimitSet", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#OperationalLimitSet.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#OperationalLimitSet." + }, + "Measurements": { + "label": "cim:PowerSystemResource.Measurements", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Measurement.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Measurement." + }, + "Controls": { + "label": "cim:PowerSystemResource.Controls", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Control.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Control." + }, + "mRID": { + "label": "cim:IdentifiedObject.mRID", + "data_type": "String", + "data_type_prim": "String" + }, + "name": { + "label": "cim:IdentifiedObject.name", + "data_type": "String", + "data_type_prim": "String" + }, + "description": { + "label": "cim:IdentifiedObject.description", + "data_type": "String", + "data_type_prim": "String" + }, + "energyIdentCodeEic": { + "label": "entsoe:IdentifiedObject.energyIdentCodeEic", + "data_type": "String", + "data_type_prim": "String" + }, + "shortName": { + "label": "entsoe:IdentifiedObject.shortName", + "data_type": "String", + "data_type_prim": "String" + } + } + }, + "SeriesCompensator": { + "rdf_type": " rdf:ID=\"", + "label": "cim:SeriesCompensator", + "fields": { + "varistorVoltageThreshold": { + "label": "cim:SeriesCompensator.varistorVoltageThreshold", + "data_type": "Voltage", + "data_type_prim": "Float" + }, + "x0": { + "label": "cim:SeriesCompensator.x0", + "data_type": "Reactance", + "data_type_prim": "Float" + }, + "r": { + "label": "cim:SeriesCompensator.r", + "data_type": "Resistance", + "data_type_prim": "Float" + }, + "r0": { + "label": "cim:SeriesCompensator.r0", + "data_type": "Resistance", + "data_type_prim": "Float" + }, + "x": { + "label": "cim:SeriesCompensator.x", + "data_type": "Reactance", + "data_type_prim": "Float" + }, + "varistorPresent": { + "label": "cim:SeriesCompensator.varistorPresent", + "data_type": "Boolean", + "data_type_prim": "Boolean" + }, + "varistorRatedCurrent": { + "label": "cim:SeriesCompensator.varistorRatedCurrent", + "data_type": "CurrentFlow", + "data_type_prim": "Float" + }, + "Terminals": { + "label": "cim:ConductingEquipment.Terminals", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Terminal.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Terminal." + }, + "BaseVoltage": { + "label": "cim:ConductingEquipment.BaseVoltage", + "data_type": " rdf:resource=\"#", + "data_type_prim": " rdf:resource=\"#" + }, + "EquipmentContainer": { + "label": "cim:Equipment.EquipmentContainer", + "data_type": " rdf:resource=\"#", + "data_type_prim": " rdf:resource=\"#" + }, + "aggregate": { + "label": "cim:Equipment.aggregate", + "data_type": "Boolean", + "data_type_prim": "Boolean" + }, + "OperationalLimitSet": { + "label": "cim:Equipment.OperationalLimitSet", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#OperationalLimitSet.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#OperationalLimitSet." + }, + "Measurements": { + "label": "cim:PowerSystemResource.Measurements", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Measurement.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Measurement." + }, + "Controls": { + "label": "cim:PowerSystemResource.Controls", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Control.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Control." + }, + "mRID": { + "label": "cim:IdentifiedObject.mRID", + "data_type": "String", + "data_type_prim": "String" + }, + "name": { + "label": "cim:IdentifiedObject.name", + "data_type": "String", + "data_type_prim": "String" + }, + "description": { + "label": "cim:IdentifiedObject.description", + "data_type": "String", + "data_type_prim": "String" + }, + "energyIdentCodeEic": { + "label": "entsoe:IdentifiedObject.energyIdentCodeEic", + "data_type": "String", + "data_type_prim": "String" + }, + "shortName": { + "label": "entsoe:IdentifiedObject.shortName", + "data_type": "String", + "data_type_prim": "String" + } + } + }, + "Analog": { + "rdf_type": " rdf:ID=\"", + "label": "cim:Analog", + "fields": { + "AnalogValues": { + "label": "cim:Analog.AnalogValues", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#AnalogValue.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#AnalogValue." + }, + "positiveFlowIn": { + "label": "cim:Analog.positiveFlowIn", + "data_type": "Boolean", + "data_type_prim": "Boolean" + }, + "LimitSets": { + "label": "cim:Analog.LimitSets", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#AnalogLimitSet.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#AnalogLimitSet." + }, + "unitSymbol": { + "label": "cim:Measurement.unitSymbol", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#UnitSymbol.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#UnitSymbol." + }, + "phases": { + "label": "cim:Measurement.phases", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#PhaseCode.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#PhaseCode." + }, + "Terminal": { + "label": "cim:Measurement.Terminal", + "data_type": " rdf:resource=\"#", + "data_type_prim": " rdf:resource=\"#" + }, + "measurementType": { + "label": "cim:Measurement.measurementType", + "data_type": "String", + "data_type_prim": "String" + }, + "unitMultiplier": { + "label": "cim:Measurement.unitMultiplier", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#UnitMultiplier.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#UnitMultiplier." + }, + "PowerSystemResource": { + "label": "cim:Measurement.PowerSystemResource", + "data_type": " rdf:resource=\"#", + "data_type_prim": " rdf:resource=\"#" + }, + "mRID": { + "label": "cim:IdentifiedObject.mRID", + "data_type": "String", + "data_type_prim": "String" + }, + "name": { + "label": "cim:IdentifiedObject.name", + "data_type": "String", + "data_type_prim": "String" + }, + "description": { + "label": "cim:IdentifiedObject.description", + "data_type": "String", + "data_type_prim": "String" + }, + "energyIdentCodeEic": { + "label": "entsoe:IdentifiedObject.energyIdentCodeEic", + "data_type": "String", + "data_type_prim": "String" + }, + "shortName": { + "label": "entsoe:IdentifiedObject.shortName", + "data_type": "String", + "data_type_prim": "String" + } + } + }, + "AnalogValue": { + "rdf_type": " rdf:ID=\"", + "label": "cim:AnalogValue", + "fields": { + "AnalogControl": { + "label": "cim:AnalogValue.AnalogControl", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#AnalogControl.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#AnalogControl." + }, + "value": { + "label": "cim:AnalogValue.value", + "data_type": "Simple_Float", + "data_type_prim": "Float" + }, + "Analog": { + "label": "cim:AnalogValue.Analog", + "data_type": " rdf:resource=\"#", + "data_type_prim": " rdf:resource=\"#" + }, + "MeasurementValueQuality": { + "label": "cim:MeasurementValue.MeasurementValueQuality", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#MeasurementValueQuality.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#MeasurementValueQuality." + }, + "MeasurementValueSource": { + "label": "cim:MeasurementValue.MeasurementValueSource", + "data_type": " rdf:resource=\"#", + "data_type_prim": " rdf:resource=\"#" + }, + "sensorAccuracy": { + "label": "cim:MeasurementValue.sensorAccuracy", + "data_type": "PerCent", + "data_type_prim": "Float" + }, + "timeStamp": { + "label": "cim:MeasurementValue.timeStamp", + "data_type": "DateTime", + "data_type_prim": "DateTime" + }, + "mRID": { + "label": "cim:IdentifiedObject.mRID", + "data_type": "String", + "data_type_prim": "String" + }, + "name": { + "label": "cim:IdentifiedObject.name", + "data_type": "String", + "data_type_prim": "String" + }, + "description": { + "label": "cim:IdentifiedObject.description", + "data_type": "String", + "data_type_prim": "String" + }, + "energyIdentCodeEic": { + "label": "entsoe:IdentifiedObject.energyIdentCodeEic", + "data_type": "String", + "data_type_prim": "String" + }, + "shortName": { + "label": "entsoe:IdentifiedObject.shortName", + "data_type": "String", + "data_type_prim": "String" + } + } + }, + "MeasurementValueSource": { + "rdf_type": " rdf:ID=\"", + "label": "cim:MeasurementValueSource", + "fields": { + "MeasurementValues": { + "label": "cim:MeasurementValueSource.MeasurementValues", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#MeasurementValue.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#MeasurementValue." + }, + "mRID": { + "label": "cim:IdentifiedObject.mRID", + "data_type": "String", + "data_type_prim": "String" + }, + "name": { + "label": "cim:IdentifiedObject.name", + "data_type": "String", + "data_type_prim": "String" + }, + "description": { + "label": "cim:IdentifiedObject.description", + "data_type": "String", + "data_type_prim": "String" + }, + "energyIdentCodeEic": { + "label": "entsoe:IdentifiedObject.energyIdentCodeEic", + "data_type": "String", + "data_type_prim": "String" + }, + "shortName": { + "label": "entsoe:IdentifiedObject.shortName", + "data_type": "String", + "data_type_prim": "String" + } + } + }, + "FullModel": { + "rdf_type": " rdf:ID=\"", + "label": "cim:FullModel", + "fields": {} + }, + "Accumulator": { + "rdf_type": " rdf:ID=\"", + "label": "cim:Accumulator", + "fields": { + "AccumulatorValues": { + "label": "cim:Accumulator.AccumulatorValues", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#AccumulatorValue.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#AccumulatorValue." + }, + "LimitSets": { + "label": "cim:Accumulator.LimitSets", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#AccumulatorLimitSet.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#AccumulatorLimitSet." + }, + "unitSymbol": { + "label": "cim:Measurement.unitSymbol", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#UnitSymbol.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#UnitSymbol." + }, + "phases": { + "label": "cim:Measurement.phases", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#PhaseCode.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#PhaseCode." + }, + "Terminal": { + "label": "cim:Measurement.Terminal", + "data_type": " rdf:resource=\"#", + "data_type_prim": " rdf:resource=\"#" + }, + "measurementType": { + "label": "cim:Measurement.measurementType", + "data_type": "String", + "data_type_prim": "String" + }, + "unitMultiplier": { + "label": "cim:Measurement.unitMultiplier", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#UnitMultiplier.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#UnitMultiplier." + }, + "PowerSystemResource": { + "label": "cim:Measurement.PowerSystemResource", + "data_type": " rdf:resource=\"#", + "data_type_prim": " rdf:resource=\"#" + }, + "mRID": { + "label": "cim:IdentifiedObject.mRID", + "data_type": "String", + "data_type_prim": "String" + }, + "name": { + "label": "cim:IdentifiedObject.name", + "data_type": "String", + "data_type_prim": "String" + }, + "description": { + "label": "cim:IdentifiedObject.description", + "data_type": "String", + "data_type_prim": "String" + }, + "energyIdentCodeEic": { + "label": "entsoe:IdentifiedObject.energyIdentCodeEic", + "data_type": "String", + "data_type_prim": "String" + }, + "shortName": { + "label": "entsoe:IdentifiedObject.shortName", + "data_type": "String", + "data_type_prim": "String" + } + } + }, + "AccumulatorLimit": { + "rdf_type": " rdf:ID=\"", + "label": "cim:AccumulatorLimit", + "fields": { + "LimitSet": { + "label": "cim:AccumulatorLimit.LimitSet", + "data_type": " rdf:resource=\"#", + "data_type_prim": " rdf:resource=\"#" + }, + "value": { + "label": "cim:AccumulatorLimit.value", + "data_type": "Integer", + "data_type_prim": "Integer" + }, + "mRID": { + "label": "cim:IdentifiedObject.mRID", + "data_type": "String", + "data_type_prim": "String" + }, + "name": { + "label": "cim:IdentifiedObject.name", + "data_type": "String", + "data_type_prim": "String" + }, + "description": { + "label": "cim:IdentifiedObject.description", + "data_type": "String", + "data_type_prim": "String" + }, + "energyIdentCodeEic": { + "label": "entsoe:IdentifiedObject.energyIdentCodeEic", + "data_type": "String", + "data_type_prim": "String" + }, + "shortName": { + "label": "entsoe:IdentifiedObject.shortName", + "data_type": "String", + "data_type_prim": "String" + } + } + }, + "AccumulatorLimitSet": { + "rdf_type": " rdf:ID=\"", + "label": "cim:AccumulatorLimitSet", + "fields": { + "Measurements": { + "label": "cim:AccumulatorLimitSet.Measurements", + "data_type": " rdf:resource=\"#", + "data_type_prim": " rdf:resource=\"#" + }, + "Limits": { + "label": "cim:AccumulatorLimitSet.Limits", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#AccumulatorLimit.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#AccumulatorLimit." + }, + "isPercentageLimits": { + "label": "cim:LimitSet.isPercentageLimits", + "data_type": "Boolean", + "data_type_prim": "Boolean" + }, + "mRID": { + "label": "cim:IdentifiedObject.mRID", + "data_type": "String", + "data_type_prim": "String" + }, + "name": { + "label": "cim:IdentifiedObject.name", + "data_type": "String", + "data_type_prim": "String" + }, + "description": { + "label": "cim:IdentifiedObject.description", + "data_type": "String", + "data_type_prim": "String" + }, + "energyIdentCodeEic": { + "label": "entsoe:IdentifiedObject.energyIdentCodeEic", + "data_type": "String", + "data_type_prim": "String" + }, + "shortName": { + "label": "entsoe:IdentifiedObject.shortName", + "data_type": "String", + "data_type_prim": "String" + } + } + }, + "AccumulatorReset": { + "rdf_type": " rdf:ID=\"", + "label": "cim:AccumulatorReset", + "fields": { + "AccumulatorValue": { + "label": "cim:AccumulatorReset.AccumulatorValue", + "data_type": " rdf:resource=\"#", + "data_type_prim": " rdf:resource=\"#" + }, + "unitSymbol": { + "label": "cim:Control.unitSymbol", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#UnitSymbol.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#UnitSymbol." + }, + "controlType": { + "label": "cim:Control.controlType", + "data_type": "String", + "data_type_prim": "String" + }, + "timeStamp": { + "label": "cim:Control.timeStamp", + "data_type": "DateTime", + "data_type_prim": "DateTime" + }, + "operationInProgress": { + "label": "cim:Control.operationInProgress", + "data_type": "Boolean", + "data_type_prim": "Boolean" + }, + "unitMultiplier": { + "label": "cim:Control.unitMultiplier", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#UnitMultiplier.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#UnitMultiplier." + }, + "PowerSystemResource": { + "label": "cim:Control.PowerSystemResource", + "data_type": " rdf:resource=\"#", + "data_type_prim": " rdf:resource=\"#" + }, + "mRID": { + "label": "cim:IdentifiedObject.mRID", + "data_type": "String", + "data_type_prim": "String" + }, + "name": { + "label": "cim:IdentifiedObject.name", + "data_type": "String", + "data_type_prim": "String" + }, + "description": { + "label": "cim:IdentifiedObject.description", + "data_type": "String", + "data_type_prim": "String" + }, + "energyIdentCodeEic": { + "label": "entsoe:IdentifiedObject.energyIdentCodeEic", + "data_type": "String", + "data_type_prim": "String" + }, + "shortName": { + "label": "entsoe:IdentifiedObject.shortName", + "data_type": "String", + "data_type_prim": "String" + } + } + }, + "AccumulatorValue": { + "rdf_type": " rdf:ID=\"", + "label": "cim:AccumulatorValue", + "fields": { + "Accumulator": { + "label": "cim:AccumulatorValue.Accumulator", + "data_type": " rdf:resource=\"#", + "data_type_prim": " rdf:resource=\"#" + }, + "AccumulatorReset": { + "label": "cim:AccumulatorValue.AccumulatorReset", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#AccumulatorReset.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#AccumulatorReset." + }, + "value": { + "label": "cim:AccumulatorValue.value", + "data_type": "Integer", + "data_type_prim": "Integer" + }, + "MeasurementValueQuality": { + "label": "cim:MeasurementValue.MeasurementValueQuality", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#MeasurementValueQuality.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#MeasurementValueQuality." + }, + "MeasurementValueSource": { + "label": "cim:MeasurementValue.MeasurementValueSource", + "data_type": " rdf:resource=\"#", + "data_type_prim": " rdf:resource=\"#" + }, + "sensorAccuracy": { + "label": "cim:MeasurementValue.sensorAccuracy", + "data_type": "PerCent", + "data_type_prim": "Float" + }, + "timeStamp": { + "label": "cim:MeasurementValue.timeStamp", + "data_type": "DateTime", + "data_type_prim": "DateTime" + }, + "mRID": { + "label": "cim:IdentifiedObject.mRID", + "data_type": "String", + "data_type_prim": "String" + }, + "name": { + "label": "cim:IdentifiedObject.name", + "data_type": "String", + "data_type_prim": "String" + }, + "description": { + "label": "cim:IdentifiedObject.description", + "data_type": "String", + "data_type_prim": "String" + }, + "energyIdentCodeEic": { + "label": "entsoe:IdentifiedObject.energyIdentCodeEic", + "data_type": "String", + "data_type_prim": "String" + }, + "shortName": { + "label": "entsoe:IdentifiedObject.shortName", + "data_type": "String", + "data_type_prim": "String" + } + } + }, + "ActivePowerLimit": { + "rdf_type": " rdf:ID=\"", + "label": "cim:ActivePowerLimit", + "fields": { + "value": { + "label": "cim:ActivePowerLimit.value", + "data_type": "ActivePower", + "data_type_prim": "Float" + }, + "OperationalLimitType": { + "label": "cim:OperationalLimit.OperationalLimitType", + "data_type": " rdf:resource=\"#", + "data_type_prim": " rdf:resource=\"#" + }, + "OperationalLimitSet": { + "label": "cim:OperationalLimit.OperationalLimitSet", + "data_type": " rdf:resource=\"#", + "data_type_prim": " rdf:resource=\"#" + }, + "mRID": { + "label": "cim:IdentifiedObject.mRID", + "data_type": "String", + "data_type_prim": "String" + }, + "name": { + "label": "cim:IdentifiedObject.name", + "data_type": "String", + "data_type_prim": "String" + }, + "description": { + "label": "cim:IdentifiedObject.description", + "data_type": "String", + "data_type_prim": "String" + }, + "energyIdentCodeEic": { + "label": "entsoe:IdentifiedObject.energyIdentCodeEic", + "data_type": "String", + "data_type_prim": "String" + }, + "shortName": { + "label": "entsoe:IdentifiedObject.shortName", + "data_type": "String", + "data_type_prim": "String" + } + } + }, + "AnalogLimit": { + "rdf_type": " rdf:ID=\"", + "label": "cim:AnalogLimit", + "fields": { + "LimitSet": { + "label": "cim:AnalogLimit.LimitSet", + "data_type": " rdf:resource=\"#", + "data_type_prim": " rdf:resource=\"#" + }, + "value": { + "label": "cim:AnalogLimit.value", + "data_type": "Simple_Float", + "data_type_prim": "Float" + }, + "mRID": { + "label": "cim:IdentifiedObject.mRID", + "data_type": "String", + "data_type_prim": "String" + }, + "name": { + "label": "cim:IdentifiedObject.name", + "data_type": "String", + "data_type_prim": "String" + }, + "description": { + "label": "cim:IdentifiedObject.description", + "data_type": "String", + "data_type_prim": "String" + }, + "energyIdentCodeEic": { + "label": "entsoe:IdentifiedObject.energyIdentCodeEic", + "data_type": "String", + "data_type_prim": "String" + }, + "shortName": { + "label": "entsoe:IdentifiedObject.shortName", + "data_type": "String", + "data_type_prim": "String" + } + } + }, + "AnalogLimitSet": { + "rdf_type": " rdf:ID=\"", + "label": "cim:AnalogLimitSet", + "fields": { + "Measurements": { + "label": "cim:AnalogLimitSet.Measurements", + "data_type": " rdf:resource=\"#", + "data_type_prim": " rdf:resource=\"#" + }, + "Limits": { + "label": "cim:AnalogLimitSet.Limits", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#AnalogLimit.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#AnalogLimit." + }, + "isPercentageLimits": { + "label": "cim:LimitSet.isPercentageLimits", + "data_type": "Boolean", + "data_type_prim": "Boolean" + }, + "mRID": { + "label": "cim:IdentifiedObject.mRID", + "data_type": "String", + "data_type_prim": "String" + }, + "name": { + "label": "cim:IdentifiedObject.name", + "data_type": "String", + "data_type_prim": "String" + }, + "description": { + "label": "cim:IdentifiedObject.description", + "data_type": "String", + "data_type_prim": "String" + }, + "energyIdentCodeEic": { + "label": "entsoe:IdentifiedObject.energyIdentCodeEic", + "data_type": "String", + "data_type_prim": "String" + }, + "shortName": { + "label": "entsoe:IdentifiedObject.shortName", + "data_type": "String", + "data_type_prim": "String" + } + } + }, + "ApparentPowerLimit": { + "rdf_type": " rdf:ID=\"", + "label": "cim:ApparentPowerLimit", + "fields": { + "value": { + "label": "cim:ApparentPowerLimit.value", + "data_type": "ApparentPower", + "data_type_prim": "Float" + }, + "OperationalLimitType": { + "label": "cim:OperationalLimit.OperationalLimitType", + "data_type": " rdf:resource=\"#", + "data_type_prim": " rdf:resource=\"#" + }, + "OperationalLimitSet": { + "label": "cim:OperationalLimit.OperationalLimitSet", + "data_type": " rdf:resource=\"#", + "data_type_prim": " rdf:resource=\"#" + }, + "mRID": { + "label": "cim:IdentifiedObject.mRID", + "data_type": "String", + "data_type_prim": "String" + }, + "name": { + "label": "cim:IdentifiedObject.name", + "data_type": "String", + "data_type_prim": "String" + }, + "description": { + "label": "cim:IdentifiedObject.description", + "data_type": "String", + "data_type_prim": "String" + }, + "energyIdentCodeEic": { + "label": "entsoe:IdentifiedObject.energyIdentCodeEic", + "data_type": "String", + "data_type_prim": "String" + }, + "shortName": { + "label": "entsoe:IdentifiedObject.shortName", + "data_type": "String", + "data_type_prim": "String" + } + } + }, + "BusNameMarker": { + "rdf_type": " rdf:ID=\"", + "label": "cim:BusNameMarker", + "fields": { + "Terminal": { + "label": "cim:BusNameMarker.Terminal", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#ACDCTerminal.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#ACDCTerminal." + }, + "ReportingGroup": { + "label": "cim:BusNameMarker.ReportingGroup", + "data_type": " rdf:resource=\"#", + "data_type_prim": " rdf:resource=\"#" + }, + "priority": { + "label": "cim:BusNameMarker.priority", + "data_type": "Integer", + "data_type_prim": "Integer" + }, + "mRID": { + "label": "cim:IdentifiedObject.mRID", + "data_type": "String", + "data_type_prim": "String" + }, + "name": { + "label": "cim:IdentifiedObject.name", + "data_type": "String", + "data_type_prim": "String" + }, + "description": { + "label": "cim:IdentifiedObject.description", + "data_type": "String", + "data_type_prim": "String" + }, + "energyIdentCodeEic": { + "label": "entsoe:IdentifiedObject.energyIdentCodeEic", + "data_type": "String", + "data_type_prim": "String" + }, + "shortName": { + "label": "entsoe:IdentifiedObject.shortName", + "data_type": "String", + "data_type_prim": "String" + } + } + }, + "BusbarSection": { + "rdf_type": " rdf:ID=\"", + "label": "cim:BusbarSection", + "fields": { + "ipMax": { + "label": "cim:BusbarSection.ipMax", + "data_type": "CurrentFlow", + "data_type_prim": "Float" + }, + "Terminals": { + "label": "cim:ConductingEquipment.Terminals", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Terminal.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Terminal." + }, + "BaseVoltage": { + "label": "cim:ConductingEquipment.BaseVoltage", + "data_type": " rdf:resource=\"#", + "data_type_prim": " rdf:resource=\"#" + }, + "EquipmentContainer": { + "label": "cim:Equipment.EquipmentContainer", + "data_type": " rdf:resource=\"#", + "data_type_prim": " rdf:resource=\"#" + }, + "aggregate": { + "label": "cim:Equipment.aggregate", + "data_type": "Boolean", + "data_type_prim": "Boolean" + }, + "OperationalLimitSet": { + "label": "cim:Equipment.OperationalLimitSet", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#OperationalLimitSet.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#OperationalLimitSet." + }, + "Measurements": { + "label": "cim:PowerSystemResource.Measurements", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Measurement.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Measurement." + }, + "Controls": { + "label": "cim:PowerSystemResource.Controls", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Control.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Control." + }, + "mRID": { + "label": "cim:IdentifiedObject.mRID", + "data_type": "String", + "data_type_prim": "String" + }, + "name": { + "label": "cim:IdentifiedObject.name", + "data_type": "String", + "data_type_prim": "String" + }, + "description": { + "label": "cim:IdentifiedObject.description", + "data_type": "String", + "data_type_prim": "String" + }, + "energyIdentCodeEic": { + "label": "entsoe:IdentifiedObject.energyIdentCodeEic", + "data_type": "String", + "data_type_prim": "String" + }, + "shortName": { + "label": "entsoe:IdentifiedObject.shortName", + "data_type": "String", + "data_type_prim": "String" + } + } + }, + "Command": { + "rdf_type": " rdf:ID=\"", + "label": "cim:Command", + "fields": { + "value": { + "label": "cim:Command.value", + "data_type": "Integer", + "data_type_prim": "Integer" + }, + "ValueAliasSet": { + "label": "cim:Command.ValueAliasSet", + "data_type": " rdf:resource=\"#", + "data_type_prim": " rdf:resource=\"#" + }, + "DiscreteValue": { + "label": "cim:Command.DiscreteValue", + "data_type": " rdf:resource=\"#", + "data_type_prim": " rdf:resource=\"#" + }, + "normalValue": { + "label": "cim:Command.normalValue", + "data_type": "Integer", + "data_type_prim": "Integer" + }, + "unitSymbol": { + "label": "cim:Control.unitSymbol", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#UnitSymbol.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#UnitSymbol." + }, + "controlType": { + "label": "cim:Control.controlType", + "data_type": "String", + "data_type_prim": "String" + }, + "timeStamp": { + "label": "cim:Control.timeStamp", + "data_type": "DateTime", + "data_type_prim": "DateTime" + }, + "operationInProgress": { + "label": "cim:Control.operationInProgress", + "data_type": "Boolean", + "data_type_prim": "Boolean" + }, + "unitMultiplier": { + "label": "cim:Control.unitMultiplier", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#UnitMultiplier.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#UnitMultiplier." + }, + "PowerSystemResource": { + "label": "cim:Control.PowerSystemResource", + "data_type": " rdf:resource=\"#", + "data_type_prim": " rdf:resource=\"#" + }, + "mRID": { + "label": "cim:IdentifiedObject.mRID", + "data_type": "String", + "data_type_prim": "String" + }, + "name": { + "label": "cim:IdentifiedObject.name", + "data_type": "String", + "data_type_prim": "String" + }, + "description": { + "label": "cim:IdentifiedObject.description", + "data_type": "String", + "data_type_prim": "String" + }, + "energyIdentCodeEic": { + "label": "entsoe:IdentifiedObject.energyIdentCodeEic", + "data_type": "String", + "data_type_prim": "String" + }, + "shortName": { + "label": "entsoe:IdentifiedObject.shortName", + "data_type": "String", + "data_type_prim": "String" + } + } + }, + "ConformLoadGroup": { + "rdf_type": " rdf:ID=\"", + "label": "cim:ConformLoadGroup", + "fields": { + "EnergyConsumers": { + "label": "cim:ConformLoadGroup.EnergyConsumers", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#ConformLoad.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#ConformLoad." + }, + "ConformLoadSchedules": { + "label": "cim:ConformLoadGroup.ConformLoadSchedules", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#ConformLoadSchedule.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#ConformLoadSchedule." + }, + "SubLoadArea": { + "label": "cim:LoadGroup.SubLoadArea", + "data_type": " rdf:resource=\"#", + "data_type_prim": " rdf:resource=\"#" + }, + "mRID": { + "label": "cim:IdentifiedObject.mRID", + "data_type": "String", + "data_type_prim": "String" + }, + "name": { + "label": "cim:IdentifiedObject.name", + "data_type": "String", + "data_type_prim": "String" + }, + "description": { + "label": "cim:IdentifiedObject.description", + "data_type": "String", + "data_type_prim": "String" + }, + "energyIdentCodeEic": { + "label": "entsoe:IdentifiedObject.energyIdentCodeEic", + "data_type": "String", + "data_type_prim": "String" + }, + "shortName": { + "label": "entsoe:IdentifiedObject.shortName", + "data_type": "String", + "data_type_prim": "String" + } + } + }, + "ConformLoadSchedule": { + "rdf_type": " rdf:ID=\"", + "label": "cim:ConformLoadSchedule", + "fields": { + "ConformLoadGroup": { + "label": "cim:ConformLoadSchedule.ConformLoadGroup", + "data_type": " rdf:resource=\"#", + "data_type_prim": " rdf:resource=\"#" + }, + "Season": { + "label": "cim:SeasonDayTypeSchedule.Season", + "data_type": " rdf:resource=\"#", + "data_type_prim": " rdf:resource=\"#" + }, + "DayType": { + "label": "cim:SeasonDayTypeSchedule.DayType", + "data_type": " rdf:resource=\"#", + "data_type_prim": " rdf:resource=\"#" + }, + "TimePoints": { + "label": "cim:RegularIntervalSchedule.TimePoints", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#RegularTimePoint.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#RegularTimePoint." + }, + "timeStep": { + "label": "cim:RegularIntervalSchedule.timeStep", + "data_type": "Seconds", + "data_type_prim": "Float" + }, + "endTime": { + "label": "cim:RegularIntervalSchedule.endTime", + "data_type": "DateTime", + "data_type_prim": "DateTime" + }, + "value1Unit": { + "label": "cim:BasicIntervalSchedule.value1Unit", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#UnitSymbol.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#UnitSymbol." + }, + "startTime": { + "label": "cim:BasicIntervalSchedule.startTime", + "data_type": "DateTime", + "data_type_prim": "DateTime" + }, + "value2Unit": { + "label": "cim:BasicIntervalSchedule.value2Unit", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#UnitSymbol.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#UnitSymbol." + }, + "mRID": { + "label": "cim:IdentifiedObject.mRID", + "data_type": "String", + "data_type_prim": "String" + }, + "name": { + "label": "cim:IdentifiedObject.name", + "data_type": "String", + "data_type_prim": "String" + }, + "description": { + "label": "cim:IdentifiedObject.description", + "data_type": "String", + "data_type_prim": "String" + }, + "energyIdentCodeEic": { + "label": "entsoe:IdentifiedObject.energyIdentCodeEic", + "data_type": "String", + "data_type_prim": "String" + }, + "shortName": { + "label": "entsoe:IdentifiedObject.shortName", + "data_type": "String", + "data_type_prim": "String" + } + } + }, + "ControlAreaGeneratingUnit": { + "rdf_type": " rdf:ID=\"", + "label": "cim:ControlAreaGeneratingUnit", + "fields": { + "ControlArea": { + "label": "cim:ControlAreaGeneratingUnit.ControlArea", + "data_type": " rdf:resource=\"#", + "data_type_prim": " rdf:resource=\"#" + }, + "GeneratingUnit": { + "label": "cim:ControlAreaGeneratingUnit.GeneratingUnit", + "data_type": " rdf:resource=\"#", + "data_type_prim": " rdf:resource=\"#" + }, + "mRID": { + "label": "cim:IdentifiedObject.mRID", + "data_type": "String", + "data_type_prim": "String" + }, + "name": { + "label": "cim:IdentifiedObject.name", + "data_type": "String", + "data_type_prim": "String" + }, + "description": { + "label": "cim:IdentifiedObject.description", + "data_type": "String", + "data_type_prim": "String" + }, + "energyIdentCodeEic": { + "label": "entsoe:IdentifiedObject.energyIdentCodeEic", + "data_type": "String", + "data_type_prim": "String" + }, + "shortName": { + "label": "entsoe:IdentifiedObject.shortName", + "data_type": "String", + "data_type_prim": "String" + } + } + }, + "CurveData": { + "rdf_type": " rdf:ID=\"", + "label": "cim:CurveData", + "fields": { + "Curve": { + "label": "cim:CurveData.Curve", + "data_type": " rdf:resource=\"#", + "data_type_prim": " rdf:resource=\"#" + }, + "xvalue": { + "label": "cim:CurveData.xvalue", + "data_type": "Simple_Float", + "data_type_prim": "Float" + }, + "y2value": { + "label": "cim:CurveData.y2value", + "data_type": "Simple_Float", + "data_type_prim": "Float" + }, + "y1value": { + "label": "cim:CurveData.y1value", + "data_type": "Simple_Float", + "data_type_prim": "Float" + } + } + }, + "DCBreaker": { + "rdf_type": " rdf:ID=\"", + "label": "cim:DCBreaker", + "fields": { + "DCTerminals": { + "label": "cim:DCConductingEquipment.DCTerminals", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#DCTerminal.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#DCTerminal." + }, + "EquipmentContainer": { + "label": "cim:Equipment.EquipmentContainer", + "data_type": " rdf:resource=\"#", + "data_type_prim": " rdf:resource=\"#" + }, + "aggregate": { + "label": "cim:Equipment.aggregate", + "data_type": "Boolean", + "data_type_prim": "Boolean" + }, + "OperationalLimitSet": { + "label": "cim:Equipment.OperationalLimitSet", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#OperationalLimitSet.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#OperationalLimitSet." + }, + "Measurements": { + "label": "cim:PowerSystemResource.Measurements", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Measurement.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Measurement." + }, + "Controls": { + "label": "cim:PowerSystemResource.Controls", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Control.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Control." + }, + "mRID": { + "label": "cim:IdentifiedObject.mRID", + "data_type": "String", + "data_type_prim": "String" + }, + "name": { + "label": "cim:IdentifiedObject.name", + "data_type": "String", + "data_type_prim": "String" + }, + "description": { + "label": "cim:IdentifiedObject.description", + "data_type": "String", + "data_type_prim": "String" + }, + "energyIdentCodeEic": { + "label": "entsoe:IdentifiedObject.energyIdentCodeEic", + "data_type": "String", + "data_type_prim": "String" + }, + "shortName": { + "label": "entsoe:IdentifiedObject.shortName", + "data_type": "String", + "data_type_prim": "String" + } + } + }, + "DCBusbar": { + "rdf_type": " rdf:ID=\"", + "label": "cim:DCBusbar", + "fields": { + "DCTerminals": { + "label": "cim:DCConductingEquipment.DCTerminals", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#DCTerminal.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#DCTerminal." + }, + "EquipmentContainer": { + "label": "cim:Equipment.EquipmentContainer", + "data_type": " rdf:resource=\"#", + "data_type_prim": " rdf:resource=\"#" + }, + "aggregate": { + "label": "cim:Equipment.aggregate", + "data_type": "Boolean", + "data_type_prim": "Boolean" + }, + "OperationalLimitSet": { + "label": "cim:Equipment.OperationalLimitSet", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#OperationalLimitSet.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#OperationalLimitSet." + }, + "Measurements": { + "label": "cim:PowerSystemResource.Measurements", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Measurement.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Measurement." + }, + "Controls": { + "label": "cim:PowerSystemResource.Controls", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Control.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Control." + }, + "mRID": { + "label": "cim:IdentifiedObject.mRID", + "data_type": "String", + "data_type_prim": "String" + }, + "name": { + "label": "cim:IdentifiedObject.name", + "data_type": "String", + "data_type_prim": "String" + }, + "description": { + "label": "cim:IdentifiedObject.description", + "data_type": "String", + "data_type_prim": "String" + }, + "energyIdentCodeEic": { + "label": "entsoe:IdentifiedObject.energyIdentCodeEic", + "data_type": "String", + "data_type_prim": "String" + }, + "shortName": { + "label": "entsoe:IdentifiedObject.shortName", + "data_type": "String", + "data_type_prim": "String" + } + } + }, + "DCChopper": { + "rdf_type": " rdf:ID=\"", + "label": "cim:DCChopper", + "fields": { + "DCTerminals": { + "label": "cim:DCConductingEquipment.DCTerminals", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#DCTerminal.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#DCTerminal." + }, + "EquipmentContainer": { + "label": "cim:Equipment.EquipmentContainer", + "data_type": " rdf:resource=\"#", + "data_type_prim": " rdf:resource=\"#" + }, + "aggregate": { + "label": "cim:Equipment.aggregate", + "data_type": "Boolean", + "data_type_prim": "Boolean" + }, + "OperationalLimitSet": { + "label": "cim:Equipment.OperationalLimitSet", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#OperationalLimitSet.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#OperationalLimitSet." + }, + "Measurements": { + "label": "cim:PowerSystemResource.Measurements", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Measurement.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Measurement." + }, + "Controls": { + "label": "cim:PowerSystemResource.Controls", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Control.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Control." + }, + "mRID": { + "label": "cim:IdentifiedObject.mRID", + "data_type": "String", + "data_type_prim": "String" + }, + "name": { + "label": "cim:IdentifiedObject.name", + "data_type": "String", + "data_type_prim": "String" + }, + "description": { + "label": "cim:IdentifiedObject.description", + "data_type": "String", + "data_type_prim": "String" + }, + "energyIdentCodeEic": { + "label": "entsoe:IdentifiedObject.energyIdentCodeEic", + "data_type": "String", + "data_type_prim": "String" + }, + "shortName": { + "label": "entsoe:IdentifiedObject.shortName", + "data_type": "String", + "data_type_prim": "String" + } + } + }, + "DCDisconnector": { + "rdf_type": " rdf:ID=\"", + "label": "cim:DCDisconnector", + "fields": { + "DCTerminals": { + "label": "cim:DCConductingEquipment.DCTerminals", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#DCTerminal.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#DCTerminal." + }, + "EquipmentContainer": { + "label": "cim:Equipment.EquipmentContainer", + "data_type": " rdf:resource=\"#", + "data_type_prim": " rdf:resource=\"#" + }, + "aggregate": { + "label": "cim:Equipment.aggregate", + "data_type": "Boolean", + "data_type_prim": "Boolean" + }, + "OperationalLimitSet": { + "label": "cim:Equipment.OperationalLimitSet", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#OperationalLimitSet.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#OperationalLimitSet." + }, + "Measurements": { + "label": "cim:PowerSystemResource.Measurements", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Measurement.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Measurement." + }, + "Controls": { + "label": "cim:PowerSystemResource.Controls", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Control.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Control." + }, + "mRID": { + "label": "cim:IdentifiedObject.mRID", + "data_type": "String", + "data_type_prim": "String" + }, + "name": { + "label": "cim:IdentifiedObject.name", + "data_type": "String", + "data_type_prim": "String" + }, + "description": { + "label": "cim:IdentifiedObject.description", + "data_type": "String", + "data_type_prim": "String" + }, + "energyIdentCodeEic": { + "label": "entsoe:IdentifiedObject.energyIdentCodeEic", + "data_type": "String", + "data_type_prim": "String" + }, + "shortName": { + "label": "entsoe:IdentifiedObject.shortName", + "data_type": "String", + "data_type_prim": "String" + } + } + }, + "DCGround": { + "rdf_type": " rdf:ID=\"", + "label": "cim:DCGround", + "fields": { + "r": { + "label": "cim:DCGround.r", + "data_type": "Resistance", + "data_type_prim": "Float" + }, + "inductance": { + "label": "cim:DCGround.inductance", + "data_type": "Inductance", + "data_type_prim": "Float" + }, + "DCTerminals": { + "label": "cim:DCConductingEquipment.DCTerminals", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#DCTerminal.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#DCTerminal." + }, + "EquipmentContainer": { + "label": "cim:Equipment.EquipmentContainer", + "data_type": " rdf:resource=\"#", + "data_type_prim": " rdf:resource=\"#" + }, + "aggregate": { + "label": "cim:Equipment.aggregate", + "data_type": "Boolean", + "data_type_prim": "Boolean" + }, + "OperationalLimitSet": { + "label": "cim:Equipment.OperationalLimitSet", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#OperationalLimitSet.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#OperationalLimitSet." + }, + "Measurements": { + "label": "cim:PowerSystemResource.Measurements", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Measurement.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Measurement." + }, + "Controls": { + "label": "cim:PowerSystemResource.Controls", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Control.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Control." + }, + "mRID": { + "label": "cim:IdentifiedObject.mRID", + "data_type": "String", + "data_type_prim": "String" + }, + "name": { + "label": "cim:IdentifiedObject.name", + "data_type": "String", + "data_type_prim": "String" + }, + "description": { + "label": "cim:IdentifiedObject.description", + "data_type": "String", + "data_type_prim": "String" + }, + "energyIdentCodeEic": { + "label": "entsoe:IdentifiedObject.energyIdentCodeEic", + "data_type": "String", + "data_type_prim": "String" + }, + "shortName": { + "label": "entsoe:IdentifiedObject.shortName", + "data_type": "String", + "data_type_prim": "String" + } + } + }, + "DCLine": { + "rdf_type": " rdf:ID=\"", + "label": "cim:DCLine", + "fields": { + "Region": { + "label": "cim:DCLine.Region", + "data_type": " rdf:resource=\"#", + "data_type_prim": " rdf:resource=\"#" + }, + "DCNodes": { + "label": "cim:DCEquipmentContainer.DCNodes", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#DCNode.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#DCNode." + }, + "Equipments": { + "label": "cim:EquipmentContainer.Equipments", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Equipment.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Equipment." + }, + "ConnectivityNodes": { + "label": "cim:ConnectivityNodeContainer.ConnectivityNodes", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#ConnectivityNode.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#ConnectivityNode." + }, + "Measurements": { + "label": "cim:PowerSystemResource.Measurements", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Measurement.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Measurement." + }, + "Controls": { + "label": "cim:PowerSystemResource.Controls", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Control.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Control." + }, + "mRID": { + "label": "cim:IdentifiedObject.mRID", + "data_type": "String", + "data_type_prim": "String" + }, + "name": { + "label": "cim:IdentifiedObject.name", + "data_type": "String", + "data_type_prim": "String" + }, + "description": { + "label": "cim:IdentifiedObject.description", + "data_type": "String", + "data_type_prim": "String" + }, + "energyIdentCodeEic": { + "label": "entsoe:IdentifiedObject.energyIdentCodeEic", + "data_type": "String", + "data_type_prim": "String" + }, + "shortName": { + "label": "entsoe:IdentifiedObject.shortName", + "data_type": "String", + "data_type_prim": "String" + } + } + }, + "DCSeriesDevice": { + "rdf_type": " rdf:ID=\"", + "label": "cim:DCSeriesDevice", + "fields": { + "ratedUdc": { + "label": "cim:DCSeriesDevice.ratedUdc", + "data_type": "Voltage", + "data_type_prim": "Float" + }, + "resistance": { + "label": "cim:DCSeriesDevice.resistance", + "data_type": "Resistance", + "data_type_prim": "Float" + }, + "inductance": { + "label": "cim:DCSeriesDevice.inductance", + "data_type": "Inductance", + "data_type_prim": "Float" + }, + "DCTerminals": { + "label": "cim:DCConductingEquipment.DCTerminals", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#DCTerminal.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#DCTerminal." + }, + "EquipmentContainer": { + "label": "cim:Equipment.EquipmentContainer", + "data_type": " rdf:resource=\"#", + "data_type_prim": " rdf:resource=\"#" + }, + "aggregate": { + "label": "cim:Equipment.aggregate", + "data_type": "Boolean", + "data_type_prim": "Boolean" + }, + "OperationalLimitSet": { + "label": "cim:Equipment.OperationalLimitSet", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#OperationalLimitSet.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#OperationalLimitSet." + }, + "Measurements": { + "label": "cim:PowerSystemResource.Measurements", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Measurement.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Measurement." + }, + "Controls": { + "label": "cim:PowerSystemResource.Controls", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Control.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Control." + }, + "mRID": { + "label": "cim:IdentifiedObject.mRID", + "data_type": "String", + "data_type_prim": "String" + }, + "name": { + "label": "cim:IdentifiedObject.name", + "data_type": "String", + "data_type_prim": "String" + }, + "description": { + "label": "cim:IdentifiedObject.description", + "data_type": "String", + "data_type_prim": "String" + }, + "energyIdentCodeEic": { + "label": "entsoe:IdentifiedObject.energyIdentCodeEic", + "data_type": "String", + "data_type_prim": "String" + }, + "shortName": { + "label": "entsoe:IdentifiedObject.shortName", + "data_type": "String", + "data_type_prim": "String" + } + } + }, + "DCShunt": { + "rdf_type": " rdf:ID=\"", + "label": "cim:DCShunt", + "fields": { + "capacitance": { + "label": "cim:DCShunt.capacitance", + "data_type": "Capacitance", + "data_type_prim": "Float" + }, + "resistance": { + "label": "cim:DCShunt.resistance", + "data_type": "Resistance", + "data_type_prim": "Float" + }, + "ratedUdc": { + "label": "cim:DCShunt.ratedUdc", + "data_type": "Voltage", + "data_type_prim": "Float" + }, + "DCTerminals": { + "label": "cim:DCConductingEquipment.DCTerminals", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#DCTerminal.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#DCTerminal." + }, + "EquipmentContainer": { + "label": "cim:Equipment.EquipmentContainer", + "data_type": " rdf:resource=\"#", + "data_type_prim": " rdf:resource=\"#" + }, + "aggregate": { + "label": "cim:Equipment.aggregate", + "data_type": "Boolean", + "data_type_prim": "Boolean" + }, + "OperationalLimitSet": { + "label": "cim:Equipment.OperationalLimitSet", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#OperationalLimitSet.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#OperationalLimitSet." + }, + "Measurements": { + "label": "cim:PowerSystemResource.Measurements", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Measurement.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Measurement." + }, + "Controls": { + "label": "cim:PowerSystemResource.Controls", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Control.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Control." + }, + "mRID": { + "label": "cim:IdentifiedObject.mRID", + "data_type": "String", + "data_type_prim": "String" + }, + "name": { + "label": "cim:IdentifiedObject.name", + "data_type": "String", + "data_type_prim": "String" + }, + "description": { + "label": "cim:IdentifiedObject.description", + "data_type": "String", + "data_type_prim": "String" + }, + "energyIdentCodeEic": { + "label": "entsoe:IdentifiedObject.energyIdentCodeEic", + "data_type": "String", + "data_type_prim": "String" + }, + "shortName": { + "label": "entsoe:IdentifiedObject.shortName", + "data_type": "String", + "data_type_prim": "String" + } + } + }, + "DCSwitch": { + "rdf_type": " rdf:ID=\"", + "label": "cim:DCSwitch", + "fields": { + "DCTerminals": { + "label": "cim:DCConductingEquipment.DCTerminals", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#DCTerminal.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#DCTerminal." + }, + "EquipmentContainer": { + "label": "cim:Equipment.EquipmentContainer", + "data_type": " rdf:resource=\"#", + "data_type_prim": " rdf:resource=\"#" + }, + "aggregate": { + "label": "cim:Equipment.aggregate", + "data_type": "Boolean", + "data_type_prim": "Boolean" + }, + "OperationalLimitSet": { + "label": "cim:Equipment.OperationalLimitSet", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#OperationalLimitSet.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#OperationalLimitSet." + }, + "Measurements": { + "label": "cim:PowerSystemResource.Measurements", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Measurement.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Measurement." + }, + "Controls": { + "label": "cim:PowerSystemResource.Controls", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Control.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Control." + }, + "mRID": { + "label": "cim:IdentifiedObject.mRID", + "data_type": "String", + "data_type_prim": "String" + }, + "name": { + "label": "cim:IdentifiedObject.name", + "data_type": "String", + "data_type_prim": "String" + }, + "description": { + "label": "cim:IdentifiedObject.description", + "data_type": "String", + "data_type_prim": "String" + }, + "energyIdentCodeEic": { + "label": "entsoe:IdentifiedObject.energyIdentCodeEic", + "data_type": "String", + "data_type_prim": "String" + }, + "shortName": { + "label": "entsoe:IdentifiedObject.shortName", + "data_type": "String", + "data_type_prim": "String" + } + } + }, + "DayType": { + "rdf_type": " rdf:ID=\"", + "label": "cim:DayType", + "fields": { + "SeasonDayTypeSchedules": { + "label": "cim:DayType.SeasonDayTypeSchedules", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#SeasonDayTypeSchedule.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#SeasonDayTypeSchedule." + }, + "mRID": { + "label": "cim:IdentifiedObject.mRID", + "data_type": "String", + "data_type_prim": "String" + }, + "name": { + "label": "cim:IdentifiedObject.name", + "data_type": "String", + "data_type_prim": "String" + }, + "description": { + "label": "cim:IdentifiedObject.description", + "data_type": "String", + "data_type_prim": "String" + }, + "energyIdentCodeEic": { + "label": "entsoe:IdentifiedObject.energyIdentCodeEic", + "data_type": "String", + "data_type_prim": "String" + }, + "shortName": { + "label": "entsoe:IdentifiedObject.shortName", + "data_type": "String", + "data_type_prim": "String" + } + } + }, + "Discrete": { + "rdf_type": " rdf:ID=\"", + "label": "cim:Discrete", + "fields": { + "ValueAliasSet": { + "label": "cim:Discrete.ValueAliasSet", + "data_type": " rdf:resource=\"#", + "data_type_prim": " rdf:resource=\"#" + }, + "DiscreteValues": { + "label": "cim:Discrete.DiscreteValues", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#DiscreteValue.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#DiscreteValue." + }, + "unitSymbol": { + "label": "cim:Measurement.unitSymbol", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#UnitSymbol.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#UnitSymbol." + }, + "phases": { + "label": "cim:Measurement.phases", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#PhaseCode.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#PhaseCode." + }, + "Terminal": { + "label": "cim:Measurement.Terminal", + "data_type": " rdf:resource=\"#", + "data_type_prim": " rdf:resource=\"#" + }, + "measurementType": { + "label": "cim:Measurement.measurementType", + "data_type": "String", + "data_type_prim": "String" + }, + "unitMultiplier": { + "label": "cim:Measurement.unitMultiplier", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#UnitMultiplier.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#UnitMultiplier." + }, + "PowerSystemResource": { + "label": "cim:Measurement.PowerSystemResource", + "data_type": " rdf:resource=\"#", + "data_type_prim": " rdf:resource=\"#" + }, + "mRID": { + "label": "cim:IdentifiedObject.mRID", + "data_type": "String", + "data_type_prim": "String" + }, + "name": { + "label": "cim:IdentifiedObject.name", + "data_type": "String", + "data_type_prim": "String" + }, + "description": { + "label": "cim:IdentifiedObject.description", + "data_type": "String", + "data_type_prim": "String" + }, + "energyIdentCodeEic": { + "label": "entsoe:IdentifiedObject.energyIdentCodeEic", + "data_type": "String", + "data_type_prim": "String" + }, + "shortName": { + "label": "entsoe:IdentifiedObject.shortName", + "data_type": "String", + "data_type_prim": "String" + } + } + }, + "DiscreteValue": { + "rdf_type": " rdf:ID=\"", + "label": "cim:DiscreteValue", + "fields": { + "Discrete": { + "label": "cim:DiscreteValue.Discrete", + "data_type": " rdf:resource=\"#", + "data_type_prim": " rdf:resource=\"#" + }, + "value": { + "label": "cim:DiscreteValue.value", + "data_type": "Integer", + "data_type_prim": "Integer" + }, + "Command": { + "label": "cim:DiscreteValue.Command", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Command.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Command." + }, + "MeasurementValueQuality": { + "label": "cim:MeasurementValue.MeasurementValueQuality", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#MeasurementValueQuality.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#MeasurementValueQuality." + }, + "MeasurementValueSource": { + "label": "cim:MeasurementValue.MeasurementValueSource", + "data_type": " rdf:resource=\"#", + "data_type_prim": " rdf:resource=\"#" + }, + "sensorAccuracy": { + "label": "cim:MeasurementValue.sensorAccuracy", + "data_type": "PerCent", + "data_type_prim": "Float" + }, + "timeStamp": { + "label": "cim:MeasurementValue.timeStamp", + "data_type": "DateTime", + "data_type_prim": "DateTime" + }, + "mRID": { + "label": "cim:IdentifiedObject.mRID", + "data_type": "String", + "data_type_prim": "String" + }, + "name": { + "label": "cim:IdentifiedObject.name", + "data_type": "String", + "data_type_prim": "String" + }, + "description": { + "label": "cim:IdentifiedObject.description", + "data_type": "String", + "data_type_prim": "String" + }, + "energyIdentCodeEic": { + "label": "entsoe:IdentifiedObject.energyIdentCodeEic", + "data_type": "String", + "data_type_prim": "String" + }, + "shortName": { + "label": "entsoe:IdentifiedObject.shortName", + "data_type": "String", + "data_type_prim": "String" + } + } + }, + "EquivalentNetwork": { + "rdf_type": " rdf:ID=\"", + "label": "cim:EquivalentNetwork", + "fields": { + "EquivalentEquipments": { + "label": "cim:EquivalentNetwork.EquivalentEquipments", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#EquivalentEquipment.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#EquivalentEquipment." + }, + "ConnectivityNodes": { + "label": "cim:ConnectivityNodeContainer.ConnectivityNodes", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#ConnectivityNode.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#ConnectivityNode." + }, + "Measurements": { + "label": "cim:PowerSystemResource.Measurements", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Measurement.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Measurement." + }, + "Controls": { + "label": "cim:PowerSystemResource.Controls", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Control.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Control." + }, + "mRID": { + "label": "cim:IdentifiedObject.mRID", + "data_type": "String", + "data_type_prim": "String" + }, + "name": { + "label": "cim:IdentifiedObject.name", + "data_type": "String", + "data_type_prim": "String" + }, + "description": { + "label": "cim:IdentifiedObject.description", + "data_type": "String", + "data_type_prim": "String" + }, + "energyIdentCodeEic": { + "label": "entsoe:IdentifiedObject.energyIdentCodeEic", + "data_type": "String", + "data_type_prim": "String" + }, + "shortName": { + "label": "entsoe:IdentifiedObject.shortName", + "data_type": "String", + "data_type_prim": "String" + } + } + }, + "EquivalentShunt": { + "rdf_type": " rdf:ID=\"", + "label": "cim:EquivalentShunt", + "fields": { + "g": { + "label": "cim:EquivalentShunt.g", + "data_type": "Conductance", + "data_type_prim": "Float" + }, + "b": { + "label": "cim:EquivalentShunt.b", + "data_type": "Susceptance", + "data_type_prim": "Float" + }, + "EquivalentNetwork": { + "label": "cim:EquivalentEquipment.EquivalentNetwork", + "data_type": " rdf:resource=\"#", + "data_type_prim": " rdf:resource=\"#" + }, + "Terminals": { + "label": "cim:ConductingEquipment.Terminals", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Terminal.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Terminal." + }, + "BaseVoltage": { + "label": "cim:ConductingEquipment.BaseVoltage", + "data_type": " rdf:resource=\"#", + "data_type_prim": " rdf:resource=\"#" + }, + "EquipmentContainer": { + "label": "cim:Equipment.EquipmentContainer", + "data_type": " rdf:resource=\"#", + "data_type_prim": " rdf:resource=\"#" + }, + "aggregate": { + "label": "cim:Equipment.aggregate", + "data_type": "Boolean", + "data_type_prim": "Boolean" + }, + "OperationalLimitSet": { + "label": "cim:Equipment.OperationalLimitSet", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#OperationalLimitSet.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#OperationalLimitSet." + }, + "Measurements": { + "label": "cim:PowerSystemResource.Measurements", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Measurement.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Measurement." + }, + "Controls": { + "label": "cim:PowerSystemResource.Controls", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Control.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Control." + }, + "mRID": { + "label": "cim:IdentifiedObject.mRID", + "data_type": "String", + "data_type_prim": "String" + }, + "name": { + "label": "cim:IdentifiedObject.name", + "data_type": "String", + "data_type_prim": "String" + }, + "description": { + "label": "cim:IdentifiedObject.description", + "data_type": "String", + "data_type_prim": "String" + }, + "energyIdentCodeEic": { + "label": "entsoe:IdentifiedObject.energyIdentCodeEic", + "data_type": "String", + "data_type_prim": "String" + }, + "shortName": { + "label": "entsoe:IdentifiedObject.shortName", + "data_type": "String", + "data_type_prim": "String" + } + } + }, + "FossilFuel": { + "rdf_type": " rdf:ID=\"", + "label": "cim:FossilFuel", + "fields": { + "fossilFuelType": { + "label": "cim:FossilFuel.fossilFuelType", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#FuelType.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#FuelType." + }, + "ThermalGeneratingUnit": { + "label": "cim:FossilFuel.ThermalGeneratingUnit", + "data_type": " rdf:resource=\"#", + "data_type_prim": " rdf:resource=\"#" + }, + "mRID": { + "label": "cim:IdentifiedObject.mRID", + "data_type": "String", + "data_type_prim": "String" + }, + "name": { + "label": "cim:IdentifiedObject.name", + "data_type": "String", + "data_type_prim": "String" + }, + "description": { + "label": "cim:IdentifiedObject.description", + "data_type": "String", + "data_type_prim": "String" + }, + "energyIdentCodeEic": { + "label": "entsoe:IdentifiedObject.energyIdentCodeEic", + "data_type": "String", + "data_type_prim": "String" + }, + "shortName": { + "label": "entsoe:IdentifiedObject.shortName", + "data_type": "String", + "data_type_prim": "String" + } + } + }, + "GrossToNetActivePowerCurve": { + "rdf_type": " rdf:ID=\"", + "label": "cim:GrossToNetActivePowerCurve", + "fields": { + "GeneratingUnit": { + "label": "cim:GrossToNetActivePowerCurve.GeneratingUnit", + "data_type": " rdf:resource=\"#", + "data_type_prim": " rdf:resource=\"#" + }, + "CurveDatas": { + "label": "cim:Curve.CurveDatas", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#CurveData.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#CurveData." + }, + "xUnit": { + "label": "cim:Curve.xUnit", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#UnitSymbol.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#UnitSymbol." + }, + "y2Unit": { + "label": "cim:Curve.y2Unit", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#UnitSymbol.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#UnitSymbol." + }, + "curveStyle": { + "label": "cim:Curve.curveStyle", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#CurveStyle.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#CurveStyle." + }, + "y1Unit": { + "label": "cim:Curve.y1Unit", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#UnitSymbol.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#UnitSymbol." + }, + "mRID": { + "label": "cim:IdentifiedObject.mRID", + "data_type": "String", + "data_type_prim": "String" + }, + "name": { + "label": "cim:IdentifiedObject.name", + "data_type": "String", + "data_type_prim": "String" + }, + "description": { + "label": "cim:IdentifiedObject.description", + "data_type": "String", + "data_type_prim": "String" + }, + "energyIdentCodeEic": { + "label": "entsoe:IdentifiedObject.energyIdentCodeEic", + "data_type": "String", + "data_type_prim": "String" + }, + "shortName": { + "label": "entsoe:IdentifiedObject.shortName", + "data_type": "String", + "data_type_prim": "String" + } + } + }, + "HydroPowerPlant": { + "rdf_type": " rdf:ID=\"", + "label": "cim:HydroPowerPlant", + "fields": { + "hydroPlantStorageType": { + "label": "cim:HydroPowerPlant.hydroPlantStorageType", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#HydroPlantStorageKind.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#HydroPlantStorageKind." + }, + "HydroPumps": { + "label": "cim:HydroPowerPlant.HydroPumps", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#HydroPump.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#HydroPump." + }, + "HydroGeneratingUnits": { + "label": "cim:HydroPowerPlant.HydroGeneratingUnits", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#HydroGeneratingUnit.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#HydroGeneratingUnit." + }, + "Measurements": { + "label": "cim:PowerSystemResource.Measurements", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Measurement.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Measurement." + }, + "Controls": { + "label": "cim:PowerSystemResource.Controls", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Control.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Control." + }, + "mRID": { + "label": "cim:IdentifiedObject.mRID", + "data_type": "String", + "data_type_prim": "String" + }, + "name": { + "label": "cim:IdentifiedObject.name", + "data_type": "String", + "data_type_prim": "String" + }, + "description": { + "label": "cim:IdentifiedObject.description", + "data_type": "String", + "data_type_prim": "String" + }, + "energyIdentCodeEic": { + "label": "entsoe:IdentifiedObject.energyIdentCodeEic", + "data_type": "String", + "data_type_prim": "String" + }, + "shortName": { + "label": "entsoe:IdentifiedObject.shortName", + "data_type": "String", + "data_type_prim": "String" + } + } + }, + "HydroPump": { + "rdf_type": " rdf:ID=\"", + "label": "cim:HydroPump", + "fields": { + "RotatingMachine": { + "label": "cim:HydroPump.RotatingMachine", + "data_type": " rdf:resource=\"#", + "data_type_prim": " rdf:resource=\"#" + }, + "HydroPowerPlant": { + "label": "cim:HydroPump.HydroPowerPlant", + "data_type": " rdf:resource=\"#", + "data_type_prim": " rdf:resource=\"#" + }, + "EquipmentContainer": { + "label": "cim:Equipment.EquipmentContainer", + "data_type": " rdf:resource=\"#", + "data_type_prim": " rdf:resource=\"#" + }, + "aggregate": { + "label": "cim:Equipment.aggregate", + "data_type": "Boolean", + "data_type_prim": "Boolean" + }, + "OperationalLimitSet": { + "label": "cim:Equipment.OperationalLimitSet", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#OperationalLimitSet.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#OperationalLimitSet." + }, + "Measurements": { + "label": "cim:PowerSystemResource.Measurements", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Measurement.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Measurement." + }, + "Controls": { + "label": "cim:PowerSystemResource.Controls", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Control.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Control." + }, + "mRID": { + "label": "cim:IdentifiedObject.mRID", + "data_type": "String", + "data_type_prim": "String" + }, + "name": { + "label": "cim:IdentifiedObject.name", + "data_type": "String", + "data_type_prim": "String" + }, + "description": { + "label": "cim:IdentifiedObject.description", + "data_type": "String", + "data_type_prim": "String" + }, + "energyIdentCodeEic": { + "label": "entsoe:IdentifiedObject.energyIdentCodeEic", + "data_type": "String", + "data_type_prim": "String" + }, + "shortName": { + "label": "entsoe:IdentifiedObject.shortName", + "data_type": "String", + "data_type_prim": "String" + } + } + }, + "Junction": { + "rdf_type": " rdf:ID=\"", + "label": "cim:Junction", + "fields": { + "Terminals": { + "label": "cim:ConductingEquipment.Terminals", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Terminal.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Terminal." + }, + "BaseVoltage": { + "label": "cim:ConductingEquipment.BaseVoltage", + "data_type": " rdf:resource=\"#", + "data_type_prim": " rdf:resource=\"#" + }, + "EquipmentContainer": { + "label": "cim:Equipment.EquipmentContainer", + "data_type": " rdf:resource=\"#", + "data_type_prim": " rdf:resource=\"#" + }, + "aggregate": { + "label": "cim:Equipment.aggregate", + "data_type": "Boolean", + "data_type_prim": "Boolean" + }, + "OperationalLimitSet": { + "label": "cim:Equipment.OperationalLimitSet", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#OperationalLimitSet.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#OperationalLimitSet." + }, + "Measurements": { + "label": "cim:PowerSystemResource.Measurements", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Measurement.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Measurement." + }, + "Controls": { + "label": "cim:PowerSystemResource.Controls", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Control.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Control." + }, + "mRID": { + "label": "cim:IdentifiedObject.mRID", + "data_type": "String", + "data_type_prim": "String" + }, + "name": { + "label": "cim:IdentifiedObject.name", + "data_type": "String", + "data_type_prim": "String" + }, + "description": { + "label": "cim:IdentifiedObject.description", + "data_type": "String", + "data_type_prim": "String" + }, + "energyIdentCodeEic": { + "label": "entsoe:IdentifiedObject.energyIdentCodeEic", + "data_type": "String", + "data_type_prim": "String" + }, + "shortName": { + "label": "entsoe:IdentifiedObject.shortName", + "data_type": "String", + "data_type_prim": "String" + } + } + }, + "Line": { + "rdf_type": " rdf:ID=\"", + "label": "cim:Line", + "fields": { + "Region": { + "label": "cim:Line.Region", + "data_type": " rdf:resource=\"#", + "data_type_prim": " rdf:resource=\"#" + }, + "Equipments": { + "label": "cim:EquipmentContainer.Equipments", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Equipment.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Equipment." + }, + "ConnectivityNodes": { + "label": "cim:ConnectivityNodeContainer.ConnectivityNodes", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#ConnectivityNode.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#ConnectivityNode." + }, + "Measurements": { + "label": "cim:PowerSystemResource.Measurements", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Measurement.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Measurement." + }, + "Controls": { + "label": "cim:PowerSystemResource.Controls", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Control.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Control." + }, + "mRID": { + "label": "cim:IdentifiedObject.mRID", + "data_type": "String", + "data_type_prim": "String" + }, + "name": { + "label": "cim:IdentifiedObject.name", + "data_type": "String", + "data_type_prim": "String" + }, + "description": { + "label": "cim:IdentifiedObject.description", + "data_type": "String", + "data_type_prim": "String" + }, + "energyIdentCodeEic": { + "label": "entsoe:IdentifiedObject.energyIdentCodeEic", + "data_type": "String", + "data_type_prim": "String" + }, + "shortName": { + "label": "entsoe:IdentifiedObject.shortName", + "data_type": "String", + "data_type_prim": "String" + } + } + }, + "LoadArea": { + "rdf_type": " rdf:ID=\"", + "label": "cim:LoadArea", + "fields": { + "SubLoadAreas": { + "label": "cim:LoadArea.SubLoadAreas", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#SubLoadArea.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#SubLoadArea." + }, + "ControlArea": { + "label": "cim:EnergyArea.ControlArea", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#ControlArea.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#ControlArea." + }, + "mRID": { + "label": "cim:IdentifiedObject.mRID", + "data_type": "String", + "data_type_prim": "String" + }, + "name": { + "label": "cim:IdentifiedObject.name", + "data_type": "String", + "data_type_prim": "String" + }, + "description": { + "label": "cim:IdentifiedObject.description", + "data_type": "String", + "data_type_prim": "String" + }, + "energyIdentCodeEic": { + "label": "entsoe:IdentifiedObject.energyIdentCodeEic", + "data_type": "String", + "data_type_prim": "String" + }, + "shortName": { + "label": "entsoe:IdentifiedObject.shortName", + "data_type": "String", + "data_type_prim": "String" + } + } + }, + "LoadResponseCharacteristic": { + "rdf_type": " rdf:ID=\"", + "label": "cim:LoadResponseCharacteristic", + "fields": { + "EnergyConsumer": { + "label": "cim:LoadResponseCharacteristic.EnergyConsumer", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#EnergyConsumer.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#EnergyConsumer." + }, + "qFrequencyExponent": { + "label": "cim:LoadResponseCharacteristic.qFrequencyExponent", + "data_type": "Simple_Float", + "data_type_prim": "Float" + }, + "qConstantCurrent": { + "label": "cim:LoadResponseCharacteristic.qConstantCurrent", + "data_type": "Simple_Float", + "data_type_prim": "Float" + }, + "exponentModel": { + "label": "cim:LoadResponseCharacteristic.exponentModel", + "data_type": "Boolean", + "data_type_prim": "Boolean" + }, + "pConstantPower": { + "label": "cim:LoadResponseCharacteristic.pConstantPower", + "data_type": "Simple_Float", + "data_type_prim": "Float" + }, + "pFrequencyExponent": { + "label": "cim:LoadResponseCharacteristic.pFrequencyExponent", + "data_type": "Simple_Float", + "data_type_prim": "Float" + }, + "pConstantCurrent": { + "label": "cim:LoadResponseCharacteristic.pConstantCurrent", + "data_type": "Simple_Float", + "data_type_prim": "Float" + }, + "pVoltageExponent": { + "label": "cim:LoadResponseCharacteristic.pVoltageExponent", + "data_type": "Simple_Float", + "data_type_prim": "Float" + }, + "qConstantPower": { + "label": "cim:LoadResponseCharacteristic.qConstantPower", + "data_type": "Simple_Float", + "data_type_prim": "Float" + }, + "qVoltageExponent": { + "label": "cim:LoadResponseCharacteristic.qVoltageExponent", + "data_type": "Simple_Float", + "data_type_prim": "Float" + }, + "pConstantImpedance": { + "label": "cim:LoadResponseCharacteristic.pConstantImpedance", + "data_type": "Simple_Float", + "data_type_prim": "Float" + }, + "qConstantImpedance": { + "label": "cim:LoadResponseCharacteristic.qConstantImpedance", + "data_type": "Simple_Float", + "data_type_prim": "Float" + }, + "mRID": { + "label": "cim:IdentifiedObject.mRID", + "data_type": "String", + "data_type_prim": "String" + }, + "name": { + "label": "cim:IdentifiedObject.name", + "data_type": "String", + "data_type_prim": "String" + }, + "description": { + "label": "cim:IdentifiedObject.description", + "data_type": "String", + "data_type_prim": "String" + }, + "energyIdentCodeEic": { + "label": "entsoe:IdentifiedObject.energyIdentCodeEic", + "data_type": "String", + "data_type_prim": "String" + }, + "shortName": { + "label": "entsoe:IdentifiedObject.shortName", + "data_type": "String", + "data_type_prim": "String" + } + } + }, + "MeasurementValueQuality": { + "rdf_type": " rdf:ID=\"", + "label": "cim:MeasurementValueQuality", + "fields": { + "MeasurementValue": { + "label": "cim:MeasurementValueQuality.MeasurementValue", + "data_type": " rdf:resource=\"#", + "data_type_prim": " rdf:resource=\"#" + }, + "badReference": { + "label": "cim:Quality61850.badReference", + "data_type": "Boolean", + "data_type_prim": "Boolean" + }, + "validity": { + "label": "cim:Quality61850.validity", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Validity.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Validity." + }, + "outOfRange": { + "label": "cim:Quality61850.outOfRange", + "data_type": "Boolean", + "data_type_prim": "Boolean" + }, + "operatorBlocked": { + "label": "cim:Quality61850.operatorBlocked", + "data_type": "Boolean", + "data_type_prim": "Boolean" + }, + "estimatorReplaced": { + "label": "cim:Quality61850.estimatorReplaced", + "data_type": "Boolean", + "data_type_prim": "Boolean" + }, + "failure": { + "label": "cim:Quality61850.failure", + "data_type": "Boolean", + "data_type_prim": "Boolean" + }, + "oldData": { + "label": "cim:Quality61850.oldData", + "data_type": "Boolean", + "data_type_prim": "Boolean" + }, + "test": { + "label": "cim:Quality61850.test", + "data_type": "Boolean", + "data_type_prim": "Boolean" + }, + "overFlow": { + "label": "cim:Quality61850.overFlow", + "data_type": "Boolean", + "data_type_prim": "Boolean" + }, + "source": { + "label": "cim:Quality61850.source", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Source.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Source." + }, + "suspect": { + "label": "cim:Quality61850.suspect", + "data_type": "Boolean", + "data_type_prim": "Boolean" + }, + "oscillatory": { + "label": "cim:Quality61850.oscillatory", + "data_type": "Boolean", + "data_type_prim": "Boolean" + } + } + }, + "NonConformLoadGroup": { + "rdf_type": " rdf:ID=\"", + "label": "cim:NonConformLoadGroup", + "fields": { + "NonConformLoadSchedules": { + "label": "cim:NonConformLoadGroup.NonConformLoadSchedules", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#NonConformLoadSchedule.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#NonConformLoadSchedule." + }, + "EnergyConsumers": { + "label": "cim:NonConformLoadGroup.EnergyConsumers", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#NonConformLoad.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#NonConformLoad." + }, + "SubLoadArea": { + "label": "cim:LoadGroup.SubLoadArea", + "data_type": " rdf:resource=\"#", + "data_type_prim": " rdf:resource=\"#" + }, + "mRID": { + "label": "cim:IdentifiedObject.mRID", + "data_type": "String", + "data_type_prim": "String" + }, + "name": { + "label": "cim:IdentifiedObject.name", + "data_type": "String", + "data_type_prim": "String" + }, + "description": { + "label": "cim:IdentifiedObject.description", + "data_type": "String", + "data_type_prim": "String" + }, + "energyIdentCodeEic": { + "label": "entsoe:IdentifiedObject.energyIdentCodeEic", + "data_type": "String", + "data_type_prim": "String" + }, + "shortName": { + "label": "entsoe:IdentifiedObject.shortName", + "data_type": "String", + "data_type_prim": "String" + } + } + }, + "NonConformLoadSchedule": { + "rdf_type": " rdf:ID=\"", + "label": "cim:NonConformLoadSchedule", + "fields": { + "NonConformLoadGroup": { + "label": "cim:NonConformLoadSchedule.NonConformLoadGroup", + "data_type": " rdf:resource=\"#", + "data_type_prim": " rdf:resource=\"#" + }, + "Season": { + "label": "cim:SeasonDayTypeSchedule.Season", + "data_type": " rdf:resource=\"#", + "data_type_prim": " rdf:resource=\"#" + }, + "DayType": { + "label": "cim:SeasonDayTypeSchedule.DayType", + "data_type": " rdf:resource=\"#", + "data_type_prim": " rdf:resource=\"#" + }, + "TimePoints": { + "label": "cim:RegularIntervalSchedule.TimePoints", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#RegularTimePoint.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#RegularTimePoint." + }, + "timeStep": { + "label": "cim:RegularIntervalSchedule.timeStep", + "data_type": "Seconds", + "data_type_prim": "Float" + }, + "endTime": { + "label": "cim:RegularIntervalSchedule.endTime", + "data_type": "DateTime", + "data_type_prim": "DateTime" + }, + "value1Unit": { + "label": "cim:BasicIntervalSchedule.value1Unit", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#UnitSymbol.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#UnitSymbol." + }, + "startTime": { + "label": "cim:BasicIntervalSchedule.startTime", + "data_type": "DateTime", + "data_type_prim": "DateTime" + }, + "value2Unit": { + "label": "cim:BasicIntervalSchedule.value2Unit", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#UnitSymbol.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#UnitSymbol." + }, + "mRID": { + "label": "cim:IdentifiedObject.mRID", + "data_type": "String", + "data_type_prim": "String" + }, + "name": { + "label": "cim:IdentifiedObject.name", + "data_type": "String", + "data_type_prim": "String" + }, + "description": { + "label": "cim:IdentifiedObject.description", + "data_type": "String", + "data_type_prim": "String" + }, + "energyIdentCodeEic": { + "label": "entsoe:IdentifiedObject.energyIdentCodeEic", + "data_type": "String", + "data_type_prim": "String" + }, + "shortName": { + "label": "entsoe:IdentifiedObject.shortName", + "data_type": "String", + "data_type_prim": "String" + } + } + }, + "PerLengthDCLineParameter": { + "rdf_type": " rdf:ID=\"", + "label": "cim:PerLengthDCLineParameter", + "fields": { + "resistance": { + "label": "cim:PerLengthDCLineParameter.resistance", + "data_type": "ResistancePerLength", + "data_type_prim": "Float" + }, + "DCLineSegments": { + "label": "cim:PerLengthDCLineParameter.DCLineSegments", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#DCLineSegment.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#DCLineSegment." + }, + "capacitance": { + "label": "cim:PerLengthDCLineParameter.capacitance", + "data_type": "CapacitancePerLength", + "data_type_prim": "Float" + }, + "inductance": { + "label": "cim:PerLengthDCLineParameter.inductance", + "data_type": "InductancePerLength", + "data_type_prim": "Float" + } + } + }, + "PhaseTapChangerTable": { + "rdf_type": " rdf:ID=\"", + "label": "cim:PhaseTapChangerTable", + "fields": { + "PhaseTapChangerTablePoint": { + "label": "cim:PhaseTapChangerTable.PhaseTapChangerTablePoint", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#PhaseTapChangerTablePoint.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#PhaseTapChangerTablePoint." + }, + "PhaseTapChangerTabular": { + "label": "cim:PhaseTapChangerTable.PhaseTapChangerTabular", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#PhaseTapChangerTabular.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#PhaseTapChangerTabular." + }, + "mRID": { + "label": "cim:IdentifiedObject.mRID", + "data_type": "String", + "data_type_prim": "String" + }, + "name": { + "label": "cim:IdentifiedObject.name", + "data_type": "String", + "data_type_prim": "String" + }, + "description": { + "label": "cim:IdentifiedObject.description", + "data_type": "String", + "data_type_prim": "String" + }, + "energyIdentCodeEic": { + "label": "entsoe:IdentifiedObject.energyIdentCodeEic", + "data_type": "String", + "data_type_prim": "String" + }, + "shortName": { + "label": "entsoe:IdentifiedObject.shortName", + "data_type": "String", + "data_type_prim": "String" + } + } + }, + "RaiseLowerCommand": { + "rdf_type": " rdf:ID=\"", + "label": "cim:RaiseLowerCommand", + "fields": { + "ValueAliasSet": { + "label": "cim:RaiseLowerCommand.ValueAliasSet", + "data_type": " rdf:resource=\"#", + "data_type_prim": " rdf:resource=\"#" + }, + "AnalogValue": { + "label": "cim:AnalogControl.AnalogValue", + "data_type": " rdf:resource=\"#", + "data_type_prim": " rdf:resource=\"#" + }, + "minValue": { + "label": "cim:AnalogControl.minValue", + "data_type": "Simple_Float", + "data_type_prim": "Float" + }, + "maxValue": { + "label": "cim:AnalogControl.maxValue", + "data_type": "Simple_Float", + "data_type_prim": "Float" + }, + "unitSymbol": { + "label": "cim:Control.unitSymbol", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#UnitSymbol.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#UnitSymbol." + }, + "controlType": { + "label": "cim:Control.controlType", + "data_type": "String", + "data_type_prim": "String" + }, + "timeStamp": { + "label": "cim:Control.timeStamp", + "data_type": "DateTime", + "data_type_prim": "DateTime" + }, + "operationInProgress": { + "label": "cim:Control.operationInProgress", + "data_type": "Boolean", + "data_type_prim": "Boolean" + }, + "unitMultiplier": { + "label": "cim:Control.unitMultiplier", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#UnitMultiplier.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#UnitMultiplier." + }, + "PowerSystemResource": { + "label": "cim:Control.PowerSystemResource", + "data_type": " rdf:resource=\"#", + "data_type_prim": " rdf:resource=\"#" + }, + "mRID": { + "label": "cim:IdentifiedObject.mRID", + "data_type": "String", + "data_type_prim": "String" + }, + "name": { + "label": "cim:IdentifiedObject.name", + "data_type": "String", + "data_type_prim": "String" + }, + "description": { + "label": "cim:IdentifiedObject.description", + "data_type": "String", + "data_type_prim": "String" + }, + "energyIdentCodeEic": { + "label": "entsoe:IdentifiedObject.energyIdentCodeEic", + "data_type": "String", + "data_type_prim": "String" + }, + "shortName": { + "label": "entsoe:IdentifiedObject.shortName", + "data_type": "String", + "data_type_prim": "String" + } + } + }, + "ReactiveCapabilityCurve": { + "rdf_type": " rdf:ID=\"", + "label": "cim:ReactiveCapabilityCurve", + "fields": { + "InitiallyUsedBySynchronousMachines": { + "label": "cim:ReactiveCapabilityCurve.InitiallyUsedBySynchronousMachines", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#SynchronousMachine.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#SynchronousMachine." + }, + "EquivalentInjection": { + "label": "cim:ReactiveCapabilityCurve.EquivalentInjection", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#EquivalentInjection.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#EquivalentInjection." + }, + "CurveDatas": { + "label": "cim:Curve.CurveDatas", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#CurveData.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#CurveData." + }, + "xUnit": { + "label": "cim:Curve.xUnit", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#UnitSymbol.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#UnitSymbol." + }, + "y2Unit": { + "label": "cim:Curve.y2Unit", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#UnitSymbol.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#UnitSymbol." + }, + "curveStyle": { + "label": "cim:Curve.curveStyle", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#CurveStyle.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#CurveStyle." + }, + "y1Unit": { + "label": "cim:Curve.y1Unit", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#UnitSymbol.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#UnitSymbol." + }, + "mRID": { + "label": "cim:IdentifiedObject.mRID", + "data_type": "String", + "data_type_prim": "String" + }, + "name": { + "label": "cim:IdentifiedObject.name", + "data_type": "String", + "data_type_prim": "String" + }, + "description": { + "label": "cim:IdentifiedObject.description", + "data_type": "String", + "data_type_prim": "String" + }, + "energyIdentCodeEic": { + "label": "entsoe:IdentifiedObject.energyIdentCodeEic", + "data_type": "String", + "data_type_prim": "String" + }, + "shortName": { + "label": "entsoe:IdentifiedObject.shortName", + "data_type": "String", + "data_type_prim": "String" + } + } + }, + "RegularTimePoint": { + "rdf_type": " rdf:ID=\"", + "label": "cim:RegularTimePoint", + "fields": { + "value1": { + "label": "cim:RegularTimePoint.value1", + "data_type": "Simple_Float", + "data_type_prim": "Float" + }, + "sequenceNumber": { + "label": "cim:RegularTimePoint.sequenceNumber", + "data_type": "Integer", + "data_type_prim": "Integer" + }, + "value2": { + "label": "cim:RegularTimePoint.value2", + "data_type": "Simple_Float", + "data_type_prim": "Float" + }, + "IntervalSchedule": { + "label": "cim:RegularTimePoint.IntervalSchedule", + "data_type": " rdf:resource=\"#", + "data_type_prim": " rdf:resource=\"#" + } + } + }, + "RegulationSchedule": { + "rdf_type": " rdf:ID=\"", + "label": "cim:RegulationSchedule", + "fields": { + "RegulatingControl": { + "label": "cim:RegulationSchedule.RegulatingControl", + "data_type": " rdf:resource=\"#", + "data_type_prim": " rdf:resource=\"#" + }, + "Season": { + "label": "cim:SeasonDayTypeSchedule.Season", + "data_type": " rdf:resource=\"#", + "data_type_prim": " rdf:resource=\"#" + }, + "DayType": { + "label": "cim:SeasonDayTypeSchedule.DayType", + "data_type": " rdf:resource=\"#", + "data_type_prim": " rdf:resource=\"#" + }, + "TimePoints": { + "label": "cim:RegularIntervalSchedule.TimePoints", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#RegularTimePoint.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#RegularTimePoint." + }, + "timeStep": { + "label": "cim:RegularIntervalSchedule.timeStep", + "data_type": "Seconds", + "data_type_prim": "Float" + }, + "endTime": { + "label": "cim:RegularIntervalSchedule.endTime", + "data_type": "DateTime", + "data_type_prim": "DateTime" + }, + "value1Unit": { + "label": "cim:BasicIntervalSchedule.value1Unit", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#UnitSymbol.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#UnitSymbol." + }, + "startTime": { + "label": "cim:BasicIntervalSchedule.startTime", + "data_type": "DateTime", + "data_type_prim": "DateTime" + }, + "value2Unit": { + "label": "cim:BasicIntervalSchedule.value2Unit", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#UnitSymbol.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#UnitSymbol." + }, + "mRID": { + "label": "cim:IdentifiedObject.mRID", + "data_type": "String", + "data_type_prim": "String" + }, + "name": { + "label": "cim:IdentifiedObject.name", + "data_type": "String", + "data_type_prim": "String" + }, + "description": { + "label": "cim:IdentifiedObject.description", + "data_type": "String", + "data_type_prim": "String" + }, + "energyIdentCodeEic": { + "label": "entsoe:IdentifiedObject.energyIdentCodeEic", + "data_type": "String", + "data_type_prim": "String" + }, + "shortName": { + "label": "entsoe:IdentifiedObject.shortName", + "data_type": "String", + "data_type_prim": "String" + } + } + }, + "ReportingGroup": { + "rdf_type": " rdf:ID=\"", + "label": "cim:ReportingGroup", + "fields": { + "BusNameMarker": { + "label": "cim:ReportingGroup.BusNameMarker", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#BusNameMarker.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#BusNameMarker." + }, + "mRID": { + "label": "cim:IdentifiedObject.mRID", + "data_type": "String", + "data_type_prim": "String" + }, + "name": { + "label": "cim:IdentifiedObject.name", + "data_type": "String", + "data_type_prim": "String" + }, + "description": { + "label": "cim:IdentifiedObject.description", + "data_type": "String", + "data_type_prim": "String" + }, + "energyIdentCodeEic": { + "label": "entsoe:IdentifiedObject.energyIdentCodeEic", + "data_type": "String", + "data_type_prim": "String" + }, + "shortName": { + "label": "entsoe:IdentifiedObject.shortName", + "data_type": "String", + "data_type_prim": "String" + } + } + }, + "Season": { + "rdf_type": " rdf:ID=\"", + "label": "cim:Season", + "fields": { + "startDate": { + "label": "cim:Season.startDate", + "data_type": "MonthDay", + "data_type_prim": "MonthDay" + }, + "endDate": { + "label": "cim:Season.endDate", + "data_type": "MonthDay", + "data_type_prim": "MonthDay" + }, + "SeasonDayTypeSchedules": { + "label": "cim:Season.SeasonDayTypeSchedules", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#SeasonDayTypeSchedule.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#SeasonDayTypeSchedule." + }, + "mRID": { + "label": "cim:IdentifiedObject.mRID", + "data_type": "String", + "data_type_prim": "String" + }, + "name": { + "label": "cim:IdentifiedObject.name", + "data_type": "String", + "data_type_prim": "String" + }, + "description": { + "label": "cim:IdentifiedObject.description", + "data_type": "String", + "data_type_prim": "String" + }, + "energyIdentCodeEic": { + "label": "entsoe:IdentifiedObject.energyIdentCodeEic", + "data_type": "String", + "data_type_prim": "String" + }, + "shortName": { + "label": "entsoe:IdentifiedObject.shortName", + "data_type": "String", + "data_type_prim": "String" + } + } + }, + "SetPoint": { + "rdf_type": " rdf:ID=\"", + "label": "cim:SetPoint", + "fields": { + "value": { + "label": "cim:SetPoint.value", + "data_type": "Simple_Float", + "data_type_prim": "Float" + }, + "normalValue": { + "label": "cim:SetPoint.normalValue", + "data_type": "Simple_Float", + "data_type_prim": "Float" + }, + "AnalogValue": { + "label": "cim:AnalogControl.AnalogValue", + "data_type": " rdf:resource=\"#", + "data_type_prim": " rdf:resource=\"#" + }, + "minValue": { + "label": "cim:AnalogControl.minValue", + "data_type": "Simple_Float", + "data_type_prim": "Float" + }, + "maxValue": { + "label": "cim:AnalogControl.maxValue", + "data_type": "Simple_Float", + "data_type_prim": "Float" + }, + "unitSymbol": { + "label": "cim:Control.unitSymbol", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#UnitSymbol.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#UnitSymbol." + }, + "controlType": { + "label": "cim:Control.controlType", + "data_type": "String", + "data_type_prim": "String" + }, + "timeStamp": { + "label": "cim:Control.timeStamp", + "data_type": "DateTime", + "data_type_prim": "DateTime" + }, + "operationInProgress": { + "label": "cim:Control.operationInProgress", + "data_type": "Boolean", + "data_type_prim": "Boolean" + }, + "unitMultiplier": { + "label": "cim:Control.unitMultiplier", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#UnitMultiplier.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#UnitMultiplier." + }, + "PowerSystemResource": { + "label": "cim:Control.PowerSystemResource", + "data_type": " rdf:resource=\"#", + "data_type_prim": " rdf:resource=\"#" + }, + "mRID": { + "label": "cim:IdentifiedObject.mRID", + "data_type": "String", + "data_type_prim": "String" + }, + "name": { + "label": "cim:IdentifiedObject.name", + "data_type": "String", + "data_type_prim": "String" + }, + "description": { + "label": "cim:IdentifiedObject.description", + "data_type": "String", + "data_type_prim": "String" + }, + "energyIdentCodeEic": { + "label": "entsoe:IdentifiedObject.energyIdentCodeEic", + "data_type": "String", + "data_type_prim": "String" + }, + "shortName": { + "label": "entsoe:IdentifiedObject.shortName", + "data_type": "String", + "data_type_prim": "String" + } + } + }, + "StringMeasurement": { + "rdf_type": " rdf:ID=\"", + "label": "cim:StringMeasurement", + "fields": { + "StringMeasurementValues": { + "label": "cim:StringMeasurement.StringMeasurementValues", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#StringMeasurementValue.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#StringMeasurementValue." + }, + "unitSymbol": { + "label": "cim:Measurement.unitSymbol", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#UnitSymbol.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#UnitSymbol." + }, + "phases": { + "label": "cim:Measurement.phases", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#PhaseCode.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#PhaseCode." + }, + "Terminal": { + "label": "cim:Measurement.Terminal", + "data_type": " rdf:resource=\"#", + "data_type_prim": " rdf:resource=\"#" + }, + "measurementType": { + "label": "cim:Measurement.measurementType", + "data_type": "String", + "data_type_prim": "String" + }, + "unitMultiplier": { + "label": "cim:Measurement.unitMultiplier", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#UnitMultiplier.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#UnitMultiplier." + }, + "PowerSystemResource": { + "label": "cim:Measurement.PowerSystemResource", + "data_type": " rdf:resource=\"#", + "data_type_prim": " rdf:resource=\"#" + }, + "mRID": { + "label": "cim:IdentifiedObject.mRID", + "data_type": "String", + "data_type_prim": "String" + }, + "name": { + "label": "cim:IdentifiedObject.name", + "data_type": "String", + "data_type_prim": "String" + }, + "description": { + "label": "cim:IdentifiedObject.description", + "data_type": "String", + "data_type_prim": "String" + }, + "energyIdentCodeEic": { + "label": "entsoe:IdentifiedObject.energyIdentCodeEic", + "data_type": "String", + "data_type_prim": "String" + }, + "shortName": { + "label": "entsoe:IdentifiedObject.shortName", + "data_type": "String", + "data_type_prim": "String" + } + } + }, + "StringMeasurementValue": { + "rdf_type": " rdf:ID=\"", + "label": "cim:StringMeasurementValue", + "fields": { + "value": { + "label": "cim:StringMeasurementValue.value", + "data_type": "String", + "data_type_prim": "String" + }, + "StringMeasurement": { + "label": "cim:StringMeasurementValue.StringMeasurement", + "data_type": " rdf:resource=\"#", + "data_type_prim": " rdf:resource=\"#" + }, + "MeasurementValueQuality": { + "label": "cim:MeasurementValue.MeasurementValueQuality", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#MeasurementValueQuality.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#MeasurementValueQuality." + }, + "MeasurementValueSource": { + "label": "cim:MeasurementValue.MeasurementValueSource", + "data_type": " rdf:resource=\"#", + "data_type_prim": " rdf:resource=\"#" + }, + "sensorAccuracy": { + "label": "cim:MeasurementValue.sensorAccuracy", + "data_type": "PerCent", + "data_type_prim": "Float" + }, + "timeStamp": { + "label": "cim:MeasurementValue.timeStamp", + "data_type": "DateTime", + "data_type_prim": "DateTime" + }, + "mRID": { + "label": "cim:IdentifiedObject.mRID", + "data_type": "String", + "data_type_prim": "String" + }, + "name": { + "label": "cim:IdentifiedObject.name", + "data_type": "String", + "data_type_prim": "String" + }, + "description": { + "label": "cim:IdentifiedObject.description", + "data_type": "String", + "data_type_prim": "String" + }, + "energyIdentCodeEic": { + "label": "entsoe:IdentifiedObject.energyIdentCodeEic", + "data_type": "String", + "data_type_prim": "String" + }, + "shortName": { + "label": "entsoe:IdentifiedObject.shortName", + "data_type": "String", + "data_type_prim": "String" + } + } + }, + "SubLoadArea": { + "rdf_type": " rdf:ID=\"", + "label": "cim:SubLoadArea", + "fields": { + "LoadArea": { + "label": "cim:SubLoadArea.LoadArea", + "data_type": " rdf:resource=\"#", + "data_type_prim": " rdf:resource=\"#" + }, + "LoadGroups": { + "label": "cim:SubLoadArea.LoadGroups", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#LoadGroup.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#LoadGroup." + }, + "ControlArea": { + "label": "cim:EnergyArea.ControlArea", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#ControlArea.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#ControlArea." + }, + "mRID": { + "label": "cim:IdentifiedObject.mRID", + "data_type": "String", + "data_type_prim": "String" + }, + "name": { + "label": "cim:IdentifiedObject.name", + "data_type": "String", + "data_type_prim": "String" + }, + "description": { + "label": "cim:IdentifiedObject.description", + "data_type": "String", + "data_type_prim": "String" + }, + "energyIdentCodeEic": { + "label": "entsoe:IdentifiedObject.energyIdentCodeEic", + "data_type": "String", + "data_type_prim": "String" + }, + "shortName": { + "label": "entsoe:IdentifiedObject.shortName", + "data_type": "String", + "data_type_prim": "String" + } + } + }, + "SwitchSchedule": { + "rdf_type": " rdf:ID=\"", + "label": "cim:SwitchSchedule", + "fields": { + "Switch": { + "label": "cim:SwitchSchedule.Switch", + "data_type": " rdf:resource=\"#", + "data_type_prim": " rdf:resource=\"#" + }, + "Season": { + "label": "cim:SeasonDayTypeSchedule.Season", + "data_type": " rdf:resource=\"#", + "data_type_prim": " rdf:resource=\"#" + }, + "DayType": { + "label": "cim:SeasonDayTypeSchedule.DayType", + "data_type": " rdf:resource=\"#", + "data_type_prim": " rdf:resource=\"#" + }, + "TimePoints": { + "label": "cim:RegularIntervalSchedule.TimePoints", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#RegularTimePoint.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#RegularTimePoint." + }, + "timeStep": { + "label": "cim:RegularIntervalSchedule.timeStep", + "data_type": "Seconds", + "data_type_prim": "Float" + }, + "endTime": { + "label": "cim:RegularIntervalSchedule.endTime", + "data_type": "DateTime", + "data_type_prim": "DateTime" + }, + "value1Unit": { + "label": "cim:BasicIntervalSchedule.value1Unit", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#UnitSymbol.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#UnitSymbol." + }, + "startTime": { + "label": "cim:BasicIntervalSchedule.startTime", + "data_type": "DateTime", + "data_type_prim": "DateTime" + }, + "value2Unit": { + "label": "cim:BasicIntervalSchedule.value2Unit", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#UnitSymbol.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#UnitSymbol." + }, + "mRID": { + "label": "cim:IdentifiedObject.mRID", + "data_type": "String", + "data_type_prim": "String" + }, + "name": { + "label": "cim:IdentifiedObject.name", + "data_type": "String", + "data_type_prim": "String" + }, + "description": { + "label": "cim:IdentifiedObject.description", + "data_type": "String", + "data_type_prim": "String" + }, + "energyIdentCodeEic": { + "label": "entsoe:IdentifiedObject.energyIdentCodeEic", + "data_type": "String", + "data_type_prim": "String" + }, + "shortName": { + "label": "entsoe:IdentifiedObject.shortName", + "data_type": "String", + "data_type_prim": "String" + } + } + }, + "TapSchedule": { + "rdf_type": " rdf:ID=\"", + "label": "cim:TapSchedule", + "fields": { + "TapChanger": { + "label": "cim:TapSchedule.TapChanger", + "data_type": " rdf:resource=\"#", + "data_type_prim": " rdf:resource=\"#" + }, + "Season": { + "label": "cim:SeasonDayTypeSchedule.Season", + "data_type": " rdf:resource=\"#", + "data_type_prim": " rdf:resource=\"#" + }, + "DayType": { + "label": "cim:SeasonDayTypeSchedule.DayType", + "data_type": " rdf:resource=\"#", + "data_type_prim": " rdf:resource=\"#" + }, + "TimePoints": { + "label": "cim:RegularIntervalSchedule.TimePoints", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#RegularTimePoint.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#RegularTimePoint." + }, + "timeStep": { + "label": "cim:RegularIntervalSchedule.timeStep", + "data_type": "Seconds", + "data_type_prim": "Float" + }, + "endTime": { + "label": "cim:RegularIntervalSchedule.endTime", + "data_type": "DateTime", + "data_type_prim": "DateTime" + }, + "value1Unit": { + "label": "cim:BasicIntervalSchedule.value1Unit", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#UnitSymbol.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#UnitSymbol." + }, + "startTime": { + "label": "cim:BasicIntervalSchedule.startTime", + "data_type": "DateTime", + "data_type_prim": "DateTime" + }, + "value2Unit": { + "label": "cim:BasicIntervalSchedule.value2Unit", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#UnitSymbol.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#UnitSymbol." + }, + "mRID": { + "label": "cim:IdentifiedObject.mRID", + "data_type": "String", + "data_type_prim": "String" + }, + "name": { + "label": "cim:IdentifiedObject.name", + "data_type": "String", + "data_type_prim": "String" + }, + "description": { + "label": "cim:IdentifiedObject.description", + "data_type": "String", + "data_type_prim": "String" + }, + "energyIdentCodeEic": { + "label": "entsoe:IdentifiedObject.energyIdentCodeEic", + "data_type": "String", + "data_type_prim": "String" + }, + "shortName": { + "label": "entsoe:IdentifiedObject.shortName", + "data_type": "String", + "data_type_prim": "String" + } + } + }, + "ValueAliasSet": { + "rdf_type": " rdf:ID=\"", + "label": "cim:ValueAliasSet", + "fields": { + "Values": { + "label": "cim:ValueAliasSet.Values", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#ValueToAlias.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#ValueToAlias." + }, + "Discretes": { + "label": "cim:ValueAliasSet.Discretes", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Discrete.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Discrete." + }, + "Commands": { + "label": "cim:ValueAliasSet.Commands", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Command.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Command." + }, + "RaiseLowerCommands": { + "label": "cim:ValueAliasSet.RaiseLowerCommands", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#RaiseLowerCommand.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#RaiseLowerCommand." + }, + "mRID": { + "label": "cim:IdentifiedObject.mRID", + "data_type": "String", + "data_type_prim": "String" + }, + "name": { + "label": "cim:IdentifiedObject.name", + "data_type": "String", + "data_type_prim": "String" + }, + "description": { + "label": "cim:IdentifiedObject.description", + "data_type": "String", + "data_type_prim": "String" + }, + "energyIdentCodeEic": { + "label": "entsoe:IdentifiedObject.energyIdentCodeEic", + "data_type": "String", + "data_type_prim": "String" + }, + "shortName": { + "label": "entsoe:IdentifiedObject.shortName", + "data_type": "String", + "data_type_prim": "String" + } + } + }, + "ValueToAlias": { + "rdf_type": " rdf:ID=\"", + "label": "cim:ValueToAlias", + "fields": { + "value": { + "label": "cim:ValueToAlias.value", + "data_type": "Integer", + "data_type_prim": "Integer" + }, + "ValueAliasSet": { + "label": "cim:ValueToAlias.ValueAliasSet", + "data_type": " rdf:resource=\"#", + "data_type_prim": " rdf:resource=\"#" + }, + "mRID": { + "label": "cim:IdentifiedObject.mRID", + "data_type": "String", + "data_type_prim": "String" + }, + "name": { + "label": "cim:IdentifiedObject.name", + "data_type": "String", + "data_type_prim": "String" + }, + "description": { + "label": "cim:IdentifiedObject.description", + "data_type": "String", + "data_type_prim": "String" + }, + "energyIdentCodeEic": { + "label": "entsoe:IdentifiedObject.energyIdentCodeEic", + "data_type": "String", + "data_type_prim": "String" + }, + "shortName": { + "label": "entsoe:IdentifiedObject.shortName", + "data_type": "String", + "data_type_prim": "String" + } + } + }, + "VsCapabilityCurve": { + "rdf_type": " rdf:ID=\"", + "label": "cim:VsCapabilityCurve", + "fields": { + "VsConverterDCSides": { + "label": "cim:VsCapabilityCurve.VsConverterDCSides", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#VsConverter.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#VsConverter." + }, + "CurveDatas": { + "label": "cim:Curve.CurveDatas", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#CurveData.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#CurveData." + }, + "xUnit": { + "label": "cim:Curve.xUnit", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#UnitSymbol.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#UnitSymbol." + }, + "y2Unit": { + "label": "cim:Curve.y2Unit", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#UnitSymbol.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#UnitSymbol." + }, + "curveStyle": { + "label": "cim:Curve.curveStyle", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#CurveStyle.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#CurveStyle." + }, + "y1Unit": { + "label": "cim:Curve.y1Unit", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#UnitSymbol.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#UnitSymbol." + }, + "mRID": { + "label": "cim:IdentifiedObject.mRID", + "data_type": "String", + "data_type_prim": "String" + }, + "name": { + "label": "cim:IdentifiedObject.name", + "data_type": "String", + "data_type_prim": "String" + }, + "description": { + "label": "cim:IdentifiedObject.description", + "data_type": "String", + "data_type_prim": "String" + }, + "energyIdentCodeEic": { + "label": "entsoe:IdentifiedObject.energyIdentCodeEic", + "data_type": "String", + "data_type_prim": "String" + }, + "shortName": { + "label": "entsoe:IdentifiedObject.shortName", + "data_type": "String", + "data_type_prim": "String" + } + } + } + }, + "eq_bd": { + "ConnectivityNode": { + "rdf_type": " rdf:ID=\"", + "label": "cim:ConnectivityNode", + "fields": { + "boundaryPoint": { + "label": "entsoe:ConnectivityNode.boundaryPoint", + "data_type": "Boolean", + "data_type_prim": "Boolean" + }, + "fromEndIsoCode": { + "label": "entsoe:ConnectivityNode.fromEndIsoCode", + "data_type": "String", + "data_type_prim": "String" + }, + "fromEndName": { + "label": "entsoe:ConnectivityNode.fromEndName", + "data_type": "String", + "data_type_prim": "String" + }, + "fromEndNameTso": { + "label": "entsoe:ConnectivityNode.fromEndNameTso", + "data_type": "String", + "data_type_prim": "String" + }, + "toEndIsoCode": { + "label": "entsoe:ConnectivityNode.toEndIsoCode", + "data_type": "String", + "data_type_prim": "String" + }, + "toEndName": { + "label": "entsoe:ConnectivityNode.toEndName", + "data_type": "String", + "data_type_prim": "String" + }, + "toEndNameTso": { + "label": "entsoe:ConnectivityNode.toEndNameTso", + "data_type": "String", + "data_type_prim": "String" + }, + "ConnectivityNodeContainer": { + "label": "cim:ConnectivityNode.ConnectivityNodeContainer", + "data_type": " rdf:resource=\"#", + "data_type_prim": " rdf:resource=\"#" + }, + "description": { + "label": "cim:IdentifiedObject.description", + "data_type": "String", + "data_type_prim": "String" + }, + "energyIdentCodeEic": { + "label": "entsoe:IdentifiedObject.energyIdentCodeEic", + "data_type": "String", + "data_type_prim": "String" + }, + "mRID": { + "label": "cim:IdentifiedObject.mRID", + "data_type": "String", + "data_type_prim": "String" + }, + "name": { + "label": "cim:IdentifiedObject.name", + "data_type": "String", + "data_type_prim": "String" + }, + "shortName": { + "label": "entsoe:IdentifiedObject.shortName", + "data_type": "String", + "data_type_prim": "String" + } + } + }, + "BaseVoltage": { + "rdf_type": " rdf:ID=\"", + "label": "cim:BaseVoltage", + "fields": { + "nominalVoltage": { + "label": "cim:BaseVoltage.nominalVoltage", + "data_type": "Voltage", + "data_type_prim": "Float" + }, + "description": { + "label": "cim:IdentifiedObject.description", + "data_type": "String", + "data_type_prim": "String" + }, + "energyIdentCodeEic": { + "label": "entsoe:IdentifiedObject.energyIdentCodeEic", + "data_type": "String", + "data_type_prim": "String" + }, + "mRID": { + "label": "cim:IdentifiedObject.mRID", + "data_type": "String", + "data_type_prim": "String" + }, + "name": { + "label": "cim:IdentifiedObject.name", + "data_type": "String", + "data_type_prim": "String" + }, + "shortName": { + "label": "entsoe:IdentifiedObject.shortName", + "data_type": "String", + "data_type_prim": "String" + } + } + }, + "Terminal": { + "rdf_type": " rdf:ID=\"", + "label": "cim:Terminal", + "fields": { + "ConductingEquipment": { + "label": "cim:Terminal.ConductingEquipment", + "data_type": " rdf:resource=\"#", + "data_type_prim": " rdf:resource=\"#" + } + } + }, + "EnergySource": { + "rdf_type": " rdf:ID=\"", + "label": "cim:EnergySource", + "fields": { + "EnergySchedulingType": { + "label": "cim:EnergySource.EnergySchedulingType", + "data_type": " rdf:resource=\"#", + "data_type_prim": " rdf:resource=\"#" + }, + "Terminals": { + "label": "cim:ConductingEquipment.Terminals", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Terminal.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Terminal." + }, + "EquipmentContainer": { + "label": "cim:Equipment.EquipmentContainer", + "data_type": " rdf:resource=\"#", + "data_type_prim": " rdf:resource=\"#" + }, + "description": { + "label": "cim:IdentifiedObject.description", + "data_type": "String", + "data_type_prim": "String" + }, + "energyIdentCodeEic": { + "label": "entsoe:IdentifiedObject.energyIdentCodeEic", + "data_type": "String", + "data_type_prim": "String" + }, + "mRID": { + "label": "cim:IdentifiedObject.mRID", + "data_type": "String", + "data_type_prim": "String" + }, + "name": { + "label": "cim:IdentifiedObject.name", + "data_type": "String", + "data_type_prim": "String" + }, + "shortName": { + "label": "entsoe:IdentifiedObject.shortName", + "data_type": "String", + "data_type_prim": "String" + } + } + }, + "EnergySchedulingType": { + "rdf_type": " rdf:ID=\"", + "label": "entsoe:EnergySchedulingType", + "fields": { + "EnergySource": { + "label": "cim:EnergySchedulingType.EnergySource", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#EnergySource.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#EnergySource." + }, + "description": { + "label": "cim:IdentifiedObject.description", + "data_type": "String", + "data_type_prim": "String" + }, + "energyIdentCodeEic": { + "label": "entsoe:IdentifiedObject.energyIdentCodeEic", + "data_type": "String", + "data_type_prim": "String" + }, + "mRID": { + "label": "cim:IdentifiedObject.mRID", + "data_type": "String", + "data_type_prim": "String" + }, + "name": { + "label": "cim:IdentifiedObject.name", + "data_type": "String", + "data_type_prim": "String" + }, + "shortName": { + "label": "entsoe:IdentifiedObject.shortName", + "data_type": "String", + "data_type_prim": "String" + } + } + }, + "FullModel": { + "rdf_type": " rdf:ID=\"", + "label": "cim:FullModel", + "fields": {} + }, + "GeographicalRegion": { + "rdf_type": " rdf:ID=\"", + "label": "cim:GeographicalRegion", + "fields": { + "Regions": { + "label": "cim:GeographicalRegion.Regions", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#SubGeographicalRegion.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#SubGeographicalRegion." + }, + "description": { + "label": "cim:IdentifiedObject.description", + "data_type": "String", + "data_type_prim": "String" + }, + "energyIdentCodeEic": { + "label": "entsoe:IdentifiedObject.energyIdentCodeEic", + "data_type": "String", + "data_type_prim": "String" + }, + "mRID": { + "label": "cim:IdentifiedObject.mRID", + "data_type": "String", + "data_type_prim": "String" + }, + "name": { + "label": "cim:IdentifiedObject.name", + "data_type": "String", + "data_type_prim": "String" + }, + "shortName": { + "label": "entsoe:IdentifiedObject.shortName", + "data_type": "String", + "data_type_prim": "String" + } + } + }, + "Junction": { + "rdf_type": " rdf:ID=\"", + "label": "cim:Junction", + "fields": { + "Terminals": { + "label": "cim:ConductingEquipment.Terminals", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Terminal.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Terminal." + }, + "EquipmentContainer": { + "label": "cim:Equipment.EquipmentContainer", + "data_type": " rdf:resource=\"#", + "data_type_prim": " rdf:resource=\"#" + }, + "description": { + "label": "cim:IdentifiedObject.description", + "data_type": "String", + "data_type_prim": "String" + }, + "energyIdentCodeEic": { + "label": "entsoe:IdentifiedObject.energyIdentCodeEic", + "data_type": "String", + "data_type_prim": "String" + }, + "mRID": { + "label": "cim:IdentifiedObject.mRID", + "data_type": "String", + "data_type_prim": "String" + }, + "name": { + "label": "cim:IdentifiedObject.name", + "data_type": "String", + "data_type_prim": "String" + }, + "shortName": { + "label": "entsoe:IdentifiedObject.shortName", + "data_type": "String", + "data_type_prim": "String" + } + } + }, + "Line": { + "rdf_type": " rdf:ID=\"", + "label": "cim:Line", + "fields": { + "Region": { + "label": "cim:Line.Region", + "data_type": " rdf:resource=\"#", + "data_type_prim": " rdf:resource=\"#" + }, + "Equipments": { + "label": "cim:EquipmentContainer.Equipments", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Equipment.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Equipment." + }, + "ConnectivityNodes": { + "label": "cim:ConnectivityNodeContainer.ConnectivityNodes", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#ConnectivityNode.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#ConnectivityNode." + }, + "description": { + "label": "cim:IdentifiedObject.description", + "data_type": "String", + "data_type_prim": "String" + }, + "energyIdentCodeEic": { + "label": "entsoe:IdentifiedObject.energyIdentCodeEic", + "data_type": "String", + "data_type_prim": "String" + }, + "mRID": { + "label": "cim:IdentifiedObject.mRID", + "data_type": "String", + "data_type_prim": "String" + }, + "name": { + "label": "cim:IdentifiedObject.name", + "data_type": "String", + "data_type_prim": "String" + }, + "shortName": { + "label": "entsoe:IdentifiedObject.shortName", + "data_type": "String", + "data_type_prim": "String" + } + } + }, + "SubGeographicalRegion": { + "rdf_type": " rdf:ID=\"", + "label": "cim:SubGeographicalRegion", + "fields": { + "Region": { + "label": "cim:SubGeographicalRegion.Region", + "data_type": " rdf:resource=\"#", + "data_type_prim": " rdf:resource=\"#" + }, + "Lines": { + "label": "cim:SubGeographicalRegion.Lines", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Line.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Line." + }, + "description": { + "label": "cim:IdentifiedObject.description", + "data_type": "String", + "data_type_prim": "String" + }, + "energyIdentCodeEic": { + "label": "entsoe:IdentifiedObject.energyIdentCodeEic", + "data_type": "String", + "data_type_prim": "String" + }, + "mRID": { + "label": "cim:IdentifiedObject.mRID", + "data_type": "String", + "data_type_prim": "String" + }, + "name": { + "label": "cim:IdentifiedObject.name", + "data_type": "String", + "data_type_prim": "String" + }, + "shortName": { + "label": "entsoe:IdentifiedObject.shortName", + "data_type": "String", + "data_type_prim": "String" + } + } + } + }, + "ssh": { + "ControlArea": { + "rdf_type": " rdf:about=\"#", + "label": "cim:ControlArea", + "fields": { + "netInterchange": { + "label": "cim:ControlArea.netInterchange", + "data_type": "ActivePower", + "data_type_prim": "Float" + }, + "pTolerance": { + "label": "cim:ControlArea.pTolerance", + "data_type": "ActivePower", + "data_type_prim": "Float" + }, + "mRID": { + "label": "cim:IdentifiedObject.mRID", + "data_type": "String", + "data_type_prim": "String" + }, + "name": { + "label": "cim:IdentifiedObject.name", + "data_type": "String", + "data_type_prim": "String" + } + } + }, + "ExternalNetworkInjection": { + "rdf_type": " rdf:about=\"#", + "label": "cim:ExternalNetworkInjection", + "fields": { + "referencePriority": { + "label": "cim:ExternalNetworkInjection.referencePriority", + "data_type": "Integer", + "data_type_prim": "Integer" + }, + "p": { + "label": "cim:ExternalNetworkInjection.p", + "data_type": "ActivePower", + "data_type_prim": "Float" + }, + "q": { + "label": "cim:ExternalNetworkInjection.q", + "data_type": "ReactivePower", + "data_type_prim": "Float" + }, + "controlEnabled": { + "label": "cim:RegulatingCondEq.controlEnabled", + "data_type": "Boolean", + "data_type_prim": "Boolean" + }, + "mRID": { + "label": "cim:IdentifiedObject.mRID", + "data_type": "String", + "data_type_prim": "String" + }, + "name": { + "label": "cim:IdentifiedObject.name", + "data_type": "String", + "data_type_prim": "String" + } + } + }, + "Terminal": { + "rdf_type": " rdf:about=\"#", + "label": "cim:Terminal", + "fields": { + "connected": { + "label": "cim:ACDCTerminal.connected", + "data_type": "Boolean", + "data_type_prim": "Boolean" + }, + "mRID": { + "label": "cim:IdentifiedObject.mRID", + "data_type": "String", + "data_type_prim": "String" + }, + "name": { + "label": "cim:IdentifiedObject.name", + "data_type": "String", + "data_type_prim": "String" + } + } + }, + "DCTerminal": { + "rdf_type": " rdf:about=\"#", + "label": "cim:DCTerminal", + "fields": { + "connected": { + "label": "cim:ACDCTerminal.connected", + "data_type": "Boolean", + "data_type_prim": "Boolean" + }, + "mRID": { + "label": "cim:IdentifiedObject.mRID", + "data_type": "String", + "data_type_prim": "String" + }, + "name": { + "label": "cim:IdentifiedObject.name", + "data_type": "String", + "data_type_prim": "String" + } + } + }, + "ACDCConverterDCTerminal": { + "rdf_type": " rdf:about=\"#", + "label": "cim:ACDCConverterDCTerminal", + "fields": { + "connected": { + "label": "cim:ACDCTerminal.connected", + "data_type": "Boolean", + "data_type_prim": "Boolean" + }, + "mRID": { + "label": "cim:IdentifiedObject.mRID", + "data_type": "String", + "data_type_prim": "String" + }, + "name": { + "label": "cim:IdentifiedObject.name", + "data_type": "String", + "data_type_prim": "String" + } + } + }, + "CsConverter": { + "rdf_type": " rdf:about=\"#", + "label": "cim:CsConverter", + "fields": { + "operatingMode": { + "label": "cim:CsConverter.operatingMode", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#CsOperatingModeKind.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#CsOperatingModeKind." + }, + "pPccControl": { + "label": "cim:CsConverter.pPccControl", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#CsPpccControlKind.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#CsPpccControlKind." + }, + "targetAlpha": { + "label": "cim:CsConverter.targetAlpha", + "data_type": "AngleDegrees", + "data_type_prim": "Float" + }, + "targetGamma": { + "label": "cim:CsConverter.targetGamma", + "data_type": "AngleDegrees", + "data_type_prim": "Float" + }, + "targetIdc": { + "label": "cim:CsConverter.targetIdc", + "data_type": "CurrentFlow", + "data_type_prim": "Float" + }, + "p": { + "label": "cim:ACDCConverter.p", + "data_type": "ActivePower", + "data_type_prim": "Float" + }, + "q": { + "label": "cim:ACDCConverter.q", + "data_type": "ReactivePower", + "data_type_prim": "Float" + }, + "targetPpcc": { + "label": "cim:ACDCConverter.targetPpcc", + "data_type": "ActivePower", + "data_type_prim": "Float" + }, + "targetUdc": { + "label": "cim:ACDCConverter.targetUdc", + "data_type": "Voltage", + "data_type_prim": "Float" + }, + "mRID": { + "label": "cim:IdentifiedObject.mRID", + "data_type": "String", + "data_type_prim": "String" + }, + "name": { + "label": "cim:IdentifiedObject.name", + "data_type": "String", + "data_type_prim": "String" + } + } + }, + "VsConverter": { + "rdf_type": " rdf:about=\"#", + "label": "cim:VsConverter", + "fields": { + "droop": { + "label": "cim:VsConverter.droop", + "data_type": "PU", + "data_type_prim": "Float" + }, + "droopCompensation": { + "label": "cim:VsConverter.droopCompensation", + "data_type": "Resistance", + "data_type_prim": "Float" + }, + "pPccControl": { + "label": "cim:VsConverter.pPccControl", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#VsPpccControlKind.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#VsPpccControlKind." + }, + "qPccControl": { + "label": "cim:VsConverter.qPccControl", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#VsQpccControlKind.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#VsQpccControlKind." + }, + "qShare": { + "label": "cim:VsConverter.qShare", + "data_type": "PerCent", + "data_type_prim": "Float" + }, + "targetQpcc": { + "label": "cim:VsConverter.targetQpcc", + "data_type": "ReactivePower", + "data_type_prim": "Float" + }, + "targetUpcc": { + "label": "cim:VsConverter.targetUpcc", + "data_type": "Voltage", + "data_type_prim": "Float" + }, + "p": { + "label": "cim:ACDCConverter.p", + "data_type": "ActivePower", + "data_type_prim": "Float" + }, + "q": { + "label": "cim:ACDCConverter.q", + "data_type": "ReactivePower", + "data_type_prim": "Float" + }, + "targetPpcc": { + "label": "cim:ACDCConverter.targetPpcc", + "data_type": "ActivePower", + "data_type_prim": "Float" + }, + "targetUdc": { + "label": "cim:ACDCConverter.targetUdc", + "data_type": "Voltage", + "data_type_prim": "Float" + }, + "mRID": { + "label": "cim:IdentifiedObject.mRID", + "data_type": "String", + "data_type_prim": "String" + }, + "name": { + "label": "cim:IdentifiedObject.name", + "data_type": "String", + "data_type_prim": "String" + } + } + }, + "Breaker": { + "rdf_type": " rdf:about=\"#", + "label": "cim:Breaker", + "fields": { + "open": { + "label": "cim:Switch.open", + "data_type": "Boolean", + "data_type_prim": "Boolean" + }, + "mRID": { + "label": "cim:IdentifiedObject.mRID", + "data_type": "String", + "data_type_prim": "String" + }, + "name": { + "label": "cim:IdentifiedObject.name", + "data_type": "String", + "data_type_prim": "String" + } + } + }, + "Disconnector": { + "rdf_type": " rdf:about=\"#", + "label": "cim:Disconnector", + "fields": { + "open": { + "label": "cim:Switch.open", + "data_type": "Boolean", + "data_type_prim": "Boolean" + }, + "mRID": { + "label": "cim:IdentifiedObject.mRID", + "data_type": "String", + "data_type_prim": "String" + }, + "name": { + "label": "cim:IdentifiedObject.name", + "data_type": "String", + "data_type_prim": "String" + } + } + }, + "Switch": { + "rdf_type": " rdf:about=\"#", + "label": "cim:Switch", + "fields": { + "open": { + "label": "cim:Switch.open", + "data_type": "Boolean", + "data_type_prim": "Boolean" + }, + "mRID": { + "label": "cim:IdentifiedObject.mRID", + "data_type": "String", + "data_type_prim": "String" + }, + "name": { + "label": "cim:IdentifiedObject.name", + "data_type": "String", + "data_type_prim": "String" + } + } + }, + "LoadBreakSwitch": { + "rdf_type": " rdf:about=\"#", + "label": "cim:LoadBreakSwitch", + "fields": { + "open": { + "label": "cim:Switch.open", + "data_type": "Boolean", + "data_type_prim": "Boolean" + }, + "mRID": { + "label": "cim:IdentifiedObject.mRID", + "data_type": "String", + "data_type_prim": "String" + }, + "name": { + "label": "cim:IdentifiedObject.name", + "data_type": "String", + "data_type_prim": "String" + } + } + }, + "EnergyConsumer": { + "rdf_type": " rdf:about=\"#", + "label": "cim:EnergyConsumer", + "fields": { + "p": { + "label": "cim:EnergyConsumer.p", + "data_type": "ActivePower", + "data_type_prim": "Float" + }, + "q": { + "label": "cim:EnergyConsumer.q", + "data_type": "ReactivePower", + "data_type_prim": "Float" + }, + "mRID": { + "label": "cim:IdentifiedObject.mRID", + "data_type": "String", + "data_type_prim": "String" + }, + "name": { + "label": "cim:IdentifiedObject.name", + "data_type": "String", + "data_type_prim": "String" + } + } + }, + "ConformLoad": { + "rdf_type": " rdf:about=\"#", + "label": "cim:ConformLoad", + "fields": { + "p": { + "label": "cim:EnergyConsumer.p", + "data_type": "ActivePower", + "data_type_prim": "Float" + }, + "q": { + "label": "cim:EnergyConsumer.q", + "data_type": "ReactivePower", + "data_type_prim": "Float" + }, + "mRID": { + "label": "cim:IdentifiedObject.mRID", + "data_type": "String", + "data_type_prim": "String" + }, + "name": { + "label": "cim:IdentifiedObject.name", + "data_type": "String", + "data_type_prim": "String" + } + } + }, + "NonConformLoad": { + "rdf_type": " rdf:about=\"#", + "label": "cim:NonConformLoad", + "fields": { + "p": { + "label": "cim:EnergyConsumer.p", + "data_type": "ActivePower", + "data_type_prim": "Float" + }, + "q": { + "label": "cim:EnergyConsumer.q", + "data_type": "ReactivePower", + "data_type_prim": "Float" + }, + "mRID": { + "label": "cim:IdentifiedObject.mRID", + "data_type": "String", + "data_type_prim": "String" + }, + "name": { + "label": "cim:IdentifiedObject.name", + "data_type": "String", + "data_type_prim": "String" + } + } + }, + "StationSupply": { + "rdf_type": " rdf:about=\"#", + "label": "cim:StationSupply", + "fields": { + "p": { + "label": "cim:EnergyConsumer.p", + "data_type": "ActivePower", + "data_type_prim": "Float" + }, + "q": { + "label": "cim:EnergyConsumer.q", + "data_type": "ReactivePower", + "data_type_prim": "Float" + }, + "mRID": { + "label": "cim:IdentifiedObject.mRID", + "data_type": "String", + "data_type_prim": "String" + }, + "name": { + "label": "cim:IdentifiedObject.name", + "data_type": "String", + "data_type_prim": "String" + } + } + }, + "RegulatingControl": { + "rdf_type": " rdf:about=\"#", + "label": "cim:RegulatingControl", + "fields": { + "discrete": { + "label": "cim:RegulatingControl.discrete", + "data_type": "Boolean", + "data_type_prim": "Boolean" + }, + "enabled": { + "label": "cim:RegulatingControl.enabled", + "data_type": "Boolean", + "data_type_prim": "Boolean" + }, + "targetDeadband": { + "label": "cim:RegulatingControl.targetDeadband", + "data_type": "Simple_Float", + "data_type_prim": "Float" + }, + "targetValue": { + "label": "cim:RegulatingControl.targetValue", + "data_type": "Simple_Float", + "data_type_prim": "Float" + }, + "targetValueUnitMultiplier": { + "label": "cim:RegulatingControl.targetValueUnitMultiplier", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#UnitMultiplier.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#UnitMultiplier." + }, + "mRID": { + "label": "cim:IdentifiedObject.mRID", + "data_type": "String", + "data_type_prim": "String" + }, + "name": { + "label": "cim:IdentifiedObject.name", + "data_type": "String", + "data_type_prim": "String" + } + } + }, + "SynchronousMachine": { + "rdf_type": " rdf:about=\"#", + "label": "cim:SynchronousMachine", + "fields": { + "operatingMode": { + "label": "cim:SynchronousMachine.operatingMode", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#SynchronousMachineOperatingMode.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#SynchronousMachineOperatingMode." + }, + "referencePriority": { + "label": "cim:SynchronousMachine.referencePriority", + "data_type": "Integer", + "data_type_prim": "Integer" + }, + "p": { + "label": "cim:RotatingMachine.p", + "data_type": "ActivePower", + "data_type_prim": "Float" + }, + "q": { + "label": "cim:RotatingMachine.q", + "data_type": "ReactivePower", + "data_type_prim": "Float" + }, + "controlEnabled": { + "label": "cim:RegulatingCondEq.controlEnabled", + "data_type": "Boolean", + "data_type_prim": "Boolean" + }, + "mRID": { + "label": "cim:IdentifiedObject.mRID", + "data_type": "String", + "data_type_prim": "String" + }, + "name": { + "label": "cim:IdentifiedObject.name", + "data_type": "String", + "data_type_prim": "String" + } + } + }, + "AsynchronousMachine": { + "rdf_type": " rdf:about=\"#", + "label": "cim:AsynchronousMachine", + "fields": { + "asynchronousMachineType": { + "label": "cim:AsynchronousMachine.asynchronousMachineType", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#AsynchronousMachineKind.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#AsynchronousMachineKind." + }, + "p": { + "label": "cim:RotatingMachine.p", + "data_type": "ActivePower", + "data_type_prim": "Float" + }, + "q": { + "label": "cim:RotatingMachine.q", + "data_type": "ReactivePower", + "data_type_prim": "Float" + }, + "controlEnabled": { + "label": "cim:RegulatingCondEq.controlEnabled", + "data_type": "Boolean", + "data_type_prim": "Boolean" + }, + "mRID": { + "label": "cim:IdentifiedObject.mRID", + "data_type": "String", + "data_type_prim": "String" + }, + "name": { + "label": "cim:IdentifiedObject.name", + "data_type": "String", + "data_type_prim": "String" + } + } + }, + "EnergySource": { + "rdf_type": " rdf:about=\"#", + "label": "cim:EnergySource", + "fields": { + "activePower": { + "label": "cim:EnergySource.activePower", + "data_type": "ActivePower", + "data_type_prim": "Float" + }, + "reactivePower": { + "label": "cim:EnergySource.reactivePower", + "data_type": "ReactivePower", + "data_type_prim": "Float" + }, + "mRID": { + "label": "cim:IdentifiedObject.mRID", + "data_type": "String", + "data_type_prim": "String" + }, + "name": { + "label": "cim:IdentifiedObject.name", + "data_type": "String", + "data_type_prim": "String" + } + } + }, + "StaticVarCompensator": { + "rdf_type": " rdf:about=\"#", + "label": "cim:StaticVarCompensator", + "fields": { + "q": { + "label": "cim:StaticVarCompensator.q", + "data_type": "ReactivePower", + "data_type_prim": "Float" + }, + "controlEnabled": { + "label": "cim:RegulatingCondEq.controlEnabled", + "data_type": "Boolean", + "data_type_prim": "Boolean" + }, + "mRID": { + "label": "cim:IdentifiedObject.mRID", + "data_type": "String", + "data_type_prim": "String" + }, + "name": { + "label": "cim:IdentifiedObject.name", + "data_type": "String", + "data_type_prim": "String" + } + } + }, + "TapChangerControl": { + "rdf_type": " rdf:about=\"#", + "label": "cim:TapChangerControl", + "fields": { + "discrete": { + "label": "cim:RegulatingControl.discrete", + "data_type": "Boolean", + "data_type_prim": "Boolean" + }, + "enabled": { + "label": "cim:RegulatingControl.enabled", + "data_type": "Boolean", + "data_type_prim": "Boolean" + }, + "targetDeadband": { + "label": "cim:RegulatingControl.targetDeadband", + "data_type": "Simple_Float", + "data_type_prim": "Float" + }, + "targetValue": { + "label": "cim:RegulatingControl.targetValue", + "data_type": "Simple_Float", + "data_type_prim": "Float" + }, + "targetValueUnitMultiplier": { + "label": "cim:RegulatingControl.targetValueUnitMultiplier", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#UnitMultiplier.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#UnitMultiplier." + }, + "mRID": { + "label": "cim:IdentifiedObject.mRID", + "data_type": "String", + "data_type_prim": "String" + }, + "name": { + "label": "cim:IdentifiedObject.name", + "data_type": "String", + "data_type_prim": "String" + } + } + }, + "RatioTapChanger": { + "rdf_type": " rdf:about=\"#", + "label": "cim:RatioTapChanger", + "fields": { + "controlEnabled": { + "label": "cim:TapChanger.controlEnabled", + "data_type": "Boolean", + "data_type_prim": "Boolean" + }, + "step": { + "label": "cim:TapChanger.step", + "data_type": "Simple_Float", + "data_type_prim": "Float" + }, + "mRID": { + "label": "cim:IdentifiedObject.mRID", + "data_type": "String", + "data_type_prim": "String" + }, + "name": { + "label": "cim:IdentifiedObject.name", + "data_type": "String", + "data_type_prim": "String" + } + } + }, + "PhaseTapChangerLinear": { + "rdf_type": " rdf:about=\"#", + "label": "cim:PhaseTapChangerLinear", + "fields": { + "controlEnabled": { + "label": "cim:TapChanger.controlEnabled", + "data_type": "Boolean", + "data_type_prim": "Boolean" + }, + "step": { + "label": "cim:TapChanger.step", + "data_type": "Simple_Float", + "data_type_prim": "Float" + }, + "mRID": { + "label": "cim:IdentifiedObject.mRID", + "data_type": "String", + "data_type_prim": "String" + }, + "name": { + "label": "cim:IdentifiedObject.name", + "data_type": "String", + "data_type_prim": "String" + } + } + }, + "PhaseTapChangerAsymmetrical": { + "rdf_type": " rdf:about=\"#", + "label": "cim:PhaseTapChangerAsymmetrical", + "fields": { + "controlEnabled": { + "label": "cim:TapChanger.controlEnabled", + "data_type": "Boolean", + "data_type_prim": "Boolean" + }, + "step": { + "label": "cim:TapChanger.step", + "data_type": "Simple_Float", + "data_type_prim": "Float" + }, + "mRID": { + "label": "cim:IdentifiedObject.mRID", + "data_type": "String", + "data_type_prim": "String" + }, + "name": { + "label": "cim:IdentifiedObject.name", + "data_type": "String", + "data_type_prim": "String" + } + } + }, + "PhaseTapChangerSymmetrical": { + "rdf_type": " rdf:about=\"#", + "label": "cim:PhaseTapChangerSymmetrical", + "fields": { + "controlEnabled": { + "label": "cim:TapChanger.controlEnabled", + "data_type": "Boolean", + "data_type_prim": "Boolean" + }, + "step": { + "label": "cim:TapChanger.step", + "data_type": "Simple_Float", + "data_type_prim": "Float" + }, + "mRID": { + "label": "cim:IdentifiedObject.mRID", + "data_type": "String", + "data_type_prim": "String" + }, + "name": { + "label": "cim:IdentifiedObject.name", + "data_type": "String", + "data_type_prim": "String" + } + } + }, + "PhaseTapChangerTabular": { + "rdf_type": " rdf:about=\"#", + "label": "cim:PhaseTapChangerTabular", + "fields": { + "controlEnabled": { + "label": "cim:TapChanger.controlEnabled", + "data_type": "Boolean", + "data_type_prim": "Boolean" + }, + "step": { + "label": "cim:TapChanger.step", + "data_type": "Simple_Float", + "data_type_prim": "Float" + }, + "mRID": { + "label": "cim:IdentifiedObject.mRID", + "data_type": "String", + "data_type_prim": "String" + }, + "name": { + "label": "cim:IdentifiedObject.name", + "data_type": "String", + "data_type_prim": "String" + } + } + }, + "LinearShuntCompensator": { + "rdf_type": " rdf:about=\"#", + "label": "cim:LinearShuntCompensator", + "fields": { + "sections": { + "label": "cim:ShuntCompensator.sections", + "data_type": "Simple_Float", + "data_type_prim": "Float" + }, + "controlEnabled": { + "label": "cim:RegulatingCondEq.controlEnabled", + "data_type": "Boolean", + "data_type_prim": "Boolean" + }, + "mRID": { + "label": "cim:IdentifiedObject.mRID", + "data_type": "String", + "data_type_prim": "String" + }, + "name": { + "label": "cim:IdentifiedObject.name", + "data_type": "String", + "data_type_prim": "String" + } + } + }, + "NonlinearShuntCompensator": { + "rdf_type": " rdf:about=\"#", + "label": "cim:NonlinearShuntCompensator", + "fields": { + "sections": { + "label": "cim:ShuntCompensator.sections", + "data_type": "Simple_Float", + "data_type_prim": "Float" + }, + "controlEnabled": { + "label": "cim:RegulatingCondEq.controlEnabled", + "data_type": "Boolean", + "data_type_prim": "Boolean" + }, + "mRID": { + "label": "cim:IdentifiedObject.mRID", + "data_type": "String", + "data_type_prim": "String" + }, + "name": { + "label": "cim:IdentifiedObject.name", + "data_type": "String", + "data_type_prim": "String" + } + } + }, + "EquivalentInjection": { + "rdf_type": " rdf:about=\"#", + "label": "cim:EquivalentInjection", + "fields": { + "regulationStatus": { + "label": "cim:EquivalentInjection.regulationStatus", + "data_type": "Boolean", + "data_type_prim": "Boolean" + }, + "regulationTarget": { + "label": "cim:EquivalentInjection.regulationTarget", + "data_type": "Voltage", + "data_type_prim": "Float" + }, + "p": { + "label": "cim:EquivalentInjection.p", + "data_type": "ActivePower", + "data_type_prim": "Float" + }, + "q": { + "label": "cim:EquivalentInjection.q", + "data_type": "ReactivePower", + "data_type_prim": "Float" + }, + "mRID": { + "label": "cim:IdentifiedObject.mRID", + "data_type": "String", + "data_type_prim": "String" + }, + "name": { + "label": "cim:IdentifiedObject.name", + "data_type": "String", + "data_type_prim": "String" + } + } + }, + "FullModel": { + "rdf_type": " rdf:ID=\"", + "label": "cim:FullModel", + "fields": {} + }, + "GeneratingUnit": { + "rdf_type": " rdf:about=\"#", + "label": "cim:GeneratingUnit", + "fields": { + "normalPF": { + "label": "cim:GeneratingUnit.normalPF", + "data_type": "Simple_Float", + "data_type_prim": "Float" + }, + "mRID": { + "label": "cim:IdentifiedObject.mRID", + "data_type": "String", + "data_type_prim": "String" + }, + "name": { + "label": "cim:IdentifiedObject.name", + "data_type": "String", + "data_type_prim": "String" + } + } + }, + "HydroGeneratingUnit": { + "rdf_type": " rdf:about=\"#", + "label": "cim:HydroGeneratingUnit", + "fields": { + "normalPF": { + "label": "cim:GeneratingUnit.normalPF", + "data_type": "Simple_Float", + "data_type_prim": "Float" + }, + "mRID": { + "label": "cim:IdentifiedObject.mRID", + "data_type": "String", + "data_type_prim": "String" + }, + "name": { + "label": "cim:IdentifiedObject.name", + "data_type": "String", + "data_type_prim": "String" + } + } + }, + "NuclearGeneratingUnit": { + "rdf_type": " rdf:about=\"#", + "label": "cim:NuclearGeneratingUnit", + "fields": { + "normalPF": { + "label": "cim:GeneratingUnit.normalPF", + "data_type": "Simple_Float", + "data_type_prim": "Float" + }, + "mRID": { + "label": "cim:IdentifiedObject.mRID", + "data_type": "String", + "data_type_prim": "String" + }, + "name": { + "label": "cim:IdentifiedObject.name", + "data_type": "String", + "data_type_prim": "String" + } + } + }, + "SolarGeneratingUnit": { + "rdf_type": " rdf:about=\"#", + "label": "cim:SolarGeneratingUnit", + "fields": { + "normalPF": { + "label": "cim:GeneratingUnit.normalPF", + "data_type": "Simple_Float", + "data_type_prim": "Float" + }, + "mRID": { + "label": "cim:IdentifiedObject.mRID", + "data_type": "String", + "data_type_prim": "String" + }, + "name": { + "label": "cim:IdentifiedObject.name", + "data_type": "String", + "data_type_prim": "String" + } + } + }, + "ThermalGeneratingUnit": { + "rdf_type": " rdf:about=\"#", + "label": "cim:ThermalGeneratingUnit", + "fields": { + "normalPF": { + "label": "cim:GeneratingUnit.normalPF", + "data_type": "Simple_Float", + "data_type_prim": "Float" + }, + "mRID": { + "label": "cim:IdentifiedObject.mRID", + "data_type": "String", + "data_type_prim": "String" + }, + "name": { + "label": "cim:IdentifiedObject.name", + "data_type": "String", + "data_type_prim": "String" + } + } + }, + "WindGeneratingUnit": { + "rdf_type": " rdf:about=\"#", + "label": "cim:WindGeneratingUnit", + "fields": { + "normalPF": { + "label": "cim:GeneratingUnit.normalPF", + "data_type": "Simple_Float", + "data_type_prim": "Float" + }, + "mRID": { + "label": "cim:IdentifiedObject.mRID", + "data_type": "String", + "data_type_prim": "String" + }, + "name": { + "label": "cim:IdentifiedObject.name", + "data_type": "String", + "data_type_prim": "String" + } + } + } + }, + "sv": { + "SvVoltage": { + "rdf_type": " rdf:ID=\"", + "label": "cim:SvVoltage", + "fields": { + "angle": { + "label": "cim:SvVoltage.angle", + "data_type": "AngleDegrees", + "data_type_prim": "Float" + }, + "v": { + "label": "cim:SvVoltage.v", + "data_type": "Voltage", + "data_type_prim": "Float" + }, + "TopologicalNode": { + "label": "cim:SvVoltage.TopologicalNode", + "data_type": " rdf:resource=\"#", + "data_type_prim": " rdf:resource=\"#" + } + } + }, + "SvPowerFlow": { + "rdf_type": " rdf:ID=\"", + "label": "cim:SvPowerFlow", + "fields": { + "Terminal": { + "label": "cim:SvPowerFlow.Terminal", + "data_type": " rdf:resource=\"#", + "data_type_prim": " rdf:resource=\"#" + }, + "p": { + "label": "cim:SvPowerFlow.p", + "data_type": "ActivePower", + "data_type_prim": "Float" + }, + "q": { + "label": "cim:SvPowerFlow.q", + "data_type": "ReactivePower", + "data_type_prim": "Float" + } + } + }, + "SvShuntCompensatorSections": { + "rdf_type": " rdf:ID=\"", + "label": "cim:SvShuntCompensatorSections", + "fields": { + "sections": { + "label": "cim:SvShuntCompensatorSections.sections", + "data_type": "Simple_Float", + "data_type_prim": "Float" + }, + "ShuntCompensator": { + "label": "cim:SvShuntCompensatorSections.ShuntCompensator", + "data_type": " rdf:resource=\"#", + "data_type_prim": " rdf:resource=\"#" + } + } + }, + "SvTapStep": { + "rdf_type": " rdf:ID=\"", + "label": "cim:SvTapStep", + "fields": { + "position": { + "label": "cim:SvTapStep.position", + "data_type": "Simple_Float", + "data_type_prim": "Float" + }, + "TapChanger": { + "label": "cim:SvTapStep.TapChanger", + "data_type": " rdf:resource=\"#", + "data_type_prim": " rdf:resource=\"#" + } + } + }, + "FullModel": { + "rdf_type": " rdf:ID=\"", + "label": "cim:FullModel", + "fields": {} + }, + "CsConverter": { + "rdf_type": " rdf:about=\"#", + "label": "cim:CsConverter", + "fields": { + "alpha": { + "label": "cim:CsConverter.alpha", + "data_type": "AngleDegrees", + "data_type_prim": "Float" + }, + "gamma": { + "label": "cim:CsConverter.gamma", + "data_type": "AngleDegrees", + "data_type_prim": "Float" + }, + "idc": { + "label": "cim:ACDCConverter.idc", + "data_type": "CurrentFlow", + "data_type_prim": "Float" + }, + "poleLossP": { + "label": "cim:ACDCConverter.poleLossP", + "data_type": "ActivePower", + "data_type_prim": "Float" + }, + "uc": { + "label": "cim:ACDCConverter.uc", + "data_type": "Voltage", + "data_type_prim": "Float" + }, + "udc": { + "label": "cim:ACDCConverter.udc", + "data_type": "Voltage", + "data_type_prim": "Float" + }, + "SvStatus": { + "label": "cim:ConductingEquipment.SvStatus", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#SvStatus.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#SvStatus." + } + } + }, + "DCTopologicalIsland": { + "rdf_type": " rdf:ID=\"", + "label": "cim:DCTopologicalIsland", + "fields": { + "DCTopologicalNodes": { + "label": "cim:DCTopologicalIsland.DCTopologicalNodes", + "data_type": " rdf:resource=\"#", + "data_type_prim": " rdf:resource=\"#" + }, + "mRID": { + "label": "cim:IdentifiedObject.mRID", + "data_type": "String", + "data_type_prim": "String" + }, + "name": { + "label": "cim:IdentifiedObject.name", + "data_type": "String", + "data_type_prim": "String" + } + } + }, + "SvInjection": { + "rdf_type": " rdf:ID=\"", + "label": "cim:SvInjection", + "fields": { + "pInjection": { + "label": "cim:SvInjection.pInjection", + "data_type": "ActivePower", + "data_type_prim": "Float" + }, + "qInjection": { + "label": "cim:SvInjection.qInjection", + "data_type": "ReactivePower", + "data_type_prim": "Float" + }, + "TopologicalNode": { + "label": "cim:SvInjection.TopologicalNode", + "data_type": " rdf:resource=\"#", + "data_type_prim": " rdf:resource=\"#" + } + } + }, + "SvStatus": { + "rdf_type": " rdf:ID=\"", + "label": "cim:SvStatus", + "fields": { + "ConductingEquipment": { + "label": "cim:SvStatus.ConductingEquipment", + "data_type": " rdf:resource=\"#", + "data_type_prim": " rdf:resource=\"#" + }, + "inService": { + "label": "cim:SvStatus.inService", + "data_type": "Boolean", + "data_type_prim": "Boolean" + } + } + }, + "TopologicalIsland": { + "rdf_type": " rdf:ID=\"", + "label": "cim:TopologicalIsland", + "fields": { + "AngleRefTopologicalNode": { + "label": "cim:TopologicalIsland.AngleRefTopologicalNode", + "data_type": " rdf:resource=\"#", + "data_type_prim": " rdf:resource=\"#" + }, + "TopologicalNodes": { + "label": "cim:TopologicalIsland.TopologicalNodes", + "data_type": " rdf:resource=\"#", + "data_type_prim": " rdf:resource=\"#" + }, + "mRID": { + "label": "cim:IdentifiedObject.mRID", + "data_type": "String", + "data_type_prim": "String" + }, + "name": { + "label": "cim:IdentifiedObject.name", + "data_type": "String", + "data_type_prim": "String" + } + } + }, + "VsConverter": { + "rdf_type": " rdf:about=\"#", + "label": "cim:VsConverter", + "fields": { + "delta": { + "label": "cim:VsConverter.delta", + "data_type": "AngleDegrees", + "data_type_prim": "Float" + }, + "uf": { + "label": "cim:VsConverter.uf", + "data_type": "Voltage", + "data_type_prim": "Float" + }, + "idc": { + "label": "cim:ACDCConverter.idc", + "data_type": "CurrentFlow", + "data_type_prim": "Float" + }, + "poleLossP": { + "label": "cim:ACDCConverter.poleLossP", + "data_type": "ActivePower", + "data_type_prim": "Float" + }, + "uc": { + "label": "cim:ACDCConverter.uc", + "data_type": "Voltage", + "data_type_prim": "Float" + }, + "udc": { + "label": "cim:ACDCConverter.udc", + "data_type": "Voltage", + "data_type_prim": "Float" + }, + "SvStatus": { + "label": "cim:ConductingEquipment.SvStatus", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#SvStatus.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#SvStatus." + } + } + } + }, + "tp": { + "TopologicalNode": { + "rdf_type": " rdf:ID=\"", + "label": "cim:TopologicalNode", + "fields": { + "BaseVoltage": { + "label": "cim:TopologicalNode.BaseVoltage", + "data_type": " rdf:resource=\"#", + "data_type_prim": " rdf:resource=\"#" + }, + "ConnectivityNodes": { + "label": "cim:TopologicalNode.ConnectivityNodes", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#ConnectivityNode.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#ConnectivityNode." + }, + "ConnectivityNodeContainer": { + "label": "cim:TopologicalNode.ConnectivityNodeContainer", + "data_type": " rdf:resource=\"#", + "data_type_prim": " rdf:resource=\"#" + }, + "ReportingGroup": { + "label": "cim:TopologicalNode.ReportingGroup", + "data_type": " rdf:resource=\"#", + "data_type_prim": " rdf:resource=\"#" + }, + "Terminal": { + "label": "cim:TopologicalNode.Terminal", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Terminal.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Terminal." + }, + "description": { + "label": "cim:IdentifiedObject.description", + "data_type": "String", + "data_type_prim": "String" + }, + "energyIdentCodeEic": { + "label": "entsoe:IdentifiedObject.energyIdentCodeEic", + "data_type": "String", + "data_type_prim": "String" + }, + "mRID": { + "label": "cim:IdentifiedObject.mRID", + "data_type": "String", + "data_type_prim": "String" + }, + "name": { + "label": "cim:IdentifiedObject.name", + "data_type": "String", + "data_type_prim": "String" + }, + "shortName": { + "label": "entsoe:IdentifiedObject.shortName", + "data_type": "String", + "data_type_prim": "String" + } + } + }, + "DCTopologicalNode": { + "rdf_type": " rdf:ID=\"", + "label": "cim:DCTopologicalNode", + "fields": { + "DCTerminals": { + "label": "cim:DCTopologicalNode.DCTerminals", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#DCBaseTerminal.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#DCBaseTerminal." + }, + "DCEquipmentContainer": { + "label": "cim:DCTopologicalNode.DCEquipmentContainer", + "data_type": " rdf:resource=\"#", + "data_type_prim": " rdf:resource=\"#" + }, + "DCNodes": { + "label": "cim:DCTopologicalNode.DCNodes", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#DCNode.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#DCNode." + }, + "description": { + "label": "cim:IdentifiedObject.description", + "data_type": "String", + "data_type_prim": "String" + }, + "energyIdentCodeEic": { + "label": "entsoe:IdentifiedObject.energyIdentCodeEic", + "data_type": "String", + "data_type_prim": "String" + }, + "mRID": { + "label": "cim:IdentifiedObject.mRID", + "data_type": "String", + "data_type_prim": "String" + }, + "name": { + "label": "cim:IdentifiedObject.name", + "data_type": "String", + "data_type_prim": "String" + }, + "shortName": { + "label": "entsoe:IdentifiedObject.shortName", + "data_type": "String", + "data_type_prim": "String" + } + } + }, + "ConnectivityNode": { + "rdf_type": " rdf:about=\"#", + "label": "cim:ConnectivityNode", + "fields": { + "TopologicalNode": { + "label": "cim:ConnectivityNode.TopologicalNode", + "data_type": " rdf:resource=\"#", + "data_type_prim": " rdf:resource=\"#" + } + } + }, + "Terminal": { + "rdf_type": " rdf:about=\"#", + "label": "cim:Terminal", + "fields": { + "TopologicalNode": { + "label": "cim:Terminal.TopologicalNode", + "data_type": " rdf:resource=\"#", + "data_type_prim": " rdf:resource=\"#" + }, + "description": { + "label": "cim:IdentifiedObject.description", + "data_type": "String", + "data_type_prim": "String" + }, + "energyIdentCodeEic": { + "label": "entsoe:IdentifiedObject.energyIdentCodeEic", + "data_type": "String", + "data_type_prim": "String" + }, + "mRID": { + "label": "cim:IdentifiedObject.mRID", + "data_type": "String", + "data_type_prim": "String" + }, + "name": { + "label": "cim:IdentifiedObject.name", + "data_type": "String", + "data_type_prim": "String" + }, + "shortName": { + "label": "entsoe:IdentifiedObject.shortName", + "data_type": "String", + "data_type_prim": "String" + } + } + }, + "DCTerminal": { + "rdf_type": " rdf:about=\"#", + "label": "cim:DCTerminal", + "fields": { + "DCTopologicalNode": { + "label": "cim:DCBaseTerminal.DCTopologicalNode", + "data_type": " rdf:resource=\"#", + "data_type_prim": " rdf:resource=\"#" + }, + "description": { + "label": "cim:IdentifiedObject.description", + "data_type": "String", + "data_type_prim": "String" + }, + "energyIdentCodeEic": { + "label": "entsoe:IdentifiedObject.energyIdentCodeEic", + "data_type": "String", + "data_type_prim": "String" + }, + "mRID": { + "label": "cim:IdentifiedObject.mRID", + "data_type": "String", + "data_type_prim": "String" + }, + "name": { + "label": "cim:IdentifiedObject.name", + "data_type": "String", + "data_type_prim": "String" + }, + "shortName": { + "label": "entsoe:IdentifiedObject.shortName", + "data_type": "String", + "data_type_prim": "String" + } + } + }, + "ACDCConverterDCTerminal": { + "rdf_type": " rdf:about=\"#", + "label": "cim:ACDCConverterDCTerminal", + "fields": { + "DCTopologicalNode": { + "label": "cim:DCBaseTerminal.DCTopologicalNode", + "data_type": " rdf:resource=\"#", + "data_type_prim": " rdf:resource=\"#" + }, + "description": { + "label": "cim:IdentifiedObject.description", + "data_type": "String", + "data_type_prim": "String" + }, + "energyIdentCodeEic": { + "label": "entsoe:IdentifiedObject.energyIdentCodeEic", + "data_type": "String", + "data_type_prim": "String" + }, + "mRID": { + "label": "cim:IdentifiedObject.mRID", + "data_type": "String", + "data_type_prim": "String" + }, + "name": { + "label": "cim:IdentifiedObject.name", + "data_type": "String", + "data_type_prim": "String" + }, + "shortName": { + "label": "entsoe:IdentifiedObject.shortName", + "data_type": "String", + "data_type_prim": "String" + } + } + }, + "FullModel": { + "rdf_type": " rdf:ID=\"", + "label": "cim:FullModel", + "fields": {} + }, + "DCNode": { + "rdf_type": " rdf:about=\"#", + "label": "cim:DCNode", + "fields": { + "DCTopologicalNode": { + "label": "cim:DCNode.DCTopologicalNode", + "data_type": " rdf:resource=\"#", + "data_type_prim": " rdf:resource=\"#" + }, + "description": { + "label": "cim:IdentifiedObject.description", + "data_type": "String", + "data_type_prim": "String" + }, + "energyIdentCodeEic": { + "label": "entsoe:IdentifiedObject.energyIdentCodeEic", + "data_type": "String", + "data_type_prim": "String" + }, + "mRID": { + "label": "cim:IdentifiedObject.mRID", + "data_type": "String", + "data_type_prim": "String" + }, + "name": { + "label": "cim:IdentifiedObject.name", + "data_type": "String", + "data_type_prim": "String" + }, + "shortName": { + "label": "entsoe:IdentifiedObject.shortName", + "data_type": "String", + "data_type_prim": "String" + } + } + } + }, + "tp_bd": { + "TopologicalNode": { + "rdf_type": " rdf:ID=\"", + "label": "cim:TopologicalNode", + "fields": { + "BaseVoltage": { + "label": "cim:TopologicalNode.BaseVoltage", + "data_type": " rdf:resource=\"#", + "data_type_prim": " rdf:resource=\"#" + }, + "ConnectivityNodes": { + "label": "cim:TopologicalNode.ConnectivityNodes", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#ConnectivityNode.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#ConnectivityNode." + }, + "ConnectivityNodeContainer": { + "label": "cim:TopologicalNode.ConnectivityNodeContainer", + "data_type": " rdf:resource=\"#", + "data_type_prim": " rdf:resource=\"#" + }, + "boundaryPoint": { + "label": "entsoe:TopologicalNode.boundaryPoint", + "data_type": "Boolean", + "data_type_prim": "Boolean" + }, + "fromEndIsoCode": { + "label": "entsoe:TopologicalNode.fromEndIsoCode", + "data_type": "String", + "data_type_prim": "String" + }, + "fromEndName": { + "label": "entsoe:TopologicalNode.fromEndName", + "data_type": "String", + "data_type_prim": "String" + }, + "fromEndNameTso": { + "label": "entsoe:TopologicalNode.fromEndNameTso", + "data_type": "String", + "data_type_prim": "String" + }, + "toEndIsoCode": { + "label": "entsoe:TopologicalNode.toEndIsoCode", + "data_type": "String", + "data_type_prim": "String" + }, + "toEndName": { + "label": "entsoe:TopologicalNode.toEndName", + "data_type": "String", + "data_type_prim": "String" + }, + "toEndNameTso": { + "label": "entsoe:TopologicalNode.toEndNameTso", + "data_type": "String", + "data_type_prim": "String" + }, + "description": { + "label": "cim:IdentifiedObject.description", + "data_type": "String", + "data_type_prim": "String" + }, + "energyIdentCodeEic": { + "label": "entsoe:IdentifiedObject.energyIdentCodeEic", + "data_type": "String", + "data_type_prim": "String" + }, + "mRID": { + "label": "cim:IdentifiedObject.mRID", + "data_type": "String", + "data_type_prim": "String" + }, + "name": { + "label": "cim:IdentifiedObject.name", + "data_type": "String", + "data_type_prim": "String" + }, + "shortName": { + "label": "entsoe:IdentifiedObject.shortName", + "data_type": "String", + "data_type_prim": "String" + } + } + }, + "ConnectivityNode": { + "rdf_type": " rdf:about=\"#", + "label": "cim:ConnectivityNode", + "fields": { + "TopologicalNode": { + "label": "cim:ConnectivityNode.TopologicalNode", + "data_type": " rdf:resource=\"#", + "data_type_prim": " rdf:resource=\"#" + } + } + }, + "FullModel": { + "rdf_type": " rdf:ID=\"", + "label": "cim:FullModel", + "fields": {} + } + }, + "dl": { + "Diagram": { + "rdf_type": " rdf:ID=\"", + "label": "cim:Diagram", + "fields": { + "DiagramStyle": { + "label": "cim:Diagram.DiagramStyle", + "data_type": " rdf:resource=\"#", + "data_type_prim": " rdf:resource=\"#" + }, + "orientation": { + "label": "cim:Diagram.orientation", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#OrientationKind.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#OrientationKind." + }, + "x1InitialView": { + "label": "cim:Diagram.x1InitialView", + "data_type": "Simple_Float", + "data_type_prim": "Float" + }, + "x2InitialView": { + "label": "cim:Diagram.x2InitialView", + "data_type": "Simple_Float", + "data_type_prim": "Float" + }, + "y1InitialView": { + "label": "cim:Diagram.y1InitialView", + "data_type": "Simple_Float", + "data_type_prim": "Float" + }, + "y2InitialView": { + "label": "cim:Diagram.y2InitialView", + "data_type": "Simple_Float", + "data_type_prim": "Float" + }, + "DiagramElements": { + "label": "cim:Diagram.DiagramElements", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#DiagramObject.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#DiagramObject." + }, + "DiagramObjects": { + "label": "cim:IdentifiedObject.DiagramObjects", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#DiagramObject.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#DiagramObject." + }, + "mRID": { + "label": "cim:IdentifiedObject.mRID", + "data_type": "String", + "data_type_prim": "String" + }, + "name": { + "label": "cim:IdentifiedObject.name", + "data_type": "String", + "data_type_prim": "String" + } + } + }, + "DiagramObject": { + "rdf_type": " rdf:ID=\"", + "label": "cim:DiagramObject", + "fields": { + "Diagram": { + "label": "cim:DiagramObject.Diagram", + "data_type": " rdf:resource=\"#", + "data_type_prim": " rdf:resource=\"#" + }, + "drawingOrder": { + "label": "cim:DiagramObject.drawingOrder", + "data_type": "Integer", + "data_type_prim": "Integer" + }, + "isPolygon": { + "label": "cim:DiagramObject.isPolygon", + "data_type": "Boolean", + "data_type_prim": "Boolean" + }, + "offsetX": { + "label": "cim:DiagramObject.offsetX", + "data_type": "Simple_Float", + "data_type_prim": "Float" + }, + "offsetY": { + "label": "cim:DiagramObject.offsetY", + "data_type": "Simple_Float", + "data_type_prim": "Float" + }, + "rotation": { + "label": "cim:DiagramObject.rotation", + "data_type": "AngleDegrees", + "data_type_prim": "Float" + }, + "IdentifiedObject": { + "label": "cim:DiagramObject.IdentifiedObject", + "data_type": " rdf:resource=\"#", + "data_type_prim": " rdf:resource=\"#" + }, + "DiagramObjectPoints": { + "label": "cim:DiagramObject.DiagramObjectPoints", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#DiagramObjectPoint.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#DiagramObjectPoint." + }, + "VisibilityLayers": { + "label": "cim:DiagramObject.VisibilityLayers", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#VisibilityLayer.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#VisibilityLayer." + }, + "DiagramObjectStyle": { + "label": "cim:DiagramObject.DiagramObjectStyle", + "data_type": " rdf:resource=\"#", + "data_type_prim": " rdf:resource=\"#" + }, + "DiagramObjects": { + "label": "cim:IdentifiedObject.DiagramObjects", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#DiagramObject.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#DiagramObject." + }, + "mRID": { + "label": "cim:IdentifiedObject.mRID", + "data_type": "String", + "data_type_prim": "String" + }, + "name": { + "label": "cim:IdentifiedObject.name", + "data_type": "String", + "data_type_prim": "String" + } + } + }, + "DiagramObjectPoint": { + "rdf_type": " rdf:ID=\"", + "label": "cim:DiagramObjectPoint", + "fields": { + "DiagramObject": { + "label": "cim:DiagramObjectPoint.DiagramObject", + "data_type": " rdf:resource=\"#", + "data_type_prim": " rdf:resource=\"#" + }, + "DiagramObjectGluePoint": { + "label": "cim:DiagramObjectPoint.DiagramObjectGluePoint", + "data_type": " rdf:resource=\"#", + "data_type_prim": " rdf:resource=\"#" + }, + "sequenceNumber": { + "label": "cim:DiagramObjectPoint.sequenceNumber", + "data_type": "Integer", + "data_type_prim": "Integer" + }, + "xPosition": { + "label": "cim:DiagramObjectPoint.xPosition", + "data_type": "Simple_Float", + "data_type_prim": "Float" + }, + "yPosition": { + "label": "cim:DiagramObjectPoint.yPosition", + "data_type": "Simple_Float", + "data_type_prim": "Float" + }, + "zPosition": { + "label": "cim:DiagramObjectPoint.zPosition", + "data_type": "Simple_Float", + "data_type_prim": "Float" + } + } + } + }, + "gl": { + "CoordinateSystem": { + "rdf_type": " rdf:ID=\"", + "label": "cim:CoordinateSystem", + "fields": { + "crsUrn": { + "label": "cim:CoordinateSystem.crsUrn", + "data_type": "String", + "data_type_prim": "String" + }, + "Location": { + "label": "cim:CoordinateSystem.Location", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Location.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#Location." + }, + "mRID": { + "label": "cim:IdentifiedObject.mRID", + "data_type": "String", + "data_type_prim": "String" + }, + "name": { + "label": "cim:IdentifiedObject.name", + "data_type": "String", + "data_type_prim": "String" + } + } + }, + "Location": { + "rdf_type": " rdf:ID=\"", + "label": "cim:Location", + "fields": { + "CoordinateSystem": { + "label": "cim:Location.CoordinateSystem", + "data_type": " rdf:resource=\"#", + "data_type_prim": " rdf:resource=\"#" + }, + "PowerSystemResources": { + "label": "cim:Location.PowerSystemResources", + "data_type": " rdf:resource=\"#", + "data_type_prim": " rdf:resource=\"#" + }, + "PositionPoints": { + "label": "cim:Location.PositionPoints", + "data_type": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#PositionPoint.", + "data_type_prim": " rdf:resource=\"http://iec.ch/TC57/2013/CIM-schema-cim16#PositionPoint." + }, + "mRID": { + "label": "cim:IdentifiedObject.mRID", + "data_type": "String", + "data_type_prim": "String" + }, + "name": { + "label": "cim:IdentifiedObject.name", + "data_type": "String", + "data_type_prim": "String" + } + } + }, + "PositionPoint": { + "rdf_type": " rdf:ID=\"", + "label": "cim:PositionPoint", + "fields": { + "Location": { + "label": "cim:PositionPoint.Location", + "data_type": " rdf:resource=\"#", + "data_type_prim": " rdf:resource=\"#" + }, + "sequenceNumber": { + "label": "cim:PositionPoint.sequenceNumber", + "data_type": "Integer", + "data_type_prim": "Integer" + }, + "xPosition": { + "label": "cim:PositionPoint.xPosition", + "data_type": "String", + "data_type_prim": "String" + }, + "yPosition": { + "label": "cim:PositionPoint.yPosition", + "data_type": "String", + "data_type_prim": "String" + }, + "zPosition": { + "label": "cim:PositionPoint.zPosition", + "data_type": "String", + "data_type_prim": "String" + } + } + } + } +} \ No newline at end of file From e611f79c88857d455006bc9ec82c712f7d5ace46 Mon Sep 17 00:00:00 2001 From: mrichter Date: Tue, 21 Nov 2023 15:07:01 +0100 Subject: [PATCH 04/39] cim2pp: extracted getting default classes, added generic setting datatypes from CGMES XMI schema --- .../converter/cim/cim2pp/build_pp_net.py | 75 ++++++++++--------- .../cim/cim2pp/convert_measurements.py | 40 ---------- .../coordinates/coordinatesFromDLCim16.py | 3 + .../coordinates/geoCoordinatesFromGLCim16.py | 3 + pandapower/converter/cim/cim2pp/from_cim.py | 2 - 5 files changed, 46 insertions(+), 77 deletions(-) diff --git a/pandapower/converter/cim/cim2pp/build_pp_net.py b/pandapower/converter/cim/cim2pp/build_pp_net.py index f0e50de73..cd7b94536 100644 --- a/pandapower/converter/cim/cim2pp/build_pp_net.py +++ b/pandapower/converter/cim/cim2pp/build_pp_net.py @@ -92,34 +92,51 @@ def convert_to_pp(self, convert_line_to_switch: bool = False, line_r_limit: floa sort=False, ignore_index=True)[['rdfId', 'nominalVoltage']] # --------- convert busses --------- - self.classes_dict['connectivityNodesCim16'].ConnectivityNodesCim16(cimConverter=self).convert_connectivity_nodes_cim16() + self.classes_dict['connectivityNodesCim16'].ConnectivityNodesCim16( + cimConverter=self).convert_connectivity_nodes_cim16() # --------- convert external networks --------- - self.classes_dict['externalNetworkInjectionsCim16'].ExternalNetworkInjectionsCim16(cimConverter=self).convert_external_network_injections_cim16() + self.classes_dict['externalNetworkInjectionsCim16'].ExternalNetworkInjectionsCim16( + cimConverter=self).convert_external_network_injections_cim16() # --------- convert lines --------- - self.classes_dict['acLineSegmentsCim16'].AcLineSegmentsCim16(cimConverter=self).convert_ac_line_segments_cim16(convert_line_to_switch, line_r_limit, line_x_limit) - self.classes_dict['dcLineSegmentsCim16'].DcLineSegmentsCim16(cimConverter=self).convert_dc_line_segments_cim16() + self.classes_dict['acLineSegmentsCim16'].AcLineSegmentsCim16( + cimConverter=self).convert_ac_line_segments_cim16(convert_line_to_switch, line_r_limit, line_x_limit) + self.classes_dict['dcLineSegmentsCim16'].DcLineSegmentsCim16( + cimConverter=self).convert_dc_line_segments_cim16() # --------- convert switches --------- self.classes_dict['switchesCim16'].SwitchesCim16(cimConverter=self).convert_switches_cim16() # --------- convert loads --------- - self.classes_dict['energyConcumersCim16'].EnergyConsumersCim16(cimConverter=self).convert_energy_consumers_cim16() + self.classes_dict['energyConcumersCim16'].EnergyConsumersCim16( + cimConverter=self).convert_energy_consumers_cim16() self.classes_dict['conformLoadsCim16'].ConformLoadsCim16(cimConverter=self).convert_conform_loads_cim16() - self.classes_dict['nonConformLoadsCim16'].NonConformLoadsCim16(cimConverter=self).convert_non_conform_loads_cim16() - self.classes_dict['stationSuppliesCim16'].StationSuppliesCim16(cimConverter=self).convert_station_supplies_cim16() + self.classes_dict['nonConformLoadsCim16'].NonConformLoadsCim16( + cimConverter=self).convert_non_conform_loads_cim16() + self.classes_dict['stationSuppliesCim16'].StationSuppliesCim16( + cimConverter=self).convert_station_supplies_cim16() # --------- convert generators --------- - self.classes_dict['synchronousMachinesCim16'].SynchronousMachinesCim16(cimConverter=self).convert_synchronous_machines_cim16() - self.classes_dict['asynchronousMachinesCim16'].AsynchronousMachinesCim16(cimConverter=self).convert_asynchronous_machines_cim16() - self.classes_dict['energySourcesCim16'].EnergySourceCim16(cimConverter=self).convert_energy_sources_cim16() + self.classes_dict['synchronousMachinesCim16'].SynchronousMachinesCim16( + cimConverter=self).convert_synchronous_machines_cim16() + self.classes_dict['asynchronousMachinesCim16'].AsynchronousMachinesCim16( + cimConverter=self).convert_asynchronous_machines_cim16() + self.classes_dict['energySourcesCim16'].EnergySourceCim16( + cimConverter=self).convert_energy_sources_cim16() # --------- convert shunt elements --------- - self.classes_dict['linearShuntCompensatorCim16'].LinearShuntCompensatorCim16(cimConverter=self).convert_linear_shunt_compensator_cim16() - self.classes_dict['nonLinearShuntCompensatorCim16'].NonLinearShuntCompensatorCim16(cimConverter=self).convert_nonlinear_shunt_compensator_cim16() - self.classes_dict['staticVarCompensatorCim16'].StaticVarCompensatorCim16(cimConverter=self).convert_static_var_compensator_cim16() + self.classes_dict['linearShuntCompensatorCim16'].LinearShuntCompensatorCim16( + cimConverter=self).convert_linear_shunt_compensator_cim16() + self.classes_dict['nonLinearShuntCompensatorCim16'].NonLinearShuntCompensatorCim16( + cimConverter=self).convert_nonlinear_shunt_compensator_cim16() + self.classes_dict['staticVarCompensatorCim16'].StaticVarCompensatorCim16( + cimConverter=self).convert_static_var_compensator_cim16() # --------- convert impedance elements --------- - self.classes_dict['equivalentBranchesCim16'].EquivalentBranchesCim16(cimConverter=self).convert_equivalent_branches_cim16() - self.classes_dict['seriesCompensatorsCim16'].SeriesCompensatorsCim16(cimConverter=self).convert_series_compensators_cim16() + self.classes_dict['equivalentBranchesCim16'].EquivalentBranchesCim16( + cimConverter=self).convert_equivalent_branches_cim16() + self.classes_dict['seriesCompensatorsCim16'].SeriesCompensatorsCim16( + cimConverter=self).convert_series_compensators_cim16() # --------- convert extended ward and ward elements --------- - self.classes_dict['equivalentInjectionsCim16'].EquivalentInjectionsCim16(cimConverter=self).convert_equivalent_injections_cim16() + self.classes_dict['equivalentInjectionsCim16'].EquivalentInjectionsCim16( + cimConverter=self).convert_equivalent_injections_cim16() # --------- convert transformers --------- - self.classes_dict['powerTransformersCim16'].PowerTransformersCim16(cimConverter=self).convert_power_transformers_cim16() + self.classes_dict['powerTransformersCim16'].PowerTransformersCim16( + cimConverter=self).convert_power_transformers_cim16() # create the geo coordinates gl_or_dl = str(self.kwargs.get('use_GL_or_DL_profile', 'both')).lower() @@ -135,7 +152,8 @@ def convert_to_pp(self, convert_line_to_switch: bool = False, line_r_limit: floa if self.cim['gl']['Location'].index.size > 0 and self.cim['gl']['PositionPoint'].index.size > 0 and \ use_gl_profile: try: - self.classes_dict['geoCoordinatesFromGLCim16'].GeoCoordinatesFromGLCim16(cimConverter=self).add_geo_coordinates_from_gl_cim16() + self.classes_dict['geoCoordinatesFromGLCim16'].GeoCoordinatesFromGLCim16( + cimConverter=self).add_geo_coordinates_from_gl_cim16() except Exception as e: self.logger.warning("Creating the geo coordinates failed, returning the net without geo coordinates!") self.logger.exception(e) @@ -151,7 +169,8 @@ def convert_to_pp(self, convert_line_to_switch: bool = False, line_r_limit: floa self.cim['dl']['DiagramObjectPoint'].index.size > 0 and self.net.bus_geodata.index.size == 0 and \ use_dl_profile: try: - self.classes_dict['coordinatesFromDLCim16'].CoordinatesFromDLCim16(cimConverter=self).add_coordinates_from_dl_cim16(diagram_name=kwargs.get('diagram_name', None)) + self.classes_dict['coordinatesFromDLCim16'].CoordinatesFromDLCim16( + cimConverter=self).add_coordinates_from_dl_cim16(diagram_name=kwargs.get('diagram_name', None)) except Exception as e: self.logger.warning("Creating the coordinates failed, returning the net without coordinates!") self.logger.exception(e) @@ -165,7 +184,8 @@ def convert_to_pp(self, convert_line_to_switch: bool = False, line_r_limit: floa self.net = pp_tools.set_pp_col_types(net=self.net) # create transformer tap controller - self.classes_dict['tapController'].TapController(cimConverter=self).create_tap_controller_for_power_transformers() + self.classes_dict['tapController'].TapController( + cimConverter=self).create_tap_controller_for_power_transformers() self.logger.info("Running a power flow.") self.report_container.add_log(Report( @@ -211,21 +231,6 @@ def convert_to_pp(self, convert_line_to_switch: bool = False, line_r_limit: floa self.net.measurement = self.net.measurement[0:0] if not kwargs.get('ignore_errors', True): raise e - try: - # TODO: think on whether to remove whole function - if kwargs.get('update_assets_from_sv', False): - CreateMeasurements(self.net, self.cim).update_assets_from_sv() - except Exception as e: - self.logger.warning("Updating the assets failed!") - self.logger.exception(e) - self.report_container.add_log(Report( - level=LogLevel.ERROR, code=ReportCode.ERROR_CONVERTING, - message="Updating the assets failed!")) - self.report_container.add_log(Report( - level=LogLevel.EXCEPTION, code=ReportCode.EXCEPTION_CONVERTING, - message=traceback.format_exc())) - if not kwargs.get('ignore_errors', True): - raise e # a special fix for BB and NB mixed networks: # fuse boundary ConnectivityNodes with their TopologicalNodes bus_t = self.net.bus.reset_index(level=0, drop=False) diff --git a/pandapower/converter/cim/cim2pp/convert_measurements.py b/pandapower/converter/cim/cim2pp/convert_measurements.py index e58f36e56..ab0e242f0 100644 --- a/pandapower/converter/cim/cim2pp/convert_measurements.py +++ b/pandapower/converter/cim/cim2pp/convert_measurements.py @@ -34,46 +34,6 @@ def _copy_to_measurement(self, input_df: pd.DataFrame): if one_attr in input_df.columns: self.net[pp_type][one_attr][start_index_pp_net:] = input_df[one_attr][:] - def update_assets_from_sv(self): - self.logger.info("--------------------------- Updating assets from SV ---------------------------") - time_start = time.time() - sc = cim_tools.get_pp_net_special_columns_dict() - # get the measurements from the sv profile and set the Terminal as index - sv_powerflow = self.cim['sv']['SvPowerFlow'][['Terminal', 'p', 'q']] - - # update sgen - temp = self.net.sgen[[sc['o_id'], sc['t'], 'p_mw', 'q_mvar', 'sn_mva']] - temp = pd.merge(temp, sv_powerflow, how='left', left_on=sc['t'], right_on='Terminal') - # fix load sign - temp['p'] = -temp['p'] - temp['q'] = -temp['q'] - temp['p'].fillna(temp['p_mw'], inplace=True) - temp['q'].fillna(temp['q_mvar'], inplace=True) - temp['new_sn_mva'] = (temp['p'] ** 2 + temp['q'] ** 2) ** .5 - self.net.sgen.p_mw = temp['p'][:] - self.net.sgen.q_mvar = temp['q'][:] - self.net.sgen.sn_mva = temp[["new_sn_mva", "sn_mva"]].max(axis=1) - - # update load - temp = self.net.load[[sc['o_id'], sc['t'], 'p_mw', 'q_mvar']] - temp = pd.merge(temp, sv_powerflow, how='left', left_on=sc['t'], right_on='Terminal') - temp['p'].fillna(temp['p_mw'], inplace=True) - temp['q'].fillna(temp['q_mvar'], inplace=True) - self.net.load.p_mw = temp['p'][:] - self.net.load.q_mvar = temp['q'][:] - - # update ward - temp = self.net.ward[[sc['o_id'], sc['t'], 'ps_mw', 'qs_mvar', 'pz_mw', 'qz_mvar']] - temp = pd.merge(temp, sv_powerflow, how='left', left_on=sc['t'], right_on='Terminal') - temp['p'].fillna(temp['ps_mw'], inplace=True) - temp['q'].fillna(temp['qs_mvar'], inplace=True) - self.net.ward.ps_mw = temp['p'][:] - self.net.ward.qs_mvar = temp['q'][:] - self.net.ward.pz_mw = temp['p'][:] - self.net.ward.qz_mvar = temp['q'][:] - - self.logger.info("Needed time for updating the assets: %ss" % (time.time() - time_start)) - def create_measurements_from_analog(self): self.logger.info("------------------------- Creating measurements from Analog -------------------------") time_start = time.time() diff --git a/pandapower/converter/cim/cim2pp/converter_classes/coordinates/coordinatesFromDLCim16.py b/pandapower/converter/cim/cim2pp/converter_classes/coordinates/coordinatesFromDLCim16.py index 896099915..2ab8c926f 100644 --- a/pandapower/converter/cim/cim2pp/converter_classes/coordinates/coordinatesFromDLCim16.py +++ b/pandapower/converter/cim/cim2pp/converter_classes/coordinates/coordinatesFromDLCim16.py @@ -38,6 +38,9 @@ def add_coordinates_from_dl_cim16(self, diagram_name: str = None): dl_do.rename(columns={'rdfId': 'DiagramObject'}, inplace=True) dl_data = pd.merge(dl_do, self.cimConverter.cim['dl']['DiagramObjectPoint'], how='left', on='DiagramObject') dl_data.drop(columns=['rdfId', 'Diagram', 'DiagramObject'], inplace=True) + # make sure that the columns 'xPosition' and 'yPosition' are floats + dl_data['xPosition'] = dl_data['xPosition'].astype(float) + dl_data['yPosition'] = dl_data['yPosition'].astype(float) # the coordinates for the buses buses = self.cimConverter.net.bus.reset_index() buses = buses[['index', sc['o_id']]] diff --git a/pandapower/converter/cim/cim2pp/converter_classes/coordinates/geoCoordinatesFromGLCim16.py b/pandapower/converter/cim/cim2pp/converter_classes/coordinates/geoCoordinatesFromGLCim16.py index c903f11fa..e0360856c 100644 --- a/pandapower/converter/cim/cim2pp/converter_classes/coordinates/geoCoordinatesFromGLCim16.py +++ b/pandapower/converter/cim/cim2pp/converter_classes/coordinates/geoCoordinatesFromGLCim16.py @@ -26,6 +26,9 @@ def add_geo_coordinates_from_gl_cim16(self): self.cimConverter.cim['gl']['Location'][['rdfId', 'PowerSystemResources']], how='left', left_on='Location', right_on='rdfId') gl_data.drop(columns=['Location', 'rdfId'], inplace=True) + # make sure that the columns 'xPosition' and 'yPosition' are floats + gl_data['xPosition'] = gl_data['xPosition'].astype(float) + gl_data['yPosition'] = gl_data['yPosition'].astype(float) bus_geo = gl_data.rename(columns={'PowerSystemResources': 'Substation'}) cn = self.cimConverter.cim['eq']['ConnectivityNode'][['rdfId', 'ConnectivityNodeContainer']] cn = pd.concat([cn, self.cimConverter.cim['eq_bd']['ConnectivityNode'][['rdfId', 'ConnectivityNodeContainer']]]) diff --git a/pandapower/converter/cim/cim2pp/from_cim.py b/pandapower/converter/cim/cim2pp/from_cim.py index 36e6afd64..a582e4ff5 100644 --- a/pandapower/converter/cim/cim2pp/from_cim.py +++ b/pandapower/converter/cim/cim2pp/from_cim.py @@ -103,8 +103,6 @@ def from_cim(file_list: List[str] = None, encoding: str = 'utf-8', convert_line_ - create_measurements (str): Set this parameter to 'SV' to create measurements for the pandapower net from the SV profile. Set it to 'Analog' to create measurements from Analogs. If the parameter is not set or is set to None, no measurements will be created. - - update_assets_from_sv (bool): Set this parameter to True to update the assets (sgens, loads, wards, ...) with - values from the SV profile. Default: False. - use_GL_or_DL_profile (str): Choose the profile to use for converting coordinates. Set it to 'GL' to use the GL profile (Usually lat and long coordinates). Set it to 'DL' to use the DL profile (Usually x, y coordinates for displaying control room schema). Set it to 'both' to let the converter choose the profile. The converter will From 02b312ccc0955ef9c201bd47e38a08d4138ae12b Mon Sep 17 00:00:00 2001 From: dlohmeier Date: Thu, 7 Dec 2023 15:09:16 +0100 Subject: [PATCH 05/39] added option to hand over graph in calc_distance_to_bus --- pandapower/topology/graph_searches.py | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/pandapower/topology/graph_searches.py b/pandapower/topology/graph_searches.py index 832641f70..55e002f47 100644 --- a/pandapower/topology/graph_searches.py +++ b/pandapower/topology/graph_searches.py @@ -87,7 +87,7 @@ def connected_components(mg, notravbuses=set()): def calc_distance_to_bus(net, bus, respect_switches=True, nogobuses=None, - notravbuses=None, weight='weight'): + notravbuses=None, weight='weight', g=None): """ Calculates the shortest distance between a source bus and all buses connected to it. @@ -110,6 +110,8 @@ def calc_distance_to_bus(net, bus, respect_switches=True, nogobuses=None, **weight** (string, None) – Edge data key corresponding to the edge weight. + **g** (nx.MultiGraph, None) – MultiGraph of the network. If None, the graph will be created. + OUTPUT: **dist** - Returns a pandas series with containing all distances to the source bus in km. If weight=None dist is the topological distance (int). @@ -120,8 +122,9 @@ def calc_distance_to_bus(net, bus, respect_switches=True, nogobuses=None, dist = top.calc_distance_to_bus(net, 5) """ - g = create_nxgraph(net, respect_switches=respect_switches, nogobuses=nogobuses, - notravbuses=notravbuses) + if g is None: + g = create_nxgraph(net, respect_switches=respect_switches, nogobuses=nogobuses, + notravbuses=notravbuses) return pd.Series(nx.single_source_dijkstra_path_length(g, bus, weight=weight)) From 52b7ea6fa257a3a50c9061a58e0ea04bddefbd19 Mon Sep 17 00:00:00 2001 From: Roman Bolgaryn Date: Sat, 16 Dec 2023 14:10:14 +0100 Subject: [PATCH 06/39] add function to compute OTDF and evaluate outages using OTDF --- CHANGELOG.rst | 2 + pandapower/pypower/makeLODF.py | 115 +++++++++++++++++++++ pandapower/test/loadflow/test_PTDF_LODF.py | 66 +++++++++++- 3 files changed, 182 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.rst b/CHANGELOG.rst index 2ba11297f..b22224b5b 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -37,6 +37,8 @@ Change Log - [FIXED] :code:`convert_format.py`: update the attributes of the characteristic objects to match the new characteristic - [FIXED] additional arguments from mpc saved to net._options: create "_options" if it does not exist - [CHANGED] cim2pp: extracted getting default classes, added generic setting datatypes from CGMES XMI schema +- [ADDED] function :code:`getOTDF` to obtain Outage Transfer Distribution Factors, that can be used to analyse outages using the DC approximation of the power system +- [ADDED] function :code:`outage_results_OTDF` to obtain the matrix of results for all outage scenarios, with rows as outage scenarios and columns as branch power flows in that scenario [2.13.1] - 2023-05-12 diff --git a/pandapower/pypower/makeLODF.py b/pandapower/pypower/makeLODF.py index 65d960b9c..97b5fc93e 100644 --- a/pandapower/pypower/makeLODF.py +++ b/pandapower/pypower/makeLODF.py @@ -66,3 +66,118 @@ def makeLODF(branch, PTDF): update_LODF_diag(LODF) return LODF + + +def makeOTDF(PTDF, LODF, outage_branches): + """ + Compute the Outage Transfer Distribution Factors (OTDF) matrix. + + This function creates the OTDF matrix that relates bus power injections + to branch flows for specified outage scenarios. It's essential that + outage branches do not lead to isolated nodes or disconnected islands + in the grid. + + The grid cannot have isolated nodes or disconnected islands. Use the + pandapower.topology module to identify branches that, if outaged, would + lead to isolated nodes (determine_stubs) or islands (find_graph_characteristics). + + The resulting matrix has a width equal to the number of nodes and a length + equal to the number of outage branches multiplied by the total number of branches. + The dot product of OTDF and the bus power vector in generation reference frame + (positive for generation, negative for consumption - the opposite of res_bus.p_mw) + yields an array with outage branch power flows for every outage scenario, + facilitating the analysis of all outage scenarios under a DC + power flow approximation. + + Parameters + ---------- + PTDF : numpy.ndarray + The Power Transfer Distribution Factor matrix, defining the sensitivity + of branch flows to bus power injections. + LODF : numpy.ndarray + The Line Outage Distribution Factor matrix, describing how branch flows + are affected by outages of other branches. + outage_branches : list or numpy.ndarray + Indices of branches for which outage scenarios are to be considered. + + Returns + ------- + OTDF : numpy.ndarray + The Outage Transfer Distribution Factor matrix. Rows correspond to + outage scenarios, and columns correspond to branch flows. + + Examples + -------- + >>> H = makePTDF(baseMVA, bus, branch) + >>> LODF = makeLODF(branch, H) + >>> outage_branches = [0, 2] # Example branch indices for outage scenarios + >>> OTDF = makeOTDF(H, LODF, outage_branches) + >>> # To obtain a 2D array with the outage results: + >>> outage_results = (OTDF @ Pbus).reshape(len(outage_branches), -1) + + Notes + ----- + - The function assumes a DC power flow model. + - Ensure that the specified outage branches do not lead to grid + disconnection or isolated nodes. + """ + OTDF = np.vstack([PTDF + LODF[:, [i]] @ PTDF[[i], :] for i in outage_branches]) + return OTDF + + +def outage_results_OTDF(OTDF, Pbus, outage_branches): + """ + Calculate the branch power flows for each outage scenario based on the given + Outage Transfer Distribution Factors (OTDF), bus power injections (Pbus), and + specified outage branches. + + This function computes how branch flows are affected under N-1 contingency + scenarios (i.e., for each branch outage specified). It uses the OTDF matrix and + the bus power vector (Pbus) to determine the branch flows in each outage scenario. + + Pbus should represent the net power at each bus in the generation reference case. + + Parameters + ---------- + OTDF : numpy.ndarray + The Outage Transfer Distribution Factor matrix, which relates bus power + injections to branch flows under specific outage scenarios. Its shape + should be (num_outage_scenarios * num_branches, num_buses). + Pbus : numpy.ndarray + A vector representing the net power injections at each bus. Positive values + for generation, negative for consumption. Its length should be equal to + the total number of buses. + outage_branches : numpy.ndarray + An array of indices representing the branches that are outaged in each + scenario. Its length should be equal to the number of outage scenarios. + + Returns + ------- + numpy.ndarray + A 2D array where each row corresponds to an outage scenario and each column + represents the resulting power flow in a branch. The number of rows is equal + to the number of outage scenarios, and the number of columns is equal to the + number of branches. + + Examples + -------- + >>> OTDF = np.array([...]) # example OTDF matrix + >>> Pbus = np.array([...]) # example bus power vector + >>> outage_branches = np.array([...]) # example outage branches + >>> branch_flows = outage_results_OTDF(OTDF,Pbus,outage_branches) + + Notes + ----- + The function assumes a linear relationship between bus power injections and + branch flows, which is typical in DC power flow models. + """ + # get branch flows as an array first: + nminus1_otdf = (OTDF @ Pbus.reshape(-1, 1)) + # reshape to a 2D array with rows relating to outage scenarios and columns to + # the resulting branch power flows + nminus1_otdf = nminus1_otdf.reshape(outage_branches.shape[0], -1) + return nminus1_otdf + + + + diff --git a/pandapower/test/loadflow/test_PTDF_LODF.py b/pandapower/test/loadflow/test_PTDF_LODF.py index f0ac6e58f..7e42fa507 100644 --- a/pandapower/test/loadflow/test_PTDF_LODF.py +++ b/pandapower/test/loadflow/test_PTDF_LODF.py @@ -11,7 +11,7 @@ import pandapower.networks as nw from pandapower.pd2ppc import _pd2ppc from pandapower.pypower.makePTDF import makePTDF -from pandapower.pypower.makeLODF import makeLODF +from pandapower.pypower.makeLODF import makeLODF, makeOTDF, outage_results_OTDF from pandapower.test.loadflow.result_test_network_generator import result_test_network_generator_dcpp from pandapower.test.helper_functions import add_grid_connection, create_test_line, assert_net_equal @@ -67,5 +67,69 @@ def test_LODF(): raise AssertionError("LODF has wrong dimension") +def test_OTDF(): + net = nw.case9() + mg = pp.topology.create_nxgraph(net, respect_switches=True) + # roots = np.r_[net.ext_grid.bus.values, net.gen.bus.values] + # stubs = pp.topology.determine_stubs(net, roots=roots, mg=mg, respect_switches=True) # no lines are stubs here? + # stubs = pp.toolbox.get_connected_elements(net, "line", roots) # because not n-1 lines here are those + c = pp.topology.find_graph_characteristics(g=mg, roots=net.ext_grid.bus.values, characteristics=["bridges"]) + bridges = np.array([pp.topology.lines_on_path(mg, p) for p in c["bridges"]]).flatten() + # outage_lines = [i for i in net.line.index.values if i not in stubs and i not in bridges] + outage_lines = np.array([i for i in net.line.index.values if i not in bridges]) + pp.rundcpp(net) + _, ppci = _pd2ppc(net) + ptdf = makePTDF(ppci["baseMVA"], ppci["bus"], ppci["branch"]) + lodf = makeLODF(ppci["branch"], ptdf) + OTDF = makeOTDF(ptdf, lodf, outage_lines) + Pbus = -net.res_bus.p_mw.values # must be in generation reference frame + nminus1_otdf = (OTDF @ Pbus.reshape(-1, 1)).reshape(outage_lines.shape[0], -1) + + # Test selected outages + n_lines = len(net.line) + for outage, line in enumerate(outage_lines): + otdf_outage_result = (OTDF[outage * n_lines:outage * n_lines + n_lines, :] @ Pbus) + + # Run power flow for the outage scenario + net.line.at[line, "in_service"] = False + pp.rundcpp(net) + pf_outage_result = net.res_line.p_from_mw.values + net.line.at[line, "in_service"] = True + + # Compare the results + assert np.allclose(otdf_outage_result, pf_outage_result, rtol=0, atol=1e-12) + + +def test_OTDF_outage_results(): + net = nw.case9() + mg = pp.topology.create_nxgraph(net, respect_switches=True) + # roots = np.r_[net.ext_grid.bus.values, net.gen.bus.values] + # stubs = pp.topology.determine_stubs(net, roots=roots, mg=mg, respect_switches=True) # no lines are stubs here? + # stubs = pp.toolbox.get_connected_elements(net, "line", roots) # because not n-1 lines here are those + c = pp.topology.find_graph_characteristics(g=mg, roots=net.ext_grid.bus.values, characteristics=["bridges"]) + bridges = np.array([pp.topology.lines_on_path(mg, p) for p in c["bridges"]]).flatten() + # outage_lines = [i for i in net.line.index.values if i not in stubs and i not in bridges] + outage_lines = np.array([i for i in net.line.index.values if i not in bridges]) + pp.rundcpp(net) + _, ppci = _pd2ppc(net) + ptdf = makePTDF(ppci["baseMVA"], ppci["bus"], ppci["branch"]) + lodf = makeLODF(ppci["branch"], ptdf) + OTDF = makeOTDF(ptdf, lodf, outage_lines) + Pbus = -net.res_bus.p_mw.values # must be in generation reference frame + nminus1_otdf = outage_results_OTDF(OTDF, Pbus, outage_lines) + + # now obtain the outage results by performing power flow calculations: + nminus1_pf = [] + for i in outage_lines: + net.line.at[i, "in_service"] = False + pp.rundcpp(net) + nminus1_pf.append(net.res_line.p_from_mw.values.copy()) + net.line.at[i, "in_service"] = True + + nminus1_pf = np.vstack(nminus1_pf) + + assert np.allclose(nminus1_otdf, nminus1_pf, rtol=0, atol=1e-12) + + if __name__ == "__main__": pytest.main([__file__, "-xs"]) From 97457f5c6ae07a8009d5fd757784655d402fdc7d Mon Sep 17 00:00:00 2001 From: Steffen Meinecke Date: Wed, 20 Dec 2023 14:28:00 +0100 Subject: [PATCH 07/39] generalize code to avoid errors for central controlers (without element or element_index keys) --- pandapower/grid_equivalents/auxiliary.py | 22 ++++++++++++---------- pandapower/toolbox/grid_modification.py | 9 +++++---- 2 files changed, 17 insertions(+), 14 deletions(-) diff --git a/pandapower/grid_equivalents/auxiliary.py b/pandapower/grid_equivalents/auxiliary.py index 19bf66df6..4fc6cc936 100644 --- a/pandapower/grid_equivalents/auxiliary.py +++ b/pandapower/grid_equivalents/auxiliary.py @@ -362,16 +362,18 @@ def match_controller_and_new_elements(net, net_org): else: internal_buses = [] for idx in net.controller.index.tolist(): - elm = net.controller.object[idx].__dict__["element"] - var = net.controller.object[idx].__dict__["variable"] - elm_idxs = net.controller.object[idx].__dict__["element_index"] - org_elm_buses = list(net_org[elm].bus[elm_idxs].values) - - new_elm_idxs = net[elm].index[net[elm].bus.isin(org_elm_buses)].tolist() + et = net.controller.object[idx].__dict__.get("element") + # var = net.controller.object[idx].__dict__.get("variable") + elm_idxs = net.controller.object[idx].__dict__.get("element_index") + if et is None or elm_idxs is None: + continue + org_elm_buses = list(net_org[et].bus[elm_idxs].values) + + new_elm_idxs = net[et].index[net[et].bus.isin(org_elm_buses)].tolist() if len(new_elm_idxs) == 0: tobe_removed.append(idx) else: - profile_name = [org_elm_buses.index(a) for a in net[elm].bus[new_elm_idxs].values] + profile_name = [org_elm_buses.index(a) for a in net[et].bus[new_elm_idxs].values] net.controller.object[idx].__dict__["element_index"] = new_elm_idxs net.controller.object[idx].__dict__["matching_params"]["element_index"] = new_elm_idxs @@ -466,10 +468,10 @@ def _check_network(net): # --- check controller names if len(net.controller): for i in net.controller.index: - elm = net.controller.object[i].__dict__["element"] - if len(net[elm]) != len(set(net[elm].name.values)): + et = net.controller.object[i].__dict__.get("element") + if et is not None and len(net[et]) != len(set(net[et].name.values)): raise ValueError("if controllers are used, please give a name for every " - "element ("+elm+"), and make sure the name is unique.") + "element ("+et+"), and make sure the name is unique.") def get_boundary_vp(net_eq, bus_lookups): diff --git a/pandapower/toolbox/grid_modification.py b/pandapower/toolbox/grid_modification.py index 7c6f9846e..52eb52e9b 100644 --- a/pandapower/toolbox/grid_modification.py +++ b/pandapower/toolbox/grid_modification.py @@ -760,14 +760,15 @@ def drop_controllers_at_elements(net, element_type, idx=None): idx = ensure_iterability(idx) if idx is not None else net[element_type].index to_drop = [] for i in net.controller.index: - elm = net.controller.object[i].__dict__["element"] - elm_idx = ensure_iterability(net.controller.object[i].__dict__["element_index"]) - if element_type == elm: + et = net.controller.object[i].__dict__.get("element") + elm_idx = ensure_iterability(net.controller.object[i].__dict__.get("element_index", [0.1])) + if element_type == et: if set(elm_idx) - set(idx) == set(): to_drop.append(i) else: net.controller.object[i].__dict__["element_index"] = list(set(elm_idx) - set(idx)) - net.controller.object[i].__dict__["matching_params"]["element_index"] = list(set(elm_idx) - set(idx)) + net.controller.object[i].__dict__["matching_params"]["element_index"] = list( + set(elm_idx) - set(idx)) net.controller.drop(to_drop, inplace=True) From e103bfda0de04107d5e8621b30a522354e2c3c4c Mon Sep 17 00:00:00 2001 From: Roman Bolgaryn Date: Fri, 29 Dec 2023 10:55:25 +0100 Subject: [PATCH 08/39] add some safegueards for numerical issues in TDPF --- CHANGELOG.rst | 1 + pandapower/pf/create_jacobian_tdpf.py | 2 +- pandapower/pypower/newtonpf.py | 3 ++- 3 files changed, 4 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.rst b/CHANGELOG.rst index b22224b5b..bff6a3fe0 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -39,6 +39,7 @@ Change Log - [CHANGED] cim2pp: extracted getting default classes, added generic setting datatypes from CGMES XMI schema - [ADDED] function :code:`getOTDF` to obtain Outage Transfer Distribution Factors, that can be used to analyse outages using the DC approximation of the power system - [ADDED] function :code:`outage_results_OTDF` to obtain the matrix of results for all outage scenarios, with rows as outage scenarios and columns as branch power flows in that scenario +- [FIXED] add some safeguards for TDPF to avoid numerical issues in some cases [2.13.1] - 2023-05-12 diff --git a/pandapower/pf/create_jacobian_tdpf.py b/pandapower/pf/create_jacobian_tdpf.py index efae27ed6..b89eeb010 100644 --- a/pandapower/pf/create_jacobian_tdpf.py +++ b/pandapower/pf/create_jacobian_tdpf.py @@ -115,7 +115,7 @@ def calc_r_theta(t_air_pu, a0, a1, a2, i_square_pu, p_loss_pu): 2019, pp. 1-6, doi: 10.1109/EEEIC.2019.8783234. """ t_rise_pu = a0 + a1 * i_square_pu + a2 * np.square(i_square_pu) - t_air_pu - r_theta_pu = t_rise_pu / p_loss_pu + r_theta_pu = t_rise_pu / np.where(p_loss_pu == 0, 1e-6, p_loss_pu) return r_theta_pu diff --git a/pandapower/pypower/newtonpf.py b/pandapower/pypower/newtonpf.py index a0f836fbf..a2bddb8a2 100644 --- a/pandapower/pypower/newtonpf.py +++ b/pandapower/pypower/newtonpf.py @@ -298,7 +298,8 @@ def newtonpf(Ybus, Sbus, V0, ref, pv, pq, ppci, options, makeYbus=None): if tdpf: # update the R, g, b for the tdpf_lines, and the Y-matrices - branch[tdpf_lines, BR_R] = r = r_ref_pu * (1 + alpha_pu * (T - t_ref_pu)) + # here: limit the change of the R to reflect a realistic range of values for T to avoid numerical issues + branch[tdpf_lines, BR_R] = r = r_ref_pu * (1 + alpha_pu * np.clip(np.nan_to_num(T - t_ref_pu), -50, 250 / T_base)) # todo expansion with SSC and VSC (that are not controllable) Ybus, Yf, Yt = makeYbus(baseMVA, bus, branch) g, b = calc_g_b(r, x) From 1c6781f73eb7099113f66606e4d7ce8d7f36f02d Mon Sep 17 00:00:00 2001 From: Steffen Meinecke Date: Fri, 29 Dec 2023 14:57:31 +0100 Subject: [PATCH 09/39] time-dependent nonnumeric data (ConstControl) --- CHANGELOG.rst | 1 + .../control/controller/const_control.py | 26 ++++++++++------ pandapower/test/timeseries/test_timeseries.py | 31 +++++++++++++++++++ .../timeseries/data_sources/frame_data.py | 13 +++++--- 4 files changed, 57 insertions(+), 14 deletions(-) diff --git a/CHANGELOG.rst b/CHANGELOG.rst index b22224b5b..6ff71c77c 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -38,6 +38,7 @@ Change Log - [FIXED] additional arguments from mpc saved to net._options: create "_options" if it does not exist - [CHANGED] cim2pp: extracted getting default classes, added generic setting datatypes from CGMES XMI schema - [ADDED] function :code:`getOTDF` to obtain Outage Transfer Distribution Factors, that can be used to analyse outages using the DC approximation of the power system +- [CHANGED] DFData datasource behavior to enable timeseries calculation with time-dependent nonnumeric data (ConstControl) - [ADDED] function :code:`outage_results_OTDF` to obtain the matrix of results for all outage scenarios, with rows as outage scenarios and columns as branch power flows in that scenario diff --git a/pandapower/control/controller/const_control.py b/pandapower/control/controller/const_control.py index 780e2a533..140b1bad5 100644 --- a/pandapower/control/controller/const_control.py +++ b/pandapower/control/controller/const_control.py @@ -17,13 +17,15 @@ class ConstControl(Controller): """ Class representing a generic time series controller for a specified element and variable. - Control strategy: "No Control" -> updates values of specified elements according to timeseries input data. - If ConstControl is used without timeseries input data, it will reset the controlled values to the initial values, - preserving the initial net state. - The timeseries values are written to net during time_step before the initial powerflow run and before other controllers' control_step. - It is possible to set attributes of objects that are contained in a net table, e.g. attributes of other controllers. This can be helpful + Control strategy: "No Control" -> updates values of specified elements according to timeseries + input data. If ConstControl is used without timeseries input data, it will reset the controlled + values to the initial values, preserving the initial net state. + The timeseries values are written to net during time_step before the initial powerflow run and + before other controllers' control_step. It is possible to set attributes of objects that are + contained in a net table, e.g. attributes of other controllers. This can be helpful e.g. if a voltage setpoint of a transformer tap changer depends on the time step. - An attribute of an object in the "object" column of a table (e.g. net.controller["object"] -> net.controller.object.at[0, "vm_set_pu"] + An attribute of an object in the "object" column of a + table (e.g. net.controller["object"] -> net.controller.object.at[0, "vm_set_pu"] can be set if the attribute is specified as "object.attribute" (e.g. "object.vm_set_pu"). INPUT: @@ -81,7 +83,8 @@ def __init__(self, net, element, variable, element_index, profile_name=None, dat self.profile_name = profile_name self.scale_factor = scale_factor self.applied = False - self.write_flag, self.variable = _detect_read_write_flag(net, element, element_index, variable) + self.write_flag, self.variable = _detect_read_write_flag( + net, element, element_index, variable) self.set_recycle(net) def set_recycle(self, net): @@ -109,7 +112,8 @@ def time_step(self, net, time): """ Get the values of the element from data source Write to pandapower net by calling write_to_net() - If ConstControl is used without a data_source, it will reset the controlled values to the initial values, + If ConstControl is used without a data_source, it will reset the controlled values to the + initial values, preserving the initial net state. """ self.applied = False @@ -120,7 +124,8 @@ def time_step(self, net, time): profile_name=self.profile_name, scale_factor=self.scale_factor) if self.values is not None: - write_to_net(net, self.element, self.element_index, self.variable, self.values, self.write_flag) + write_to_net(net, self.element, self.element_index, self.variable, self.values, + self.write_flag) def is_converged(self, net): """ @@ -130,7 +135,8 @@ def is_converged(self, net): def control_step(self, net): """ - Set applied to True, which means that the values set in time_step have been included in the load flow calculation. + Set applied to True, which means that the values set in time_step have been included in the + load flow calculation. """ self.applied = True diff --git a/pandapower/test/timeseries/test_timeseries.py b/pandapower/test/timeseries/test_timeseries.py index d8b3a604e..356e42107 100644 --- a/pandapower/test/timeseries/test_timeseries.py +++ b/pandapower/test/timeseries/test_timeseries.py @@ -111,6 +111,37 @@ def test_const_control(simple_test_net): assert np.alltrue(profiles['slack_v'].values == ow.output['res_bus.vm_pu'][0].values) +def test_switch_states_in_time_series(): + net = pp.create_empty_network() + pp.create_buses(net, 3, 0.4) + pp.create_ext_grid(net, 0) + pp.create_loads(net, [1, 2], 0.1) + pp.create_lines(net, [0, 0], [1, 2], 0.1, "NAYY 4x50 SE") + pp.create_switch(net, 0, 0, "l") + + n_timesteps = 5 + time_steps = range(n_timesteps) + profiles = pd.DataFrame() + profiles['load1'] = np.linspace(0.05, 0.1, n_timesteps) + profiles["switch_pos"] = np.random.randint(2, size=n_timesteps, dtype=bool) + ds = DFData(profiles) + + ow = setup_output_writer(net, time_steps) + ow.log_variable('res_line', 'pl_mw') + ow.log_variable('res_ext_grid', 'p_mw') + + ConstControl(net, 'load', 'p_mw', element_index=0, data_source=ds, profile_name='load1') + ConstControl(net, 'switch', 'closed', element_index=0, data_source=ds, profile_name='switch_pos') + + run_timeseries(net, time_steps, verbose=False) + + assert np.allclose( + profiles['load1'].values * profiles["switch_pos"].values + 0.1 + \ + ow.output['res_line.pl_mw'].sum(axis=1).values, + ow.output['res_ext_grid.p_mw'][0].values + ) + + def test_const_control_write_to_object_attribute(simple_test_net): net = simple_test_net profiles, ds = create_data_source() diff --git a/pandapower/timeseries/data_sources/frame_data.py b/pandapower/timeseries/data_sources/frame_data.py index e15950764..e05db3f39 100644 --- a/pandapower/timeseries/data_sources/frame_data.py +++ b/pandapower/timeseries/data_sources/frame_data.py @@ -2,7 +2,8 @@ # Copyright (c) 2016-2023 by University of Kassel and Fraunhofer Institute for Energy Economics # and Energy System Technology (IEE), Kassel. All rights reserved. -from numpy import int64 +import numbers +import numpy as np from pandapower.timeseries.data_source import DataSource try: @@ -34,8 +35,8 @@ def __init__(self, df, multi=False): self.df = df if multi: # casting column and index to int for multi- columns accessing - self.df.index = self.df.index.astype(int64) - self.df.columns = self.df.columns.astype(int64) + self.df.index = self.df.index.astype(np.int64) + self.df.columns = self.df.columns.astype(np.int64) def __repr__(self): s = "%s with %d rows and %d columns" % ( @@ -49,7 +50,11 @@ def get_time_step_value(self, time_step, profile_name, scale_factor=1.0): res = self.df.loc[time_step, profile_name] if hasattr(res, 'values'): res = res.values - res = res*scale_factor + isnumber = np.issubdtype(res.dtype, np.number) + else: + isnumber = isinstance(res, numbers.Number) and not isinstance(res, bool) + if isnumber: + res = res * scale_factor return res def get_time_steps_len(self): From 8924d99e383e2c41163bf821ac9502b3321305b1 Mon Sep 17 00:00:00 2001 From: sdrauz Date: Tue, 9 Jan 2024 10:53:27 +0100 Subject: [PATCH 10/39] description-file is deprecated. Changing it to description_file. --- setup.cfg | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.cfg b/setup.cfg index 786886bfd..ca9c4b0c0 100644 --- a/setup.cfg +++ b/setup.cfg @@ -1,5 +1,5 @@ [metadata] -description-file = installation.rst +description_file = installation.rst license_file = LICENSE [tool:pytest] From 28bdec537b52e7fe4ca5946ed250bc5ac3113a5f Mon Sep 17 00:00:00 2001 From: Roman Bolgaryn Date: Wed, 10 Jan 2024 16:49:33 +0100 Subject: [PATCH 11/39] contingency: add option to raise errors if a contingency leads to an error instead of skipping it --- pandapower/contingency/contingency.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/pandapower/contingency/contingency.py b/pandapower/contingency/contingency.py index eeb185baf..8e1081a2f 100644 --- a/pandapower/contingency/contingency.py +++ b/pandapower/contingency/contingency.py @@ -72,6 +72,7 @@ def run_contingency(net, nminus1_cases, pf_options=None, pf_options_nminus1=None """ # set up the dict for results and relevant variables # ".get" in case the options have been set in pp.set_user_pf_options: + raise_errors = kwargs.get("raise_errors", False) if "recycle" in kwargs: kwargs["recycle"] = False # so that we can be sure it doesn't happen if pf_options is None: pf_options = net.user_pf_options.get("pf_options", net.user_pf_options) if pf_options_nminus1 is None: pf_options_nminus1 = net.user_pf_options.get("pf_options_nminus1", @@ -104,6 +105,8 @@ def run_contingency(net, nminus1_cases, pf_options=None, pf_options_nminus1=None cause_element=element, cause_index=i) except Exception as err: logger.error(f"{element} {i} causes {err}") + if raise_errors: + raise err finally: net[element].at[i, 'in_service'] = True From bbacfa6b73b289f54324f16ee8eac84f5922173b Mon Sep 17 00:00:00 2001 From: Roman Bolgaryn Date: Wed, 10 Jan 2024 16:53:14 +0100 Subject: [PATCH 12/39] changelog --- CHANGELOG.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.rst b/CHANGELOG.rst index f1f3785d6..a2153853d 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -41,7 +41,7 @@ Change Log - [ADDED] function :code:`getOTDF` to obtain Outage Transfer Distribution Factors, that can be used to analyse outages using the DC approximation of the power system - [ADDED] function :code:`outage_results_OTDF` to obtain the matrix of results for all outage scenarios, with rows as outage scenarios and columns as branch power flows in that scenario - [FIXED] add some safeguards for TDPF to avoid numerical issues in some cases - +- [ADDED] the function :code:`run_contingency` can raise a captured error if parameter :code:`raise_errors` is passed [2.13.1] - 2023-05-12 ------------------------------- From ea93e96c79cd716fea87851eece274ad8beff5c7 Mon Sep 17 00:00:00 2001 From: Steffen Meinecke Date: Wed, 10 Jan 2024 17:53:57 +0100 Subject: [PATCH 13/39] add grid_equivalent kwarg --- pandapower/grid_equivalents/get_equivalent.py | 4 ++++ pandapower/toolbox/grid_modification.py | 3 ++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/pandapower/grid_equivalents/get_equivalent.py b/pandapower/grid_equivalents/get_equivalent.py index 67faac8c6..099e7c9e3 100644 --- a/pandapower/grid_equivalents/get_equivalent.py +++ b/pandapower/grid_equivalents/get_equivalent.py @@ -259,6 +259,10 @@ def get_equivalent(net, eq_type, boundary_buses, internal_buses, if return_internal: logger.debug("Merging of internal and equivalent network begins.") + if len(kwargs.get("central_controller_types", [])): + net_internal.controller.drop([idx for idx in net_internal.controller.index if any([ + isinstance(net_internal.controller.object.at[idx], central_controller_type) for + central_controller_type in kwargs["central_controller_types"]])], inplace=True) net_eq = merge_internal_net_and_equivalent_external_net( net_eq, net_internal, show_computing_time=show_computing_time, calc_volt_angles=calculate_voltage_angles) diff --git a/pandapower/toolbox/grid_modification.py b/pandapower/toolbox/grid_modification.py index 52eb52e9b..0c5f0e3e8 100644 --- a/pandapower/toolbox/grid_modification.py +++ b/pandapower/toolbox/grid_modification.py @@ -62,7 +62,8 @@ def select_subnet(net, buses, include_switch_buses=False, include_results=False, buses_to_add.add(fb) buses |= buses_to_add - if keep_everything_else: + if keep_everything_else: # Info: keep_everything_else might help to keep controllers but + # does not help if a part of controllers should be kept p2 = copy.deepcopy(net) if not include_results: clear_result_tables(p2) From 8a9f98afb1d2a941cd8644ea32073ca1f16b1981 Mon Sep 17 00:00:00 2001 From: Roman Bolgaryn Date: Wed, 17 Jan 2024 20:44:17 +0100 Subject: [PATCH 14/39] add test for undefined trafo3w characteristics --- pandapower/test/loadflow/test_results.py | 38 ++++++++++++++++++++++++ 1 file changed, 38 insertions(+) diff --git a/pandapower/test/loadflow/test_results.py b/pandapower/test/loadflow/test_results.py index 14b5ed03a..b43a29f97 100644 --- a/pandapower/test/loadflow/test_results.py +++ b/pandapower/test/loadflow/test_results.py @@ -363,6 +363,44 @@ def test_undefined_tap_dependent_impedance_characteristics(): pp.runpp(net) +def test_undefined_tap_dependent_impedance_characteristics_trafo3w(): + # if some characteristic per 1 trafo are undefined, but at least 1 is defined -> OK + # if all characteristic per 1 trafo are undefined -> raise error + net = create_net() + add_trafo_connection(net, 1, "3W") + add_trafo_connection(net, 1, "3W") + + pp.control.create_trafo_characteristics(net, 'trafo3w', [0, 1], 'vk_hv_percent', [[-2, -1, 0, 1, 2], [-2, -1, 0, 1, 2]], [[0.7, 0.9, 1, 1.1, 1.3], [0.7, 0.9, 1, 1.1, 1.3]]) + pp.control.create_trafo_characteristics(net, 'trafo3w', [0, 1], 'vk_mv_percent', [[-2, -1, 0, 1, 2], [-2, -1, 0, 1, 2]], [[0.7, 0.9, 1, 1.1, 1.3], [0.7, 0.9, 1, 1.1, 1.3]]) + pp.control.create_trafo_characteristics(net, 'trafo3w', [0, 1], 'vk_lv_percent', [[-2, -1, 0, 1, 2], [-2, -1, 0, 1, 2]], [[0.7, 0.9, 1, 1.1, 1.3], [0.7, 0.9, 1, 1.1, 1.3]]) + pp.control.create_trafo_characteristics(net, 'trafo3w', [0, 1], 'vkr_hv_percent', [[-2, -1, 0, 1, 2], [-2, -1, 0, 1, 2]], [[0.3, 0.45, 0.5, 0.55, 0.7], [0.3, 0.45, 0.5, 0.55, 0.7]]) + pp.control.create_trafo_characteristics(net, 'trafo3w', [0, 1], 'vkr_mv_percent', [[-2, -1, 0, 1, 2], [-2, -1, 0, 1, 2]], [[0.3, 0.45, 0.5, 0.55, 0.7], [0.3, 0.45, 0.5, 0.55, 0.7]]) + pp.control.create_trafo_characteristics(net, 'trafo3w', [0, 1], 'vkr_lv_percent', [[-2, -1, 0, 1, 2], [-2, -1, 0, 1, 2]], [[0.3, 0.45, 0.5, 0.55, 0.7], [0.3, 0.45, 0.5, 0.55, 0.7]]) + + + # does not raise error + pp.runpp(net) + + # this will raise error + net.trafo3w.at[0, "vk_hv_percent_characteristic"] = None + pp.runpp(net) + net.trafo3w.at[0, "vk_mv_percent_characteristic"] = None + pp.runpp(net) + net.trafo3w.at[0, "vk_lv_percent_characteristic"] = None + pp.runpp(net) + + net.trafo3w.at[0, "vkr_hv_percent_characteristic"] = None + pp.runpp(net) + net.trafo3w.at[0, "vkr_mv_percent_characteristic"] = None + pp.runpp(net) + net.trafo3w.at[0, "vkr_lv_percent_characteristic"] = None + with pytest.raises(UserWarning): + pp.runpp(net) + + net.trafo3w.at[0, "tap_dependent_impedance"] = False + pp.runpp(net) + + def test_ext_grid(result_test_network, v_tol=1e-6, va_tol=1e-2, i_tol=1e-6, s_tol=5e-3, l_tol=1e-3): net = result_test_network runpp_with_consistency_checks(net, calculate_voltage_angles=True) From d964a70ea3c50f2a4b03bc4881a368573f5e5d25 Mon Sep 17 00:00:00 2001 From: Roman Bolgaryn Date: Thu, 18 Jan 2024 15:57:36 +0100 Subject: [PATCH 15/39] bugfix for undefined trafo3w characteristics --- CHANGELOG.rst | 1 + pandapower/build_branch.py | 3 ++- pandapower/test/loadflow/test_results.py | 17 ----------------- 3 files changed, 3 insertions(+), 18 deletions(-) diff --git a/CHANGELOG.rst b/CHANGELOG.rst index a2153853d..0c607d2b8 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -42,6 +42,7 @@ Change Log - [ADDED] function :code:`outage_results_OTDF` to obtain the matrix of results for all outage scenarios, with rows as outage scenarios and columns as branch power flows in that scenario - [FIXED] add some safeguards for TDPF to avoid numerical issues in some cases - [ADDED] the function :code:`run_contingency` can raise a captured error if parameter :code:`raise_errors` is passed +- [FIXED] bugfix for tap dependent impedance characteristics so that not all characteristics columns are necessary [2.13.1] - 2023-05-12 ------------------------------- diff --git a/pandapower/build_branch.py b/pandapower/build_branch.py index d194e71ad..8cac7cfa9 100644 --- a/pandapower/build_branch.py +++ b/pandapower/build_branch.py @@ -498,6 +498,7 @@ def _get_vk_values(trafo_df, characteristic, trafotype="2W"): # must cast to float64 unfortunately, because numpy.vstack casts arrays to object because it doesn't know pandas.NA, np.isnan fails all_characteristic_idx = np.vstack([get_trafo_values( trafo_df, f"{c}_characteristic").astype(np.float64) for c in char_columns]).T + index_column = {c: i for i, c in enumerate(char_columns)} # now we check if any trafos that have tap_dependent_impedance have all of the characteristics missing all_missing = np.isnan(all_characteristic_idx).all(axis=1) & tap_dependent_impedance if np.any(all_missing): @@ -512,7 +513,7 @@ def _get_vk_values(trafo_df, characteristic, trafotype="2W"): if use_tap_dependent_impedance and vk_var in char_columns: vals += (_calc_tap_dependent_value( trafo_df, tap_pos, vk_value, vk_var, tap_dependent_impedance, - characteristic, all_characteristic_idx[:, c]),) + characteristic, all_characteristic_idx[:, index_column[vk_var]]),) else: vals += (vk_value,) diff --git a/pandapower/test/loadflow/test_results.py b/pandapower/test/loadflow/test_results.py index b43a29f97..fc9f8b08b 100644 --- a/pandapower/test/loadflow/test_results.py +++ b/pandapower/test/loadflow/test_results.py @@ -370,30 +370,13 @@ def test_undefined_tap_dependent_impedance_characteristics_trafo3w(): add_trafo_connection(net, 1, "3W") add_trafo_connection(net, 1, "3W") - pp.control.create_trafo_characteristics(net, 'trafo3w', [0, 1], 'vk_hv_percent', [[-2, -1, 0, 1, 2], [-2, -1, 0, 1, 2]], [[0.7, 0.9, 1, 1.1, 1.3], [0.7, 0.9, 1, 1.1, 1.3]]) pp.control.create_trafo_characteristics(net, 'trafo3w', [0, 1], 'vk_mv_percent', [[-2, -1, 0, 1, 2], [-2, -1, 0, 1, 2]], [[0.7, 0.9, 1, 1.1, 1.3], [0.7, 0.9, 1, 1.1, 1.3]]) - pp.control.create_trafo_characteristics(net, 'trafo3w', [0, 1], 'vk_lv_percent', [[-2, -1, 0, 1, 2], [-2, -1, 0, 1, 2]], [[0.7, 0.9, 1, 1.1, 1.3], [0.7, 0.9, 1, 1.1, 1.3]]) - pp.control.create_trafo_characteristics(net, 'trafo3w', [0, 1], 'vkr_hv_percent', [[-2, -1, 0, 1, 2], [-2, -1, 0, 1, 2]], [[0.3, 0.45, 0.5, 0.55, 0.7], [0.3, 0.45, 0.5, 0.55, 0.7]]) pp.control.create_trafo_characteristics(net, 'trafo3w', [0, 1], 'vkr_mv_percent', [[-2, -1, 0, 1, 2], [-2, -1, 0, 1, 2]], [[0.3, 0.45, 0.5, 0.55, 0.7], [0.3, 0.45, 0.5, 0.55, 0.7]]) - pp.control.create_trafo_characteristics(net, 'trafo3w', [0, 1], 'vkr_lv_percent', [[-2, -1, 0, 1, 2], [-2, -1, 0, 1, 2]], [[0.3, 0.45, 0.5, 0.55, 0.7], [0.3, 0.45, 0.5, 0.55, 0.7]]) - - # does not raise error - pp.runpp(net) - - # this will raise error - net.trafo3w.at[0, "vk_hv_percent_characteristic"] = None pp.runpp(net) net.trafo3w.at[0, "vk_mv_percent_characteristic"] = None pp.runpp(net) - net.trafo3w.at[0, "vk_lv_percent_characteristic"] = None - pp.runpp(net) - - net.trafo3w.at[0, "vkr_hv_percent_characteristic"] = None - pp.runpp(net) net.trafo3w.at[0, "vkr_mv_percent_characteristic"] = None - pp.runpp(net) - net.trafo3w.at[0, "vkr_lv_percent_characteristic"] = None with pytest.raises(UserWarning): pp.runpp(net) From 3e33e3249a85165a2f3ea18d95db8513704affc6 Mon Sep 17 00:00:00 2001 From: Roman Bolgaryn Date: Thu, 18 Jan 2024 16:06:37 +0100 Subject: [PATCH 16/39] add results check by comparison to the controller --- pandapower/test/loadflow/test_results.py | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/pandapower/test/loadflow/test_results.py b/pandapower/test/loadflow/test_results.py index fc9f8b08b..1f5058ed0 100644 --- a/pandapower/test/loadflow/test_results.py +++ b/pandapower/test/loadflow/test_results.py @@ -369,19 +369,40 @@ def test_undefined_tap_dependent_impedance_characteristics_trafo3w(): net = create_net() add_trafo_connection(net, 1, "3W") add_trafo_connection(net, 1, "3W") + net2 = create_net() + add_trafo_connection(net2, 1, "3W") + add_trafo_connection(net2, 1, "3W") pp.control.create_trafo_characteristics(net, 'trafo3w', [0, 1], 'vk_mv_percent', [[-2, -1, 0, 1, 2], [-2, -1, 0, 1, 2]], [[0.7, 0.9, 1, 1.1, 1.3], [0.7, 0.9, 1, 1.1, 1.3]]) pp.control.create_trafo_characteristics(net, 'trafo3w', [0, 1], 'vkr_mv_percent', [[-2, -1, 0, 1, 2], [-2, -1, 0, 1, 2]], [[0.3, 0.45, 0.5, 0.55, 0.7], [0.3, 0.45, 0.5, 0.55, 0.7]]) + pp.control.Characteristic(net2, [-2, -1, 0, 1, 2], [0.7, 0.9, 1, 1.1, 1.3]) + pp.control.Characteristic(net2, [-2, -1, 0, 1, 2], [0.3, 0.45, 0.5, 0.55, 0.7]) + + pp.control.TapDependentImpedance(net2, [0], 0, trafotable="trafo3w", output_variable="vk_mv_percent") + pp.control.TapDependentImpedance(net2, [0], 1, trafotable="trafo3w", output_variable="vkr_mv_percent") + pp.control.TapDependentImpedance(net2, [1], 0, trafotable="trafo3w", output_variable="vk_mv_percent") + pp.control.TapDependentImpedance(net2, [1], 1, trafotable="trafo3w", output_variable="vkr_mv_percent") + pp.runpp(net) + pp.runpp(net2, run_control=True) + assert_res_equal(net, net2) + net.trafo3w.at[0, "vk_mv_percent_characteristic"] = None pp.runpp(net) + net2.controller.at[0, "in_service"] = False + pp.runpp(net2, run_control=True) + assert_res_equal(net, net2) + net.trafo3w.at[0, "vkr_mv_percent_characteristic"] = None + net2.controller.at[1, "in_service"] = False with pytest.raises(UserWarning): pp.runpp(net) net.trafo3w.at[0, "tap_dependent_impedance"] = False pp.runpp(net) + pp.runpp(net2, run_control=True) + assert_res_equal(net, net2) def test_ext_grid(result_test_network, v_tol=1e-6, va_tol=1e-2, i_tol=1e-6, s_tol=5e-3, l_tol=1e-3): From 6cd0dddb7b34dc7e135e254bba8a71f5c0df25a9 Mon Sep 17 00:00:00 2001 From: Steffen Meinecke Date: Thu, 18 Jan 2024 16:18:56 +0100 Subject: [PATCH 17/39] avoid attaching elements as duplicates to a group where some of the elements already exist --- CHANGELOG.rst | 1 + pandapower/groups.py | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.rst b/CHANGELOG.rst index a2153853d..0f239fd3b 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -41,6 +41,7 @@ Change Log - [ADDED] function :code:`getOTDF` to obtain Outage Transfer Distribution Factors, that can be used to analyse outages using the DC approximation of the power system - [ADDED] function :code:`outage_results_OTDF` to obtain the matrix of results for all outage scenarios, with rows as outage scenarios and columns as branch power flows in that scenario - [FIXED] add some safeguards for TDPF to avoid numerical issues in some cases +- [FIXED] avoid attaching elements as duplicates to a group where some of the elements already exist - [ADDED] the function :code:`run_contingency` can raise a captured error if parameter :code:`raise_errors` is passed [2.13.1] - 2023-05-12 diff --git a/pandapower/groups.py b/pandapower/groups.py index 3b9a6b07f..20f636ba2 100644 --- a/pandapower/groups.py +++ b/pandapower/groups.py @@ -169,7 +169,8 @@ def attach_to_group(net, index, element_types, elements, reference_columns=None, prev_elm = net.group.element.loc[group_et].at[index] prev_elm = [prev_elm] if isinstance(prev_elm, str) or not hasattr( prev_elm, "__iter__") else list(prev_elm) - net.group.element.loc[group_et] = [prev_elm + elm] + net.group.element.loc[group_et] = [prev_elm + list(pd.Index(elm).difference( + pd.Index(prev_elm)))] # --- prepare adding new rows to net.group (because no other elements of element type et # --- already belong to the group) From 092ad57e69b06e664b1732899a865007a420e63c Mon Sep 17 00:00:00 2001 From: Roman Bolgaryn Date: Wed, 24 Jan 2024 14:05:47 +0100 Subject: [PATCH 18/39] Update run.py --- pandapower/run.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pandapower/run.py b/pandapower/run.py index a3f794ee1..fe6d84cbc 100644 --- a/pandapower/run.py +++ b/pandapower/run.py @@ -91,7 +91,7 @@ def runpp(net, algorithm='nr', calculate_voltage_angles=True, init="auto", - "fdbx" fast-decoupled (pypower implementation) - "fdxb" fast-decoupled (pypower implementation) - **calculate_voltage_angles** (str or bool, "auto") - consider voltage angles in loadflow calculation + **calculate_voltage_angles** (str or bool, True) - consider voltage angles in loadflow calculation If True, voltage angles of ext_grids and transformer shifts are considered in the loadflow calculation. Considering the voltage angles is only necessary in meshed From 199dcaef9444d9761e91001c18514f761de33c2f Mon Sep 17 00:00:00 2001 From: Steffen Meinecke Date: Fri, 26 Jan 2024 00:15:53 +0100 Subject: [PATCH 19/39] toolbox and auxiliary functions --- CHANGELOG.rst | 1 + pandapower/auxiliary.py | 23 ++++++++ .../test/toolbox/test_element_selection.py | 13 +++- pandapower/toolbox/element_selection.py | 59 ++++++++++++++++--- pandapower/topology/graph_searches.py | 3 +- 5 files changed, 90 insertions(+), 9 deletions(-) diff --git a/CHANGELOG.rst b/CHANGELOG.rst index cb8e665a5..d2014b861 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -45,6 +45,7 @@ Change Log - [FIXED] avoid attaching elements as duplicates to a group where some of the elements already exist - [ADDED] the function :code:`run_contingency` can raise a captured error if parameter :code:`raise_errors` is passed - [FIXED] bugfix for tap dependent impedance characteristics so that not all characteristics columns are necessary +- [ADDED] auxiliary functions ets_to_element_types() and element_types_to_ets() as well as toolbox function get_connected_buses_at_switches() and extension to get_connected_switches() [2.13.1] - 2023-05-12 ------------------------------- diff --git a/pandapower/auxiliary.py b/pandapower/auxiliary.py index d3f1347aa..3ebf1bd55 100644 --- a/pandapower/auxiliary.py +++ b/pandapower/auxiliary.py @@ -322,6 +322,29 @@ def plural_s(number): else: return "" + +def ets_to_element_types(ets=None): + ser = pd.Series(["bus", "line", "trafo", "trafo3w", "impedance"], + index=["b", "l", "t", "t3", "i"]) + if ets is None: + return ser + elif isinstance(ets, str): + return ser.at[ets] + else: + return list(ser.loc[ets]) + + +def element_types_to_ets(element_types=None): + ser1 = ets_to_element_types() + ser2 = pd.Series(ser1.index, index=list(ser1)) + if element_types is None: + return ser2 + elif isinstance(ets, str): + return ser2.at[element_types] + else: + return list(ser2.loc[element_types]) + + def _preserve_dtypes(df, dtypes): for item, dtype in list(dtypes.items()): if df.dtypes.at[item] != dtype: diff --git a/pandapower/test/toolbox/test_element_selection.py b/pandapower/test/toolbox/test_element_selection.py index a355c056d..c3c94b645 100644 --- a/pandapower/test/toolbox/test_element_selection.py +++ b/pandapower/test/toolbox/test_element_selection.py @@ -123,6 +123,16 @@ def test_get_connected_buses(): assert list(pp.get_connected_buses(net, [bus4])) == [] +def test_get_connected_buses_at_switches(): + net = pp.networks.example_multivoltage() + switches = [net.switch.index[net.switch.et == et][0] for et in "blt"] + expected = set(net.switch.loc[switches[0], ["bus", "element"]]) + expected |= set(net.switch.loc[switches, "bus"]) + expected |= set(net.line.loc[net.switch.at[switches[1], "element"], ["from_bus", "to_bus"]]) + expected |= set(net.trafo.loc[net.switch.at[switches[1], "element"], ["hv_bus", "lv_bus"]]) + assert not bool(len(expected - pp.toolbox.get_connected_buses_at_switches(net, switches))) + + def test_get_false_links(): net = pp.create_empty_network() pp.create_buses(net, 6, 10, index=[0, 1, 3, 4, 6, 7]) @@ -220,4 +230,5 @@ def test_count_elements(): if __name__ == '__main__': - pytest.main([__file__, "-x"]) \ No newline at end of file + # pytest.main([__file__, "-x"]) + test_get_connected_buses_at_switches() \ No newline at end of file diff --git a/pandapower/toolbox/element_selection.py b/pandapower/toolbox/element_selection.py index 4a51f9f7d..41b0341e1 100644 --- a/pandapower/toolbox/element_selection.py +++ b/pandapower/toolbox/element_selection.py @@ -10,7 +10,7 @@ import pandas as pd from packaging.version import Version -import pandapower as pp +from pandapower.auxiliary import ets_to_element_types from pandapower import __version__ @@ -140,7 +140,7 @@ def next_bus(net, bus, element_id, et='line', **kwargs): def get_connected_elements(net, element_type, buses, respect_switches=True, respect_in_service=False): """ - Returns elements connected to a given bus. + Returns elements connected to a given buses. INPUT: **net** (pandapowerNet) @@ -343,7 +343,7 @@ def get_connected_buses(net, buses, consider=("l", "s", "t", "t3", "i"), respect def get_connected_buses_at_element(net, element_index, element_type, respect_in_service=False): """ - Returns buses connected to a given line, switch or trafo. In case of a bus switch, two buses + Returns buses connected to a given branch element. In case of a bus switch, two buses will be returned, else one. INPUT: @@ -400,7 +400,37 @@ def get_connected_buses_at_element(net, element_index, element_type, respect_in_ return cb -def get_connected_switches(net, buses, consider=('b', 'l', 't', 't3'), status="all"): +def get_connected_buses_at_switches(net, switches): + """ + Returns a set of buses connected to given switches. + + INPUT: + **net** (pandapowerNet) + + **switches** (single integer or iterable of ints) + + OUTPUT: + **buses** (set) - Returns connected buses + """ + if not hasattr(switches, "__iter__"): + switches = [switches] + switches = np.array(switches) + buses = set(net.switch.bus.loc[switches]) + bebd = branch_element_bus_dict() + for element_type, et in zip(["bus", "line", "trafo", "trafo3w"], ["b", "l", "t", "t3"]): + is_et = (net.switch.et.loc[switches] == et).values + if not any(is_et): + continue + elif et == "b": + buses |= set(net.switch.element.loc[switches[is_et]]) + continue + for bus_col in bebd[element_type]: + buses |= set(net[element_type].loc[net.switch.element.loc[switches[is_et]], bus_col]) + return buses + + +def get_connected_switches(net, buses, consider=('b', 'l', 't', 't3', 'i'), status="all", + include_element_connections=False): """ Returns switches connected to given buses. @@ -410,15 +440,20 @@ def get_connected_switches(net, buses, consider=('b', 'l', 't', 't3'), status="a **buses** (single integer or iterable of ints) OPTIONAL: - **consider** (iterable, ("l", "s", "t", "t3)) - Determines, which types of connections + **consider** (iterable, ("l", "s", "t", "t3)) - Determines, which types of connections will be considered. l: lines b: bus-bus-switches t: transformers t3: 3W transformers + i: impedance - **status** (string, ("all", "closed", "open")) - Determines, which switches will + **status** (string, ("all", "closed", "open")) - Determines, which switches will be considered + + **include_element_connections** (bool, False) - If True, also the other bus of the connected + element, e.g. the other line ending, is included + OUTPUT: **cl** (set) - Returns connected switches. """ @@ -436,6 +471,9 @@ def get_connected_switches(net, buses, consider=('b', 'l', 't', 't3'), status="a logger.warning("Unknown switch status \"%s\" selected! " "Selecting all switches by default." % status) + if include_element_connections: + bebd = branch_element_bus_dict() + cs = set() for et in consider: if et == 'b': @@ -446,7 +484,14 @@ def get_connected_switches(net, buses, consider=('b', 'l', 't', 't3'), status="a else: cs |= set(net['switch'].index[(net['switch']['bus'].isin(buses)) & (net['switch']['et'] == et) & switch_selection]) - + if include_element_connections: + element_type = ets_to_element_types(et) + sw_idx = net.switch.index[(net.switch.et == et) & switch_selection] + element_buses = net[element_type].loc[list(net.switch.element.loc[sw_idx]), + bebd[element_type]] + isin_df = pd.concat([element_buses[col].isin(buses) for col in element_buses], + axis=1) + cs |= set(sw_idx[isin_df.any(axis=1)]) return cs diff --git a/pandapower/topology/graph_searches.py b/pandapower/topology/graph_searches.py index 55e002f47..d3adeffab 100644 --- a/pandapower/topology/graph_searches.py +++ b/pandapower/topology/graph_searches.py @@ -130,7 +130,8 @@ def calc_distance_to_bus(net, bus, respect_switches=True, nogobuses=None, def unsupplied_buses(net, mg=None, slacks=None, respect_switches=True): """ - Finds buses, that are not connected to an external grid. + Finds buses, that are not connected electrically (no lines, trafos etc or if respect_switches + is True only connected via open switches) to an external grid and that are in service. INPUT: **net** (pandapowerNet) - variable that contains a pandapower network From 30d6205726bdc4bf5cd8c172e89b861b2fd1ec19 Mon Sep 17 00:00:00 2001 From: Roman Bolgaryn Date: Mon, 5 Feb 2024 11:09:11 +0100 Subject: [PATCH 20/39] allow import from PowerFactory with VSC as slack (#2216) --- CHANGELOG.rst | 1 + pandapower/toolbox/grid_modification.py | 9 +++++---- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.rst b/CHANGELOG.rst index cb8e665a5..11e647991 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -45,6 +45,7 @@ Change Log - [FIXED] avoid attaching elements as duplicates to a group where some of the elements already exist - [ADDED] the function :code:`run_contingency` can raise a captured error if parameter :code:`raise_errors` is passed - [FIXED] bugfix for tap dependent impedance characteristics so that not all characteristics columns are necessary +- [FIXED] in function :code:`toolbox.replace_zero_branches_with_switches`, use absolute for the parameters of impedance elements in case they are negative nonzero values [2.13.1] - 2023-05-12 ------------------------------- diff --git a/pandapower/toolbox/grid_modification.py b/pandapower/toolbox/grid_modification.py index 0c5f0e3e8..a03262d19 100644 --- a/pandapower/toolbox/grid_modification.py +++ b/pandapower/toolbox/grid_modification.py @@ -977,10 +977,11 @@ def replace_zero_branches_with_switches(net, elements=('line', 'impedance'), zer ].index.tolist()) if elm == 'impedance' and zero_impedance: - branch_zero.update(net[elm].loc[(net[elm].rft_pu <= min_rft_pu) & - (net[elm].xft_pu <= min_xft_pu) & - (net[elm].rtf_pu <= min_rtf_pu) & - (net[elm].xtf_pu <= min_xtf_pu)].index.tolist()) + # using np.abs() here because the impedance parameters can have negative values e.g. after grid reduction: + branch_zero.update(net[elm].loc[(np.abs(net[elm].rft_pu) <= min_rft_pu) & + (np.abs(net[elm].xft_pu) <= min_xft_pu) & + (np.abs(net[elm].rtf_pu) <= min_rtf_pu) & + (np.abs(net[elm].xtf_pu) <= min_xtf_pu)].index.tolist()) affected_elements = set() for b in branch_zero: From eb69c38afe18f3452fde00bee82092a2b92f67c8 Mon Sep 17 00:00:00 2001 From: Jannis Kupka Date: Tue, 6 Feb 2024 23:34:57 +0100 Subject: [PATCH 21/39] fix key error in unbalanced powerflow if trafo index is not consecutive or not starting at zero --- pandapower/results_branch.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pandapower/results_branch.py b/pandapower/results_branch.py index a3d302d8c..8f01ec5c7 100644 --- a/pandapower/results_branch.py +++ b/pandapower/results_branch.py @@ -341,7 +341,7 @@ def _get_trafo_results_3ph(net, ppc0, ppc1, ppc2, I012_f, V012_f, I012_t, V012_t if len(gap_trafo_index > 0): for i_trafo in gap_trafo_index: Iabc_sum = [0, 0, 0] - lv_bus = net.trafo.lv_bus[i_trafo] + lv_bus = net.trafo.lv_bus.iat[i_trafo] V_bus_abc = np.array([[net.res_bus_3ph['vm_a_pu'][lv_bus] * net.bus['vn_kv'][lv_bus]], [net.res_bus_3ph['vm_b_pu'][lv_bus] * net.bus['vn_kv'][lv_bus]], [net.res_bus_3ph['vm_c_pu'][lv_bus] * net.bus['vn_kv'][lv_bus]]]) From 184891f0df47d580cac130fd53d226692e173a92 Mon Sep 17 00:00:00 2001 From: Steffen Meinecke Date: Mon, 12 Feb 2024 18:46:29 +0100 Subject: [PATCH 22/39] add kwargs passing of get_equivalent() to runpp_fct() --- CHANGELOG.rst | 1 + pandapower/grid_equivalents/auxiliary.py | 11 ++++++----- pandapower/grid_equivalents/get_equivalent.py | 5 +++-- pandapower/grid_equivalents/rei_generation.py | 16 ++++++++-------- pandapower/grid_equivalents/ward_generation.py | 18 +++++++++--------- 5 files changed, 27 insertions(+), 24 deletions(-) diff --git a/CHANGELOG.rst b/CHANGELOG.rst index d2014b861..ba8daea28 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -45,6 +45,7 @@ Change Log - [FIXED] avoid attaching elements as duplicates to a group where some of the elements already exist - [ADDED] the function :code:`run_contingency` can raise a captured error if parameter :code:`raise_errors` is passed - [FIXED] bugfix for tap dependent impedance characteristics so that not all characteristics columns are necessary +- [ADDED] add kwargs passing of get_equivalent() to runpp_fct() - [ADDED] auxiliary functions ets_to_element_types() and element_types_to_ets() as well as toolbox function get_connected_buses_at_switches() and extension to get_connected_switches() [2.13.1] - 2023-05-12 diff --git a/pandapower/grid_equivalents/auxiliary.py b/pandapower/grid_equivalents/auxiliary.py index 4fc6cc936..13e77c458 100644 --- a/pandapower/grid_equivalents/auxiliary.py +++ b/pandapower/grid_equivalents/auxiliary.py @@ -40,7 +40,8 @@ def _runpp_except_voltage_angles(net, **kwargs): def add_ext_grids_to_boundaries(net, boundary_buses, adapt_va_degree=False, runpp_fct=_runpp_except_voltage_angles, - calc_volt_angles=True, allow_net_change_for_convergence=False): + calc_volt_angles=True, allow_net_change_for_convergence=False, + **kwargs): """ adds ext_grids for the given network. If the bus results are available, ext_grids are created according to the given bus results; @@ -77,7 +78,7 @@ def add_ext_grids_to_boundaries(net, boundary_buses, adapt_va_degree=False, net.gen.slack = False try: runpp_fct(net, calculate_voltage_angles=calc_volt_angles, - max_iteration=100) + max_iteration=100, **kwargs) except pp.LoadflowNotConverged as e: if allow_net_change_for_convergence: @@ -89,7 +90,7 @@ def add_ext_grids_to_boundaries(net, boundary_buses, adapt_va_degree=False, for no, idx in enumerate(imp_neg): net.impedance.loc[idx, ["rft_pu", "rtf_pu", "xft_pu", "xtf_pu"]] *= -1 try: - runpp_fct(net, calculate_voltage_angles=True, max_iteration=100) + runpp_fct(net, calculate_voltage_angles=True, max_iteration=100, **kwargs) logger.warning("The sign of these impedances were changed to enable a power" f" flow: {imp_neg[:no]}") break @@ -109,7 +110,7 @@ def add_ext_grids_to_boundaries(net, boundary_buses, adapt_va_degree=False, if changes: try: runpp_fct(net, calculate_voltage_angles=calc_volt_angles, - max_iteration=100) + max_iteration=100, **kwargs) logger.warning("Reactances of these impedances has been increased to " f"enable a power flow: {is2small}") except pp.LoadflowNotConverged as e: @@ -132,7 +133,7 @@ def add_ext_grids_to_boundaries(net, boundary_buses, adapt_va_degree=False, va_ave = va.sum() / va.shape[0] net.ext_grid.va_degree.loc[add_eg] -= va_ave runpp_fct(net, calculate_voltage_angles=calc_volt_angles, - max_iteration=100) + max_iteration=100, **kwargs) return orig_slack_gens diff --git a/pandapower/grid_equivalents/get_equivalent.py b/pandapower/grid_equivalents/get_equivalent.py index 099e7c9e3..f60419483 100644 --- a/pandapower/grid_equivalents/get_equivalent.py +++ b/pandapower/grid_equivalents/get_equivalent.py @@ -154,7 +154,8 @@ def get_equivalent(net, eq_type, boundary_buses, internal_buses, # --- create reference buses orig_slack_gens = add_ext_grids_to_boundaries( net, boundary_buses, adapt_va_degree, calc_volt_angles=calculate_voltage_angles, - allow_net_change_for_convergence=allow_net_change_for_convergence, runpp_fct=runpp_fct) + allow_net_change_for_convergence=allow_net_change_for_convergence, runpp_fct=runpp_fct, + **kwargs) # --- replace ward and xward elements by internal elements (load, shunt, impedance, gen) ext_buses_with_ward = net.ward.bus[net.ward.bus.isin(all_external_buses)] @@ -169,7 +170,7 @@ def get_equivalent(net, eq_type, boundary_buses, internal_buses, # --- switch from ward injection to ward addmittance if requested if eq_type in ["ward", "xward"] and ward_type == "ward_admittance": create_passive_external_net_for_ward_admittance( - net, all_external_buses, boundary_buses, runpp_fct=runpp_fct) + net, all_external_buses, boundary_buses, runpp_fct=runpp_fct, **kwargs) # --- rei calculations if eq_type == "rei": diff --git a/pandapower/grid_equivalents/rei_generation.py b/pandapower/grid_equivalents/rei_generation.py index 53ccc1fd4..95ebfcf2b 100644 --- a/pandapower/grid_equivalents/rei_generation.py +++ b/pandapower/grid_equivalents/rei_generation.py @@ -158,7 +158,7 @@ def _create_net_zpbn(net, boundary_buses, all_internal_buses, all_external_buses net_internal, net_external = _get_internal_and_external_nets( net, boundary_buses, all_internal_buses, all_external_buses, - show_computing_time, calc_volt_angles=calc_volt_angles, runpp_fct=runpp_fct) + show_computing_time, calc_volt_angles=calc_volt_angles, runpp_fct=runpp_fct, **kwargs) net_zpbn = net_external # --- remove buses without power flow results in net_eq pp.drop_buses(net_zpbn, net_zpbn.res_bus.index[net_zpbn.res_bus.vm_pu.isnull()]) @@ -510,7 +510,7 @@ def _create_bus_lookups(net_zpbn, boundary_buses, all_internal_buses, def _get_internal_and_external_nets(net, boundary_buses, all_internal_buses, all_external_buses, show_computing_time=False, calc_volt_angles=True, - runpp_fct=_runpp_except_voltage_angles): + runpp_fct=_runpp_except_voltage_angles, **kwargs): "This function identifies the internal area and the external area" t_start = time.perf_counter() if not all_internal_buses: @@ -531,11 +531,11 @@ def _get_internal_and_external_nets(net, boundary_buses, all_internal_buses, drop_measurements_and_controllers(net_external, net_external.bus.index.tolist()) pp.drop_buses(net_external, all_internal_buses) replace_motor_by_load(net_external, all_external_buses) -# add_ext_grids_to_boundaries(net_external, boundary_buses, runpp_fct=runpp_fct) -# runpp_fct(net_external, calculate_voltage_angles=calc_volt_angles) +# add_ext_grids_to_boundaries(net_external, boundary_buses, runpp_fct=runpp_fct, **kwargs) +# runpp_fct(net_external, calculate_voltage_angles=calc_volt_angles, **kwargs) _integrate_power_elements_connected_with_switch_buses(net, net_external, all_external_buses) # for sgens, gens, and loads - runpp_fct(net_external, calculate_voltage_angles=calc_volt_angles) + runpp_fct(net_external, calculate_voltage_angles=calc_volt_angles, **kwargs) t_end = time.perf_counter() if show_computing_time: logger.info("\"get_int_and_ext_nets\" " + @@ -605,7 +605,7 @@ def _calclate_equivalent_element_params(net_zpbn, Ybus_eq, bus_lookups, def _replace_ext_area_by_impedances_and_shunts( net_eq, bus_lookups, impedance_params, shunt_params, net_internal, return_internal, show_computing_time=False, calc_volt_angles=True, imp_threshold=1e-8, - runpp_fct=_runpp_except_voltage_angles): + runpp_fct=_runpp_except_voltage_angles, **kwargs): """ This function implements the parameters of the equivalent shunts and equivalent impedance """ @@ -616,7 +616,7 @@ def _replace_ext_area_by_impedances_and_shunts( try: runpp_fct(net_eq, calculate_voltage_angles=calc_volt_angles, - tolerance_mva=1e-6, max_iteration=100) + tolerance_mva=1e-6, max_iteration=100, **kwargs) except: logger.error("The power flow did not converge.") @@ -684,7 +684,7 @@ def _replace_ext_area_by_impedances_and_shunts( raise ValueError(msg) runpp_fct(net_eq, calculate_voltage_angles=calc_volt_angles, - tolerance_mva=1e-6, max_iteration=100) + tolerance_mva=1e-6, max_iteration=100, **kwargs) def _integrate_power_elements_connected_with_switch_buses(net, net_external, all_external_buses): diff --git a/pandapower/grid_equivalents/ward_generation.py b/pandapower/grid_equivalents/ward_generation.py index 507e21cf9..4e9b8913d 100644 --- a/pandapower/grid_equivalents/ward_generation.py +++ b/pandapower/grid_equivalents/ward_generation.py @@ -55,7 +55,7 @@ def _calculate_ward_and_impedance_parameters(Ybus_eq, bus_lookups, show_computin return ward_parameter, impedance_parameter -def _calculate_xward_and_impedance_parameters(net_external, Ybus_eq, bus_lookups, +def _calculate_xward_and_impedance_parameters(net_external, Ybus_eq, bus_lookups, show_computing_time, power_eq=0): """calculates the xwards and the equivalent impedance""" t_start = time.perf_counter() @@ -76,7 +76,7 @@ def _calculate_xward_and_impedance_parameters(net_external, Ybus_eq, bus_lookups def create_passive_external_net_for_ward_admittance( net, all_external_buses, boundary_buses, calc_volt_angles=True, - runpp_fct=_runpp_except_voltage_angles): + runpp_fct=_runpp_except_voltage_angles, **kwargs): """ This function replace the wards and xward in external network by internal elements, and replace the power injections in external area by shunts @@ -105,20 +105,20 @@ def create_passive_external_net_for_ward_admittance( for elm in ["sgen", "gen", "load", "storage"]: target_idx = net[elm].index[net[elm].bus.isin(all_external_buses)] net[elm].drop(target_idx, inplace=True) - runpp_fct(net, calculate_voltage_angles=calc_volt_angles) + runpp_fct(net, calculate_voltage_angles=calc_volt_angles, **kwargs) def _replace_external_area_by_wards(net_external, bus_lookups, ward_parameter_no_power, impedance_parameter, ext_buses_with_xward, show_computing_time, calc_volt_angles=True, - runpp_fct=_runpp_except_voltage_angles): + runpp_fct=_runpp_except_voltage_angles, **kwargs): t_start = time.perf_counter() """replaces the external networks by wards and equivalent impedance""" # --- drop all external elements e_buses_pd = bus_lookups["bus_lookup_pd"]["e_area_buses"] pp.drop_buses(net_external, e_buses_pd) drop_internal_branch_elements(net_external, bus_lookups["boundary_buses_inclusive_bswitch"]) -# runpp_fct(net_external, calculate_voltage_angles=True) +# runpp_fct(net_external, calculate_voltage_angles=True, **kwargs) # --- drop shunt elements attached to boundary buses traget_shunt_idx = net_external.shunt.index[net_external.shunt.bus.isin(bus_lookups[ @@ -166,7 +166,7 @@ def _replace_external_area_by_wards(net_external, bus_lookups, ward_parameter_no eq_power.loc[len(eq_power)] = new_eq_power assert len(eq_power.bus) == len(set(eq_power.bus)) # only one slack at individual bus - runpp_fct(net_external, calculate_voltage_angles=calc_volt_angles) + runpp_fct(net_external, calculate_voltage_angles=calc_volt_angles, **kwargs) eq_power.p_mw -= \ pd.concat([net_external.res_ext_grid.p_mw, net_external.res_gen.p_mw[slack_gen]]) @@ -193,8 +193,8 @@ def _replace_external_area_by_wards(net_external, bus_lookups, ward_parameter_no def _replace_external_area_by_xwards(net_external, bus_lookups, xward_parameter_no_power, impedance_parameter, ext_buses_with_xward, - show_computing_time, calc_volt_angles=True, - runpp_fct=_runpp_except_voltage_angles): + show_computing_time, calc_volt_angles=True, + runpp_fct=_runpp_except_voltage_angles, **kwargs): """replaces the external networks by xwards and equivalent impedance""" t_start = time.perf_counter() # --- drop all external elements @@ -250,7 +250,7 @@ def _replace_external_area_by_xwards(net_external, bus_lookups, xward_parameter_ assert len(eq_power.bus) == len(set(eq_power.bus)) # only one slack at individual bus runpp_fct(net_external, calculate_voltage_angles=calc_volt_angles, - tolerance_mva=1e-6, max_iteration=100) + tolerance_mva=1e-6, max_iteration=100, **kwargs) eq_power.p_mw -= \ pd.concat([net_external.res_ext_grid.p_mw, net_external.res_gen.p_mw[slack_gen]]) From 38a4faa1c678c53efb64427afdfaa1b491e04623 Mon Sep 17 00:00:00 2001 From: Jannis Kupka Date: Tue, 13 Feb 2024 12:28:58 +0100 Subject: [PATCH 23/39] also reindex res_bus_3ph in reindex_buses --- pandapower/toolbox/data_modification.py | 1 + 1 file changed, 1 insertion(+) diff --git a/pandapower/toolbox/data_modification.py b/pandapower/toolbox/data_modification.py index a20792f17..0f12d9dab 100644 --- a/pandapower/toolbox/data_modification.py +++ b/pandapower/toolbox/data_modification.py @@ -167,6 +167,7 @@ def reindex_buses(net, bus_lookup): # --- reindex buses net.bus.index = get_indices(net.bus.index, bus_lookup) net.res_bus.index = get_indices(net.res_bus.index, bus_lookup) + net.res_bus_3ph.index = get_indices(net.res_bus_3ph.index, bus_lookup) # --- adapt link in bus elements for element, value in element_bus_tuples(): From 9a54a0a74aaf7bff30d83caeb31547b062b1b84f Mon Sep 17 00:00:00 2001 From: Sciemon Date: Wed, 14 Feb 2024 14:37:27 +0100 Subject: [PATCH 24/39] Update internal_datastructure.ipynb avoid repeated description of bus mapping --- tutorials/internal_datastructure.ipynb | 9 --------- 1 file changed, 9 deletions(-) diff --git a/tutorials/internal_datastructure.ipynb b/tutorials/internal_datastructure.ipynb index 65ac1f301..b6b1874c6 100644 --- a/tutorials/internal_datastructure.ipynb +++ b/tutorials/internal_datastructure.ipynb @@ -681,15 +681,6 @@ "net.switch.loc[0]" ] }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## \n", - "\n", - "The pandapower indices are not equal to the ppc indices for several reasons. Some buses are fused together in case of closed bus-bus switches and auxiliary buses are created for elements like extended wards or three winding transformers. There is however a mapping between pandapower indices and ppc indices that is created during the conversion to keep track of the dependencies that is also stored in the net:" - ] - }, { "cell_type": "markdown", "metadata": {}, From 88eb520dfb7e0887f102a64a3ddb1a761d417f08 Mon Sep 17 00:00:00 2001 From: mrichter Date: Fri, 16 Feb 2024 15:57:07 +0100 Subject: [PATCH 25/39] in reindex_elements: fixed index error when reindexing line_geodata --- CHANGELOG.rst | 1 + pandapower/toolbox/data_modification.py | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.rst b/CHANGELOG.rst index f1f3785d6..d2e0a14bb 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -41,6 +41,7 @@ Change Log - [ADDED] function :code:`getOTDF` to obtain Outage Transfer Distribution Factors, that can be used to analyse outages using the DC approximation of the power system - [ADDED] function :code:`outage_results_OTDF` to obtain the matrix of results for all outage scenarios, with rows as outage scenarios and columns as branch power flows in that scenario - [FIXED] add some safeguards for TDPF to avoid numerical issues in some cases +- [FIXED] in reindex_elements: fixed index error when reindexing line_geodata [2.13.1] - 2023-05-12 diff --git a/pandapower/toolbox/data_modification.py b/pandapower/toolbox/data_modification.py index a20792f17..ac3cb3673 100644 --- a/pandapower/toolbox/data_modification.py +++ b/pandapower/toolbox/data_modification.py @@ -315,7 +315,8 @@ def reindex_elements(net, element_type, new_indices=None, old_indices=None, look idx_name = net.line_geodata.index.name place_holder = uuid.uuid4() net["line_geodata"][place_holder] = net["line_geodata"].index - net["line_geodata"].loc[old_indices, place_holder] = get_indices(old_indices, lookup) + net["line_geodata"].loc[old_indices.intersection(net.line_geodata.index), place_holder] = ( + get_indices(old_indices.intersection(net.line_geodata.index), lookup)) net["line_geodata"].set_index(place_holder, inplace=True) net["line_geodata"].index.name = idx_name From f770a2a270070caf7ce8aa698025205f27b609d4 Mon Sep 17 00:00:00 2001 From: mrichter Date: Fri, 16 Feb 2024 16:00:41 +0100 Subject: [PATCH 26/39] in reindex_elements: fixed index error when reindexing line_geodata --- CHANGELOG.rst | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/CHANGELOG.rst b/CHANGELOG.rst index 692cd4334..55f052f5a 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -41,12 +41,11 @@ Change Log - [ADDED] function :code:`getOTDF` to obtain Outage Transfer Distribution Factors, that can be used to analyse outages using the DC approximation of the power system - [ADDED] function :code:`outage_results_OTDF` to obtain the matrix of results for all outage scenarios, with rows as outage scenarios and columns as branch power flows in that scenario - [FIXED] add some safeguards for TDPF to avoid numerical issues in some cases -- [FIXED] in reindex_elements: fixed index error when reindexing line_geodata - - [FIXED] avoid attaching elements as duplicates to a group where some of the elements already exist - [ADDED] the function :code:`run_contingency` can raise a captured error if parameter :code:`raise_errors` is passed - [FIXED] bugfix for tap dependent impedance characteristics so that not all characteristics columns are necessary - [FIXED] in function :code:`toolbox.replace_zero_branches_with_switches`, use absolute for the parameters of impedance elements in case they are negative nonzero values +- [FIXED] in :code:`reindex_elements`: fixed index error when reindexing line_geodata [2.13.1] - 2023-05-12 ------------------------------- From abdc62bba110c6b36640bcbb36451de7d27b2fd8 Mon Sep 17 00:00:00 2001 From: mrifraunhofer <94368111+mrifraunhofer@users.noreply.github.com> Date: Thu, 22 Feb 2024 10:57:45 +0100 Subject: [PATCH 27/39] - [FIXED] bug in :code:`cim2pp`: Changed zero prioritized generators with voltage controller to sgens (like PowerFactory does) (#2224) - [ADDED] cim2pp: added description fields for each asset and added BusbarSection information to nodes --- CHANGELOG.rst | 2 + pandapower/converter/cim/__init__.py | 2 +- .../converter/cim/cim2pp/build_pp_net.py | 64 +++++++------------ .../connectivityNodesCim16.py | 8 +++ .../externalNetworkInjectionsCim16.py | 6 +- .../transformers/powerTransformersCim16.py | 2 +- pandapower/converter/cim/cim2pp/from_cim.py | 49 +++++++------- pandapower/converter/cim/cim_classes.py | 58 +++++++++-------- pandapower/converter/cim/cim_tools.py | 34 +++++----- pandapower/test/converter/test_from_cim.py | 2 +- 10 files changed, 119 insertions(+), 108 deletions(-) diff --git a/CHANGELOG.rst b/CHANGELOG.rst index 55f052f5a..d94ac60c1 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -46,6 +46,8 @@ Change Log - [FIXED] bugfix for tap dependent impedance characteristics so that not all characteristics columns are necessary - [FIXED] in function :code:`toolbox.replace_zero_branches_with_switches`, use absolute for the parameters of impedance elements in case they are negative nonzero values - [FIXED] in :code:`reindex_elements`: fixed index error when reindexing line_geodata +- [FIXED] bug in :code:`cim2pp`: Changed zero prioritized generators with voltage controller to sgens (like PowerFactory does) +- [ADDED] cim2pp: added description fields for each asset and added BusbarSection information to nodes [2.13.1] - 2023-05-12 ------------------------------- diff --git a/pandapower/converter/cim/__init__.py b/pandapower/converter/cim/__init__.py index 872eead15..a9d9e691d 100644 --- a/pandapower/converter/cim/__init__.py +++ b/pandapower/converter/cim/__init__.py @@ -4,4 +4,4 @@ # and Energy System Technology (IEE), Kassel. All rights reserved. from .cim2pp import from_cim -__version__ = '3.6.8' +__version__ = '3.6.9' diff --git a/pandapower/converter/cim/cim2pp/build_pp_net.py b/pandapower/converter/cim/cim2pp/build_pp_net.py index cd7b94536..dda63d643 100644 --- a/pandapower/converter/cim/cim2pp/build_pp_net.py +++ b/pandapower/converter/cim/cim2pp/build_pp_net.py @@ -92,51 +92,37 @@ def convert_to_pp(self, convert_line_to_switch: bool = False, line_r_limit: floa sort=False, ignore_index=True)[['rdfId', 'nominalVoltage']] # --------- convert busses --------- - self.classes_dict['connectivityNodesCim16'].ConnectivityNodesCim16( - cimConverter=self).convert_connectivity_nodes_cim16() + self.classes_dict['ConnectivityNodesCim16'](cimConverter=self).convert_connectivity_nodes_cim16() # --------- convert external networks --------- - self.classes_dict['externalNetworkInjectionsCim16'].ExternalNetworkInjectionsCim16( + self.classes_dict['externalNetworkInjectionsCim16']( cimConverter=self).convert_external_network_injections_cim16() # --------- convert lines --------- - self.classes_dict['acLineSegmentsCim16'].AcLineSegmentsCim16( - cimConverter=self).convert_ac_line_segments_cim16(convert_line_to_switch, line_r_limit, line_x_limit) - self.classes_dict['dcLineSegmentsCim16'].DcLineSegmentsCim16( - cimConverter=self).convert_dc_line_segments_cim16() + self.classes_dict['acLineSegmentsCim16'](cimConverter=self).convert_ac_line_segments_cim16( + convert_line_to_switch, line_r_limit, line_x_limit) + self.classes_dict['dcLineSegmentsCim16'](cimConverter=self).convert_dc_line_segments_cim16() # --------- convert switches --------- - self.classes_dict['switchesCim16'].SwitchesCim16(cimConverter=self).convert_switches_cim16() + self.classes_dict['switchesCim16'](cimConverter=self).convert_switches_cim16() # --------- convert loads --------- - self.classes_dict['energyConcumersCim16'].EnergyConsumersCim16( - cimConverter=self).convert_energy_consumers_cim16() - self.classes_dict['conformLoadsCim16'].ConformLoadsCim16(cimConverter=self).convert_conform_loads_cim16() - self.classes_dict['nonConformLoadsCim16'].NonConformLoadsCim16( - cimConverter=self).convert_non_conform_loads_cim16() - self.classes_dict['stationSuppliesCim16'].StationSuppliesCim16( - cimConverter=self).convert_station_supplies_cim16() + self.classes_dict['energyConcumersCim16'](cimConverter=self).convert_energy_consumers_cim16() + self.classes_dict['conformLoadsCim16'](cimConverter=self).convert_conform_loads_cim16() + self.classes_dict['nonConformLoadsCim16'](cimConverter=self).convert_non_conform_loads_cim16() + self.classes_dict['stationSuppliesCim16'](cimConverter=self).convert_station_supplies_cim16() # --------- convert generators --------- - self.classes_dict['synchronousMachinesCim16'].SynchronousMachinesCim16( - cimConverter=self).convert_synchronous_machines_cim16() - self.classes_dict['asynchronousMachinesCim16'].AsynchronousMachinesCim16( - cimConverter=self).convert_asynchronous_machines_cim16() - self.classes_dict['energySourcesCim16'].EnergySourceCim16( - cimConverter=self).convert_energy_sources_cim16() + self.classes_dict['synchronousMachinesCim16'](cimConverter=self).convert_synchronous_machines_cim16() + self.classes_dict['asynchronousMachinesCim16'](cimConverter=self).convert_asynchronous_machines_cim16() + self.classes_dict['energySourcesCim16'](cimConverter=self).convert_energy_sources_cim16() # --------- convert shunt elements --------- - self.classes_dict['linearShuntCompensatorCim16'].LinearShuntCompensatorCim16( - cimConverter=self).convert_linear_shunt_compensator_cim16() - self.classes_dict['nonLinearShuntCompensatorCim16'].NonLinearShuntCompensatorCim16( + self.classes_dict['linearShuntCompensatorCim16'](cimConverter=self).convert_linear_shunt_compensator_cim16() + self.classes_dict['nonLinearShuntCompensatorCim16']( cimConverter=self).convert_nonlinear_shunt_compensator_cim16() - self.classes_dict['staticVarCompensatorCim16'].StaticVarCompensatorCim16( - cimConverter=self).convert_static_var_compensator_cim16() + self.classes_dict['staticVarCompensatorCim16'](cimConverter=self).convert_static_var_compensator_cim16() # --------- convert impedance elements --------- - self.classes_dict['equivalentBranchesCim16'].EquivalentBranchesCim16( - cimConverter=self).convert_equivalent_branches_cim16() - self.classes_dict['seriesCompensatorsCim16'].SeriesCompensatorsCim16( - cimConverter=self).convert_series_compensators_cim16() + self.classes_dict['equivalentBranchesCim16'](cimConverter=self).convert_equivalent_branches_cim16() + self.classes_dict['seriesCompensatorsCim16'](cimConverter=self).convert_series_compensators_cim16() # --------- convert extended ward and ward elements --------- - self.classes_dict['equivalentInjectionsCim16'].EquivalentInjectionsCim16( - cimConverter=self).convert_equivalent_injections_cim16() + self.classes_dict['equivalentInjectionsCim16'](cimConverter=self).convert_equivalent_injections_cim16() # --------- convert transformers --------- - self.classes_dict['powerTransformersCim16'].PowerTransformersCim16( - cimConverter=self).convert_power_transformers_cim16() + self.classes_dict['powerTransformersCim16'](cimConverter=self).convert_power_transformers_cim16() # create the geo coordinates gl_or_dl = str(self.kwargs.get('use_GL_or_DL_profile', 'both')).lower() @@ -152,8 +138,7 @@ def convert_to_pp(self, convert_line_to_switch: bool = False, line_r_limit: floa if self.cim['gl']['Location'].index.size > 0 and self.cim['gl']['PositionPoint'].index.size > 0 and \ use_gl_profile: try: - self.classes_dict['geoCoordinatesFromGLCim16'].GeoCoordinatesFromGLCim16( - cimConverter=self).add_geo_coordinates_from_gl_cim16() + self.classes_dict['geoCoordinatesFromGLCim16'](cimConverter=self).add_geo_coordinates_from_gl_cim16() except Exception as e: self.logger.warning("Creating the geo coordinates failed, returning the net without geo coordinates!") self.logger.exception(e) @@ -169,8 +154,8 @@ def convert_to_pp(self, convert_line_to_switch: bool = False, line_r_limit: floa self.cim['dl']['DiagramObjectPoint'].index.size > 0 and self.net.bus_geodata.index.size == 0 and \ use_dl_profile: try: - self.classes_dict['coordinatesFromDLCim16'].CoordinatesFromDLCim16( - cimConverter=self).add_coordinates_from_dl_cim16(diagram_name=kwargs.get('diagram_name', None)) + self.classes_dict['coordinatesFromDLCim16'](cimConverter=self).add_coordinates_from_dl_cim16( + diagram_name=kwargs.get('diagram_name', None)) except Exception as e: self.logger.warning("Creating the coordinates failed, returning the net without coordinates!") self.logger.exception(e) @@ -184,8 +169,7 @@ def convert_to_pp(self, convert_line_to_switch: bool = False, line_r_limit: floa self.net = pp_tools.set_pp_col_types(net=self.net) # create transformer tap controller - self.classes_dict['tapController'].TapController( - cimConverter=self).create_tap_controller_for_power_transformers() + self.classes_dict['tapController'](cimConverter=self).create_tap_controller_for_power_transformers() self.logger.info("Running a power flow.") self.report_container.add_log(Report( diff --git a/pandapower/converter/cim/cim2pp/converter_classes/connectivitynodes/connectivityNodesCim16.py b/pandapower/converter/cim/cim2pp/converter_classes/connectivitynodes/connectivityNodesCim16.py index 9e566f4f1..3d3ce5100 100644 --- a/pandapower/converter/cim/cim2pp/converter_classes/connectivitynodes/connectivityNodesCim16.py +++ b/pandapower/converter/cim/cim2pp/converter_classes/connectivitynodes/connectivityNodesCim16.py @@ -229,6 +229,14 @@ def _prepare_connectivity_nodes_cim16(self) -> Tuple[pd.DataFrame, pd.DataFrame] # "ConnectivityNodes before merge: %s, number of ConnectivityNodes after merge: %s" % # (connectivity_nodes_size, connectivity_nodes.index.size)) connectivity_nodes.drop_duplicates(subset=['rdfId'], keep='first', inplace=True) + # add the busbars + bb = self.cimConverter.cim['eq']['BusbarSection'][['rdfId', 'name']] + bb.rename(columns={'rdfId': 'busbar_id', 'name': 'busbar_name'}, inplace=True) + bb = pd.merge(bb, self.cimConverter.cim['eq']['Terminal'][['ConnectivityNode', 'ConductingEquipment']].rename( + columns={'ConnectivityNode': 'rdfId', 'ConductingEquipment': 'busbar_id'}), how='left', on='busbar_id') + bb.drop_duplicates(subset=['rdfId'], keep='first', inplace=True) + connectivity_nodes = pd.merge(connectivity_nodes, bb, how='left', on='rdfId') + connectivity_nodes.rename(columns={'rdfId': sc['o_id'], 'TopologicalNode': sc['ct'], 'nominalVoltage': 'vn_kv', 'name_substation': 'zone'}, inplace=True) connectivity_nodes['in_service'] = True diff --git a/pandapower/converter/cim/cim2pp/converter_classes/externalnetworks/externalNetworkInjectionsCim16.py b/pandapower/converter/cim/cim2pp/converter_classes/externalnetworks/externalNetworkInjectionsCim16.py index ecd3bfd47..a3293aa4e 100644 --- a/pandapower/converter/cim/cim2pp/converter_classes/externalnetworks/externalNetworkInjectionsCim16.py +++ b/pandapower/converter/cim/cim2pp/converter_classes/externalnetworks/externalNetworkInjectionsCim16.py @@ -59,7 +59,7 @@ def _prepare_external_network_injections_cim16(self) -> pd.DataFrame: eqssh_eni = self.cimConverter.merge_eq_ssh_profile('ExternalNetworkInjection', add_cim_type_column=True) - # merge with busses + # merge with buses eqssh_eni = pd.merge(eqssh_eni, self.cimConverter.bus_merge, how='left', on='rdfId') # get the voltage from controllers @@ -85,7 +85,9 @@ def _prepare_external_network_injections_cim16(self) -> pd.DataFrame: self.cimConverter.net.bus[[sc['o_id'], 'zone']].rename({sc['o_id']: 'b_id'}, axis=1), how='left', left_on='ConnectivityNode', right_on='b_id') - eqssh_eni['referencePriority'].loc[eqssh_eni['referencePriority'] == 0] = np.NaN + # convert pu generators with prio = 0 to pq generators (PowerFactory does it same) + eqssh_eni['referencePriority'].loc[eqssh_eni['referencePriority'] == 0] = -1 + eqssh_eni['controlEnabled'].loc[eqssh_eni['referencePriority'] == -1] = False eqssh_eni['p'] = -eqssh_eni['p'] eqssh_eni['q'] = -eqssh_eni['q'] eqssh_eni['x0x_max'] = ((eqssh_eni['maxR1ToX1Ratio'] + 1j) / diff --git a/pandapower/converter/cim/cim2pp/converter_classes/transformers/powerTransformersCim16.py b/pandapower/converter/cim/cim2pp/converter_classes/transformers/powerTransformersCim16.py index b4ca19517..52d981bd8 100644 --- a/pandapower/converter/cim/cim2pp/converter_classes/transformers/powerTransformersCim16.py +++ b/pandapower/converter/cim/cim2pp/converter_classes/transformers/powerTransformersCim16.py @@ -262,7 +262,7 @@ def append_row(res_dict, id_c, row, cols): def _prepare_power_transformers_cim16(self) -> pd.DataFrame: eq_power_transformers = self.cimConverter.cim['eq']['PowerTransformer'][ - ['rdfId', 'name', 'isPartOfGeneratorUnit']] + ['rdfId', 'name', 'description', 'isPartOfGeneratorUnit']] eq_power_transformers[sc['o_cl']] = 'PowerTransformer' eq_power_transformer_ends = self.cimConverter.cim['eq']['PowerTransformerEnd'][ ['rdfId', 'PowerTransformer', 'endNumber', 'Terminal', 'ratedS', 'ratedU', 'r', 'x', 'b', 'g', 'r0', 'x0', diff --git a/pandapower/converter/cim/cim2pp/from_cim.py b/pandapower/converter/cim/cim2pp/from_cim.py index a582e4ff5..4bd748e7f 100644 --- a/pandapower/converter/cim/cim2pp/from_cim.py +++ b/pandapower/converter/cim/cim2pp/from_cim.py @@ -63,28 +63,33 @@ def from_cim_dict(cim_parser: cim_classes.CimParser, log_debug=False, convert_li def get_converter_classes(): converter_classes: Dict[str,classmethod] = { - 'connectivityNodesCim16': std_converter_classes.connectivitynodes.connectivityNodesCim16, - 'externalNetworkInjectionsCim16': std_converter_classes.externalnetworks.externalNetworkInjectionsCim16, - 'acLineSegmentsCim16': std_converter_classes.lines.acLineSegmentsCim16, - 'dcLineSegmentsCim16': std_converter_classes.lines.dcLineSegmentsCim16, - 'switchesCim16': std_converter_classes.switches.switchesCim16, - 'energyConcumersCim16': std_converter_classes.loads.energyConcumersCim16, - 'conformLoadsCim16': std_converter_classes.loads.conformLoadsCim16, - 'nonConformLoadsCim16': std_converter_classes.loads.nonConformLoadsCim16, - 'stationSuppliesCim16': std_converter_classes.loads.stationSuppliesCim16, - 'synchronousMachinesCim16': std_converter_classes.generators.synchronousMachinesCim16, - 'asynchronousMachinesCim16': std_converter_classes.generators.asynchronousMachinesCim16, - 'energySourcesCim16': std_converter_classes.generators.energySourcesCim16, - 'linearShuntCompensatorCim16': std_converter_classes.shunts.linearShuntCompensatorCim16, - 'nonLinearShuntCompensatorCim16': std_converter_classes.shunts.nonLinearShuntCompensatorCim16, - 'staticVarCompensatorCim16': std_converter_classes.shunts.staticVarCompensatorCim16, - 'equivalentBranchesCim16': std_converter_classes.impedance.equivalentBranchesCim16, - 'seriesCompensatorsCim16': std_converter_classes.impedance.seriesCompensatorsCim16, - 'equivalentInjectionsCim16': std_converter_classes.wards.equivalentInjectionsCim16, - 'powerTransformersCim16': std_converter_classes.transformers.powerTransformersCim16, - 'tapController': std_converter_classes.transformers.tapController, - 'geoCoordinatesFromGLCim16': std_converter_classes.coordinates.geoCoordinatesFromGLCim16, - 'coordinatesFromDLCim16': std_converter_classes.coordinates.coordinatesFromDLCim16, + 'ConnectivityNodesCim16': std_converter_classes.connectivitynodes.connectivityNodesCim16.ConnectivityNodesCim16, + 'externalNetworkInjectionsCim16': + std_converter_classes.externalnetworks.externalNetworkInjectionsCim16.ExternalNetworkInjectionsCim16, + 'acLineSegmentsCim16': std_converter_classes.lines.acLineSegmentsCim16.AcLineSegmentsCim16, + 'dcLineSegmentsCim16': std_converter_classes.lines.dcLineSegmentsCim16.DcLineSegmentsCim16, + 'switchesCim16': std_converter_classes.switches.switchesCim16.SwitchesCim16, + 'energyConcumersCim16': std_converter_classes.loads.energyConcumersCim16.EnergyConsumersCim16, + 'conformLoadsCim16': std_converter_classes.loads.conformLoadsCim16.ConformLoadsCim16, + 'nonConformLoadsCim16': std_converter_classes.loads.nonConformLoadsCim16.NonConformLoadsCim16, + 'stationSuppliesCim16': std_converter_classes.loads.stationSuppliesCim16.StationSuppliesCim16, + 'synchronousMachinesCim16': std_converter_classes.generators.synchronousMachinesCim16.SynchronousMachinesCim16, + 'asynchronousMachinesCim16': + std_converter_classes.generators.asynchronousMachinesCim16.AsynchronousMachinesCim16, + 'energySourcesCim16': std_converter_classes.generators.energySourcesCim16.EnergySourceCim16, + 'linearShuntCompensatorCim16': + std_converter_classes.shunts.linearShuntCompensatorCim16.LinearShuntCompensatorCim16, + 'nonLinearShuntCompensatorCim16': + std_converter_classes.shunts.nonLinearShuntCompensatorCim16.NonLinearShuntCompensatorCim16, + 'staticVarCompensatorCim16': std_converter_classes.shunts.staticVarCompensatorCim16.StaticVarCompensatorCim16, + 'equivalentBranchesCim16': std_converter_classes.impedance.equivalentBranchesCim16.EquivalentBranchesCim16, + 'seriesCompensatorsCim16': std_converter_classes.impedance.seriesCompensatorsCim16.SeriesCompensatorsCim16, + 'equivalentInjectionsCim16': std_converter_classes.wards.equivalentInjectionsCim16.EquivalentInjectionsCim16, + 'powerTransformersCim16': std_converter_classes.transformers.powerTransformersCim16.PowerTransformersCim16, + 'tapController': std_converter_classes.transformers.tapController.TapController, + 'geoCoordinatesFromGLCim16': + std_converter_classes.coordinates.geoCoordinatesFromGLCim16.GeoCoordinatesFromGLCim16, + 'coordinatesFromDLCim16': std_converter_classes.coordinates.coordinatesFromDLCim16.CoordinatesFromDLCim16, } return converter_classes diff --git a/pandapower/converter/cim/cim_classes.py b/pandapower/converter/cim/cim_classes.py index eb19c2bc7..b8f8975a6 100644 --- a/pandapower/converter/cim/cim_classes.py +++ b/pandapower/converter/cim/cim_classes.py @@ -176,17 +176,18 @@ def get_cim_data_structure(self) -> Dict[str, Dict[str, pd.DataFrame]]: 'TieFlow': pd.DataFrame(columns=['rdfId', 'Terminal', 'ControlArea', 'positiveFlowIn']), 'ConnectivityNode': pd.DataFrame(columns=['rdfId', 'name', 'description', 'ConnectivityNodeContainer']), 'Bay': pd.DataFrame(columns=['rdfId', 'VoltageLevel']), + 'BusbarSection': pd.DataFrame(columns=['rdfId', 'name']), 'Substation': pd.DataFrame(columns=['rdfId', 'name', 'Region']), 'GeographicalRegion': pd.DataFrame(columns=['rdfId', 'name']), 'SubGeographicalRegion': pd.DataFrame(columns=['rdfId', 'name', 'Region']), 'VoltageLevel': pd.DataFrame(columns=['rdfId', 'name', 'shortName', 'BaseVoltage', 'Substation']), 'BaseVoltage': pd.DataFrame(columns=['rdfId', 'name', 'nominalVoltage']), 'ExternalNetworkInjection': pd.DataFrame(columns=[ - 'rdfId', 'name', 'minP', 'maxP', 'minQ', 'maxQ', 'BaseVoltage', 'EquipmentContainer', + 'rdfId', 'name', 'description', 'minP', 'maxP', 'minQ', 'maxQ', 'BaseVoltage', 'EquipmentContainer', 'RegulatingControl', 'governorSCD', 'maxInitialSymShCCurrent', 'minInitialSymShCCurrent', 'maxR1ToX1Ratio', 'minR1ToX1Ratio', 'maxR0ToX0Ratio', 'maxZ0ToZ1Ratio']), 'ACLineSegment': pd.DataFrame(columns=[ - 'rdfId', 'name', 'length', 'r', 'x', 'bch', 'gch', 'r0', 'x0', 'b0ch', 'g0ch', + 'rdfId', 'name', 'description', 'length', 'r', 'x', 'bch', 'gch', 'r0', 'x0', 'b0ch', 'g0ch', 'shortCircuitEndTemperature', 'BaseVoltage']), 'Terminal': pd.DataFrame(columns=[ 'rdfId', 'name', 'ConnectivityNode', 'ConductingEquipment', 'sequenceNumber']), @@ -199,22 +200,26 @@ def get_cim_data_structure(self) -> Dict[str, Dict[str, pd.DataFrame]]: 'DCNode': pd.DataFrame(columns=['rdfId', 'name', 'DCEquipmentContainer']), 'DCEquipmentContainer': pd.DataFrame(columns=['rdfId', 'name']), 'DCConverterUnit': pd.DataFrame(columns=['rdfId', 'name', 'Substation', 'operationMode']), - 'DCLineSegment': pd.DataFrame(columns=['rdfId', 'name', 'EquipmentContainer']), + 'DCLineSegment': pd.DataFrame(columns=['rdfId', 'name', 'description', 'EquipmentContainer']), 'CsConverter': pd.DataFrame(columns=['rdfId', 'BaseVoltage', 'ratedUdc']), 'VsConverter': pd.DataFrame(columns=['rdfId', 'name', 'BaseVoltage', 'EquipmentContainer', 'ratedUdc']), 'DCTerminal': pd.DataFrame(columns=[ 'rdfId', 'name', 'DCNode', 'DCConductingEquipment', 'sequenceNumber']), 'ACDCConverterDCTerminal': pd.DataFrame(columns=[ 'rdfId', 'name', 'DCNode', 'DCConductingEquipment', 'sequenceNumber']), - 'Breaker': pd.DataFrame(columns=['rdfId', 'name', 'EquipmentContainer', 'normalOpen', 'retained']), - 'Disconnector': pd.DataFrame(columns=['rdfId', 'name', 'EquipmentContainer', 'normalOpen', 'retained']), - 'Switch': pd.DataFrame(columns=['rdfId', 'name', 'EquipmentContainer', 'normalOpen', 'retained']), + 'Breaker': pd.DataFrame(columns=[ + 'rdfId', 'name', 'description', 'EquipmentContainer', 'normalOpen', 'retained']), + 'Disconnector': pd.DataFrame(columns=[ + 'rdfId', 'name', 'description', 'EquipmentContainer', 'normalOpen', 'retained']), + 'Switch': pd.DataFrame(columns=[ + 'rdfId', 'name', 'description', 'EquipmentContainer', 'normalOpen', 'retained']), 'LoadBreakSwitch': pd.DataFrame(columns=[ - 'rdfId', 'name', 'EquipmentContainer', 'normalOpen', 'retained']), - 'EnergyConsumer': pd.DataFrame(columns=['rdfId', 'name', 'BaseVoltage', 'EquipmentContainer']), - 'ConformLoad': pd.DataFrame(columns=['rdfId', 'name']), - 'NonConformLoad': pd.DataFrame(columns=['rdfId', 'name']), - 'StationSupply': pd.DataFrame(columns=['rdfId', 'name', 'BaseVoltage']), + 'rdfId', 'name', 'description', 'EquipmentContainer', 'normalOpen', 'retained']), + 'EnergyConsumer': pd.DataFrame(columns=[ + 'rdfId', 'name', 'description', 'BaseVoltage', 'EquipmentContainer']), + 'ConformLoad': pd.DataFrame(columns=['rdfId', 'name', 'description']), + 'NonConformLoad': pd.DataFrame(columns=['rdfId', 'name', 'description']), + 'StationSupply': pd.DataFrame(columns=['rdfId', 'name', 'description', 'BaseVoltage']), 'GeneratingUnit': pd.DataFrame(columns=[ 'rdfId', 'name', 'nominalP', 'initialP', 'minOperatingP', 'maxOperatingP', 'EquipmentContainer']), 'WindGeneratingUnit': pd.DataFrame(columns=['rdfId', 'nominalP', 'minOperatingP', 'maxOperatingP']), @@ -224,18 +229,18 @@ def get_cim_data_structure(self) -> Dict[str, Dict[str, pd.DataFrame]]: 'NuclearGeneratingUnit': pd.DataFrame(columns=['rdfId', 'nominalP', 'minOperatingP', 'maxOperatingP']), 'RegulatingControl': pd.DataFrame(columns=['rdfId', 'name', 'mode', 'Terminal']), 'SynchronousMachine': pd.DataFrame(columns=[ - 'rdfId', 'name', 'GeneratingUnit', 'EquipmentContainer', 'ratedU', 'ratedS', 'type', + 'rdfId', 'name', 'description', 'GeneratingUnit', 'EquipmentContainer', 'ratedU', 'ratedS', 'type', 'r2', 'x2', 'ratedPowerFactor', 'voltageRegulationRange', 'minQ', 'maxQ', 'RegulatingControl']), 'AsynchronousMachine': pd.DataFrame(columns=[ - 'rdfId', 'name', 'GeneratingUnit', 'ratedS', 'ratedU', 'ratedPowerFactor', 'rxLockedRotorRatio', - 'iaIrRatio', 'efficiency', 'ratedMechanicalPower']), + 'rdfId', 'name', 'description', 'GeneratingUnit', 'ratedS', 'ratedU', 'ratedPowerFactor', + 'rxLockedRotorRatio', 'iaIrRatio', 'efficiency', 'ratedMechanicalPower']), 'EnergySource': pd.DataFrame(columns=[ - 'rdfId', 'name', 'nominalVoltage', 'EnergySchedulingType', 'BaseVoltage', 'EquipmentContainer', - 'voltageAngle', 'voltageMagnitude']), + 'rdfId', 'name', 'description', 'nominalVoltage', 'EnergySchedulingType', 'BaseVoltage', + 'EquipmentContainer', 'voltageAngle', 'voltageMagnitude']), 'EnergySchedulingType': pd.DataFrame(columns=['rdfId', 'name']), - 'StaticVarCompensator': pd.DataFrame(columns=['rdfId', 'name', 'voltageSetPoint']), + 'StaticVarCompensator': pd.DataFrame(columns=['rdfId', 'name', 'description', 'voltageSetPoint']), 'PowerTransformer': pd.DataFrame(columns=[ - 'rdfId', 'name', 'EquipmentContainer', 'isPartOfGeneratorUnit']), + 'rdfId', 'name', 'description', 'EquipmentContainer', 'isPartOfGeneratorUnit']), 'PowerTransformerEnd': pd.DataFrame(columns=[ 'rdfId', 'name', 'PowerTransformer', 'endNumber', 'Terminal', 'ratedS', 'ratedU', 'r', 'x', 'r0', 'x0', 'b', 'g', 'BaseVoltage', 'phaseAngleClock', 'connectionKind', 'grounded', @@ -264,14 +269,17 @@ def get_cim_data_structure(self) -> Dict[str, Dict[str, pd.DataFrame]]: 'RatioTapChangerTablePoint': pd.DataFrame(columns=['rdfId', 'RatioTapChangerTable', 'step', 'r', 'x', 'ratio']), 'LinearShuntCompensator': pd.DataFrame(columns=[ - 'rdfId', 'name', 'nomU', 'gPerSection', 'bPerSection', 'maximumSections']), - 'NonlinearShuntCompensator': pd.DataFrame(columns=['rdfId', 'name', 'nomU', 'maximumSections']), + 'rdfId', 'name', 'description', 'nomU', 'gPerSection', 'bPerSection', 'maximumSections']), + 'NonlinearShuntCompensator': pd.DataFrame(columns=[ + 'rdfId', 'name', 'description', 'nomU', 'maximumSections']), 'NonlinearShuntCompensatorPoint': pd.DataFrame(columns=[ - 'rdfId', 'NonlinearShuntCompensator', 'sectionNumber', 'b', 'g']), - 'EquivalentBranch': pd.DataFrame(columns=['rdfId', 'name', 'BaseVoltage', 'r', 'x', 'r21', 'x21', - 'zeroR12', 'zeroR21', 'zeroX12', 'zeroX21']), - 'EquivalentInjection': pd.DataFrame(columns=['rdfId', 'name', 'BaseVoltage', 'r', 'x']), - 'SeriesCompensator': pd.DataFrame(columns=['rdfId', 'name', 'BaseVoltage', 'r', 'x', 'r0', 'x0']), + 'rdfId', 'description', 'NonlinearShuntCompensator', 'sectionNumber', 'b', 'g']), + 'EquivalentBranch': pd.DataFrame(columns=[ + 'rdfId', 'name', 'description', 'BaseVoltage', 'r', 'x', 'r21', 'x21', 'zeroR12', 'zeroR21', + 'zeroX12', 'zeroX21']), + 'EquivalentInjection': pd.DataFrame(columns=['rdfId', 'name', 'description', 'BaseVoltage', 'r', 'x']), + 'SeriesCompensator': pd.DataFrame(columns=[ + 'rdfId', 'name', 'description', 'BaseVoltage', 'r', 'x', 'r0', 'x0']), 'Analog': pd.DataFrame(columns=[ 'rdfId', 'name', 'measurementType', 'unitSymbol', 'unitMultiplier', 'Terminal', 'PowerSystemResource', 'positiveFlowIn']), diff --git a/pandapower/converter/cim/cim_tools.py b/pandapower/converter/cim/cim_tools.py index 24f4a43c5..d0cfbb322 100644 --- a/pandapower/converter/cim/cim_tools.py +++ b/pandapower/converter/cim/cim_tools.py @@ -49,57 +49,59 @@ def extend_pp_net_cim(net: pandapowerNet, override: bool = True) -> pandapowerNe fill_dict: Dict[str, Dict[str, List[str]]] = dict() fill_dict['bus'] = dict() - fill_dict['bus'][np_str_type] = [sc['o_prf'], sc['ct'], sc['cnc_id'], sc['sub_id'], 'description'] + fill_dict['bus'][np_str_type] = [sc['o_prf'], sc['ct'], sc['cnc_id'], sc['sub_id'], 'description', 'busbar_id', + 'busbar_name'] fill_dict['ext_grid'] = dict() - fill_dict['ext_grid'][np_str_type] = [sc['t'], sc['sub']] + fill_dict['ext_grid'][np_str_type] = [sc['t'], sc['sub'], 'description'] fill_dict['ext_grid'][np_float_type] = ['min_p_mw', 'max_p_mw', 'min_q_mvar', 'max_q_mvar', 'p_mw', 'q_mvar', 's_sc_max_mva', 's_sc_min_mva', 'rx_max', 'rx_min', 'r0x0_max', 'x0x_max'] fill_dict['load'] = dict() - fill_dict['load'][np_str_type] = [sc['t']] + fill_dict['load'][np_str_type] = [sc['t'], 'description'] fill_dict['gen'] = dict() - fill_dict['gen'][np_str_type] = [sc['t']] + fill_dict['gen'][np_str_type] = [sc['t'], 'description'] fill_dict['gen'][np_float_type] = \ ['min_p_mw', 'max_p_mw', 'min_q_mvar', 'max_q_mvar', 'vn_kv', 'rdss_ohm', 'xdss_pu', 'cos_phi', 'pg_percent'] fill_dict['sgen'] = dict() - fill_dict['sgen'][np_str_type] = [sc['t']] + fill_dict['sgen'][np_str_type] = [sc['t'], 'description'] fill_dict['sgen'][np_float_type] = ['k', 'rx', 'vn_kv', 'rdss_ohm', 'xdss_pu', 'lrc_pu', 'generator_type'] fill_dict['motor'] = dict() - fill_dict['motor'][np_str_type] = [sc['t']] + fill_dict['motor'][np_str_type] = [sc['t'], 'description'] fill_dict['storage'] = dict() - fill_dict['storage'][np_str_type] = [sc['t']] + fill_dict['storage'][np_str_type] = [sc['t'], 'description'] fill_dict['shunt'] = dict() - fill_dict['shunt'][np_str_type] = [sc['t']] + fill_dict['shunt'][np_str_type] = [sc['t'], 'description'] fill_dict['ward'] = dict() - fill_dict['ward'][np_str_type] = [sc['t']] + fill_dict['ward'][np_str_type] = [sc['t'], 'description'] fill_dict['xward'] = dict() - fill_dict['xward'][np_str_type] = [sc['t']] + fill_dict['xward'][np_str_type] = [sc['t'], 'description'] fill_dict['line'] = dict() - fill_dict['line'][np_str_type] = [sc['t_from'], sc['t_to']] + fill_dict['line'][np_str_type] = [sc['t_from'], sc['t_to'], 'description'] fill_dict['line'][np_float_type] = ['r0_ohm_per_km', 'x0_ohm_per_km', 'c0_nf_per_km', 'g0_us_per_km', 'endtemp_degree'] fill_dict['dcline'] = dict() - fill_dict['dcline'][np_str_type] = [sc['t_from'], sc['t_to']] + fill_dict['dcline'][np_str_type] = [sc['t_from'], sc['t_to'], 'description'] fill_dict['switch'] = dict() - fill_dict['switch'][np_str_type] = [sc['t_bus'], sc['t_ele']] + fill_dict['switch'][np_str_type] = [sc['t_bus'], sc['t_ele'], 'description'] fill_dict['impedance'] = dict() - fill_dict['impedance'][np_str_type] = [sc['t_from'], sc['t_to']] + fill_dict['impedance'][np_str_type] = [sc['t_from'], sc['t_to'], 'description'] fill_dict['impedance'][np_float_type] = ['rft0_pu', 'xft0_pu', 'rtf0_pu', 'xtf0_pu'] fill_dict['trafo'] = dict() fill_dict['trafo'][np_str_type] = [sc['t_hv'], sc['t_lv'], sc['pte_id_hv'], sc['pte_id_lv'], sc['tc'], sc['tc_id'], - 'vector_group', 'id_characteristic'] + 'description', 'vector_group', 'id_characteristic'] fill_dict['trafo'][np_float_type] = ['vk0_percent', 'vkr0_percent', 'xn_ohm'] fill_dict['trafo'][np_bool_type] = ['power_station_unit', 'oltc'] fill_dict['trafo3w'] = dict() fill_dict['trafo3w'][np_str_type] = [sc['t_hv'], sc['t_mv'], sc['t_lv'], sc['pte_id_hv'], sc['pte_id_mv'], - sc['pte_id_lv'], sc['tc'], sc['tc_id'], 'vector_group', 'id_characteristic'] + sc['pte_id_lv'], sc['tc'], sc['tc_id'], 'description', 'vector_group', + 'id_characteristic'] fill_dict['trafo3w'][np_float_type] = ['vk0_hv_percent', 'vk0_mv_percent', 'vk0_lv_percent', 'vkr0_hv_percent', 'vkr0_mv_percent', 'vkr0_lv_percent'] fill_dict['trafo3w'][np_bool_type] = ['power_station_unit'] diff --git a/pandapower/test/converter/test_from_cim.py b/pandapower/test/converter/test_from_cim.py index 8f17c8811..6c8d503f8 100644 --- a/pandapower/test/converter/test_from_cim.py +++ b/pandapower/test/converter/test_from_cim.py @@ -811,7 +811,7 @@ def test_fullgrid_shunt(fullgrid): def test_fullgrid_sgen(fullgrid): - assert 0 == len(fullgrid.sgen.index) + assert 1 == len(fullgrid.sgen.index) def test_fullgrid_pwl_cost(fullgrid): From f9bbce386de80d2a694c40bd25616e2def1b792e Mon Sep 17 00:00:00 2001 From: dlohmeier Date: Tue, 27 Feb 2024 08:58:52 +0100 Subject: [PATCH 28/39] speed-up of multi-index check in create functions --> usage of intersect1d instead of isin leads to massive speed-up --- pandapower/create.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pandapower/create.py b/pandapower/create.py index d22a8840e..1a747210e 100644 --- a/pandapower/create.py +++ b/pandapower/create.py @@ -4864,12 +4864,12 @@ def _get_multiple_index_with_check(net, table, index, number, name=None): u, c = uni(index, return_counts=True) if np.any(c>1): raise UserWarning("Passed indexes %s exist multiple times" % (u[c>1])) - contained = isin(net[table].index.values, index) - if np_any(contained): + intersect = intersect1d(index, net[table].index.values) + if len(intersect) > 0: if name is None: name = table.capitalize() + "s" raise UserWarning("%s with indexes %s already exist." - % (name, net[table].index.values[contained])) + % (name, intersect)) return index From 11e172bae07e35c1c44aa2287f8bdd46b6591756 Mon Sep 17 00:00:00 2001 From: Roman Bolgaryn Date: Thu, 29 Feb 2024 12:03:29 +0100 Subject: [PATCH 29/39] bugfixes in PowerFactory; add R-L shunt --- .../powerfactory/export_pfd_to_pp.py | 4 +- pandapower/converter/powerfactory/gui.py | 51 +++-- .../converter/powerfactory/logger_setup.py | 6 +- pandapower/converter/powerfactory/main_pf.py | 55 +++-- .../powerfactory/pf_export_functions.py | 4 +- .../powerfactory/pp_import_functions.py | 202 +++++++++++------- pandapower/converter/powerfactory/validate.py | 66 +++--- 7 files changed, 224 insertions(+), 164 deletions(-) diff --git a/pandapower/converter/powerfactory/export_pfd_to_pp.py b/pandapower/converter/powerfactory/export_pfd_to_pp.py index d2bfbb107..d3f1dfa0a 100644 --- a/pandapower/converter/powerfactory/export_pfd_to_pp.py +++ b/pandapower/converter/powerfactory/export_pfd_to_pp.py @@ -7,10 +7,10 @@ try: import pandaplan.core.pplog as logging - logger = logging.logger except ImportError: import logging - logger = logging.getLogger(__name__) + +logger = logging.getLogger(__name__) def from_pfd(app, prj_name: str, path_dst=None, pv_as_slack=False, pf_variable_p_loads='plini', diff --git a/pandapower/converter/powerfactory/gui.py b/pandapower/converter/powerfactory/gui.py index f9140a0c6..4eebe21cd 100644 --- a/pandapower/converter/powerfactory/gui.py +++ b/pandapower/converter/powerfactory/gui.py @@ -4,22 +4,23 @@ try: import pandaplan.core.pplog as logging - logger = logging.logger except ImportError: import logging - logger = logging.getLogger(__name__) -def cancel(input_panel): +logger = logging.getLogger(__name__) + +def cancel(app, input_panel): logger.debug('received a cancel request from the user') input_panel.destroy() logger.debug('destroyed input panel, will attempt exit()') for h in logger.handlers: logger.removeHandler(h) - exit() + exit_gracefully(app, 'exiting script', False) def calc_test(app, **kwargs): logger.info('TESTING') + exit_gracefully(app, 'test complete', False) def browse_dst_test(input_panel, entry_path_dst): @@ -170,7 +171,7 @@ def make_gui(app, project_name, browse_dst, calc): # row 8 max_iter = tk.IntVar(input_panel) - max_iter.set(10) + max_iter.set(30) tk.Label(input_panel, anchor='w', text='Max. iterations:').grid(row=8, column=0, sticky=tk.W, pady=0) iter_entry = tk.Entry(input_panel, width=8) @@ -182,33 +183,47 @@ def make_gui(app, project_name, browse_dst, calc): # row 2 col 2-3 PV_SL = tk.IntVar() - tk.Checkbutton(input_panel, text="Export 'PV' bus as Slack", variable=PV_SL).grid(row=2, - column=4, - sticky=tk.W) + tk.Checkbutton(input_panel, text="Export 'PV' buses as slack buses", variable=PV_SL).grid(row=2, + column=4, + sticky=tk.W) params.pv_as_slack = PV_SL.get + + EXPORT_CONTROLLER = tk.IntVar() + EXPORT_CONTROLLER.set(1) + tk.Checkbutton(input_panel, text="Export controllers", variable=EXPORT_CONTROLLER).grid(row=3, + column=4, + sticky=tk.W) + params.export_controller = EXPORT_CONTROLLER.get + + REPLACE_ZERO_BRANCHES = tk.IntVar() + REPLACE_ZERO_BRANCHES.set(1) + tk.Checkbutton(input_panel, text="Replace low-impedance branches with switches", + variable=REPLACE_ZERO_BRANCHES).grid(row=4, column=4, sticky=tk.W) + params.replace_zero_branches = REPLACE_ZERO_BRANCHES.get + CV_VERIFY = tk.IntVar() CV_VERIFY.set(1) - tk.Checkbutton(input_panel, text="Verify conversion", variable=CV_VERIFY).grid(row=3, column=4, + tk.Checkbutton(input_panel, text="Verify conversion", variable=CV_VERIFY).grid(row=5, column=4, sticky=tk.W) params.is_to_verify = CV_VERIFY.get + RUN_DIAGNOSTIC = tk.IntVar() + RUN_DIAGNOSTIC.set(1) + tk.Checkbutton(input_panel, text="Diagnostic report", variable=RUN_DIAGNOSTIC).grid(row=6, + column=4, + sticky=tk.W) + params.is_to_diagnostic = RUN_DIAGNOSTIC.get + LOGGER_DEBUG = tk.IntVar() - tk.Checkbutton(input_panel, text="Logger in debug mode", variable=LOGGER_DEBUG).grid(row=4, + tk.Checkbutton(input_panel, text="Logger in debug mode", variable=LOGGER_DEBUG).grid(row=7, column=4, sticky=tk.W) params.is_debug = LOGGER_DEBUG.get - - EXPORT_CONTROLLER = tk.IntVar() - EXPORT_CONTROLLER.set(1) - tk.Checkbutton(input_panel, text="Export Controller", variable=EXPORT_CONTROLLER).grid(row=5, - column=4, - sticky=tk.W) - params.export_controller = EXPORT_CONTROLLER.get # row 2 col 4 stop_button = tk.Button(input_panel, text='Cancel', width=8, - command=lambda: cancel(input_panel)) + command=lambda: cancel(app, input_panel)) stop_button.grid(row=2, column=7, sticky='e', padx=4, pady=4) # app, get_dst_dir, input_panel, entry_fname, is_to_verify, is_debug, pv_as_slack, diff --git a/pandapower/converter/powerfactory/logger_setup.py b/pandapower/converter/powerfactory/logger_setup.py index ae1767509..0ea1f0644 100644 --- a/pandapower/converter/powerfactory/logger_setup.py +++ b/pandapower/converter/powerfactory/logger_setup.py @@ -1,11 +1,9 @@ -from logging import StreamHandler +from logging import StreamHandler, Formatter try: import pandaplan.core.pplog as logging - logger = logging.logger except ImportError: import logging - logger = logging.getLogger(__name__) class AppHandler(StreamHandler): @@ -17,7 +15,7 @@ def __init__(self, app, freeze_app_between_messages=False): self.PrintWarn = app.PrintWarn self.PrintError = app.PrintError self.name = 'PowerFactory Converter' - formatter = logging.Formatter('%(message)s') + formatter = Formatter('%(message)s') self.setFormatter(formatter) self.freeze_app_between_messages = freeze_app_between_messages diff --git a/pandapower/converter/powerfactory/main_pf.py b/pandapower/converter/powerfactory/main_pf.py index 5917e189d..7aaa32ae3 100644 --- a/pandapower/converter/powerfactory/main_pf.py +++ b/pandapower/converter/powerfactory/main_pf.py @@ -6,13 +6,15 @@ import pandas import pandapower as pp +from pandapower import diagnostic try: import pandaplan.core.pplog as logging - logger = logging.logger except ImportError: import logging - logger = logging.getLogger(__name__) + +logger = logging.getLogger(__name__) +root_logger = logging.getLogger() from pandapower.converter.powerfactory.echo_off import echo_off, echo_on from pandapower.converter.powerfactory.pp_import_functions import from_pf @@ -75,12 +77,16 @@ def save_net(net, filepath, save_as): raise ValueError('tried to save grid as %s to %s and failed :(' % (save_as, filepath)) -def exit_gracefully(msg, is_err): +def exit_gracefully(app, input_panel, msg, is_err): if is_err: logger.error('Execution terminated: %s' % msg, exc_info=True) else: logger.info('Execution finished: %s' % msg) echo_on(app) + input_panel.destroy() + # del(app) + # quit() + sys.exit(1 if is_err else 0) def run_export(app, pv_as_slack, pf_variable_p_loads, pf_variable_p_gen, scale_feeder_loads=False, @@ -115,9 +121,9 @@ def run_verify(net, load_flow_params=None): logger.info('Validating import...') if load_flow_params is None: load_flow_params = { - 'tolerance_mva': 1e-9, # tolerance of load flow calculation - 'calculate_voltage_angles': True, # set True for meshed networks - 'init': 'dc', # initialization of load flow: 'flat', 'dc', 'results' + # 'tolerance_mva': 1e-9, # tolerance of load flow calculation + # 'calculate_voltage_angles': True, # set True for meshed networks + # 'init': 'dc', # initialization of load flow: 'flat', 'dc', 'results' 'PF_MAX_IT': 500 # Pypower option, maximal iterations, passed with kwargs } logger.debug('load flow params: %s' % load_flow_params) @@ -125,14 +131,15 @@ def run_verify(net, load_flow_params=None): return all_diffs -def calc(app, input_panel, entry_path_dst, entry_fname, is_to_verify, is_debug, pv_as_slack, - pf_variable_p_loads, pf_variable_p_gen, flag_graphics, handle_us, save_as, tap_opt, - export_controller, max_iter_entry): +def calc(app, input_panel, entry_path_dst, entry_fname, pv_as_slack, export_controller, + replace_zero_branches, is_to_verify, is_to_diagnostic, is_debug, + pf_variable_p_loads, pf_variable_p_gen, flag_graphics, handle_us, + save_as, tap_opt, max_iter_entry): # check if logger is to be in debug mode if is_debug(): - pflog.set_PF_level(logger, app_handler, 'DEBUG') + pflog.set_PF_level(root_logger, app_handler, 'DEBUG') else: - pflog.set_PF_level(logger, app_handler, 'INFO') + pflog.set_PF_level(root_logger, app_handler, 'INFO') logger.debug('starting script') echo_off(app, err=1, warn=1, info=1) # start_button.config(state="disabled") @@ -140,13 +147,13 @@ def calc(app, input_panel, entry_path_dst, entry_fname, is_to_verify, is_debug, try: dst_dir = get_dst_dir(input_panel, entry_path_dst) except Exception as err: - exit_gracefully(err, True) + exit_gracefully(app, input_panel, err, True) return # ask for file name try: filename = get_filename(entry_fname, save_as()) except RuntimeError as err: - exit_gracefully(err, True) + exit_gracefully(app, input_panel, err, True) return logger.info('the destination directory is: <%s>' % dst_dir) @@ -159,6 +166,12 @@ def calc(app, input_panel, entry_path_dst, entry_fname, is_to_verify, is_debug, net = run_export(app, pv_as_slack(), pf_variable_p_loads(), pf_variable_p_gen(), scale_feeder_loads=False, flag_graphics=flag_graphics(), handle_us=handle_us(), save_as=save_as(), tap_opt=tap_opt(), export_controller=export_controller(), max_iter=max_iter) + if replace_zero_branches(): + pp.replace_zero_branches_with_switches(net, min_length_km=1e-2, + min_r_ohm_per_km=1.5e-3, min_x_ohm_per_km=1.5e-3, + min_c_nf_per_km=1.5e-3, + min_rft_pu=1.5e-5, min_xft_pu=1.5e-5, min_rtf_pu=1.5e-5, + min_xtf_pu=1.5e-5) # , min_r_ohm=1.5e-3, min_x_ohm=1.5e-3) logger.info('saving file to: <%s>' % filepath) save_net(net, filepath, save_as()) @@ -174,11 +187,13 @@ def calc(app, input_panel, entry_path_dst, entry_fname, is_to_verify, is_debug, # logger.info('saving file to: <%s>' % filepath) # save_net(net, filepath, save_as()) # logger.info('exported validated net') - # wrapping up - exit_gracefully('exiting script', False) - input_panel.destroy() - logger.removeHandler(app_handler) - exit() + if is_to_diagnostic(): + try: + diagnostic(net, warnings_only=True) + except Exception as err: + logger.error('Error in diagnostic for net: %s', err, exc_info=True) + root_logger.removeHandler(app_handler) + exit_gracefully(app, input_panel, 'exiting script', False) # if called from powerfactory, __name__ is also '__main__' @@ -196,7 +211,7 @@ def calc(app, input_panel, entry_path_dst, entry_fname, is_to_verify, is_debug, # logger, app_handler = pflog.setup_logger(app, __name__, 'INFO') # logger = logging.getLogger(__name__) app_handler = pflog.AppHandler(app, freeze_app_between_messages=True) - logger.addHandler(app_handler) + root_logger.addHandler(app_handler) logger.info('starting application') # user to store the project and folders @@ -221,6 +236,6 @@ def calc(app, input_panel, entry_path_dst, entry_fname, is_to_verify, is_debug, 'No project is activated. Please activate a project to perform PandaPower ' 'Export!') project_name = 'None' - logger.removeHandler(app_handler) + root_logger.removeHandler(app_handler) gui.make_gui(app, project_name, browse_dst, calc) diff --git a/pandapower/converter/powerfactory/pf_export_functions.py b/pandapower/converter/powerfactory/pf_export_functions.py index d805e6e01..41c9e7cbe 100644 --- a/pandapower/converter/powerfactory/pf_export_functions.py +++ b/pandapower/converter/powerfactory/pf_export_functions.py @@ -1,9 +1,9 @@ try: import pandaplan.core.pplog as logging - logger = logging.logger except ImportError: import logging - logger = logging.getLogger(__name__) + +logger = logging.getLogger(__name__) def create_network_dict(app, flag_graphics='GPS'): # elements to be exported from PowerFactory diff --git a/pandapower/converter/powerfactory/pp_import_functions.py b/pandapower/converter/powerfactory/pp_import_functions.py index eb3933979..4bb8c73e0 100644 --- a/pandapower/converter/powerfactory/pp_import_functions.py +++ b/pandapower/converter/powerfactory/pp_import_functions.py @@ -1,19 +1,20 @@ -import numpy as np -import math import bisect -from itertools import combinations +import math +import numbers import re +from itertools import combinations +import numpy as np import pandapower as pp -from pandas import DataFrame from pandapower.auxiliary import ADict +from pandas import DataFrame, Series try: import pandaplan.core.pplog as logging - logger = logging.logger except ImportError: import logging - logger = logging.getLogger(__name__) + +logger = logging.getLogger(__name__) # make wrapper for GetAttribute @@ -208,7 +209,7 @@ def from_pf(dict_net, pv_as_slack=True, pf_variable_p_loads='plini', pf_variable line_dict = {} n = 0 for n, line in enumerate(dict_net['ElmLne'], 0): - create_line(net=net, item=line, flag_graphics=flag_graphics, n=n, is_unbalanced=is_unbalanced) + create_line(net=net, item=line, flag_graphics=flag_graphics, corridor=n, is_unbalanced=is_unbalanced) logger.info('imported %d lines' % (len(net.line.line_idx.unique())) if len(net.line) else 0) net.line['section_idx'] = 0 if dict_net['global_parameters']["iopt_tem"] == 1: @@ -306,16 +307,45 @@ def add_additional_attributes(item, net, element, element_id, attr_list=None, at elif item.HasAttribute(attr): chr_name = ga(item, attr) if chr_name is not None: - net[element].loc[element_id, attr_dict[attr]] = chr_name + if isinstance(chr_name, (str, numbers.Number)): + net[element].loc[element_id, attr_dict[attr]] = chr_name + elif isinstance(chr_name, list): + if len(chr_name) > 1: + raise NotImplementedError(f"attribute {attr} is a list with more than 1 items - not supported.") + elif len(chr_name) == 0: + continue + net[element].loc[element_id, attr_dict[attr]] = chr_name[0] def create_bus(net, item, flag_graphics, is_unbalanced): + # add geo data + if flag_graphics == 'GPS': + x = ga(item, 'e:GPSlon') + y = ga(item, 'e:GPSlat') + elif flag_graphics == 'graphic objects': + graphic_object = get_graphic_object(item) + if graphic_object: + x = ga(graphic_object, 'rCenterX') + y = ga(graphic_object, 'rCenterY') + # add gr coord data + else: + x, y = 0, 0 + else: + x, y = 0, 0 + + # only values > 0+-1e-3 are entered into the bus_geodata + if x > 1e-3 or y > 1e-3: + geodata = (x, y) + else: + geodata = None + usage = ["b", "m", "n"] params = { 'name': item.loc_name, 'vn_kv': item.uknom, 'in_service': not bool(item.outserv), - 'type': usage[item.iUsage] + 'type': usage[item.iUsage], + 'geodata': geodata } logger.debug('>> creating bus <%s>' % params['name']) @@ -330,16 +360,6 @@ def create_bus(net, item, flag_graphics, is_unbalanced): get_pf_bus_results(net, item, bid, is_unbalanced) -# if item.HasResults(0): # 0 for 'm' results (whatever that is...) -# logger.debug('bus %s (#%d) has results' % (params['name'], bid)) -# vm_pu = ga(item, 'm:u') -# va_degree = ga(item, 'm:phiu') -# net.res_bus.at[bid, "pf_vm_pu"] = vm_pu -# net.res_bus.at[bid, "pf_va_degree"] = va_degree -# else: -# net.res_bus.at[bid, "pf_vm_pu"] = np.nan -# net.res_bus.at[bid, "pf_va_degree"] = np.nan - substat_descr = '' if item.HasAttribute('cpSubstat'): substat = item.cpSubstat @@ -366,7 +386,7 @@ def create_bus(net, item, flag_graphics, is_unbalanced): net.bus.at[bid, "substat"] = substat_descr net.bus.at[bid, "folder_id"] = item.fold_id.loc_name - add_additional_attributes(item, net, "bus", bid, attr_dict={"for_name": "equipment"}, + add_additional_attributes(item, net, "bus", bid, attr_dict={"for_name": "equipment", "cimRdfId": "origin_id"}, attr_list=["sernum", "chr_name", "cpSite.loc_name"]) # add geo data @@ -483,6 +503,7 @@ def get_connection_nodes(net, item, num_nodes): pf_bus = None if pf_bus is None: if num_nodes == 1: + logger.error(f"{item} has no connection node") raise IndexError buses.append(None) else: @@ -635,7 +656,7 @@ def get_coords_from_grf_object(item): return coords -def create_line(net, item, flag_graphics, n, is_unbalanced): +def create_line(net, item, flag_graphics, corridor, is_unbalanced): params = {'parallel': item.nlnum, 'name': item.loc_name} logger.debug('>> creating line <%s>' % params['name']) logger.debug('line <%s> has <%d> parallel lines' % (params['name'], params['parallel'])) @@ -665,13 +686,13 @@ def create_line(net, item, flag_graphics, n, is_unbalanced): coords = get_coords_from_grf_object(item) if len(line_sections) == 0: + if coords: + params["geodata"] = coords logger.debug('line <%s> has no sections' % params['name']) lid = create_line_normal(net=net, item=item, is_unbalanced=is_unbalanced, **params) sid_list = [lid] line_dict[item] = sid_list logger.debug('created line <%s> with index <%d>' % (params['name'], lid)) - if coords: - net.line_geodata.loc[lid, 'coords'] = coords else: logger.debug('line <%s> has sections' % params['name']) @@ -680,7 +701,7 @@ def create_line(net, item, flag_graphics, n, is_unbalanced): line_dict[item] = sid_list logger.debug('created <%d> line sections for line <%s>' % (len(sid_list), params['name'])) - net.line.loc[sid_list, "line_idx"] = n + net.line.loc[sid_list, "line_idx"] = corridor net.line.loc[sid_list, "folder_id"] = item.fold_id.loc_name net.line.loc[sid_list, "equipment"] = item.for_name create_connection_switches(net, item, 2, 'l', (params['bus1'], params['bus2']), @@ -867,7 +888,7 @@ def create_line_sections(net, item_list, line, bus1, bus2, coords, parallel, is_ return sid_list -def create_line_normal(net, item, bus1, bus2, name, parallel, is_unbalanced): +def create_line_normal(net, item, bus1, bus2, name, parallel, is_unbalanced, geodata=None): pf_type = item.typ_id std_type, type_created = create_line_type(net=net, item=pf_type, cable_in_air=item.inAir if item.HasAttribute( @@ -880,14 +901,14 @@ def create_line_normal(net, item, bus1, bus2, name, parallel, is_unbalanced): 'in_service': not bool(item.outserv), 'length_km': item.dline, 'df': item.fline, - 'std_type': std_type, 'parallel': parallel, 'alpha': pf_type.alpha if pf_type is not None else None, - 'temperature_degree_celsius': pf_type.tmax if pf_type is not None else None + 'temperature_degree_celsius': pf_type.tmax if pf_type is not None else None, + 'geodata': geodata } - if std_type is not None: #and not is_unbalanced:delete later + params["std_type"] = std_type logger.debug('creating normal line with type <%s>' % std_type) lid = pp.create_line(net, **params) else: @@ -929,12 +950,11 @@ def create_line_normal(net, item, bus1, bus2, name, parallel, is_unbalanced): lid = pp.create_line_from_parameters(net=net, **params) net.line.loc[lid, 'description'] = ' \n '.join(item.desc) if len(item.desc) > 0 else '' + if hasattr(item, "cimRdfId"): + chr_name = item.cimRdfId + if chr_name is not None and len(chr_name) > 0: + net["line"].loc[lid, 'origin_id'] = chr_name[0] -# if item.HasResults(-1): # -1 for 'c' results (whatever that is...) -# loading = ga(item, 'c:loading') -# net.res_line.at[lid, "pf_loading"] = loading -# else: -# net.res_line.at[lid, "pf_loading"] = np.nan get_pf_line_results(net, item, lid, is_unbalanced) return lid @@ -1026,7 +1046,7 @@ def create_ext_net(net, item, pv_as_slack, is_unbalanced): try: bus1 = get_connection_nodes(net, item, 1) except IndexError: - logger.debug("Cannot add Xnet '%s': not connected" % name) + logger.error("Cannot add Xnet '%s': not connected" % name) return logger.debug('found bus <%d> in net' % bus1) @@ -1189,8 +1209,11 @@ def map_sgen_type_var(pf_sgen_type): def get_power_multiplier(item, var): + if item.outserv: + return 1. if var == "m:P:bus1" and not item.HasResults(): - raise UserWarning(f"{item} does not have results - cannot get power multiplier") + return 1. + # raise UserWarning(f"{item} does not have results - cannot get power multiplier") exponent = item.GetAttributeUnit(var) if exponent.startswith('k'): multiplier = 1e-3 @@ -1558,7 +1581,7 @@ def create_load(net, item, pf_variable_p_loads, dict_net, is_unbalanced): params.bus = get_connection_nodes(net, item, 1) logger.debug('found bus <%d> in net' % params.bus) except IndexError: - logger.debug("Cannot add Load '%s': not connected" % params.name) + logger.error("Cannot add Load '%s': not connected" % params.name) return params.in_service = not bool(item.outserv) @@ -1707,7 +1730,7 @@ def create_sgen_genstat(net, item, pv_as_slack, pf_variable_p_gen, dict_net, is_ try: params.bus = get_connection_nodes(net, item, 1) except: - logger.debug("Cannot add Sgen '%s': not connected" % params.name) + logger.error("Cannot add Sgen '%s': not connected" % params.name) return params.update(ask(item, pf_variable_p_gen, 'p_mw', 'q_mvar', 'sn_mva')) @@ -1763,14 +1786,6 @@ def create_sgen_genstat(net, item, pv_as_slack, pf_variable_p_gen, dict_net, is_ net[element].at[sg, 'scaling'] = dict_net['global_parameters']['global_generation_scaling'] * item.scale0 get_pf_sgen_results(net, item, sg, is_unbalanced, element=element) -# if item.HasResults(0): # 'm' results... -# logger.debug('<%s> has results' % params.name) -# net['res_' + element].at[sg, "pf_p"] = ga(item, 'm:P:bus1') -# net['res_' + element].at[sg, "pf_q"] = ga(item, 'm:Q:bus1') -# else: -# net['res_' + element].at[sg, "pf_p"] = np.nan -# net['res_' + element].at[sg, "pf_q"] = np.nan - logger.debug('created genstat <%s> as element <%s> at index <%d>' % (params.name, element, sg)) @@ -1863,7 +1878,7 @@ def create_sgen_neg_load(net, item, pf_variable_p_loads, dict_net): try: params.bus = get_connection_nodes(net, item, 1) except IndexError: - logger.debug("Cannot add Sgen '%s': not connected" % params.name) + logger.error("Cannot add Sgen '%s': not connected" % params.name) return params.update(ask_load_params(item, pf_variable_p_loads=pf_variable_p_loads, @@ -1919,7 +1934,7 @@ def create_sgen_sym(net, item, pv_as_slack, pf_variable_p_gen, dict_net): try: bus1 = get_connection_nodes(net, item, 1) except IndexError: - logger.debug("Cannot add Sgen '%s': not connected" % name) + logger.error("Cannot add Sgen '%s': not connected" % name) return logger.debug('sgen <%s> is a %s' % (name, {True: 'motor', False: 'generator'}[is_motor])) @@ -1993,9 +2008,15 @@ def create_sgen_asm(net, item, pf_variable_p_gen, dict_net): logger.debug('in_service: %s' % in_service) + try: + bus = get_connection_nodes(net, item, 1) + except IndexError: + logger.error("Cannot add Sgen asm '%s': not connected" % item.loc_name) + return + params = { 'name': item.loc_name, - 'bus': get_connection_nodes(net, item, 1), + 'bus': bus, 'p_mw': item.pgini * multiplier, 'q_mvar': item.qgini * multiplier if item.bustp == 'PQ' else q_res, 'in_service': in_service, @@ -2007,7 +2028,7 @@ def create_sgen_asm(net, item, pf_variable_p_gen, dict_net): sid = pp.create_sgen(net, **params) net.sgen.loc[sid, 'description'] = ' \n '.join(item.desc) if len(item.desc) > 0 else '' - add_additional_attributes(item, net, "sgen", sid, attr_dict={"for_name": "equipment"}, + add_additional_attributes(item, net, "sgen", sid, attr_dict={"for_name": "equipment", "cimRdfId": "origin_id"}, attr_list=["sernum", "chr_name", "cpSite.loc_name"]) if item.HasResults(0): @@ -2114,6 +2135,9 @@ def create_trafo(net, item, export_controller=True, tap_opt="nntap", is_unbalanc # figure out trafo type pf_type = item.typ_id + if pf_type is None: + logger.error('cannot create transformer <%s>: missing type' % name) + return std_type, type_created = create_trafo_type(net=net, item=pf_type) # figure out current tap position @@ -2163,14 +2187,6 @@ def create_trafo(net, item, export_controller=True, tap_opt="nntap", is_unbalanc get_pf_trafo_results(net, item, tid, is_unbalanced) - # assign loading from power factory results -# if item.HasResults(-1): # -1 for 'c' results (whatever that is...) -# logger.debug('trafo <%s> has results' % name) -# loading = ga(item, 'c:loading') -# net.res_trafo.at[tid, "pf_loading"] = loading -# else: -# net.res_trafo.at[tid, "pf_loading"] = np.nan - # adding switches # False if open, True if closed, None if no switch create_connection_switches(net, item, 2, 't', (bus1, bus2), (tid, tid)) @@ -2203,21 +2219,17 @@ def create_trafo(net, item, export_controller=True, tap_opt="nntap", is_unbalanc logger.debug('trafo <%s> has discrete tap controller with ' 'u_low = %.3f, u_up = %.3f, side = %s' % (name, vm_lower_pu, vm_upper_pu, side)) try: - tap_changer = control.DiscreteTapControl(net, tid, side=side, - vm_lower_pu=vm_lower_pu, - vm_upper_pu=vm_upper_pu) + control.DiscreteTapControl(net, tid, side=side, vm_lower_pu=vm_lower_pu, vm_upper_pu=vm_upper_pu) except BaseException as err: logger.error('error while creating discrete tap controller at trafo <%s>' % name) logger.error('Error: %s' % err) - tap_changer = None else: logger.debug('created discrete tap controller at trafo <%s>' % name) else: logger.debug('trafo <%s> has no tap controller' % name) - tap_changer = None add_additional_attributes(item, net, element='trafo', element_id=tid, - attr_dict={'e:cpSite.loc_name': 'site', 'for_name': 'equipment'}) + attr_dict={'e:cpSite.loc_name': 'site', 'for_name': 'equipment', "cimRdfId": "origin_id"}) if pf_type.itapzdep: x_points = (net.trafo.at[tid, "tap_min"], net.trafo.at[tid, "tap_neutral"], net.trafo.at[tid, "tap_max"]) vk_min, vk_neutral, vk_max = pf_type.uktmn, net.trafo.at[tid, "vk_percent"], pf_type.uktmx @@ -2230,7 +2242,6 @@ def create_trafo(net, item, export_controller=True, tap_opt="nntap", is_unbalanc pp.control.create_trafo_characteristics(net, trafotable="trafo", trafo_index=tid, variable="vkr_percent", x_points=x_points, y_points=(vkr_min, vkr_neutral, vkr_max)) - return tap_changer def get_pf_trafo_results(net, item, tid, is_unbalanced): trafo_type = None @@ -2265,11 +2276,13 @@ def create_trafo3w(net, item, tap_opt='nntap'): # not tested properly yet... logger.debug('importing 3W-trafo <%s>' % item.loc_name) pf_type = item.typ_id + try: bus1, bus2, bus3 = get_connection_nodes(net, item, 3) except IndexError: - logger.debug("Cannot add Trafo3W '%s': not connected" % item.loc_name) + logger.error("Cannot add Trafo3W '%s': not connected" % item.loc_name) return + logger.debug('%s; %s; %s' % (bus1, bus2, bus3)) if not (net.bus.vn_kv.at[bus1] >= net.bus.vn_kv.at[bus2] >= net.bus.vn_kv.at[bus3]): logger.error('trafo <%s>: violated condition of HV > LV!' % item.loc_name) @@ -2316,7 +2329,7 @@ def create_trafo3w(net, item, tap_opt='nntap'): if item.nt3nm != 1: logger.warning("trafo3w %s has parallel=%d, this is not implemented. " - "Calculation results will be incorrect." % (item.loc_name, item.nt3mn)) + "Calculation results will be incorrect." % (item.loc_name, item.nt3nm)) if item.HasAttribute('t:du3tp_h'): steps = [pf_type.du3tp_h, pf_type.du3tp_m, pf_type.du3tp_l] @@ -2365,7 +2378,8 @@ def create_trafo3w(net, item, tap_opt='nntap'): # logger.debug('created connection switches for trafo 3w successfully') add_additional_attributes(item, net, element='trafo3w', element_id=tid, attr_dict={'cpSite.loc_name': 'site', 'for_name': 'equipment', - 'typ_id.loc_name': 'std_type', 'usetp': 'vm_set_pu'}) + 'typ_id.loc_name': 'std_type', 'usetp': 'vm_set_pu', + "cimRdfId": "origin_id"}) # assign loading from power factory results if item.HasResults(-1): # -1 for 'c' results (whatever that is...) @@ -2411,10 +2425,7 @@ def create_coup(net, item, is_fuse=False): try: bus1, bus2 = get_connection_nodes(net, item, 2) except IndexError: - logger.debug("Cannot add Coup '%s': not connected" % name) - return - except IndexError: - logger.error("Error while exporting Coup '%s'!" % name) + logger.error("Cannot add Coup '%s': not connected" % name) return propagate_bus_coords(net, bus1, bus2) @@ -2429,6 +2440,10 @@ def create_coup(net, item, is_fuse=False): cd = pp.create_switch(net, name=name, bus=bus1, element=bus2, et='b', closed=switch_is_closed, type=switch_usage) + + add_additional_attributes(item, net, element='switch', element_id=cd, + attr_list=['cpSite.loc_name'], attr_dict={"cimRdfId": "origin_id"}) + logger.debug('created switch at index <%d>, closed = %s, usage = %s' % (cd, switch_is_closed, switch_usage)) @@ -2464,16 +2479,27 @@ def create_coup(net, item, is_fuse=False): def create_shunt(net, item): + try: + bus = get_connection_nodes(net, item, 1) + except IndexError: + logger.error("Cannot add Shunt '%s': not connected" % item.loc_name) + return + multiplier = get_power_multiplier(item, 'Qact') params = { 'name': item.loc_name, - 'bus': get_connection_nodes(net, item, 1), + 'bus': bus, 'in_service': monopolar_in_service(item), 'vn_kv': item.ushnm, 'q_mvar': item.Qact * multiplier } - if item.shtype == 2: + if item.shtype == 1: + # Shunt is an R-L element + params['q_mvar'] = item.qrean * multiplier + p_mw = (item.ushnm ** 2 * item.rrea / (item.rrea ** 2 + item.xrea ** 2)) * multiplier + sid = pp.create_shunt(net, p_mw=p_mw, **params) + elif item.shtype == 2: # Shunt is a capacitor bank loss_factor = item.tandc sid = pp.create_shunt_as_capacitor(net, loss_factor=loss_factor, **params) @@ -2491,7 +2517,7 @@ def create_shunt(net, item): sid = pp.create_shunt(net, p_mw=p_mw, **params) add_additional_attributes(item, net, element='shunt', element_id=sid, - attr_list=['cpSite.loc_name']) + attr_list=['cpSite.loc_name'], attr_dict={"cimRdfId": "origin_id"}) if item.HasResults(0): net.res_shunt.loc[sid, 'pf_p'] = ga(item, 'm:P:bus1') * multiplier @@ -2506,7 +2532,11 @@ def _add_shunt_to_impedance_bus(net, item, bus): def create_zpu(net, item): - bus1, bus2 = get_connection_nodes(net, item, 2) + try: + (bus1, bus2) = get_connection_nodes(net, item, 2) + except IndexError: + logger.error("Cannot add ZPU '%s': not connected" % item.loc_name) + return logger.debug('bus1 = %d, bus2 = %d' % (bus1, bus2)) # net, from_bus, to_bus, r_pu, x_pu, sn_Mva, name=None, in_service=True, index=None @@ -2523,7 +2553,9 @@ def create_zpu(net, item): } logger.debug('params = %s' % params) - pp.create_impedance(net, **params) + xid = pp.create_impedance(net, **params) + add_additional_attributes(item, net, element='impedance', element_id=xid, attr_list=["cpSite.loc_name"], + attr_dict={"cimRdfId": "origin_id"}) # create shunts at the buses connected to the impedance if ~np.isclose(item.gi_pu, 0) or ~np.isclose(item.bi_pu, 0): @@ -2537,9 +2569,15 @@ def create_vac(net, item): not tested yet """ + try: + bus = get_connection_nodes(net, item, 1) + except IndexError: + logger.error("Cannot add VAC '%s': not connected" % item.loc_name) + return + params = { 'name': item.loc_name, - 'bus': get_connection_nodes(net, item, 1), + 'bus': bus, 'ps_mw': item.Pload - item.Pgen, 'qs_mvar': item.Qload - item.Qgen, 'pz_mw': item.Pzload, @@ -2588,7 +2626,8 @@ def create_vac(net, item): net['res_%s' % elm].at[xid, "pf_p"] = np.nan net['res_%s' % elm].at[xid, "pf_q"] = np.nan - add_additional_attributes(item, net, element=elm, element_id=xid, attr_list=["cpSite.loc_name"]) + add_additional_attributes(item, net, element=elm, element_id=xid, attr_list=["cpSite.loc_name"], + attr_dict={"cimRdfId": "origin_id"}) logger.debug('added pf_p and pf_q to {} {}: {}'.format(elm, xid, net['res_' + elm].loc[ xid, ["pf_p", 'pf_q']].values)) @@ -2597,7 +2636,12 @@ def create_vac(net, item): def create_sind(net, item): # series reactor is modelled as per-unit impedance, values in Ohm are calculated into values in # per unit at creation - bus1, bus2 = get_connection_nodes(net, item, 2) + try: + (bus1, bus2) = get_connection_nodes(net, item, 2) + except IndexError: + logger.error("Cannot add Sind '%s': not connected" % item.loc_name) + return + sind = pp.create_series_reactor_as_impedance(net, from_bus=bus1, to_bus=bus2, r_ohm=item.rrea, x_ohm=item.xrea, sn_mva=item.Sn, name=item.loc_name, diff --git a/pandapower/converter/powerfactory/validate.py b/pandapower/converter/powerfactory/validate.py index e88b29ac3..9fa3121fb 100644 --- a/pandapower/converter/powerfactory/validate.py +++ b/pandapower/converter/powerfactory/validate.py @@ -8,10 +8,10 @@ try: import pandaplan.core.pplog as logging - logger = logging.logger except ImportError: import logging - logger = logging.getLogger(__name__) + +logger = logging.getLogger(__name__) def _get_pf_results(net, is_unbalanced=False): if not net["pf_converged"]: @@ -32,21 +32,21 @@ def _get_pf_results_balanced(net): 'res_switch' in net.keys() else pd.Series(dtype=np.float64) pf_bus_vm = net.res_bus.pf_vm_pu.replace(0, np.nan) pf_bus_va = net.res_bus.pf_va_degree - pf_ext_grid_p = net.res_ext_grid.pf_p - pf_ext_grid_q = net.res_ext_grid.pf_q - pf_gen_p = net.res_gen.pf_p if len(net.gen) > 0 else pd.Series([], dtype=np.float64) - pf_gen_q = net.res_gen.pf_q if len(net.gen) > 0 else pd.Series([], dtype=np.float64) - pf_ward_p = net.res_ward.pf_p if len(net.ward) > 0 else pd.Series([], dtype=np.float64) - pf_ward_q = net.res_ward.pf_q if len(net.ward) > 0 else pd.Series([], dtype=np.float64) - pf_xward_p = net.res_xward.pf_p if len(net.xward) > 0 else pd.Series([], dtype=np.float64) - pf_xward_q = net.res_xward.pf_q if len(net.xward) > 0 else pd.Series([], dtype=np.float64) - pf_sgen_p = net.res_sgen.pf_p if len(net.sgen) > 0 else pd.Series([], dtype=np.float64) - pf_sgen_q = net.res_sgen.pf_q if len(net.sgen) > 0 else pd.Series([], dtype=np.float64) - pf_load_p = net.res_load.pf_p if len(net.load) > 0 else pd.Series([], dtype=np.float64) - pf_load_q = net.res_load.pf_q if len(net.load) > 0 else pd.Series([], dtype=np.float64) - pf_line_loading = net.res_line.pf_loading if len(net.line) > 0 else pd.Series([], dtype=np.float64) - pf_trafo_loading = net.res_trafo.pf_loading if len(net.trafo) > 0 else pd.Series([], dtype=np.float64) - pf_trafo3w_loading = net.res_trafo3w.pf_loading if len(net.trafo3w) > 0 else pd.Series([], dtype=np.float64) + pf_ext_grid_p = net.res_ext_grid.get("pf_p", pd.Series([], dtype=np.float64)) + pf_ext_grid_q = net.res_ext_grid.get("pf_q", pd.Series([], dtype=np.float64)) + pf_gen_p = net.res_gen.get("pf_p", pd.Series([], dtype=np.float64)) + pf_gen_q = net.res_gen.get("pf_q", pd.Series([], dtype=np.float64)) + pf_ward_p = net.res_ward.get("pf_p", pd.Series([], dtype=np.float64)) + pf_ward_q = net.res_ward.get("pf_q", pd.Series([], dtype=np.float64)) + pf_xward_p = net.res_xward.get("pf_p", pd.Series([], dtype=np.float64)) + pf_xward_q = net.res_xward.get("pf_q", pd.Series([], dtype=np.float64)) + pf_sgen_p = net.res_sgen.get("pf_p", pd.Series([], dtype=np.float64)) + pf_sgen_q = net.res_sgen.get("pf_q", pd.Series([], dtype=np.float64)) + pf_load_p = net.res_load.get("pf_p", pd.Series([], dtype=np.float64)) + pf_load_q = net.res_load.get("pf_q", pd.Series([], dtype=np.float64)) + pf_line_loading = net.res_line.get("pf_loading", pd.Series([], dtype=np.float64)) + pf_trafo_loading = net.res_trafo.get("pf_loading", pd.Series([], dtype=np.float64)) + pf_trafo3w_loading = net.res_trafo3w.get("pf_loading", pd.Series([], dtype=np.float64)) pf_results = { "pf_bus_vm": pf_bus_vm, "pf_bus_va": pf_bus_va, "pf_ext_grid_p": pf_ext_grid_p, @@ -244,29 +244,17 @@ def validate_pf_conversion(net, is_unbalanced=False, **kwargs): logger.debug('starting verification') replace_zero_branches_with_switches(net) pf_results = _get_pf_results(net, is_unbalanced=is_unbalanced) - if "controller" not in net.keys() or len(net.controller) == 0: - try: - for arg in 'trafo_model check_connectivity'.split(): - if arg in kwargs: - kwargs.pop(arg) - if is_unbalanced: - logger.info("running pandapower 3ph loadflow") - pp.runpp_3ph(net, trafo_model="t", check_connectivity=True, **kwargs) - else: - logger.info("running pandapower loadflow") - pp.runpp(net, trafo_model="t", check_connectivity=True, **kwargs) - except Exception as err: - logger.error('pandapower load flow failed: %s' % err, exc_info=True) - diagnostic(net) - raise err + + run_control = "controller" in net.keys() and len(net.controller) > 0 + for arg in 'trafo_model check_connectivity'.split(): + if arg in kwargs: + kwargs.pop(arg) + if is_unbalanced: + logger.info("running pandapower 3ph loadflow") + pp.runpp_3ph(net, trafo_model="t", check_connectivity=True, run_control=run_control, **kwargs) else: - import pandapower.control as control - try: - control.run_control(net, max_iter=50, trafo_model="t", check_connectivity=True, **kwargs) - except Exception as err: - logger.error('pandapower load flow with converter failed: %s' % err) - diagnostic(net) - raise err + logger.info("running pandapower loadflow") + pp.runpp(net, trafo_model="t", check_connectivity=True, run_control=run_control, **kwargs) all_diffs = dict() logger.info('pandapower net converged: %s' % net.converged) From 0152f874b354b1aeac86d58afe09963b98fd716d Mon Sep 17 00:00:00 2001 From: Roman Bolgaryn Date: Thu, 29 Feb 2024 16:16:14 +0100 Subject: [PATCH 30/39] remove future warning --- pandapower/toolbox/grid_modification.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pandapower/toolbox/grid_modification.py b/pandapower/toolbox/grid_modification.py index a03262d19..b876d72d6 100644 --- a/pandapower/toolbox/grid_modification.py +++ b/pandapower/toolbox/grid_modification.py @@ -749,7 +749,7 @@ def drop_measurements_at_elements(net, element_type, idx=None, side=None): idx = ensure_iterability(idx) if idx is not None else net[element_type].index bool1 = net.measurement.element_type == element_type bool2 = net.measurement.element.isin(idx) - bool3 = net.measurement.side == side if side is not None else [True]*net.measurement.shape[0] + bool3 = net.measurement.side == side if side is not None else np.full(net.measurement.shape[0], 1, dtype=bool) to_drop = net.measurement.index[bool1 & bool2 & bool3] net.measurement.drop(to_drop, inplace=True) From 6aa3f2a0c80c1c93e394814f01d9b532fd26888c Mon Sep 17 00:00:00 2001 From: Roman Bolgaryn Date: Fri, 8 Mar 2024 11:42:24 +0100 Subject: [PATCH 31/39] PostgreSQL I/O: allow passing grid_tables as parameter --- CHANGELOG.rst | 1 + pandapower/io_utils.py | 4 ++-- pandapower/sql_io.py | 13 +++++++------ 3 files changed, 10 insertions(+), 8 deletions(-) diff --git a/CHANGELOG.rst b/CHANGELOG.rst index d94ac60c1..dee30f99c 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -48,6 +48,7 @@ Change Log - [FIXED] in :code:`reindex_elements`: fixed index error when reindexing line_geodata - [FIXED] bug in :code:`cim2pp`: Changed zero prioritized generators with voltage controller to sgens (like PowerFactory does) - [ADDED] cim2pp: added description fields for each asset and added BusbarSection information to nodes +- [CHANGED] allow providing grid_tables as a parameter to the function that downloads net from PostgreSQL [2.13.1] - 2023-05-12 ------------------------------- diff --git a/pandapower/io_utils.py b/pandapower/io_utils.py index ed89a0fa9..8ac2d4b16 100644 --- a/pandapower/io_utils.py +++ b/pandapower/io_utils.py @@ -260,8 +260,8 @@ def from_dict_of_dfs(dodfs, net=None): # set the index to be Int try: net[item].set_index(net[item].index.astype(np.int64), inplace=True) - except TypeError: - # TypeError: if not int index (e.g. str) + except (TypeError, ValueError): + # TypeError or ValueError: if not int index (e.g. str) pass if "dtypes" in dodfs: restore_all_dtypes(net, dodfs["dtypes"]) diff --git a/pandapower/sql_io.py b/pandapower/sql_io.py index d842976e1..ae1ba1c51 100644 --- a/pandapower/sql_io.py +++ b/pandapower/sql_io.py @@ -241,7 +241,7 @@ def delete_postgresql_net(grid_id, host, user, password, database, schema, grid_ def from_sql(conn, schema, grid_id, grid_id_column="grid_id", grid_catalogue_name="grid_catalogue", - empty_dict_like_object=None): + empty_dict_like_object=None, grid_tables=None): """ Downloads an existing pandapowerNet from a PostgreSQL database. @@ -266,9 +266,10 @@ def from_sql(conn, schema, grid_id, grid_id_column="grid_id", grid_catalogue_nam """ cursor = conn.cursor() id_columns = {grid_id_column: grid_id} - catalogue_table_name = grid_catalogue_name if schema is None else f"{schema}.{grid_catalogue_name}" - check_postgresql_catalogue_table(cursor, catalogue_table_name, grid_id, grid_id_column, download=True) - grid_tables = download_sql_table(cursor, "grid_tables" if schema is None else f"{schema}.grid_tables", **id_columns) + if grid_tables is None: + catalogue_table_name = grid_catalogue_name if schema is None else f"{schema}.{grid_catalogue_name}" + check_postgresql_catalogue_table(cursor, catalogue_table_name, grid_id, grid_id_column, download=True) + grid_tables = download_sql_table(cursor, "grid_tables" if schema is None else f"{schema}.grid_tables", **id_columns) d = {} for element in grid_tables.table.values: @@ -430,7 +431,7 @@ def to_postgresql(net, host, user, password, database, schema, include_results=F def from_postgresql(grid_id, host, user, password, database, schema, grid_id_column="grid_id", - grid_catalogue_name="grid_catalogue", empty_dict_like_object=None): + grid_catalogue_name="grid_catalogue", empty_dict_like_object=None, grid_tables=None): """ Downloads an existing pandapowerNet from a PostgreSQL database. @@ -463,6 +464,6 @@ def from_postgresql(grid_id, host, user, password, database, schema, grid_id_col raise UserWarning("install the package psycopg2 to use PostgreSQL I/O in pandapower") with psycopg2.connect(host=host, user=user, password=password, database=database) as conn: - net = from_sql(conn, schema, grid_id, grid_id_column, grid_catalogue_name, empty_dict_like_object) + net = from_sql(conn, schema, grid_id, grid_id_column, grid_catalogue_name, empty_dict_like_object, grid_tables) return net From 685ca90f4f4e0515152e1e41a7812c5c14cc2df1 Mon Sep 17 00:00:00 2001 From: David Heck Date: Mon, 11 Mar 2024 12:57:39 +0100 Subject: [PATCH 32/39] changes cim2pp documentation (#2231) * change for loop for folder in documentation * update changelog --- CHANGELOG.rst | 1 + doc/converter/cgmes.rst | 11 +++++------ 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/CHANGELOG.rst b/CHANGELOG.rst index dee30f99c..2cf9961f9 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -48,6 +48,7 @@ Change Log - [FIXED] in :code:`reindex_elements`: fixed index error when reindexing line_geodata - [FIXED] bug in :code:`cim2pp`: Changed zero prioritized generators with voltage controller to sgens (like PowerFactory does) - [ADDED] cim2pp: added description fields for each asset and added BusbarSection information to nodes +- [CHANGED] cim2pp: reformat documentation for reading in files - [CHANGED] allow providing grid_tables as a parameter to the function that downloads net from PostgreSQL [2.13.1] - 2023-05-12 diff --git a/doc/converter/cgmes.rst b/doc/converter/cgmes.rst index bd5a82aaa..9e2c29d62 100644 --- a/doc/converter/cgmes.rst +++ b/doc/converter/cgmes.rst @@ -28,12 +28,6 @@ The recommended way to select the CGMES-files is via the "file_list" parameter. It accepts a folder of xml- or zip-files, a single zip-file or several zip-files as a list. For example: -Folder of xml or zip files :: - - import os - curr_xml_dir = 'example_cim\\test\\' - cgmes_files = [curr_xml_dir + x for x in os.listdir(curr_xml_dir)] - Example of a single zip file :: cgmes_files = r'example_cim\CGMES_v2.4.15_RealGridTestConfiguration_v2.zip' @@ -43,6 +37,11 @@ Example of several zip files :: cgmes_files = [r'example_cim\CGMES_v2.4.15_SmallGridTestConfiguration_Boundary_v3.0.0.zip', r'example_cim\CGMES_v2.4.15_SmallGridTestConfiguration_BaseCase_Complete_v3.0.0.zip'] +Folder of xml or zip files :: + + import os + curr_xml_dir = 'example_cim\\test' + cgmes_files = [curr_xml_dir + os.sep + x for x in os.listdir(curr_xml_dir)] To start the converter, the following line is used. As a result it returns a pandapower network. :: From 5751bfd7a1c2ca89ce5f3d71c1aaf8639efb8168 Mon Sep 17 00:00:00 2001 From: Steffen Meinecke Date: Wed, 13 Mar 2024 11:31:19 +0100 Subject: [PATCH 33/39] some adaptions concerning pandas 2.2 FutureWarnings --- pandapower/create.py | 7 +-- pandapower/networks/cigre_networks.py | 14 ++--- pandapower/networks/create_examples.py | 2 +- pandapower/toolbox/grid_modification.py | 82 +++++++++++++------------ 4 files changed, 52 insertions(+), 53 deletions(-) diff --git a/pandapower/create.py b/pandapower/create.py index 1a747210e..30e24dedb 100644 --- a/pandapower/create.py +++ b/pandapower/create.py @@ -2689,7 +2689,7 @@ def create_transformer(net, hv_bus, lv_bus, std_type, name=None, tap_pos=nan, in _set_value_if_not_nan(net, index, xn_ohm, "xn_ohm", "trafo") # tap_phase_shifter default False - net.trafo.tap_phase_shifter.fillna(False, inplace=True) + net.trafo.tap_phase_shifter = net.trafo.tap_phase_shifter.fillna(False) if "tap2_phase_shifter" in net.trafo.columns: net.trafo.tap2_phase_shifter = net.trafo.tap2_phase_shifter.fillna(False).astype(bool_) @@ -5046,10 +5046,7 @@ def check_entry(val): net[table][col] = val # extend the table by the frame we just created - try: - net[table] = pd.concat([net[table], dd], sort=False) - except ValueError: - net[table] = pd.concat([net[table], dd[dd.columns]], sort=False) + net[table] = pd.concat([net[table], dd[dd.columns[~dd.isnull().all()]]], sort=False) # and preserve dtypes diff --git a/pandapower/networks/cigre_networks.py b/pandapower/networks/cigre_networks.py index 55181f80c..855219649 100644 --- a/pandapower/networks/cigre_networks.py +++ b/pandapower/networks/cigre_networks.py @@ -3,7 +3,7 @@ # Copyright (c) 2016-2023 by University of Kassel and Fraunhofer Institute for Energy Economics # and Energy System Technology (IEE), Kassel. All rights reserved. - +import io from pandas import read_json from numpy import nan import pandapower as pp @@ -127,12 +127,12 @@ def create_cigre_network_hv(length_km_6a_6b=0.1): pp.create_shunt(net_cigre_hv, bus6a, p_mw=0.0, q_mvar=-180, name='Shunt 6a') # Bus geo data - net_cigre_hv.bus_geodata = read_json( + net_cigre_hv.bus_geodata = read_json(io.StringIO( """{"x":{"0":4,"1":8,"2":20,"3":16,"4":12,"5":8,"6":12,"7":4,"8":20,"9":0,"10":8,"11":24, "12":16},"y":{"0":8.0,"1":8.0,"2":8.0,"3":8.0,"4":8.0,"5":6.0,"6":4.5,"7":1.0,"8":1.0, "9":8.0,"10":12.0,"11":8.0,"12":4.5}, "coords":{"0":NaN,"1":NaN,"2":NaN,"3":NaN,"4":NaN,"5":NaN,"6":NaN,"7":NaN,"8":NaN, - "9":NaN,"10":NaN,"11":NaN,"12":NaN}}""") + "9":NaN,"10":NaN,"11":NaN,"12":NaN}}""")) # Match bus.index net_cigre_hv.bus_geodata = net_cigre_hv.bus_geodata.loc[net_cigre_hv.bus.index] return net_cigre_hv @@ -285,13 +285,13 @@ def create_cigre_network_mv(with_der=False): name='Residential fuel cell 2', type='Residential fuel cell') # Bus geo data - net_cigre_mv.bus_geodata = read_json( + net_cigre_mv.bus_geodata = read_json(io.StringIO( """{"x":{"0":7.0,"1":4.0,"2":4.0,"3":4.0,"4":2.5,"5":1.0,"6":1.0,"7":8.0,"8":8.0,"9":6.0, "10":4.0,"11":4.0,"12":10.0,"13":10.0,"14":10.0}, "y":{"0":16,"1":15,"2":13,"3":11,"4":9, "5":7,"6":3,"7":3,"8":5,"9":5,"10":5,"11":7,"12":15,"13":11,"14":5}, "coords":{"0":NaN,"1":NaN,"2":NaN,"3":NaN,"4":NaN,"5":NaN,"6":NaN,"7":NaN,"8":NaN, - "9":NaN,"10":NaN,"11":NaN,"12":NaN,"13":NaN,"14":NaN}}""") + "9":NaN,"10":NaN,"11":NaN,"12":NaN,"13":NaN,"14":NaN}}""")) # Match bus.index net_cigre_mv.bus_geodata = net_cigre_mv.bus_geodata.loc[net_cigre_mv.bus.index] return net_cigre_mv @@ -513,7 +513,7 @@ def create_cigre_network_lv(): pp.create_switch(net_cigre_lv, bus0, busC0, et='b', closed=True, type='CB', name='S3') # Bus geo data - net_cigre_lv.bus_geodata = read_json( + net_cigre_lv.bus_geodata = read_json(io.StringIO( """{"x":{"0":0.2,"1":0.2,"2":-1.4583333333,"3":-1.4583333333,"4":-1.4583333333, "5":-1.9583333333,"6":-2.7083333333,"7":-2.7083333333,"8":-3.2083333333,"9":-3.2083333333, "10":-3.2083333333,"11":-3.7083333333,"12":-0.9583333333,"13":-1.2083333333, @@ -532,7 +532,7 @@ def create_cigre_network_lv(): "9":NaN,"10":NaN,"11":NaN,"12":NaN,"13":NaN,"14":NaN,"15":NaN,"16":NaN,"17":NaN, "18":NaN,"19":NaN,"20":NaN,"21":NaN,"22":NaN,"23":NaN,"24":NaN,"25":NaN,"26":NaN, "27":NaN,"28":NaN,"29":NaN,"30":NaN,"31":NaN,"32":NaN,"33":NaN,"34":NaN,"35":NaN, - "36":NaN,"37":NaN,"38":NaN,"39":NaN,"40":NaN,"41":NaN,"42":NaN,"43":NaN}}""") + "36":NaN,"37":NaN,"38":NaN,"39":NaN,"40":NaN,"41":NaN,"42":NaN,"43":NaN}}""")) # Match bus.index net_cigre_lv.bus_geodata = net_cigre_lv.bus_geodata.loc[net_cigre_lv.bus.index] return net_cigre_lv diff --git a/pandapower/networks/create_examples.py b/pandapower/networks/create_examples.py index 9d40eb80c..f0330d0c8 100644 --- a/pandapower/networks/create_examples.py +++ b/pandapower/networks/create_examples.py @@ -371,7 +371,7 @@ def example_multivoltage(): name='Switch %s - %s' % (net.bus.name.at[bus], line['name'])) open_switch_id = net.switch[(net.switch.name == 'Switch Bus MV5 - MV Line5')].index - net.switch.closed.loc[open_switch_id] = False + net.switch.loc[open_switch_id, "closed"] = False # LV # Bus-line switches diff --git a/pandapower/toolbox/grid_modification.py b/pandapower/toolbox/grid_modification.py index a03262d19..4a76d1271 100644 --- a/pandapower/toolbox/grid_modification.py +++ b/pandapower/toolbox/grid_modification.py @@ -510,9 +510,10 @@ def merge_same_bus_generation_plants(net, add_info=True, error=True, if "profiles" in net and col == "p_mw": elm = "gen" if "gen" in gen_df["elm_type"].loc[idxs[1:]].unique() else "sgen" - net.profiles["%s.p_mw" % elm].loc[:, uniq_idx] = net.profiles["%s.p_mw" % elm].loc[ + elm_p = "%s.p_mw" % elm + net.profiles[elm_p].loc[:, uniq_idx] = net.profiles[elm_p].loc[ :, gen_df["index"].loc[idxs]].sum(axis=1) - net.profiles["%s.p_mw" % elm].drop(columns=gen_df["index"].loc[idxs[1:]], inplace=True) + net.profiles[elm_p] = net.profiles[elm_p].drop(columns=gen_df["index"].loc[idxs[1:]]) if elm == "gen": net.profiles["%s.vm_pu" % elm].drop(columns=gen_df["index"].loc[idxs[1:]], inplace=True) @@ -532,7 +533,7 @@ def merge_same_bus_generation_plants(net, add_info=True, error=True, for elm in gen_df["elm_type"].loc[idxs[1:]].unique(): dupl_idx_elm = gen_df.loc[gen_df.index.isin(idxs[1:]) & (gen_df.elm_type == elm), "index"].values - net[elm].drop(dupl_idx_elm, inplace=True) + net[elm] = net[elm].drop(dupl_idx_elm) something_merged |= True return something_merged @@ -566,9 +567,9 @@ def fuse_buses(net, b1, b2, drop=True, fuse_bus_measurements=True): # --- reroute element connections from b2 to b1 for element, value in element_bus_tuples(): if net[element].shape[0]: - net[element][value].loc[net[element][value].isin(b2)] = b1 - net["switch"]["element"].loc[(net["switch"]["et"] == 'b') & ( - net["switch"]["element"].isin(b2))] = b1 + net[element].loc[net[element][value].isin(b2), value] = b1 + net["switch"].loc[(net["switch"]["et"] == 'b') & ( + net["switch"]["element"].isin(b2)), "element"] = b1 # --- reroute bus measurements from b2 to b1 if fuse_bus_measurements and net.measurement.shape[0]: @@ -621,13 +622,13 @@ def drop_elements_simple(net, element_type, element_index): element_index = ensure_iterability(element_index) detach_from_groups(net, element_type, element_index) - net[element_type].drop(element_index, inplace=True) + net[element_type] = net[element_type].drop(element_index) # res_element res_element_type = "res_" + element_type if res_element_type in net.keys() and isinstance(net[res_element_type], pd.DataFrame): drop_res_idx = net[res_element_type].index.intersection(element_index) - net[res_element_type].drop(drop_res_idx, inplace=True) + net[res_element_type] = net[res_element_type].drop(drop_res_idx) # logging if number := len(element_index) > 0: @@ -640,10 +641,10 @@ def drop_buses(net, buses, drop_elements=True): them as well. """ detach_from_groups(net, "bus", buses) - net["bus"].drop(buses, inplace=True) - net["bus_geodata"].drop(set(buses) & set(net["bus_geodata"].index), inplace=True) + net["bus"] = net["bus"].drop(buses) + net["bus_geodata"] = net["bus_geodata"].drop(set(buses) & set(net["bus_geodata"].index)) res_buses = net.res_bus.index.intersection(buses) - net["res_bus"].drop(res_buses, inplace=True) + net["res_bus"] = net["res_bus"].drop(res_buses) if drop_elements: drop_elements_at_buses(net, buses) drop_measurements_at_elements(net, "bus", idx=buses) @@ -661,7 +662,7 @@ def drop_trafos(net, trafos, table="trafo"): # remove any affected trafo or trafo3w switches i = net["switch"].index[(net["switch"]["element"].isin(trafos)) & (net["switch"]["et"] == et)] detach_from_groups(net, "switch", i) - net["switch"].drop(i, inplace=True) + net["switch"] = net["switch"].drop(i) num_switches = len(i) # drop measurements @@ -669,9 +670,9 @@ def drop_trafos(net, trafos, table="trafo"): # drop the trafos detach_from_groups(net, table, trafos) - net[table].drop(trafos, inplace=True) + net[table] = net[table].drop(trafos) res_trafos = net["res_" + table].index.intersection(trafos) - net["res_" + table].drop(res_trafos, inplace=True) + net["res_" + table] = net["res_" + table].drop(res_trafos) logger.debug("Dropped %i %s%s with %i switches" % ( len(trafos), table, plural_s(len(trafos)), num_switches)) @@ -684,17 +685,17 @@ def drop_lines(net, lines): # drop connected switches i = net["switch"][(net["switch"]["element"].isin(lines)) & (net["switch"]["et"] == "l")].index detach_from_groups(net, "switch", i) - net["switch"].drop(i, inplace=True) + net["switch"] = net["switch"].drop(i) # drop measurements drop_measurements_at_elements(net, "line", idx=lines) # drop lines and geodata detach_from_groups(net, "line", lines) - net["line"].drop(lines, inplace=True) - net["line_geodata"].drop(set(lines) & set(net["line_geodata"].index), inplace=True) + net["line"] = net["line"].drop(lines) + net["line_geodata"] = net["line_geodata"].drop(set(lines) & set(net["line_geodata"].index)) res_lines = net.res_line.index.intersection(lines) - net["res_line"].drop(res_lines, inplace=True) + net["res_line"] = net["res_line"].drop(res_lines) logger.debug("Dropped %i line%s with %i line switches" % ( len(lines), plural_s(len(lines)), len(i))) @@ -717,20 +718,20 @@ def drop_elements_at_buses(net, buses, bus_elements=True, branch_elements=True, else: n_el = net[element_type].shape[0] detach_from_groups(net, element_type, eid) - net[element_type].drop(eid, inplace=True) + net[element_type] = net[element_type].drop(eid) # res_element_type res_element_type = "res_" + element_type if res_element_type in net.keys() and isinstance(net[res_element_type], pd.DataFrame): res_eid = net[res_element_type].index.intersection(eid) - net[res_element_type].drop(res_eid, inplace=True) + net[res_element_type] = net[res_element_type].drop(res_eid) if net[element_type].shape[0] < n_el: logger.debug("Dropped %d %s elements" % ( n_el - net[element_type].shape[0], element_type)) # drop costs for the affected elements for cost_elm in ["poly_cost", "pwl_cost"]: - net[cost_elm].drop(net[cost_elm].index[ + net[cost_elm] = net[cost_elm].drop(net[cost_elm].index[ (net[cost_elm].et == element_type) & - (net[cost_elm].element.isin(eid))], inplace=True) + (net[cost_elm].element.isin(eid))]) if drop_measurements: drop_measurements_at_elements(net, "bus", idx=buses) @@ -738,7 +739,7 @@ def drop_elements_at_buses(net, buses, bus_elements=True, branch_elements=True, def drop_switches_at_buses(net, buses): i = net["switch"][(net["switch"]["bus"].isin(buses)) | ((net["switch"]["element"].isin(buses)) & (net["switch"]["et"] == "b"))].index - net["switch"].drop(i, inplace=True) + net["switch"] = net["switch"].drop(i) logger.debug("Dropped %d switches" % len(i)) @@ -749,9 +750,10 @@ def drop_measurements_at_elements(net, element_type, idx=None, side=None): idx = ensure_iterability(idx) if idx is not None else net[element_type].index bool1 = net.measurement.element_type == element_type bool2 = net.measurement.element.isin(idx) - bool3 = net.measurement.side == side if side is not None else [True]*net.measurement.shape[0] + bool3 = net.measurement.side == side if side is not None else pd.Series( + [True]*net.measurement.shape[0], index=net.measurement.index) to_drop = net.measurement.index[bool1 & bool2 & bool3] - net.measurement.drop(to_drop, inplace=True) + net.measurement = net.measurement.drop(to_drop) def drop_controllers_at_elements(net, element_type, idx=None): @@ -770,7 +772,7 @@ def drop_controllers_at_elements(net, element_type, idx=None): net.controller.object[i].__dict__["element_index"] = list(set(elm_idx) - set(idx)) net.controller.object[i].__dict__["matching_params"]["element_index"] = list( set(elm_idx) - set(idx)) - net.controller.drop(to_drop, inplace=True) + net.controller = net.controller.drop(to_drop) def drop_controllers_at_buses(net, buses): @@ -795,7 +797,7 @@ def drop_duplicated_measurements(net, buses=None, keep="first"): "measurement_type", "element_type", "side", "element"], keep=keep).empty: idx_to_drop = analyzed_meas.index[analyzed_meas.duplicated(subset=[ "measurement_type", "element_type", "side", "element"], keep=keep)] - net.measurement.drop(idx_to_drop, inplace=True) + net.measurement = net.measurement.drop(idx_to_drop) def _inner_branches(net, buses, task, branch_elements=None): @@ -823,7 +825,7 @@ def _inner_branches(net, buses, task, branch_elements=None): elif "trafo" in elm: drop_trafos(net, net[elm].index[inner]) else: - net[elm].drop(net[elm].index[inner], inplace=True) + net[elm] = net[elm].drop(net[elm].index[inner]) elif task == "get": inner_branches[elm] = net[elm].index[inner] else: @@ -997,7 +999,7 @@ def replace_zero_branches_with_switches(net, elements=('line', 'impedance'), zer if elm == 'line': drop_lines(net, affected_elements) else: - net[elm].drop(affected_elements, inplace=True) + net[elm] = net[elm].drop(affected_elements) logger.info('replaced %d %ss by switches' % (len(affected_elements), elm)) else: @@ -1200,7 +1202,7 @@ def replace_ext_grid_by_gen(net, ext_grids=None, gen_indices=None, slack=False, _replace_group_member_element_type(net, ext_grids, "ext_grid", new_idx, "gen") # --- drop replaced ext_grids - net.ext_grid.drop(ext_grids, inplace=True) + net.ext_grid = net.ext_grid.drop(ext_grids) # --- adapt cost data for table in ["pwl_cost", "poly_cost"]: @@ -1217,7 +1219,7 @@ def replace_ext_grid_by_gen(net, ext_grids=None, gen_indices=None, slack=False, to_add = net.res_ext_grid.loc[pd.Index(ext_grids)[in_res]] to_add.index = pd.Index(new_idx)[in_res] net.res_gen = pd.concat([net.res_gen, to_add], sort=True) - net.res_ext_grid.drop(pd.Index(ext_grids)[in_res], inplace=True) + net.res_ext_grid = net.res_ext_grid.drop(pd.Index(ext_grids)[in_res]) return new_idx @@ -1283,7 +1285,7 @@ def replace_gen_by_ext_grid(net, gens=None, ext_grid_indices=None, cols_to_keep= _replace_group_member_element_type(net, gens, "gen", new_idx, "ext_grid") # --- drop replaced gens - net.gen.drop(gens, inplace=True) + net.gen = net.gen.drop(gens) # --- adapt cost data for table in ["pwl_cost", "poly_cost"]: @@ -1299,7 +1301,7 @@ def replace_gen_by_ext_grid(net, gens=None, ext_grid_indices=None, cols_to_keep= to_add = net.res_gen.loc[pd.Index(gens)[in_res]] to_add.index = pd.Index(new_idx)[in_res] net.res_ext_grid = pd.concat([net.res_ext_grid, to_add], sort=True) - net.res_gen.drop(pd.Index(gens)[in_res], inplace=True) + net.res_gen = net.res_gen.drop(pd.Index(gens)[in_res]) return new_idx @@ -1367,7 +1369,7 @@ def replace_gen_by_sgen(net, gens=None, sgen_indices=None, cols_to_keep=None, _replace_group_member_element_type(net, gens, "gen", new_idx, "sgen") # --- drop replaced gens - net.gen.drop(gens, inplace=True) + net.gen = net.gen.drop(gens) # --- adapt cost data for table in ["pwl_cost", "poly_cost"]: @@ -1383,7 +1385,7 @@ def replace_gen_by_sgen(net, gens=None, sgen_indices=None, cols_to_keep=None, to_add = net.res_gen.loc[pd.Index(gens)[in_res]] to_add.index = pd.Index(new_idx)[in_res] net.res_sgen = pd.concat([net.res_sgen, to_add], sort=True) - net.res_gen.drop(pd.Index(gens)[in_res], inplace=True) + net.res_gen = net.res_gen.drop(pd.Index(gens)[in_res]) return new_idx @@ -1466,7 +1468,7 @@ def replace_sgen_by_gen(net, sgens=None, gen_indices=None, cols_to_keep=None, _replace_group_member_element_type(net, sgens, "sgen", new_idx, "gen") # --- drop replaced sgens - net.sgen.drop(sgens, inplace=True) + net.sgen = net.sgen.drop(sgens) # --- adapt cost data for table in ["pwl_cost", "poly_cost"]: @@ -1483,7 +1485,7 @@ def replace_sgen_by_gen(net, sgens=None, gen_indices=None, cols_to_keep=None, to_add = net.res_sgen.loc[pd.Index(sgens)[in_res]] to_add.index = pd.Index(new_idx)[in_res] net.res_gen = pd.concat([net.res_gen, to_add], sort=True) - net.res_sgen.drop(pd.Index(sgens)[in_res], inplace=True) + net.res_sgen = net.res_sgen.drop(pd.Index(sgens)[in_res]) return new_idx @@ -1586,7 +1588,7 @@ def replace_pq_elmtype(net, old_element_type, new_element_type, old_indices=None _replace_group_member_element_type(net, old_indices, old_element_type, new_idx, new_element_type) # --- drop replaced old_indices - net[old_element_type].drop(old_indices, inplace=True) + net[old_element_type] = net[old_element_type].drop(old_indices) # --- adapt cost data for table in ["pwl_cost", "poly_cost"]: @@ -1603,7 +1605,7 @@ def replace_pq_elmtype(net, old_element_type, new_element_type, old_indices=None to_add = net["res_" + old_element_type].loc[pd.Index(old_indices)[in_res]] to_add.index = pd.Index(new_idx)[in_res] net["res_" + new_element_type] = pd.concat([net["res_" + new_element_type], to_add], sort=True) - net["res_" + old_element_type].drop(pd.Index(old_indices)[in_res], inplace=True) + net["res_" + old_element_type] = net["res_" + old_element_type].drop(pd.Index(old_indices)[in_res]) return new_idx @@ -1720,7 +1722,7 @@ def replace_xward_by_internal_elements(net, xwards=None, set_xward_bus_limits=Fa if net.res_xward.shape[0]: log_to_level("Implementations to move xward results to new internal elements are missing.", logger, log_level) - net.res_xward.drop(xwards, inplace=True) + net.res_xward = net.res_xward.drop(xwards) # --- drop replaced wards drop_elements_simple(net, "xward", xwards) From 2f089ef61130937202e0a7458e1f5d61699fc238 Mon Sep 17 00:00:00 2001 From: Roman Bolgaryn Date: Fri, 22 Mar 2024 11:29:50 +0100 Subject: [PATCH 34/39] improve min impedance replacement --- pandapower/converter/powerfactory/gui.py | 27 ++++++++++++------- pandapower/converter/powerfactory/main_pf.py | 19 ++++++++----- .../powerfactory/pp_import_functions.py | 10 ++++--- 3 files changed, 38 insertions(+), 18 deletions(-) diff --git a/pandapower/converter/powerfactory/gui.py b/pandapower/converter/powerfactory/gui.py index 4eebe21cd..e8ce317a7 100644 --- a/pandapower/converter/powerfactory/gui.py +++ b/pandapower/converter/powerfactory/gui.py @@ -196,30 +196,39 @@ def make_gui(app, project_name, browse_dst, calc): sticky=tk.W) params.export_controller = EXPORT_CONTROLLER.get - REPLACE_ZERO_BRANCHES = tk.IntVar() - REPLACE_ZERO_BRANCHES.set(1) - tk.Checkbutton(input_panel, text="Replace low-impedance branches with switches", - variable=REPLACE_ZERO_BRANCHES).grid(row=4, column=4, sticky=tk.W) - params.replace_zero_branches = REPLACE_ZERO_BRANCHES.get - CV_VERIFY = tk.IntVar() CV_VERIFY.set(1) - tk.Checkbutton(input_panel, text="Verify conversion", variable=CV_VERIFY).grid(row=5, column=4, + tk.Checkbutton(input_panel, text="Verify conversion", variable=CV_VERIFY).grid(row=4, column=4, sticky=tk.W) params.is_to_verify = CV_VERIFY.get RUN_DIAGNOSTIC = tk.IntVar() RUN_DIAGNOSTIC.set(1) - tk.Checkbutton(input_panel, text="Diagnostic report", variable=RUN_DIAGNOSTIC).grid(row=6, + tk.Checkbutton(input_panel, text="Diagnostic report", variable=RUN_DIAGNOSTIC).grid(row=5, column=4, sticky=tk.W) params.is_to_diagnostic = RUN_DIAGNOSTIC.get LOGGER_DEBUG = tk.IntVar() - tk.Checkbutton(input_panel, text="Logger in debug mode", variable=LOGGER_DEBUG).grid(row=7, + tk.Checkbutton(input_panel, text="Logger in debug mode", variable=LOGGER_DEBUG).grid(row=6, column=4, sticky=tk.W) params.is_debug = LOGGER_DEBUG.get + + REPLACE_ZERO_BRANCHES = tk.IntVar() + REPLACE_ZERO_BRANCHES.set(1) + tk.Checkbutton(input_panel, text="Replace low-impedance branches with switches", + variable=REPLACE_ZERO_BRANCHES).grid(row=7, column=4, sticky=tk.W) + params.replace_zero_branches = REPLACE_ZERO_BRANCHES.get + + tk.Label(input_panel, anchor='w', text='Min. line R and X (Ohm):').grid(row=8, column=4, sticky=tk.W, pady=0) + + min_ohm = tk.Entry(input_panel, width=8) + min_ohm.delete(0, tk.END) + min_ohm.grid(row=8, column=5, padx=2, pady=2, sticky=tk.W) + min_ohm.insert(0, "0.01") + # entry_fname.insert(0, 'test') ##for testing + params.min_ohm_entry = min_ohm # row 2 col 4 stop_button = tk.Button(input_panel, text='Cancel', width=8, diff --git a/pandapower/converter/powerfactory/main_pf.py b/pandapower/converter/powerfactory/main_pf.py index 7aaa32ae3..7a22196a2 100644 --- a/pandapower/converter/powerfactory/main_pf.py +++ b/pandapower/converter/powerfactory/main_pf.py @@ -132,7 +132,7 @@ def run_verify(net, load_flow_params=None): def calc(app, input_panel, entry_path_dst, entry_fname, pv_as_slack, export_controller, - replace_zero_branches, is_to_verify, is_to_diagnostic, is_debug, + replace_zero_branches, min_ohm_entry, is_to_verify, is_to_diagnostic, is_debug, pf_variable_p_loads, pf_variable_p_gen, flag_graphics, handle_us, save_as, tap_opt, max_iter_entry): # check if logger is to be in debug mode @@ -167,11 +167,18 @@ def calc(app, input_panel, entry_path_dst, entry_fname, pv_as_slack, export_cont flag_graphics=flag_graphics(), handle_us=handle_us(), save_as=save_as(), tap_opt=tap_opt(), export_controller=export_controller(), max_iter=max_iter) if replace_zero_branches(): - pp.replace_zero_branches_with_switches(net, min_length_km=1e-2, - min_r_ohm_per_km=1.5e-3, min_x_ohm_per_km=1.5e-3, - min_c_nf_per_km=1.5e-3, - min_rft_pu=1.5e-5, min_xft_pu=1.5e-5, min_rtf_pu=1.5e-5, - min_xtf_pu=1.5e-5) # , min_r_ohm=1.5e-3, min_x_ohm=1.5e-3) + #pp.replace_zero_branches_with_switches(net, min_length_km=1e-2, + # min_r_ohm_per_km=1.5e-3, min_x_ohm_per_km=1.5e-3, + # min_c_nf_per_km=1.5e-3, + # min_rft_pu=1.5e-5, min_xft_pu=1.5e-5, min_rtf_pu=1.5e-5, + # min_xtf_pu=1.5e-5) # , min_r_ohm=1.5e-3, min_x_ohm=1.5e-3) + min_ohm = float(min_ohm_entry.get()) + to_replace = ((net.line.r_ohm_per_km * net.line.length_km <= min_ohm) | + (net.line.x_ohm_per_km * net.line.length_km <= min_ohm)) + + for i in net.line.loc[to_replace].index.values: + pp.toolbox.create_replacement_switch_for_branch(net, "line", i) + net.line.at[i, "in_service"] = False logger.info('saving file to: <%s>' % filepath) save_net(net, filepath, save_as()) diff --git a/pandapower/converter/powerfactory/pp_import_functions.py b/pandapower/converter/powerfactory/pp_import_functions.py index 4bb8c73e0..1c17bfc8c 100644 --- a/pandapower/converter/powerfactory/pp_import_functions.py +++ b/pandapower/converter/powerfactory/pp_import_functions.py @@ -793,7 +793,10 @@ def get_section_coords(coords, sec_len, start_len, scale_factor): len_j = 0 k = 0 for j in range(i + 1, len(coords)): - len_j += point_len(sec_coords[k], coords[j]) + try: + len_j += point_len(sec_coords[k], coords[j]) + except IndexError: + logger.error(f"{j=}, {i=}, {k=}") if len_j <= sec_len / scale_factor: sec_coords.append(coords[j]) k += 1 @@ -930,7 +933,7 @@ def create_line_normal(net, item, bus1, bus2, name, parallel, is_unbalanced, geo 'r0_ohm_per_km': r0_ohm / params['length_km'], 'x0_ohm_per_km': x0_ohm / params['length_km'], 'c0_nf_per_km': c0_nf / params['length_km'] * 1e3, # internal unit for C in PF is uF, - 'max_i_ka': item.Inom, + 'max_i_ka': item.Inom if item.Inom != 0 else 1e-3, 'alpha': pf_type.alpha if pf_type is not None else None }) @@ -1007,12 +1010,13 @@ def create_line_type(net, item, cable_in_air=False): line_or_cable = 'cs' if item.cohl_ == 0 else 'ol' + max_i_ka = item.sline if not cable_in_air else item.InomAir type_data = { "r_ohm_per_km": item.rline, "x_ohm_per_km": item.xline, "c_nf_per_km": item.cline*item.frnom/50 * 1e3, # internal unit for C in PF is uF "q_mm2": item.qurs, - "max_i_ka": item.sline if not cable_in_air else item.InomAir, + "max_i_ka": max_i_ka if max_i_ka != 0 else 1e-3, "endtemp_degree": item.rtemp, "type": line_or_cable, "r0_ohm_per_km": item.rline0, From 6ebbf7c45f95acbacb1075ef8cc2bebb26ca3887 Mon Sep 17 00:00:00 2001 From: Steffen Meinecke Date: Mon, 25 Mar 2024 08:24:08 +0100 Subject: [PATCH 35/39] tiny test fix --- pandapower/test/api/test_group.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pandapower/test/api/test_group.py b/pandapower/test/api/test_group.py index 45e8c5db6..32f42ca77 100644 --- a/pandapower/test/api/test_group.py +++ b/pandapower/test/api/test_group.py @@ -331,7 +331,7 @@ def test_detach_and_compare(): pp.detach_from_group(net, 3, "trafo", 1) assert pp.group_element_lists(net, 3)[0] == ["trafo"] assert pp.group_element_lists(net, 3)[1] == [typed_list([0, 2], type_)] - assert pp.group_element_lists(net, 3)[2] == [None if type_ is int else "name"] + assert pp.group_element_lists(net, 3)[2] == [np.nan if type_ is int else "name"] def test_res_power(): @@ -466,4 +466,4 @@ def test_elements_connected_to_group(): if __name__ == "__main__": - pytest.main([__file__, "-xs"]) + pytest.main([__file__, "-xs"]) \ No newline at end of file From 77a8bb6b4df3e61fb9a4dc0187c2ad03bb7bd31a Mon Sep 17 00:00:00 2001 From: Roman Bolgaryn Date: Mon, 25 Mar 2024 12:04:44 +0100 Subject: [PATCH 36/39] fix lightsim2grid 0.8.0 imports --- CHANGELOG.rst | 1 + pandapower/contingency/contingency.py | 5 +++-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.rst b/CHANGELOG.rst index 2cf9961f9..92b743404 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -50,6 +50,7 @@ Change Log - [ADDED] cim2pp: added description fields for each asset and added BusbarSection information to nodes - [CHANGED] cim2pp: reformat documentation for reading in files - [CHANGED] allow providing grid_tables as a parameter to the function that downloads net from PostgreSQL +- [FIXED] compatibility with lightsim2grid after new version 0.8.0 [2.13.1] - 2023-05-12 ------------------------------- diff --git a/pandapower/contingency/contingency.py b/pandapower/contingency/contingency.py index 8e1081a2f..8d8ed5456 100644 --- a/pandapower/contingency/contingency.py +++ b/pandapower/contingency/contingency.py @@ -12,7 +12,8 @@ try: from lightsim2grid.gridmodel import init as init_ls2g - from lightsim2grid_cpp import SecurityAnalysisCPP, SolverType + from lightsim2grid.securityAnalysis import ContingencyAnalysisCPP + from lightsim2grid_cpp import SolverType lightsim2grid_installed = True except ImportError: @@ -198,7 +199,7 @@ def run_contingency_ls2g(net, nminus1_cases, contingency_evaluation_function=pp. n_trafos_cases = len(nminus1_cases.get("trafo", {}).get("index", [])) # todo: add option for DC power flow - s = SecurityAnalysisCPP(lightsim_grid_model) + s = ContingencyAnalysisCPP(lightsim_grid_model) s.change_solver(solver_type) map_index = {} From f690ac290cd83ae67267a2ba041cebe79a6c9cf0 Mon Sep 17 00:00:00 2001 From: Roman Bolgaryn Date: Mon, 25 Mar 2024 12:20:25 +0100 Subject: [PATCH 37/39] testing of ls2g import error on github --- pandapower/contingency/contingency.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/pandapower/contingency/contingency.py b/pandapower/contingency/contingency.py index 8d8ed5456..7d63e2531 100644 --- a/pandapower/contingency/contingency.py +++ b/pandapower/contingency/contingency.py @@ -10,6 +10,10 @@ import pandapower as pp +from lightsim2grid.gridmodel import init as init_ls2g +from lightsim2grid.securityAnalysis import ContingencyAnalysisCPP +from lightsim2grid_cpp import SolverType + try: from lightsim2grid.gridmodel import init as init_ls2g from lightsim2grid.securityAnalysis import ContingencyAnalysisCPP From 7353db1565399b2b841858e7a695afb704cf0018 Mon Sep 17 00:00:00 2001 From: Roman Bolgaryn Date: Mon, 25 Mar 2024 12:31:05 +0100 Subject: [PATCH 38/39] install grid2op together with ls2g for now --- .github/workflows/github_test_action.yml | 2 ++ pandapower/contingency/contingency.py | 4 ---- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/.github/workflows/github_test_action.yml b/.github/workflows/github_test_action.yml index 4977c255a..259c8b0ac 100644 --- a/.github/workflows/github_test_action.yml +++ b/.github/workflows/github_test_action.yml @@ -39,6 +39,7 @@ jobs: if ${{ matrix.python-version == '3.9' }}; then python -m pip install pypower; fi if ${{ matrix.python-version != '3.9' }}; then python -m pip install numba; fi if ${{ matrix.python-version == '3.8' || matrix.python-version == '3.10' }}; then python -m pip install lightsim2grid; fi + if ${{ matrix.python-version == '3.8' || matrix.python-version == '3.10' }}; then python -m pip install grid2op; fi - name: Install Julia if: ${{ matrix.python-version == '3.9' }} run: | @@ -187,6 +188,7 @@ jobs: if [ -f requirements.txt ]; then pip install -r requirements.txt; fi python -m pip install .["all"] python -m pip install lightsim2grid + python -m pip install grid2op - name: List all installed packages run: | pip list diff --git a/pandapower/contingency/contingency.py b/pandapower/contingency/contingency.py index 7d63e2531..8d8ed5456 100644 --- a/pandapower/contingency/contingency.py +++ b/pandapower/contingency/contingency.py @@ -10,10 +10,6 @@ import pandapower as pp -from lightsim2grid.gridmodel import init as init_ls2g -from lightsim2grid.securityAnalysis import ContingencyAnalysisCPP -from lightsim2grid_cpp import SolverType - try: from lightsim2grid.gridmodel import init as init_ls2g from lightsim2grid.securityAnalysis import ContingencyAnalysisCPP From 4fb620fe08b9b5fc1770a727c90b9d9d05bd281b Mon Sep 17 00:00:00 2001 From: Steffen Meinecke Date: Mon, 25 Mar 2024 12:40:23 +0100 Subject: [PATCH 39/39] some fixes --- pandapower/opf/validate_opf_input.py | 4 ++-- pandapower/protection/run_protection.py | 2 +- pandapower/test/loadflow/test_runpp_pgm.py | 10 ++++++++++ pandapower/test/plotting/test_geo.py | 2 ++ pandapower/test/protection/test_fuse.py | 3 --- 5 files changed, 15 insertions(+), 6 deletions(-) diff --git a/pandapower/opf/validate_opf_input.py b/pandapower/opf/validate_opf_input.py index fa710311e..58a6b91a0 100644 --- a/pandapower/opf/validate_opf_input.py +++ b/pandapower/opf/validate_opf_input.py @@ -25,8 +25,8 @@ def _check_necessary_opf_parameters(net, logger): net[element_type].controllable.fillna(True, inplace=True) else: # 'sgen', 'load', 'storage' net[element_type].controllable.fillna(False, inplace=True) - controllables = net[element_type].index[net[element_type].controllable.astype( - bool)] + controllables = net[element_type].index[net[ + element_type].controllable.astype(bool)] else: controllables = net[element_type].index if element_type == 'gen' else [] diff --git a/pandapower/protection/run_protection.py b/pandapower/protection/run_protection.py index c3241432f..8d15d618b 100644 --- a/pandapower/protection/run_protection.py +++ b/pandapower/protection/run_protection.py @@ -21,7 +21,7 @@ def calculate_protection_times(net, scenario="sc"): if scenario != "sc" and scenario != "pp": raise ValueError("scenario must be either sc or op") - protection_devices = net.protection.query("in_service").object.values + protection_devices = net.protection.loc[net.protection.in_service, "object"].values protection_results = [] for p in protection_devices: diff --git a/pandapower/test/loadflow/test_runpp_pgm.py b/pandapower/test/loadflow/test_runpp_pgm.py index 143d4b661..f5c89cd9c 100644 --- a/pandapower/test/loadflow/test_runpp_pgm.py +++ b/pandapower/test/loadflow/test_runpp_pgm.py @@ -5,8 +5,15 @@ import pandapower as pp from pandapower.test.consistency_checks import runpp_pgm_with_consistency_checks, runpp_pgm_3ph_with_consistency_checks +try: + import power_grid_model + PGM_IMPORTED = True +except ImportError: + PGM_IMPORTED = False + @pytest.mark.parametrize("consistency_fn" , [runpp_pgm_with_consistency_checks, runpp_pgm_3ph_with_consistency_checks]) +@pytest.mark.skipif(not PGM_IMPORTED, reason="requires power_grid_model") def test_minimal_net_pgm(consistency_fn): # tests corner-case when the grid only has 1 bus and an ext-grid net = pp.create_empty_network() @@ -23,6 +30,7 @@ def test_minimal_net_pgm(consistency_fn): consistency_fn(net) +@pytest.mark.skipif(not PGM_IMPORTED, reason="requires power_grid_model") def test_runpp_pgm__invalid_algorithm(): net = pp.create_empty_network() with pytest.raises( @@ -33,6 +41,7 @@ def test_runpp_pgm__invalid_algorithm(): @patch("pandapower.run.logger") +@pytest.mark.skipif(not PGM_IMPORTED, reason="requires power_grid_model") def test_runpp_pgm__internal_pgm_error(mock_logger: MagicMock): net = pp.create_empty_network() b1 = pp.create_bus(net, 110) @@ -48,6 +57,7 @@ def test_runpp_pgm__internal_pgm_error(mock_logger: MagicMock): @patch("pandapower.run.logger") +@pytest.mark.skipif(not PGM_IMPORTED, reason="requires power_grid_model") def test_runpp_pgm__validation_fail(mock_logger: MagicMock): net = pp.create_empty_network() pp.create_bus(net, -110, index=123) diff --git a/pandapower/test/plotting/test_geo.py b/pandapower/test/plotting/test_geo.py index 9f0a52b79..1d6db6bb2 100644 --- a/pandapower/test/plotting/test_geo.py +++ b/pandapower/test/plotting/test_geo.py @@ -83,6 +83,7 @@ def test__convert_xy_epsg(): assert result_x == pytest.approx(expected_x) assert result_y == pytest.approx(expected_y) + def test_convert_gis_to_geodata(): pytest.importorskip("geopandas") pytest.importorskip("shapely") @@ -191,5 +192,6 @@ def test_dump_to_geojson(): assert isinstance(result, FeatureCollection) assert dumps(result) == '{"type": "FeatureCollection", "features": [{"type": "Feature", "id": 0, "geometry": {"type": "LineString", "coordinates": [[1, 2], [3, 4]]}, "properties": {"pp_type": "line", "pp_index": 0, "name": "line1", "std_type": "None", "from_bus": 1.0, "to_bus": 7.0, "length_km": 1.0, "r_ohm_per_km": 0.2067, "x_ohm_per_km": 0.1897522, "c_nf_per_km": 720.0, "g_us_per_km": 0.0, "max_i_ka": 0.328, "df": 1.0, "parallel": 1.0, "type": "None", "in_service": 1.0, "ices": 0.389985}}]}' + if __name__ == "__main__": pytest.main(["test_geo.py"]) diff --git a/pandapower/test/protection/test_fuse.py b/pandapower/test/protection/test_fuse.py index 459936a74..f4784bb81 100644 --- a/pandapower/test/protection/test_fuse.py +++ b/pandapower/test/protection/test_fuse.py @@ -458,6 +458,3 @@ def fuse_test_net4(): if __name__ == "__main__": pytest.main([__file__, "-s"]) - - -