ArcEngine GP工具——Summary Statistics(汇总统计)功能的实现


ArcEngine目前已经极为成熟,网上的资源很多,通过关键词基本都可以搜索到想要的代码。ArcEngine中gp工具使用比较广泛的,网上的资源并没有将所有gp工具的具体用法,特别是字符串参数输入的格式并没有一个具体的实例,即使是有,但大多数是只是单个字段,并没有多字段的格式实例。例如工具箱中的分析工具—统计分析—汇总统计(Analysis Toolbox–Statistics Toolset–Summary Statistics),这功能实现的难点在于字段参数的格式上,在ArcGIS帮助文档中,虽然有关于python的代码实现实例,但与AE中的格式还是有一定的差别,例如:

import arcpy
from arcpy import env
env.workspace = "C:/data/Habitat_Analysis.gdb"

'''统计字段正确的格式为[["字段1","统计类型(SUM、MAX、Count等)"],["字段1","统计类型"],["字段1","统计类型)"]....]'''
statField=[["Shape_Length", "SUM"],["Shape_Area","SUM"]]

'''所显示的字段'''
caseField=["Name","Type",.....]
arcpy.Statistics_analysis("futrds", "C:/output/output.gdb/stats",statField,caseField)

在ArcEngine中调用Statistics工具时,字段参数的格式实例如下:

 #region 初始化许可
           IAoInitialize m_AoInitialize = new AoInitializeClass();
           esriLicenseStatus licenseStatus = esriLicenseStatus.esriLicenseUnavailable;
           licenseStatus = m_AoInitialize.Initialize(esriLicenseProductCode.esriLicenseProductCodeAdvanced);
           #endregion
           currentFeatureLayer = axMapControl1.get_Layer(0) as IFeatureLayer;
           ESRI.ArcGIS.Geoprocessor.Geoprocessor gp = new ESRI.ArcGIS.Geoprocessor.Geoprocessor();
           ESRI.ArcGIS.AnalysisTools.Statistics statistics = new ESRI.ArcGIS.AnalysisTools.Statistics();
           statistics.in_table = currentFeatureLayer;
           statistics.out_table = mdbPath+"\\"+tableName;
           statistics.statistics_fields = "Shape_Area SUM";//参数统计字段的格式:“字段A SUM” ,其中SUM为统计类型;如果想统计多个字段,则用分号隔开,例如“字段A SUM;字段B SUM;....”
           statistics.case_field = "FBTLX";

           gp.Execute(statistics, null);
           statistics.out_table = mdbPath + "\\" + tableName1;
           statistics.case_field = "DI_LEI;LIN_ZHONG;";//如果想显示指定几个字段,字段间使用分号隔开
           gp.Execute(statistics, null);

转载自:https://blog.csdn.net/u011403816/article/details/77600783

You may also like...