10地理信息系统实习教程第十章邻近区.docx

上传人:b****7 文档编号:10982759 上传时间:2023-02-24 格式:DOCX 页数:17 大小:1.11MB
下载 相关 举报
10地理信息系统实习教程第十章邻近区.docx_第1页
第1页 / 共17页
10地理信息系统实习教程第十章邻近区.docx_第2页
第2页 / 共17页
10地理信息系统实习教程第十章邻近区.docx_第3页
第3页 / 共17页
10地理信息系统实习教程第十章邻近区.docx_第4页
第4页 / 共17页
10地理信息系统实习教程第十章邻近区.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

10地理信息系统实习教程第十章邻近区.docx

《10地理信息系统实习教程第十章邻近区.docx》由会员分享,可在线阅读,更多相关《10地理信息系统实习教程第十章邻近区.docx(17页珍藏版)》请在冰豆网上搜索。

10地理信息系统实习教程第十章邻近区.docx

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(米),按“确定”键返回。

选用菜单Tools/BufferWizard…,在提示下完成操作:

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,在快捷菜单中选择CalculateValues…,系统提示:

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.3

Polygon200214299.7

Polygon300277073.1

关闭属性表,返回主窗口,可进一步用属性、要素相互查询的功能,查询要素的位置及其属性,体会邻近区的形状、面积。

 

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,在快捷菜单中选择CalculateValues…,系统提示:

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,在快捷菜单中选择CalculateValues…,系统提示:

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,在快捷菜单中选择CalculateValues…,系统提示:

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键盘输入邻近距离,下拉选择距离单位为米

DissolveOption(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:

Buffer_of_区界下拉选择,用该图层要素作为参照

√Useselectedfeatures(1featureselected)勾选,仅用进入选择集的要素

按Apply键继续,在选定的多边形范围的道路进入选择集,改变显示颜色,按Close键关闭窗口。

图10-8需要计算长度的道路进入选择集

打开要素属性表“Attributeof道路”,可以看到,道路图层的要素属性表共有585条记录,

36条记录进入了选择集,在地图上也可看出,和计算范围的边界重合的道路路段也进入了选择集。

鼠标右键点击道路属性表的字段名Length(每段道路的长度),选择菜单Statistics,属性Length的统计结果文本框显示如下:

 

Count:

36进入计算的路段数(即记录数)

……

Sum:

9489.259390选择集内道路路段长度总和

……

关闭统计结果文本框,关闭属性表“Attributeof道路”,返回dataframe3。

需要计算道路网密度的边界既是自己多边形的边界,也是周围其他多边形的边界,在几何上,边界线由两侧多边形共享,而且和周边道路重合,因此计算道路网密度时,和边界重合的道路长度应对半分开,分别计入两侧多边形。

在基本工具条中点击Identify图标

,出现Identify对话框,在Layers下拉条中选择图层名“区界”,在地图上点击需要计算道路密度的多边形,对话框内出现该要素的属性:

FieldValue

FID16

ShapePolygon

BOUND_ID2010

Area(多边形面积)991566.3

Perimeter(多边形周长)5354.7

范围内道路网密度为:

(9489.3-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:

Integer(整数类型)

Precision:

4(字段宽度)

Scale:

1(保留小数点位数)

按OK键返回。

属性表增加了以Distn命名的字段。

点击图标按钮(EditorToolbar),弹出编辑器工具条,选择Editor/StartEditing,该表进入编辑状态,参照前述的不同公园不同邻近距离的

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 历史学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1