您提供的XML文件是基于国际电工委员会(IEC)的通用信息模型(Common Information Model, CIM) 标准的,这是一种用于电力系统建模的开放标准。它本身不是一个图形文件,而是一个数据模型,描述了电网中的设备(如杆塔、线路、变压器)、它们的属性以及它们之间的连接关系。
要将这个CIM XML文件渲染成SVG(可缩放矢量图形),我们需要编写一个程序来完成以下几个核心步骤:
cim:, rdf:)。cim:Pole (电杆), cim:Substation (变电站), cim:ACLineSegment (交流线路段) 等。<cim:PowerSystemResource.location> 标签中,格式为 POINT(经度 纬度) 或 LINESTRING(经度1 纬度1, 经度2 纬度2, ...)。POINT 类型的设备,生成SVG的 <circle> (圆形)、<rect> (矩形) 或 <text> (文本) 元素。LINESTRING 类型的设备(如线路),生成SVG的 <polyline> (折线) 或 <path> (路径) 元素。<svg>标签内,并可以添加一些CSS样式来美化图形(如颜色、线宽等)。下面我将用Python语言为您提供一个完整的示例。Python拥有强大的XML解析库 (xml.etree.ElementTree),非常适合处理这类任务。
这个脚本将直接读取您提供的XML内容,并生成一个完整的、可以直接在浏览器中查看的HTML文件(内嵌SVG)。
代码分为几个部分:
CIM_XML_DATA: 存储您提供的XML文本。NAMESPACES): CIM XML使用命名空间,在查找元素时必须提供。parse_location(location_str) 函数: 一个辅助函数,用于解析 POINT(...) 和 LINESTRING(...) 字符串,提取出坐标数值。generate_svg_from_cim(xml_data) 主函数:
ElementTree 解析XML,并遍历所有元素。它将所有带位置信息的设备存入 elements 列表。padding 以免图形紧贴边缘。transform_coords 函数,它负责将单个经纬度点转换为SVG画布上的像素坐标。请注意,SVG的Y轴是向下增加的,而纬度是向上增加的,所以Y坐标的转换公式是 (max_lat - lat) * y_scale。elements 列表两次。第一次先画所有的线 (ACLineSegment),让它们作为背景。Pole, Substation 等),并为它们添加标签,这样点和标签会显示在线的上方。import xml.etree.ElementTree as ET
import math
# 您提供的CIM XML数据
CIM_XML_DATA = """
<?xml version="1.0" encoding="UTF-8"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" xmlns:pf="http://www.chinapower.cn/Rfs/2006/Rdf-Cim#" xmlns:cims="http://iec.ch/TC57/1999/rdf-schema-extensions-19990926#" xmlns:cim="http://iec.ch/TC57/2003/CIM-schema-cim10#" xml:base="defaultDomain#">
<cim:Circuit rdf:ID="CIRCUIT_59000002652200">
<cim:Naming.name>10kV牙矿Ⅰ回线</cim:Naming.name>
<cim:Naming.mRID>59000002652200</cim:Naming.mRID>
<cim:PowerSystemResource.status>1</cim:PowerSystemResource.status>
<cim:PowerSystemResource.dispatchNumber>54GYK1</cim:PowerSystemResource.dispatchNumber>
<cim:PowerSystemResource.areaFeature>4</cim:PowerSystemResource.areaFeature>
<cim:Circuit.isSpecialLine>true</cim:Circuit.isSpecialLine>
<cim:PowerSystemResource.ownership>4</cim:PowerSystemResource.ownership>
<cim:Circuit.isCurrentCircuit>true</cim:Circuit.isCurrentCircuit>
<cim:Circuit.maxPermissibleLoad></cim:Circuit.maxPermissibleLoad>
<cim:PowerSystemResource.PSRType rdf:resource="#PSRTYPE_300"/>
<cim:PowerSystemResource.BaseVoltage rdf:resource="#BASEVOL_10000"/>
<cim:PowerSystemResource.SubControlArea rdf:resource="#AREA_270616"/>
<cim:Circuit.SourceSubst rdf:resource="#SUBST_54000011974900"/>
<cim:Circuit.SourceBreaker rdf:resource="#SWITCH_54000008556700"/>
</cim:Circuit>
<cim:PoleSite rdf:ID="POLESITE_59000022797300">
<cim:Naming.name>1</cim:Naming.name>
<cim:Naming.mRID>59000022797300</cim:Naming.mRID>
<cim:PowerSystemResource.status>1</cim:PowerSystemResource.status>
<cim:PowerSystemResource.dispatchNumber></cim:PowerSystemResource.dispatchNumber>
<cim:PowerSystemResource.ownership></cim:PowerSystemResource.ownership>
<cim:PowerSystemResource.location>POINT(107.0685558 26.0248477)</cim:PowerSystemResource.location>
<cim:PowerSystemResource.PSRType rdf:resource="#PSRTYPE_360"/>
<cim:PowerSystemResource.BaseVoltage rdf:resource="#BASEVOL_10000"/>
<cim:Equipment.MemberOf_EquipmentContainer rdf:resource="#CIRCUIT_59000002652200"/>
<cim:Equipment.MemberOf_CircuitSection rdf:resource="#CIRSEC_59000002652211"/>
<cim:PoleSite.Pole rdf:resource="#POLE_59000003731500"/>
</cim:PoleSite>
<cim:Terminal rdf:ID="TERMINAL_59000022797300_1">
<cim:Naming.mRID>59000022797311</cim:Naming.mRID>
<cim:Terminal.sequenceNumber>1</cim:Terminal.sequenceNumber>
<cim:Terminal.ConductingEquipment rdf:resource="#POLESITE_59000022797300"/>
<cim:Terminal.ConnectivityNode rdf:resource="#NODE_59000192096000"/>
</cim:Terminal>
<cim:Pole rdf:ID="POLE_59000003731500">
<cim:Naming.name>10kV牙矿Ⅰ回线 1</cim:Naming.name>
<cim:Naming.mRID>59000003731500</cim:Naming.mRID>
<cim:PowerSystemResource.status>1</cim:PowerSystemResource.status>
<cim:PowerSystemResource.subType>10</cim:PowerSystemResource.subType>
<cim:Pole.material>水泥杆</cim:Pole.material>
<cim:PowerSystemResource.ownership>1</cim:PowerSystemResource.ownership>
<cim:PowerSystemResource.location>POINT(107.0685558 26.0248477)</cim:PowerSystemResource.location>
<cim:PowerSystemResource.symbolRotation>0.00</cim:PowerSystemResource.symbolRotation>
<cim:PowerSystemResource.PSRType rdf:resource="#PSRTYPE_338"/>
<cim:PowerSystemResource.BaseVoltage rdf:resource="#BASEVOL_10000"/>
</cim:Pole>
<cim:Fuse rdf:ID="SWITCH_59000002964600">
<cim:Naming.name>01跌落式熔断器</cim:Naming.name>
<cim:Naming.mRID>59000002964600</cim:Naming.mRID>
<cim:PowerSystemResource.status>1</cim:PowerSystemResource.status>
<cim:PowerSystemResource.dispatchNumber>01</cim:PowerSystemResource.dispatchNumber>
<cim:PowerSystemResource.ownership>1</cim:PowerSystemResource.ownership>
<cim:Switch.isRing>false</cim:Switch.isRing>
<cim:Switch.normalPosition>1</cim:Switch.normalPosition>
<cim:Switch.normalOpen>false</cim:Switch.normalOpen>
<cim:PowerSystemResource.location>POINT(107.0685558 26.0248477)</cim:PowerSystemResource.location>
<cim:PowerSystemResource.symbolRotation>8.59</cim:PowerSystemResource.symbolRotation>
<cim:PowerSystemResource.PSRType rdf:resource="#PSRTYPE_343"/>
<cim:PowerSystemResource.BaseVoltage rdf:resource="#BASEVOL_10000"/>
<cim:Equipment.MemberOf_EquipmentContainer rdf:resource="#CIRCUIT_59000002652200"/>
<cim:Equipment.MemberOf_CircuitSection rdf:resource="#CIRSEC_59000002652211"/>
</cim:Fuse>
<cim:Terminal rdf:ID="TERMINAL_59000002964600_1">
<cim:Naming.mRID>59000002964611</cim:Naming.mRID>
<cim:Terminal.sequenceNumber>1</cim:Terminal.sequenceNumber>
<cim:Terminal.ConductingEquipment rdf:resource="#SWITCH_59000002964600"/>
<cim:Terminal.ConnectivityNode rdf:resource="#NODE_59000192096000"/>
</cim:Terminal>
<cim:Terminal rdf:ID="TERMINAL_59000002964600_2">
<cim:Naming.mRID>59000002964612</cim:Naming.mRID>
<cim:Terminal.sequenceNumber>2</cim:Terminal.sequenceNumber>
<cim:Terminal.ConductingEquipment rdf:resource="#SWITCH_59000002964600"/>
<cim:Terminal.ConnectivityNode rdf:resource="#NODE_59000239469900"/>
</cim:Terminal>
<cim:PoleSite rdf:ID="POLESITE_59000022797400">
<cim:Naming.name>2</cim:Naming.name>
<cim:Naming.mRID>59000022797400</cim:Naming.mRID>
<cim:PowerSystemResource.status>1</cim:PowerSystemResource.status>
<cim:PowerSystemResource.dispatchNumber></cim:PowerSystemResource.dispatchNumber>
<cim:PowerSystemResource.ownership></cim:PowerSystemResource.ownership>
<cim:PowerSystemResource.location>POINT(107.068662 26.0241362)</cim:PowerSystemResource.location>
<cim:PowerSystemResource.PSRType rdf:resource="#PSRTYPE_360"/>
<cim:PowerSystemResource.BaseVoltage rdf:resource="#BASEVOL_10000"/>
<cim:Equipment.MemberOf_EquipmentContainer rdf:resource="#CIRCUIT_59000002652200"/>
<cim:Equipment.MemberOf_CircuitSection rdf:resource="#CIRSEC_59000002652211"/>
<cim:PoleSite.Pole rdf:resource="#POLE_59000003731600"/>
</cim:PoleSite>
<cim:Terminal rdf:ID="TERMINAL_59000022797400_1">
<cim:Naming.mRID>59000022797411</cim:Naming.mRID>
<cim:Terminal.sequenceNumber>1</cim:Terminal.sequenceNumber>
<cim:Terminal.ConductingEquipment rdf:resource="#POLESITE_59000022797400"/>
<cim:Terminal.ConnectivityNode rdf:resource="#NODE_59000192096100"/>
</cim:Terminal>
<cim:Pole rdf:ID="POLE_59000003731600">
<cim:Naming.name>10kV牙矿Ⅰ回线 2</cim:Naming.name>
<cim:Naming.mRID>59000003731600</cim:Naming.mRID>
<cim:PowerSystemResource.status>1</cim:PowerSystemResource.status>
<cim:PowerSystemResource.subType>10</cim:PowerSystemResource.subType>
<cim:Pole.material>水泥杆</cim:Pole.material>
<cim:PowerSystemResource.ownership>1</cim:PowerSystemResource.ownership>
<cim:PowerSystemResource.location>POINT(107.068662 26.0241362)</cim:PowerSystemResource.location>
<cim:PowerSystemResource.symbolRotation>0.00</cim:PowerSystemResource.symbolRotation>
<cim:PowerSystemResource.PSRType rdf:resource="#PSRTYPE_338"/>
<cim:PowerSystemResource.BaseVoltage rdf:resource="#BASEVOL_10000"/>
</cim:Pole>
<cim:PoleSite rdf:ID="POLESITE_59000022802900">
<cim:Naming.name>57</cim:Naming.name>
<cim:Naming.mRID>59000022802900</cim:Naming.mRID>
<cim:PowerSystemResource.status>1</cim:PowerSystemResource.status>
<cim:PowerSystemResource.dispatchNumber></cim:PowerSystemResource.dispatchNumber>
<cim:PowerSystemResource.ownership></cim:PowerSystemResource.ownership>
<cim:PowerSystemResource.location>POINT(107.1045498 25.9896208)</cim:PowerSystemResource.location>
<cim:PowerSystemResource.PSRType rdf:resource="#PSRTYPE_360"/>
<cim:PowerSystemResource.BaseVoltage rdf:resource="#BASEVOL_10000"/>
<cim:Equipment.MemberOf_EquipmentContainer rdf:resource="#CIRCUIT_59000002652200"/>
<cim:Equipment.MemberOf_CircuitSection rdf:resource="#CIRSEC_59000002652211"/>
<cim:PoleSite.Pole rdf:resource="#POLE_59000003737100"/>
</cim:PoleSite>
<cim:Terminal rdf:ID="TERMINAL_59000022802900_1">
<cim:Naming.mRID>59000022802911</cim:Naming.mRID>
<cim:Terminal.sequenceNumber>1</cim:Terminal.sequenceNumber>
<cim:Terminal.ConductingEquipment rdf:resource="#POLESITE_59000022802900"/>
<cim:Terminal.ConnectivityNode rdf:resource="#NODE_59000192095900"/>
</cim:Terminal>
<cim:Pole rdf:ID="POLE_59000003737100">
<cim:Naming.name>10kV牙矿Ⅰ回线 57</cim:Naming.name>
<cim:Naming.mRID>59000003737100</cim:Naming.mRID>
<cim:PowerSystemResource.status>1</cim:PowerSystemResource.status>
<cim:PowerSystemResource.subType>10</cim:PowerSystemResource.subType>
<cim:Pole.material>水泥杆</cim:Pole.material>
<cim:PowerSystemResource.ownership>1</cim:PowerSystemResource.ownership>
<cim:PowerSystemResource.location>POINT(107.1045498 25.9896208)</cim:PowerSystemResource.location>
<cim:PowerSystemResource.symbolRotation>0.00</cim:PowerSystemResource.symbolRotation>
<cim:PowerSystemResource.PSRType rdf:resource="#PSRTYPE_338"/>
<cim:PowerSystemResource.BaseVoltage rdf:resource="#BASEVOL_10000"/>
</cim:Pole>
<cim:Breaker rdf:ID="SWITCH_54000008556700">
<cim:Naming.name>001</cim:Naming.name>
<cim:Naming.mRID>54000008556700</cim:Naming.mRID>
<cim:PowerSystemResource.status>1</cim:PowerSystemResource.status>
<cim:PowerSystemResource.dispatchNumber></cim:PowerSystemResource.dispatchNumber>
<cim:PowerSystemResource.ownership>1</cim:PowerSystemResource.ownership>
<cim:Switch.cabinetNumber></cim:Switch.cabinetNumber>
<cim:PowerSystemResource.subType>20</cim:PowerSystemResource.subType>
<cim:Switch.isRing>false</cim:Switch.isRing>
<cim:Switch.normalPosition>10</cim:Switch.normalPosition>
<cim:Switch.normalOpen>false</cim:Switch.normalOpen>
<cim:PowerSystemResource.location>POINT(130 280)</cim:PowerSystemResource.location>
<cim:PowerSystemResource.symbolRotation>0.00</cim:PowerSystemResource.symbolRotation>
<cim:PowerSystemResource.PSRType rdf:resource="#PSRTYPE_140"/>
<cim:PowerSystemResource.BaseVoltage rdf:resource="#BASEVOL_10000"/>
<cim:Equipment.MemberOf_EquipmentContainer rdf:resource="#SUBST_54000011974900"/>
</cim:Breaker>
<cim:Terminal rdf:ID="TERMINAL_54000008556700_1">
<cim:Naming.mRID>54000008556711</cim:Naming.mRID>
<cim:Terminal.sequenceNumber>1</cim:Terminal.sequenceNumber>
<cim:Terminal.ConductingEquipment rdf:resource="#SWITCH_54000008556700"/>
<cim:Terminal.ConnectivityNode rdf:resource="#NODE_54000016689000"/>
</cim:Terminal>
<cim:Terminal rdf:ID="TERMINAL_54000008556700_2">
<cim:Naming.mRID>54000008556712</cim:Naming.mRID>
<cim:Terminal.sequenceNumber>2</cim:Terminal.sequenceNumber>
<cim:Terminal.ConductingEquipment rdf:resource="#SWITCH_54000008556700"/>
<cim:Terminal.ConnectivityNode rdf:resource="#NODE_54000020389200"/>
</cim:Terminal>
<cim:Substation rdf:ID="SUBST_54000011974900">
<cim:Naming.name>10kV场边寨开闭所(用户站)</cim:Naming.name>
<cim:Naming.mRID>54000011974900</cim:Naming.mRID>
<cim:PowerSystemResource.subType>10</cim:PowerSystemResource.subType>
<cim:PowerSystemResource.status>1</cim:PowerSystemResource.status>
<cim:PowerSystemResource.dispatchNumber></cim:PowerSystemResource.dispatchNumber>
<cim:PowerSystemResource.ownership>4</cim:PowerSystemResource.ownership>
<cim:PowerSystemResource.location>POINT(107.0692311 26.0274049)</cim:PowerSystemResource.location>
<cim:PowerSystemResource.symbolRotation>0.00</cim:PowerSystemResource.symbolRotation>
<cim:PowerSystemResource.PSRType rdf:resource="#PSRTYPE_110"/>
<cim:PowerSystemResource.BaseVoltage rdf:resource="#BASEVOL_10000"/>
</cim:Substation>
<cim:Junction rdf:ID="CBLT_59000348207000">
<cim:Naming.name>电缆(首端)</cim:Naming.name>
<cim:Naming.mRID>59000348207000</cim:Naming.mRID>
<cim:PowerSystemResource.status>1</cim:PowerSystemResource.status>
<cim:PowerSystemResource.dispatchNumber></cim:PowerSystemResource.dispatchNumber>
<cim:PowerSystemResource.ownership>1</cim:PowerSystemResource.ownership>
<cim:PowerSystemResource.location>POINT(107.0693369 26.0275109)</cim:PowerSystemResource.location>
<cim:PowerSystemResource.symbolRotation>343.79</cim:PowerSystemResource.symbolRotation>
<cim:PowerSystemResource.PSRType rdf:resource="#PSRTYPE_399"/>
<cim:PowerSystemResource.BaseVoltage rdf:resource="#BASEVOL_10000"/>
<cim:Equipment.MemberOf_EquipmentContainer rdf:resource="#CIRCUIT_59000002652200"/>
<cim:Equipment.MemberOf_CircuitSection rdf:resource="#CIRSEC_59000002652211"/>
<cim:Junction.MemberOf_CableSegment rdf:resource="#SEGGRP_59000299717300"/>
</cim:Junction>
<cim:Terminal rdf:ID="TERMINAL_59000348207000_1">
<cim:Naming.mRID>59000348207011</cim:Naming.mRID>
<cim:Terminal.sequenceNumber>1</cim:Terminal.sequenceNumber>
<cim:Terminal.ConductingEquipment rdf:resource="#CBLT_59000348207000"/>
<cim:Terminal.ConnectivityNode rdf:resource="#NODE_54000016689000"/>
</cim:Terminal>
<cim:Junction rdf:ID="CBLT_59000345750900">
<cim:Naming.name>电缆(末端)</cim:Naming.name>
<cim:Naming.mRID>59000345750900</cim:Naming.mRID>
<cim:PowerSystemResource.status>1</cim:PowerSystemResource.status>
<cim:PowerSystemResource.dispatchNumber></cim:PowerSystemResource.dispatchNumber>
<cim:PowerSystemResource.ownership>1</cim:PowerSystemResource.ownership>
<cim:PowerSystemResource.location>POINT(107.0685558 26.0248477)</cim:PowerSystemResource.location>
<cim:PowerSystemResource.symbolRotation>163.79</cim:PowerSystemResource.symbolRotation>
<cim:PowerSystemResource.PSRType rdf:resource="#PSRTYPE_399"/>
<cim:PowerSystemResource.BaseVoltage rdf:resource="#BASEVOL_10000"/>
<cim:Equipment.MemberOf_EquipmentContainer rdf:resource="#CIRCUIT_59000002652200"/>
<cim:Equipment.MemberOf_CircuitSection rdf:resource="#CIRSEC_59000002652211"/>
<cim:Junction.MemberOf_CableSegment rdf:resource="#SEGGRP_59000299717300"/>
</cim:Junction>
<cim:Terminal rdf:ID="TERMINAL_59000345750900_1">
<cim:Naming.mRID>59000345750911</cim:Naming.mRID>
<cim:Terminal.sequenceNumber>1</cim:Terminal.sequenceNumber>
<cim:Terminal.ConductingEquipment rdf:resource="#CBLT_59000345750900"/>
<cim:Terminal.ConnectivityNode rdf:resource="#NODE_59000192096000"/>
</cim:Terminal>
<cim:PoleSite rdf:ID="POLESITE_59000022798700">
<cim:Naming.name>15</cim:Naming.name>
<cim:Naming.mRID>59000022798700</cim:Naming.mRID>
<cim:PowerSystemResource.status>1</cim:PowerSystemResource.status>
<cim:PowerSystemResource.dispatchNumber></cim:PowerSystemResource.dispatchNumber>
<cim:PowerSystemResource.ownership></cim:PowerSystemResource.ownership>
<cim:PowerSystemResource.location>POINT(107.0700385 26.0132415)</cim:PowerSystemResource.location>
<cim:PowerSystemResource.PSRType rdf:resource="#PSRTYPE_360"/>
<cim:PowerSystemResource.BaseVoltage rdf:resource="#BASEVOL_10000"/>
<cim:Equipment.MemberOf_EquipmentContainer rdf:resource="#CIRCUIT_59000002652200"/>
<cim:Equipment.MemberOf_CircuitSection rdf:resource="#CIRSEC_59000002652211"/>
<cim:PoleSite.Pole rdf:resource="#POLE_59000003732900"/>
</cim:PoleSite>
<cim:Terminal rdf:ID="TERMINAL_59000022798700_1">
<cim:Naming.mRID>59000022798711</cim:Naming.mRID>
<cim:Terminal.sequenceNumber>1</cim:Terminal.sequenceNumber>
<cim:Terminal.ConductingEquipment rdf:resource="#POLESITE_59000022798700"/>
<cim:Terminal.ConnectivityNode rdf:resource="#NODE_59000192097400"/>
</cim:Terminal>
<cim:Pole rdf:ID="POLE_59000003732900">
<cim:Naming.name>10kV牙矿Ⅰ回线 15</cim:Naming.name>
<cim:Naming.mRID>59000003732900</cim:Naming.mRID>
<cim:PowerSystemResource.status>1</cim:PowerSystemResource.status>
<cim:PowerSystemResource.subType>10</cim:PowerSystemResource.subType>
<cim:Pole.material>水泥杆</cim:Pole.material>
<cim:PowerSystemResource.ownership>1</cim:PowerSystemResource.ownership>
<cim:PowerSystemResource.location>POINT(107.0700385 26.0132415)</cim:PowerSystemResource.location>
<cim:PowerSystemResource.symbolRotation>0.00</cim:PowerSystemResource.symbolRotation>
<cim:PowerSystemResource.PSRType rdf:resource="#PSRTYPE_338"/>
<cim:PowerSystemResource.BaseVoltage rdf:resource="#BASEVOL_10000"/>
</cim:Pole>
<cim:PoleSite rdf:ID="POLESITE_59000421287100">
<cim:Naming.name>14</cim:Naming.name>
<cim:Naming.mRID>59000421287100</cim:Naming.mRID>
<cim:PowerSystemResource.status>1</cim:PowerSystemResource.status>
<cim:PowerSystemResource.dispatchNumber></cim:PowerSystemResource.dispatchNumber>
<cim:PowerSystemResource.ownership>1</cim:PowerSystemResource.ownership>
<cim:PowerSystemResource.location>POINT(107.0695512 26.0117857)</cim:PowerSystemResource.location>
<cim:PowerSystemResource.PSRType rdf:resource="#PSRTYPE_360"/>
<cim:PowerSystemResource.BaseVoltage rdf:resource="#BASEVOL_10000"/>
<cim:Equipment.MemberOf_EquipmentContainer rdf:resource="#CIRCUIT_59000002652200"/>
<cim:Equipment.MemberOf_CircuitSection rdf:resource="#CIRSEC_59000421272300"/>
<cim:PoleSite.Pole rdf:resource="#POLE_59000421286900"/>
</cim:PoleSite>
<cim:Terminal rdf:ID="TERMINAL_59000421287100_1">
<cim:Naming.mRID>59000421287111</cim:Naming.mRID>
<cim:Terminal.sequenceNumber>1</cim:Terminal.sequenceNumber>
<cim:Terminal.ConductingEquipment rdf:resource="#POLESITE_59000421287100"/>
<cim:Terminal.ConnectivityNode rdf:resource="#NODE_59000421287200"/>
</cim:Terminal>
<cim:Pole rdf:ID="POLE_59000421286900">
<cim:Naming.name>S422工程 14</cim:Naming.name>
<cim:Naming.mRID>59000421286900</cim:Naming.mRID>
<cim:PowerSystemResource.status>1</cim:PowerSystemResource.status>
<cim:PowerSystemResource.subType>10</cim:PowerSystemResource.subType>
<cim:Pole.material>水泥杆</cim:Pole.material>
<cim:PowerSystemResource.ownership>1</cim:PowerSystemResource.ownership>
<cim:PowerSystemResource.location>POINT(107.0695512 26.0117857)</cim:PowerSystemResource.location>
<cim:PowerSystemResource.symbolRotation>0.00</cim:PowerSystemResource.symbolRotation>
<cim:PowerSystemResource.PSRType rdf:resource="#PSRTYPE_338"/>
<cim:PowerSystemResource.BaseVoltage rdf:resource="#BASEVOL_10000"/>
</cim:Pole>
<cim:PoleSite rdf:ID="POLESITE_59000022800200">
<cim:Naming.name>30</cim:Naming.name>
<cim:Naming.mRID>59000022800200</cim:Naming.mRID>
<cim:PowerSystemResource.status>1</cim:PowerSystemResource.status>
<cim:PowerSystemResource.dispatchNumber></cim:PowerSystemResource.dispatchNumber>
<cim:PowerSystemResource.ownership></cim:PowerSystemResource.ownership>
<cim:PowerSystemResource.location>POINT(107.0653155 25.9963237)</cim:PowerSystemResource.location>
<cim:PowerSystemResource.PSRType rdf:resource="#PSRTYPE_360"/>
<cim:PowerSystemResource.BaseVoltage rdf:resource="#BASEVOL_10000"/>
<cim:Equipment.MemberOf_EquipmentContainer rdf:resource="#CIRCUIT_59000002652200"/>
<cim:Equipment.MemberOf_CircuitSection rdf:resource="#CIRSEC_59000002652211"/>
<cim:PoleSite.Pole rdf:resource="#POLE_59000003734400"/>
</cim:PoleSite>
<cim:Terminal rdf:ID="TERMINAL_59000022800200_1">
<cim:Naming.mRID>59000022800211</cim:Naming.mRID>
<cim:Terminal.sequenceNumber>1</cim:Terminal.sequenceNumber>
<cim:Terminal.ConductingEquipment rdf:resource="#POLESITE_59000022800200"/>
<cim:Terminal.ConnectivityNode rdf:resource="#NODE_59000192098800"/>
</cim:Terminal>
<cim:Pole rdf:ID="POLE_59000003734400">
<cim:Naming.name>10kV牙矿Ⅰ回线 30</cim:Naming.name>
<cim:Naming.mRID>59000003734400</cim:Naming.mRID>
<cim:PowerSystemResource.status>1</cim:PowerSystemResource.status>
<cim:PowerSystemResource.subType>10</cim:PowerSystemResource.subType>
<cim:Pole.material>水泥杆</cim:Pole.material>
<cim:PowerSystemResource.ownership>1</cim:PowerSystemResource.ownership>
<cim:PowerSystemResource.location>POINT(107.0653155 25.9963237)</cim:PowerSystemResource.location>
<cim:PowerSystemResource.symbolRotation>0.00</cim:PowerSystemResource.symbolRotation>
<cim:PowerSystemResource.PSRType rdf:resource="#PSRTYPE_338"/>
<cim:PowerSystemResource.BaseVoltage rdf:resource="#BASEVOL_10000"/>
</cim:Pole>
<cim:PoleSite rdf:ID="POLESITE_59000022802700">
<cim:Naming.name>55</cim:Naming.name>
<cim:Naming.mRID>59000022802700</cim:Naming.mRID>
<cim:PowerSystemResource.status>1</cim:PowerSystemResource.status>
<cim:PowerSystemResource.dispatchNumber></cim:PowerSystemResource.dispatchNumber>
<cim:PowerSystemResource.ownership></cim:PowerSystemResource.ownership>
<cim:PowerSystemResource.location>POINT(107.1033791 25.991028)</cim:PowerSystemResource.location>
<cim:PowerSystemResource.PSRType rdf:resource="#PSRTYPE_360"/>
<cim:PowerSystemResource.BaseVoltage rdf:resource="#BASEVOL_10000"/>
<cim:Equipment.MemberOf_EquipmentContainer rdf:resource="#CIRCUIT_59000002652200"/>
<cim:Equipment.MemberOf_CircuitSection rdf:resource="#CIRSEC_59000002652211"/>
<cim:PoleSite.Pole rdf:resource="#POLE_59000003736900"/>
</cim:PoleSite>
<cim:Terminal rdf:ID="TERMINAL_59000022802700_1">
<cim:Naming.mRID>59000022802711</cim:Naming.mRID>
<cim:Terminal.sequenceNumber>1</cim:Terminal.sequenceNumber>
<cim:Terminal.ConductingEquipment rdf:resource="#POLESITE_59000022802700"/>
<cim:Terminal.ConnectivityNode rdf:resource="#NODE_59000192095700"/>
</cim:Terminal>
<cim:Pole rdf:ID="POLE_59000003736900">
<cim:Naming.name>10kV牙矿Ⅰ回线 55</cim:Naming.name>
<cim:Naming.mRID>59000003736900</cim:Naming.mRID>
<cim:PowerSystemResource.status>1</cim:PowerSystemResource.status>
<cim:PowerSystemResource.subType>10</cim:PowerSystemResource.subType>
<cim:Pole.material>水泥杆</cim:Pole.material>
<cim:PowerSystemResource.ownership>1</cim:PowerSystemResource.ownership>
<cim:PowerSystemResource.location>POINT(107.1033791 25.991028)</cim:PowerSystemResource.location>
<cim:PowerSystemResource.symbolRotation>0.00</cim:PowerSystemResource.symbolRotation>
<cim:PowerSystemResource.PSRType rdf:resource="#PSRTYPE_338"/>
<cim:PowerSystemResource.BaseVoltage rdf:resource="#BASEVOL_10000"/>
</cim:Pole>
<cim:Fuse rdf:ID="SWITCH_59000453065000">
<cim:Naming.name>牙舟煤矿2#专变跌落式熔断器</cim:Naming.name>
<cim:Naming.mRID>59000453065000</cim:Naming.mRID>
<cim:PowerSystemResource.status>1</cim:PowerSystemResource.status>
<cim:PowerSystemResource.dispatchNumber></cim:PowerSystemResource.dispatchNumber>
<cim:PowerSystemResource.ownership></cim:PowerSystemResource.ownership>
<cim:Switch.isRing>false</cim:Switch.isRing>
<cim:PowerSystemResource.location>POINT(0.01322320098 0.00929756315)</cim:PowerSystemResource.location>
<cim:PowerSystemResource.symbolRotation>0.00</cim:PowerSystemResource.symbolRotation>
<cim:PowerSystemResource.PSRType rdf:resource="#PSRTYPE_343"/>
<cim:PowerSystemResource.BaseVoltage rdf:resource="#BASEVOL_10000"/>
<cim:Equipment.MemberOf_EquipmentContainer rdf:resource="#CIRCUIT_59000002652200"/>
<cim:Equipment.MemberOf_CircuitSection rdf:resource="#CIRSEC_59000002652211"/>
</cim:Fuse>
<cim:Terminal rdf:ID="TERMINAL_59000453065000_1">
<cim:Naming.mRID>59000453065011</cim:Naming.mRID>
<cim:Terminal.sequenceNumber>1</cim:Terminal.sequenceNumber>
<cim:Terminal.ConductingEquipment rdf:resource="#SWITCH_59000453065000"/>
<cim:Terminal.ConnectivityNode rdf:resource="#NODE_59000453065400"/>
</cim:Terminal>
<cim:Terminal rdf:ID="TERMINAL_59000453065000_2">
<cim:Naming.mRID>59000453065012</cim:Naming.mRID>
<cim:Terminal.sequenceNumber>2</cim:Terminal.sequenceNumber>
<cim:Terminal.ConductingEquipment rdf:resource="#SWITCH_59000453065000"/>
<cim:Terminal.ConnectivityNode rdf:resource="#NODE_59000453065300"/>
</cim:Terminal>
<cim:Substation rdf:ID="SUBST_59000453065800">
<cim:Naming.name>牙舟煤矿2#专变(一级)</cim:Naming.name>
<cim:Naming.mRID>59000453065800</cim:Naming.mRID>
<cim:PowerSystemResource.subType>20</cim:PowerSystemResource.subType>
<cim:PowerSystemResource.status>1</cim:PowerSystemResource.status>
<cim:PowerSystemResource.dispatchNumber></cim:PowerSystemResource.dispatchNumber>
<cim:PowerSystemResource.ownership></cim:PowerSystemResource.ownership>
<cim:PowerSystemResource.location>POINT(0.01322320098 0.00950417566)</cim:PowerSystemResource.location>
<cim:PowerSystemResource.symbolRotation>180.00</cim:PowerSystemResource.symbolRotation>
<cim:PowerSystemResource.PSRType rdf:resource="#PSRTYPE_335"/>
<cim:PowerSystemResource.BaseVoltage rdf:resource="#BASEVOL_10000"/>
</cim:Substation>
<cim:PoleSite rdf:ID="POLESITE_59000022802800">
<cim:Naming.name>56</cim:Naming.name>
<cim:Naming.mRID>59000022802800</cim:Naming.mRID>
<cim:PowerSystemResource.status>1</cim:PowerSystemResource.status>
<cim:PowerSystemResource.dispatchNumber></cim:PowerSystemResource.dispatchNumber>
<cim:PowerSystemResource.ownership></cim:PowerSystemResource.ownership>
<cim:PowerSystemResource.location>POINT(107.1039392 25.9904096)</cim:PowerSystemResource.location>
<cim:PowerSystemResource.PSRType rdf:resource="#PSRTYPE_360"/>
<cim:PowerSystemResource.BaseVoltage rdf:resource="#BASEVOL_10000"/>
<cim:Equipment.MemberOf_EquipmentContainer rdf:resource="#CIRCUIT_59000002652200"/>
<cim:Equipment.MemberOf_CircuitSection rdf:resource="#CIRSEC_59000002652211"/>
<cim:PoleSite.Pole rdf:resource="#POLE_59000003737000"/>
</cim:PoleSite>
<cim:Terminal rdf:ID="TERMINAL_59000022802800_1">
<cim:Naming.mRID>59000022802811</cim:Naming.mRID>
<cim:Terminal.sequenceNumber>1</cim:Terminal.sequenceNumber>
<cim:Terminal.ConductingEquipment rdf:resource="#POLESITE_59000022802800"/>
<cim:Terminal.ConnectivityNode rdf:resource="#NODE_59000192095800"/>
</cim:Terminal>
<cim:Pole rdf:ID="POLE_59000003737000">
<cim:Naming.name>10kV牙矿Ⅰ回线 56</cim:Naming.name>
<cim:Naming.mRID>59000003737000</cim:Naming.mRID>
<cim:PowerSystemResource.status>1</cim:PowerSystemResource.status>
<cim:PowerSystemResource.subType>10</cim:PowerSystemResource.subType>
<cim:Pole.material>水泥杆</cim:Pole.material>
<cim:PowerSystemResource.ownership>1</cim:PowerSystemResource.ownership>
<cim:PowerSystemResource.location>POINT(107.1039392 25.9904096)</cim:PowerSystemResource.location>
<cim:PowerSystemResource.symbolRotation>0.00</cim:PowerSystemResource.symbolRotation>
<cim:PowerSystemResource.PSRType rdf:resource="#PSRTYPE_338"/>
<cim:PowerSystemResource.BaseVoltage rdf:resource="#BASEVOL_10000"/>
</cim:Pole>
<cim:Fuse rdf:ID="SWITCH_59000453067000">
<cim:Naming.name>牙舟煤矿1#专变跌落式熔断器</cim:Naming.name>
<cim:Naming.mRID>59000453067000</cim:Naming.mRID>
<cim:PowerSystemResource.status>1</cim:PowerSystemResource.status>
<cim:PowerSystemResource.dispatchNumber></cim:PowerSystemResource.dispatchNumber>
<cim:PowerSystemResource.ownership></cim:PowerSystemResource.ownership>
<cim:Switch.isRing>false</cim:Switch.isRing>
<cim:PowerSystemResource.location>POINT(0.01457067391 0.0093065463)</cim:PowerSystemResource.location>
<cim:PowerSystemResource.symbolRotation>0.00</cim:PowerSystemResource.symbolRotation>
<cim:PowerSystemResource.PSRType rdf:resource="#PSRTYPE_343"/>
<cim:PowerSystemResource.BaseVoltage rdf:resource="#BASEVOL_10000"/>
<cim:Equipment.MemberOf_EquipmentContainer rdf:resource="#CIRCUIT_59000002652200"/>
<cim:Equipment.MemberOf_CircuitSection rdf:resource="#CIRSEC_59000002652211"/>
</cim:Fuse>
<cim:Terminal rdf:ID="TERMINAL_59000453067000_1">
<cim:Naming.mRID>59000453067011</cim:Naming.mRID>
<cim:Terminal.sequenceNumber>1</cim:Terminal.sequenceNumber>
<cim:Terminal.ConductingEquipment rdf:resource="#SWITCH_59000453067000"/>
<cim:Terminal.ConnectivityNode rdf:resource="#NODE_59000453067400"/>
</cim:Terminal>
<cim:Terminal rdf:ID="TERMINAL_59000453067000_2">
<cim:Naming.mRID>59000453067012</cim:Naming.mRID>
<cim:Terminal.sequenceNumber>2</cim:Terminal.sequenceNumber>
<cim:Terminal.ConductingEquipment rdf:resource="#SWITCH_59000453067000"/>
<cim:Terminal.ConnectivityNode rdf:resource="#NODE_59000453067300"/>
</cim:Terminal>
<cim:Substation rdf:ID="SUBST_59000453067800">
<cim:Naming.name>牙舟煤矿2号专变2(一级)</cim:Naming.name>
<cim:Naming.mRID>59000453067800</cim:Naming.mRID>
<cim:PowerSystemResource.subType>20</cim:PowerSystemResource.subType>
<cim:PowerSystemResource.status>1</cim:PowerSystemResource.status>
<cim:PowerSystemResource.dispatchNumber></cim:PowerSystemResource.dispatchNumber>
<cim:PowerSystemResource.ownership></cim:PowerSystemResource.ownership>
<cim:PowerSystemResource.location>POINT(0.01457067391 0.00951315882)</cim:PowerSystemResource.location>
<cim:PowerSystemResource.symbolRotation>180.00</cim:PowerSystemResource.symbolRotation>
<cim:PowerSystemResource.PSRType rdf:resource="#PSRTYPE_335"/>
<cim:PowerSystemResource.BaseVoltage rdf:resource="#BASEVOL_10000"/>
</cim:Substation>
<cim:ACLineSegment rdf:ID="SEG_59000030467300">
<cim:Naming.name>1#~2#</cim:Naming.name>
<cim:Naming.mRID>59000030467300</cim:Naming.mRID>
<cim:PowerSystemResource.status>1</cim:PowerSystemResource.status>
<cim:PowerSystemResource.ownership>1</cim:PowerSystemResource.ownership>
<cim:Equipment.model>LGJ-70/10kV</cim:Equipment.model>
<cim:Conductor.length>80</cim:Conductor.length>
<cim:Conductor.crossSectionArea>70</cim:Conductor.crossSectionArea>
<cim:PowerSystemResource.location>LINESTRING(107.0685587 26.0248302,107.068662 26.0241362)</cim:PowerSystemResource.location>
<cim:PowerSystemResource.PSRType rdf:resource="#PSRTYPE_310"/>
<cim:PowerSystemResource.BaseVoltage rdf:resource="#BASEVOL_10000"/>
<cim:Equipment.MemberOf_EquipmentContainer rdf:resource="#CIRCUIT_59000002652200"/>
<cim:Equipment.MemberOf_CircuitSection rdf:resource="#CIRSEC_59000002652211"/>
<cim:ACLineSegment.MemberOf_SegmentGroup>59000300369900</cim:ACLineSegment.MemberOf_SegmentGroup>
</cim:ACLineSegment>
<cim:Terminal rdf:ID="TERMINAL_59000030467300_1">
<cim:Naming.mRID>59000030467311</cim:Naming.mRID>
<cim:Terminal.sequenceNumber>1</cim:Terminal.sequenceNumber>
<cim:Terminal.ConductingEquipment rdf:resource="#SEG_59000030467300"/>
<cim:Terminal.ConnectivityNode rdf:resource="#NODE_59000239469900"/>
</cim:Terminal>
<cim:Terminal rdf:ID="TERMINAL_59000030467300_2">
<cim:Naming.mRID>59000030467312</cim:Naming.mRID>
<cim:Terminal.sequenceNumber>2</cim:Terminal.sequenceNumber>
<cim:Terminal.ConductingEquipment rdf:resource="#SEG_59000030467300"/>
<cim:Terminal.ConnectivityNode rdf:resource="#NODE_59000192096100"/>
</cim:Terminal>
<cim:ACLineSegment rdf:ID="SEG_59000002702700">
<cim:Naming.name>10kV牙矿Ⅰ回线 从[10kV场边寨开闭所]到[10kV牙矿Ⅰ回线 1#]</cim:Naming.name>
<cim:Naming.mRID>59000002702700</cim:Naming.mRID>
<cim:PowerSystemResource.status>1</cim:PowerSystemResource.status>
<cim:PowerSystemResource.ownership>1</cim:PowerSystemResource.ownership>
<cim:Equipment.model>YJV22-300/10kV</cim:Equipment.model>
<cim:Conductor.length>100</cim:Conductor.length>
<cim:Conductor.crossSectionArea>300</cim:Conductor.crossSectionArea>
<cim:PowerSystemResource.location>LINESTRING(107.0693349 26.0275048,107.0685578 26.0248538)</cim:PowerSystemResource.location>
<cim:PowerSystemResource.PSRType rdf:resource="#PSRTYPE_311"/>
<cim:PowerSystemResource.BaseVoltage rdf:resource="#BASEVOL_10000"/>
<cim:Equipment.MemberOf_EquipmentContainer rdf:resource="#CIRCUIT_59000002652200"/>
<cim:Equipment.MemberOf_CircuitSection rdf:resource="#CIRSEC_59000002652211"/>
<cim:ACLineSegment.MemberOf_SegmentGroup>59000299717300</cim:ACLineSegment.MemberOf_SegmentGroup>
</cim:ACLineSegment>
<cim:Terminal rdf:ID="TERMINAL_59000002702700_1">
<cim:Naming.mRID>59000002702711</cim:Naming.mRID>
<cim:Terminal.sequenceNumber>1</cim:Terminal.sequenceNumber>
<cim:Terminal.ConductingEquipment rdf:resource="#SEG_59000002702700"/>
<cim:Terminal.ConnectivityNode rdf:resource="#NODE_54000016689000"/>
</cim:Terminal>
<cim:Terminal rdf:ID="TERMINAL_59000002702700_2">
<cim:Naming.mRID>59000002702712</cim:Naming.mRID>
<cim:Terminal.sequenceNumber>2</cim:Terminal.sequenceNumber>
<cim:Terminal.ConductingEquipment rdf:resource="#SEG_59000002702700"/>
<cim:Terminal.ConnectivityNode rdf:resource="#NODE_59000192096000"/>
</cim:Terminal>
<cim:ACLineSegment rdf:ID="SEG_59000030467400">
<cim:Naming.name>2#~3#</cim:Naming.name>
<cim:Naming.mRID>59000030467400</cim:Naming.mRID>
<cim:PowerSystemResource.status>1</cim:PowerSystemResource.status>
<cim:PowerSystemResource.ownership>1</cim:PowerSystemResource.ownership>
<cim:Equipment.model>LGJ-70/10kV</cim:Equipment.model>
<cim:Conductor.length>80</cim:Conductor.length>
<cim:Conductor.crossSectionArea>70</cim:Conductor.crossSectionArea>
<cim:PowerSystemResource.location>LINESTRING(107.068662 26.0241362,107.0687891 26.0234672)</cim:PowerSystemResource.location>
<cim:PowerSystemResource.PSRType rdf:resource="#PSRTYPE_310"/>
<cim:PowerSystemResource.BaseVoltage rdf:resource="#BASEVOL_10000"/>
<cim:Equipment.MemberOf_EquipmentContainer rdf:resource="#CIRCUIT_59000002652200"/>
<cim:Equipment.MemberOf_CircuitSection rdf:resource="#CIRSEC_59000002652211"/>
<cim:ACLineSegment.MemberOf_SegmentGroup>59000300370000</cim:ACLineSegment.MemberOf_SegmentGroup>
</cim:ACLineSegment>
<cim:Terminal rdf:ID="TERMINAL_59000030467400_1">
<cim:Naming.mRID>59000030467411</cim:Naming.mRID>
<cim:Terminal.sequenceNumber>1</cim:Terminal.sequenceNumber>
<cim:Terminal.ConductingEquipment rdf:resource="#SEG_59000030467400"/>
<cim:Terminal.ConnectivityNode rdf:resource="#NODE_59000192096100"/>
</cim:Terminal>
<cim:Terminal rdf:ID="TERMINAL_59000030467400_2">
<cim:Naming.mRID>59000030467412</cim:Naming.mRID>
<cim:Terminal.sequenceNumber>2</cim:Terminal.sequenceNumber>
<cim:Terminal.ConductingEquipment rdf:resource="#SEG_59000030467400"/>
<cim:Terminal.ConnectivityNode rdf:resource="#NODE_59000192097400"/>
</cim:Terminal>
<cim:ACLineSegment rdf:ID="SEG_59000421287700">
<cim:Naming.name>#14~#15(T接)</cim:Naming.name>
<cim:Naming.mRID>59000421287700</cim:Naming.mRID>
<cim:PowerSystemResource.status>1</cim:PowerSystemResource.status>
<cim:PowerSystemResource.ownership>1</cim:PowerSystemResource.ownership>
<cim:Equipment.model></cim:Equipment.model>
<cim:Conductor.length>11.11</cim:Conductor.length>
<cim:Conductor.crossSectionArea></cim:Conductor.crossSectionArea>
<cim:PowerSystemResource.location>LINESTRING(107.0695512 26.0117857,107.0700385 26.0132415)</cim:PowerSystemResource.location>
<cim:PowerSystemResource.PSRType rdf:resource="#PSRTYPE_310"/>
<cim:PowerSystemResource.BaseVoltage rdf:resource="#BASEVOL_10000"/>
<cim:Equipment.MemberOf_EquipmentContainer rdf:resource="#CIRCUIT_59000002652200"/>
<cim:Equipment.MemberOf_CircuitSection rdf:resource="#CIRSEC_59000421272300"/>
<cim:ACLineSegment.MemberOf_SegmentGroup>59000421287800</cim:ACLineSegment.MemberOf_SegmentGroup>
</cim:ACLineSegment>
<cim:Terminal rdf:ID="TERMINAL_59000421287700_1">
<cim:Naming.mRID>59000421287711</cim:Naming.mRID>
<cim:Terminal.sequenceNumber>1</cim:Terminal.sequenceNumber>
<cim:Terminal.ConductingEquipment rdf:resource="#SEG_59000421287700"/>
<cim:Terminal.ConnectivityNode rdf:resource="#NODE_59000421287200"/>
</cim:Terminal>
<cim:Terminal rdf:ID="TERMINAL_59000421287700_2">
<cim:Naming.mRID>59000421287712</cim:Naming.mRID>
<cim:Terminal.sequenceNumber>2</cim:Terminal.sequenceNumber>
<cim:Terminal.ConductingEquipment rdf:resource="#SEG_59000421287700"/>
<cim:Terminal.ConnectivityNode rdf:resource="#NODE_59000192097400"/>
</cim:Terminal>
<cim:ACLineSegment rdf:ID="SEG_59000421287400">
<cim:Naming.name>#13~#14</cim:Naming.name>
<cim:Naming.mRID>59000421287400</cim:Naming.mRID>
<cim:PowerSystemResource.status>1</cim:PowerSystemResource.status>
<cim:PowerSystemResource.ownership>1</cim:PowerSystemResource.ownership>
<cim:Equipment.model></cim:Equipment.model>
<cim:Conductor.length>11.11</cim:Conductor.length>
<cim:Conductor.crossSectionArea></cim:Conductor.crossSectionArea>
<cim:PowerSystemResource.location>LINESTRING(107.0693999 26.0112393,107.0695512 26.0117857)</cim:PowerSystemResource.location>
<cim:PowerSystemResource.PSRType rdf:resource="#PSRTYPE_310"/>
<cim:PowerSystemResource.BaseVoltage rdf:resource="#BASEVOL_10000"/>
<cim:Equipment.MemberOf_EquipmentContainer rdf:resource="#CIRCUIT_59000002652200"/>
<cim:Equipment.MemberOf_CircuitSection rdf:resource="#CIRSEC_59000421272300"/>
<cim:ACLineSegment.MemberOf_SegmentGroup>59000421287500</cim:ACLineSegment.MemberOf_SegmentGroup>
</cim:ACLineSegment>
<cim:Terminal rdf:ID="TERMINAL_59000421287400_1">
<cim:Naming.mRID>59000421287411</cim:Naming.mRID>
<cim:Terminal.sequenceNumber>1</cim:Terminal.sequenceNumber>
<cim:Terminal.ConductingEquipment rdf:resource="#SEG_59000421287400"/>
<cim:Terminal.ConnectivityNode rdf:resource="#NODE_59000192098800"/>
</cim:Terminal>
<cim:Terminal rdf:ID="TERMINAL_59000421287400_2">
<cim:Naming.mRID>59000421287412</cim:Naming.mRID>
<cim:Terminal.sequenceNumber>2</cim:Terminal.sequenceNumber>
<cim:Terminal.ConductingEquipment rdf:resource="#SEG_59000421287400"/>
<cim:Terminal.ConnectivityNode rdf:resource="#NODE_59000421287200"/>
</cim:Terminal>
<cim:ACLineSegment rdf:ID="SEG_59000030470200">
<cim:Naming.name>30#~31#</cim:Naming.name>
<cim:Naming.mRID>59000030470200</cim:Naming.mRID>
<cim:PowerSystemResource.status>1</cim:PowerSystemResource.status>
<cim:PowerSystemResource.ownership>1</cim:PowerSystemResource.ownership>
<cim:Equipment.model>LGJ-70/10kV</cim:Equipment.model>
<cim:Conductor.length>100</cim:Conductor.length>
<cim:Conductor.crossSectionArea>70</cim:Conductor.crossSectionArea>
<cim:PowerSystemResource.location>LINESTRING(107.0653155 25.9963237,107.0689456 25.9927844)</cim:PowerSystemResource.location>
<cim:PowerSystemResource.PSRType rdf:resource="#PSRTYPE_310"/>
<cim:PowerSystemResource.BaseVoltage rdf:resource="#BASEVOL_10000"/>
<cim:Equipment.MemberOf_EquipmentContainer rdf:resource="#CIRCUIT_59000002652200"/>
<cim:Equipment.MemberOf_CircuitSection rdf:resource="#CIRSEC_59000002652211"/>
<cim:ACLineSegment.MemberOf_SegmentGroup>59000300376800</cim:ACLineSegment.MemberOf_SegmentGroup>
</cim:ACLineSegment>
<cim:Terminal rdf:ID="TERMINAL_59000030470200_1">
<cim:Naming.mRID>59000030470211</cim:Naming.mRID>
<cim:Terminal.sequenceNumber>1</cim:Terminal.sequenceNumber>
<cim:Terminal.ConductingEquipment rdf:resource="#SEG_59000030470200"/>
<cim:Terminal.ConnectivityNode rdf:resource="#NODE_59000192098800"/>
</cim:Terminal>
<cim:Terminal rdf:ID="TERMINAL_59000030470200_2">
<cim:Naming.mRID>59000030470212</cim:Naming.mRID>
<cim:Terminal.sequenceNumber>2</cim:Terminal.sequenceNumber>
<cim:Terminal.ConductingEquipment rdf:resource="#SEG_59000030470200"/>
<cim:Terminal.ConnectivityNode rdf:resource="#NODE_59000192095700"/>
</cim:Terminal>
<cim:ACLineSegment rdf:ID="SEG_59000453065600">
<cim:Naming.name>#55~牙舟煤矿2#专变(一级)</cim:Naming.name>
<cim:Naming.mRID>59000453065600</cim:Naming.mRID>
<cim:PowerSystemResource.status>1</cim:PowerSystemResource.status>
<cim:PowerSystemResource.ownership></cim:PowerSystemResource.ownership>
<cim:Equipment.model></cim:Equipment.model>
<cim:PowerSystemResource.location>LINESTRING(0.01322320098 0.0089831528,0.01322320098 0.00908196748)</cim:PowerSystemResource.location>
<cim:PowerSystemResource.PSRType rdf:resource="#PSRTYPE_312"/>
<cim:PowerSystemResource.BaseVoltage rdf:resource="#BASEVOL_10000"/>
<cim:Equipment.MemberOf_EquipmentContainer rdf:resource="#CIRCUIT_59000002652200"/>
<cim:Equipment.MemberOf_CircuitSection rdf:resource="#CIRSEC_59000002652211"/>
</cim:ACLineSegment>
<cim:Terminal rdf:ID="TERMINAL_59000453065600_1">
<cim:Naming.mRID>59000453065611</cim:Naming.mRID>
<cim:Terminal.sequenceNumber>1</cim:Terminal.sequenceNumber>
<cim:Terminal.ConductingEquipment rdf:resource="#SEG_59000453065600"/>
<cim:Terminal.ConnectivityNode rdf:resource="#NODE_59000192095700"/>
</cim:Terminal>
<cim:Terminal rdf:ID="TERMINAL_59000453065600_2">
<cim:Naming.mRID>59000453065612</cim:Naming.mRID>
<cim:Terminal.sequenceNumber>2</cim:Terminal.sequenceNumber>
<cim:Terminal.ConductingEquipment rdf:resource="#SEG_59000453065600"/>
<cim:Terminal.ConnectivityNode rdf:resource="#NODE_59000453065300"/>
</cim:Terminal>
<cim:ACLineSegment rdf:ID="SEG_59000030472700">
<cim:Naming.name>55#~56#</cim:Naming.name>
<cim:Naming.mRID>59000030472700</cim:Naming.mRID>
<cim:PowerSystemResource.status>1</cim:PowerSystemResource.status>
<cim:PowerSystemResource.ownership>1</cim:PowerSystemResource.ownership>
<cim:Equipment.model>LGJ-70/10kV</cim:Equipment.model>
<cim:Conductor.length>90</cim:Conductor.length>
<cim:Conductor.crossSectionArea>70</cim:Conductor.crossSectionArea>
<cim:PowerSystemResource.location>LINESTRING(107.1033791 25.991028,107.1039392 25.9904096)</cim:PowerSystemResource.location>
<cim:PowerSystemResource.PSRType rdf:resource="#PSRTYPE_310"/>
<cim:PowerSystemResource.BaseVoltage rdf:resource="#BASEVOL_10000"/>
<cim:Equipment.MemberOf_EquipmentContainer rdf:resource="#CIRCUIT_59000002652200"/>
<cim:Equipment.MemberOf_CircuitSection rdf:resource="#CIRSEC_59000002652211"/>
<cim:ACLineSegment.MemberOf_SegmentGroup>59000300391700</cim:ACLineSegment.MemberOf_SegmentGroup>
</cim:ACLineSegment>
<cim:Terminal rdf:ID="TERMINAL_59000030472700_1">
<cim:Naming.mRID>59000030472711</cim:Naming.mRID>
<cim:Terminal.sequenceNumber>1</cim:Terminal.sequenceNumber>
<cim:Terminal.ConductingEquipment rdf:resource="#SEG_59000030472700"/>
<cim:Terminal.ConnectivityNode rdf:resource="#NODE_59000192095700"/>
</cim:Terminal>
<cim:Terminal rdf:ID="TERMINAL_59000030472700_2">
<cim:Naming.mRID>59000030472712</cim:Naming.mRID>
<cim:Terminal.sequenceNumber>2</cim:Terminal.sequenceNumber>
<cim:Terminal.ConductingEquipment rdf:resource="#SEG_59000030472700"/>
<cim:Terminal.ConnectivityNode rdf:resource="#NODE_59000192095800"/>
</cim:Terminal>
<cim:ACLineSegment rdf:ID="SEG_59000453067600">
<cim:Naming.name>#56~牙舟煤矿2号专变2(一级)</cim:Naming.name>
<cim:Naming.mRID>59000453067600</cim:Naming.mRID>
<cim:PowerSystemResource.status>1</cim:PowerSystemResource.status>
<cim:PowerSystemResource.ownership></cim:PowerSystemResource.ownership>
<cim:Equipment.model></cim:Equipment.model>
<cim:PowerSystemResource.location>LINESTRING(0.01457067391 0.0089831528,0.01457067391 0.00909095064)</cim:PowerSystemResource.location>
<cim:PowerSystemResource.PSRType rdf:resource="#PSRTYPE_312"/>
<cim:PowerSystemResource.BaseVoltage rdf:resource="#BASEVOL_10000"/>
<cim:Equipment.MemberOf_EquipmentContainer rdf:resource="#CIRCUIT_59000002652200"/>
<cim:Equipment.MemberOf_CircuitSection rdf:resource="#CIRSEC_59000002652211"/>
</cim:ACLineSegment>
<cim:Terminal rdf:ID="TERMINAL_59000453067600_1">
<cim:Naming.mRID>59000453067611</cim:Naming.mRID>
<cim:Terminal.sequenceNumber>1</cim:Terminal.sequenceNumber>
<cim:Terminal.ConductingEquipment rdf:resource="#SEG_59000453067600"/>
<cim:Terminal.ConnectivityNode rdf:resource="#NODE_59000192095800"/>
</cim:Terminal>
<cim:Terminal rdf:ID="TERMINAL_59000453067600_2">
<cim:Naming.mRID>59000453067612</cim:Naming.mRID>
<cim:Terminal.sequenceNumber>2</cim:Terminal.sequenceNumber>
<cim:Terminal.ConductingEquipment rdf:resource="#SEG_59000453067600"/>
<cim:Terminal.ConnectivityNode rdf:resource="#NODE_59000453067300"/>
</cim:Terminal>
<cim:ACLineSegment rdf:ID="SEG_59000030472800">
<cim:Naming.name>56#~57#</cim:Naming.name>
<cim:Naming.mRID>59000030472800</cim:Naming.mRID>
<cim:PowerSystemResource.status>1</cim:PowerSystemResource.status>
<cim:PowerSystemResource.ownership>1</cim:PowerSystemResource.ownership>
<cim:Equipment.model>LGJ-70/10kV</cim:Equipment.model>
<cim:Conductor.length>110</cim:Conductor.length>
<cim:Conductor.crossSectionArea>70</cim:Conductor.crossSectionArea>
<cim:PowerSystemResource.location>LINESTRING(107.1039392 25.9904096,107.1045498 25.9896208)</cim:PowerSystemResource.location>
<cim:PowerSystemResource.PSRType rdf:resource="#PSRTYPE_310"/>
<cim:PowerSystemResource.BaseVoltage rdf:resource="#BASEVOL_10000"/>
<cim:Equipment.MemberOf_EquipmentContainer rdf:resource="#CIRCUIT_59000002652200"/>
<cim:Equipment.MemberOf_CircuitSection rdf:resource="#CIRSEC_59000002652211"/>
<cim:ACLineSegment.MemberOf_SegmentGroup>59000300391800</cim:ACLineSegment.MemberOf_SegmentGroup>
</cim:ACLineSegment>
<cim:Terminal rdf:ID="TERMINAL_59000030472800_1">
<cim:Naming.mRID>59000030472811</cim:Naming.mRID>
<cim:Terminal.sequenceNumber>1</cim:Terminal.sequenceNumber>
<cim:Terminal.ConductingEquipment rdf:resource="#SEG_59000030472800"/>
<cim:Terminal.ConnectivityNode rdf:resource="#NODE_59000192095800"/>
</cim:Terminal>
<cim:Terminal rdf:ID="TERMINAL_59000030472800_2">
<cim:Naming.mRID>59000030472812</cim:Naming.mRID>
<cim:Terminal.sequenceNumber>2</cim:Terminal.sequenceNumber>
<cim:Terminal.ConductingEquipment rdf:resource="#SEG_59000030472800"/>
<cim:Terminal.ConnectivityNode rdf:resource="#NODE_59000192095900"/>
</cim:Terminal>
<cim:ACLineSegment rdf:ID="SEG_59000030470100">
<cim:Naming.name>29#~30#</cim:Naming.name>
<cim:Naming.mRID>59000030470100</cim:Naming.mRID>
<cim:PowerSystemResource.status>1</cim:PowerSystemResource.status>
<cim:PowerSystemResource.ownership>1</cim:PowerSystemResource.ownership>
<cim:Equipment.model>LGJ-70/10kV</cim:Equipment.model>
<cim:Conductor.length>70</cim:Conductor.length>
<cim:Conductor.crossSectionArea>70</cim:Conductor.crossSectionArea>
<cim:PowerSystemResource.location>LINESTRING(107.0652855 25.9969644,107.0653155 25.9963237)</cim:PowerSystemResource.location>
<cim:PowerSystemResource.PSRType rdf:resource="#PSRTYPE_310"/>
<cim:PowerSystemResource.BaseVoltage rdf:resource="#BASEVOL_10000"/>
<cim:Equipment.MemberOf_EquipmentContainer rdf:resource="#CIRCUIT_59000002652200"/>
<cim:Equipment.MemberOf_CircuitSection rdf:resource="#CIRSEC_59000002652211"/>
<cim:ACLineSegment.MemberOf_SegmentGroup>59000300376700</cim:ACLineSegment.MemberOf_SegmentGroup>
</cim:ACLineSegment>
<cim:Terminal rdf:ID="TERMINAL_59000030470100_1">
<cim:Naming.mRID>59000030470111</cim:Naming.mRID>
<cim:Terminal.sequenceNumber>1</cim:Terminal.sequenceNumber>
<cim:Terminal.ConductingEquipment rdf:resource="#SEG_59000030470100"/>
<cim:Terminal.ConnectivityNode rdf:resource="#NODE_59000192097400"/>
</cim:Terminal>
<cim:Terminal rdf:ID="TERMINAL_59000030470100_2">
<cim:Naming.mRID>59000030470112</cim:Naming.mRID>
<cim:Terminal.sequenceNumber>2</cim:Terminal.sequenceNumber>
<cim:Terminal.ConductingEquipment rdf:resource="#SEG_59000030470100"/>
<cim:Terminal.ConnectivityNode rdf:resource="#NODE_59000192098800"/>
</cim:Terminal>
<cim:CircuitSection rdf:ID="CIRSEC_59000002652211">
<cim:Naming.name>10kV牙矿Ⅰ回线</cim:Naming.name>
<cim:Naming.mRID>59000002652211</cim:Naming.mRID>
<cim:PowerSystemResource.status>1</cim:PowerSystemResource.status>
<cim:CircuitSection.connectionKind>主干线</cim:CircuitSection.connectionKind>
<cim:PowerSystemResource.ownership>4</cim:PowerSystemResource.ownership>
<cim:PowerSystemResource.PSRType rdf:resource="#PSRTYPE_300"/>
<cim:PowerSystemResource.BaseVoltage rdf:resource="#BASEVOL_10000"/>
<cim:CircuitSection.MemberOf_Circuit rdf:resource="#CIRCUIT_59000002652200"/>
</cim:CircuitSection>
<cim:CircuitSection rdf:ID="CIRSEC_59000421272300">
<cim:Naming.name>S422工程</cim:Naming.name>
<cim:Naming.mRID>59000421272300</cim:Naming.mRID>
<cim:PowerSystemResource.status>1</cim:PowerSystemResource.status>
<cim:CircuitSection.connectionKind>分支线</cim:CircuitSection.connectionKind>
<cim:PowerSystemResource.ownership>1</cim:PowerSystemResource.ownership>
<cim:PowerSystemResource.PSRType rdf:resource="#PSRTYPE_300"/>
<cim:PowerSystemResource.BaseVoltage rdf:resource="#BASEVOL_10000"/>
<cim:CircuitSection.MemberOf_Circuit rdf:resource="#CIRCUIT_59000002652200"/>
<cim:CircuitSection.Parent rdf:resource="#CIRSEC_59000002652211"/>
</cim:CircuitSection>
<cim:ConnectivityNode rdf:ID="NODE_59000192096100">
<cim:Naming.mRID>59000192096100</cim:Naming.mRID>
</cim:ConnectivityNode>
<cim:ConnectivityNode rdf:ID="NODE_59000192097400">
<cim:Naming.mRID>59000192097400</cim:Naming.mRID>
</cim:ConnectivityNode>
<cim:ConnectivityNode rdf:ID="NODE_59000453065300">
<cim:Naming.mRID>59000453065300</cim:Naming.mRID>
</cim:ConnectivityNode>
<cim:ConnectivityNode rdf:ID="NODE_59000192095800">
<cim:Naming.mRID>59000192095800</cim:Naming.mRID>
</cim:ConnectivityNode>
<cim:ConnectivityNode rdf:ID="NODE_54000020389200">
<cim:Naming.mRID>54000020389200</cim:Naming.mRID>
</cim:ConnectivityNode>
<cim:ConnectivityNode rdf:ID="NODE_59000192096000">
<cim:Naming.mRID>59000192096000</cim:Naming.mRID>
</cim:ConnectivityNode>
<cim:ConnectivityNode rdf:ID="NODE_59000453067400">
<cim:Naming.mRID>59000453067400</cim:Naming.mRID>
</cim:ConnectivityNode>
<cim:ConnectivityNode rdf:ID="NODE_59000239469900">
<cim:Naming.mRID>59000239469900</cim:Naming.mRID>
</cim:ConnectivityNode>
<cim:ConnectivityNode rdf:ID="NODE_59000192098800">
<cim:Naming.mRID>59000192098800</cim:Naming.mRID>
</cim:ConnectivityNode>
<cim:ConnectivityNode rdf:ID="NODE_54000016689000">
<cim:Naming.mRID>54000016689000</cim:Naming.mRID>
</cim:ConnectivityNode>
<cim:ConnectivityNode rdf:ID="NODE_59000421287200">
<cim:Naming.mRID>59000421287200</cim:Naming.mRID>
</cim:ConnectivityNode>
<cim:ConnectivityNode rdf:ID="NODE_59000453065400">
<cim:Naming.mRID>59000453065400</cim:Naming.mRID>
</cim:ConnectivityNode>
<cim:ConnectivityNode rdf:ID="NODE_59000192095700">
<cim:Naming.mRID>59000192095700</cim:Naming.mRID>
</cim:ConnectivityNode>
<cim:ConnectivityNode rdf:ID="NODE_59000192095900">
<cim:Naming.mRID>59000192095900</cim:Naming.mRID>
</cim:ConnectivityNode>
<cim:ConnectivityNode rdf:ID="NODE_59000453067300">
<cim:Naming.mRID>59000453067300</cim:Naming.mRID>
</cim:ConnectivityNode>
<cim:BaseVoltage rdf:ID="BASEVOL_10000">
<cim:Naming.mRID>10000</cim:Naming.mRID>
<cim:Naming.name>10kV</cim:Naming.name>
<cim:BaseVoltage.nominalVoltage>10000</cim:BaseVoltage.nominalVoltage>
</cim:BaseVoltage>
<cim:PSRType rdf:ID="PSRTYPE_110">
<cim:Naming.mRID>110</cim:Naming.mRID>
<cim:Naming.name>变电站</cim:Naming.name>
<cim:PSRType.transSubDistCategory>SUBSTATION</cim:PSRType.transSubDistCategory>
</cim:PSRType>
<cim:PSRType rdf:ID="PSRTYPE_140">
<cim:Naming.mRID>140</cim:Naming.mRID>
<cim:Naming.name>变电站内断路器</cim:Naming.name>
<cim:PSRType.transSubDistCategory>SUBSTATION</cim:PSRType.transSubDistCategory>
</cim:PSRType>
<cim:PSRType rdf:ID="PSRTYPE_300">
<cim:Naming.mRID>300</cim:Naming.mRID>
<cim:Naming.name>配电线路分支</cim:Naming.name>
<cim:PSRType.transSubDistCategory>DISTRIBUTION</cim:PSRType.transSubDistCategory>
</cim:PSRType>
<cim:PSRType rdf:ID="PSRTYPE_310">
<cim:Naming.mRID>310</cim:Naming.mRID>
<cim:Naming.name>配电架空线段</cim:Naming.name>
<cim:PSRType.transSubDistCategory>DISTRIBUTION</cim:PSRType.transSubDistCategory>
</cim:PSRType>
<cim:PSRType rdf:ID="PSRTYPE_311">
<cim:Naming.mRID>311</cim:Naming.mRID>
<cim:Naming.name>配电电缆段</cim:Naming.name>
<cim:PSRType.transSubDistCategory>DISTRIBUTION</cim:PSRType.transSubDistCategory>
</cim:PSRType>
<cim:PSRType rdf:ID="PSRTYPE_312">
<cim:Naming.mRID>312</cim:Naming.mRID>
<cim:Naming.name>配电电气连接线</cim:Naming.name>
<cim:PSRType.transSubDistCategory>DISTRIBUTION</cim:PSRType.transSubDistCategory>
</cim:PSRType>
<cim:PSRType rdf:ID="PSRTYPE_335">
<cim:Naming.mRID>335</cim:Naming.mRID>
<cim:Naming.name>配电台变</cim:Naming.name>
<cim:PSRType.transSubDistCategory>DISTRIBUTION</cim:PSRType.transSubDistCategory>
</cim:PSRType>
<cim:PSRType rdf:ID="PSRTYPE_338">
<cim:Naming.mRID>338</cim:Naming.mRID>
<cim:Naming.name>配电中低压物理杆塔</cim:Naming.name>
<cim:PSRType.transSubDistCategory>DISTRIBUTION</cim:PSRType.transSubDistCategory>
</cim:PSRType>
<cim:PSRType rdf:ID="PSRTYPE_343">
<cim:Naming.mRID>343</cim:Naming.mRID>
<cim:Naming.name>配电跌落式熔断器</cim:Naming.name>
<cim:PSRType.transSubDistCategory>DISTRIBUTION</cim:PSRType.transSubDistCategory>
</cim:PSRType>
<cim:PSRType rdf:ID="PSRTYPE_360">
<cim:Naming.mRID>360</cim:Naming.mRID>
<cim:Naming.name>配电中低压逻辑杆塔</cim:Naming.name>
<cim:PSRType.transSubDistCategory>DISTRIBUTION</cim:PSRType.transSubDistCategory>
</cim:PSRType>
<cim:PSRType rdf:ID="PSRTYPE_399">
<cim:Naming.mRID>399</cim:Naming.mRID>
<cim:Naming.name>配电电缆终端头</cim:Naming.name>
<cim:PSRType.transSubDistCategory>DISTRIBUTION</cim:PSRType.transSubDistCategory>
</cim:PSRType>
<cim:SubControlArea rdf:ID="AREA_270616">
<cim:Naming.mRID>270616</cim:Naming.mRID>
<cim:Naming.name>营销服务班</cim:Naming.name>
<cim:SubControlArea.areaLevel>4</cim:SubControlArea.areaLevel>
<cim:SubControlArea.MemberOf_SubControlArea rdf:resource="#AREA_200227"/>
</cim:SubControlArea>
<cim:SubControlArea rdf:ID="AREA_200227">
<cim:Naming.mRID>200227</cim:Naming.mRID>
<cim:Naming.name>平塘局</cim:Naming.name>
<cim:SubControlArea.areaLevel>3</cim:SubControlArea.areaLevel>
<cim:SubControlArea.MemberOf_SubControlArea rdf:resource="#AREA_200032"/>
</cim:SubControlArea>
<cim:SubControlArea rdf:ID="AREA_200032">
<cim:Naming.mRID>200032</cim:Naming.mRID>
<cim:Naming.name>都匀供电局</cim:Naming.name>
<cim:SubControlArea.areaLevel>2</cim:SubControlArea.areaLevel>
</cim:SubControlArea>
</rdf:RDF>
"""
# 定义XML命名空间
NAMESPACES = {
'rdf': 'http://www.w3.org/1999/02/22-rdf-syntax-ns#',
'cim': 'http://iec.ch/TC57/2003/CIM-schema-cim10#'
}
def parse_location(location_str):
"""解析位置字符串, 如 'POINT(1 2)' 或 'LINESTRING(1 2,3 4)'"""
try:
# 清理字符串
content = location_str.split('(')[1].split(')')[0]
if "POINT" in location_str:
parts = content.split()
return [(float(parts[0]), float(parts[1]))]
elif "LINESTRING" in location_str:
points = []
parts = content.split(',')
for part in parts:
coords = part.strip().split()
if len(coords) == 2:
points.append((float(coords[0]), float(coords[1])))
return points
except (IndexError, ValueError) as e:
# print(f"警告: 无法解析位置字符串 '{location_str}': {e}")
return None
return None
def generate_svg_from_cim(xml_data, width=1000, height=800):
"""
从CIM XML数据生成SVG图形。
:param xml_data: 包含CIM数据的字符串
:param width: SVG画布宽度
:param height: SVG画布高度
:return: 包含SVG的完整HTML字符串
"""
root = ET.fromstring(xml_data)
elements = []
all_points = []
# 1. 提取所有带位置信息的元素
for elem in root.findall('.//cim:*', NAMESPACES):
location_tag = elem.find('cim:PowerSystemResource.location', NAMESPACES)
if location_tag is not None and location_tag.text:
# 过滤掉无效的经纬度数据,例如 (0.01, 0.009) 这种明显不是真实经纬度的点
if 'POINT(0.' in location_tag.text or 'LINESTRING(0.' in location_tag.text:
continue
points = parse_location(location_tag.text)
if points:
name_tag = elem.find('cim:Naming.name', NAMESPACES)
name = name_tag.text if name_tag is not None else ''
# 移除命名空间前缀,得到干净的标签名
elem_type = elem.tag.split('}')[-1]
elements.append({
'type': elem_type,
'name': name,
'points': points
})
all_points.extend(points)
if not all_points:
return "<h1>错误:在XML中没有找到有效的位置信息。</h1>"
# 2. 计算地理坐标的包围盒
min_lon = min(p[0] for p in all_points)
max_lon = max(p[0] for p in all_points)
min_lat = min(p[1] for p in all_points)
max_lat = max(p[1] for p in all_points)
# 防止经纬度范围为0
if max_lon == min_lon:
max_lon += 0.001
if max_lat == min_lat:
max_lat += 0.001
# 添加边距
padding = 0.05 # 5%的边距
lon_range = max_lon - min_lon
lat_range = max_lat - min_lat
min_lon -= lon_range * padding
max_lon += lon_range * padding
min_lat -= lat_range * padding
max_lat += lat_range * padding
# 3. 计算坐标转换的比例
svg_padding = 50 # SVG画布边距
x_scale = (width - 2 * svg_padding) / (max_lon - min_lon)
y_scale = (height - 2 * svg_padding) / (max_lat - min_lat)
def transform_coords(lon, lat):
# 将经纬度转换为SVG坐标
# 注意:SVG的y轴是向下的,所以需要用max_lat减去当前lat
x = svg_padding + (lon - min_lon) * x_scale
y = svg_padding + (max_lat - lat) * y_scale
return x, y
# 4. 生成SVG元素
svg_elements = []
# 定义样式
svg_elements.append("""
<style>
.line { stroke: #4A90E2; stroke-width: 2; fill: none; }
.cable { stroke: #7ED321; stroke-width: 3; stroke-dasharray: 5,5; fill: none; }
.pole { fill: #D0021B; }
.substation { fill: #F5A623; }
.junction { fill: #BD10E0; }
.other { fill: #444; }
.label { font-family: sans-serif; font-size: 10px; fill: #333; text-anchor: middle; }
</style>
""")
# 先画线
for el in elements:
if el['type'] == 'ACLineSegment':
points_str = " ".join([f"{transform_coords(lon, lat)[0]},{transform_coords(lon, lat)[1]}" for lon, lat in el['points']])
# YJV22是电缆型号
line_class = 'cable' if 'YJV22' in el['name'] else 'line'
svg_elements.append(f'<polyline points="{points_str}" class="{line_class}" />')
# 再画点和标签,确保它们在线的上方
for el in elements:
if el['type'] != 'ACLineSegment':
# 只处理点状对象
if len(el['points']) == 1:
lon, lat = el['points'][0]
x, y = transform_coords(lon, lat)
# 根据类型选择不同的符号
if el['type'] in ['Pole', 'PoleSite']:
svg_elements.append(f'<circle cx="{x}" cy="{y}" r="4" class="pole" />')
elif el['type'] == 'Substation':
svg_elements.append(f'<rect x="{x-6}" y="{y-6}" width="12" height="12" class="substation" />')
elif el['type'] == 'Junction':
svg_elements.append(f'<circle cx="{x}" cy="{y}" r="5" class="junction" />')
else: # 其他类型,如Fuse
svg_elements.append(f'<circle cx="{x}" cy="{y}" r="3" class="other" />')
# 添加标签
# 为了避免标签重叠,可以只显示部分关键设备的名称
if el['type'] in ['Pole', 'Substation'] or '专变' in el['name']:
svg_elements.append(f'<text x="{x}" y="{y - 8}" class="label">{el["name"]}</text>')
# 5. 组装成完整的HTML文件
svg_content = f"""
<svg width="{width}" height="{height}" xmlns="http://www.w3.org/2000/svg">
{''.join(svg_elements)}
</svg>
"""
html_template = f"""
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<title>CIM to SVG 渲染示例</title>
<style>
body {{ font-family: sans-serif; margin: 0; padding: 20px; background-color: #f4f4f9; }}
h1 {{ color: #333; }}
.container {{
border: 1px solid #ccc;
background-color: white;
box-shadow: 0 2px 8px rgba(0,0,0,0.1);
max-width: {width}px;
margin: auto;
overflow: hidden; /* 确保SVG不会溢出容器 */
}}
svg {{ display: block; margin: auto; }}
</style>
</head>
<body>
<h1>电网GIS渲染图 (基于CIM XML)</h1>
<div class="container">
{svg_content}
</div>
</body>
</html>
"""
return html_template
# --- 主程序入口 ---
if __name__ == '__main__':
# 生成HTML内容
html_output = generate_svg_from_cim(CIM_XML_DATA.strip())
# 将结果保存到文件中
file_name = "gis_render.html"
try:
with open(file_name, "w", encoding="utf-8") as f:
f.write(html_output)
print(f"成功!已生成渲染文件: {file_name}")
print(f"请用您的网络浏览器打开此文件查看结果。")
except IOError as e:
print(f"错误:无法写入文件 {file_name}: {e}")
render_gis.py。python render_gis.py。gis_render.html 的文件。gis_render.html 文件,您就能看到根据XML数据渲染出的电网结构图了。这是一个很好的起点,但还可以从以下几个方面进行深化和改进:
<symbol>和<use>标签),例如用专门的图标来表示断路器、熔断器、变压器等。Terminal和ConnectivityNode来精确地绘制设备间的电气连接关系,而不仅仅是画一条直线。这对于确保拓扑结构的准确性至关重要。希望这个详细的解释和编程示范能帮助您入门!