from:http://blog.sina.com.cn/s/blog_4177d50b0100fjbg.html

概述

一般常用的统计功能例如:唯一字段统计、数据行数统计、数据值求和统计等。

1、基础统计(BaseStatistics)组件用来生成和报告统计结果。

2、IFrequencyStatistics接口提供对用来报告频率统计的成员的访 问。

3、IGenerateStatistics接口提供对用来生成统计结果的成员的访问。

4、IStatisticsResults提供对用来报告统计结果的成员的访问。

可访问的属性有Count,Sum,Maximum,Minimum,Meanm,StandardDeviation(标准差)

DataStatistics组件允许返回统计结果及单个字段的唯一值。组件创建后,用来分析的数据通过IDataStatistics::Cursor属性,以光标形式的传入。注意ICursor的对象只能使用一次,如果要获取多个结果,应当再次创建光标。IDataStatistics是数据统计组件中唯一的接口

1、IDataStatistics

属性

Cursor--通过游标来生成统计表

Field--要统计的字段

UniquueCount--统计表中唯一值总数

Uniquues--唯一值枚举

Statistics-- IStatisticsResults对象,用于返回统计信息

2、IStatisticsResults

属性

Count--值总数

Maximum --最大值

Mean--算术平均值

Minimum--最小值

StandardDeviation--标准差

Sum--求和

示例:唯一字段统计,GeoDatabase没有提供DISTINCT这样的关键字进行唯一值查询,只有通过IDataStatistics::Uniquues方式来获取唯一值

public void IDataStatistics_Example(IFeatureClass featureClass)
    {
        ICursor cursor = (ICursor)featureClass.Search(null, false);

IDataStatistics dataStatistics = new DataStatisticsClass();
        dataStatistics.Field = "PIP_SIZE";

dataStatistics.Cursor = cursor;

//求唯一值

System.Collections.IEnumerator enumerator = dataStatistics.Uniquues;
        enumerator.Reset();

while (enumerator.MoveNext())
        {
            object myObject = enumerator.Current;
            Console.WriteLine("Value - {0}", myObject.ToString());

}

//求算术平均值

cursor = (ICursor)featureClass.Search(null, false);
        dataStatistics.Cursor = cursor;
        ESRI.ArcGIS.esriSystem.IStatisticsResults statisticsResults = dataStatistics.Statistics;
        Console.WriteLine("mean value - {0}", statisticsResults.Mean);

}

通过接口说明和示例可以看出,统计信息是基于数字字段的统计。

另外,关于查询与统计接口,还有IQueryDef、IQueryFilterDefinition、ITable等。例子如下:

//IQueryDef Example

public void IQueryDef_Example(IWorkspace workspace)

{
        IFeatureWorkspace featureWorkspace = (IFeatureWorkspace)workspace;
        //create query definition
        IQueryDef queryDef = featureWorkspace.CreateQueryDef();
        //provide list of tables to join
        queryDef.Tables = "datesjoin,dudatest";
        //retrieve the fields from all tables
        queryDef.SubFields = "sde.datesjoin.dt_field = sde.dudates.dt_field";
        //set up join
        queryDef.WhereClause = "datesjoin.dt_field = dudates.dt_field";

//Create FeatureDataset. Note the use of .OpenFeatureQuery.
        //The name "MyJoin" is the name of the restult of the query def and
        //is used in place of a feature class name.
        IFeatureDataset featureDataset = featureWorkspace.OpenFeatureQuery("MyJoin", queryDef);
        //open layer to test against
        IFeatureClassContainer featureClassContainer = (IFeatureClassContainer)featureDataset;
        IFeatureClass featureClass = featureClassContainer.get_ClassByName("MyJoin");

}

//IQueryFilterDefinition PostfixClause Example

public void IQueryFilterDefinition_PostfixClause_Example(IFeatureClass featureClass)
    {
        //this function uses the PostfixClause property to append an Order By clause to the query.
        IQueryFilter queryFilter = new QueryFilterClass();
        queryFilter.SubFields = "FULLNAME";
        queryFilter.WhereClause = "OBJECTID > 10";
        IQueryFilterDefinition queryFilterDefinition = (IQueryFilterDefinition)queryFilter;
        queryFilterDefinition.PostfixClause = "ORDER BY FULLNAME";
        IFeatureCursor featureCursor = featureClass.Search(queryFilter, true);
        int fieldIndex = featureCursor.FindField("FULLNAME");
        IFeature feature = featureCursor.NextFeature();
        while (feature != null)
        {
            Console.WriteLine("The value of the {0} field is {1)", featureCursor.Fields.get_Field(fieldIndex).Name, feature.get_Value(fieldIndex));
            feature = featureCursor.NextFeature();
        }
    }

//ITable Example

Public Void ITable_Example(IFeatureClass featureClass)

{

ITable pTable = featureClassas ITable;

Console.WriteLine("The Row Count is:{0}",pTable.RowCount.Tostring());

}

ArcGis 统计方法的更多相关文章

  1. ASP.net中网站访问量统计方法代码(在线人数,本月访问,本日访问,访问流量,累计访问)

    一.建立一个数据表IPStat用于存放用户信息 我在IPStat表中存放的用户信息只包括登录用户的IP(IP_Address),IP来源(IP_Src)和登录时间 (IP_DateTime),些表的信 ...

  2. 基于git命令的代码统计方法

    基于git命令的代码统计方法 没什么好说的,基于git log命令,使用前提是安装了git ...... .统计所有人代码量 统计所有人代码增删量,拷贝如下命令,直接在git bash等终端,git项 ...

  3. MySQL邮件使用情况统计方法

    邮件使用情况统计方法如下: ) AS domain, COUNT(DISTINCT [column_name]) AS mail_count, COUNT([column_name]) AS mail ...

  4. pandas学习(常用数学统计方法总结、读取或保存数据、缺省值和异常值处理)

    pandas学习(常用数学统计方法总结.读取或保存数据.缺省值和异常值处理) 目录 常用数学统计方法总结 读取或保存数据 缺省值和异常值处理 常用数学统计方法总结 count 计算非NA值的数量 de ...

  5. win10如何彻底删除Gis|彻底卸载ArcGis的方法说明

    ArcGIS产品线为用户提供一个可伸缩的,全面的GIS平台.ArcObjects包含了许多的可编程组件,从细粒度的对象(例如单个的几何对象)到粗粒度的对象(例如与现有ArcMap文档交互的地图对象)涉 ...

  6. Numpy 的数学和统计方法

    可以通过数组上的一组数学函数对整个数组或某个轴向的数据进行统计计算.sum.mean以及标准差std等 聚合计算(aggregation, 通常叫做约简(reduction))既可以当做数组的实例方法 ...

  7. 超简单的qps统计方法(推荐)【转】

    统计最近N秒内的QPS值(包括每秒select,insert等值) mysql> select variable_name,sum(per_sec) as qps from (select st ...

  8. App渠道统计方法全面解析 总有一种适合你

    一.App渠道统计对于App推广运营的重要性 (理解App渠道统计重要性的老司机,请直接移步到第二部分) App服务的竞争重点已经由功能竞争转向市场和运营的竞争,而App的推广与运营离不开App渠道统 ...

  9. pandas 常用统计方法

    统计方法 pandas 对象有一些统计方法.它们大部分都属于约简和汇总统计,用于从 Series 中提取单个值,或从 DataFrame 的行或列中提取一个 Series. 比如 DataFrame. ...

随机推荐

  1. 使用HyperV虚拟机装系统

    新建虚拟机 新建虚拟机 进行相关参数设置 选择系统安装镜像位置,名称及位置 指定代数一般为1代即可 为虚拟机运行分配内存 创建虚拟硬盘或连接已有虚拟硬盘,并分配硬盘空间 核对创建虚拟机相关信息 安装系 ...

  2. android 开源和一些博客总结

    记录一些开源的android库 (1)Http请求库封装 https://github.com/kevinsawicki/http-request (2)浮动组件,定制化 toast http://f ...

  3. Android 开发前的基本的配置及第一个Android 程序

     一.JDK 1. 网上下载JDK 2.   配置环境变量(网上百度相关资料)       JAVA_HOME=D:\Java\jdk1.8.0_91       CLASSPATH=.;%JAVA_ ...

  4. 【读书笔记】iOS-NSPredicate

    一,Cocoa提供了一个名为NSPredicate的类,它用于指定过滤器的条件.可以创建NSPredicate对象,通过该对象准确地描述所需的条件,对每个对象通过谓词进行筛选,判断它们是否与条件相匹配 ...

  5. iOS中 @synthesize 和 @dynamic 区别

    OC object-c 为了让java的开发者习惯 使用.的操作,所以可以将接口类中的变量 使用@property来声明属性.但是在.h中声明的属性,必须在.m中使用@synthesize或者@dyn ...

  6. WPF+Caliburn.Micro 杂记

    开发过程中的小问题总结 1DataGrid的Header里面给Checkbox绑定IsEnabled,绑不上去.  2由A页面跳转到B页面,再由B页面返回一个值 3DataGrid里面的行通过一个方法 ...

  7. C语言-01-基本语法

    一.学前需知 开发工具 windows平台:Visual C++6.0等 mac平台:Xcode6.0等 以下文章内容皆是以Xcode6.0为开发工具,clang编译器. Xcode的一些常用快捷键 ...

  8. abs()函数的返回值问题

    转载原文地址:http://www.cnblogs.com/webary/p/4967868.html 在牛客网看到一道关于abs()函数返回值的题目,见下图,当时还没反应过来,第一反应是:自从我开始 ...

  9. ubuntu15.10 给解压版的eclipse安装桌面快捷方式

    在桌面用vi 建立eclipse.desktop文件,并赋予权限 sudo chmod  u+x  /home/liujl/Desktop/eclipse.desktop [Desktop Entry ...

  10. 通过设置虚拟机(ubantu15.10)的分辨率达到全屏效果

    最近搭建了一个ubantu 15.10虚拟机,怎么折腾都不能全屏显示.虽然我已经点了,  还是无法达到真正的全屏. 查了一下,http://jingyan.baidu.com/article/0964 ...