ArcGIS Engine地理信息系统开发教程 第8章 栅格数据空间分析.pptx

上传人:zf 文档编号:30843039 上传时间:2024-01-31 格式:PPTX 页数:138 大小:3.39MB
下载 相关 举报
ArcGIS Engine地理信息系统开发教程 第8章 栅格数据空间分析.pptx_第1页
第1页 / 共138页
ArcGIS Engine地理信息系统开发教程 第8章 栅格数据空间分析.pptx_第2页
第2页 / 共138页
ArcGIS Engine地理信息系统开发教程 第8章 栅格数据空间分析.pptx_第3页
第3页 / 共138页
ArcGIS Engine地理信息系统开发教程 第8章 栅格数据空间分析.pptx_第4页
第4页 / 共138页
ArcGIS Engine地理信息系统开发教程 第8章 栅格数据空间分析.pptx_第5页
第5页 / 共138页
点击查看更多>>
下载资源
资源描述

ArcGIS Engine地理信息系统开发教程 第8章 栅格数据空间分析.pptx

《ArcGIS Engine地理信息系统开发教程 第8章 栅格数据空间分析.pptx》由会员分享,可在线阅读,更多相关《ArcGIS Engine地理信息系统开发教程 第8章 栅格数据空间分析.pptx(138页珍藏版)》请在冰豆网上搜索。

ArcGIS Engine地理信息系统开发教程 第8章 栅格数据空间分析.pptx

第8章栅格数据空间分析,目录,1,目录,1,环境设置,2,3,栅格表面分析,空间插值,8,距离分析,9,条件分析,重分类,4,栅格计算,7,提取分析,5,6,10,栅格统计,密度分析,简介,

(1)栅格数据具有属性明显、位置隐含的特点,栅格数据在表达连续地理现象的空间分布、进行空间分析和地表模拟等方面具有较强的优势栅格分析常用的方法有:

空间插值、栅格表面分析、栅格计算、密度分析、提取分析、距离分析、重分类和条件分析等在实际应用中,通常需要综合运用多种栅格数据的分析方法并且结合矢量数据的空间分析来完成一个完整的数据分析过程,栅格数据,2,简介,在ArcGIS中,栅格数据空间分析是扩展模块。

同样,要使用ArcGISEngine实现栅格数据的空间分析功能,需使用ArcGISEngineRuntime的SpatialAnalyst许可。

1.环境设置,3,简介,

(1)在进行空间分析之前,应先设置分析环境,分析环境的设置主要有以下四个方面:

输出像元大小、处理范围、掩膜和输出数据的空间参考等分析环境的设置主要通过IRasterAnalysisEnvironment接口实现(4)栅格数据空间分析的类主要有以下8种:

RasterDensityOpClass(密度分析类)、RasterDistanceOpClass(距离分析类)、RasterExtractionOpClass(提取分析类)、RasterInterpolationOpClass(插值分析类)、RasterMathOpsClass(栅格计算类)、RasterReclassOpClass(重分类)、RasterSurfaceOpClass(表面分析类)及RasterConditionalOpClass(条件分析类)等,1.环境设置,4,相关类与接口,IRasterAnalysisEnvironment接口的属性和方法主要有以下5种:

(1)SetCellSize方法-设置输出栅格数据的像元大小

(2)SetExtent方法-设置栅格分析的处理范围(3)Mask属性-使空间分析只对选定的数据进行处理(4)OutSpatialReference属性-输出数据的空间参考,默认为输入数据的空间参考(5)OutWorkspace属性-空间分析的输出工作空间,默认为系统临时工作空间,1.环境设置,5,简介,

(1)空间插值是根据有限的样本点数据来预测栅格数据中其他单元的值,插值的假定条件是空间上分布的现象具有空间相关性,2.空间插值,6,

(2)空间插值分析主要通过RasterInterpolationOpClass类实现。

(3)RasterInterpolationOpClass类实现了两个主要的接口,分别是IRasterAnalysisEnvironment接口和IInterpolationOp2接口(4)IInterpolationOp2接口实现了所有空间插值的方法,主要有以下7种:

IDW(反距离权重法)Krige(克里金法)Spline(样条函数法)Trend(趋势面法),NaturalNeighbor(自然邻域法)TopoToRasterByFile(通过文件实现地形转栅格)Variogram(变异函数法),反距离权重法IDW,以插值点与样本点之间的距离为权重进行加权平均,离插值点越近的样本点赋予的权重越大。

函数原型:

publicIGeoDatasetIDW(IGeoDatasetgeoData,-输入的包含Z值的点要素数据集doublepower,-用于控制内插值周围点的显著性IRasterRadiusradius,-搜索半径,有“固定”和“变量”两个选项refobjectbarrier);-在搜索输入采样点时用作中断或限制的折线要素,2.空间插值,7,反距离权重法IDW,实现思路,2.空间插值,8,

(1)设置输出栅格大小和处理范围等

(2)设置插值的Z值字段设置搜索半径调用IDW方法,返回IDW插值结果(5)显示IDW插值结果数据,注:

详细代码可查看程序,反距离权重法IDW,效果展示,2.空间插值,9,克里金法Krige,根据相邻变量的值,利用变异函数揭示的区域变量的内在联系来预测空间变量的值。

克里金法进行预测时分为两步:

对已知点进行结构分析,揭示相关性规律,提出变异函数类型在该模型基础上进行预测,2.空间插值,10,克里金法Krige,函数原型:

publicIGeoDatasetKrige(IGeoDatasetgeoData,-输入的包含Z值的点要素数据集esriGeoAnalysisSemiVariogramEnumsemiVariogramType,-半变异函数属性IRasterRadiusradius,-搜索半径,有“固定”和“变量”两个选项booloutSemiVariance,-输出的结果是否包含该位置的预测半方差值refobjectbarrier);-在搜索输入采样点时用作中断或限制的折线要素,2.空间插值,11,克里金法Krige,实现思路,2.空间插值,12,

(1)设置输出栅格大小和处理范围等

(2)设置插值的Z值字段,(3)选择esriGeoAnalysisSemiVariogramEnum类型(4)设置搜索半径(5)调用Krige方法,返回Krige插值结果(6)显示Krige插值结果数据,克里金法Krige,核心代码,2.空间插值,13,克里金法Krige,效果展示,2.空间插值,14,样条函数法Spline,利用最小化表面总曲率的数学函数来估计值,从而生成恰好经过输入点的平滑表面。

样条函数法很好地模拟了高程、水位高度或污染物浓度这样的渐变曲面。

(3)函数原型:

publicIGeoDatasetSpline(IGeoDatasetgeoData,-输入的包含Z值的点要素数据集esriGeoAnalysisSplineEnumsplineType,-要使用的样条函数类型refobjectweight,-影响表面插值特性的参数refobjectnumPoints);-用于局部近似的每个区域的点数,2.空间插值,15,样条函数法Spline,实现思路,2.空间插值,16,

(1)设置输出栅格大小和处理范围等

(2)设置插值的Z值字段,(3)选择esriGeoAnalysisSplineEnum类型(4)设置权重(Weight)和点数(numPoints)(5)调用Spline方法,返回Spline插值结果(6)显示Spline插值结果数据,样条函数法Spline,核心代码,2.空间插值,17,样条函数法Spline,效果展示,2.空间插值,18,趋势面法Trend,针对大量离散的点信息,从整体插值出发,来进行趋势渐变特征分析的最简单的方法趋势面分析一般是采取多项式进行回归分析,通过全局多项式插值法将由数学函数(多项式)定义的平滑表面与输入采样点进行拟合函数原型:

publicIGeoDatasetTrend(IGeoDatasetgeoData,-输入的包含Z值得点要素数据集esriGeoAnalysisTrendEnumtrendType,-要执行的回归类型intorder);-多项式的阶,2.空间插值,19,趋势面法Trend,实现思路,2.空间插值,20,

(1)设置输出栅格大小和处理范围等

(2)设置插值的Z值字段,(3)选择esriGeoAnalysisTrendEnum类型(4)设置多项式的阶(5)调用Trend方法,返回Trend插值结果(6)显示Trend插值结果数据,趋势面法Trend,核心代码,2.空间插值,21,趋势面法Trend,效果展示,2.空间插值,22,自然邻域法NaturalNeighbor,通过算法找到距查询点最近的输入样本子集,并根据区域的大小对这些样本运用权重进行插值自然邻域插值方法仅使用查询点周围的样本子集,且保证插值高度在所使用的样本范围之内,不会推断表面趋势且不能生成输入样本中未表示出的山峰、凹地、山脊或山谷等地形函数原型:

publicIGeoDatasetNaturalNeighbor(IGeoDatasetgeoDataset);-输入的包含Z值得点要素集,2.空间插值,23,自然邻域法NaturalNeighbor,实现思路,2.空间插值,24,

(1)设置输出栅格大小和处理范围等

(2)设置插值的Z值字段调用NaturalNeighbor方法,返回NaturalNeighbor插值结果显示NaturalNeighbor插值结果数据,自然邻域法NaturalNeighbor,核心代码,效果展示,2.空间插值,25,简介,

(1)表面分析是为了返回原始数据中隐含的一些空间信息,3.栅格表面分析,26,如获取表面的坡度、坡向、等值线、山体阴影和视域等数据集

(2)栅格数据的表面分析主要通过RasterSurfaceOpClass类实现(3)RasterSurfaceOpClass类实现了两个主要的接口,分别是:

IRasterAnalysisEnvironment接口和ISurfaceOp接口,简介,ISurfaceOp接口包含栅格数据表面分析的所有方法,主要有以下10种:

3.栅格表面分析,27,Slope(坡度)Aspect(坡向)Contour(等值线)CutFill(填挖方)HillShade(山体阴影),Curvature(曲率)Visibility(可见性)ContourAsPolyline(创建过一点的单条等值线)ContourList(等值线序列)ContoursAsPolylines(创建过点集的多条等值线),坡度计算,坡度是指通过地表面任意一点的切平面与水平表面之间的夹角,常用来计算任一单元和邻域单元间变化的最大比率输出数据中的每个单元都有一个坡度值,坡度值较低则表明地势较平坦,坡度值较高则地势较陡峭函数原型:

publicIGeoDatasetSlope(IGeoDatasetgeoDataset,-输入的栅格数据集esriGeoAnalysisSlopeEnumslopeType,-坡度单位refobjectzFactor);-Z因子,3.栅格表面分析,28,坡度计算,实现思路,3.栅格表面分析,29,获取输入栅格数据集选取esriGeoAnalysisSlopeEnum输出单位类型(3)调用Slope方法,返回坡度数据集(4)显示坡度数据,坡度计算,核心代码,3.栅格表面分析,30,坡度计算,核心代码,设置表面分析方法中的共同参数,3.栅格表面分析,31,坡度计算,效果展示,3.栅格表面分析,32,坡向计算,坡向是指地表面上一点的切平面的法线矢量在水平面的投影与过该点的正北方向的夹角对于地面任何一点而言,坡向表征了该点高程值改变量的最大变化方向(3)函数原型:

publicIGeoDatasetAspect(IGeoDatasetgeoDataset);-输入的栅格数据集,3.栅格表面分析,33,坡向计算,实现思路,获取输入栅格数据集调用Aspect方法,返回坡向数据集(3)显示坡向数据,核心代码,3.栅格表面分析,34,坡向计算,效果展示,3.栅格表面分析,35,等值线计算,等值线就是将表面上相邻的等值点(如高程、温度、降水、大气压力等)连接起来的线等值线分布的疏密在一定程度上表明了等值线的变化情况(3)函数原型:

publicIGeoDatasetContour(IGeoDatasetgeoDataset,-输入的栅格数据集doubleinterval,-等值线间距refobjectbase);-起始等值线,默认值为0,3.栅格表面分析,36,等值线计算,实现思路,3.栅格表面分析,37,获取输入栅格数据集设置等值线间距(interval)和起始等值线(base)(3)调用Contour方法,返回等值线数据集(4)显示等值线数据,等值线计算,核心代码,3.栅格表面分析,38,等值线计算,效果展示,3.栅格表面分析,39,填挖方计算,填挖操作是一个通过添加或移除表面物质来修改地表高程的过程通过给定两个不同的表面,填挖函数会生成一个栅格数据,来显示地面物质增加、减少或者不变的区域负的体积值表明该区域已被填充,正的体积值表明该地区已发生移除函数原型:

publicIGeoDatasetCutFill(IGeoDatasetbeforeGeoDataset,-输入填/挖之前的栅格数据集IGeoDatasetafterGeoDataset,-输入填/挖之后的栅格数据集refobjectzFactor);-Z因子,3.栅格表面分析,40,填挖方计算,实现思路,3.栅格表面分析,41,获取输入填/挖之前的栅格数据集及填/挖之后的栅格数据集调用CutFill方法,返回填挖方数据集(3)显示填挖方数据,填挖方计算,核心代码,3.栅格表面分析,42,填挖方计算,效果展示,3.栅格表面分析,43,山体阴影,

(1)山体阴影通过考虑照明源的角度和阴影,根据表面栅格创建晕染地貌

(2)在创建山体阴影时,主要考虑光源方位角和光源高度角(3)函数原型:

publicIGeoDatasetHillShade(IGeoDatasetgeoDataset,-输入的栅格数据doubleazimuth,-光源方位角doublealtitude,-光源高度角boolinModelShadows,-晕染类型,输出栅格是否考虑阴影的影响refobjectzFactor);-Z因子,3.栅格表面分析,44,山体阴影,实现思路,3.栅格表面分析,45,获取输入栅格数据集设置光源方位角(azimuth)和高度角(altitude)(3)调用HillShade方法,返回山体阴影数据集(4)显示山体阴影数据,山体阴影,核心代码,3.栅格表面分析,46,山体阴影,效果展示,3.栅格表面分析,47,曲率计算,

(1)地面曲率是对地形表面上一点扭曲变化程度的定量化度量因子

(2)曲率计算的输出结果为每个像元的表面曲率该值通过将该像元与八个相邻像元拟合而得曲率有剖面曲率(表面沿坡度方向的曲率)和平面曲率(表面垂直于坡度方向的曲率)两种函数原型:

publicIGeoDatasetCurvature(IGeoDatasetgeoDataset,-输入的栅格数据集boolprofile,-是否创建剖面曲率boolplan);-是否创建平面曲率,3.栅格表面分析,48,曲率计算,实现思路,3.栅格表面分析,49,获取输入栅格数据集设置是否创建剖面曲率和平面曲率(3)调用Curvature方法,返回曲率数据集(4)显示表面曲率数据,曲率计算,核心代码,效果展示,3.栅格表面分析,50,可见性分析,可见性分析有两种分析类型,分别是视域分析和视点分析视域用来确定输入栅格中能够从一个或多个观测位置看到的像元,输出的栅格的每个像元都会返回一个值,用于指定从这一位置可看到多少个观测点视点工具不仅会存储每个视点能够看到的栅格信息,而且会精确识别从每个栅格表面位置可以看到哪些视点函数原型:

publicIGeoDatasetVisibility(IGeoDatasetgeoDataset,-输入的栅格数据集IGeoDatasetobservers,-观察点位置数据集esriGeoAnalysisVisibilityEnumvisType);-分析类型,包括视域和视点分析两种类型,3.栅格表面分析,51,可见性分析,实现思路,3.栅格表面分析,52,

(1)获取输入栅格数据集

(2)返回观察点位置数据集(3)选择可见性分析类型(4)调用Visibility方法,返回可见性结果数据(5)显示可见性结果,可见性分析,核心代码,3.栅格表面分析,53,可见性分析,效果展示,视点分析结果,3.栅格表面分析,54,视域分析结果,简介,

(1)栅格计算是栅格数据空间分析中进行数据处理和分析最为常用的方法

(2)栅格计算是建立复杂的应用数学模型的基本模块,4.栅格计算,55,ArcGISEngine支持栅格计算类型有:

数学计算、三角函数、逻辑运算和按位运算等栅格计算由RasterMathOpsClass类实现,简介,RasterMathOpsClass类实现的接口主要有以下5种:

4.栅格计算,56,

(1)IMathOp(包含数学计算的所有方法)

(2)ITrigOp(包含三角函数运算的所有方法)(3)ILogicalOp(包含逻辑运算的所有方法)(4)IBitwiseOp(包含按位运算的所有方法)(5)IRasterAnalysisEnvironment(设置空间分析环境),IMathOp接口,IMathOp接口包含了所有的数学计算方法,如:

Plus(加)、Minus(减)、Times(乘)、Divide(除)、Abs(绝对值)、Exp(指数)和Ln(对数)等。

Plus方法的函数原型为:

publicIGeoDatasetPlus(IGeoDatasetgeoDataset1,-输入的栅格数据1IGeoDatasetgeoDataset2);-输入的栅格数据2,4.栅格计算,57,ITrigOp接口,ITrigOp接口包含所有三角函数运算的方法,如:

Sin(正弦)、Cos(余弦)、Tan(正切)、ASin(反正弦)、ACos(反余弦)、Atan(反正切)和ASinH(反双曲正弦)等。

Sin方法的函数原型为:

publicIGeoDatasetSin(IGeoDatasetgeoDataset);-输入的栅格数据集,4.栅格计算,58,ILogicalOp接口,ILogicalOp接口包含所有逻辑运算的方法,如:

BooleanAnd(布尔与)、BooleanNot(布尔非)、BooleanOr(布尔或)、GreaterThan(大于)、GreaterThanEqual(大于等于)、LessThan(小于)、LessThanEqual(小于等于)和EqualTo(等于)等。

BooleanAnd方法的函数原型为:

publicIGeoDatasetBooleanAnd(IGeoDatasetgeoDataset1,-输入的栅格数据1IGeoDatasetgeoDataset2);-输入的栅格数据2,4.栅格计算,59,IBitwiseOp接口,IBitwiseOp接口包含所有按位运算的方法,如:

And(按位与)、Not(按位非)、Or(按位或)、LeftShift(按位左移)等。

And方法的函数原型为:

publicIGeoDatasetAnd(IGeoDatasetgeoDataset1,-输入的栅格数据1IGeoDatasetgeoDataset2);-输入的栅格数据2,4.栅格计算,60,实例讲解,实现思路,4.栅格计算,61,

(1)获取输入栅格数据集,通常为一个或两个

(2)调用相应的计算类型接口中的计算方法(3)显示计算结果,注:

详细代码可查看程序,实例讲解,效果展示,4.栅格计算,62,简介,

(1)在空间分析过程中,经常要以栅格单元为单位进行栅格统计分析,5.栅格统计,63,经常用到的统计数据有栅格所有单元的最大值、最小值、平均值、标准差等栅格数据的统计由RasterStatistics类实现(4)实现栅格统计需要用到以下接口:

IRasterBandCollection接口-得到栅格波段集合IEnumRasterBand接口-遍历每一个波段IRasterBand接口-得到波段中的一个IRasterBand接口的Statistics属性-得到RasterStatistics对象,简介,RasterStatistics类实现了IRasterStatistics接口,该接口的属性主要有以下6种:

5.栅格统计,64,

(1)Maximum-获取输入栅格中的所有像元的最大值

(2)Mean-获取输入栅格中的所有像元的平均值(3)Median-获取输入栅格中的所有像元的中值(4)Minimum-获取输入栅格中的所有像元的最小值(5)StandardDeviation-获取输入栅格中的所有像元的标准差(6)Mode-获取输入栅格中出现次数最多的值,实例讲解,实现思路,5.栅格统计,65,获取输入栅格数据集,得到该栅格数据集中的所有栅格波段得到RasterStatistics对象(3)显示统计结果,实例讲解,核心代码,5.栅格统计,66,实例讲解,核心代码,5.栅格统计,67,实例讲解,效果展示,5.栅格统计,68,简介,

(1)密度分析是指根据输入的要素数据集计算整个区域的数据聚集状况,从而产生一个连续的密度表面,6.密度分析,69,

(2)密度分析由RasterDensityOpClass类实现(3)RasterDensityOpClass类实现了两个主要的接口,分别是IRasterAnalysisEnvironment接口和IDensityOp接口(4)IDensityOp接口中实现了密度分析的三种方法,分别是KernelDensity-核密度分析LineDensity-线密度分析PointDensity-点密度分析,核密度分析KernelDensity,核密度分析用于计算要素在其周围领域中的密度,既可计算点要素的密度也可计算线要素的密度,常用于测量建筑密度、返回犯罪情况报告、预测道路或管线对野生动物栖息地造成的影响等。

函数原型:

publicIGeoDatasetKernelDensity(IGeoDatasetsourceFeatures,-输入的点或折线要素refobjectradiusDistance,-搜索半径refobjectscaleFactor);-面积单位,6.密度分析,70,核密度分析KernelDensity,实现思路,6.密度分析,71,

(1)设置输出栅格大小和处理范围等

(2)设置计数字段设置搜索半径(radiusDistance)调用KernelDensity方法,返回核密度分析结果(5)显示核密度分析结果,核密度分析KernelDensity,核心代码,6.密度分析,72,核密度分析KernelDensity,核心代码,6.密度分析,73,核密度分析KernelDensity,效果展示,6.密度分析,74,线密度分析LineDensity,线密度分析用于计算每个输出栅格像元邻域内的线状要素的密度,密度的计算单位为“长度单位/面积单位”。

函数原型:

publicIGeoDatasetLineDensity(IGeoDatasetlineFeatures,-输入的折线要素refobjectradiusDistance,-搜索半径refobjectscaleFactor);-面积单位,6.密度分析,75,线密度分析LineDensity,实现思路,6.密度分析,76,

(1)设置输出栅格大小和处理范围等

(2)设置计数字段设置搜索半径(radiusDistance)调用LineDensity方法,返回线密度分析结果(5)显示线密度分析结果,线密度分析LineDensity,核心代码,效果展示,6.密度分析,77,点密度分析PointDensity,点密度分析用于计算每个输出栅格像元周围点要素的密度。

函数原型:

publicIGeoDatasetPointDensity(IGeoDatasetpointFeatures,-输入点要素IRasterNeighborhoodnbrhood,-邻域分析refobjectscaleFactor);-面积单位,6.密度分析,78,点密度分析PointDensity,实现思路,6.密度分析,79,在进行点密度分析时还需要用到IRasterNeighborhood接口,以指定用于计算密度值的每个像元周围的区域形状。

其包含四种类型,分别是环形、圆形、矩形和楔形。

(1)设置输出栅格大小和处理范围等

(2)设置计数字段,设置邻域分析类型

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 医药卫生 > 基础医学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1