为了正常的体验网站,请在浏览器设置里面开启Javascript功能!
首页 > 牟乃夏ArcEngine教程-第8章__栅格数据空间分析

牟乃夏ArcEngine教程-第8章__栅格数据空间分析

2018-06-30 71页 ppt 4MB 21阅读

用户头像 个人认证

....

暂无简介

举报
牟乃夏ArcEngine教程-第8章__栅格数据空间分析牟乃夏ArcGISEngine地理信息系统开发教程配套PPT---第8章栅格数据空间分析目录1.环境设置2.空间插值3.栅格表面分析4.栅格计算5.栅格统计6.密度分析7.提取分析8.距离分析9.重分类10.条件分析简介栅格数据分析是空间分析的重要组成部分。栅格数据具有属性明显、位置隐含的特点,在表达连续地理现象的空间分布、进行空间分析和地表模拟等方面具有较强的优势。栅格分析常用的方法有:空间插值、栅格表面分析、栅格计算、密度分析、提取分析、距离分析、重分类和条件分析等。在实际应用中,针对不同的应用需求各种分析所占的比重也不尽...
牟乃夏ArcEngine教程-第8章__栅格数据空间分析
牟乃夏ArcGISEngine地理信息系统开发教程配套ppt---第8章栅格数据空间分析目录1.环境设置2.空间插值3.栅格面分析4.栅格计算5.栅格统计6.密度分析7.提取分析8.距离分析9.重分类10.条件分析简介栅格数据分析是空间分析的重要组成部分。栅格数据具有属性明显、位置隐含的特点,在表达连续地理现象的空间分布、进行空间分析和地表模拟等方面具有较强的优势。栅格分析常用的方法有:空间插值、栅格表面分析、栅格计算、密度分析、提取分析、距离分析、重分类和条件分析等。在实际应用中,针对不同的应用需求各种分析所占的比重也不尽相同。但通常情况下,需要综合运用多种栅格数据的分析方法并且结合矢量数据的空间分析来完成一个完整的数据分析过程。1.环境设置在ArcGIS中,栅格数据空间分析是扩展模块。同样,要使用ArcGISEngine实现栅格数据的空间分析功能,需使用ArcGISEngineRuntime的SpatialAnalyst许可。1.环境设置在进行空间插值、密度分析等空间分析之前,应先设置分析环境。分析环境的设置主要有以下四个方面:输出像元大小、处理范围、掩膜和输出数据的空间参考等。分析环境的设置主要通过IRasterAnalysisEnvironment接口实现。所有栅格数据空间分析的类都能实现IRasterAnalysisEnvironment接口,如:RasterDensityOpClass(密度分析类)、RasterDistanceOpClass(距离分析类)、RasterExtractionOpClass(提取分析类)、RasterInterpolationOpClass(插值分析类)、RasterMathOpsClass(栅格计算类)、RasterReclassOpClass(重分类)、RasterSurfaceOpClass(表面分析类)及RasterConditionalOpClass(条件分析类)等。1.环境设置IRasterAnalysisEnvironment接口的属性和方法(1)SetCellSize方法设置输出栅格数据的像元大小。(2)SetExtent方法设置栅格分析的处理范围。(3)Mask属性使空间分析只对选定的数据进行处理。(4)OutSpatialReference属性输出数据的空间参考,默认为输入数据的空间参考。(5)OutWorkspace属性空间分析的输出工作空间,默认为系统临时工作空间。2.空间插值空间插值是根据有限的点数据来预测栅格数据中其他单元的值,插值的假定条件是空间上分布的现象具有空间相关性。在ArcGISEngine中,RasterInterpolationOpClass类实现了空间插值分析。该类实现了两个主要的接口,分别是IRasterAnalysisEnvironment接口和IInterpolationOp2接口。IInterpolationOp2接口实现了所有空间插值的方法,分别为:(1)IDW(反距离权重法)(2)Krige(克里金法)(3)Spline(样条函数法)(4)Trend(趋势面法)(5)NaturalNeighbor(自然邻域法)(6)TopoToRasterByFile(通过文件实现地形转栅格)(7)Variogram(变异函数法)2.空间插值(1)IDW(反距离权重法)IDW插值是一种简单、常用的空间插值方法,它以插值点与样本点之间的距离为权重进行加权平均,离插值点越近的样本点赋予的权重越大。反距离插值法是通过调用IInterpolationOp2接口的IDW方法实现的。该方法的原型为:publicIGeoDatasetIDW(IGeoDatasetgeoData,doublepower,IRasterRadiusradius,refobjectbarrier);它有四个参数,分别是:(1)IGeoDatasetgeoData输入的包含Z值的点要素数据集。(2)doublepower用于控制内插值周围点的显著性。幂值越高,对元数据点的影响会越小。它可以是任何大于0的实数,但使用从0.5到3的值可以获得最合理的结果。(3)IRasterRadiusradius搜索半径,有“固定”和“变量”两个选项。(4)refobjectbarrier在搜索输入采样点时用作中断或限制的折线要素。2.空间插值IDW插值实现思路如下:(1)通过IRasterAnalysisEnvironment接口设置输出栅格大小和处理范围等;(2)调用IFeatureClassDescriptor接口的Create方法设置插值的Z值字段;(3)通过IRasterRadius接口设置搜索半径;(4)调用IInterpolationOp2接口的IDW方法,返回IDW插值结果;(5)显示IDW插值结果数据。IDW插值结果详细代码见程序2.空间插值(2)Krige(克里金法)Krige插值的基本原理是根据相邻变量的值,利用变异函数揭示的区域变量的内在联系来预测空间变量的值。利用克里金法进行预测时分为两步:第一步是对已知点进行结构分析,揭示相关性规律,提出变异函数类型;第二步是在该模型基础上进行预测。克里金法是通过调用IInterpolationOp2接口的Krige方法实现,该方法的原型为:publicIGeoDatasetKrige(IGeoDatasetgeoData,esriGeoAnalysisSemiVariogramEnumsemiVariogramType,IRasterRadiusradius,booloutSemiVariance,refobjectbarrier);它有五个参数,分别是:(1)IGeoDatasetgeoData输入的包含Z值的点要素数据集。(2)esriGeoAnalysisSemiVariogramEnumsemiVariogramType半变异函数属性(3)IRasterRadiusradius搜索半径,有“固定”和“变量”两个选项。(4)booloutSemiVariance输出的结果是否包含该位置的预测半方差值。(5)refobjectbarrier在搜索输入采样点时用作中断或限制的折线要素。2.空间插值Krige插值的实现思路如下:(1)通过IRasterAnalysisEnvironment接口设置输出栅格大小和处理范围等;(2)调用IFeatureClassDescriptor接口的Create方法设置插值的Z值字段;(3)选择esriGeoAnalysisSemiVariogramEnum类型;(4)通过IRasterRadius接口设置搜索半径;(5)调用IInterpolationOp2接口的Krige方法,返回Krige插值结果;(6)显示Krige插值结果数据。2.空间插值样条函数法(Spline)Spline插值利用最小化表面总曲率的数学函数来估计值,从而生成恰好经过输入点的平滑表面。这种方法很好地模拟了高程、水位高度或污染物浓度这样的渐变曲面。样条函数法是通过调用IInterpolationOp2接口的Spline方法实现,该方法的原型为:publicIGeoDatasetSpline(IGeoDatasetgeoData,esriGeoAnalysisSplineEnumsplineType,refobjectweight,refobjectnumPoints);它有四个参数,分别是:(1)IGeoDatasetgeoData输入的包含Z值的点要素数据集。(2)esriGeoAnalysisSplineEnumsplineType要使用的样条函数类型。(3)refobjectweight影响表面插值特性的参数。(4)refobjectnumPoints用于局部近似的每个区域的点数。2.空间插值Spline插值实现思路如下:(1)通过IRasterAnalysisEnvironment接口设置输出栅格大小和处理范围等;(2)调用IFeatureClassDescriptor接口的Create方法设置插值的Z值字段;(3)选择esriGeoAnalysisSplineEnum类型;(4)设置权重(weight)和点数(numPoints);(5)调用IInterpolationOp2接口的Spline方法,返回Spline插值结果;(6)显示Spline插值结果数据。2.空间插值趋势面法(Trend)Trend插值是针对大量离散的点信息,从整体插值出发,来进行趋势渐变特征分析的最简单的方法。趋势面分析一般是采取多项式进行回归分析,通过全局多项式插值法将由数学函数(多项式)定义的平滑表面与输入采样点进行拟合。趋势面法是通过调用IInterpolationOp2接口的Trend方法实现,该方法的原型为:publicIGeoDatasetTrend(IGeoDatasetgeoData,esriGeoAnalysisTrendEnumtrendType,intorder);它有三个参数,分别是:(1)IGeoDatasetgeoData输入的包含Z值得点要素数据集。(2)esriGeoAnalysisTrendEnumtrendType要执行的回归类型。(3)intorder多项式的阶。2.空间插值Trend插值实现思路如下:(1)通过IRasterAnalysisEnvironment接口设置输出栅格大小和处理范围等;(2)调用IFeatureClassDescriptor接口的Create方法设置插值的Z值字段;(3)选择esriGeoAnalysisTrendEnum类型;(4)设置多项式的阶(order);(5)调用IInterpolationOp2接口的Trend方法,返回Trend插值结果;(6)显示Trend插值结果数据。2.空间插值自然邻域法(NaturalNeighbor)NaturalNeighbor插值通过算法找到距查询点最近的输入样本子集,并根据区域的大小对这些样本运用权重进行插值。该插值方法仅使用查询点周围的样本子集,且保证插值高度在所使用的样本范围之内,不会推断表面趋势且不能生成输入样本中未表示出的山峰、凹地、山脊或山谷等地形。自然邻域法是通过调用IInterpolationOp2接口的NaturalNeighbor方法实现,该方法的原型为:publicIGeoDatasetNaturalNeighbor(IGeoDatasetgeoDataset);它只有一个参数:IGeoDatasetgeoData输入的包含Z值得点要素集。NaturalNeighbor插值实现思路如下:(1)通过IRasterAnalysisEnvironment接口设置输出栅格大小和处理范围等;(2)调用IFeatureClassDescriptor接口的Create方法设置插值的Z值字段;(3)调用IInterpolationOp2接口的NaturalNeighbor方法,返回NaturalNeighbor插值结果;(4)显示NaturalNeighbor插值结果数据。2.空间插值自然邻域法(NaturalNeighbor)核心代码如下://NaturalNeighbor插值privatevoidbtnNaturalNeighbor_Click(objectsender,EventArgse){interOp=rasterEnvasIInterpolationOp2;outGeodataset=interOp.NaturalNeighbor(inGeodataset);//自然邻域法ShowResult(outGeodataset,"NaturalNeighbor");}NaturalNeighbor插值结果3.栅格表面分析表面分析是为了返回原始数据中隐含的一些空间信息,如获取表面的坡度、坡向、等值线、山体阴影和视域等数据集。在ArcGISEngine中,通过RasterSurfaceOpClass类实现栅格数据的表面分析。该类实现了两个主要的接口,分别是IRasterAnalysisEnvironment接口和ISurfaceOp接口,ISurfaceOp接口包含栅格数据表面分析的所有方法,主要有:(1)Slope(坡度)(2)Aspect(坡向)(3)Contour(等值线)(4)CutFill(填挖方)(5)HillShade(山体阴影)(6)Curvature(曲率)(7)Visibility(可见性)(8)ContourAsPolyline(创建过一点的单条等值线)(9)ContourList(等值线序列)(10)ContoursAsPolylines(创建过点集的多条等值线)3.栅格表面分析坡度(Slope)坡度是指通过地表面任意一点的切平面与水平表面之间的夹角,常用来计算任一单元和邻域单元间变化的最大比率。输出数据中的每个单元都有一个坡度值,坡度值较低则表明地势较平坦,坡度值较高则地势较陡峭。坡度计算是通过调用ISurfaceOp接口的Slope方法实现的,该方法的原型为:publicIGeoDatasetSlope(IGeoDatasetgeoDataset,esriGeoAnalysisSlopeEnumslopeType,refobjectzFactor);它有三个参数,分别为:(1)IGeoDatasetgeoData输入的栅格数据集。(2)esriGeoAnalysisSlopeEnumslopeType坡度单位。(3)refobjectzFactorZ因子。3.栅格表面分析返回坡度需要用到esriGeoAnalysisSlopeEnum枚举类型,用来确定输出坡度数据的测量单位。包含DEGREE(度)和PERCENT_RISE(高程增量百分比)两种单位类型。坡度计算的实现思路如下:(1)获取输入栅格数据集IGeoDataset;(2)选择esriGeoAnalysisSlopeEnum输出单位类型;(3)调用ISurfaceOp接口的Slope方法,返回坡度数据集;(4)显示坡度数据。3.栅格表面分析坡向(Aspect)坡向是指地表面上一点的切平面的法线矢量在水平面的投影与过该点的正北方向的夹角。对于地面任何一点而言,坡向表征了该点高程值改变量的最大变化方向。坡向计算是通过调用ISurfaceOp接口的Aspect方法实现的,该方法的原型为:publicIGeoDatasetAspect(IGeoDatasetgeoDataset);该方法只有一个参数:IGeoDatasetgeoData输入的栅格数据集。3.栅格表面分析坡向计算的实现思路如下:(1)获取输入栅格数据集IGeoDataset;(2)调用ISurfaceOp接口的Aspect方法,返回坡向数据集;(3)显示坡向数据。3.栅格表面分析等值线(Contour)等值线就是将表面上相邻的等值点(如高程、温度、降水、大气压力等)连接起来的线。等值线分布的疏密在一定程度上表明了等值线的变化情况。等值线计算是通过调用ISurfaceOp接口的Contour方法实现的,该方法的原型为:publicIGeoDatasetContour(IGeoDatasetgeoDataset,doubleinterval,refobjectbase);该方法有三个参数,分别是:(1)IGeoDatasetgeoData输入的栅格数据集。(2)doubleinterval等值线间距。(3)refobjectbase起始等值线,默认值为0。3.栅格表面分析等值线计算的实现思路如下:(1)获取输入栅格数据集IGeoDataset;(2)设置等值线间距(interval)和起始等值线(base);(3)调用ISurfaceOp接口的Contour方法,返回等值线数据集;(4)显示等值线数据。3.栅格表面分析填挖方(CutFill)填挖操作是一个通过添加或移除表面物质来修改地表高程的过程。通过给定两个不同的表面,填挖函数会生成一个栅格数据,来显示地面物质增加、减少或者不变的区域。负的体积值表明该区域已被填充,正的体积值表明该地区已发生移除。填挖方计算是通过调用ISurfaceOp接口的CutFill方法实现的,该方法的原型为:publicIGeoDatasetCutFill(IGeoDatasetbeforeGeoDataset,IGeoDatasetafterGeoDataset,refobjectzFactor);该方法有三个参数,分别是:(1)IGeoDatasetbeforeGeoDataset输入填/挖之前的栅格数据集。(2)IGeoDatasetafterGeoDataset输入填/挖之后的栅格数据集。(3)refobjectzFactorZ因子。3.栅格表面分析填挖方计算的实现思路如下:(1)获取输入填/挖之前的栅格数据IGeoDataset及填/挖之后的栅格数据IGeoDataset;(2)调用ISurfaceOp接口的CutFill方法,返回填挖方数据;(3)显示填挖方数据。填挖方计算结果3.栅格表面分析山体阴影(HillShade)山体阴影通过考虑照明源的角度和阴影,根据表面栅格创建晕染地貌。它根据假想的照明光源对高程栅格图运用山影函数,计算每个单元以及相关邻域单元的照明值,很好地表达了地形的立体形态,而且可以提取地形遮蔽信息。在创建山体阴影时,主要考虑光源方位角和光源高度角。山体阴影计算是通过调用ISurfaceOp接口的HillShade方法实现的,该方法的原型为:publicIGeoDatasetHillShade(IGeoDatasetgeoDataset,doubleazimuth,doublealtitude,boolinModelShadows,refobjectzFactor);该方法有五个参数,分别是:(1)IGeoDatasetgeoData输入的栅格数据。(2)doubleazimuth光源方位角(3)doublealtitude光源高度角(4)boolinModelShadows晕染类型,输出栅格是否考虑阴影的影响。(5)refobjectzFactorZ因子。3.栅格表面分析返回山体阴影的实现思路如下:(1)获取输入栅格数据集IGeoDataset;(2)设置光源方位角(azimuth)和高度角(altitude)。(3)调用ISurfaceOp接口的HillShade方法,返回山体阴影数据集;(4)显示山体阴影数据。3.栅格表面分析曲率(Curvature)地面曲率是对地形表面上一点扭曲变化程度的定量化度量因子。曲率计算的输出结果为每个像元的表面曲率,该值通过将该像元与八个相邻像元拟合而得。曲率是表面的二阶导数,或者可称为坡度的坡度。可供选择的曲率有剖面曲率(表面沿坡度方向的曲率)和平面曲率(表面垂直于坡度方向的曲率)两种。曲率计算是通过调用ISurfaceOp接口的Curvature方法实现的,该方法的原型为:publicIGeoDatasetCurvature(IGeoDatasetgeoDataset,boolprofile,boolplan);该方法有三个参数,分别是:(1)IGeoDatasetgeoData输入的栅格数据集。(2)boolprofile是否创建剖面曲率。(3)boolplan是否创建平面曲率。3.栅格表面分析表面曲率计算的实现思路如下:(1)获取输入栅格数据集IGeoDataset;(2)设置是否创建剖面曲率和平面曲率;(3)调用ISurfaceOp接口的HillShade方法,返回曲率数据集;(4)显示表面曲率数据。表面曲率数据3.栅格表面分析可见性分析(Visibility)可见性分析有两种分析类型,分别是视域分析和视点分析。视域用来确定输入栅格中能够从一个或多个观测位置看到的像元,输出的栅格的每个像元都会返回一个值,用于指定从这一位置可看到多少个观测点。视点工具不仅会存储每个视点能够看到的栅格信息,而且会精确识别从每个栅格表面位置可以看到哪些视点。可见性分析是通过调用ISurfaceOp接口的Visibility方法实现的,该方法的原型为:publicIGeoDatasetVisibility(IGeoDatasetgeoDataset,IGeoDatasetobservers,esriGeoAnalysisVisibilityEnumvisType);该方法有三个参数,分别是:(1)IGeoDatasetgeoData输入的栅格数据集。(2)IGeoDatasetobservers观察点位置数据集。(3)esriGeoAnalysisVisibilityEnumvisType分析类型,包括视域和视点分析两种类型。3.栅格表面分析可见性分析的esriGeoAnalysisVisibilityEnum枚举类型,用来确定可见性点的分析类型,其主要有视域(esriGeoAnalysisVisibilityFrequency)和视点(esriGeoAnalysisVisibilityObservers)分析两种。当选择视点分析类型时,所输入的观察点数不能超过16个。可见性分析的实现思路如下:(1)获取输入栅格数据集IGeoDataset;(2)返回观察点位置数据集;(3)选择可见性分析类型esriGeoAnalysisVisibilityEnum;(4)调用ISurfaceOp接口的Visibility方法,返回可见性结果数据;(5)显示可见性结果。4.栅格计算栅格计算是栅格数据空间分析中进行数据处理和分析最为常用的方法,能够解决各种类型的问题,尤其重要的是,它是建立复杂的应用数学模型的基本模块。ArcGISEngine支持以下几种栅格计算类型:数学计算、三角函数、逻辑运算和按位运算等。RasterMathOpsClass类实现了所有的栅格计算,对应于以上的几种计算类型,该类实现了如下接口:(1)IMathOp(包含数学计算的所有方法)(2)ITrigOp(包含三角函数运算的所有方法)(3)ILogicalOp(包含逻辑运算的所有方法)(4)IBitwiseOp(包含按位运算的所有方法)(5)IRasterAnalysisEnvironment(设置空间分析环境)4.栅格计算栅格计算的实现思路如下:(1)获取输入栅格数据集,通常为一个或两个;(2)调用相应的计算类型接口中的计算方法;(3)显示计算结果。5.栅格统计在空间分析过程中,经常要以栅格单元为单位进行栅格统计分析,经常用到的统计数据有栅格所有单元的最大值、最小值、平均值、差等。在ArcGISEngine中,RasterStatistics类实现了栅格数据的统计,该类实现了IRasterStatistics接口,该接口有很多属性,主要有:(1)Maximum(获取输入栅格中的所有像元的最大值。)(2)Mean(获取输入栅格中的所有像元的平均值。)(3)Median(获取输入栅格中的所有像元的中值。)(4)Minimum(获取输入栅格中的所有像元的最小值。)(5)StandardDeviation(获取输入栅格中的所有像元的标准差。)(6)Mode(获取输入栅格中出现次数最多的值。)5.栅格统计实现栅格统计需要用到IRasterBandCollection、IEnumRasterBand和IRasterBand接口,通过IRasterBandCollection接口得到栅格波段集合,通过IEnumRasterBand接口遍历每一个波段,然后通过IRasterBand接口得到其中一个波段,最后通过IRasterBand接口的Statistics属性得到RasterStatistics对象。栅格统计的实现思路如下:(1)获取输入栅格数据集,得到该栅格数据集中的所有栅格波段;(2)通过IRasterBand的Statistics属性得到RasterStatistics对象;(3)显示统计结果。6.密度分析密度分析是指根据输入的要素数据集计算整个区域的数据聚集状况,从而产生一个连续的密度表面。通过密度计算,可将每个采样点的值散布到整个研究区域,并返回输出栅格中每个像元的密度值。例如,每个城镇都可以用一个点值来表示该镇的人口数量,但是并非所有人都聚居在该点上,若想了解人口随地区分布的情况,可以通过密度计算来得到一个显示地表人口分布状况的表面。密度分析有三种方法:核密度分析、线密度分析和点密度分析。在ArcGISEngine中,通过RasterDensityOpClass类实现密度分析,该类实现了两个主要的接口,分别是IRasterAnalysisEnvironment接口和IDensityOp接口。IDensityOp接口中实现了密度分析的三种方法,分别是:(1)KernelDensity(核密度分析)(2)LineDensity(线密度分析)(3)PointDensity(点密度分析)6.密度分析核密度分析(KernelDensity)核密度分析用于计算要素在其周围领域中的密度,既可计算点要素的密度也可计算线要素的密度,常用于测量建筑密度、返回犯罪情况、预测道路或管线对野生动物栖息地造成的影响等。核密度分析是通过调用IDensityOp接口的KernelDensity方法实现的,该方法的原型为:publicIGeoDatasetKernelDensity(IGeoDatasetsourceFeatures,refobjectradiusDistance,refobjectscaleFactor);它有三个参数,分别是:(1)IGeoDatasetgeoData输入的点或折线要素。(2)refobjectradiusDistance搜索半径。(3)refobjectscaleFactor面积单位。6.密度分析在进行核密度分析以及后面的线密度和点密度分析时,在输入的点或折线要素中,如果要素类中包含SPOT字段,则用SPOT字段的值来表示用来创建连续表面要素的计算次数,如果没有SPOT字段,则每个要素在分析中只计算一次。如果想要指定某一字段作为要素的计算次数,则需要用到IFeatureClassDescriptor接口。通过IFeatureClassDescriptor接口的Create方法确定参与插值的要素数据集和计数字段。核密度分析实现思路如下:(1)通过IRasterAnalysisEnvironment接口设置输出栅格大小和处理范围等;(2)调用IFeatureClassDescriptor接口的Create方法设置计数字段;(3)设置搜索半径(radiusDistance);(4)调用IDensityOp接口的KernelDensity方法,返回核密度分析结果;(5)显示核密度分析结果。6.密度分析线密度分析(LineDensity)线密度分析用于计算每个输出栅格像元邻域内的线状要素的密度,密度的计算单位为“长度单位/面积单位”。理论上,使用以各个栅格像元中心为圆心以搜索半径绘制一个圆,每条线上落入该圆内的部分长度与计数字段相乘,对这些数值进行求和,然后将所得的总和除以圆面积就得到该栅格像元的密度。线密度分析是通过调用IDensityOp接口的LineDensity方法实现的,该方法的原型为:publicIGeoDatasetLineDensity(IGeoDatasetlineFeatures,refobjectradiusDistance,refobjectscaleFactor);该方法有三个参数,分别是:(1)IGeoDatasetgeoData输入的折线要素。(2)refobjectradiusDistance搜索半径。(3)refobjectscaleFactor面积单位。6.密度分析线密度分析实现思路如下:(1)通过IRasterAnalysisEnvironment接口设置输出栅格大小和处理范围等;(2)调用IFeatureClassDescriptor接口的Create方法设置计数字段;(3)设置搜索半径(radiusDistance);(4)调用IDensityOp接口的LineDensity方法,返回线密度分析结果;(5)显示线密度分析结果。6.密度分析点密度分析(PointDensity)点密度分析用于计算每个输出栅格像元周围点要素的密度。从理论上讲,每个栅格像元中心的周围都定义了一个邻域,将落入邻域内的样本点的计数字段值相加,然后除以邻域面积,即得到点要素的密度。点密度分析是通过调用IDensityOp接口的PointDensity方法实现的,该方法的原型为:publicIGeoDatasetPointDensity(IGeoDatasetpointFeatures,IRasterNeighborhoodnbrhood,refobjectscaleFactor);PointDensity方法有三个参数,分别是:(1)IGeoDatasetgeoData输入点要素。(2)IRasterNeighborhoodnbrhood邻域分析。(3)refobjectscaleFactor面积单位。6.密度分析在进行点密度分析时还需要用到IRasterNeighborhood接口,以指定用于计算密度值的每个像元周围的区域形状。其包含四种类型,分别是环形、圆形、矩形和楔形。点密度分析实现思路如下:(1)通过IRasterAnalysisEnvironment接口设置输出栅格大小和处理范围等;(2)调用IFeatureClassDescriptor接口的Create方法设置计数字段;(3)调用IRasterNeighborhood接口设置邻域分析类型;(4)调用IDensityOp接口的PointDensity方法,返回点密度分析结果;(5)显示点密度分析结果。7.提取分析提取分析用于返回感兴趣的栅格单元,如提取高程值大于某值的所有像元。在ArcGISEngine中,通过RasterExtractionOp类实现栅格数据的提取分析,该类实现了两个主要的接口,分别是IRasterAnalysisEnvironment和IExtractionOp。IExtractionOp中包含了以下提取分析方法,分别为:(1)Attribute(按属性提取)(2)Raster(掩膜提取)(3)Rectangle(用矩形提取)(4)Circle(按圆形区域提取)(5)Points(用点提取)(6)Polygon(多边形提取)(7)Sample(采样提取)7.提取分析按属性提取利用按属性提取可以将满足指定属性查询条件的像元提取到新的输出栅格中,如提取高程大于1000m的所有像元,或提取土地利用类型中属性值为商业用地的所有像元。按属性提取是通过调用IExtractionOp接口的Attribute方法实现的,该方法的原型为:publicIGeoDatasetAttribute(IRasterDescriptorRaster);该方法只有一个参数:IRasterDescriptorRasterRaster输入带有逻辑表达式的IRasterDescriptor类型。7.提取分析进行按属性提取时需要用到IRasterDescriptor接口,通过IRasterDescriptor接口的Create方法确定被提取的栅格数据集和一个逻辑查询表达式。按属性查询的实现思路如下:(1)确定用于选择栅格像元子集的逻辑表达式;(2)调用IRasterDescriptor接口的Creat方法获取输入栅格数据;(3)调用IExtractionOp接口的Attribute方法提取栅格;(4)显示按属性提取结果。7.提取分析掩膜提取掩膜提取就是提取掩膜所定义的区域的栅格单元。掩膜数据可以是栅格或要素数据集。当输入掩膜数据为栅格时,将在输出栅格中为掩膜数据中的NoData像元指定NoData值。掩膜提取是通过调用IExtractionOp接口的Raster方法实现的,该方法的原型为:publicIGeoDatasetRaster(IGeoDatasetgeoDataset,IGeoDatasetmaskRaster);该方法有两个参数,分别是:(1)IGeoDatasetgeoDataset被提取的栅格数据集。(2)IGeoDatasetmaskRaster掩膜数据集,可以是矢量或栅格。7.提取分析按属性查询的实现思路如下:(1)获取输入的栅格数据集IGeoDataset;(2)获取输入的掩膜数据集IGeoDataset;(3)调用IExtractionOp接口的Raster方法提取栅格;(4)显示按掩膜提取结果。7.提取分析按形状提取按形状提取是基于指定的形状提取像元,并且可以选择是提取形状的内部的像元还是外部的像元。按形状提取通过调用IExtractionOp接口的Circle(按圆形提取)方法、Polygon(按多边形提取)方法和Rectangle(按矩形提取)方法实现,各个方法的参数有所不同。Circle方法原型如下:publicIGeoDatasetCircle(IGeoDatasetgeoDataset,ICircularArcCircle,boolselectInside);Polygon方法原型如下:publicIGeoDatasetPolygon(IGeoDatasetgeoDataset,IPolygonPolygon,boolselectInside);Rectangle方法原型如下:publicIGeoDatasetRectangle(IGeoDatasetgeoDataset,IEnveloperectangleEnvelope,boolselectInside);下面以调用Rectangle方法为例,设置提取矩形为当前地图的视图范围。按形状提取的实现思路如下:(1)获取输入的栅格数据集IGeoDataset;(2)得到要提取的形状要素,可以是圆形、矩形和多边形;(3)调用IExtractionOp接口的相应方法提取栅格;(4)显示按形状提取结果。7.提取分析下面以调用Rectangle方法为例,设置提取矩形为当前地图的视图范围。按形状提取的实现思路如下:(1)获取输入的栅格数据集IGeoDataset;(2)得到要提取的形状要素,可以是圆形、矩形和多边形;(3)调用IExtractionOp接口的相应方法提取栅格;(4)显示按形状提取结果。8.距离分析距离分析是指根据每一栅格相距其最邻近要素(“源”)的距离分析结果,得到每一栅格与其邻近要素(“源”)的相互关系。距离分析有欧氏距离工具和成本加权距离工具两种分析方法。源和成本是距离分析的两个重要概念。1)源源是距离分析中的目标或目的地,如学校、商场、水井、道路等。源是一些离散的点、线、面要素,这些要素可以相邻,但属性必须不同。源可以是栅格数据,也可以是矢量数据。2)成本成本是指达到目标、目的地的花费,如金钱、时间等。影响成本的因素可以是一个,也可以是多个。成本栅格数据记录了通过每一个栅格的通行成本,一般基于重分类来完成。成本数据是一个单独的数据,但有时也需要考虑多个成本因素,此时,需要制定统一的成本分类体系,对单个成本按其大小进行分类,并对每一类别赋予成本量值,通常成本高的量值小,成本低的量值大。最后根据成本影响程度确定单个成本权重,依权重百分比加权求和,得到多个单成本因素综合影响的成本栅格数据。8.距离分析在ArcGISEngine中,通过RasterDistanceOpClass类实现距离分析,该类实现了两个主要的接口,分别是IRasterAnalysisEnvironment接口和IDistanceOp接口。IDistanceOp接口中包含了距离分析的所有方法,主要有:(1)EucDistance(欧氏距离)(2)EucDirection(欧氏方向)(3)EucAllocation(欧氏分配)(4)CostDistance(成本距离)(5)CostBackLink(成本回溯链接)(6)CostAllocation(成本分配)(7)CostPath(成本路径)(8)Corridor(廊道分析)8.距离分析欧氏距离欧氏距离根据直线距离描述像元与一个源或一组源的关系。欧氏距离工具有三种:欧氏距离、欧氏方向和欧氏分配。欧氏距离给出栅格中每个像元到最近源的距离,如到最近城镇的距离是多少。欧氏方向给出每个像元到最近源的方向,如到最近城镇的方向是什么。欧氏分配根据最大临近性标识分配给源的像元,如最近的城镇是什么。这三种分析工具的实现方法分别是EucDistance、EucDirection和EucAllocation。EucDistance方法原型如下:publicIGeoDatasetEucDistance(IGeoDatasetsourceData,refobjectmaxDistance,refobjectvalueRaster);EucDirection方法原型如下:publicIGeoDatasetEucDirection(IGeoDatasetsourceData,refobjectmaxDistance,refobjectvalueRaster);EucAllocation方法原型如下:publicIGeoDatasetEucAllocation(IGeoDatasetsourceData,refobjectmaxDistance,refobjectvalueRaster);这三个方法的参数类型和意义一致,分别是:(1)IGeoDatasetsourceData要素源数据集。(2)refobjectmaxDistance最大距离。(3)refobjectvalueRaster赋值栅格。8.距离分析欧氏距离、欧氏方向和欧氏分配实现思路如下:(1)通过IRasterAnalysisEnvironment接口设置输出栅格大小和处理范围等;(2)获取输入的要素数据源(sourceData);(3)调用IDistanceOp接口的相应方法进行欧氏距离、欧氏方向和欧氏分配分析;(4)显示分析结果。8.距离分析成本距离成本距离(又称成本加权距离)工具与欧氏距离工具类似,不同点在于欧氏距离工具计算的是位置间的实际距离,而成本距离工具确定的是各像元距最近源位置的最短加权距离(或着说是累计行程成本)。成本距离工具应用以成本单位表示的距离,而不是以地理单位表示的距离。所有成本距离工具都需要源数据集和成本栅格数据输入。成本距离在处理基于地理因子的运动问题时非常有用,如动物的迁徙或顾客的行为研究等。此外,成本距离在降低新建道路、通信线路或管道的建设成本方面也具有广泛的应用。8.距离分析成本距离分析有多种类型,如成本距离输出、回溯链接方向输出、成本分配输出等。分别通过IDistanceOp接口的CostDistance、CostBackLink和CostAllocation等方法实现。CostDistance的方法原型为:publicIGeoDatasetCostDistance(IGeoDatasetsourceData,IGeoDatasetcostRaster,refobjectmaxDistance,refobjectvalueRaster);CostBackLink的方法原型为:publicIGeoDatasetCostBackLink(IGeoDatasetsourceData,IGeoDatasetcostRaster,refobjectmaxDistance,refobjectvalueRaster);CostAllocation的方法原型为:publicIGeoDatasetCostAllocation(IGeoDatasetsourceData,IGeoDatasetcostRaster,refobjectmaxDistance,refobjectvalueRaster);它们都有四个参数,且参数类型和参数含义一致,分别是:(1)IGeoDatasetsourceData要素源数据集。(2)IGeoDatasetcostRaster成本栅格数据集。(3)refobjectmaxDistance最大距离。(4)refobjectvalueRaster赋值栅格。8.距离分析成本距离、回溯连接方向和成本分配实现思路如下:(1)通过IRasterAnalysisEnvironment接口设置输出栅格大小和处理范围等;(2)获取输入的要素数据源(sourceData)和成本栅格数据(costRaster);(3)调用IDistanceOp接口的相应方法进行成本距离等分析;(4)显示分析结果。8.距离分析成本路径成本路径用于确定目标点与源点之间的成本最低的路径。除了需要指定目标外,成本路径还将用到通过成本距离工具得出的两个栅格:成本距离栅格和回溯链接栅格。成本距离栅格用于确定分析窗口中各个像元位置到某个源的最小累加成本,回溯链接栅格则用于在成本距离表面上从目标沿最低成本路径回溯到源。成本路径通过调用IDistanceOp接口的CostPath方法实现,该方法的原型为:publicIGeoDatasetCostPath(IGeoDatasetfromData,IGeoDatasetdistance,IGeoDatasetbacklink,esriGeoAnalysisPathEnumpathType);该方法有四个参数,分别是:(1)IGeoDatasetfromData要素目标数据集。(2)IGeoDatasetdistance成本距离栅格数据集。(3)IGeoDatasetbacklink成本回溯链接栅格数据集。(4)esriGeoAnalysisPathEnumpathType路径类型。8.距离分析实现成本路径分析需要用到esriGeoAnalysisPathEnum枚举类型,用来指定成本路径的计算方法。其包含EACH_CELL、EACH_ZONE和BEST_SINGLE三种类型。成本路径实现思路如下:(1)通过IRasterAnalysisEnvironment接口设置输出栅格大小和处理范围等;(2)获取输入的要素目标数据(fromData)、成本距离栅格数据(distance)和成本回溯链接栅格数据(backlink)。(3)调用IDistanceOp接口的CostPath方法,返回成本路径分析结果;(4)显示成本路径结果。8.距离分析廊道分析廊道是不同于两侧基质的狭长地带,如林带、交通线及其两侧带状的树木、草地、河流等自然要素,具有通道和阻隔的双重作用。廊道可以为物种提供适宜的生存环境,在生态保护方面具有重要意义。廊道分析通过调用IDistanceOp接口的Corridor方法实现。该方法的原型为:publicIGeoDatasetCorridor(IGeoDatasetdistance1,IGeoDatasetdistance2);该方法有两个参数,分别是:(1)IGeoDatasetdistance1输入成本距离栅格数据1。(2)IGeoDatasetdistance2输入成本距离栅格数据2。8.距离分析在廊道分析过程中,首先要使用成本距离工具创建两个成本累计栅格,一个源(或一组源)对应一个成本累计栅格,这也对应于Corridor方法的两个参数。廊道分析实现思路如下:(1)通过IRasterAnalysisEnvironment接口设置输出栅格大小和处理范围等;(2)获取输入成本距离栅格数据1(distance1)和成本距离栅格数据2(distance2)。(3)调用IDistanceOp接口的Corridor方法,返回廊道分析结果;(4)显示廊道分析结果。9.重分类简单地说,重分类就是对原有栅格像元值重新分类从而得到一组新值并输出。在ArcGISEngine中,通过RasterReclassOpClass实现栅格数据的重分类,该类继承了两个主要的接口,分别是IRasterAnalysisEnvironment接口和IReclassOp接口,IReclassOp接口中包含了以下几种提取分析方法,分别为:(1)Reclass(使用表重分类)(2)ReclassByASCIIFile(使用ASCII文件重分类)(3)Slice(分割)(4)Lookup(查找表)(5)ReclassByRemap(定义重映射进行重分类)9.重分类使用表重分类使用表重分类需要调用IReclassOp接口的ReClass方法,该方法的原型为:publicIGeoDatasetReclass(IGeoDatasetgeoDataset,ITableremapTable,stringfromField,stringtoField,stringOutField,boolretainMissingValues);该方法有六个参数,分别是:(1)IGeoDatasetgeoDataset输入栅格。(2)ITableremapTable输入重映射表。(3)stringfromField来自值字段。(4)stringtoField到值字段。(5)stringOutField输出值字段。(6)boolretainMissingValues是否将缺失值改为NoData。9.重分类进行使用表重分类时需要用到IWorkSpace、ITable和IFields接口,通过这些接口获取重分类信息表和表中所有的字段。使用表重分类的实现思路如下:(1)获取输入栅格IGeoDataset;(2)调用IWorkSpace、ITable等接口得到重映射表;(3)选择表中的来自值字段(fromField)、到值字段(toField)和输出值字段(OutField);(4)调用IReclassOp接口的Reclass方法,返回重分类结果;(5)显示重分类后的结果。9.重分类使用ASCII文件重分类使用ASCII文件进行重分类前,需要先编辑ASCII文件,而ASCII文件必须满足特定的:(1)注释行以“#”符号为起始字符,输入的注释不受限制。(2)每个分配行都可将输入栅格内的某一个值或一定范围内的值映射为输出值。分配行只接受数值。(3)ASCII重映射文件中所有分配行的格式都必须相同。使用ASCII文件重分类需要调用IReclassOp接口的ReclassByASCIIFile方法,该方法的原型为:publicIGeoDatasetReclassByASCIIFile(IGeoDatasetinRaster,stringsRemapFile,boolretainMissingValues);该方法有三个参数,分别是:(1)IGeoDatasetGeoDataset输入栅格数据集。(2)stringsRemapFileASCII文件路径,ASCII文件允许使用的扩展名有*.rmp、*.txt和*.asc。(3)boolretainMissingValues是否将缺失值改为NoData。9.重分类使用ASCII文件重分类的实现思路如下:(1)获取输入栅格IGeoDataset;(2)得到具有重分类信息的ASCII文件;(3)调用IReclassOp接口的ReclassByASCIIFile方法,返回重分类结果;(4)显示重分类后的结果。9.重分类分割分割是按一系列相等的间隔来划分值的整个范围,或者将各个像元数量划分到一定数量的组中,且每组分到的像元数量相等来进行划分。分割需要调用IReclassOp接口的Slice方法,该方法的原型为:publicIGeoDatasetSlice(IGeoDatasetgeoDataset,esriGeoAnalysisSliceEnumsliceType,intzoneCount,refobjectbaseZone);该方法有四个参数,分别是:(1)IGeoDatasetGeoDataset输入栅格数据集。(2)esriGeoAnalysisSliceEnumsliceType分割方法。(3)intzoneCount输出区域
/
本文档为【牟乃夏ArcEngine教程-第8章__栅格数据空间分析】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索