




已阅读5页,还剩10页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1519第二章 距离和时间的测量本章介绍空间分析中经常遇到的一个问题:测量距离和时间。空间分析归根结底是考察自然和人类活动在空间分布上的变化,换言之,即考察这些活动相对于参照位置随距离的变化。很多时候,一旦通过GIS测定了距离或时间,我们就可以在GIS环境之外开展进一步的研究。GIS技术的不断进步和广泛应用使得相关研究工作变得越来越容易。距离和时间的估算贯穿全书。例如,在第三章的空间平滑和空间插值中使用距离测量来确定纳入计算的对象及其对计算影响的程度。在第四章服务区分析中,商店与消费者之间的距离(或时间)确定了距离消费者最近的商店以及居民到商店购物的频率。第五章可达性测量中,距离或时间是构建移动搜寻法或引力法的基础。第六章考察的就是人口密度或土地利用强度从城市或区域中心向外随距离衰减的态势。在本书其他各章中也都会用到距离或时间的测量。本章的结构如下。第2.1节概略介绍各种距离度量。第2.2节介绍如何计算网络的最短距离(时间)及其如何用ArcGIS来实现。第2.3节为方法示例,计算了中国东北地区各县与几大中心城市间的欧式距离和路网距离(Find/Replace all)。第2.4节是本章的简要小结。2.1距离的测量日常用到的距离包括欧式距离(直线距离)、曼哈顿距离和网络距离。欧式距离是两点之间的直线距离。除非特别说明,本章提到的距离都是欧式距离。在有GIS之前,我们全靠用数学公式来计算距离,计算的准确性有限, 也受收集到的数据精度和所用和计算公式的复杂性影想。如果研究区的地理范围较小(如一个城市或一个县域单元),直角坐标系下两个结点(x1, y1) 、 (x2, y2)之间的欧式距离可以近似地表作(2.1)20如果研究区范围较大(如一个州或一个国家),则需要计算大地距离,要考虑到地球的曲面。两点之间的大地距离是假设地球为球形时两点之间的最大圆弧的长度。已知两点的地理经纬度坐标以弧度计为(a, b)、(c, d),他们之间的大地距离为(2.2)这里,r为地球半径(约为6,367.4 km)。正如其名,曼哈顿距离是度量那些路网类似纽约曼哈顿区(正北正南直东直西)距离。曼哈顿距离是x和y方向距离之和。欧氏距离是直角三角形中的弦, 曼哈顿距离为勾,股之和。例如,直角坐标系下,两点(x1, y1)、 (x2, y2)之间的曼哈顿距离记为 (2.3)与式(2.1)一样,式(2.3)定义的曼哈顿距离只在一个较小地区内(例如一个城市)才有意义。网络距离是基于实际路网(如公路网,铁路网)的最短路径(或最短时间或最小成本)距离,将在第2.2节中详细讨论。如果是栅格形路网,可以用曼哈顿距离近似地代替网络距离。在ArcGIS中,可以通过简单地点击(“measure”)工具来得到两点之间的欧式距离(或若干点之间的累计距离)。许多ArcGIS空间分析会顺带给出一些距离值。例如,第1.3节介绍的距离连接(空间连接法)给出了两个空间数据集合中不同物体之间的最短距离。在空间连接中,线或多边形之间的距离是最近点之间的距离。在ArcToolbox Analysis Tools Proximity中,Near工具用来计算图层中任一点与另一图层中跟它最近的线或点的距离。某些操作需要用到同一图层或不同图层中任意两点之间的距离即距离矩阵。ArcToolbox里的点距离(Point Distance)工具可以实现这个功能,调用办法为依次点击ArcToolbox Analysis Tools Proximity Point Distance。在输出文件中,如果DISTANCE值为0,则可能实际距离确实为0(例如,某点跟它自身的距离),也可能是超出了搜索半径之外。当前ArcGIS版本中没有内嵌不太常用的曼哈顿距离计算工具。计算曼哈顿距离时,需要从ArcToolbox生成各点的直角坐标。对于一个shape文件,可以调用Data Management Tools Features Add XY Coordinates来实现。对于一个coverage文件,可以调用Coverage Tools Data Management Tables Add XY Coordinates来完成。在ArcGIS中计算网络距离则更为复杂,我们将用以下两节介绍。212.2测算网络距离和网络时间网络由一组结点及连接结点的线段(边或连接线)组成。如果线段方向是确定的(如单向的街道),我们得到一个定向网络。一个没有确定方向的网络可以看作定向网络的一种特例,即每条线段有两个可能的方向。最短路径问题就是寻找从某个起点到某个终点之间的最短路径,即在给定线段阻滞(如旅行速度)的情况下距离最短或时间(费用)最省。最短路径问题有多种解决办法,如本节将要讨论的标号设定算法及附录2中介绍的赋值图像法(或L-矩阵法)。2.2.1最短路径问题的标号设定算法广为使用的标号设定算法最早由迪卡斯缺(Dijkstra,1959)提出。该方法是这样的,为每个结点设置一个“标签”,代表到某个结点的最短距离。为简便起见,起始结点被名为结点1。本法包括如下四步:1. 赋予起始结点(结点1)的固定标签y1=0,其他结点赋予一个临时标签yj=M(一个很大的数)。令i=1。2. 以结点i为起点,重新计算临时标签yj=min(yj,yi+dij),从而得到结点j的临时标签,并且dij Features Feature To Point,选择cntyne作为输入要素,并将输出要素(县域重心)命名为CntyNEpt,选中选项。 “Inside”(既重心在县城范围)2.计算欧式距离25在ArcToolbox中,依次选择Analysis Tools Proximity Point Distance,选择CntyNEpt作为输入要素(Input Features),选择city4 (point)作为近邻要素(Near Features),并将结果命名为Dist.dbf。这里不需要限定收索半径,因为我们需要计算所有的距离。所得表中一共有203(县) 4(市)= 812条距离记录。在距离表中加入一列airdist,根据公式airdist=distance/1000计算,得到欧式距离的公里数(原图距离单位是米)。263.可选操作:添加县域重心及城市重心的XY坐标在ArcToolbox中,依次选择Data Management Tools Features Add XY Coordinates,选择CntyNEpt作为输入要素。在CntyNEpt的属性表中,所得结果保存在point-x和point-y两列中。此外,在ArcToolbox中,依次选择Coverage Tools Data Management Tables Add XY Coordinates,选择city4作为输入文件。在属性表city4中,所得结果保存在x-coord和y-coord两列中。4. 可选操作:将坐标连接到县和市的距离表在ArcMap中,右键点击表Dist.dbf,依次选择Joins and Relates Join,用CntyNEpt (源数据表)中的FID和Dist.dbf(目标表)中的INPUT_FID作为连接关键词将二表连接在一起。类似地,用City4属性表中的FID和新Dist.dbf表中的NEAR_FID作为连接关键词将二表连接在一起。5. 可选操作:计算曼哈顿距离打开新表Dist.dbf,添加一列Manhdist,按照公式Manhdist = abs(x-coord - point-x)/1000+abs(y-coord - point-y)/1000计算数值。所得曼哈顿距离的单位为公里,通常比欧式距离大。2.3.2第二部分:测算交通路网距离2627两地之间(这里是起始县城与目的地中心城市)的交通距离由三部分组成。图2.3给出了一个示例:(1)第一段(S1)是县城编号76到它最近的铁路结点171的直线距离;(2)第二段(S2)是铁路上两结点171和162之间铁路网络距离(途经165和163两个结点);(3)第三段(S3)是中心城市编号4到它最近的铁路结点162的直线距离。在这里,S1和S3以直线距离近似地代替,S2为两结点之间的路网距离。换言之,从县城#76到城市#4,假设其通行路径为:先从县城#76到最近的结点171,然后通过铁路到结点162(途经结点165和163),最后到达中心城市#4。本节的主要工作即是寻找这些距离县城或城市最近的铁路结点,然后计算上述三段的距离,最后将其加总。1.准备交通网络图层在ArcToolbox中,依次点击Coverage Tools Data Management Topology Build,在railne图层上创建线拓扑关系。重复此过程,创建点拓扑关系。理想状态下,结点应定义为实际的铁路站点。但我们没有这样的数据,这里假设ArecGIS拓扑工具产生的结点就是铁路站点。2. 计算县城、城市与最近铁路结点之间的直线距离 在ArcToolbox中,依次选择Analysis Tools Proximity Near,并选择CntyNEpt作为输入要素,railne(结点)作为最近邻要素(Near Features)。在更新后的CntyNEpt 属性表中,NEAR_FID列为距离县城的最近结点,而列NEAR_DIST为它们之间的直线距离。用图层city4重复上述操作得到离中心城市最近的结点:以city4(点)为输入要素,railne(结点)为最近邻要素。在更新后的City4属性表中,列NEAR_FID为距离城市最近的铁路网络结点,另外的一列NEAR_DIST为它们之间的直线距离。这一步工作分别得到了县城和城市与其最近铁路结点之间的直线距离(图2.3中的S1和S3)。3. 寻找起,始结点对在计算路网距离时,起(始)结点不能重复。在CntyNEpt属性表中,有多个县城对应NEAR_FID中的同一个结点。例如,编码FID = 5 及FID = 8的两个县城,其最近邻结点都是NEAR_FID = 34的结点。也就是说,一些近邻的县城共享铁路网络上的同一个最近邻结点(始结点)。在city4属性表中,每个中心城市对应不同的铁路结点(末结点),因此无需再处理, 四个中心城市对应于四个不同的末结点,下面介绍如何定义不重复的始结点。打开属性表CntyNEpt,右键单击列NEAR_FID,选择Summarize,将结果保存为表Sum_FID.dbf,在该表中,列Cnt_NEAR_F(频率统计)代表每个NEAR_FID结点对应的县城数。当频率数大于1时,表明是多个县城共享同一个结点。表Sum_FID.dbf有149条记录,表明有149个不同的始结点。4. 定义始末结点的INFO文件28这一步主要为下一步准备两个INFO文件:一个包括所有的始结点,另一个包括所有的末结点。这两个INFO文件都必须用ArcInfo workstation来生成。数据表Sum_FID.dbf用于生成始结点的INFO文件,属性表city4.pat本身已经是INFO文件了,它将用于生成末结点的INFO文件。在ArcInfo workstation中,多边形或点图层的属性表文件扩展名为.PAT,意为Polygon(Point)Attrabute Table多边形(或点)属性表;线(Arc)属性表文件的扩展名为.AAT;结点(Node)的属性表文件扩展名为.NAT。ArcInfo workstation里的操作方法如下:在ArcInfo workstation中,切换到目标工程文件夹(路径)(例如,通过输入命令w c:Quant_GISproj2来实现),然后输入下述命令(这里,“/*” 之后的内容为命令行的注释说明):Dbaseinfo sum_fid.dbf tmp /* sum-fid。dbf转换成名为“tmp”的INFO文件Pullitems tmp fm_node near_fid /* 提取tmp中的“near_fid”,并生成INFO文件“fm_node”,即始结点文件Pullitems city4.pat to_node near_fid/*提取city4.pat中的“near_fid”并生成INFO文件“to_node”,即末结点文件。INFO文件fm_node和to_node中的列名称near_fid需要改为railne-id以便与铁路图层中的名字相对应。结点属性表railne.nat中的railne-id为每个结点的唯一标志码。这可以用ArcCatalog来实现:右键单击fm_node(或to_node),从内容菜单中选择属性(Properties),选择Items 标签,打开对话框窗口,点击Edit可以修改某项的名字。熟练的ArcInfo workstation用户,可以在workstation环境下修改变量名,也可以通过编写一段AML程序来自动实现。5. 计算铁路网络结点之间的距离。可以用下述ArcInfo workstation命令来实现:ap/* 调用arcplot模块netcover railne railroute/* 设置路径系统centers fm_node/* 定义始结点stops to_node/* 定义末结点nodedistance centers stops rdist 3000000 network idsq /* 退出在这里的“nodedistance”命令以3,000公里(或一个非常大的距离值)作为阈值,计算centers中每个结点跟stops中每个结点两两之间的距离,所得结果生成一个名为rdist的INFO 文件。最后两个参数是可选参数:“network”为默认选项(其他两个选项为“Euclidean”、“Manhattan”,分别用于计算欧式距离和曼哈顿距离),参数“ids”用于指定结点的ids值作为始末结点的唯一标志(默认值为“noids”)。在INFO文件rdist中,railne-ida项用于确定始结点,railne-idb项用于确定末结点,而network是它们之间的距离。上述过程用于计算始末结点之间的距离(即图2.3中的S2)。在fm_node表中有149个始结点,表to_node中有4个末结点,从而rdist中有1494 = 596条距离值,这比欧式距离文件Dist.dbf中的812条距离值要少。29下一步是将这三段距离值连接到一起:S2保存在表rdist中,而我们在上述第2步中得到的S1和S3分别保存在更新后的表CntyNEpt和city4中。然而,我们不能简单地将CntyNEpt和rdist连接起来得到S1和S2。由于每个末结点对应唯一的中心城市,把表City4和rdist连接起来(基于共同的末结点),从而得到一个包含距离S3和S2的表是不存在问题的。在上面第3步中我们已经提到,每个始结点可能对应着CntyNEpt中的若干个县城;而一个始结点又对应着rdist 中的4个末结点。因此,表CntyNEpt和rdist的关系将会是多对多的关系,这给我们创建包含S1、S2、S3这三段距离值的数据表带来一个挑战。在下面第6步中,我们将用欧式距离文件Dist.dbf作为一个模板来实现这个任务。图2.4(a)-(c)为这一过程的示例,可以方便读者理解。6. 添加直线距离值在ArcMap中,右键点击欧式距离表Dist.dbf,依次选择Joins and Relates Remove Join(s)。这是为了去掉前面操作时连接的一些不必要的数据列。与第一部分中的第4步类似,两次使用“join”:将属性表CntyNEpt连接到表Dist.dbf(对应的连接标志分别为FID和INPUT_FID),将属性表city4也连接到Dist.dbf(对应的连接标志分别为:FID和NEAR_FID)。注意到属性表得到了更新,即上述第2步计算得到的直线距离值S1和S3添加到了表Dist.dbf中:CntyNEpt.NEAR_DIST为县城与最近邻结点之间的距离, point:NEAR_DIST为中心城市与其最近邻结点之间的距离。图2.4(a)为本步的图示。7. 添加路网距离值为了将路网距离值rdist连接到表Dist.dbf,我们需要创建一个公共的连接标志linkid用于确定始末结点的唯一铁路路径。列linkid 由始末结点的ID标志组成。打开INFO表rdist,添加一列linkid(定义类型为“long integer”)并根据公式linkid = 1000*railne-ida + railne-idb计算。例如,如果railne-ida = 198,railne-idb = 414,则linkid = 198414。参见图2.4(b)中的左表。类似地,在表Dist.dbf中添加列linkid并根据公式Dist.linkid = 1000*CntyNEpt.NEAR_FID+point:NEAR_FID计算。参见图2.4(b)中的右表。最后,基于公共标志linkid将rdist连接到表Dist.dbf。8. 汇总三段距离值31在Dist.dbf中新增一列RoadDist(定义其类型为“float”),根据公式Dist.RoadDist = (CntyNEpt.NEAR_DIST + point:NEAR_DIST + rdist:network) /1000计算数值。这里,表Dist.dbf中的RoadDist为各县城与各大城市之间的交通网络距离(公里)。图2.4(c)为最后的结果。2.3.3第三部分:测算交通时间第二部分演示了测算路网距离的方法。测算交通时间的方法与此类似,下面仅仅指出二者的不同之处。在第1步中,在路网属性表railne.aat中添加速度属性speed,并为每段道路赋予一定的速度。然后,在该表中添加一列时间属性time,并根据公式time = length/speed计算。注意距离和速度的单位,必要时进行单位换算。例如,如果速度为km/hr,则公式应为time = (length/1000)/speed,所得时间的单位是小时。在第5步中,在执行NODEDISTANCE命令之前,添加一条命令用于定义交通阻力项:impedance time。在INFO文件rdist中,属性项network代表时间而不是距离。在第8步中,可以为两端的直线距离赋予一个假设的速度值。假设速度为50 km/hr,则全程的时间(小时)计算公式为:Dist.roadtime = (CntyNEpt.NEAR_DIST + point:NEAR_DIST) /1000/50 + rdist:network。最后,我们可以用ArcCatalog删掉一些不需要的数据,只要在表Dist.dbf中保留所有的距离值(每条记录包含三段距离)即可。这里的距离值将用于案例4B。2.4小结本章主要介绍了四种基本的分析技巧:(1)测算欧式距离;(2)测算曼哈顿距离;(3)测算网络距离;(4)测算交通时间。欧式距离和曼哈顿距离很容易通过GIS来得到,而计算网络距离和交通时间需要道路网络数据,计算步骤要复杂一些。本书后面一些章节中还会涉及欧式距离、网络距离或交通时间的计算,本章学到的这些基本技巧还有更多的训练机会。 附录2 用赋值图法求解最短路径问题赋值图或L矩阵提供了另外一种求解最短路径的方法(Taaffe et al, 1996: 272-275)。32以图A2.1所示的网络为例。这个网络代表了俄亥俄州北部地区的高速公路网,结点1为托莱多(Toledo),结点2为克里夫兰(Cleveland),结点3为剑桥(Cambridge),结点
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 课件显示异常
- 理货人员考试题及答案
- 客房考试题目及答案
- 真空垂熔工岗位操作规程考核试卷及答案
- 重冶火法精炼工技术考核试卷及答案
- 石脑油吸附分离装置操作工技术考核试卷及答案
- 竞赛规程考试题及答案
- 2025年教师招聘之《幼儿教师招聘》题库试题带答案详解
- 高炉原料工主管竞选考核试卷及答案
- 金属轧制考试题及答案
- 苏科版生物七年级上册全套课件
- 第二章:保险的性质和功能
- 《危险化学品重点县专家指导服务手册》
- 中医学概论智慧树知到答案章节测试2023年安徽中医药大学
- 中华全国律师协会律师办理企业破产法律业务操作指引
- GB/T 5218-1999合金弹簧钢丝
- GB/T 19812.5-2019塑料节水灌溉器材第5部分:地埋式滴灌管
- 湘教版六年级下册科学实验报告单 (湘教版)
- 水文地质学基础课件
- 《科学思维与科学方法论》第二章 科学思维的逻辑方法
- 青岛汽轮机调速系统使用说明书
评论
0/150
提交评论