GIS-空间分析(3)

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/lling0309/article/details/102593377

一、叠置分析(叠加分析)

1.基本概念

叠置分析是将代表不同主题的各个数据层面进行叠置产生一个新的数据层面,叠置结果 综合了原来两个或多个层面要素所具有的属性。叠置分析不仅生成了新的空间关系,而且还 将输入的多个数据层的属性联系起来产生了新的属性关系。叠置分析要求被叠加的要素层面 必须是基于相同坐标系统的相同区域。

2.叠置分析类型

实际操作中,叠加分析首先应该考虑要素的类型。叠加分析包括两组操作类型。第一组使用两个多边形图层作为输入图层。第二组则使用一个多边形图层和另一个包括点要素或线要素的图层。因此,按要素类型,叠加分析分成“点与多边形的叠加”、“线与多边形的叠加”、“多边形与多边形的叠加”三种类型。为讨论方便,将可能是点、线或多边形的图层称为输入图层;而将要被叠加其他要素的多边形图层称为叠置图层。 在“点与多边形的叠置”操作中,输入图层的点要素被叠加到叠置图层上,并且被赋予叠置多边形的属性。例如,利用“点与多边形的叠置”可寻找野生动物位置与植被类型之间 的关系,如图1-36所示。

                                             

在“线与多边形叠置”操作中,输出图层含有输入图层的线要素,其中,线要素被叠置图层的多边形边界所分割,如图1-37所示,因此,输出图层的弧段数比输入图层更多。输出图层中的每个线段合并了线状图层的属性和叠置多边形的属性。查找所拟建道路的土壤数据就是“线与多边形叠置”的一个例子。输入图层是包括有拟建道路的线图层,叠置图层为土壤图层。输出图层显示为被分割的拟建道路,每个路段有与其毗邻的不同土壤数据集合。

                                             

在“多边形与多边形叠置”操作中,输出图层将输入图层和叠置图层的多边形边界组合 在一起,生成一系列新的多边形,每个新的多边形都携有两个图层的属性,并有别于毗邻多 边形的属性,如图 1-38 所示。例如,高度带与植被类型之间的关系分析就属于“多边形与 多边形叠置”。

                                            

3.叠加分析应用

1)叠加分析方法

在不同的GIS软件中,对叠加分析的叫法不同,但所有叠加方法都是基于布尔连接符的运算,比如AND、OR和XOR。下面主要介绍擦除、相交、联合、标识、更新、交集取反和空间连接七种叠加分析。

任务1:擦除分析

擦除(erase)分析是在输入数据层中去除与擦除数据层相交的部分,形成新的矢量数据层的过程。擦除要素可以为点、线和面,点擦除要素仅用于擦除输入要素中的点,线擦除要素可以用于擦除输入要素中的线和点,面擦除要素可用于擦除输入要素中的点,线和面,如图1-39所示。

                                        

1)实验数据:“/chp1/叠加分析/擦除/data”

2)实验步骤:

①在ArcToolbox中双击【分析工具】-【叠加分析】-【擦除】,打开【擦除】对话框,如图1-40所示,其参数说明见表1-19所示。

 

                                                          

②在【擦除】对话框中,输入【输入要素】、【擦除要素】数据,指定输出要素类的保存路径和名称。

③【XY容差】为可选项,在其文本框中输入容差值,并设置容差值的单位。

④单击【确定】按钮,完成擦除分析操作。
                                                                                     表1-19 【擦除】参数说明

参数

说明

数据类型

输入要素(in_features)

输入要素类或图层。

Feature Layer

擦除要素(erase_features)

用于擦除重叠输入要素的要素。

Feature Layer

输出要素类(out_feature_class)

该要素类只包含与“擦除要素”不重叠的“输入要素”。

Feature Class

XY容差(cluster_tolerance)

所有要素坐标(结点和折点)之间的最小距离以及坐标可以沿X或Y方向移动的距离。

Linear unit

实验说明:

1)将与擦除要素几何重叠的输入要素几何移除;

2)擦除要素可以为点、线或面,只要输入要素的要素类型等级与之相同或较低。面擦除要素可用于擦除输入要素中的面、线或点;线擦除要素可用于擦除输入要素中的线或点;点擦除要素仅用于擦除输入要素中的点;输入要素类的属性值将被复制到输出要素类。

任务2:相交分析

相交(intersect)分析是计算输入要素的几何交集的过程,如图1-41所示,所有图层和要素类中相叠置的要素或要素的各部分将被写入到输出要素类。

1)实验数据:“/chp1/叠加分析/相交/data”。

2)实验步骤:

①在ArcToolbox中双击【分析工具】-【叠加分析】-【相交】,打开【相交】对话框,如图1-42所示,其参数说明见表1-20所示。

                                                      

                                             

                                                                           表1-20 【相交】参数说明(续表见下页)

参数

说明

数据类型

输入要素(in_features)

输入要素类或图层列表。要素间距小于拓扑容差时,等级较低的要素将被捕捉到等级较高的要素。最高等级为一。

Value Table

输出要素类(out_feature_class)

输出要素类。

Feature Class

连接属性(join_attributes)

确定输入要素的哪些属性将传递到输出要素类。

ALL-输入要素的所有属性都将传递到输出要素类。这是默认设置。

NO_FID-除FID外,输入要素的其余属性都将传递到输出要素类。

ONLY_FID-只有输入要素的FID字段将传递到输出要素类。

String

XY容差(cluster_tolerance)

所有要素坐标(节点和折点)之间的最小距离以及坐标可以沿 X或Y方向移动的距离。

Linear unit

输出类型(output_type)

选择要查找的相交类型。

INPUT-所返回相交的几何类型与具有最低维度几何的输入要素的几何类型相同。如果所有输入都是面,则输出要素类将包含面。如果一个或多个输入是线但不包含点,则输出是线。如果一个或多个输入是点,则输出要素类将包含点。这是默认设置。

LINE-将返回线相交。仅当输入中不包含点时,此选项才有效。

POINT-将返回点相交。如果输入是线或面,则输出将是多点要素类。

String

②在【相交】对话框中,输入【输入要素】数据。

③指定输出要素类的保存路径和名称。

④【连接属性】下拉框中有三个选项:ALL、NO_FID和ONLY_FID,通过其确定输入要素的哪些属性将传递到输出要素类。

⑤【XY容差】为可选项。在其文本框中输入容差值,并设置容差值的单位。

⑥【输出类型】下拉框中有三个选项:INPUT、LINE和POINT。

⑦单击【确定】按钮,完成相交分析操作。

实验说明:

1)输入要素必须是简单要素:点、多点、线或面;输入要素不能是复杂要素,比如注记要素、尺寸要素或网络要素;

2)如果输入具有不同几何类型(即面上的线、线上的点等),则输出要素类几何类型默认与具有最低维度几何的输入要素相同。例如,如果一个或多个输入的类型为点,则默认输出为点;如果一个或多个输入为线,则默认输出为线;如果所有输入都为面,则默认输出为面;输出类型可以是具有最低维度几何或较低维度几何的输入要素类型。例如,如果所有输入都是面,则输出可以是面、线或点。如果某个输入类型为线但不包含点,则输出可以是线或点。如果任何一个输入是点,则输出类型只能是点;

3)输入要素类的属性值将被复制到输出要素类。

任务3:联合分析

联合(union)分析是计算输入要素的并集,所有的输入要素都将写入到输出要素类中。在联合分析过程中,输入要素必须是多边形。如果输入要素类中有相交部分,相交部分还会具有相交的输入要素类的所有属性,如图1-43所示。

                                           

1)实验数据:“/chp1/叠加分析/联合/data”。

2)实验步骤:

①在ArcToolbox中双击【分析工具】-【叠加分析】-【联合】,打开【联合】对话框,如图1-44所示,其参数说明见表1-21所示。

②在【联合】对话框中,输入【输入要素】数据。

③指定输出要素类的保存路径和名称。

④选择【连接属性】,并设置【XY容差】。

⑤选中【允许间隙存在】复选框,不为被面完全包围的输出区域创建要素。⑥单击【确定】按钮,完成联合分析操作。

                                                             

                                                                                        表1-21 【联合】参数说明

参数

说明

数据类型

输入要素(in_features)

输入要素类或图层列表。要素间距小于拓扑容差时,等级较低的要素将捕捉到等级较高的要素。最高等级为一。所有输入要素都必须是面。

Value Table

输出要素类(out_feature_class)

将包含结果的要素类。

Feature Class

连接属性(join_attributes)

确定将输入要素的哪些属性传递到输出要素类。

ALL-将输入要素的所有属性都传递到输出要素类。NO_FID-除 FID 外,将输入要素的其余所有属性都传递到输出要素类。

ONLY_FID-仅输入要素的 FID 字段将传递到输出要素类。

String

XY容差(cluster_tolerance)

所有要素坐标(节点和折点)之间的最小距离以及坐标可以沿X或Y方向移动的距离。

Linear unit

允许间隙存在(gaps)

间距是输出要素类中被其他面完全包围的区域。它并非无效,但最好对其进行识别以供分析之用。要在输出中找出间距,请将此选项设置为NO_GAPS,这样便会在此类区域中创建要素。要选择此类要素,可通过判定输入要素的所有FID值是否均等于-1来查询输出要素类。

GAPS-被面完全包围的输出区域不会创建要素。这是默认设置。

NO_GAPS-被面完全包围的输出区域会创建一个要素。该要素将有空属性。

Boolean

任务4:标识分析

标识(identity)分析是计算输入要素和标识要素的集合,输入要素与标识要素的重叠部分将获得标识要素的属性。输入要素可以是点、线或面,但是不能是注记要素、尺寸要素或网络要素,如图1-45所示。

                           

 

1)实验数据:“/chp1/叠加分析/标识/data”。

2)实验步骤: 

①在ArcToolbox中双击【分析工具】-【叠加分析】-【标识】,打开【标识】对话框,如图1-46所示,其参数说明见表1-22所示。

②输入【输入要素】【标识要素】数据,指定输出要素类的保存路径和名称。

③选择【连接属性】,并设置【XY的容差】。

④【保留关系】选择是否要将输入要素和标识要素之间的附加空间关系写入到输出。仅当输入要素为线而标识要素为面时,此选项才适用。

⑤单击【确定】按钮,完成标识分析操作。

                                             

                                                                                 表1-22 【标识】参数说明(续表见下页)

参数

说明

数据类型

输入要素(in_features)

输入要素类或图层。

Feature Layer

标识要素(identity_features)

标识要素类或图层。必须是面或与输入要素具有相同的几何类型的要素。

Feature Layer

输出要素类(out_feature_class)

该要素类将被创建,并且结果将写入其中。

Feature Class

连接属性(join_attributes)

确定哪些属性将传递到输出要素类中。

ALL-输入要素与标识要素的所有属性(包括 FID)都将传递到输出要素。如果未找到任何交集,则标识要素值不会传递到输出(其值将设置为空字符串或 0)并且标识要素 FID 将为 -1。这是默认设置。

NO_FID-输入要素和标识要素中,除FID以外的所有属性都将传递到输出要素。如果未找到任何交集,则标识要素值不会传递到输出(其值将设置为空字符串或 0)。

ONLY_FID -输入要素的所有属性以及标识要素的 FID 属性将传递到输出要素。如果未找到任何交集,则输出中的标识要素 FID 属性将为 -1。

String

XY容差(cluster_tolerance)

所有要素坐标(节点和折点)之间的最小距离以及坐标可以沿X或Y方向移动的距离。

Linear unit

保留关系(relationship)

确定是否要将输入要素和标识要素之间的附加空间关系写入到输出。仅当输入要素为线而标识要素为面时适用。

NO_RELATIONSHIPS-不添加任何附加空间关系。

KEEP_RELATIONSHIPS-输出线要素会包含两个附加字段LEFT_poly 和 RIGHT_poly。这些字段用于记录线要素左侧和右侧的标识要素的要素ID。

Boolean

实验说明

1)输入要素可以是点、多点、线或面。注记要素、尺寸要素或网络要素不能作为输入;

2)标识要素必须是面要素,或与输入要素的几何类型相同;

3)如果使用此工具时,将点作为输入而将面作为标识要素,那么直接落在面边界上的点将被添加到输出中两次;为每个包含该边界的面各添加一次。在此情况下,对输出运行相交工具可识别重复点,以确定要保留的点。

4)输入要素类的属性值将被复制到输出要素类。

任务5:更新分析

更新(update)分析用于计算输入要素和更新要素的几何相交,在输入要素中,与更新要素相交的部分,在输出结果中其几何外形和属性都被更新要素所更新,如图1-47所示。

                                              

1)实验数据:“/chp1/叠加分析/更新/data”。

2)实验步骤:

①在ArcToolbox中双击【分析工具】-【叠加分析】-【更新】,打开【更新】对话框,如图1-48所示,其参数说明见表1-23所示。

②输入【输入要素】、【更新要素】数据,指定输出要素类的保存路径和名称。

③选中【边框】复选框,选中-“更新要素”的外边界将保留在“输出要素类”中,这是默认选项;未选中 - “更新要素”的外边界将在插入“输入要素”之后被删除。

④设置【XY容差】值。

⑤单击【确定】按钮,完成更新分析操作。

                                             

                                                                                         表1-23 【更新】参数说明

参数

说明

数据类型

输入要素(in_features)

输入要素类或图层。几何类型必须是面。

Feature Layer

更新要素(update_features)

更新“输入要素”时使用的要素。几何类型必须是面。

Feature Layer

输出要素类(out_feature_class)

将包含结果的要素类。请勿将此设置为与“输入要素”相同的要素类。

Feature Class

边框(keep_borders)

指定是否保留更新面要素的边界。

Boolean

XY容差(cluster_tolerance)

所有要素坐标(节点和折点)之间的最小距离以及坐标可以沿 X 和/或 Y 方向移动的距离。

Linear unit

实验说明

1)输入要素类型必须是面;

2)更新要素必须是面;

3)输入要素类与更新要素类的字段名称必须保持一致。如果更新要素类缺少输入要素类中的一个(或多个)字段,则将从输出要素类中移除缺失字段的输入要素类字段值。

4)如果在对话框中未选中边框参数,则沿着更新要素外边缘的面边界将被删除。即使删除某些更新面的外边界,与输入要素重叠的更新要素的属性也会被指定给输出要素类中的面。

5)输入要素类的属性值将被复制到输出要素类。

任务6:交集取反分析

交集取反(symmetrical difference)分析是将输入要素和更新要素不重叠的部分输出到新要素中,如图1-49所示。

                                            

1)实验数据:“/chp1/叠加分析/交集取反/data”。

2)实验步骤:

①在ArcToolbox中双击【分析工具】-【叠加分析】-【交集取反】,打开【交集取反】对话框,如图1-50所示,其参数说明见表1-24所示。②输入【输入要素】【更新要素】数据,指定输出要素类的保存路径和名称。

③在【连接属性】和【XY容差】中输入连接属性和XY容差。

④单击【确定】按钮,完成交集取反分析操作。

                                                  

                                                                                     表1-24 【交集取反】参数说明

参数

说明

数据类型

输入要素(in_features)

输入要素类或图层。

Feature Layer

更新要素(update_features)

更新要素类或图层。其几何类型必须与输入要素类或图层的几何类型相同。

Feature Layer

输出要素类(out_feature_class)

将要写入结果的要素类。

Feature Class

连接属性(keep_borders)

确定哪些属性要传递到输出要素类。

ALL-输入要素和更新要素的所有属性都将传递到输出。这是默认设置。

NO_FID-输入要素和更新要素中除FID以外的所有属性都将传递到输出。

ONLY_FID-仅将输入要素和更新要素中的FID属性传递到输出。

String

XY容差(cluster_tolerance)

所有要素坐标(节点和折点)之间的最小距离以及坐标可以沿 X 和/或 Y 方向移动的距离。

Linear unit

实验说明

输入和更新要素类或要素图层必须具有相同的几何类型;输入要素类的属性值将被复制到输出要素类。

任务7:空间连接

空间连接(Spatial join)是基于两个要素类中要素之间的空间关系将属性从一个要素类传递到另一个要素类的过程。也就是说,两个图层之间根据图层中要素的相对位置关系建立连接,其结果为将一个图层的属性表添加到另一个图层中。

空间连接工具需要输入目标要素类和连接要素类。以目标要素类为基准,根据目标要素和连接要素之间指定的空间关系,将连接要素类中的属性信息追加到目标要素类中。例如,如果将某个点要素类指定为目标要素,将某个面要素类指定为连接要素,并选择“WITHIN”作为匹配选项,则每个输出点要素除包含其原始属性外,还将包含其所在面的属性。

1)实验数据:“/chp1/叠加分析/空间连接/data”。

2)实验步骤:

①在ArcToolbox中双击【分析工具】-【叠加分析】-【空间连接】,打开【空间连接】对话框,如图1-51所示,其参数说明见表1-25所示。

                                       

 

②输入【目标要素】、【连接要素】数据,指定输出要素类的保存路径和名称。

③在【连接操作】下拉框中选择连接操作。

④右击“Shape_Area_1”字段,选择【合并规则】-【总和】。

⑤在【匹配选项】中定义匹配的条件。

⑥其他选项默认,单击【确定】按钮,完成空间连接操作。

                                                                         表1-25 【空间连接】参数说明(续表见下页)

参数

说明

数据类型

目标要素(target_features)

目标要素的属性和被连接要素的属性被传递到输出要素类。但是,可以在字段映射参数中定义属性的子集。

Feature Layer

连接要素(join_features)

连接要素的属性将被连接到目标要素的属性中。

Feature Layer

输出要素类(out_feature_class)

包含目标要素和连接要素的属性的新要素类。默认情况下,目标要素的所有属性和被连接要素的属性都被写入到输出。但是,可通过字段映射参数来控制要传递的属性集。

Feature Class

连接操作(join_operation)

在具有相同空间关系的目标要素和连接要素之间存在一对多关系时,确定输出要素类中目标要素和连接要素之间的连接方式。

JOIN_ONE_TO_ONE-如果找到与同一目标要素存在相同空间关系的多个连接要素,将使用字段映射合并规则对多个连接要素中的属性进行聚合。

JOIN_ONE_TO_MANY-如果找到多个与同一目标要素存在相同空间关系的连接要素,输出要素类将包含目标要素的多个副本(记录)。

String

保留所有连接操作要素(join_type)

确定是在输出要素类中保留所有目标要素,还是仅保留那些与连接要素有指定空间关系的目标要素。

KEEP_ALL-在输出中保留所有目标要素。

KEEP_COMMON-在输出要素类中仅保留那些与连接要素有指定空间关系的目标要素。

Boolean

连接要素的字段映射(field_mapping)

控制输出要素类中要包含的属性字段。初始列表包含目标要素和连接要素中的所有字段。可以添加、删除、重命名字段或更改字段的属性。目标要素中的所选字段按原样传递,但连接要素中的所选字段可能会根据合并规则进行聚合。

Field Mappings

匹配选项(match_option)

定义用于匹配行的条件。匹配选项包括:

INTERSECT-如果连接要素与目标要素相交,将匹配连接要素中相交的要素。这是默认设置。

INTERSECT_3D-如果连接要素中的要素与三维空间(x、y 和 z)中的某一目标要素相交,则将匹配这些要素。

WITHIN_A_DISTANCE-如果连接要素在目标要素的指定距离之内,将匹配处于该距离内的要素。WITHIN_A_DISTANCE_3D-如果在三维空间内,如果连接要素中的要素与目标要素间的距离在指定范围内,则匹配这些要素。

包含-如果目标要素中包含连接要素中的要素,将匹配连接要素中被包含的要素。目标要素必须是面或折线。对于此选项,目标要素不能为点,且仅当目标要素为面时连接要素才能为面。

COMPLETELY_CONTAINS-如果目标要素完全包含连接要素中的要素,将匹配连接要素中被包含的要素。面可以完全包含任意要素。点不能完全包含任何要素,甚

至不能包含点。折线只能完全包含折线和点。

CONTAINS_CLEMENTINI-如果连接要素完全位于目标要素的边界上(没有任何一部分完全位于里面或外面),则不会匹配要素。CLEMENTINI 将边界面定义为用来分隔内部和外部的线,将线的边界定义为其端点,点的边界始终为空。

WITHIN-如果目标要素位于连接要素内,将匹配连接要素中包含目标要素的要素。它与 CONTAINS 相反。对于此选项,只有当连接要素也为面时目标要素才可为面。只有当点为目标要素时连接要素才能为点。

COMPLETELY_WITHIN-如果目标要素完全在连接要素范围内,则匹配连接要素中完全包含目标要素的要素。这与 COMPLETELY_CONTAINS相反。

WITHIN_CLEMENTINI-结果与 WITHIN 相同,但下述情况例外:如果连接要素中的全部要素均位于目标要素的边界上,则不会匹配要素。CLEMENTINI将边界面定义为用来分隔内部和外部的线,将线的边界定义为其端点,点的边界始终为空。

ARE_IDENTICAL_TO-如果连接要素与目标要素相同,将匹配连接要素中相同的要素。连接要素和目标要素必须具有相同的形状类型:点到点、线到线和面到面。

BOUNDARY_TOUCHES-如果连接要素中具有边界与目标要素相接的要素,将匹配这些要素。连接要素和目标要素必须是线或面。此外,连接要素中的要素必须在目标面的外部或完全在其内部。

SHARE_A_LINE_SEGMENT_WITH-如果连接要素中具有与目标要素共线的要素,将匹配这些要素。连接要素和目标要素必须是线或面。

CROSSED_BY_THE_OUTLINE_OF-如果连接要素中具有轮廓与目标要素交叉的要素,则将匹配这些要素。连接要素和目标要素必须是线或面。如果将面用于连接或目标要素,则会使用面的边界(线)。将匹配在某一点交叉的线,而不是共线的线。

HAVE_THEIR_CENTER_IN-如果目标要素的中心位于连接要素内,将匹配这些要素。要素中心的计算方式如下:对于面和多点,将使用几何的质心;对于线输入,则会使用几何的中点。在搜索半径参数中指定距离。

CLOSEST-匹配连接要素中与目标要素最近的要素。

String

搜索半径(search_radius)

如果连接要素与目标要素的距离在此范围内,则有可能进行空间连接。仅当指定了空间关系(匹配选项) INTERSECT、WITHIN_A_DISTANCE、HAVE_THEIR_CENTER_IN 或 CLOSEST 时,搜索半径才有效。空间关系为 INTERSECT 时使用 100 米作为搜索半径表示:如果连接要素位于目标要素周围100 米范围内,则认为该连接要素匹配。

Linear unit

距离字段名(distance_field_name)

添加到输出要素类中的字段的名称,其中包含目标要素和最近连接要素之间的距离。仅当将空间关系(匹配选项)指定为 CLOSEST 时,此选项才有效。如果在搜索半径内没有任何匹配的要素,则此字段的值为 -1。如果未指定字段名称,将不会向输出要素类中添加该字段。

String

实验说明

1)通过在连接要素的字段映射参数中可以控制输出要素类属性,可以定义将写入到输出中的属性。

2)始终会向输出要素类添加两个新字段:Join_Count和TARGET_FID。Join_Count指示与每个目标要素 (TARGET_FID) 匹配的连接要素数量;

3)在连接操作参数中指定 JOIN_ONE_TO_MANY 时,将另一个新的字段JOIN_FID添加到输出;当连接操作参数为 JOIN_ONE_TO_MANY时,输出要素类中的每个目标要素都可以包含一个或多个行。

4)JOIN_FID字段的值为-1,表示没有任何要素符合使用目标要素指定的空间关系;

5)连接要素的字段映射参数中指定的合并规则仅适用于连接要素中的属性,且仅适用于多个要素与目标要素匹配 (Join_Count > 1) 的情况。

任务8

已知数据

1)研究区域的遥感影像数据

2)道路数据

3)街道数据

要求

(1) 请将每栋楼房所在的街道信息赋到楼房的属性表中。

(2) 靠近道路的楼房会受到噪音影响,其中噪音影响范围如下表所示,请在楼房的属性表中添加受哪条道路影响。

 

 

猜你喜欢

转载自blog.csdn.net/lling0309/article/details/102593377