提取拓扑错误并导出

将Arcengine拓扑错误的要素提取出来并导出为shape文件


拓扑错误提取:

  private void PRV_GetErrorFeature(ITopologyRule IN_TopologyRule)
        {
            IEnvelope Temp_Envolope = (TP_MainTopology as IGeoDataset).Extent;
            IErrorFeatureContainer Temp_ErrorContainer = TP_MainTopology as IErrorFeatureContainer;
            //获取该种错误所有的错误要素
            IEnumTopologyErrorFeature Temp_EnumErrorFeature = Temp_ErrorContainer.get_ErrorFeatures(((IGeoDataset)FDS_MainFeatureDataset).SpatialReference, IN_TopologyRule, Temp_Envolope, true, true);
            //提取一个错误要素
            ITopologyErrorFeature Temp_ErrorFeature = Temp_EnumErrorFeature.Next();
            if (Temp_ErrorFeature != null)
            {
                //作为搭建模型的要素
                IFeature Temp_MoudleFeature = Temp_ErrorFeature as IFeature;
                //生成要素类需要CLSID和EXCLSID
                IFeatureClassDescription Temp_FeatureClassDescription = new FeatureClassDescriptionClass();
                IObjectClassDescription Temp_ObjectClassDescription = (IObjectClassDescription)Temp_FeatureClassDescription;
                //以模型要素为模板构建一个要素类
                FDS_MainFeatureDataset.CreateFeatureClass(IN_TopologyRule.ToString(), Temp_MoudleFeature.Fields, Temp_ObjectClassDescription.InstanceCLSID, Temp_ObjectClassDescription.ClassExtensionCLSID, Temp_MoudleFeature.FeatureType, "Shape", "");
                //打开生成的目标要素类并加入集合留待输出时使用
                IFeatureClass Temp_TargetFeatureClass = (FDS_MainFeatureDataset.Workspace as IFeatureWorkspace).OpenFeatureClass(IN_TopologyRule.ToString());
                LI_TopoErrorFeatureClass.Add(Temp_TargetFeatureClass);
                //将所有错误要素添加进目标要素类
                IWorkspaceEdit Temp_WorkspaceEdit = (IWorkspaceEdit)FDS_MainFeatureDataset.Workspace;
                Temp_WorkspaceEdit.StartEditing(true);
                Temp_WorkspaceEdit.StartEditOperation();
                IFeatureBuffer Temp_FeatureBuffer = Temp_TargetFeatureClass.CreateFeatureBuffer();
                //在目标要素类中插入所有错误要素
                IFeatureCursor featureCursor = Temp_TargetFeatureClass.Insert(true); ;
                while (Temp_ErrorFeature != null)
                {
                    IFeature Temp_Feature = Temp_ErrorFeature as IFeature;
                    //给目标要素附属性
                    Temp_FeatureBuffer.set_Value(1, Temp_ErrorFeature.OriginClassID);
                    Temp_FeatureBuffer.set_Value(2, Temp_ErrorFeature.OriginOID);
                    Temp_FeatureBuffer.set_Value(5, Temp_ErrorFeature.TopologyRuleType);
                    Temp_FeatureBuffer.Shape = Temp_Feature.Shape;
                    object featureOID = featureCursor.InsertFeature(Temp_FeatureBuffer);
                    featureCursor.Flush();//保存要素
                    Temp_ErrorFeature = Temp_EnumErrorFeature.Next();
                }
                Temp_WorkspaceEdit.StopEditOperation();
                Temp_WorkspaceEdit.StopEditing(true);
                System.Runtime.InteropServices.Marshal.ReleaseComObject(featureCursor);
            }
        }

其中:

TP_MainTopology为验证后的拓扑,类行为ITopology

  LI_TopoErrorFeatureClass为记录所有拓扑错误要素类的集合,类型为  List<IFeatureClass> LI_TopoErrorFeatureClass

FDS_MainFeatureDataset为存储要素类的要素数据集,类型为FeatureDataset


输出shape文件


        private void PRV_OutPutToShape()
        {
            FeatureClassToShapefile GP_FeatureClassToShape = new FeatureClassToShapefile();
            foreach (IFeatureClass Each_FeatureClass in LI_TopoErrorFeatureClass)
            {
                GP_FeatureClassToShape.Input_Features = Each_FeatureClass;
                GP_FeatureClassToShape.Output_Folder = "E:\\";
                GP_Tool.Execute(GP_FeatureClassToShape,null);
            }
                    
        }



  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: KMS9300智能变电站SCD解析及校验软件是一款用于解析和校验智能变电站配置文件SCD的软件工具。SCD(Substation Configuration Description)是智能变电站中的一种重要配置文件,用于描述变电站的拓扑结构、设备参数和通信规约等信息。 KMS9300智能变电站SCD解析及校验软件能够将SCD文件解析为可读的格式,并验证其是否符合规范要求。它可以自动识别和提取SCD文件中的各种参数和配置信息,并以直观的方式展示给用户。这使得用户能够更加轻松地了解变电站的配置情况,快速识别潜在的配置错误或问题。 此外,KMS9300还提供了强大的校验功能,能够检查SCD文件中的各项配置是否符合标准规范。它可以自动识别和纠正常见的配置错误,例如设备参数的格式错误、通信规约的重复定义等。如果发现SCD文件存在不符合规范的配置,KMS9300会及时提供错误提示,并帮助用户修复问题。 KMS9300智能变电站SCD解析及校验软件的使用简单方便,只需将SCD文件导入软件中即可进行解析和校验。通过该软件,用户可以更加高效地管理和维护智能变电站的配置文件,减少配置错误和问题带来的影响。 总之,KMS9300智能变电站SCD解析及校验软件是一款功能强大的工具,可以帮助用户解析和校验SCD文件,确保智能变电站的配置文件符合规范,并提高配置的准确性和可靠性。 ### 回答2: KMS9300智能变电站SCD解析及校验软件是一种用于解析和校验智能变电站SCD文件的软件工具。 智能变电站(Intelligent Substation)是指应用现代先进技术和信息技术,实现对变电站的自动化、智能化和网络化管理的电力系统。智能变电站可以提高电力系统的可靠性、安全性和经济性,同时也方便了运维人员对变电站的监控和管理。 SCD文件是智能变电站的配置文件,包含了变电站的拓扑结构、设备参数、通信规约等信息。KMS9300智能变电站SCD解析及校验软件可以对SCD文件进行解析和校验,确保配置文件的正确性和完整性。 该软件具有以下功能: 1. 解析SCD文件:软件可以将SCD文件解析成电力系统的拓扑结构和各个设备的参数信息,以方便运维人员了解变电站的具体配置。 2. 校验SCD文件:软件可以对SCD文件进行校验,验证文件中的各个参数和规约是否符合标准要求,以避免配置错误导致的运行问题。 3. 提供配置修改功能:软件还可以提供对SCD文件进行修改和优化的功能,使得变电站的配置更加合理和高效。 4. 数据导出功能:软件可以将解析结果导出为Excel或其他格式,方便用户进行数据分析和报表生成。 总之,KMS9300智能变电站SCD解析及校验软件是一种重要的工具,它可以帮助运维人员更好地了解和管理智能变电站的配置,提高电力系统的运行效率和可靠性。 ### 回答3: KMS9300智能变电站SCD解析及校验软件是一款用于智能变电站SCD文件解析和校验的软件。SCD文件是用于描述变电站配置和参数的标准化文件格式,包含了变电站的拓扑结构、设备信息、通信配置等重要数据。 KMS9300软件通过解析SCD文件,可以将其中的数据提取出来,并按照一定的规则进行校验,以确保SCD文件的完整性和准确性。 该软件具备以下主要功能: 1. SCD文件解析:软件可以解析SCD文件的结构和内容,将各种设备、系统和通信对象的参数信息提取出来,形成可读取的数据结构。 2. 校验功能:软件可以对解析后的数据进行校验,包括数据结构的完整性、参数范围的合法性等方面的检查。校验结果以报告的形式呈现,方便用户进行问题排查和修复。 3. 数据导出:软件支持将解析后的数据导出为各种格式,包括Excel、CSV等,方便用户进行数据分析和进一步处理。 4. 用户友好界面:软件具有直观的操作界面和友好的用户交互,使用户能够快速上手并进行相关操作。 KMS9300智能变电站SCD解析及校验软件的使用可以大大提高对变电站配置和参数的管理效率和准确性,减少了人工操作的繁琐和错误可能性,同时提供了强大的数据支撑和解析功能,帮助用户更好地管理变电站的运行和维护。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值