Commit f9338926 authored by Philipp Reuber's avatar Philipp Reuber
Browse files

support new cgmes profile structure, #5

parent e04685e2
......@@ -14,7 +14,7 @@ class ACDCConverter(ConductingEquipment):
:resistiveLoss: Converter configuration data used in power flow. Refer to poleLossP. Default: 0.0
:switchingLoss: Switching losses, relative to the base apparent power 'baseS'. Refer to poleLossP. Default: 0.0
:valveU0: Valve threshold voltage. Forward voltage drop when the valve is conducting. Used in loss calculations, i.e. the switchLoss depend on numberOfValves * valveU0. Default: 0.0
:DCTerminals: Default: []
:DCTerminals: Default: "many"
:PccTerminal: All converters' DC sides linked to this point of common coupling terminal. Default: None
:idc: Converter DC current, also called Id. Converter state variable, result from power flow. Default: 0.0
:poleLossP: The active power loss at a DC Pole = idleLoss + switchingLoss*|Idc| + resitiveLoss*Idc^2 For lossless operation Pdc=Pac For rectifier operation with losses Pdc=Pac-lossP For inverter operation with losses Pdc=Pac+lossP Converter state variable used in power flow. Default: 0.0
......@@ -54,7 +54,7 @@ class ACDCConverter(ConductingEquipment):
__doc__ += '\n Documentation of parent class ConductingEquipment: \n' + ConductingEquipment.__doc__
def __init__(self, baseS = 0.0, idleLoss = 0.0, maxUdc = 0.0, minUdc = 0.0, numberOfValves = 0, ratedUdc = 0.0, resistiveLoss = 0.0, switchingLoss = 0.0, valveU0 = 0.0, DCTerminals = [], PccTerminal = None, idc = 0.0, poleLossP = 0.0, uc = 0.0, udc = 0.0, p = 0.0, q = 0.0, targetPpcc = 0.0, targetUdc = 0.0, *args, **kw_args):
def __init__(self, baseS = 0.0, idleLoss = 0.0, maxUdc = 0.0, minUdc = 0.0, numberOfValves = 0, ratedUdc = 0.0, resistiveLoss = 0.0, switchingLoss = 0.0, valveU0 = 0.0, DCTerminals = "many", PccTerminal = None, idc = 0.0, poleLossP = 0.0, uc = 0.0, udc = 0.0, p = 0.0, q = 0.0, targetPpcc = 0.0, targetUdc = 0.0, *args, **kw_args):
super().__init__(*args, **kw_args)
self.baseS = baseS
......
......@@ -7,7 +7,7 @@ class ACDCTerminal(IdentifiedObject):
:BusNameMarker: The bus name marker used to name the bus (topological node). Default: None
:sequenceNumber: The orientation of the terminal connections for a multiple terminal conducting equipment. The sequence numbering starts with 1 and additional terminals should follow in increasing order. The first terminal is the "starting point" for a two terminal branch. Default: 0
:OperationalLimitSet: Default: []
:OperationalLimitSet: Default: "many"
:connected: The connected status is related to a bus-branch model and the topological node to terminal relation. True implies the terminal is connected to the related topological node and false implies it is not. In a bus-branch model, the connected status is used to tell if equipment is disconnected without having to change the connectivity described by the topological node to terminal relation. A valid case is that conducting equipment can be connected in one end and open in the other. In particular for an AC line segment, where the reactive line charging can be significant, this is a relevant case. Default: False
'''
......@@ -24,7 +24,7 @@ class ACDCTerminal(IdentifiedObject):
__doc__ += '\n Documentation of parent class IdentifiedObject: \n' + IdentifiedObject.__doc__
def __init__(self, BusNameMarker = None, sequenceNumber = 0, OperationalLimitSet = [], connected = False, *args, **kw_args):
def __init__(self, BusNameMarker = None, sequenceNumber = 0, OperationalLimitSet = "many", connected = False, *args, **kw_args):
super().__init__(*args, **kw_args)
self.BusNameMarker = BusNameMarker
......
......@@ -6,7 +6,7 @@ class AsynchronousMachineUserDefined(AsynchronousMachineDynamics):
Asynchronous machine whose dynamic behaviour is described by a user-defined model.
:proprietary: Behaviour is based on proprietary model as opposed to detailed model. true = user-defined model is proprietary with behaviour mutually understood by sending and receiving applications and parameters passed as general attributes false = user-defined model is explicitly defined in terms of control blocks and their input and output signals. Default: False
:ProprietaryParameterDynamics: Parameter of this proprietary user-defined model. Default: []
:ProprietaryParameterDynamics: Parameter of this proprietary user-defined model. Default: "many"
'''
cgmesProfile = AsynchronousMachineDynamics.cgmesProfile
......@@ -20,7 +20,7 @@ class AsynchronousMachineUserDefined(AsynchronousMachineDynamics):
__doc__ += '\n Documentation of parent class AsynchronousMachineDynamics: \n' + AsynchronousMachineDynamics.__doc__
def __init__(self, proprietary = False, ProprietaryParameterDynamics = [], *args, **kw_args):
def __init__(self, proprietary = False, ProprietaryParameterDynamics = "many", *args, **kw_args):
super().__init__(*args, **kw_args)
self.proprietary = proprietary
......
......@@ -6,10 +6,10 @@ class BaseVoltage(IdentifiedObject):
Defines a system base voltage which is referenced.
:nominalVoltage: The power system resource's base voltage. Default: 0.0
:ConductingEquipment: Base voltage of this conducting equipment. Use only when there is no voltage level container used and only one base voltage applies. For example, not used for transformers. Default: []
:VoltageLevel: The voltage levels having this base voltage. Default: []
:TransformerEnds: Transformer ends at the base voltage. This is essential for PU calculation. Default: []
:TopologicalNode: The topological nodes at the base voltage. Default: []
:ConductingEquipment: Base voltage of this conducting equipment. Use only when there is no voltage level container used and only one base voltage applies. For example, not used for transformers. Default: "many"
:VoltageLevel: The voltage levels having this base voltage. Default: "many"
:TransformerEnds: Transformer ends at the base voltage. This is essential for PU calculation. Default: "many"
:TopologicalNode: The topological nodes at the base voltage. Default: "many"
'''
cgmesProfile = IdentifiedObject.cgmesProfile
......@@ -26,7 +26,7 @@ class BaseVoltage(IdentifiedObject):
__doc__ += '\n Documentation of parent class IdentifiedObject: \n' + IdentifiedObject.__doc__
def __init__(self, nominalVoltage = 0.0, ConductingEquipment = [], VoltageLevel = [], TransformerEnds = [], TopologicalNode = [], *args, **kw_args):
def __init__(self, nominalVoltage = 0.0, ConductingEquipment = "many", VoltageLevel = "many", TransformerEnds = "many", TopologicalNode = "many", *args, **kw_args):
super().__init__(*args, **kw_args)
self.nominalVoltage = nominalVoltage
......
......@@ -7,7 +7,7 @@ class BusNameMarker(IdentifiedObject):
:priority: Priority of bus name marker for use as topology bus name. Use 0 for don t care. Use 1 for highest priority. Use 2 as priority is less than 1 and so on. Default: 0
:ReportingGroup: The bus name markers that belong to this reporting group. Default: None
:Terminal: The terminals associated with this bus name marker. Default: []
:Terminal: The terminals associated with this bus name marker. Default: "many"
'''
cgmesProfile = IdentifiedObject.cgmesProfile
......@@ -22,7 +22,7 @@ class BusNameMarker(IdentifiedObject):
__doc__ += '\n Documentation of parent class IdentifiedObject: \n' + IdentifiedObject.__doc__
def __init__(self, priority = 0, ReportingGroup = None, Terminal = [], *args, **kw_args):
def __init__(self, priority = 0, ReportingGroup = None, Terminal = "many", *args, **kw_args):
super().__init__(*args, **kw_args)
self.priority = priority
......
......@@ -5,7 +5,7 @@ class ConductingEquipment(Equipment):
'''
The parts of the AC power system that are designed to carry current or that are conductively connected through terminals.
:Terminals: Conducting equipment have terminals that may be connected to other conducting equipment terminals via connectivity nodes or topological nodes. Default: []
:Terminals: Conducting equipment have terminals that may be connected to other conducting equipment terminals via connectivity nodes or topological nodes. Default: "many"
:BaseVoltage: All conducting equipment with this base voltage. Use only when there is no voltage level container used and only one base voltage applies. For example, not used for transformers. Default: None
:SvStatus: The status state variable associated with this conducting equipment. Default: None
'''
......@@ -22,7 +22,7 @@ class ConductingEquipment(Equipment):
__doc__ += '\n Documentation of parent class Equipment: \n' + Equipment.__doc__
def __init__(self, Terminals = [], BaseVoltage = None, SvStatus = None, *args, **kw_args):
def __init__(self, Terminals = "many", BaseVoltage = None, SvStatus = None, *args, **kw_args):
super().__init__(*args, **kw_args)
self.Terminals = Terminals
......
......@@ -5,8 +5,8 @@ class ConformLoadGroup(LoadGroup):
'''
A group of loads conforming to an allocation pattern.
:EnergyConsumers: Conform loads assigned to this ConformLoadGroup. Default: []
:ConformLoadSchedules: The ConformLoadSchedules in the ConformLoadGroup. Default: []
:EnergyConsumers: Conform loads assigned to this ConformLoadGroup. Default: "many"
:ConformLoadSchedules: The ConformLoadSchedules in the ConformLoadGroup. Default: "many"
'''
cgmesProfile = LoadGroup.cgmesProfile
......@@ -20,7 +20,7 @@ class ConformLoadGroup(LoadGroup):
__doc__ += '\n Documentation of parent class LoadGroup: \n' + LoadGroup.__doc__
def __init__(self, EnergyConsumers = [], ConformLoadSchedules = [], *args, **kw_args):
def __init__(self, EnergyConsumers = "many", ConformLoadSchedules = "many", *args, **kw_args):
super().__init__(*args, **kw_args)
self.EnergyConsumers = EnergyConsumers
......
......@@ -5,7 +5,7 @@ class ConnectivityNodeContainer(PowerSystemResource):
'''
A base class for all objects that may contain connectivity nodes or topological nodes.
:TopologicalNode: The topological nodes which belong to this connectivity node container. Default: []
:TopologicalNode: The topological nodes which belong to this connectivity node container. Default: "many"
'''
cgmesProfile = PowerSystemResource.cgmesProfile
......@@ -18,7 +18,7 @@ class ConnectivityNodeContainer(PowerSystemResource):
__doc__ += '\n Documentation of parent class PowerSystemResource: \n' + PowerSystemResource.__doc__
def __init__(self, TopologicalNode = [], *args, **kw_args):
def __init__(self, TopologicalNode = "many", *args, **kw_args):
super().__init__(*args, **kw_args)
self.TopologicalNode = TopologicalNode
......
......@@ -6,8 +6,8 @@ class ControlArea(PowerSystemResource):
A control areais a grouping of generating units and/or loads and a cutset of tie lines (as terminals) which may be used for a variety of purposes including automatic generation control, powerflow solution area interchange control specification, and input to load forecasting. Note that any number of overlapping control area specifications can be superimposed on the physical model.
:type: The primary type of control area definition used to determine if this is used for automatic generation control, for planning interchange control, or other purposes. A control area specified with primary type of automatic generation control could still be forecast and used as an interchange area in power flow analysis. Default: None
:TieFlow: The tie flows associated with the control area. Default: []
:ControlAreaGeneratingUnit: The generating unit specificaitons for the control area. Default: []
:TieFlow: The tie flows associated with the control area. Default: "many"
:ControlAreaGeneratingUnit: The generating unit specificaitons for the control area. Default: "many"
:netInterchange: The specified positive net interchange into the control area, i.e. positive sign means flow in to the area. Default: 0.0
:pTolerance: Active power net interchange tolerance Default: 0.0
'''
......@@ -26,7 +26,7 @@ class ControlArea(PowerSystemResource):
__doc__ += '\n Documentation of parent class PowerSystemResource: \n' + PowerSystemResource.__doc__
def __init__(self, type = None, TieFlow = [], ControlAreaGeneratingUnit = [], netInterchange = 0.0, pTolerance = 0.0, *args, **kw_args):
def __init__(self, type = None, TieFlow = "many", ControlAreaGeneratingUnit = "many", netInterchange = 0.0, pTolerance = 0.0, *args, **kw_args):
super().__init__(*args, **kw_args)
self.type = type
......
......@@ -6,7 +6,7 @@ class CoordinateSystem(IdentifiedObject):
Coordinate reference system.
:crsUrn: A Uniform Resource Name (URN) for the coordinate reference system (crs) used to define 'Location.PositionPoints'. An example would be the European Petroleum Survey Group (EPSG) code for a coordinate reference system, defined in URN under the Open Geospatial Consortium (OGC) namespace as: urn:ogc:def:uom:EPSG::XXXX, where XXXX is an EPSG code (a full list of codes can be found at the EPSG Registry web site http://www.epsg-registry.org/). To define the coordinate system as being WGS84 (latitude, longitude) using an EPSG OGC, this attribute would be urn:ogc:def:uom:EPSG::4236. A profile should limit this code to a set of allowed URNs agreed to by all sending and receiving parties. Default: ''
:Location: All locations described with position points in this coordinate system. Default: []
:Location: All locations described with position points in this coordinate system. Default: "many"
'''
cgmesProfile = IdentifiedObject.cgmesProfile
......@@ -20,7 +20,7 @@ class CoordinateSystem(IdentifiedObject):
__doc__ += '\n Documentation of parent class IdentifiedObject: \n' + IdentifiedObject.__doc__
def __init__(self, crsUrn = '', Location = [], *args, **kw_args):
def __init__(self, crsUrn = '', Location = "many", *args, **kw_args):
super().__init__(*args, **kw_args)
self.crsUrn = crsUrn
......
......@@ -9,7 +9,7 @@ class Curve(IdentifiedObject):
:xUnit: The X-axis units of measure. Default: None
:y1Unit: The Y1-axis units of measure. Default: None
:y2Unit: The Y2-axis units of measure. Default: None
:CurveDatas: The curve of this curve data point. Default: []
:CurveDatas: The curve of this curve data point. Default: "many"
'''
cgmesProfile = IdentifiedObject.cgmesProfile
......@@ -26,7 +26,7 @@ class Curve(IdentifiedObject):
__doc__ += '\n Documentation of parent class IdentifiedObject: \n' + IdentifiedObject.__doc__
def __init__(self, curveStyle = None, xUnit = None, y1Unit = None, y2Unit = None, CurveDatas = [], *args, **kw_args):
def __init__(self, curveStyle = None, xUnit = None, y1Unit = None, y2Unit = None, CurveDatas = "many", *args, **kw_args):
super().__init__(*args, **kw_args)
self.curveStyle = curveStyle
......
......@@ -5,7 +5,7 @@ class DCConductingEquipment(Equipment):
'''
The parts of the DC power system that are designed to carry current or that are conductively connected through DC terminals.
:DCTerminals: Default: []
:DCTerminals: Default: "many"
'''
cgmesProfile = Equipment.cgmesProfile
......@@ -18,7 +18,7 @@ class DCConductingEquipment(Equipment):
__doc__ += '\n Documentation of parent class Equipment: \n' + Equipment.__doc__
def __init__(self, DCTerminals = [], *args, **kw_args):
def __init__(self, DCTerminals = "many", *args, **kw_args):
super().__init__(*args, **kw_args)
self.DCTerminals = DCTerminals
......
......@@ -5,8 +5,8 @@ class DCEquipmentContainer(EquipmentContainer):
'''
A modeling construct to provide a root class for containment of DC as well as AC equipment. The class differ from the EquipmentContaner for AC in that it may also contain DCNodes. Hence it can contain both AC and DC equipment.
:DCNodes: Default: []
:DCTopologicalNode: Default: []
:DCNodes: Default: "many"
:DCTopologicalNode: Default: "many"
'''
cgmesProfile = EquipmentContainer.cgmesProfile
......@@ -20,7 +20,7 @@ class DCEquipmentContainer(EquipmentContainer):
__doc__ += '\n Documentation of parent class EquipmentContainer: \n' + EquipmentContainer.__doc__
def __init__(self, DCNodes = [], DCTopologicalNode = [], *args, **kw_args):
def __init__(self, DCNodes = "many", DCTopologicalNode = "many", *args, **kw_args):
super().__init__(*args, **kw_args)
self.DCNodes = DCNodes
......
......@@ -5,7 +5,7 @@ class DCNode(IdentifiedObject):
'''
DC nodes are points where terminals of DC conducting equipment are connected together with zero impedance.
:DCTerminals: Default: []
:DCTerminals: Default: "many"
:DCEquipmentContainer: Default: None
:DCTopologicalNode: See association end TopologicalNode.ConnectivityNodes. Default: None
'''
......@@ -22,7 +22,7 @@ class DCNode(IdentifiedObject):
__doc__ += '\n Documentation of parent class IdentifiedObject: \n' + IdentifiedObject.__doc__
def __init__(self, DCTerminals = [], DCEquipmentContainer = None, DCTopologicalNode = None, *args, **kw_args):
def __init__(self, DCTerminals = "many", DCEquipmentContainer = None, DCTopologicalNode = None, *args, **kw_args):
super().__init__(*args, **kw_args)
self.DCTerminals = DCTerminals
......
......@@ -5,7 +5,7 @@ class DCTopologicalIsland(IdentifiedObject):
'''
An electrically connected subset of the network. DC topological islands can change as the current network state changes: e.g. due to - disconnect switches or breakers change state in a SCADA/EMS - manual creation, change or deletion of topological nodes in a planning tool.
:DCTopologicalNodes: Default: []
:DCTopologicalNodes: Default: "many"
'''
cgmesProfile = IdentifiedObject.cgmesProfile
......@@ -18,7 +18,7 @@ class DCTopologicalIsland(IdentifiedObject):
__doc__ += '\n Documentation of parent class IdentifiedObject: \n' + IdentifiedObject.__doc__
def __init__(self, DCTopologicalNodes = [], *args, **kw_args):
def __init__(self, DCTopologicalNodes = "many", *args, **kw_args):
super().__init__(*args, **kw_args)
self.DCTopologicalNodes = DCTopologicalNodes
......
......@@ -6,9 +6,9 @@ class DCTopologicalNode(IdentifiedObject):
DC bus.
:DCTopologicalIsland: Default: None
:DCTerminals: See association end Terminal.TopologicalNode. Default: []
:DCTerminals: See association end Terminal.TopologicalNode. Default: "many"
:DCEquipmentContainer: Default: None
:DCNodes: See association end ConnectivityNode.TopologicalNode. Default: []
:DCNodes: See association end ConnectivityNode.TopologicalNode. Default: "many"
'''
cgmesProfile = IdentifiedObject.cgmesProfile
......@@ -24,7 +24,7 @@ class DCTopologicalNode(IdentifiedObject):
__doc__ += '\n Documentation of parent class IdentifiedObject: \n' + IdentifiedObject.__doc__
def __init__(self, DCTopologicalIsland = None, DCTerminals = [], DCEquipmentContainer = None, DCNodes = [], *args, **kw_args):
def __init__(self, DCTopologicalIsland = None, DCTerminals = "many", DCEquipmentContainer = None, DCNodes = "many", *args, **kw_args):
super().__init__(*args, **kw_args)
self.DCTopologicalIsland = DCTopologicalIsland
......
......@@ -11,7 +11,7 @@ class Diagram(IdentifiedObject):
:x2InitialView: X coordinate of the second corner of the initial view. Default: 0.0
:y1InitialView: Y coordinate of the first corner of the initial view. Default: 0.0
:y2InitialView: Y coordinate of the second corner of the initial view. Default: 0.0
:DiagramElements: A diagram is made up of multiple diagram objects. Default: []
:DiagramElements: A diagram is made up of multiple diagram objects. Default: "many"
'''
cgmesProfile = IdentifiedObject.cgmesProfile
......@@ -30,7 +30,7 @@ class Diagram(IdentifiedObject):
__doc__ += '\n Documentation of parent class IdentifiedObject: \n' + IdentifiedObject.__doc__
def __init__(self, DiagramStyle = None, orientation = None, x1InitialView = 0.0, x2InitialView = 0.0, y1InitialView = 0.0, y2InitialView = 0.0, DiagramElements = [], *args, **kw_args):
def __init__(self, DiagramStyle = None, orientation = None, x1InitialView = 0.0, x2InitialView = 0.0, y1InitialView = 0.0, y2InitialView = 0.0, DiagramElements = "many", *args, **kw_args):
super().__init__(*args, **kw_args)
self.DiagramStyle = DiagramStyle
......
......@@ -12,8 +12,8 @@ class DiagramObject(IdentifiedObject):
:offsetY: The offset in the Y direction. This is used for defining the offset from centre for rendering an icon (the default is that a single point specifies the centre of the icon). The offset is in per-unit with 0 indicating there is no offset from the vertical centre of the icon. The offset direction is dependent on the orientation of the diagram, with -0.5 and 0.5 indicating an offset of +/- 50% on the vertical axis. Default: 0.0
:rotation: Sets the angle of rotation of the diagram object. Zero degrees is pointing to the top of the diagram. Rotation is clockwise. Default: 0.0
:IdentifiedObject: The diagram objects that are associated with the domain object. Default: None
:DiagramObjectPoints: A diagram object can have 0 or more points to reflect its layout position, routing (for polylines) or boundary (for polygons). Default: []
:VisibilityLayers: A diagram object can be part of multiple visibility layers. Default: []
:DiagramObjectPoints: A diagram object can have 0 or more points to reflect its layout position, routing (for polylines) or boundary (for polygons). Default: "many"
:VisibilityLayers: A diagram object can be part of multiple visibility layers. Default: "many"
:DiagramObjectStyle: A diagram object has a style associated that provides a reference for the style used in the originating system. Default: None
'''
......@@ -36,7 +36,7 @@ class DiagramObject(IdentifiedObject):
__doc__ += '\n Documentation of parent class IdentifiedObject: \n' + IdentifiedObject.__doc__
def __init__(self, Diagram = None, drawingOrder = 0, isPolygon = False, offsetX = 0.0, offsetY = 0.0, rotation = 0.0, IdentifiedObject = None, DiagramObjectPoints = [], VisibilityLayers = [], DiagramObjectStyle = None, *args, **kw_args):
def __init__(self, Diagram = None, drawingOrder = 0, isPolygon = False, offsetX = 0.0, offsetY = 0.0, rotation = 0.0, IdentifiedObject = None, DiagramObjectPoints = "many", VisibilityLayers = "many", DiagramObjectStyle = None, *args, **kw_args):
super().__init__(*args, **kw_args)
self.Diagram = Diagram
......
......@@ -5,7 +5,7 @@ class DiagramObjectGluePoint(Base):
'''
This is used for grouping diagram object points from different diagram objects that are considered to be glued together in a diagram even if they are not at the exact same coordinates.
:DiagramObjectPoints: The 'glue' point to which this point is associated. Default: []
:DiagramObjectPoints: The 'glue' point to which this point is associated. Default: "many"
'''
cgmesProfile = Base.cgmesProfile
......@@ -18,7 +18,7 @@ class DiagramObjectGluePoint(Base):
def __init__(self, DiagramObjectPoints = [], ):
def __init__(self, DiagramObjectPoints = "many", ):
self.DiagramObjectPoints = DiagramObjectPoints
......
......@@ -5,7 +5,7 @@ class DiagramObjectStyle(IdentifiedObject):
'''
A reference to a style used by the originating system for a diagram object. A diagram object style describes information such as line thickness, shape such as circle or rectangle etc, and color.
:StyledObjects: A style can be assigned to multiple diagram objects. Default: []
:StyledObjects: A style can be assigned to multiple diagram objects. Default: "many"
'''
cgmesProfile = IdentifiedObject.cgmesProfile
......@@ -18,7 +18,7 @@ class DiagramObjectStyle(IdentifiedObject):
__doc__ += '\n Documentation of parent class IdentifiedObject: \n' + IdentifiedObject.__doc__
def __init__(self, StyledObjects = [], *args, **kw_args):
def __init__(self, StyledObjects = "many", *args, **kw_args):
super().__init__(*args, **kw_args)
self.StyledObjects = StyledObjects
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment