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
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