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. SVG基础图形与参数

    SVG是什么 SVG 指可伸缩矢量图形 (Scalable Vector Graphics) SVG 用来定义WEB上使用的矢量图 SVG 使用 XML 格式定义图形 SVG 图像在缩放时其图形质量不 ...

  2. Android中进程与线程

    常说的主线程(UI线程)是什么? 当一个Android程序刚启动的时候,我们的android系统就会启动一个带有一个单一线程的linux进程.默认情况下,所有的组件比如Activity都运行在同样的一 ...

  3. IOS中的多核并发编程GCD

    Grand Central Dispatch (GCD)是Apple开发的一个多核编程的解决方法. dispatch queue分成以下三种: 1)运行在主线程的Main queue,通过dispat ...

  4. .NET下的并行开发(案例代码)

    以下主要是通过一个报表处理程序来说明并行开发的方式.对于数据冲突和共享,可以通过对象数组解决.设计到并行的核心代码已用红色标出.在并行程序的处理上,需要把原来串行的子公司变成一个一个类的对象,让所有的 ...

  5. Xcode找Library位置

  6. macbook pro 重装系统

    重装前系统版本:10.11.6 因为我在系统更新时强行关机,后来在编译代码的时候就一直有奇怪的错误,所以选择重装系统. 前提条件:一定要有网络 1.关机状态下按住command + r ,按一下开机键 ...

  7. iOS 正则表达式判断邮箱、身份证..是否正确

    //邮箱 + (BOOL) validateEmail:(NSString *)email { NSString *emailRegex = @"[A-Z0-9a-z._%+-]+@[A-Z ...

  8. 在XcodeGhost事件之后,获取更纯净的Xcode的方法。

    正值Xcode 7正式版本的更新,IOS界就冒出了个甚至可以说成涉及国家安全的大事也不为过的事件: 也可以点击网址链接看总结的更完整的文章:众多知名 APP 都中毒了,XCodeGhost 病毒事件汇 ...

  9. animation of android (2)

    android Interpolator 首先是android系统提供的变换方式: 这些方式将转载一篇文章: 转: http://www.cnblogs.com/mengdd/p/3346003.ht ...

  10. dig与dns基本理论——解析和缓存

    DNS(Domain Name System,域名系统)也许是我们在网络中最常用到的服务,它把容易记住的域名,如 www.google.com 翻译成人类不易记住的IP地址,如 173.194.127 ...