精华内容
下载资源
问答
  • 本科学生实验报告 姓名 尹永义 学号 1443206000113 专业 地理科学 班级 2014B 实验课程名称 地理信息系统概论实验 实验名称 矢量数据分析与栅格数据分析 指导教师及职称 速绍华 讲师 开课学期 2014 至 2015 学年下 ...
  • ArcGIS教程 - 10 栅格数据分析

    千次阅读 多人点赞 2020-02-09 10:39:56
    第10章 栅格数据空间分析 栅格数据是空间分析中另外一种常用的数据格式。栅格数据具有结构简单、利于计算等优势方便进行...栅格数据由于自身数据结构的特点,在空间分析过程中主要使用数字矩阵的方式作为数据分析的...

    第10章 栅格数据空间分析

    栅格数据是空间分析中另外一种常用的数据格式。栅格数据具有结构简单、利于计算等优势方便进行空间分析。栅格数据的空间分析是GIS空间分析的重要组成部分,也是ArcGIS空间分析模块的核心内容。相比较矢量数据空间分析,栅格数据空间分析功能更强大、数据处理能力更强,是空间分析中不可或缺的。

    栅格数据由于自身数据结构的特点,在空间分析过程中主要使用数字矩阵的方式作为数据分析的基础,处理方法灵活多样,过程相对简单。

    栅格数据的空间分析主要包括:提取分析、叠加分析、距离分析、密度分析、邻域分析、差值分析、统计分析、表面分析等。

    栅格数据空间分析常用工具主要位于【ArcToolbox】--【Spatial Analyst】(空间分析)。

    10.1 栅格数据

    栅格数据是按照行和列的形式存储的单元矩阵组成的。

    每个单元存储有一个信息值,每个单元有唯一的行和列地址。栅格数据单元大小决定了栅格数据的详细程度,单元值越小,栅格数据描述内容越详细,相应的计算速度会降低。例如Landsat影像的分辨率为30m,而Quickbird的分辨率为0.61m,相同的区域用两种影像栅格数据描述,QuickBird影像更丰富,数据量也就越大,计算也就越慢。

    栅格数据单元被赋予唯一的特定值用来描述单元的某一属性。例如高程、坡度、破向、浓度等。单元值既可以是连续数据也可以是离散型数据。

    根据单元值可以把值相同的划分为同一类归为一个分区。例如土地利用分类中可以把单元值均为某一值的划分为同一种土地利用类型。

    10.2 提取分析

    提取分析工具可用于根据像元的属性或其空间位置从栅格中提取像元的子集。也可以获取特定位置的像元值作为点要素类中的属性或表。

    提取工具位于ArcToolbox中【Spatial Analyst】下的【提取分析】工具箱中。

    10.2.1 按属性或空间位置提取

    (1)按照属性值提取像元,用到的工具ArcMap【目录列表】--【工具箱】--【系统工具箱】-【Spatial Analyst】--【按属性提取】。

    【按属性提取】工具是基于逻辑查询提取栅格单元,即利用SQL语言中的Where语句提取特定属性值的栅格单元(图XX)。图XX显示的是提取属性值大于等于2 的栅格单元。

    如果 Where 子句的求值结果是 True,则将为该像元位置返回初始输入值。如果其求值结果是 False,则将为像元位置指定 NoData。

    对于输出栅格,将舍弃输入栅格中的所有额外项(值和计数除外)。

    当输入为多波段栅格时,将输出一个新的多波段栅格。对输入多波段栅格中的每一单个波段都会进行相应分析。

    如果输入栅格为整型,那么输出栅格也为整型。如果输入栅格为浮点型,则输出栅格也为浮点型。

     

     

    图XX 按属性提取示意                     图XX 按属性提取对话窗口

     

    具体操作过程为:

    在ArcMap【目录列表】中定位到【工具箱】--【系统工具箱】-【Spatial Analyst】--【提取分析】,双击【按属性提取】工具,打开【按属性提取】工具对话窗口。

    在打开的【按属性提取】对话窗口中设置如下(图XX)。

    数据位置:“\ch10\Data\Extract\” 目录下

    输入栅格:Raster.img

    Where子句:"Value" >=350,打开右侧的【SQL】按钮,输入上述语句。

    输出栅格:ByAttributes

    按属性提取提取高程值大于等于350m的结果如图XX所示。

     

     

    图XX  按属性提取结果

     

    (2)按照空间几何位置提取,用到的工具包括【按多边形提取】、【按矩形提取】、【按圆提取】等工具。按照像元空间位置的几何提取像元时,要求像元组必须位于指定几何形状的内部或外部。

    以【按矩形提取】工具为例:

    可通过像元的中心来确定该像元是位于矩形的内部还是矩形的外部。如果中心位于矩形轮廓的内部,则即使部分像元落在矩形之外,也会将此像元视为完全处于矩形内部。

    未选择的像元位置被赋予 NoData 值。

    当输入为多波段栅格时,将输出一个新的多波段栅格。对输入多波段栅格中的每一单个波段都会进行相应分析。

    如果输入内容为根据多波段栅格(超过三个波段)创建的图层,提取操作将只考虑图层加载(符号化)的波段。如果输入栅格为整型,那么输出栅格也为整型。如果输入栅格为浮点型,则输出栅格也为浮点型。

    具体操作过程为:

    在ArcMap【目录列表】中定位到【工具箱】--【系统工具箱】-【Spatial Analyst】--【提取分析】,双击【按矩形提取】工具打开【按矩形提取】工具对话窗口。

    在打开的【按矩形提取】对话窗口中设置如下(图XX)。

    数据位置:“\ch10\Data\Extract\” 目录下

    输入栅格:Raster.img

    范围:通过右侧按钮选择Rectangle.shp或者在下方上下左右四至范围内填写坐标

    输出栅格:ByRectangle

    【提取区域】选项:

    INSIDE:指定应选择输入矩形内部的像元并将其写入输出栅格的关键字。矩形区域外部的所有像元都将在输出栅格中获得 NoData 值。这是默认值。

    OUTSIDE:指定应选择输入矩形外部的像元并将其写入输出栅格的关键字。矩形区域内部的所有像元都将在输出栅格中获得 NoData 值。

    【提取区域】选项保持默认不变。

    按矩形提取结果如图XX所示。

     

     

    图XX 按矩形提取对话窗口                  图XX 按矩形提取结果

     

    (3)按照指定位置提取像元时,需要根据像元的 x,y 点位置来识别像元的位置,用到的工具【用点提取】工具,或者通过使用掩膜或栅格数据来识别像元的位置,用到的工具【按掩膜提取】工具。

    以【按矩形提取】工具为例(图XX):

    当输入为多波段栅格时,将输出一个新的多波段栅格。对输入多波段栅格中的每一单个波段都会进行相应分析。如果输入内容为根据多波段栅格(超过三个波段)创建的图层,提取操作将只考虑图层加载(符号化)的波段。

    如果输入掩膜是栅格,则会将非 NoData 输入像元位置的值复制到输出栅格。可用来创建掩膜栅格的工具包括条件函数、条件测试,以及提取分析工具集中的其他工具。

    当为输入栅格掩膜指定多波段栅格时,将只在运算中使用第一个波段。如果输入栅格为整型,那么输出栅格也为整型。如果输入栅格为浮点型,则输出栅格也为浮点型。

     

     

    图XX 按掩膜提取示意                     图XX 按掩膜提取对话窗口

     

    具体操作过程为:

    在ArcMap【目录列表】中定位到【工具箱】--【系统工具箱】-【Spatial Analyst】--【提取分析】,双击【按掩膜提取】工具打开【按掩膜提取】工具对话窗口。

    在打开的【按掩膜提取】对话窗口中设置如下(图XX)。

    数据位置:“\ch10\Data\Extract\” 目录下

    输入栅格:Raster.img

    输入掩膜:Mask.img,掩膜数据可以为栅格数据也可是矢量数据,

    输出栅格:ByrMask

    按掩膜提取结果如图XX所示。

     

    图XX 按掩膜提取结果

    10.2.2 按像元值提取

    (1)通过点要素类识别的像元值可以记录为新输出要素类的属性,用到的工具为【值提取至点】工具。此工具仅可以从一个输入栅格中提取像元值,基于一组点要素提取栅格像元值,并将这些值记录到输出要素类的属性表。

    输入点要素类中的所有字段均将包括在输出点要素类中。输出要素类将添加一个名为 RASTERVALU 的新字段。

    对多波段栅格使用值提取至点时,RASTERVALU 字段将包含输入栅格的最后一个波段的值。对于属性表的 RASTERVALU 字段,若赋值栅格中的像元值为 NoData,则该像元的字段值为 -9999。

    具体操作过程为:

    在ArcMap【目录列表】中定位到【工具箱】--【系统工具箱】-【Spatial Analyst】--【提取分析】,双击【值提取至点】工具打开【值提取至点】工具对话窗口。

    在打开的【值提取至点】对话窗口中设置如下(图XX)。

    数据位置:“\ch10\Data\Extract\” 目录下

    输入点要素:Point.shp

    输入栅格:Raster.img

    输出点要素:ExactPoint.shp

    【在点位置上插值】选项:保持默认。

    未选中:不应用任何插值法;将使用像元中心值。这是默认设置。

    选中:将使用双线性插值法根据相邻像元的有效值计算像元值。除非所有相邻像元都为 NoData,否则会在插值时忽略 NoData 值。

    【将输入栅格数据的所有属性追加到输出的点要素】选项:保持默认。

        未选中:仅将输入栅格的值添加到点属性。这是默认设置。

    选中:输入栅格的所有字段(“计数”除外)都将添加到点属性。

    值提取至点属性表如图XX所示。

     

     

    图XX 值提取至点对话窗口               图XX 值提取至点属性表              

     

    (2)通过点要素类识别的像元值可以追加到要素类的属性表中,用到的工具为【多值提取至点】工具。此工具也可识别来自多个栅格的像元值,在点要素类的指定位置提取一个或多个栅格像元值,并将值记录到点要素类的属性表中。

    可以将任意栅格组合(单波段或多波段)指定为输入。将为每个输入栅格提取一个像元值,并会将包含该提取值的新字段追加到输入点要素类。

    默认情况下,将根据输入栅格的名称来创建输出字段的名称。或者您也可以为每个存储栅格值的字段指定唯一名称。

    当输入多波段栅格数据时,为所有波段添加的输出字段的名称中将包含指示波段号的 "b1_, b2_, …bn" 前缀。

    栅格中的 NoData 像元将被赋予空值。shapefile 不支持空值,而是将其赋予 0(零)值。

    (3)把栅格和要素相应位置的像元值记录在表中,用到的工具为【采样】工具。

    输入位置是栅格时,位置像元集包括值大于等于零的所有像元,不包括具有 NoData 值的像元。可使用提取工具轻松创建位置栅格。

    输入栅格或栅格集中的 NoData 像元将在输出地理数据库表中被赋予 <空> 值。由于 INFO 或 .dbf 格式的输出不支持空值概念,所以将为其赋值 为0。

    输出表中采样值的字段类型总是浮点型,可以确保重采样技术选择“双线性”或“双三次卷积”时仍能保持适当精度。

    具体操作过程为:

    在ArcMap【目录列表】中定位到【工具箱】--【系统工具箱】-【Spatial Analyst】--【提取分析】,双击【采样】工具,打开【采样】工具对话窗口。

    在打开的【采样】对话窗口中设置如下(图XX)。

    数据位置:“\ch10\Data\Extract\” 目录下

    输入栅格:Raster.img

    输入位置栅格数据或者点要素:Point.shp

    输出表:Sample

    【重采样】选项:保持默认。

        NEAREST:最邻近分配法。

    BILINEAR:双线性插值法。

    CUBIC:三次卷积插值法。

    采样结果如图XX所示。

     

     

    图XX 采样对话窗口                         图XX 采样表

     

    10.3 叠加分析

    叠加分析是栅格数据空间分析中常用的一种分析方法。叠加分析通常是用于在最佳位置选择或是在适宜性建模中应用的一种分析方法。

    适宜性建模分析是为特定现象标识最佳位置或首选位置的一种分析,通常应用于以下问题:地产开发的地点选在何处 ,哪些地点较适于用作动物的的栖息地,哪里最可能发生经济增长,哪些地点最容易发生泥石流等。

    叠加分析通常利用分析多种不同的要素进行分析。例如房地产开发过程中选择开发地点需要考虑土地成本、现有的服务设施、坡度等情况。综合考虑不同因素的影响程度,进行权重设置进行叠加分析才能获取地产开发的合适区域。

    叠加分析通常分为以下步骤:

    1)定义问题

    定义问题是建模过程中最重要也是最困难的步骤之一。不仅确定问题所在很重要,还应该清楚地理解问题,这样才能定义何时解决问题或者何时得到满意的现象。在问题定义中,应该建立特定测量以确定模型结果的成功。

    2)问题分解

    多数叠加问题需要综合考虑多方面因素,比较复杂,因此可以这些问题分解为子模型,可以清楚的组织思路和更加高效的解决叠加问题。每个子模型即为每种影响因素的分析。

    3)确定重要图层

    需要对影响每个子模型的属性或图层进行标识。每个因素会捕获并描述子模型正在定义的现象的组件。每个因素致力于子模型的目标,而每个子模型致力于叠加模型的总体目标。在叠加模型中应该包括所有有助于定义现象的因素并且仅包括此类因素。

    4)重分类或转换数据

    不同的数字系统无法有效地直接组合。需要将不同子模型的数据评价体系变换为公共比率范围以内,例如可以把高程在不同范围段的值重新定位为1-10的范围,其它要素的值也可以重分类为1-10

    5)确定图层的权重 Weight

    有些因素相比较其他因素来说可能更重要一些。在组合这些因素之前,可根据它们的重要性为其指定权重。

    6)添加或组合图层

    在叠加分析中,需要同时为所有输入因素建立关系以标识满足模型目标要求的所需位置。可以采用其他组合方式。

    7)分析

    建模过程中的最后一个步骤是分析结果。潜在的理想位置是否在实际上能满足条件,不仅要研究通过模型标识的最佳位置,还要调查第二个和第三个最适合的场地。

    其中步骤1-3是解决几乎所有空间问题的常用步骤,对于栅格数据空间叠加分析尤为重要。

    叠加分析中常用的分析方法包含以下几种:

    10.3.1 加权叠加

    使用常用测量比例叠加多个栅格数据,并根据各栅格数据的重要性分配权重(图XX)。

     

     

    图XX 加权叠加示意                    图XX 加权叠加对话窗口

     

    计算过程为:

    (i)将输入栅格中的值进行重分类,使其具有相同的评估等级(适宜性或优先级和风险)或一些类似的统一等级;

    (ii)将每个输入栅格的像元值乘以栅格的重要性权重;

    (iii)将结果像元值相加以生成输出栅格。

    以图XX中输入栅格1和栅格2的第一行第一列栅格为例,经过加权叠加后的结果为:2*0.75+3*0.25=2.25,由于输出栅格数据只能为短整形(Integer),故最终的值为2。

    该工具所有输入栅格数据必须为整型。浮点型栅格数据要先转换为整型栅格数据,然后才能在加权叠加中使用。重分类工具是执行换转的有效方法。

    根据评估等级为输入栅格中的各个值类分配一个新值。这些新值是原始输入栅格值的重分类值。对于要从分析中排除的区域,将使用受限值。

    根据各个输入栅格数据的重要性或者影响力百分比对其进行加权。权重是相对百分比,并且影响力百分比权重的总和必须等于100。

    具体操作过程为:

    在ArcMap【目录列表】中定位到【工具箱】--【系统工具箱】-【Spatial Analyst】--【叠加分析】,双击【加权叠加】工具,打开【加权叠加】工具对话窗口。

    在打开的【加权叠加】对话窗口中设置如下(图XX)。

    数据位置:“\ch10\Data\Overlay\ WeightedOverlay” 目录下

    加权叠加表中,点击右侧的添加按钮,添加数据InRas1.tif和InRas2.tif,在影响一栏中分别设置为75和25

    输出栅格:Weighted

    其它保持默认。

    10.3.2 加权总和

    加权总和工具可以对多个输入进行加权及组合,以创建整合式分析。该工具可将多个栅格输入组合权重或相对重要性相结合,与加权叠加工具很相似。

    这两种工具有两个主要区别:

    加权总和工具不能将重分类值重设为评估等级;加权总和工具允许使用浮点型和整型值作为输入,而加权叠加工具只接受整型栅格作为输入。

    加权总和工具通过将栅格各自乘以指定的权重并合计在一起来叠加多个栅格(图XX)。

     

       

    图XX 加权总和示意                        图XX 加权总和对话窗口

     

        将多个栅格数据一起添加的有效方法是输入多个栅格并将所有权重设置为 1。

    输入栅格可以是整型或浮点型。

    权重值可以是正的或负的小数值。并不限定该值必须是相对百分比或等于 1.0。

    权重将应用至输入栅格的指定字段。字段的类型可以是短整型或长整型,双精度型或浮点型。

    以图XX中输入栅格1和栅格2的第一行第一列栅格为例,经过加权叠加后的结果为:2.2*0.75+3*0.25=2.4,由于输出栅格数据可以为浮点型(Float),故最终的值为2.4。

    具体操作过程为:

    在ArcMap【目录列表】中定位到【工具箱】--【系统工具箱】-【Spatial Analyst】--【叠加分析】,双击【加权总和】工具,打开【加权总和】工具对话窗口。

    在打开的【加权总和】对话窗口中设置如下(图XX)。

    数据位置:“\ch10\Data\Overlay\ WeightedSum” 目录下

    输入栅格,添加数据InRas1.tif和InRas2.tif,在权重一栏中分别设置为0.75和0.25

    输出栅格:WeightedSum

    其它保持默认。

    10.4 距离分析

    距离分析是ArcGIS中栅格空间分析中重要的分析方法之一,指的是根据栅格相距其最临近要素(源)的距离分析结果。距离分析包含欧式距离(直线距离)、成本距离、路径距离和最小成本路径/廊道分析。

    10.4.1 距离分析相关概念

    距离分析中最重要的概念是源和成本。

    (1)源

    源是指距离分析中的目的地或者目标,可以是井、购物中心、道路和林分等感兴趣对象的位置。源可以是栅格数据也可以是矢量数据。如果源是栅格,必须只包含源像元的值,同时其它像元必须是 NoData。如果源是矢量数据,在运行工具时在内部将其转换为栅格。

    (2)成本

    成本指的是到达目的地或者目标“源”的花费,例如时间、金钱、喜好等。影响成本的因素可以是一个,也可以有多个。成本栅格数据记录了通过每个栅格单元的成本,为此需要制定统一的成本分类体系,对单个成本按大小进行分类,并对每一类别赋予成本量值。最后根据成本影响程度确定单个成本权重值,依权重百分比加权求和,得到多个单成本因素综合影响的成本栅格数据。

    10.4.2 欧式距离分析

    欧式距离工具(Euclidean Distance Tools,直线距离)根据直线距离描述每个像元与一个源或一组源的关系。欧式距离工具包含有3种工具:

    (1)欧氏距离给出栅格中每个像元到最近源的距离。

    (2)欧式方向给出每个像元到最近源的方向。

    (3)欧式分配根据最大邻近性识别要分配给源的像元。

    欧式距离算法是通过计算源像元中心与每个周围像元中心之间的欧氏距离。从概念上讲,欧式算法的原理如下:对于每个像元,通过用 x_max 和 y_max 作为三角形的两条边来计算斜边的方法,确定与每个源像元之间的距离。通过此方法得到的是真实欧氏距离,而不是像元距离。与源之间的最短距离将会被确定,如果它小于指定的最大距离,则将该值赋给输出栅格上的像元位置(图XX)。欧氏距离栅格的输出值是浮点距离值。

     

    图XX 欧式距离原理                            图XX 欧式距离示意

     

    欧式距离分析工具输入源数据可以是要素类或栅格。当输入源数据是栅格时,源像元集包括具有有效值的源栅格中的所有像元。当输入源数据是要素类时,源位置在执行分析之前从内部转换为栅格。

    输出栅格的分辨率可以由输出像元大小参数或像元大小环境来控制。如果源是栅格,则输出的像元大小不变。如果源是要素,则输出像元大小由输入空间参考中输入要素范围的宽度或高度中的较小值除以 250 来确定。

    10.4.2.1 欧式距离

    欧氏距离输出栅格包含每个像元与最近源之间的测定距离(图XX)。距离以栅格的投影单位(如英尺或米)沿直线测量(欧氏距离),从像元中心到像元中心进行计算(图XX)。例如可以查找最近距离的ATM取款机。

    具体操作过程为:

    在ArcMap【目录列表】中定位到【工具箱】--【系统工具箱】-【Spatial Analyst】--【距离分析】,双击【欧式距离】工具,打开【欧式距离】工具对话窗口。

    在打开的【欧式距离】对话窗口中设置如下(图XX)。

    数据位置:“\ch10\Data\Distance\ Euclidean” 目录下

    输入栅格数据或要素数据源:ATM.shp

    输出栅格:EucDistance

    最大距离:保持默认。

    输出像元大小:2.

    输出方向栅格数据:保持默认。

    欧式距离结果如图XX所示。

     

     

    图XX 欧式距离对话窗口                  图XX 欧式距离示意

     

    10.4.2.2 欧式方向

    欧式方向输出栅格包含每个像元与最近源之间的方位角方向。欧式方向将每个像元以度为单位的方向分配给距其最近的源,欧式方向值的范围是 0 度到 360 度,并为源像元保留 0 度。正东(右侧)是 90 度,且值以顺时针方向增加(180 是南方、270 是西方、360 是北方),值类型为整数型。下图XX显示的是距离每个ATM取款机的方向,通过判断方向可以为ATM增添时提供有用信息。

     

     

    图XX 欧式方向示意                  图XX 欧式方向原理

     

    具体操作过程为:

    在ArcMap【目录列表】中定位到【工具箱】--【系统工具箱】-【Spatial Analyst】--【距离分析】,双击【欧式方向】工具,打开【欧式方向】工具对话窗口。

    在打开的【欧式方向】对话窗口中设置如下(图XX)。

    数据位置:“\ch10\Data\ Distance\ Euclidean” 目录下

    输入栅格数据或要素数据源:ATM.shp

    输出方向栅格:EucDirection

    最大距离:保持默认。

    输出像元大小:2.

    输出方向栅格数据:保持默认。

    欧式方向结果如图XX所示。

     

    图XX 欧式方向对话窗口

    10.4.2.3 欧式分配

    欧式分配工具基于欧氏距离计算每个像元的最近源(图XX)。欧式分配输出栅格中的每个像元的赋值都是距其最近源的值。使用此工具可将空间分配给对象,例如识别可接受多家商店服务的顾客。图XX显示的是距离每个ATM距离最近的区域,若要从ATM取款,可以从图中找出距离最近的ATM取款机位置(图XX)。

     

    图XX 欧式分配示意                     图XX 欧式分配原理

     

    具体操作过程为:

    在ArcMap【目录列表】中定位到【工具箱】--【系统工具箱】-【Spatial Analyst】--【距离分析】,双击【欧式分配】工具,打开【欧式分配】工具对话窗口。

    在打开的【欧式分配】对话窗口中设置如下(图XX)。

    数据位置:“\ch10\Data\ Distance\ Euclidean” 目录下

    输入栅格数据或要素数据源:ATM.shp

    源字段:Source。用于向源位置分配值的字段。该字段必须为整型。

    输出方向栅格:EucAllocation

    最大距离:保持默认。

    输入赋值栅格:保持默认

    输出像元大小:2.

    输出距离栅格数据:保持默认。

    输出方向栅格数据:保持默认。

    欧式分配结果如图XX所示。

     

    图XX 欧式分配对话窗口

     

        欧氏距离工具根据欧氏距离(直线距离)提取相关信息。但是当存在障碍物(河流、铁路等)的情况下,欧式直线距离就不能很好的反应实际情况。此时应考虑使用成本距离工具获得更现实的结果。

    10.4.3 成本距离分析

    成本距离工具计算各像元到成本面上指定的源位置处的最小累积成本。成本距离确定每个像元的通向源的最低累积成本路径、考虑了最小成本路径的源,以及最小成本路径本身。 

    成本距离工具与欧氏工具相类似,不同点在于欧氏工具计算的实际直线距离,而成本距离工具确定的是各像元距最近源位置的最短加权距离。应用的是以成本单位表示的距离,而不是以地理单位表示的距离。

    成本距离工具都需要源数据集和成本栅格数据集作为输入数据。

    源数据集可以是要素数据集或者栅格数据集。如果源数据集是一个要素数据集,则会在内部将其转换为栅格。如果源数据集是一个栅格数据,它可能包含单个或多个区域。这些区域可以相连,也可以不相连。所有具有值(包括 0)的像元都将作为源像元进行处理。

    成本栅格数据集成本栅格可以是单个栅格,且通常都是多个栅格组合的结果。为成本栅格指定的单位可以是任何所需成本类型:金钱成本、时间、能量消耗、或相对于分配给其他像元的成本而得出其含义的无单位系统。输入成本栅格值类型可以是整型或浮点型,但不可以是负值或 0(成本不能为负或为零)。该算法是一个乘法过程,成本栅格不可以包含0值。

    10.4.3.1 成本距离计算原理

    成本距离工具可创建输入栅格,在栅格中为每个像元分配到最近源像元的累积成本。该算法应用在图论中使用的结点/连接线像元制图表达。在结点/连接线制图表达中,各像元的中心被视为结点,并且各结点通过多条连接线与其相邻结点连接。

    每条连接线都带有关联的阻抗。阻抗是根据与连接线各端点上的像元相关联的成本(从成本表面),和在像元中的移动方向确定的。

    分配给各像元的成本表示在像元中移动每单位距离所需的成本。每个像元的最终值由像元大小乘以成本值求得。例如,如果成本栅格的一个像元大小为 30,某特定像元的成本值为 10,则该像元的最终成本是 300 单位。

    10.4.3.1.1 结点成本计算

    相邻两结点间的行程成本取决于这两个结点的空间方向。像元的连接方式也会影响行程成本。

    下图中各项含义:

    cost1 - 像元 1 的成本

    cost2 - 像元 2 的成本

    a1 - 从像元 1 到像元 2 连接线的总成本

    a2 - 从像元 2 移动到 3 的成本

    accum_cost - 从像元 1 移动到像元 3 的累积成本

    (1)相邻结点成本

     

     

    图XX 相邻结点                         图XX 对角结点

     

    从一个像元移动到四个与其直接连接的近邻之一时,跨越连接线移动到相邻结点的成本为用 1 乘以cost 1 与cost 2 的和,然后再除以 2:

    (2)对角结点成本

    如果沿对角线移动,则连接线上的行程成本为2的平方根乘以cost 1 的成本加上cost2 的成本,再除以 2:

    (3)累积成本

     

    图XX 累积成本                      

    10.4.3.1.2 成本距离计算

    假设输入的源栅格和成本栅格如图XX所示,以此计算成本距离。

     

    图XX 源栅格与成本栅格

     

        (1)在第一次迭代过程中,首先识别出源像元并为其分配值为0,源像元本身不消耗积累值。接着利用全部源像元的近邻,使用累积成本公式计算源像元与临近像元的成本。累积成本值按由最低累积成本到最高累积成本的顺序排列于列表中。

     

    图XX 成本距离计算一

     

    例如:R2C1(第2行(ROW)第1列(Column)像元)的成本距离计算如下:

    与R2C1点距离最近的源为R1C2点,从源R1C2到R2C1有两条路线,分别为

    R2C1→R2C1(对角线):  

    R2C1→R1C1→R2C1:  

    除此之外,还可以计算到源R1C2点和源R2C3的成本。

    最后从计算的成本中选取最小的成本指作为从源到R2C1点成本,本例中最小值为4.5。

    (2)从活动累积成本像元列表中选择最低成本像元,然后将该像元位置的值分配给输出成本距离栅格(图XX)。活动像元的列表会变大,以包括所选像元的近邻,因为此时这些像元已具有到达某个源的方式。列表中只有可能到达某个源的像元是活动的。使用累积成本公式计算移动到这些像元的成本。

    图XX 成本距离计算二

    R5C3点距离最近的源为R6C2点,成本距离为:

    (3)再选择列表中具有最低成本的活动像元,扩大邻域,计算新的成本,并将新的成本像元添加到活动列表(图XX),继续执行分配过程。如果通过将新像元位置添加到输出栅格创建新的成本较低的路径,则将更新活动列表上的像元(图XX)。

     

     

    图XX 成本距离计算三

    图XX 成本距离计算四

     

    (4)如果活动列表上的位置新累积成本小于这些像元当前的累积成本,则使用新值替换掉活动列表上该位置的原有累积成本。此时已具有到达某个源的更廉价和更理想路径的像元在活动选择列表中上移。

    R3C1像元位置放在活动列表上时,它达到栅格顶部的源的累积成本为 11.0。但是到达底部栅格源的累积成本为8.0。 因为较低的源扩展到此位置,该像元获得了到达其他源的更廉价的累积成本路径。由于存在这一较低的累积成本,因此应早些在活动列表上更新该位置的值,并分配到输出(图XX)。

     

    图XX 成本距离计算五

     

    (5)如果输入源栅格上存在多个区域或多组互不相连的源像元,则增长过程继续,并且无论来自哪个源,都将从活动列表中分配最低成本像元。

     

    图XX 成本距离计算六

     

        (6)当增长面相遇时,返回源的最低成本路径的确定过程会继续,直到所有具备条件的像元获得成本值为止(图XX)。

     

    图XX 成本距离计算七

     

    (7)当增长模式的锋面相遇时,一个增长模式的像元将能够以更低成本到达其他组或增长模式中的某个源像元,它们将被重新分配到新的源。例如R3C6处的累积成本(图XX)。

     

    图XX成本距离计算八

    图XX成本距离计算九

     

    (8)经过计算之后的最终成本距离栅格图(图XX)。

     

    图XX 成本栅格图

     

    10.4.3.1.3 成本栅格创建

    成本距离工具用于计算各像元到成本面上指定的源位置处的最小累积成本。执行此工具前,必须首先创建一个源数据集和一个成本数据集。

    成本栅格用于识别通过每个像元所需的成本。要创建此栅格,需要识别道路在其经由的每个像元中的建造成本。尽管成本栅格是一个单数据集,但却常用来代表多个指标。

    例如,以高程和坡度为例说明修建道路时成本栅格的创建方法。

    1. 栅格重分类

    定位到“\ch10\Data\Distance\Cost\Costraster”目录,添加Slope和DEM两图层。坡度越大,道路修建难度也就越大,相应的成本也就越高;同理高程越高,成本也就越高。

        把Slope和DEM图利用【重分类】命令进行操作,重分类均为6类,值为1-6。重分类后的坡度Slope_Reclass如图XX所示,高程重分类DEM_Reclass如图XX所示。

     

     

    图XX 坡度重分类图                         图XX 高程重分类图

     

    1. 权重赋值并合并数据

    坡度和高程对道路修建的影响程度是不一样的,区分它们影响程度的最简单方法就是通过简单的数学相加操作。坡度的影响占到70%,高程的影响程度占到30%。通过对重分类的坡度和高程数据进行影响计算之后,计算结果相加即可得到最终的成本栅格数据。计算原理如图XX所示。

     

    图XX 赋值计算结果

     

    具体操作过程为:

    在ArcMap【目录列表】中定位到【工具箱】--【系统工具箱】-【Spatial Analyst】--【叠加分析】,双击【加权叠加】工具,打开【加权叠加】工具对话窗口。

    在打开的【加权叠加】对话框中设置如下(图XX):

    加权叠加表:

          Slope_recalss ,影响70%

         DEM_reclass,影响30%

    评估等级:1至6由1

    输出栅格:Cost_Raster

    最终的成本栅格如图XX所示。

     

     

     

    图XX 栅格计算器窗口                         图XX 成本栅格

     

    10.4.3.2 成本距离

    成本距离工具计算每个像元到成本面上最近源的最小累积成本距离(图XX)。

     

    图XX 成本距离示意

     

    输入源数据可以是要素类或栅格。当源数据是栅格时,源像元集包括具有有效值的源栅格中的所有像元。具有 NoData 值的像元不包括在源集内。值 0 将被视为合法的源。使用提取工具可轻松地创建源栅格。当源数据是要素类时,源位置在执行分析之前从内部转换为栅格。栅格的分辨率可以由像元大小环境来控制。默认情况下,分辨率将会设置为输入成本栅格的分辨率。在输入成本栅格数据中含有 NoData 的像元位置充当成本面工具中的障碍。

    具体操作过程为:

    在ArcMap【目录列表】中定位到【工具箱】--【系统工具箱】-【Spatial Analyst】--【距离分析】,双击【成本距离】工具,打开【成本距离】工具对话窗口,设置如下。

    数据位置:“\ch10\Data\Distance\Cost” 目录下。

    输入栅格数据或要素数据源:Source.shp

    输入成本栅格:Cost_Raster。(道路通行成本1;河流不能通行,为NoDtata;其它通行成本5

    输出栅格:Cost_Distance

    其它保持默认。

    成本距离距离结果如图XX所示。

     

     

    图XX 成本距离对话框                       图XX 成本距离结果

     

    10.4.3.3 成本回溯链接

    成本回溯链接工具定义在最近源的最小累积成本路径上为下一像元的相邻点(图XX)。

     

    图XX成本回溯链接示意

     

    输入源数据可以是要素类或栅格。当输入源数据是栅格时,源像元集包括具有有效值的源栅格中的所有像元。具有 NoData 值的像元不包括在源集内。值 0 将被视为合法的源。使用提取工具可轻松地创建源栅格。当输入源数据是要素类时,源位置在执行分析之前从内部转换为栅格。栅格的分辨率可以由像元大小环境来控制。默认情况下,分辨率将会设置为输入成本栅格的分辨率。

    在输入成本栅格数据中含有 NoData 的像元位置充当成本面工具中的障碍。在输入成本表面,任意被分配 NoData 的像元位置,都会在所有输出栅格(成本距离、分配和回溯链接)上接收到 NoData。

    具体操作过程为:

    在ArcMap【目录列表】中定位到【工具箱】--【系统工具箱】-【Spatial Analyst】--【距离分析】,双击【成本回溯链接】工具,打开【成本回溯链接】工具对话窗口,设置如下。

    数据位置:“\ch10\Data\Distance\Cost” 目录下。

    输入栅格数据或要素数据源:Source.shp

    输入成本栅格:Cost_Raster

    输出栅格:Cost_BackLink

    其它保持默认。

    成本回溯链接结果如图XX所示。

     

     

    图XX 成本回溯链接对话窗口                 图XX成本回溯链接结果

     

    10.4.3.4 成本分配

      成本分配工具根据成本面上的最小累积成本计算每个像元的最近源(图XX)。

     

    图XX 成本分配示意

     

    输入源数据可以是要素类或栅格。当输入源数据是栅格时,源像元集包括具有有效值的源栅格中的所有像元。具有 NoData 值的像元不包括在源集内。值 0 将被视为合法的源。使用提取工具可轻松地创建源栅格。当输入源数据是要素类时,源位置在执行分析之前从内部转换为栅格。栅格的分辨率可以由像元大小环境来控制。默认情况下,分辨率将会设置为输入成本栅格的分辨率。

    在输入成本栅格数据中含有 NoData 的像元位置充当成本面工具中的障碍。在输入成本表面,任意被分配 NoData 的像元位置,都会在所有输出栅格(成本距离、分配和回溯链接)上接收到 NoData。

    具体操作过程为:

    在ArcMap【目录列表】中定位到【工具箱】--【系统工具箱】-【Spatial Analyst】--【距离分析】,双击【成本分配】工具,打开【成本分配】工具对话窗口,设置如下。

    数据位置:“\ch10\Data\Distance\Cost” 目录下。

    输入栅格数据或要素数据源:Source.shp

    源字段:Source

    输入成本栅格:Cost_Raster

    输出栅格:Cost_Allocat

    其它保持默认。

    成本分配结果如图XX所示。

     

     

    图XX 成本分配对话窗口                 图XX成本分配结果

     

    10.4.3.5 成本路径

    成本路径工具用于确定目标点与源点之间的成本最低路径。除了目标点外,成本路径工具还将用到通过成本距离工具得出的两个栅格:成本最小距离栅格和回溯链接栅格,通过成本距离工具和路径距离工具生成。回溯链接栅格可用于在成本距离表面上从目标沿最小成本路径回溯到源。

    成本路径的计算结果跟输入栅格的权重比例有关。

    输入目标为多个像元或区域,则最小成本路径可根据各像元(生成多条路径,每条路径对应一个像元)、各区域(每条路径对应一个区域)或按照图层(仅生成一条路径,即到任意区域的成本最小路径)进行计算。如果只存在一个成本最低路径,则在输出栅格中此路径将编码为值三。源区域(即为路径的发源地)内的像元将指定为值1(图XX)。

     

    图XX 成本路径示意

     

    具体操作过程为:

    在ArcMap【目录列表】中定位到【工具箱】--【系统工具箱】-【Spatial Analyst】--【距离分析】,双击【成本路径】工具,打开【成本路径】工具对话窗口,设置如下。

    数据位置:“\ch10\Data\Distance\Cost\” 目录下。

    输入栅格数据或要素数据源:Market..shp

    目标字段:ID

    输入成本距离栅格:Cost_Distance

    输入成本回溯链接栅格:Cost_Backlink

    输出栅格:Cost_Path

    路径类型:有三种选项EACH_CELLEACH_ZONEBEST_SINGLE

    EACH_CELL 对于输入目标数据上每一个具有有效值的像元,系统会确定最小成本路径并将该路径保存在输出栅格上。利用该选项,系统会单独处理输入目标数据的每个像元,并确定每个“起始”像元的最小成本路径。

    EACH_ZONE 对于输入目标数据上的每个区域,系统会确定最小成本路径并将该路径保存在输出栅格上。利用该选项,每个区域的最小成本路径可起始于区域内成本距离权重最小的像元。

    BEST_SINGLE 对于输入目标数据上的所有像元,最小成本路径将从具有最小成本路径的最小值的像元到源像元之间获得。

    输出栅格保持默认EACH_CELL选项。

    成本路径结果如图XX所示。

     

     

    图 成本路径对话框

     

    得到的成本路径图是超市到ATM取款机(红色三角符号)的最小成本。

    10.5 邻域分析

    邻域分析工具基于自身位置值以及指定邻域内识别的值为每个像元位置创建输出值。邻域可分为两类:移动或搜索半径。

        邻域分析计算包含两种形式:一种针对位置重叠的邻域,另一种针对位置不重叠的邻域。

    焦点统计工具处理邻域重叠的输入数据集。块统计工具则处理邻域不重叠的数据(图XX)。

     

    图XX 邻域运算形式

     

    10.5.1 邻域形状

    邻域分析运算还依赖于邻域的形状,常见的的邻域形状包含以下几种:

    10.5.1.1 环形

    环形由两个圆组成,一个圆位于另一个圆的内侧,从而构成圆环。中心落在小圆半径范围以外,但落在大圆半径范围以内的像元将包含在邻域处理范围内。处于两个圆形之间的区域构成环形邻域。半径用像元单位或地图单位标识并且沿着垂直于 x 轴或 y 轴的方向进行测量。

    所得的以像元为单位的半径会生成一个区域,该区域能够近似地表示出以原始的地图单位为半径时计算的区域。中心位于环形内的所有像元都将包括在邻域的处理范围内。中心位于环形内的所有像元都将包括在邻域的处理范围内。默认环形邻域具有一个像元的内半径以及三个像元的外半径(图XX)。

     

     

    图XX 环形邻域

     

    10.5.1.2 圆形

    圆形邻域通过指定半径值进行创建。半径用像元单位或地图单位标识并且沿着垂直于 x 轴或 y 轴的方向进行测量。

    首先,根据指定的半径值计算出准确的圆面积。然后,再计算出另外两个圆面积值,一个是指定半径值向下舍入后的圆面积,另一个是指定半径值向上舍入后的圆面积。这两个面积分别与用指定半径计算出的准确面积值进行比较,二者中更为接近准确值的一个将被用于运算过程中。默认圆形邻域的半径为三个像元(图XX)。

     

    图XX 圆形邻域

     

    10.5.1.3 矩形

    矩形邻域是通过提供以像元或地图单位定义的宽度和高度进行指定的。仅将中心处于定义对象内的像元作为矩形邻域的一部分进行处理。默认矩形邻域是高度和宽度均为三个像元的正方形(图XX)。

     

    图XX 矩形邻域

     

    10.5.1.4 楔形.

    楔形是由半径、起始角度和终止角度指定的饼形邻域。楔形按逆时针方向从起始角延伸到终止角。角度指定为 0 度到 360 度。半径用像元单位或地图单位标识并且沿着垂直于 x 轴或 y 轴的方向进行测量。

    所得的以像元为单位的半径会生成一个区域,该区域能够近似地表示出使用原始的地图单位为半径时计算的区域。中心位于楔形内的所有像元都将包括在邻域的处理范围内。 默认楔形邻域起始角度为0度,终止角度为90度,半径为三个像元(图XX)。

     

    图XX 楔形邻域

     

    10.5.1.5 不规则形状

    通过不规则形状核文件可指定应包含在邻域范围内的像元位置。

    不规则形状核文件属于 ASCII 文本文件,可定义不规则邻域的值和形状。

    第一行指定了邻域的宽度和高度(表示为由空格分开的 x 轴方向上的像元数和 y 轴方向上的像元数)。

    随后几行则指定了邻域中各个位置的值。按照与各像元在所在邻域中相同的配置输入这些像元值,各个值之间需要由空格分隔,核文件中的值只有0和1两种情况。

    某像元位置的值为 0(非空)表示该像元不属于该邻域从而无法用于邻域处理。而值为 1 则表示该值对应的像元(和像元值)属于该邻域(图XX)。

     

    图XX 不规则形状

     

    10.5.1.6 权重

    权重邻域用于定义不规则形状邻域。权重核文件可指定应包含在邻域范围内的各像元位置及其权重。

    权重核文件属于 ASCII 文本文件,可定义权重邻域的值和形状。

    第一行指定了邻域的宽度和高度(表示为由空格分开的 x 轴方向上的像元数和 y 轴方向上的像元数)。

    随后几行则指定了邻域中各个位置的权重值。按照与各像元在所在邻域中相同的配置输入这些像元值。正值、负值和小数值均可用作权重。各个值之间需要由空格分隔。

    对于邻域中不用于计算的位置,核文件中的相应位置将用值 0 表示(图XX)。

     

     

    图XX 权重邻域

     

    10.5.2 邻域统计类型

    MEAN — 计算每个邻域中的字段值的平均值。

    MAJORITY — 确定每个邻域中出现频率最高的字段值。如果出现平局,使用较低的值。

    MAXIMUM — 确定每个邻域中的最大字段值。

    MEDIAN — 确定每个邻域中的中间字段值。如果邻域中点的数量为偶数,结果将为两个中间值中较低的一个。

    MINIMUM — 确定每个邻域中的最小字段值。

    MINORITY — 确定每个邻域中出现频率最低的字段值。如果出现平局,使用较低的值。

    RANGE — 计算每个邻域中的字段值的范围(最大值与最小值之差)。

    STD — 计算每个邻域中的字段值的标准差。

    SUM — 计算每个邻域中的字段值的总和。

    VARIETY — 计算每个邻域中的唯一字段值的数目。

    10.5.3 点统计

    点统计工具用于执行计算输出栅格数据的邻域运算,各像元的输出值是落入其指定邻域范围内所有输入点要素的函数。运算该函数可得出统计数据,例如最大值、平均值或者邻域内所有值的总和。

    从概念上讲,在执行过程中,此算法为输出栅格中的每个像元确定落入其指定邻域内的输入点。对这些点的指定字段选用合适的统计类型。各邻域可以重叠,因此位于某个特定邻域内的像元点也可以包含在其他待处理像元的邻域中。

    点数据类似于焦点统计工具,不同之处在于它直接对点要素而非栅格进行运算。直接对点要素进行运算的一个优点在于,即使点距离过近,在转换成栅格时点也不会丢失。

    点统计只能针对四种特定的邻域形状(环形、圆形、矩形和楔形)计算统计值。只能使用焦点统计工具处理自定义邻域形状。

    通过字段值为 1、2 和 3 的 11 个输入点,演示“点统计”工具计算总和统计值的邻域处理过程,待使用邻域为 3 X 3 矩形(图XX)。

     

    图XX 输入点

     

    邻域窗口为输出栅格中每个像元确定将在统计计算中考虑的输入点。将计算结果记录在待处理的像元中,然后继续对下一个像元进行运算。继续扫描,直至所有输出像元都具有值(图XX)。

     

    图XX 计算过程

     

    10.6 密度分析

    密度分析依据测量值及其相对位置空间关系,对测量值进行分析处理并将其分散到整个表面上。进行密度分析可以显示点或线要素较为集中的区域。例如,某个城市区域范围内,每个城镇都表示为代表该镇人口数的点,每个城镇内并非所有人都住在聚居点上,若想更多地了解人口随地区的分布情况,可以通过计算密度,创建一个显示整个地表上人口的预测分布状况的表面(图XX)。

     

    图XX 密度分析示意

     

    密度分析工具包含以下三种:

    10.6.1 点密度分析

    点密度分析根据落入每个单元周围邻域内的点要素计算每单位面积的量级,用于计算每个输出栅格像元周围的点要素的密度(图XX)。每个栅格像元中心的周围都定义了一个邻域,将邻域内点的数量相加,然后除以邻域面积,即得到点要素的密度。

     

    图XX 点密度示意

     

    半径参数值越大,生成的密度栅格的概化程度便越高。值越小,生成的栅格所显示的信息越详细;计算密度时,仅考虑落入邻域范围内的点。如果没有点落入特定像元的邻域范围内,则为该像元分配 NoData。

    具体操作过程为:

    在ArcMap【目录列表】中定位到【工具箱】--【系统工具箱】-【Spatial Analyst】--【,密度分析】,双击【点密度分析】工具,打开【点密度分析】工具对话窗口,设置如下。

    数据位置:“\ch10\Data\ Density\” 目录下,Point.shp点数据中字段Population记录的是人口数据,单位:人。

    输入要素点:Point.shp

    Population字段:Populationpopulation字段是将用于计算连续表面的计数或数量。如没有 POPULATION 段,也可以使用能够表示数量或者计数的其它命名字段。

    输出栅格:PointDensity

    邻域分析(可选):指定用于计算密度值的每个像元周围的区域形状。区域形状包含以下类型:此处默认选择--圆形,邻域设置:半径-- 80000,单位-- 地图。邻域搜索半径为80km

    面积单位 (可选):输出密度值的所需面积单位。此处保持默认:SQUARE_KILOMETERS

     

    图XX 点密度对话窗口                   图XX 点密度分析结果

     

    点密度分析设置不同邻域分析参数的结果如图XX所示。

     

    楔形 0°-180°  80000m                   楔形 0°-180°  80000m

     

    环形 内环--50000m  外环--100000m       矩形 高度--50000m 宽度--50000m

    图XX 不同参数点密度结果

     

    该工具可用于查明房屋、野生动物观测值或犯罪事件的密度。可使用 population 字段根据要素的重要程度赋予某些点比其他点更大的权重,该字段还允许使用一个点表示多个观测值。例如,一个地址可以表示一栋包含六个独立单元的公寓,或者在确定总体犯罪率时可赋予某些罪行比其他罪行更大的权重。

    10.6.2 线密度分析

    线密度分析根据落入每个单元一定半径范围内的折线 (polyline) 要素计算每单位面积的量级(图XX)。用于计算每个输出栅格像元邻域内的线状要素的密度。密度的计量单位为长度单位/面积单位。

    从概念上讲,使用搜索半径以各个栅格像元中心为圆心绘制一个圆。每条线上落入该圆内的部分的长度与 Population 字段值相乘。对这些数值进行求和,然后将所得的总和除以圆面积(图XX)。

     

    图XX 线密度分析示意                      图XX 线密度分析原理

     

    图XX显示的是显示的是栅格像元与其圆形邻域。线 L1 和 L2 表示各条线上落入圆内部分的长度。相应的 population 字段值分别为 V1 和 V2。

    Density = ((L1 * V1) + (L2 * V2)) / (area_of_circle)

    具体操作过程为:

    在ArcMap【目录列表】中定位到【工具箱】--【系统工具箱】-【Spatial Analyst】--【,密度分析】,双击【线密度分析】工具,打开【线密度分析】工具对话窗口,设置如下。

    数据位置:“\ch10\Data\ Density\” 目录下,Line.shp点数据中字段Population记录的是道路等级。

    输入折线要素:Line.shp

    Population字段:Population

    输出栅格:LineDensity

    输出像元大小(可选):20

    搜索半径(可选):500

    面积单位 (可选):保持默认,SQUARE_KILOMETERS

     

     

    图XX 线密度分析示意                图XX 线密度结果

     

    当设置不同搜索半径时结果如图XX所示。

     

    搜索半径200m                         搜索半径1000m

      图XX 线密度不同搜索半径结果

     

    当设置不同Population字段时结果如图XX所示。

     

    利用字段计算                        不利用字段计算

      图XX 线密度不同Population字段时结果

     

    线密度分析可用于了解对野生动物栖息地造成影响的道路密度,或者城镇中公用设施管线的密度。可使用 population 字段赋予某些道路或公用设施管线比其他道路或公用设施管线更大的权重,具体根据它们的大小或类而定。例如,分车道高速公路产生的影响可能要比狭窄的土路大,高压线产生的影响要比标准电线杆大。

     

    10.6.3 核密度分析

    核密度分析工具使用核函数根据点或折线 (polyline) 要素计算每单位面积的量值以将各个点或折线 (polyline) 拟合为光滑锥状表面。用于计算要素在其周围邻域中的密度。此工具既可计算点要素的密度,也可计算线要素的密度(图XX)。

     

    图XX 核密度示意

     

    具体操作过程为:

    在ArcMap【目录列表】中定位到【工具箱】--【系统工具箱】-【Spatial Analyst】--【,密度分析】,双击【核密度分析】工具,打开【核密度分析】工具对话窗口,设置如下。

    数据位置:“\ch10\Data\ Density\” 目录下,Point.shp点数据中字段Population记录的是人口数据,单位:人。

    输入点或折线要素:Point.shp

    Population字段:Population

    输出栅格:KernelDensity

    输出像元大小(可选):200

    搜索半径(可选):80000

    面积单位 (可选):保持默认,SQUARE_KILOMETERS

     

     

    图XX 核密度分析对话框                  图XX 核密度分析结果

     

    设置不同搜索半径的结果如图XX所示。

     

       

    搜索半径100000m                           搜索半径50000m

    图XX 核密度不同搜索半径结果

     

    核密度分析可用于测量建筑密度、获取犯罪情况报告,以及发现对城镇或野生动物栖息地造成影响的道路或公共设施管线。可使用 population 字段根据要素的重要程度赋予某些要素比其他要素更大的权重,该字段还允许使用一个点表示多个观察对象。例如,一个地址可以表示一栋六单元的公寓,或者在确定总体犯罪率时可赋予某些罪行比其他罪行更大的权重。对于线要素,分车道高速公路可能比狭窄的土路产生更大的影响,高压线要比标准电线杆产生更大的影响。

    10.6.4 密度分析区别

    通过简单点密度、线密度计算和核密度计算均可实现密度计算。在简单密度计算中,将求出落在搜索区域内的点或线的总和,然后除以搜索区域的面积从而得到各像元的密度值。

    点密度工具和线密度工具的区别在于前者适用于点状要素,而后者适用于线状要素。这两种工具均可先计算出已识别邻域内的数量(由 Population字段指定),然后再将该数量除以邻域的面积。

    点密度和线密度两种工具的输出与核密度工具的输出的区别在于,对于点密度和线密度,需要指定一个邻域以便计算出各输出像元周围像元的密度。而核密度则可将各点的已知总体数量从点位置开始向四周分散。在核密度分析中,在各点周围生成表面所依据的二次公式可为表面中心(点位置)赋予最高值,并在搜索半径距离范围内减少到零。对于各输出像元,将计算各分散表面的累计交汇点总数。

    图XX显示点密度分析与核密度分析结果,搜索半径80000m。

     

       

    图XX 点密度与核密度分析结果

     

    图XX显示线密度分析与核密度分析结果,搜索半径500m。

     

     

    图XX 线密度与核密度分析结果

     

    10.7 插值分析

    插值通常根据采样点创建连续的表面,插值可以根据有限的样本数据点预测栅格中的像元值。进行栅格插值分析的前提条件是假设空间分布对象是空间相关的,即彼此接近的对象往往具有相似的特征,这是插值的基础。因此,接近采样点的值相对于距离采样点远的点,与采样点相似的可能性更高大。可以用于插值的数据包括高程、降雨、化学物质浓度和噪声等级等。

    插值工具通常分为确定性方法和地统计方法两种。

    (1)确定性插值方法将根据周围测量值和用于确定所生成表面平滑度的指定数学公式将值指定给位置。插值方法包括:反距离权重法(Inverse Distance Weighting,IDW)、自然邻域法(Natural Neighbor)、趋势面法(Trend)和样条函数法(Spline)。

    (2)地统计方法以包含自相关(测量点之间的统计关系)的统计模型为基础。因此,地统计方法不仅具有产生预测表面的功能,而且能够对预测的确定性或准确性提供某种度量。常用插值方法包括:克里金法(Kriging)。

    10.7.1 反距离权重法(Inverse Distance Weighting)

    反距离权重法工具所使用的插值方法可通过对各个待处理像元邻域中的样本数据点取平均值来估计像元值。点到要估计的像元的中心越近,则其在平均过程中的影响或权重越大。

    反距离权重法主要依赖于反距离的幂值。幂参数可基于距输出点的距离来控制已知点对内插值的影响。幂参数是一个正实数,默认值为 2。

    10.7.2 自然邻域法(Natural Neighbor)

    自然邻域法插值可找到距查询点最近的输入样本子集,并基于区域大小按比例对这些样本应用权重来进行插值。该插值方法的基本属性是它具有局部性,仅使用查询点周围的样本子集,且保证插值高度在所使用的样本范围之内。该表面将通过输入样本且在除输入样本位置之外的其他所有位置均是平滑的。

     

    10.7.3 趋势面法(Trend)

    趋势面法 是一种可将由数学函数(多项式)定义的平滑表面与输入样本点进行拟合的全局多项式插值法。趋势表面会逐渐变化,并捕捉数据中的粗尺度模式。利用趋势面插值法可创建平滑表面

    10.7.4 样条函数法(Spline)

        样条函数法工具所使用的插值方法使用可最小化整体表面曲率的数学函数来估计值,以生成恰好经过输入点的平滑表面。

    10.7.5克里金法(Kriging)

    克里金法是通过一组具有 z 值的分散点生成估计表面的高级地统计过程。与其他插值方法不同,选择用于生成输出表面的最佳估算方法之前应对由 z 值表示的现象的空间行为进行全面研究。

    克里金法假定采样点之间的距离或方向可以反映可用于说明表面变化的空间相关性。克里金法工具可将数学函数与指定数量的点或指定半径内的所有点进行拟合以确定每个位置的输出值。克里金法包括多个步骤;包括数据的探索性统计分析、变异函数建模和创建表面,还包括研究方差表面等。

     

     

     

    展开全文
  • arcgis 栅格数据分析

    2012-03-07 16:50:17
    适合初学者的arcgis栅格数据的学习。
  • 栅格重分类、栅格计算器的使用、栅格和矢量转换、水文分析
  • 温习和熟悉ArcGIS中空间数据分析的基本流程、基本工具、基本内容及操作步骤,理解地理空间数据的基本特征,会初步分析空间分析方法含义和提取时参数设置依据,为后续学习奠定基础。 二、实验数据 全国数字高程模型、...

    实验一:熟悉ArcGIS中空间分析工具

    一、实验目的

    温习和熟悉ArcGIS中空间数据分析的基本流程、基本工具、基本内容及操作步骤,理解地理空间数据的基本特征,会初步分析空间分析方法含义和提取时参数设置依据,为后续学习奠定基础。

    二、实验数据

    全国数字高程模型、一级水系、行政区划及县级居民地数据。

    三、实验步骤

    3.1掌握地理空间数据特征

    1、在dem图层右键单击击Properties打开Layer Properties属性窗口,切换到Source,可以看到栅格数据的属性信息。

     

    分析:栅格数据是按网格单元的行与列排列、具有不同灰度或颜色的阵列数据。栅格结构是大小相等分布均匀、紧密相连的像元(网格单元)阵列来表示空间地物或现象分布的数据组织。与矢量数据结构相比,用栅格数据结构表达地理要素比较直观,容易实现多层数据的叠合操作。但是,栅格数据结构烦人缺点也是显著的:栅格数据的经度取决于网格的边长,当网格边长缩小时,网格单元的数量将呈几何级数递增,造成储存空间的迅速增加;由于相邻网格单元属性值的相关性,造成栅格数据的荣誉的大;栅格数据对于网络分析也比较困难。

    3.2对栅格数据分析,距离分析,最高峰位置查找

    3.2.1、方法一使用缓冲区分析得到点

    1.  选中最高点(8844)依次点击ArcToolbox->SpatialAnalyst Tools->Eulidean Distances如下图所示。


    ◆设置好参数及环境,点击OK,可以得到缓冲区。


    ◆依次单击LayerProperties->Symbology->Classification->Break value如图所示:


    ◆单击ok再次对缓冲区进行重分类。如图说是红色的点就是属性值为8844的高程点:


    3.2.2.使用栅格转换为点的方法也可以得到属性值为8848的点。

    ◆依次单击ArcToolbox->ConversionTools->From Raster->Raster to Point,输入参数值点击ok;如图所示红色的点就是属性值为8844的点。


    分析:空间缓冲区就是地理空间实体的一种影响范围或服务范围。空间缓冲区分析是围绕空间的点线面实体,自动建立其周围一定宽度范围内的多边形,空间缓冲区可以采用矢量方式实现,也可以采用栅格方式实现,前者称之为矢量缓冲区,后者称之为栅格缓冲区。在这里我们通过缓冲分析的方法可以确定一个具体的点实体。当然我们也可以通过栅格转点的方式确定具体的点实体。

    3.3提取满足条件沿河10000m的居民点

    ◆依次单击ArcToolbox->DataManagement Tools->Layers and Table Views->Select Layer B y location


    ◆设置相关的参数单击OK,得到满足条件的居民点,如图所示:


    分析:这个实例涉及到的也就是分配和选址问题。在计算设施的服务范围及资源的分配范围时,网络的各元素属性也会对资源的实际分配产生很大的影响。实际生活中,许多行业和部门都涉及到服务设施相关服务问题,我们都可以通过属性查找的方法来进行分析。

    四、结论与讨论

    空间数据具有时空特征、多维特征、尺度特征,不确定性特征以及海量特征;高效、准确的获取目标数据及其关联数据,是决定大数据共享与挖掘分析能力能否实现的关键因素。比如对栅格数据的分析,在海量的数据中迅速找到目标区域,我们就可以采用栅格转点的方法和点缓冲区分析的方法。明白缓冲区可能有很多功能和作用,我们在学习过程中要学会发散思维,不拘泥于某些固性思维。通过GIS空间分析实验课程,我对空间数据有了新的认识。

    展开全文
  • 功能需求:给定同一区域不同时间的无人机影像数据,求出区域内影像变化部分,并矢量化成GeoJSON返回给前端。 1.将两幅图像进行相减与二值化操作 2.调用geoTools的PolygonExtractionProcess将图像相减操作结果进行...

    目录

    功能需求:给定同一区域不同时间的无人机影像数据,求出区域内影像变化部分,并矢量化成GeoJSON返回给前端。

    1.将两幅图像进行相减与二值化操作

        public GridCoverage2D tiffSubtract(String sourceTiffPath, String targetTiffPath, float diffLimit)
                throws IOException {
            File sourceTiff = new File(sourceTiffPath);
            File targetTiff = new File(targetTiffPath);
    
            if (!sourceTiff.exists() || !targetTiff.exists()) {
                throw new FileNotFoundException(sourceTiffPath + " or " + targetTiffPath + " do not exist!");
            }
    
            // 中间数据tiff存储路径
            String tempTiff = sourceTiff.getParent() + File.separator + "output.tiff";
            // tiff文件坐标系设置
            Hints tiffHints = new Hints();
            tiffHints.add(new Hints(Hints.FORCE_LONGITUDE_FIRST_AXIS_ORDER, Boolean.TRUE));
            tiffHints.add(new Hints(Hints.DEFAULT_COORDINATE_REFERENCE_SYSTEM, DefaultGeographicCRS.WGS84));
    
            GeoTiffReader sourceReader = new GeoTiffReader(sourceTiff, tiffHints);
            GeoTiffReader targetReader = new GeoTiffReader(targetTiff, tiffHints);
    
            GridCoverage2D sourceCoverage = sourceReader.read(null);
            GridCoverage2D targetCoverage = targetReader.read(null);
            RenderedImage sourceImage = sourceCoverage.getRenderableImage(0, 1).createDefaultRendering();
            RenderedImage targetImage = targetCoverage.getRenderableImage(0, 1).createDefaultRendering();
            Raster sourceRaster = sourceImage.getData();
            Raster targetRaster = targetImage.getData();
    
            int width = sourceRaster.getWidth();
            int height = sourceRaster.getHeight();
            // System.out.println("pixels : width:" + width + ";height:" + height);
    
            Envelope2D sourceEnv = sourceCoverage.getEnvelope2D();
    
            float[][] difference = new float[height][width];
            float s;
            float t;
            // 修改算法,提取差异值大于阈值的部分
            // 将图像二值化
            for (int x = 0; x < width - 1; x++) {
                for (int y = 0; y < height - 1; y++) {
    //              System.out.println("x:" + x + ";y:" + y);
                    s = sourceRaster.getSampleFloat(x, y, 1);
                    t = targetRaster.getSampleFloat(x, y, 1);
                    float diff = t - s;
                    if (diff > diffLimit) {
                        difference[y][x] = 100f;
                    } else {
                        difference[y][x] = 0f;
                    }
                }
            }
    
            GridCoverageFactory factory = new GridCoverageFactory();
            GridCoverage2D outputCoverage = factory.create("subtractTiff", difference, sourceEnv);
            GeoTiffWriter writer = new GeoTiffWriter(new File(tempTiff));
            writer.write(outputCoverage, null);
            writer.dispose();
            return outputCoverage;
        }
    

    2.调用geoTools的PolygonExtractionProcess将图像相减操作结果进行矢量化

        public String polygonExtraction(GridCoverage2D tiffCoverage, String shpPath)
                throws MismatchedDimensionException, IndexOutOfBoundsException, NoSuchAuthorityCodeException,
                ParseException, FactoryException, TransformException, SchemaException, IOException {
            PolygonExtractionProcess process = new PolygonExtractionProcess();
            SimpleFeatureCollection features = process.execute(tiffCoverage, 0, Boolean.TRUE, null, null, null, null);
    
            features = this.polygonPostprocess(features, 10d);
    
            SimpleFeatureType type = features.getSchema();
    
    //      ShapeFileWriter.INSTANCE.write(shpPath, features, type);
            this.toGeoJSON(features);
    
            return shpPath;
        }
    

    3.对矢量化后的多边形对象进行过滤,删除面积过小的细碎多边形

    private SimpleFeatureCollection polygonPostprocess(SimpleFeatureCollection features, double aeraLimit)
                throws IndexOutOfBoundsException, ParseException, NoSuchAuthorityCodeException, FactoryException,
                MismatchedDimensionException, TransformException, SchemaException {
            //坐标转换,从4326转成3857
            CoordinateReferenceSystem dataCRS = DefaultGeographicCRS.WGS84;
            CoordinateReferenceSystem targerCRS = CRS.decode("EPSG:3857");
            boolean lenient = true; // allow for some error due to different datums
            MathTransform transform = CRS.findMathTransform(dataCRS, targerCRS, lenient);
    
            final SimpleFeatureType TYPE = DataUtilities.createType("Location",
                    "the_geom:Polygon:srid=3857,DN:String,Aera:Double");
    
            List<SimpleFeature> projectedFeatureList = new ArrayList<SimpleFeature>();
    
            GeometryFactory geometryFactory = JTSFactoryFinder.getGeometryFactory();
            WKTReader reader = new WKTReader(geometryFactory);
            SimpleFeatureBuilder builder = new SimpleFeatureBuilder(TYPE);
    
            SimpleFeatureIterator iterator = features.features();
            try {
                while (iterator.hasNext()) {
                    SimpleFeature feature = iterator.next();
                    Polygon polygon = (Polygon) feature.getDefaultGeometry();
                    polygon = (Polygon) JTS.transform(polygon, transform);
                    double aera = polygon.getArea();
                    // 多边形面积大于阈值
                    if (aera >= aeraLimit) {
                        builder.add(polygon);
                        builder.add(feature.getAttribute(1).toString());
                        builder.add(aera);
                        SimpleFeature tempFeature = builder.buildFeature(null);
                        projectedFeatureList.add(tempFeature);
                    }
                }
            } finally {
                iterator.close();
            }
    
            System.out.println(projectedFeatureList.size());
            return new ListFeatureCollection(TYPE, projectedFeatureList);
        }
    

    4.将最终结果以GeoJSON格式返回

        private void toGeoJSON(SimpleFeatureCollection featureCollection) {
            SimpleFeatureIterator it = featureCollection.features();
            GeoJsonWriter geoJsonWriter = new GeoJsonWriter();
            
            while(it.hasNext()) {
                SimpleFeature tempFeature = it.next();
                
                Geometry geometry = (Geometry) tempFeature.getDefaultGeometry();
                
                String json = geoJsonWriter.write(geometry);
                
                System.out.println(json);
            }
        }
    

     

    转载自:https://blog.csdn.net/weixin_34226706/article/details/87275194

    相关推荐

    展开全文
  • 不仅如此,还需要将hucgd栅格Reclassify 为 0 到12 ,得到reclassified_huc。然后再以reclassified_huc,和precipgd作为Zonal Statistics工具的输入,才得到预期输出。 习作5 注意:Reclassify 工具要 输出到...

    习作2

    问题2 在combine中,坡度等级为2与坡向类型为4的组合的像元有多少个?

    使用Combine工具之后输出slp_asp并没有Attribute Table,按照Property->Symbology->Unique Value->Build Raster Attribute Table 的过程建立Attribute Table。然后使用Identity工具在Data View中找到 坡度等级为2与坡向类型为4 的像元 并查看对应的slp_asp中的值为12,打开slp_asp 的Attribute Table 可看到对应Value=12的记录中Count=13838 。

    习作4

    注意:Zonal Statistics工具要 输出到Personal GeoDataset 才可正常运行,如果输出到文件夹则工具运行出错。
    不仅如此,还需要将hucgd栅格Reclassify 为 0 到12 ,得到reclassified_huc。然后再以reclassified_huc,和precipgd作为Zonal Statistics工具的输入,才得到预期输出。

    习作5

    注意:Reclassify 工具要输出到Personal GeoDataset!!!
    Combine工具一直失败,可能是两个栅格区域范围有差别,暂时放弃。

    习作6

    注意:Extraction工具的输入用Reclassify之后的hucgd——reclassified_huc。

    展开全文
  • 栅格数据分析环境 地理处理——环境——处理范围/栅格分析——设置处理范围和捕捉栅格大小/处理像元大小或设置掩膜 并非所有工具都支持环境设置所有选项——在工具帮助当中可查看环境的支持类型 ...
  • 基于栅格数据空间分析数据, 栅格数据空间分析元数据,包括溪流、排水管道、土地利用、土壤适宜性数据
  • 基于栅格数据的选址,基于矢量数据的选址和基于栅格数据的选址分析比较
  • 空间数据分析 寻找你的开发商 这是与空间数据分析,栅格数据分析等有关的小事情和实践的代表
  • 栅格数据结构简单、直观,非常利于计算机操作和处理,是GIS常用的空间基础数据格式
  • 栅格数据模型、栅格数据如何表示地理实体、栅格数据与矢量数据的区别
  • GIS 栅格数据 曲率分析

    千次阅读 2019-01-16 09:13:17
    GIS 栅格数据 曲率分析
  • 栅格数据的空间分析

    2015-09-10 17:02:56
    Arcgis10的栅格数据的空间分析基本方法:栅格数据重分类、距离分析、采样点数据空间插值、栅格单元统计 、交叉面积表、 邻域分析、 栅格计算器等。
  • 第五章 栅格数据的空间分析;4 栅格数据的空间分析;4 栅格数据的空间分析;栅格数据模型空间分辨率;4 栅格数据的空间分析;1. 栅格数据的聚类分析 ;示例空间聚类;2. 栅格数据的聚合分析 ;示例空间聚合;聚类聚合分析应用...
  • 项目应用中,有时候需要通过Java组件中的插值分析将点数据生成栅格数据,本范例介绍怎样将点数据通过三种不同的差值方法(Kriging、IDW和RBF)生成栅格数据,方便后续的栅格运算等操作。
  • GIS 栅格数据 坡向分析 slope

    千次阅读 2019-01-16 09:13:09
    GIS 栅格数据 坡向分析 slope
  • GIS 栅格数据 坡度分析 aspect

    千次阅读 2019-01-16 09:13:01
    GIS 栅格数据 坡度分析 aspect
  • * 学校选址分析 ----栅格数据空间分析 实验目的 熟悉栅格数据距离制图成本距离加权数据重分类多层面合并最短路径分析等空间分析功能 实验内容 立体效果图的显示 基于栅格数据的学校选址分析 最短路径分析 加载图层 ...
  • ArcGIS栅格数据的空间分析 内附操作文档和实验数据 练习ArcGIS栅格数据的空间分析
  • 详细讲解使用arcgis进行栅格数据的空间分析
  • 栅格数据空间分析

    2013-06-25 16:45:25
    学习用的..老师教的
  • 基于栅格数据空间分析的中学选址适宜性评价,沈松雨,郭伟鹏,以徐州市中学选址为例,利用SuperMap DeskTop5.3软件的栅格数据空间分析功能,对学校选址的适宜性进行分析和评价。研究表明,学校选址�
  • 使用ArcGIS进行栅格数据的处理,全过程无需转变为矢量格式,得到同样的分析结果,文档中妇幼截图和详细的过程分析
  • GeoDa是一个设计实现栅格数据探求性空间数据分析(ESDA)的软件工具集合体的最新成果。它向用户提供一个友好的和图示的界面用以描述空间数据分析,比如自相关性统计和异常值指示等。
  • 我们接着上次的栅格数据空间分析的讲,上次说了三维晕渲图原理和正射三维影像原理,上次还没说完,现在接着讲。 表面距离、面积和体积原理—表面距离用来计算栅格表面距离,即计算在栅格数据集拟合的三维曲面上沿...
  • 使用Fragstats对栅格数据进行景观指数分析 1、打开栅格图的属性表—用记事本打开FCD格式的“分类表”—把对应的类名按顺序输入到记事本里(ps:不能出现中文)—输好后保存并且重命名要加上后缀“.pcd”(也不能...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 946
精华内容 378
关键字:

栅格数据分析