ArcGis 统计方法

简介:

概述

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

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());

}




本文转自94cool博客园博客,原文链接:http://www.cnblogs.com/94cool/p/4302791.html,如需转载请自行联系原作者

相关文章
|
5月前
|
算法 定位技术
ArcGIS中ArcMap栅格图像平滑滤波:焦点统计、滤波器、重采样
ArcGIS中ArcMap栅格图像平滑滤波:焦点统计、滤波器、重采样
|
10月前
|
数据库
ArcGIS: 如何利用模型构建器(modelbuilder)进行植被指数情况的统计?
ArcGIS: 如何利用模型构建器(modelbuilder)进行植被指数情况的统计?
122 0
ArcGIS: 如何利用模型构建器(modelbuilder)进行植被指数情况的统计?
|
7月前
|
人工智能 数据可视化 API
ArcGIS API for Python
ArcGIS API for Python
35 0
|
11月前
|
JavaScript 前端开发 应用服务中间件
Arcgis api for javascript 详细部署
Arcgis api for javascript 详细部署
|
人工智能 数据可视化 数据管理
ArcGIS API for Python
ArcGIS API for Python
79 0
|
JavaScript 前端开发 定位技术
ArcGIS API For JavaScript官方文档(六)之设置范围
ArcGIS API For JavaScript官方文档(六)之设置范围
|
存储 JSON 前端开发
ArcGIS API For JavaScript官方文档(一)之默认API配置
ArcGIS API For JavaScript官方文档(一)之默认API配置
|
数据可视化 数据管理 API
​​​​​​​ARCGIS API for Python进行城市区域提取
​​​​​​​ARCGIS API for Python进行城市区域提取
​​​​​​​ARCGIS API for Python进行城市区域提取
arcgis api 3.X 修改自带弹窗样式 2022年6月12日
自带的弹窗介绍: arcgis api 3.X 修改自带弹窗样式插图 /*修改原有弹窗的css样式*/ /* 弹窗整体 */ .esriPopup { font-size: 16px; box-shadow: 10px 10px 5px #888888; } .esriPopup .sizer { position: relative; width: 400px; /* 弹窗宽度 */ z-index: 1; } /* 标题部分 */ .esriPopup .titlePane { background-color: rgba(7