搜索
您的当前位置:首页正文

ARCGIS教程第五章 相互位置查询、空间连接

来源:知库网
第五章 相互位置查询、空间连接

1 相邻查询 1.1

点状图层和线状图层的相邻选择查询

打开地图文档\\gis_ex09\\ex05\\ex05.mxd,激活 data frame1,显示出二个图层:点状图层“村庄”、线状图层“公路”(见图 5-1)。双击 data frame1,调出 Data Frame Properties 对话框,选 General 标签,将 Map Units(地图单位)改成 Kilometers(千 米),显示单位(Display Units)也设为 Kilometers(千米),按“确定”键退出。 选择菜单 Selection / Select By Location…,调出位置选择对话框:

图 5-1 data frame1 的显示

I want to:Select features from 下拉选择,进行要素选择操作 The following layers:√ 村庄 勾选“村庄”,在该图层中选择要素 That: are within a distance of 下拉选择,在一定距离内选择

The features in this layer:公路 下拉选择,用“公路”图层作为距离参照

将上述操作合并起来意思是:I want to select features from the layer“村庄”that are within a distance of the layer“公路”,中文可解释成:从“村庄”里选要素,他 们离开“公路”在一定距离之内。为此还要定距离:

√ Apply a buffer to the features 公路 勾选,要产生公路的邻近范围

of:0.5 Kilometers 键盘输入距离值,下拉选择距离单位(千米)

图 5-2 离开公路 0.5 千米范围内的村庄

1

上述操作的意思是邻近公路的范围是 0.5 千米,按 Apply 键继续。离开公路0.5 公里范围内的村庄全部选出,这些点要素进入选择集,改变了显示颜色(见图5-2),按 Close 键,关闭选择条件对话框。用鼠标右键点击图层“村庄”,选择Open Attribute Table,打开“Attribute of 村庄”,可以看到 37 条记录中,18 条记录进入了选择集,改变了颜色,即 37 个村庄中,有 18 个离开公路在 0.5 千米之内。

1.2 面状图层的相邻选择查询

激活 data frame2,显示出二个图层:面状图层“地块”、线状图层“供水管”。 双击 data frame2,调出 Data Frame Properties 对话框,选择 General 标签,将 Map Units(地图单位)改成 Meters(米),将显示单位(Display Units)也设为 Meters(米),按“确定”键退出。选用菜单 Selection / Select By Attributes…,出现 Select By Attributes(条件组合查询)对话框:

Layer: 地块 Method:Create a new selection

利用用鼠标在文本框中输入查询条件 “LANDUSE” Like „M‟(单双引号均是英文字符),如果选择了字段名 LANDUSE 后,Unique Values: 提示框内没有提示 内容,可点击下部按钮 Get Unique Values。点击按钮 Apply,符合条件的 6 个多 边形(土地使用为工业)都选出,进入选择集,改变颜色,点击按钮 Close,关 闭条件组合查询对话框。选用菜单 Selection / Select By Location…,调出 Select By Location 对话框: I want to:Select features from 表示选择要素

The following layers:√ 地块 仅勾选“地块”,在该图层中选择要素 That:are within a distance of 在一定距离内选要素 The features in this layer:地块 图层“地块”的要素为参照

√ Apply a buffer to the feature 地块 勾选,产生离开地块的邻近区 of:100 Meters 输入距离值,下拉选择距离单位(米)

上述操作和前一节选择离开公路的村庄相似,区别是距离参照图层和选择要素的图层是同一个,点击 Apply 按钮,离开工业用地不超过 100 米的地块都进入 选择集,按 Close 键关闭对话框。在 data frame2 窗口中打开要素属性表“Attribute of 地块”,可以看出从 39 个地块中选出了 25 个,属性表窗口的底部,有 Records (25 out of 39 Selected.)提示,他们离工业用地在 100 米之内(包括工业用地本 身,见图 5-3)。

图 5-3 离开工业用地 100 米范围内的有关地块

2 包含查询

激活 data frame3。显示出两个图层:点状图层“学生”,面状图层“乡”(见图 5-4)。点击图层“乡”, 选用菜单 Selection / Select By Attributes…,出现 Select By Attributes 对话框:

2

图 5-4 data frame4 显示

Layer:乡 Method:Create a new selection

利用鼠标在文本框中输入: “NAME” Like „李村‟(借助 Unique Values),点击按钮 Apply,符合条件的多边形一个,改变颜色。点击按钮 Close,关闭条件组合查询对话框。

点击图层“学生”,选用菜单 Selection / Select By Location,调出 按位置选择要素的对话框: I want to:Select features from 下拉选择,进行要素选择操作 The following layers:√ 学生 勾选,在图层“学生”中选择要素 That: are completely within 下拉选择,完全包含选择

The features in this layer:乡 下拉选择,图层“乡”作为包含的参照 √ Use selected features(1 feature selected) 勾选,使用 1 个被选择的要素

将上述操作合并起来意思是:I want to select features from the layer“学生”thatare completely within“乡”,中文可解释为,从图层“学生”选择要素,他们被包 含在图层“乡”里,图层“乡”有 1 个要素在选择集中。按 Apply 键继续,可以 看到,在点状图层“学生”中,有 13 个点要素进入了选择集,改变了颜色,即“李 庄”范围内有 13 个学生(见图 5-5),点击按钮 Close,关闭位置选择对话框。用 鼠标右键点击图层名“学生”,打开“Attribute of 学生”,可以验证,在 215 条记 录中有 13 条记录进入了选择集。

图 5-5 在“李村”乡范围内的学生

3 相交选择查询

激活 data frame2,显示出 2 个图层:线状图层“供水管”、面状图层“地块”。如果上次操作时产生的“地块”多边形选择集未被清空,点击图层名“地块”,选用菜单 Selection / Clear Selected Features,清空选择集。选

3

用菜单 Selection / Set Selectable Layers…,将图层“地块”从可选图层中消除,仅将图层“供水管”设 置为可选图层,Close 关闭对话框。用要素选择工具按钮

(Select Features),配合 Shift 键,点击多段供水管,使他们进

入选择集,表示这些供水管即将维修(注意:应选择一些与地块相交的水管)。选用菜单 Selection / Select By Location…, 调出按位置选择要素的对话框:

I want to:Select feature from 下拉选择,表示建立新的选择集 The following layers:√ 地块 勾选“地块”,在该图层中选择要素 That:intersect 下拉选择,表示相交选择

The features in this layer:供水管 下拉选择,图层“供水管”的要素为参照 √ Use selected features(6 feature selected):勾选,使用 6 个被选中的要素

点击 Apply 按钮,凡是和即将维修的供水管相交的地块都改变了颜色,进入 选择集。打开“Attribute of 地块”,可以看到和即将维修的供水管相交的那些地块 进入了选择集。 4 相互位置选择查询小结

图层之间的相互选择查询可以在不同类型要素的图层间进行:

相邻(Are within distance of) 点和点,点和线,点和面,线和线,线和面,面和面 包含(Are completely Within) 点和面, 线和面,面和面 相交(Intersect) 线和线,线和面,面和面

除本章介绍的图层之间选择查询还有更多的类型:

Completely contain 也是包含选择,逻辑上和 Are completely within 相反 Have their center in 有另一类要素的中心 Share a line segment with 不同的要素共享一条边 Touch the boundary of 与某个多边形的边界接触 Are identical to 独立于某个要素

Are crossed by the outline of:被某个要素穿越 Contain 包含选择,并且可以有重叠的边

Are contained by:与 Are completely within 类似,可以有重叠的边 上述是大致的解释,可查看 Help,获得进一步的解释。

图 5-6 data frame4 的显示

5 空间连接

曾练习了表和表之间的连接,这是关系型数据库的基本功能,ArcMap可在二个图层的空间要素之间建立连接:空间连接(Spatial Join)。本练习需要解决三个问题:

4

(1)按直线距离最近给每个学生分配小学。

(2)按小学汇总该校分配到多少学生,计算学生上学的平均距离。 (3)小学能提供的座位数和分配到学生数进行比较。 5.1 按距离最近给每个学生分配学校

激活 data frame4,显示出三个图层:点状图层“学生”,点状图层“小学”, 线状图层“公路”(公路仅用于显示,不参与分析,见图 5-6)。选择并打开图层 “小学”的要素属性表,可看到 11 所小学的属性记录(表 5-1):

表 5-1 图层“小学”的要素属性表

shape 要素类型 point point

SCHOOL_ID 小学编号 1 2

SCHOOL_NAM 小学名称 镇区小学 第一小学

SEAT 可配座位数 47 65

point 3 中心小学 43 point 4 前学小学 78 point 5 附属小学 36 point 6 练乡小学 57 point 7 博才小学 48 point 8 树人小学 96 point point point

9 爱国小学 10 11

光明小学 础材小学

84 62 53

鼠标右键点击 data frame4 的图层“学生”,在快捷菜单中选 Join and Relates / Join…,弹出 Join Data 对话框:

What do you want to join to this layer? Join data from another layer based on spatial location 基于空间位置的图层数据连接(不是一般的属性连接)

1.Choose the layer to join to this layer or load:小学 2.You are joining Points to Points: 点和点的连接

● Each point will be given all the attribute of the 点选下侧选项,按距离最近连接

point in the layer being joined that is closest to it, and a distance field showing how close that … 3.The result of the join will be saved into a new…:

D:\\gis_ex09\\ex05\emp\\Join_Output.shp 键盘输入文件名

按 OK 键完成,系统自动将新产生的点状图层 Join_Output 加载到当前的 Data Frame,要素的位置和图层“学生”一样。打开“Attribute of Join_Output”,可以 看到属性表有 215 条记录,表的右侧有四个字段:SCHOOL_ID(离学生最近小学的编号),SCHOOL_NAM(离学生最近小学的名称),SEAT(该 校可分配学生的座位数),Distance(学生到达最近小学的距离)。空间连接操作, 使每个学生,按距离最近分配到了小学,对应小学的属性表中所有字段都被连接 过来,还增加了一个空间距离字段(Distance)。

关闭要素属性表,选择图层 Join_Output,用鼠标右键选择 Properties… / Symbology 标签,重新定义该图层的显示符号,采用 Show / Categories / Unique values,Value Filed: SCHOOL_NAM(小学名称),在 Color Scheme 栏中下拉选择 配色表,色调和原来“小学”图层的符号有一定对比,点击按钮 Add All Values, 每所小学配用一种符号,按“确定”键返回,Join_Output 为按距离最近调配学生 的图层(见图 5-7)。

5

5.2 按学校汇总该校分配到多少学生、计算上学平均距离

在小学和学生两个图层的空间连接基础上,可进一步作汇总计算。打开属性表“ Attribute of Join_Output ”,在任意字段 名上点击鼠 标右键,选用菜单Summarize…,出现数据汇总对话框:

图 5-7 按距离最近分配学生的专题图层

1.Select a Field to summarize:SCHOOL_ID 下拉选择,按小学编号汇总

2.Choose one or more summary statistics to be output table: 展开字段名 Distance,勾选 Average,对距离值作平均

3.Specify output table:

D:\\gis_ex09\\ex05\emp\\Sum_Output.dbf 下拉选择路径,键盘输入文件名

按 OK 键,系统提问是否汇总表加入当前的地图文档,选“是”。则按小学编号汇总的学生数结果存放到 Sum_Output.dbf 中。到 dataframe4,打开属性表Sum_Output,可以看到该属性表有 3 个有效字段:SCHOOL_ID(小学编号), Count_SCHOOL_ID(按小学编号汇总数的学生数),Average_Distance(按小学计 算学生上学平均距离),关闭属性表。

5.3 小学可分配座位数和汇总的学生数作比较

用鼠标右键选择图层“小学”/ Joins and Relates / Join…,执行表的(合并) 连接操作,在弹出的 Join Data 对话框中指定表连接的条件:

What do you want to join to:Join attributes from a table 下拉选择,和一个表连接

1.Choose the field in this layer that the join will take place:SCHOOL_ID 下拉选择,SCHOOL_ID 为小学编号,连接用的关键字段

2.Choose the table to join to this layer or load the table:Sum_Output 下拉选择, 连接的表名为空间连接结果的汇总表 3.Choose the field in the table to base the join only:SCHOOL_ID 下拉选择,和Sum_Output 表中的小学编号连接

按 OK 键继续,提问是否要加索引, 回答“No”,Sum_Output 表被连接(合 并)到图层“小学”的属性表中,其中属性项 Count_SCHOOL_ID 表示用空间连 接法算出的每个小学按直线距离最近分到的学生总数,该属性可以和小学的可分 余座位 school.SEAT 进行比较,检查两者的差异,为简要起见,此处仅列出主要 的字段和内容(见表 5-2),省略了字段的表名前缀(如 school.***),与练习者实 际看到的属性表字段名有一些的差异,但并不影响各单元的取值。

本练习的基本步骤为三个:

(1)使用空间连接功能,为每个小学生按距离最近分配小学。

(2)使用属性汇总功能,按分配到的小学编号汇总学生数,得出每所小学分到多少学生,计算学生上学平均距离。

6

(3)使用属性表合并连接功能,将汇总结果连接到小学属性表,检查可配座 位数和就近分配到学生数的差异,并显示每校学生上学的平均距离。 表 5-2 汇总结果和小学属性作对比

SCHOOL_ID SCHOOL_NAM 小学编号 小学名称 1 2 3 4 5 6 7 8 9 10 11

镇区小学 第一小学 中心小学 前学小学 附属小学 练乡小学 博才小学 树人小学 爱国小学 光明小学 础材小学

SEAT 可配座位 47 65 43 78 36 57 48 96 84 62 53

Count_SCHOOL_ID 每校分配到的学生数 18 14

28

28 20 15 20 31 6 18 17

Average_Distance 每校学生上学平均距离 1.5899 2.4963 2.8802 2.5375 2.2675 2.4675 2.4616 2.6428 1.8889 2.6754 2.1710

经练习,可体会到空间连接在两个图层(A 和 B)的要素之间进行,其结果是将A中的某些要素的属性字段连接到 B 的要素属性表中。以上述练习为例,实现的功能为:

(1)针对图层 B 中的每一个要素,在图层 A 中找出哪个要素离它最近。

(2)计算两者之间的距离,将距离值放到图层 B 要素属性表的对应行中, 字段名为 Distance。 (3)图层 A 中找到的那个要素的属性,也添加到图层 B 的对应记录上。

空间连接使图层 B 的属性字段得到扩展,增加了图层 A 的要素属性字段,还增加了 Distance 字段,取值为该要素和图层 A 中最近要素之间的距离。

空间连接还可用在点与线、线与线、点与面的图层之间,实现的功能如下:

点 线 面

点 线 面

最近距离 最近距离 —

最近距离 部分重合 —

点在面内 线在面内 面在面内

在现实生活中,还可能有如下应用:

按距离最近法将顾客分配给不同的办事处,用于检验办事处的分布、工作负 荷是否均匀。 使点状的用户找到离最近的线状设施,如用于市政管线的接入。 使线状设施找到距离最近的点状设施,可分析停车场、变电站的分布。

4 本章小结

本章练习的是具有一定特殊性的空间查询功能:

(1)两个图层之间可以相互选择查询:一个是选择图层,另一个为被选择 图层。选择的条件、关系很多,可根据应用的需要选用。

(2)两个图层之间可作空间连接处理,按空间上的相互关系,实现属性字 段的连接、数据添加、传递。 注:ArcMap 规定空间连接之前要设置地理坐标参照系,本练习已经设置好。

7

因篇幅问题不能全部显示,请点此查看更多更全内容

Top