1、2014-4-11基于栅格数据的空间分析是GIS空间分析的基础,也是ArcGIS的空间分析模块的核心内容。栅格数据分析是基于栅格像元和栅格的分析,较矢量数据更为简单。ArcGIS 栅格数据空间分析模块(Spatial Analyst)提供了有效工具集,方便执行各种栅格数据空间分析操作,解决空间问题。计算工具:地图代数:数学函数计算:叠加分析专业分析工具:距离制图:密度制图;差值分析;邻域和分类区统计衍生计算:概化分析、重分类、表面分析更专业模块:水文和地下水分析;太阳辐射分析;影像分类;多元统计。栅格是一种特殊的影像格式,一般影像格式有JPG,BMP,TIF,PNG等,在ArcGIS中一般表现
2、为Grid,.img,.TIF,具体的应用为DEM,DOM等,最直观表现栅格为单个波段RasterBand,影像分析也是基于单个波段RasterBand,所以在ArcGIS影像分析也成栅格分析。 简单说是简单说是栅格是单波段,影像是多个波段栅格是单波段,影像是多个波段。 任何栅格分析(处理)都是信息有损的处理,任何栅格分析(处理)都是信息有损的处理,原始数据一定要保存(保留)。原始数据一定要保存(保留)。定义格格单元的大小时,我们需要平衡信息的精确性和数据量之间的矛盾。栅格单元代表的尺度越小CellSIZECellSIZE,表达的信息就越精确。栅格单元代表的尺度越大,存储数据所需要的空间就更少
3、,同时,表达的信息也就不精确。在在ArcGISArcGIS中改变中改变CellSIZECellSIZE,使用,使用Resample Resample 重采样重采样ResampleResample:可以处理单波段,也可以:可以处理单波段,也可以处理多波段处理多波段Page 6Extract by Mask可以导出每个波段,不要输出扩展名Composite Bands在ArcGIS中,使用栅格数据进行空间分析前,先要设置分析环境。环境的设置主要包括设置工作路径栅格单元大小的设定分析区域的选定坐标基准的配置管理过程文件加载空间分析模块1. 设置工作路径 缺省情况下分析结果将自动保存在操作系统的默认路
4、径下。也可以通过栅格空间分析模块中的Option选项的设置,可以指定新的所有分析结果的默认存放位置。设置工作路径2. 设置栅格大小 栅格大小指分析过程中系统默认的栅格数据的栅格单元大小(Cell Size),又称为分析解析度。栅格数据的空间分析就是在每一个栅格单元的基础上进行的。如果单元过大则分析结果精确度降低,如果单元过小则会产生大量的数据,且计算速度降低。故而需要选择合适的单元大小。 设置栅格大小3. 设置分析区域 (1)利用坐标设置分析区域 通过设定矩形四边坐标值,定义一个用户需要的矩形计算范围。 利用坐标设置分析区域2)使用掩码设置分析区域 分析掩码标识分析过程中需要考虑到的分析单元即
5、分析范围。首先预设分析掩码,并对不需要进行分析的单元赋空值,然后进行分析。 利用掩码设置分析区域4. 设置坐标系统 在ArcGIS的空间分析中,可以通过两种方式设定分析结果的坐标系统配准方式: (1)分析结果以输入栅格的坐标系统来存储(如果存在多个输入栅格,则将以第一个输入栅格坐标系统存储); (2)分析结果将以“Active”数据的坐标系统来存储。 设置坐标系统5. 过程文件管理 (1) 在函数对话框中输入结果全名; (2)通过目录表永久保存计算结果; 选择需要永久保存的数据层,点击鼠标右键,选择Make Permanent命令,在弹出的对话框中设置目录路径并为结果指定名称。 (3)通过保存
6、地图文档永久保存计算结果。 在文件(File)菜单中选择保存(Save)或另存为(Save As)命令。在弹出的对话框中指定存放路径和文件名称,并在保存类型下拉箭头中选择ArcMap Documents(*.mxd)。Nodata以为数据缺失0表示有效像元值ArcGIS Spatial Analyst 扩展模块中,基于像元的可用分析运算可分成五类:作用于单个像元的运算(局部 (local) 运算)作用于邻域内的所有像元的运算(焦点 (focal) 运算)邻域运算作用于区域内的所有像元的运算(分区 (zonal) 运算)作用于栅格内所有像元的运算(全局 (global) 运算)欧氏距离全局欧氏距
7、离全局 (global) (global) 运算运算执行特定应用的运算(例如,水文分析运算)由单个或多个输入栅格生成一个新的栅格,新栅格的像元值可以由输入与输出栅格的关系函数计算得到,或通过分类表对其赋值。局部 (local) 运算(或逐像元函数)计算栅格输出数据集,其中每个位置(像元)的输出值取决于与一个或多个栅格数据集上的该位置相关联的值。也就是说,单个像元的值(不考虑相邻像元的值)对输出值有直接的影响。可将逐像元运算应用到单个栅格数据集或多个栅格数据集。算数函数:abs, int, float,三角函数: Sin(正弦函数)、Cos(余弦函数)、Tan(正切函数)、Asin(反正弦函数)
8、、Acos(反余弦函数)、Atan(反正切函数)。指数函数:exp, exp2 , exp10对数函数:log,log2, log10幂函数:Sqrt (平方根)、Sqr (平方)、Pow (幂)。取整计算Input rasteroutput raster=no data 重分类即基于原有数值,对原有数值重新进行分类整理从而得到一组新值并输出。根据用户需要的不同,重分类一般包括四种基本分类形式:数值更新(用一组新值取代原来值)、类别合并(将原值重新组合分类)、 同标准分类(以一种分类体系对原始值进行分类),以及特定值重分类(为指定值设置空值)。图8.40 重分类对话框1. 数值更新 事物总是处
9、于不断发展变化中的,地理现象更是如此,所以为了反映事物的实时真实属性,需要不断地去用新值代替旧值。例如,气象信息的实时更新,土地利用类型的变更等。 数值更新示意图2. 类别合并 将一些具有某种共性的事物合并为一类。例如可以将商场,超市,餐馆等同归并为服务场所,也可将麦地,水稻地,菜地等同归并为耕地。 类别合并过程示意图3. 同标准分类 将数据用一种等级体系来进行分类,或将多个栅格数据用统一的等级体系重新归类。 同标准分类过程示意图4. 特定值重分类 对栅格数据中的某些值设置空值来限制栅格计算。如分析掩码的创建。 特定值重分类过程示意图涉及到图层的合成、地图叠置等操作,可以用多个栅格图层进行运算
10、,相当于矢量地图的叠加操作。 栅格计算器Raster Calculator是栅格数据空间分析中数据处理和分析中最为常用的方法,应用非常广泛,能够解决各种类型的问题,尤其重要的是:建立复杂的应用数学模型的基本模块。 ArcGIS 提供了非常友好的图形化栅格计算器,利用栅格计算器,不仅可以方便的完成基于数学运算符的栅格运算,以及基于数学函数的栅格运算,而且它还支持直接调用ArcGIS 自带的栅格数据空间分析函数,并且可以方便的实现多条语句的同时输入和运行。 栅格计算器由四部分组成,左上部Layers选择框为当前Arcmap试图中已加载的所有栅格数据层名列表,双击任一个数据层名,该数据层名便可自动添
11、加到左下部的公式编辑器中,中间部位上部是常用的算术运算符、010、小数点.、关系和逻辑运算符面板,单击便可自动添加按钮内容到公式编辑器中。右边可伸缩区域为常用的数学运算函数面板,同样单击便可自动添加按钮内容到公式编辑器中。 栅格计算器(1)简单数学计算 在公式编辑器中先输入计算结果名称,再输入等号(所有符号两边需要加一个空格),然后在Layers栏中双击要用来计算的图层,则选择的图层将会进入公式编辑器参与运算。其中“-”和“”为单目运算符,运算符前可以不加内容,而只在运算符后加参与计算的对象,如a = - slope等。在公式编辑器如果引用Layers选择框的数据层,数据层名必须用 括起来。(
12、2)数学函数运算 数学函数运算需要注意的是它输入时需要先点击函数按钮,然后在函数后面的括号内加入计算对象。应该注意一点,三角函数以弧度为其默认计算单位。 (3)栅格数据空间分析函数运算 数学栅格数据空间分析函数没有直接出现在栅格计算器面板中,因此需要计算者自己手动输入。需要时引用它们时,首先必须查阅有关文档,查清楚它们的函数全名、参数、引用的语法规则等。然后在栅格计算器输入函数全名,并输入一对小括号,再在小括号中输入相关参数或计算对象。(4)多语句的编辑 ArcGIS栅格计算器多表达式同时输入,并且先输入的表达式运算结果可以直接被后续语句引用,如: d = DEM*100 e = d = 25
13、00 一个表达式必须在一行内输入完毕,中间不能回行。此外,如果后输入的函数需要引用前面表达式计算结果,前面表达式必须是一个完整的数学表达式,如“d = DEM*100”,等号左边为输出数据文件名,右边为计算式。此外,引用先前表达式的输出对象时,直接引用输出对象名称,对象名称不需要用中括号括起来,如“e = d = 2500”中“d”。Page 32注意事项:1.1.图层名称前后加图层名称前后加 2.2.运算符前后加空格运算符前后加空格3.3.通过通过name=name=表达式表达式 可以修改输出栅格图可以修改输出栅格图层名称层名称4.4.一次可以输出多个结果,以回车作为标一次可以输出多个结果,
14、以回车作为标志,上行的输出结果,可以直接后面的志,上行的输出结果,可以直接后面的使用使用5.5.一行内容很长,使用一行内容很长,使用“” “” 放在上一行放在上一行行尾作为续行标志行尾作为续行标志涉及一个焦点像元和一组环绕像元,环绕像元是按照其相对于焦点像元的距离和方向性关系来选定的。3*3矩形 平均值邻域计算焦点 (focal) 运算(或邻域运算)会生成一个输出栅格数据集,其中每个像元位置的输出值取决于某个像元的输入值及其周围指定邻域中的像元值。因为输入中的每个像元都会得到处理,所以邻域本质上是一个随像元平移的移动窗口。邻域的结构(大小和形状)具体确定待处理像元周围的哪些像元将应用于每个输出
15、值的计算。最典型的邻域类型是 3 3 像元,包括待处理的像元和最邻近的八个像元。 邻域统计计算过程中,对于邻域的设置有不同的设置方法,常用的有四种邻域分析窗口 邻域分析窗口类型 邻域统计的计算是以待计算栅格为中心,向其周围扩展一定范围,基于这些扩展栅格数据进行统计函数运算,从而得到此栅格邻域范围内的数据统计值。邻域统计通过窗口分析获得指定邻域的数据统计信息。如右图红色线范围就是一个3X3邻域统计分析窗口。 邻域统计邻域统计方法:Minimum:找出在邻域的单元上出现最小的数值;Maximum:找在邻域的单元上出现最大的数值;Range:在邻域的单元上数值的范围;Sum:计算邻域的单元内出现数值
16、的和;Mean:计算邻域的单元内出现数值的平均数;Standard Deviation:计算邻域的单元内出现数值的标准差;Variety:找出邻域的单元内不同数值的个数;Majority:统计邻域的单元内出现频率最高的数值;Minority:统计邻域的单元内出现频率最低的数值;Median:计算邻域的单元内出现数值的中值。 邻域统计对话框 分区运算的输出栅格数据集中每个像元的输出值取决于其自身的像元值以及制图区域内所有与其相关联的像元的值。分区 (zonal) 运算与邻域运算相似,不同点在于分区 (zonal) 运算中的邻域是区域本身的结构,而非指定的邻域形状。一个区域可以是任意形状和大小,而
17、且各部分之间可以离散分布。区域可以定义为栅格数据或要素数据。对于栅格数据,区域就是值相同的所有像元。对于要素数据,区域就是属性值相同(例如,LandClass = 4)的所有要素。用于处理相同值或者相似要素的像元分组。连续分区包含的像元是空间上相连的非连续分区包含像元的分隔区全局 (global) 运算(或逐栅格运算)会计算输出栅格数据集,其中每个像元位置处的输出值都可能取决于各输入栅格数据集组合而成的所有像元。全局 (global) 运算有两种主要类别:欧氏距离和加权距离。ArcGIS中,主要可以通过如下的几种方式进行距离分析:1) 欧氏距离分析2) 成本加权距离分析3) 用于垂直移动限制和
18、水平移动限制的成本加权距离分析4) 获取最短路径使用ArcGIS空间分析扩展实现距离分析,最主要的是欧氏距离分析和成本加权距离分析两类工具。欧氏距离工具测量每个像元距离最近源的直线直线距离(像元中心至像元中心的距离)。欧氏距离(欧氏距离(Euclidean DiatanceEuclidean Diatance) 给出栅格中每个像元到最近源的距离。用途示例:到最近城镇的距离是多少?欧氏方向(欧氏方向(Euclidean DirectionEuclidean Direction)给出每个像元到最近源的方向。用途示例:到最近城镇的方向是什么?欧氏分配(欧氏分配(Euclidean Allocatio
19、nEuclidean Allocation) 根据最大邻近性识别要分配给源的像元。用途示例:最近的城镇是什么?1、距离量测基础(1) 源 源即距离分析中的目标或目的地。如学校,商场,水井,道路等。表现在GIS数据特征上是一些离散的点、线、面要素。要素可以邻接,但属性必须不同。 数据方面,既可以是栅格数据,也可以是矢量数据。但注意:如果数据选用了栅格数据,数据中必须仅包含表示源的像元,其他像元需要是Nodata。如果选用矢量,在执行工具之时,内部会将其先转成栅格。 源分布图(2)欧氏距离算法简单理解为:工具会求得每个像元至每个源的距离,然后取得每个像元至每个源的最短距离以输出。其中,欧氏距离是像
20、元中心与源像元的中心的直线距离。计算源像元中心与每个周围像元中心之间的欧氏距离。真实欧氏距离是在每个距离工具中计算的。从概念上讲,欧式算法的原理如下:对于每个像元,通过用x_max和y_max作为三角形的两条边来计算斜边的方法,确定与每个源像元之间的距离。这种计算方法得出的是真实欧氏距离,而不是像元距离。与源之间的最短距离将会被确定,如果它小于指定的最大距离,则将该值赋给输出栅格上的像元位置。帮助:欧氏距离栅格的输出值是浮点距离值。如果像元与两个或更多源之间的距离相等,则将该像元分配给扫描过程中遇到的第一个源。您无法控制该扫描过程。实际的算法使用两次顺序扫描过程计算信息。此过程可使工具的速度与
21、源像元的数目、源像元的分布以及指定的最大距离无关。影响工具执行速度的唯一因素是栅格的大小。计算时间与“分析”窗口中的像元数成线性比例。欧氏距离输出栅格包含每个像元与最近源之间的测定距离。距离以栅格的投影单位(如英尺或米)沿直线测量(欧氏距离),从像元中心到像元中心进行计算。欧氏距离工具经常充当用于各种应用的独立工具,例如查找最近的可提供紧急直升机救护的医院。此外,在创建适宜性地图和需要用于表示与某一对象之间距离的数据时,也可使用此工具。下例识别了与每个城镇之间的距离。这种信息可能对于规划徒步旅行极其有用。您可能希望停留在城镇的某一距离范围内以防出现紧急情况,或者希望知道您必须走多远才能获得补给
22、。欧氏方向输出栅格包含每个像元与最近源之间的方位角方向。欧氏方向将每个像元以度为单位的方向分配给距其最近的源。使用 360 度圆或罗盘,刻度 360 指北,刻度 1 指东;其余值顺时针增加。值 0 将会留供源像元使用。下例中找出了每个位置与最近城镇之间的方向。将受伤的徒步旅行者送往最近城镇进行治疗时,这可为紧急救护直升机提供有用信息。欧式分配输出栅格中的每个像元的赋值都是距其最近源的值(通过欧氏距离算法确定)。在一次分配中的每个像元都接收它将被分配到的区域的值。源是指具有相同值或属于同一区域的任意像元或像元集。如果区域处于不相连状态,则分配给该区域的像元的赋值为与最近区域部分之间的距离。输出栅
23、格上所有非源像元的值均会包含已赋给源栅格中的像元的相同值,或包含与派生自值栅格的每个源位置相关联的值。使用此工具可将空间分配给对象,例如识别可接受多家商店服务的顾客。下例中,欧式分配工具识别了距每个像元最近的城镇。如果要从某个遥远的位置前往最近的城镇,这可能是有价值的信息。欧氏距离的局限性欧氏距离的局限性欧氏距离工具根据欧氏距离(直线距离)为您提供信息。有时可能无法沿直线前往某一特定位置;可能不得不避开河流或陡坡等障碍。在这种情况下,应考虑使用成本距离工具获得更现实的结果。直线距离和分配函数:从要素创建缓冲区,给离散源分配资源成本加权距离和分配函数:为行进添加了阻抗因素和权重最短距离:查找两点
24、间的最低成本路径,为行程寻找“走廊通道”2)成本距离加权函数 成本距离加权函数用其它函数因子修正直线距离,这些函数因子即为单元成本。通过成本距离加权功能可以计算出每个栅格到距离最近、成本最低源的最少累加成本。这里成本的意义非常广泛,它可以是金钱、时间或偏好。直线距离功能就是成本距离加权功能的一个特例,在直线距离功能中成本就是距离。成本距离加权依据每个格网点到最近源的成本,计算从每个格网点到其最近源的累加通行成本。 3)方向函数 距离方向函数表示了从每一单元出发,沿着最低累计成本路径到达最近源的路线方向。图( a )为距离方向编码示意,0表示当前格网,18分别表示不同方向。图( b )从方向数据
25、中识别的从每一单元出发,沿着最低累计成本路径到达最近源的路线图。 距离方向编码 4)成本 成本即到达目标、目的地的花费,包括金钱、时间、人们的喜好等等。影响成本的因素可以只有一个,也可以有多个,如学校的选址,不仅要考虑位置的适宜性,还要考虑土地利用现状、交通是否便捷,等等。成本栅格数据记录了通过每一单元的通行成本。成本分配加权函数通过计算累加成本来找寻最近源。 成本数据的获取一般是基于重分类功能来实现的通行成本的计算。一般将通行成本按其大小分类,再对每一类别赋予一定的量值,成本高的量值小,成本低的量值大。成本数据是一个单独的数据,但有时会遇到需要考虑多个成本,如需要考虑时间和空间通达性两种成本
26、,此时需要对各自分类好的时间和空间通达性两种成本,根据影响百分比对其数据集赋权重,让它们分别乘以各自百分比然后相加,就生成了成本栅格数据。2. 直线距离 直线距离功能计算了每个栅格与最近源之间的欧氏距离,并按距离远近分级。 直线方向数据 直线距离函数对话框 直线距离数据 直线分配数据3. 区域分配 依据最近距离将所有栅格单元分配给离其最近的源,并通过分配函数给其赋予源的值。 区域分配对话框 区域分配结示意图4. 成本距离加权 成本距离加权功能计算出每个栅格到距离最近、成本最低源的最少累加成本,同时生成另外两个相关输出:基于成本的方向数据和分配数据。成本数据表示每一个单元到它最近源的最小累积成本
27、;方向数据表示从每一单元出发,沿着最低累计成本路径到达最近源的路线方向;分配数据通过对整个区域的划分表示了每个栅格所属的最近源。 成本距离加权函数对话框A 成本方向数据B 区域分配数据C 成本累计数据 成本距离加权计算结果示意5. 最短路径 最短路径功能是来计算并显示从目标点到源的最短路径或最小成本路径。 最短路径对话框 最短路径示意图13.6.1 栅格数据管理Clip剪取可以通过使用矩形框来提取输入栅格的部分,生成一个新的栅格Mosaic镶嵌可以将多个输入栅格拼接成一个栅格。ArcGIS允许用户目标栅格必须是一个现有的栅格数据集。该数据集可以是空栅格数据集,也可以是已包含数据的栅格数据集。镶
28、嵌操作在两个或多个相邻栅格数据集需要合并为一个实体时非常有用。某些镶嵌方法有助于减小叠置栅格边界上的突变。镶嵌的叠置区域可采用多种方式处理 - 例如,您可以对该工具进行设置,以仅保留第一个栅格数据集的数据,也可以混合叠置像元值。另外,如果栅格数据集使用色彩映射表,还有多个用于确定如何处理此表的选项供您选择。例如,可以保留用于镶嵌的最后一个栅格数据集的色彩映射表。“目标”图层被视为“输入栅格”列表中的第一个栅格。对于镶嵌离散数据,镶嵌运算符镶嵌运算符的“第一个值”、“最小值”和“最大值”选项会提供最有意义的结果。镶嵌运算符镶嵌运算符的“混合”和“平均值”选项最适合连续数据。尽可能使用最后一个镶嵌
29、运算符镶嵌运算符,将这些栅格数据集镶嵌到文件地理数据库或 ArcSDE 地理数据库中的现有栅格数据集内;这是目前为止最有效的镶嵌方式。像素类型将与目标栅格数据集相同。对于基于文件的栅格和个人地理数据库栅格,为了忽略背景值,忽略忽略背景值背景值必须设置为与NoDataNoData相同的值。文件地理数据库栅格和 ArcSDE 栅格无需经过此额外步骤即可忽略背景值。如果使用包含色彩映射表的栅格数据集进行镶嵌,应特别注意选择要镶嵌的各栅格数据集的色彩映射表之间的差异。即使栅格数据集具有不同的色彩映射表,您仍可使用“镶嵌”工具;但必须选择正确的色彩映射模式。如果选择了错误的色彩映射模式,则可能会返回意外的输出结果。色彩匹配方法色彩匹配方法可用于选择镶嵌数据集的色彩匹配算法。对于不同分辨率的浮点型输入栅格数据集或像元不对齐的情况,建议在运行镶嵌之前,使用双线性插值法或三次卷积插值法对所有数据进行重采样;否则,镶嵌将会使用最邻近重采样法自动对栅格数据集进行重采样(该方法不适用于连续数据类型)。“镶嵌”工具不使用输出范围,因为该工具往往用于创建超大型栅格数据集,而输出范围设置可能会意外裁剪您的数据。如果的确需要调整输出范围,则可使用裁剪工具完成此操作。从一个现有的栅格提取数据生成新的栅格或者一个字段。