GIS实习教程第10章.docx
- 文档编号:9642913
- 上传时间:2023-05-20
- 格式:DOCX
- 页数:17
- 大小:1.11MB
GIS实习教程第10章.docx
《GIS实习教程第10章.docx》由会员分享,可在线阅读,更多相关《GIS实习教程第10章.docx(17页珍藏版)》请在冰点文库上搜索。
GIS实习教程第10章
第十章邻近区
1产生多边形要素的邻近区
启动地图文档\gis_ex09\ex10\ex10.mxd,该文档有四个数据框架。
激活dataframe1,该数据框架有二个图层(见图10-1):
“道路”仅用于地图显示,不参加分析,“仓库”表示某城市中危险品的存储基地。
假设,存储基地周围100米范围内不准有建筑物,也不准堆放易燃易爆物品,周围200米范围内可以有一般建筑物,但是仍不能有易燃易爆物品,周围300米范围内不准建设住宅,以及商业、学校、办公等设施。
为此需要在地图上产生100、200、300米的邻近区,并计算邻近区的面积。
图10-1dataframe1的显示
鼠标双击dataframe1,出现DataFrame属性定义对话框,在General标签中将MapUnites(地图单位)和DisplayUnits(显示单位)都从UnknownUnits(未定义)改为Meters(米),按“确定”键返回。
在地图窗口按钮条上点击ArcToolbox
图标,展开ArcToolbox/AnalysisTools/Proximity,选用菜单MultipleRingBuffer(多个环状邻近区),在提示下完成操作:
InputFeatures:
仓库下拉选择图层名
OutputFeatureClass:
d:
\gis_ex10\ex10\temp\buffer1.shp鼠标选择路径,键盘输入文件名,按Save键保存
Distances分3次键盘输入邻近距离值,每次输完后按“+”号添加
100
200
300
BufferUnit(optional):
Default默认
FieldName(optional):
保持空白
DissolveOption(optional):
ALL下拉选择,重叠的多边形相互合并
按OK键继续,软件出现处理过程提示窗,左上角出现Completed提示,表示处理完毕,按Close键关闭。
ArcMap按上述要求产生离开仓库多边形100、200、300米3圈边界组成的3个邻近区多边形,图层名称默认为buffer1,数据存放在d:
\gis_ex09\ex10\temp\buffer1.shp。
可打开图层buffer1的特征对话框(Properties…),选用Symbology标签,为邻近区设置合适的显示符号,还可以打开、关闭图层“仓库”,观察显示效果(参见图10-2),可以看出,100米邻近区没有扣除仓库多边形自身。
图10-2关闭图层“仓库”后显示邻近区
下一步为计算每个邻近区的面积,打开邻近区图层属性表“Attributeofbuffer1”,选用属性表窗口右下侧按钮Options/AddField…,在随后的Fielddefinition对话框中定义所增加的字段:
Name:
Area(字段名)
Type:
Double(双精度浮点类型)
Precision:
10(字段宽度)
Scale:
1(保留小数点位数)
按OK键返回。
属性表增加了字段Area,鼠标右键点击属性表的字段名Area,在快捷菜单中选择FieldCalculator…(CalculateGeometry…),系统提示:
Youareabouttodoacalculateoutsideofaneditsession.Thismethodisfasterthancalculatinginaneditsession,butthereisnowaytoundoyourresultsoncethecalculationbegins.Doyouwishtocontinue?
(由于属性表处于非编辑状态,对字段进行计算的结果不能用undo方式还原,所以软件提出警告。
如果选用菜单Editor/StartEditing…,使属性表处于编辑状态,再进行字段计算,就不会出现该提示,因为对计算结果不满意的话,可用菜单Edit/Undo还原初始值。
)对提示回答“是(Y)”,出现字段计算对话框,勾选Advanced,在文本框内输入以下VBA代码:
(“//”右边的文字为代码说明,不必输入,只输入英语代码即可)
dimnewAreaasdouble//声明double类变量newArea用于保存面积值,该名字可以自行取名,但要与下面的文本框输入的名字保持一致
dimpAreaasIArea//声明IArea类变量pArea用于保存参与计算的字段
setpArea=[shape]//为变量pArea赋值
newArea=pArea.area//求解多边形面积并赋给用户定义的变量newArea
在下面Area=提示下的文本框内输入刚建立的面积计算变量名newArea,按OK键结束,可以观察到buffer1.shp表内容,字段Area为多边形的面积:
Shape*distanceArea
(要素形状)(邻近距离)(面积)
Polygon100230205
Polygon200214298.7
Polygon300277071.6
关闭属性表,返回主窗口,可进一步用属性、要素相互查询的功能,查询要素的位置及其属性,体会邻近区的形状、面积。
2关于产生多边形邻近区的小结
在产生邻近区之前应设置地图单位、显示单位。
可以针对DataFrame中的图形(Graphic)也可以针对图层中的要素(Feature)产生邻近区,本练习是针对要素产生邻近区。
如果是针对多边形产生邻近区,可以产生在内侧、外侧、同时产生在两侧、产生在外侧并且包含原多边形本身,本练习是产生在外侧。
产生的结果有:
(1)DataFrame中的图形(Graphic),
(2)作为多边形要素(Feature)添加到允许编辑的图层中,(3)独立的多边形图层(Feature)。
本练习产生的结果是独立图层。
控制邻近区的形状有三种途径:
(1)简单输入一个距离值,
(2)按要素属性表中某字段的属性值,(3)离开要素的多重等值距离。
本练习是离开要素边界的多重等值距离(离开仓库100、200、300米,共3重,间距为100米)。
产生的邻近区往往是多个多边形,有可能相互重合,本练习要求消除重合。
邻近区是多边形,如果需要计算面积,可以将面积字段添加到图层属性表,再计算、赋值。
邻近区是常用的GIS分析方法,除了在面状要素内、外二侧按给定距离产生邻近区外,还可以在点状、线状要素周围产生。
邻近区的英语专业名词常称BufferZone,可直译成“缓冲区”。
3线状要素的邻近区
激活dataframe2,该数据框架有二个图层(见图10-3):
线状图层“道路”,仅用于地图显示,不参加分析;线状图层“铁路”为邻近区的分析对象。
假设根据当地的情况,沿铁路两侧20、40米范围内,进行环境整治、植树,要求提供专题地图。
图10-3dataframe2的显示
鼠标双击dataframe2,出现dataframe属性定义对话框,在General标签中将MapUnites(地图单位)和DisplayUnits(显示单位)都从UnknownUnits(未定义)改为meters(米),完成后按OK键返回主窗口。
展开ArcToolbox/AnalysisTools/Proximity,鼠标双击MultipleRingBuffer,产生多个环状邻近区,出现对话框:
InputFeatures:
铁路下拉选择图层
OutputFeatureClass:
d:
\gis_ex10\ex10\temp\buffer2.shp鼠标选择路径,键盘输入文件名,按Save键保存
Distances分2次键盘输入邻近距离值,输完后按“+”号添加
20
40
BufferUnit(optional):
Default默认
FieldName(optional)保持空白
DissolveOption(optional):
ALL下拉选择,重叠的多边形合并
按OK键继续,软件出现处理过程提示窗,左上角出现Completed提示,表示处理完毕,按Close键关闭。
ArcMap按上述要求产生离开铁路线20、40米2圈边界组成的2个多边形,数据存放在buffer2.shp,邻近区图层的名称为buffer2。
可在图层buffer2的Symbology标签对话框中为邻近区多边形设置合适的显示符号,还可以打开、关闭图层“铁路”,观察显示效果(参见图10-4)。
如果需要计算每个邻近区的面积,可参照前一节的操作实现。
图10-4铁路二侧20米、40米邻近区
4计算道路网密度
激活dataframe3,该DataFrame有2个图层:
线状图层“道路”、面状图层“区界”(见图10-5),要求计算某个区界范围内的道路网密度。
按一般定义:
道路网密度=区界范围内的道路总长度/该区面积,常用度量单位是每平方公里内有多少公里道路。
4.1计算道路长度、多边形周长、多边形面积
用鼠标右键打开图层“道路”的属性表(点击快捷菜单中的OpenAttributeTable选项),在“Attributeof道路”属性表窗口的右下侧选用按钮Options/AddField…,在随后的Fielddefinition对话框中定义所增加的字段:
Name:
Length(字段名)
Type:
Double(双精度浮点类型)
Precision:
8(字段宽度)
Scale:
1(保留小数点位数)
图10-5dataframe3的显示
按OK键返回。
属性表增加了以Length命名的字段,用鼠标右键点击字段名Length,在快捷菜单中选择FieldCalculator…,系统提示:
Youareabouttodoacalculateoutsideofaneditsession.thismethodisfasterthancalculating
inaneditsession,butthereisnowaytoundoyourresultsoncethecalculationbegins.Doyouwish
tocontinue?
选择“是(Y)”应答,出现字段计算对话框,勾选Advanced,在文本框内输入以下VBA
代码:
DimnewLengthasdouble
DimpCurveasICurve
SetpCurve=[shape]
newLength=pCurve.Length
在下面Length=提示下的文本框内输入新建的长度计算变量名newLength,按OK键结束,可以观察到属性表中字段Length的取值为每条路段的长度,关闭属性表窗口。
用鼠标右键打开图层“区界”的属性表(点击快捷菜单中的OpenAttributeTable选项),在“Attributeof区界”属性表窗口的右下侧选用按钮Options/AddField…,在随后的Fielddefinition对话框中定义所增加的字段:
Name:
Perimeter(字段名)
Type:
Double(双精度浮点类型)Precision:
8(字段宽度)
Scale:
1(保留小数点位数)
按OK键返回。
属性表增加了以Perimeter命名的字段,用鼠标右键点击字段名Perimeter,在快捷菜单中选择FieldCalculator…,系统提示:
Youareabouttodoacalculateoutsideofaneditsession.thismethodisfasterthancalculating
inaneditsession,butthereisnowaytoundoyourresultsoncethecalculationbegins.Doyouwish
tocontinue?
选择“是(Y)”应答,出现字段计算对话框,勾选Advanced,在文本框内输入以下VBA
代码:
DimnewPerimeterasdouble
DimpCurveasICurve
SetpCurve=[shape]
newPerimeter=pCurve.Length
在下面Perimeter=提示下的文本框内输入新建的长度计算变量名newPerimeter,按OK键结束,可以观察到属性表中字段Perimeter的取值为每个多边形的周长。
在“Attributeof区界”属性表窗口的右下侧再选用按钮Options/AddField…,在随后的Fielddefinition对话框中定义所增加的字段:
Name:
Area(字段名)
Type:
Double(双精度浮点类型)Precision:
10(字段宽度)Scale:
1(保留小数点位数)
按OK键返回。
属性表增加了以Area命名的字段。
用鼠标右键点击字段名Area,在快捷菜单中选择FieldCalculator…,系统提示:
Youareabouttodoacalculateoutsideofaneditsession.thismethodisfasterthancalculating
inaneditsession,butthereisnowaytoundoyourresultsoncethecalculationbegins.Doyouwish
tocontinue?
选择“是(Y)”应答,出现字段计算对话框,勾选Advanced,在文本框内输入以下VB
代码:
DimnewAreaasdouble
DimpAreaasIArea
SetpArea=[shape]
newArea=pArea.area
在下面的Area=提示的文本框输入新建的面积计算变量名newArea,按OK键结束,可以观察到属性表中字段Area的取值为每个多边形的面积。
4.2产生离开某个区界的邻近区
鼠标双击dataframe3,出现DataFrame属性定义对话框,在General标签中将MapUnites(地图单位)和DisplayUnits(显示单位)都从UnknownUnits(未定义)改为Meters(米),完成后按OK键返回主窗口。
图10-6选择需要计算道路密度的多边形
选用菜单Selection/SetSelectableLayers…,只让图层“区界”为可选,取消其他图层名前的勾选号“√”,关闭该窗口,返回。
选择图层“区界”,用要素选择工具
选择一个多边形,该要素改变颜色,进入选择集(见图10-6)。
展开ArcToolbox/AnalysisTools/Proximity,鼠标双击Buffer(注意本次选Buffer,和前2次不同),产生单个环状邻近区,出现对话框:
InputFeatures:
区界下拉选择图层名
OutputFeatureClass:
d:
\gis_ex10\ex10\temp\buffer3.shp鼠标选择路径,键盘输入文件名,按Save键保存
Distances(valueorfield)
●Linearunit点选,采用线性距离单位
------50Meters键盘输入邻近距离,下拉选择距离单位为米
DissolveType(optional):
ALL下拉选择,重叠的多边形合并
按OK键继续,软件出现处理过程提示窗,左上角出现Completed提示,表示处理完毕,按Close键关闭。
ArcMap按上述要求在被选择的区界外侧50米产生邻近区,邻近区图层的名称为Buffer3(见图10-7)。
图10-7产生被选多边形的邻近区
4.3选择在计算范围内的道路、计算道路密度
鼠标右键点击图层“Buffer_of_区界”,在弹出的快捷菜单中选择Selection/Selectall,刚才生成的邻近区进入选择集。
选用菜单Selection/SelectByLocation…,弹出空间位置选择对话框:
Iwantto:
Selectfeaturefrom下拉选择,创建新的选择集
Thefollowinglayers:
√道路勾选,仅在该图层中选择要素
That:
arecompletelywithin下拉选择,完全包含方式选择
Thefeatureinthislayer:
buffer3下拉选择,用该图层要素作为参照
√Useselectedfeatures(1featureselected)勾选,仅用进入选择集的要素
按Apply键继续,在选定的多边形范围的道路进入选择集,改变显示颜色,按Close键关闭窗口。
图10-8需要计算长度的道路进入选择集
打开要素属性表“Attributeof道路”,可以看到,道路图层的要素属性表共有585条记录,
36条记录进入了选择集,在地图上也可看出,和计算范围的边界重合的道路路段也进入了选择集。
鼠标右键点击道路属性表的字段名Length(每段道路的长度),选择菜单Statistics,属性Length的统计结果文本框显示如下:
Count:
36进入计算的路段数(即记录数)
……
Sum:
9489.1选择集内道路路段长度总和
……
关闭统计结果文本框,关闭属性表“Attributeof道路”,返回dataframe3。
需要计算道路网密度的边界既是自己多边形的边界,也是周围其他多边形的边界,在几何上,边界线由两侧多边形共享,而且和周边道路重合,因此计算道路网密度时,和边界重合的道路长度应对半分开,分别计入两侧多边形。
在基本工具条中点击Identify图标
,出现Identify对话框,在Layers下拉条中选择图层名“区界”,在地图上点击需要计算道路密度的多边形,对话框内出现该要素的属性:
FieldValue
FID16
ShapePolygon
BOUND_ID2010
Area(多边形面积)991566.3
Perimeter(多边形周长)5354.7
范围内道路网密度为:
(9489.1-5354.7/2)/991566.3×1000=6.87
道路网密度常用计算单位是“公里/平方公里”,而本练习的地图单位是米,因此上述计算式中还要有一个乘1000的计算。
4.4本练习小结
计算道路密度的原理很简单,但是所计算的范围如果是城市的局部,其边界经常和道路重合,直接用SelectByLocation或者SpatialJoin选择道路路段,原理上可行,但因原始数据的误差,坐标计算中的误差,会出现该进入选择集的路段未进入,不该进入选择集的却进入了,在计算边界的外侧产生一个邻近区,可保证在边界内、边界上的道路路段都进入选择集,避免了误差。
5点状要素的邻近区
5.1多边形重叠、相互独立的邻近区
激活dataframe4,可看到2个图层:
点状图层“公园”,有9个点,线状图层“道路”(见图10-9)。
本项练习要求产生离开公园1000米同心圆式的服务范围。
图10-9dataframe4的显示
鼠标双击dataframe4,出现DataFrame属性定义对话框,在General标签中将MapUnites
(地图单位)和DisplayUnits(显示单位)都从UnknownUnits(未定义)改为Meters(米),完成后按“确定”键返回主窗口。
展开ArcToolbox/AnalysisTools/Proximity,鼠标双击Buffer,产生单环状邻近区对话框:
InputFeatures:
公园下拉选择图层名
OutputFeatureClass:
d:
\gis_ex10\ex10\temp\buffer4.shp鼠标选择路径,键盘输入文件名,按Save键保存
Distances[valueorfield]邻近距离用指定值还是字段
●Linearunit选择线性距离
1000Meters键盘输入距离值,鼠标下拉选择距离单位
DissolveOption(optional):
NONE下拉选择,注意:
不消除多边形重叠
按OK键继续,软件出现处理过程提示窗,左上角出现Completed提示,表示处理完毕,按Close键关闭。
ArcMap按上述要求产生离开公园1000米邻近多边形,相互独立,有交叉、重叠。
5.2重叠多边形相互独立的邻近区
再到ArcToolbox窗口鼠标双击Buffer,产生单环状邻近区对话框:
InputFeatures:
公园下拉选择图层名
OutputFeatureClass:
d:
\gis_ex10\ex10\temp\buffer5.shp鼠标选择路径,键盘输入文件名,按Save键保存
Distances[valueorfield]邻近距离用指定值还是字段
●Linearunit选择线性距离
500Meters键盘输入距离值,鼠标下拉选择距离单位
DissolveOption(optional):
all下拉选择,消除多边形的重叠
按OK键继续,软件出现处理过程提示窗,左上角出现Completed提示,表示处理完毕,按Close键关闭。
ArcMap按上述要求产生离开公园500米邻近多边形,共有8个,交叉重叠的位置被合并。
5.3按要素的属性产生邻近区
不同的公园可以产生不同的邻近区,要求如下:
公园代号邻近距离
A750
B500
C1000
D1000
E750
F500
G750
H750
I500
在目录表中用鼠标右键点击图层名“公园”,用弹出菜单OpenAttributeTable,打开要素属性表“Attributeof公园”,属性表窗口的右下侧选用按钮Options/AddField…,在随后的Fielddefinition对话框中定义所增加的字段:
Name:
Distn(字段名)
Type:
ShortInteger(整数类型)
Precision:
4(字段宽度)
按OK键返回。
属性表增加了以Distn命名的字段。
点击图标按钮(EditorTo
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- GIS 实习 教程 10