Beispiel #1
0
def getOutputIIDMInfo(filename):
    IIDM_objects_byID = {}
    (iidm_root, ns, prefix) = XMLUtils.ImportXMLFileExtended(filename)
    for voltageLevel in XMLUtils.FindAll(iidm_root, prefix, "voltageLevel",
                                         ns):
        for child in XMLUtils.FindAll(voltageLevel, prefix, "*", ns):
            if 'id' in child.attrib:
                myId = child.attrib['id']
                myObject = IIDMobject(myId)
                myObject.type = child.tag.replace("{" + ns[prefix] + "}", "")
                if myObject.type == 'bus':
                    set_values(child, 'v', myObject)
                    set_values(child, 'angle', myObject)
                elif myObject.type == 'generator' or myObject.type == 'load':
                    set_values(child, 'p', myObject)
                    set_values(child, 'q', myObject)
                    set_values(child, 'bus', myObject)
                elif myObject.type == 'switch':
                    set_values(child, 'open', myObject)
                elif myObject.type == 'line':
                    set_values(child, 'p1', myObject)
                    set_values(child, 'q1', myObject)
                    set_values(child, 'p2', myObject)
                    set_values(child, 'q2', myObject)
                    set_values(child, 'bus1', myObject)
                    set_values(child, 'bus2', myObject)
                elif myObject.type == 'danglineLine':
                    set_values(child, 'p', myObject)
                    set_values(child, 'q', myObject)
                    set_values(child, 'bus', myObject)
                elif myObject.type == 'twoWindingsTransformer':
                    set_values(child, 'p1', myObject)
                    set_values(child, 'q1', myObject)
                    set_values(child, 'p2', myObject)
                    set_values(child, 'q2', myObject)
                    set_values(child, 'bus1', myObject)
                    set_values(child, 'bus2', myObject)
                elif myObject.type == 'ratioTapChanger' or myObject.type == 'phaseTapChanger':
                    set_values(child, 'tapPosition', myObject)
                elif myObject.type == 'vscConverterStation' or myObject.type == 'lccConverterStation':
                    set_values(child, 'p', myObject)
                    set_values(child, 'q', myObject)
                    set_values(child, 'bus', myObject)
                elif myObject.type == 'shunt':
                    set_values(child, 'currentSectionCount', myObject)
                    set_values(child, 'sectionCount', myObject)
                    set_values(child, 'bus', myObject)
                    set_values(child, 'q', myObject)
                elif myObject.type == 'staticVarCompensator':
                    set_values(child, 'p', myObject)
                    set_values(child, 'bus', myObject)
                    set_values(child, 'q', myObject)
                    set_values(child, 'regulationMode', myObject)
                IIDM_objects_byID[myId] = myObject
    return IIDM_objects_byID
Beispiel #2
0
def get_xml_constraints_info(filename):
    constraints_by_id = {}
    (cstr_root, ns, prefix) = XMLUtils.ImportXMLFileExtended(filename)
    for child in XMLUtils.FindAll(cstr_root, prefix, "constraint", ns):
        my_object = ConstraintsObject()
        my_object.model_name = child.attrib['modelName']
        my_object.description = child.attrib['description']
        my_object.time = child.attrib['time']
        if "type" in child.attrib:
            my_object.type = child.attrib['type']
        if "kind" in child.attrib:
            my_object.kind = child.attrib['kind']
        if "limit" in child.attrib:
            my_object.limit = child.attrib['limit']
        if "value" in child.attrib:
            my_object.value = child.attrib['value']
        if "side" in child.attrib:
            my_object.side = child.attrib['side']
        if "acceptableDuration" in child.attrib:
            my_object.acceptable_duration = child.attrib['acceptableDuration']
        constraints_by_id[my_object.get_unique_id()] = my_object
    return constraints_by_id