1、10地理信息系统实习教程第十章邻近区第十章 邻近区1 产生多边形要素的邻近区启动地图文档gis_ex09ex10ex10.mxd,该文档有四个数据框架。激活 data frame1,该数据 框架有二个图层(见图 10-1):“道路”仅用于地图显示,不参加分析,“仓库”表示某城市中危险品的存储基地。假设,存储基地周围 100 米范围内不准有建筑物,也不准堆放易燃易爆物 品,周围 200 米范围内可以有一般建筑物,但是仍不能有易燃易爆物品,周围 300 米范围内不准建设住宅,以及商业、学校、办公等设施。为此需要在地图上产生 100、200、300 米的邻近 区,并计算邻近区的面积。图 10-1 d
2、ata frame1 的显示 鼠标双击 data frame1,出现 Data Frame 属性定义对话框,在 General 标签中将 Map Unites(地图单位)和 Display Units(显示单位)都从 Unknown Units(未定义)改为 Meters(米), 按“确定”键返回。选用菜单 Tools / Buffer Wizard,在提示下完成操作:Input Features:仓库 下拉选择图层名Output Feature Class:d:gis_ex10ex10tempbuffer1.shp 鼠标选择路径,键盘输入文件名, 按Save 键保存Distances 分3
3、次键盘输入邻近距离值,输完后按“”号添加100200300Buffer Unit (optional):Default 默认Field Name (optional): 保持空白Dissolve Option (optional):ALL 下拉选择,重叠的多边形相互合并 按OK 键继续,软件出现处理过程提示窗,左上角出现Completed 提示,表示处理完毕,按Close 键关闭。ArcMap 按上述要求产生离开仓库多边形100、200、300 米3 圈边界组成的3 个邻近区多边形,图层名称默认为buffer1,数据存放在d:gis_ex09ex10tempbuffer1.shp 。可打开图层
4、buffer1 的特征对话框(Properties),选用Symbology 标签,为邻近区设置合适的显示符号,还可以打开、关闭图层“仓库”,观察显示效果(参见图10-2),可以看出,100 米邻近区没有扣除仓库多边形。图 10-2 关闭图层“仓库”后显示邻近区下一步为计算每个邻近区的面积,打开邻近区图层属性表“Attribute of buffer1”,选用属性 表窗口右下侧按钮 Options / Add Field,在随后的 Field definition 对话框中定义所增加的字段:Name:Area(字段名)Type:Double(双精度浮点类型)Precision:10(字段宽度)
5、Scale:1 (保留小数点位数) 按 OK 键返回。属性表增加了字段 Area,鼠标右键点击属性表的字段名 Area,在快捷菜单 中选择 Calculate Values,系统提示:You are about to do a calculate outside of an edit session. This method is faster than calculating in an edit session, but there is no way to undo your results once the calculation begins. Do you wish to cont
6、inue? (由于属性表处于非编辑状态,对字段进行计算的结果不能用 undo 方式还原,所 以软件提出警告。如果选用菜单 Editor / Start Editing,使属性表处于编辑状态,再进行字段计算,就不会出现该提示,因为对计算结果不满意的话,可用菜单 Edit / Undo 还原初始值。) 对提示回答“是(Y)”,出现字段计算对话框,勾选 Advanced,在文本框内输入以下 VBA代码:(“/”右边的文字为代码说明,不必输入,只输入英语代码即可)dim newArea as double /声明 double 类变量 newArea 用于保存面积值,该名字可以自 行取名,但要与下面的
7、文本框输入的名字保持一致dim pArea as IArea /声明 IArea 类变量 pArea 用于保存参与计算的字段set pArea = shape /为变量 pArea 赋值newArea = pArea.area /求解多边形面积并赋给用户定义的变量 newArea在下面 Area = 提示下的文本框内输入刚建立的面积计算变量名 newArea,按 OK 键结束, 可以观察到 buffer1.shp 表内容,字段 Area 为多边形的面积:Shape* distance Area(要素形状) (邻近距离) (面积)Polygon 100 230205.3Polygon 200 2
8、14299.7Polygon 300 277073.1 关闭属性表,返回主窗口,可进一步用属性、要素相互查询的功能,查询要素的位置及其属性,体会邻近区的形状、面积。2 关于产生多边形邻近区的小结在产生邻近区之前应设置地图单位、显示单位。可以针对 Data Frame 中的图形(Graphic)也可以针对图层中的要素(Feature)产生邻近区, 本练习是针对要素产生邻近区。如果是针对多边形产生邻近区,可以产生在内侧、外侧、同时产生在两侧、产生在外侧并 且包含原多边形本身,本练习是产生在外侧。产生的结果有:(1)Data Frame 中的图形(Graphic),(2)作为多边形要素(Featur
9、e)添加到允许编辑的图层中,(3)独立的多边形图层(Feature)。本练习产生的结果是独立图层。 控制邻近区的形状有三种途径:(1)简单输入一个距离值,(2)按要素属性表中某字段的属性值,(3)离开要素的多重等值距离。本练习是离开要素边界的多重等值距离(离开仓库 100、200、300 米,共 3 重,间距为 100 米)。 产生的邻近区往往是多个多边形,有可能相互重合,本练习要求消除重合。邻近区是多边形,如果需要计算面积,可以将面积字段添加到图层属性表,再计算、赋值。邻近区是常用的 GIS 分析方法,除了在面状要素内、外二侧按给定距离产生邻近区外,还 可以在点状、线状要素周围产生。邻近区的
10、英语专业名词常称 Buffer Zone,可直译成“缓冲区”。3 线状要素的邻近区激活 data frame2,该数据框架有二个图层(见图 10-3):线状图层“道路”,仅用于地图显示,不参加分析;线状图层“铁路”为邻近区的分析对象。假设根据当地的情况,沿铁路两侧20、40 米范围内,进行环境整治、植树,要求提供专题地图。图 10-3 data frame2 的显示鼠标双击 data frame2,出现 data frame 属性定义对话框,在 General 标签中将Map Unites(地图单位)和 Display Units(显示单位)都从 Unknown Units(未定义)改为 me
11、ters(米), 完成后按 OK 键返回主窗口。展开ArcToolbox / Analysis Tools/ Proximity,鼠标双击Multiple Ring Buffer,产生多个环状邻近区,出现对话框:Input Features:铁路 下拉选择图层Output Feature Class:d:gis_ex10ex10tempbuffer2.shp 鼠标选择路径,键盘输入文件名,按Save 键保存Distances 分2 次键盘输入邻近距离值,输完后按“”号添加 20 40Buffer Unit (optional):Default 默认Field Name (optional) 保
12、持空白Dissolve Option (optional):ALL 下拉选择,重叠的多边形合并按OK 键继续,软件出现处理过程提示窗,左上角出现Completed 提示,表示处理完毕,按Close 键关闭。ArcMap 按上述要求产生离开铁路线20、40 米2圈边界组成的2 个多边形,数据存放在buffer2.shp,邻近区图层的名称为buffer2。可在图层 buffer2 的 Symbology 标签对话框中为邻近区多边形设置合适的显示符号,还可以打开、关闭图 层“铁路”,观察显示效果(参见图 10-4)。如果需要计算每个邻近区的面积,可参照前一节的 操作实现。图 10-4 铁路二侧 20
13、 米、40 米邻近区4 计算道路网密度 激活 data frame3,该 Data Frame 有 2 个图层:线状图层“道路”、面状图层“区界”(见图10-5),要求计算某个区界范围内的道路网密度。按一般定义:道路网密度 = 区界范围内的道路总长度 / 该区面积,常用度量单位是每平方公里内有多少公里道路。41 计算道路长度、多边形周长、多边形面积 用鼠标右键打开图层“道路”的属性表(点击快捷菜单中的 Open Attribute Table 选项),在“Attribute of 道路”属性表窗口的右下侧选用按钮 Options / Add Field,在随后的 Field definitio
14、n 对话框中定义所增加的字段:Name: Length(字段名)Type: Double(双精度浮点类型)Precision: 8(字段宽度)Scale:1 (保留小数点位数)图 10-5 data frame3 的显示按 OK 键返回。属性表增加了以 Length 命名的字段,用鼠标右键点击字段名 Length,在快 捷菜单中选择 Calculate Values,系统提示:You are about to do a calculate outside of an edit session. this method is faster than calculatingin an edit s
15、ession, but there is no way to undo your results once the calculation begins. Do you wishto continue?选择“是(Y)”应答,出现字段计算对话框,勾选 Advanced,在文本框内输入以下 VBA代码:Dim newLength as doubleDim pCurve as ICurveSet pCurve = shapenewLength = pCurve.Length在下面 Length = 提示下的文本框内输入新建的长度计算变量名 newLength,按 OK 键结束, 可以观察到属性表中字
16、段 Length 的取值为每条路段的长度,关闭属性表窗口。用鼠标右键打开图层“区界”的属性表(点击快捷菜单中的 Open Attribute Table 选项),在 “Attribute of 区界”属性表窗口的右下侧选用按钮 Options / Add Field,在随后的 Field definition 对话框中定义所增加的字段:Name: Perimeter(字段名)Type: Double(双精度浮点类型) Precision: 8(字段宽度)Scale:1 (保留小数点位数) 按 OK 键返回。属性表增加了以 Perimeter 命名的字段,用鼠标右键点击字段名 Perimeter
17、,在快捷菜单中选择 Calculate Values,系统提示: You are about to do a calculate outside of an edit session. this method is faster than calculatingin an edit session, but there is no way to undo your results once the calculation begins. Do you wishto continue?选择“是(Y)”应答,出现字段计算对话框,勾选 Advanced,在文本框内输入以下 VBA代码:Dim new
18、Perimeter as doubleDim pCurve as ICurveSet pCurve = shapenewPerimeter = pCurve.Length在下面 Perimeter = 提示下的文本框内输入新建的长度计算变量名 newPerimeter,按 OK 键 结束,可以观察到属性表中字段 Perimeter 的取值为每个多边形的周长。在“Attribute of 区界”属性表窗口的右下侧再选用按钮 Options / Add Field,在随后的Field definition 对话框中定义所增加的字段:Name: Area(字段名)Type: Double(双精度浮点
19、类型) Precision: 10(字段宽度) Scale:1 (保留小数点位数)按 OK 键返回。属性表增加了以 Area 命名的字段。用鼠标右键点击字段名 Area,在快捷 菜单中选择 Calculate Values,系统提示:You are about to do a calculate outside of an edit session. this method is faster than calculatingin an edit session, but there is no way to undo your results once the calculation beg
20、ins. Do you wishto continue?选择“是(Y)”应答,出现字段计算对话框,勾选 Advanced,在文本框内输入以下 VB代码:Dim newArea as doubleDim pArea as IArea Set pArea = shape newArea = pArea.area在下面的 Area = 提示的文本框输入新建的面积计算变量名 newArea,按 OK 键结束,可以 观察到属性表中字段 Area 的取值为每个多边形的面积。42 产生离开某个区界的邻近区 鼠标双击 data frame3,出现 Data Frame 属性定义对话框,在 General 标签
21、中将 Map Unites(地图单位)和 Display Units(显示单位)都从 Unknown Units(未定义)改为 Meters(米), 完成后按 OK 键返回主窗口。图 10-6 选择需要计算道路密度的多边形 选用菜单 Selection / Set Selectable Layers,只让图层“区界”为可选,取消其他图层名前 的勾选号“”,关闭该窗口,返回。选择图层“区界”,用要素选择工具选择一个多边形, 该要素改变颜色,进入选择集(见图 10-6)。展开ArcToolbox / Analysis Tools / Proximity,鼠标双击Buffer(注意本次选Buffer
22、,和前2 次不同),产生单个环状邻近区,出现对话框: Input Features:区界 下拉选择图层名Output Feature Class:d:gis_ex10ex10tempbuffer3.shp 鼠标选择路径,键盘输入文件名,按 Save 键保存Distances (value or field) Linear unit 点选,采用线性距离单位50 Meters 键盘输入邻近距离,下拉选择距离单位为米Dissolve Option (optional):ALL 下拉选择,重叠的多边形合并 按OK 键继续,软件出现处理过程提示窗,左上角出现Completed 提示,表示处理完毕,按Cl
23、ose 键关闭。ArcMap 按上述要求在被选择的区界外侧50 米产生邻近区,邻近区图层的名称为Buffer3(见图10-7)。图 10-7 产生被选多边形的邻近区43 选择在计算范围内的道路、计算道路密度鼠标右键点击图层“Buffer_of_区界”,在弹出的快捷菜单中选择Selection/ Select all,刚才生成的邻近区进入选择集。选用菜单 Selection / Select By Location,弹出空间位置选择对 话框:I want to:Select feature from 下拉选择,创建新的选择集The following layers: 道路 勾选,仅在该图层中选择
24、要素That:are completely within 下拉选择,完全包含方式选择The feature in this layer:Buffer_of_区界 下拉选择,用该图层要素作为参照 Use selected features(1 feature selected) 勾选,仅用进入选择集的要素按 Apply 键继续,在选定的多边形范围的道路进入选择集,改变显示颜色,按Close键关闭窗口。图 10-8 需要计算长度的道路进入选择集打开要素属性表“Attribute of 道路”,可以看到,道路图层的要素属性表共有 585 条记录,36 条记录进入了选择集,在地图上也可看出,和计算范围
25、的边界重合的道路路段也进入了选择 集。鼠标右键点击道路属性表的字段名 Length(每段道路的长度),选择菜单 Statistics,属性 Length 的统计结果文本框显示如下:Count:36 进入计算的路段数(即记录数) Sum:9489.259390 选择集内道路路段长度总和 关闭统计结果文本框,关闭属性表“Attribute of 道路”,返回 data frame3。 需要计算道路网密度的边界既是自己多边形的边界,也是周围其他多边形的边界,在几何上,边界线由两侧多边形共享,而且和周边道路重合,因此计算道路网密度时,和边界重合的道路长度应对半分开,分别计入两侧多边形。在基本工具条中点
26、击 Identify 图标,出现 Identify 对话框,在 Layers 下拉条中选择图层名“区界”,在地图上点击需要计算道路密度的多边形, 对话框内出现该要素的属性:Field ValueFID 16Shape PolygonBOUND_ID 2010Area(多边形面积) 991566.3Perimeter(多边形周长) 5354.7 范围内道路网密度为:(9489.3 5354.7 / 2)/ 991566.3 1000 = 6.87道路网密度常用计算单位是“公里/平方公里”,而本练习的地图单位是米,因此上述计算式中还要有一个乘 1000 的计算。44 本练习小结 计算道路密度的原理
27、很简单,但是所计算的范围如果是城市的局部,其边界经常和道路重合,直接用 Select By Location 或者 Spatial Join 选择道路路段,原理上可行,但因原始数据的误差,坐标计算中的误差,会出现该进入选择集的路段未进入,不该进入选择集的却进入了,在 计算边界的外侧产生一个邻近区,可保证在边界内、边界上的道路路段都进入选择集,避免了误差。5 点状要素的邻近区51 多边形重叠、相互独立的邻近区 激活data frame4,可看到2个图层:点状图层“公园”,有9个点,线状图层“道路”(见图 10-9)。本项练习要求产生离开公园1000米同心圆式的服务范围。图 10-9 data f
28、rame4 的显示鼠标双击 data frame4,出现 Data Frame 属性定义对话框,在 General 标签中将 Map Unites(地图单位)和 Display Units(显示单位)都从 Unknown Units(未定义)改为 Meters(米), 完成后按“确定”键返回主窗口。展开ArcToolbox / Analysis Tools / Proximity,鼠标双击Buffer,产生单环状邻近区对话框:Input Features:公园 下拉选择图层名Output Feature Class:d:gis_ex10ex10tempbuffer4.shp 鼠标选择路径,键盘
29、输入文件名,按Save 键保存Distances value or field 邻近距离用指定值还是字段 Linear unit 选择线性距离1000 Meters 键盘输入距离值,鼠标下拉选择距离单位Dissolve Option (optional):NONE 下拉选择,注意:不消除多边形重叠按OK 键继续,软件出现处理过程提示窗,左上角出现Completed 提示,表示处理完毕,按Close 键关闭。ArcMap 按上述要求产生离开公园1000 米邻近多边形,相互独立,有交叉、重叠。52 重叠多边形相互独立的邻近区再到ArcToolbox 窗口鼠标双击Buffer,产生单环状邻近区对话框
30、:Input Features:公园 下拉选择图层名Output Feature Class:d:gis_ex10ex10tempbuffer5.shp 鼠标选择路径,键盘输入文件名,按Save 键保存Distances value or field 邻近距离用指定值还是字段 Linear unit 选择线性距离500 Meters 键盘输入距离值,鼠标下拉选择距离单位Dissolve Option (optional):all 下拉选择,消除多边形的重叠按OK 键继续,软件出现处理过程提示窗,左上角出现Completed 提示,表示处理完毕,按Close 键关闭。ArcMap 按上述要求产生
31、离开公园500米邻近多边形,共有8个,交叉重叠的位置被合并。53 按要素的属性产生邻近区不同的公园可以产生不同的邻近区,要求如下:公园代号 邻近距离 A 750 B 500 C 1000 D 1000 E 750 F 500 G 750 H 750 I 500在目录表中用鼠标右键点击图层名“公园”,用弹出菜单Open Attribute Table,打开要素属性表“Attribute of 公园”,属性表窗口的右下侧选用按钮Options / Add Field,在随后的Field definition 对话框中定义所增加的字段:Name: Distn(字段名)Type: Integer(整数类型)Precision: 4(字段宽度)Scale:1 (保留小数点位数) 按OK 键返回。属性表增加了以Distn 命名的字段。点击图标按钮(Editor Toolbar),弹出编辑器工具条,选择Editor / Start Editing,该表进入编辑状态,参照前述的不同公园不同邻近距离的
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1