第一章 ArcGIS入门:数据管理及基本的空间分析工具

更新时间:2023-09-30 07:08:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

第一部分GIS和空间分析的基本方法

第一章 ArcGIS入门:数据管理及基本的空间分析工具

地理信息系统(GIS)是一种计算机信息系统,用于获取、存储、处理、查询、分析及显示地理数据。在GIS众多功能中,制图一直是它的一项主要功能。本章的首要目的是演示如何借助GIS进行电脑制图。主要技巧包括空间与非空间(属性)数据的管理以及二者之间的联系。但是,GIS远不只是一种制图工具,随着GIS软件功能越来越强大,界面越来越友好,它在空间分析中的应用越来越广。本章第二个目的是介绍GIS的一些基本空间分析工具。

鉴于ArcGIS在教育、商业及政府机构中的广泛应用,本书采用它作为主要的软件平台来完成GIS任务。除非特别说明,本书所有GIS操作都是基于ArcGIS9.0。各章结构的安排类似:先从基本概念着手,介绍GIS方法的基本内容;然后用案例来使者熟悉刚刚介绍的GIS方法。本章第1.1节简要介绍ArcGIS中的空间及属性数据管理,第1.2节为案例1A,通过绘制库婭霍加县的人口密度分布图来演示基于GIS作图的基本过程。第1.3节介绍ArcGIS中基本的空间分析工具,包括空间查询、空间连接、地图叠加等。第1.4节为案例1B,演示了一些空间分析工具:提取克里夫兰市的普查小区,生成多边形邻接矩阵。在高级空间统计研究如空间聚类和空间回归分析中,我们常常用多边形邻接矩阵来定义空间权重(参见第九章)。

本书假设读者具有初极GIS知识。本章不会涵盖所有的ArcGIS功能。相反,它只是回顾ArcGIS的主要功能,给读者一个”热身赛”, 以便引导读者继续学习章节中的一些高级空间分析方法。

1.1ArcGIS中的空间和属性数据管理

因为本书选择ArcGIS作为主要的软件平台,所以有必要简单介绍一下它的主要模块及功能。ArcGIS是美国环境系统研究所(ESRI)2001年发布的一种基于图形界面(GUI)的软件平台,用以代替以前基于命令行的ArcInfo。ArcGIS包括3个主要模块:ArcCatalog、ArcMap和ArcToolbox。ArcCatalog用于查看、管理空间数据文件。ArcMap用于显示、分析、编辑空

1

2

2

间及属性数据。ArcToolbox整合了各种数据管理和数据分析工具箱,包括地图投影管理、数据格式转换以及实现早期的ArcInfo命令。在ArcGIS9.0中,ArcToolbox可以从ArcMap或 ArcCatalog界面中激活。大部分(但不是全部)早期ArcInfo命令都可以在ArcGIS中实现。对于有些命令或功能,我们作空间分析还是用的较勤,仍然需要用到ArcInfo的命令行界面。例如,在附录1中讨论了如何用ArcInfo Workstation来读取、输出ASCII文件。第二章中的案例2介绍了如何用ArcInfo Workstation来计算网络距离。 1.1.1地图投影及空间数据模型

GIS不同于其他信息系统的一个显著特点是它能够管理地理或空间(区位)数据。为了理解这一点,我们需要具备地理坐标系统的基础知识,例如,我们需要了解经纬度及用x、y坐标在各种平面坐标系上的表示方法。将地球的椭球表面转换为平面,或在不同平面坐标系之间进行转换的过程称为地图投影。在ArcGIS中,ArcMap会自动地将不同坐标系的数据转化为最先添加的图层坐标系,这个过程一般称为即时投影变换(on-the-fly reprojections)。但是,如果数据量较大的话,这个过程可能会花很多时间。所以,同一个项目里面的所有图层最好用同一种投影。美国常用的投影有两种:通用横轴墨卡托投影(UTM)和州平面坐标系统(State Plane Coordinate System,SPCS)。 严格来说,SPCS并不是单一的一种投影,它可能使用三种投影中的一种:兰伯特等角圆锥投影、横轴墨卡托投影、斜轴墨卡托投影。为了尽量减少变形,南北向长条形的州或地区使用横轴墨卡托投影,东西向长条形的州或地区使用兰伯特等角圆锥投影。有些州(如阿拉斯加、纽约州)可能用不只一种投影。更多内容,读者可以参阅ESRI公司ArcGIS光盘上的“理解地图投影”PDF文件。

在ArcGIS中查看空间数据图层的投影,可以在ArcCatalog中点击该图层,然后选择Metadata > Spatial,或者在ArcMap右键单击图层,依次选择layer > Properties > Source。

在ArcToolbox中进行投影相关操作的办法为:依次点击Data Management Tools > Projections and Transformations,在投影与变换工具箱(Projections and Transformations)下,投影定义工具(Define Projection)将新建一个包含投影参数的投影文件(PRJ),或者矫正原来

3

的错误投影。投影定义工具只是标记地理数据的正确坐标系统,坐标系统本身不会被改变。对于矢量空间数据,选择Feature > Project,将坐标系统从一种投影转换到另一种投影,并生成一个新的图层。本工具中提供了如下一些选项:创建新坐标系统,使用一个现存的坐标系统,从一个地理数据中输入坐标系统。对于栅格数据,则选择Raster > Project Raster.

GIS可以处理矢量和栅格两种空间数据。在处理矢量数据时,GIS用地理坐标点来构建点、线、面等要素;在处理栅格数据时,GIS借助按行列排列栅格单元来表征空间要素。栅格数据的结构比较简单,模型构造相对容易。社会经济应用中大多使用矢量数据,本书的大部分GIS应用也使用矢量数据。大部分商业GIS软件都提供了矢量、栅格数据的互相转换。在ArcGIS中,可以通过调用ArcToolbox中的转换工具(Conversion Tools)来实现。

ESRI公司的早期GIS软件使用coverage数据模型。后来在开发ArcView软件包时,采用了shapefiles数据模型。在ArcGIS 8及以后的版本中,开始使用geodatabase模型,代表了面向对象数据模型的新趋势。面向对象的数据模型把物体的几何特征(空间数据)也当作一种属性数据来存储,而传统的coverage和shapefiles模型是将空间和属性两种数据单独存储的。一般而言,社会经济分析中的空间数据和属性数据常常来自不同的渠道,在用GIS进行制图或分析之前的一个基本任务是把他们连接在一起。这就涉及到下面将要介绍的属性数据管理了。 1.1.2属性数据管理及属性连接

GIS数据分为两类,即空间数据和属性数据。空间数据表征地图要素的几何特征,属性数据则描述要素的一些特征。属性数据往往以表格或表格文件的方式存储。Shapefile属性表使用dBase数据格式,ArcInfo Workstation使用INFO格式,geodatabase表格使用Microsoft Access格式。ArcGIS也能够读取几种ASCII数据格式,包括逗号分隔和tab分隔的文本文件。附录1讨介绍了用ArcGIS输入/输出ASCII数据的方法,如果要用GIS和其它软件(如SAS)进行高级分析,或者自己编写一些程序来完成复杂的任务,这种数据转换是非常重要的操作。

基本的数据管理任务,有些用ArcCatalog或ArcMap都可以实现,而其他一些任务则只有其中一种工具可以完成。例如,新建数据表或删除/拷贝一个数据表都只能在ArcCatalog中实

4

3

现(前面我们曾提到,ArcCatalog可以用于查看和管理GIS数据文件)。数据表的创建过程为:右键单击将要在里面创建数据表的文件夹,选择new即可。而要删除或拷贝数据表,只要在ArcCatalog中右键单击该数据表,然后单击Delete(或Copy)即可。

如果要在一个数据表中新增一个变量(可能是在shape文件属性表或dBase文件中新增一列或是在ArcInfo workstation的INFO文件中新增一项),ArcCatalog和ArcMap都可以胜任。删除INFO文件中的某一项也可以任选ArcCatalog或ArcMap之一来完成;但是,删除dBase文件中的一列则只能用ArcMap来实现。例如,在shape文件属性表中新增一列,可以用ArcCatalog来实现,即右键点击shape文件 > Properties > Fields,在空白行里面输入新建列

的名字,并定义数据类型即可。在ArcMap中,则要先打开数据表 > Options > Add Field。在ArcMap中删除一列,可以打开数据表,然后右键单击该列,然后选Delete Field即可。如果要进行列之间数据的运算,可以用ArcMap:打开数据表 > 右键单击列 > Calculate Values。此外,在ArcMAP中,可以通过右键单击列,然后选择Statistics来得到一些基本的统计参数。

在GIS中,我们常常使用的属性连接,是基于某一个相同列将两张表的信息连接在一起。被连接的表可能是一个与特定地理数据库有关的属性表,也可能是一个独立的数据表。在进行属性连接时,公共标签的名字可以不同,但它们的数据类型必须匹配。数据表之间的连接关系有多种:一对一、多对一、一对多、多对多。一对一或多对一连接是通过ArcGIS中的join来完成的。但是,一对多或多对多连接则不能用join来实现,这需要用ArcGIS中的relate来关联两张表,在关联的同时会保持两张表各自独立。在进行关联(relate)时,是从一张表中选取一条或多条记录,然后从另一张表中选取若干条关联记录。表1.1列出了上述连接的关系及所用的ArcGIS工具。

连接(join)或关联(relate)是通过ArcMap来实现的。在地图目录中,右键单击空间数据或目标表格,然后依次选择Joins and Relates > Join(或Relate),然后,在连接数据对话框中选择“Join attributes from a table”。连接只是暂时的,并不会新建数据表,如果退出项目时不保存的话,下次再打开时连接就没有了。可以把连接后的结果输出为新的数据表从而永久地保

4

5

存。

一旦属性信息连接到空间图层,我们就可以用ArcGIS方便地制图了。在ArcMAP中,右键单击图层,选择Properties,在弹出的对话框中选择Symbology。在这里,我们可以选取某一列指标来绘制地图,可以选择要素显示的颜色和图例,设置显示的模板。地图要素(比例6

尺、指北针、图例)可以从主菜单中插入(Insert)i。 1.2案例1A:绘制俄亥俄州库娅霍加县人口密度模式图

对于那些不太熟悉GIS的读者,如果能够通过简单地点击几下鼠标就可以亲自绘制一张地图,则可以很快尝GIS的甜头, 克服对GIS复杂性的神秘感。本节通过一个例子来演示如何在GIS连接空间和非空间信息,并用于绘制地图。在接下来的操作中,我们将演示第1.1节里面介绍的大部分功能。

完成一个GIS项目开始之前先要收集相关数据。一般而言,我们可以使用现存的数据。在美国社会经济应用研究中,美国人口普查局发布的拓扑集成地理编码参照文件(TIGER)及十年一度的人口普查数据是空间数据和属性数据的主要来源。这两种数据都可以从普查局的网站下载()。熟练的ArcGIS用户可以直接下载TIGER数据,然后用TIGER转换工具提取所需空间数据。依次点击ArcToolbox里面的Coverage Tools > Conversion > To Coverage > Advanced Tiger Conversion(或Basic Tiger Conversion)即可激活TIGER转换工具。转换过程可能会花些时间,而转换之后的数据可能还需要进一步的加工。所幸的是,一些网站提供了业已处理好的ArcGIS格式(shapefiles或coverage)的TIGER空间数据下载服务。ESRI发布ArcGIS软件时,附送有包含这些数据的光碟。如果空间数据是交换格式(e00)的,则可以很方便地进行转换:依次点击:ArcToolbox > Coverage Tools > Conversion > To Coverage > Import from Interchange File。在下面的案例中,我们将直接使用从ESRI网站下载的shapefile空间数据。

尽管读者可以自己下载数据,但为方便起见,本书光盘中提供了所需数据: 1. shape文件:tgr39035trt00; 2. dBase文件:tgr39000sf1trt.dbf。

5

在本书中,所有计算机文件、变量名以及某些工程中将要用到的命令行都用Courier New 字体。

下面是分步介绍的操作过程。 1. 下载空间数据

登录ESRI公司的网站,进入到2000年人口普查TIGER/Line Data页面:

7

http://www.esri.com/data/download/census2000_tigerline/。选择Ohio州Cuyahoga县,下

载2000的普查小区数据,为压缩后的shape文件。解压后得到名为tgr39035trt00的shapefile图层。在tgr39035trt00这个文件名中,tgr表示它来源于TIGER文件,39是州的FIPS编码,035是县的编码,trt00表示2000的普查数据。Shapefile图层至少包含3个文件:.dbf、.shp、.shx。有些还包括其他一些文件如.prj、.sbx、.avl、.xml。为方便起见,本书余下部分一律用单数形式的“shapefile”指代一个shapefile图层所有文件。

2.转换到UTM投影

在ArcCatalog中,查看shapefile文件tgr39035trt00的投影,发现它使用的是地理坐标系统。在ArcToolbox中,依次选择Data Management Tools > Projections and Transformations > Feature > Project,激活投影变换对话框。在对话框中,选择tgr39035trt00.shp作为输入数据,将输出数据命名为cuyautm.shp,定义输出坐标系统为UTM(zone 17,units meters)。在这里,我们从一个现存的数据集中提取投影文件来定义输出的坐标系统:点击“Output Coordinate System”旁的图标,激活空间参照属性对话框 > Import > clevbnd。图1.1为本任务的对话框。点击ok执行任务。

3. 计算shapefile文件中面要素的面积

在ArcMap中(本书中除非特别说明,ArcMap是我们ArcGIS的默认工作环境),打开cuyautm的属性表,右键单击Options按钮,选择Add Field,新增一列area,设置数据类型为双精度Double。右键单击列area,选择Calculate Values以计算面积。在对话框中,点击Advanced,在第一个文本框中输入下述VBA命令,

Dim dblArea as double Dim pArea as IArea Set pArea = [shape] dblArea = pArea.area

在第二个文本框,即“area=”下面的文本框中输入dblArea。点击OK计算面积。图1.2为计算面积的对话框示例。

需要说明的是,在更新的ArcGIS版本(如9.2)中, 计算面积很简单:右键单击列area,选择Calculate Geometry,然后在对话框中的Property项选Area、Units项选Square Meters [sq m]以计算面积。

4.下载属性数据

属性数据可以从上面同一个网站下载,选择“2000 census tract demographics (SF1)”即可。属性数据tgr39000sf1trt.dbf是整个俄亥俄州的数据,为dBase格式,SF1表示Summary File 1(即基于普查短表的100%普查的汇总数据)。这里的dBase文件并不包含所有的普查变量。如要获取完整的普查数据,可以访问2000年人口普查网站:http://www.census.gov/main/www/cen2000.html。处理SF1、SF3等文件时,需要知道2000年人口普查数据的结构,并要用到一些数据分析软件如SAS、Access。SF3 就是基于普查长表的1%抽样数据。

5. 提取凯霍加县的属性数据

在ArcMap中,添加并打开表tgr39000sf1trt.dbf。点击表右下角的选项按钮(Options)> 选择Select By Attributes > 输入SQL(结构查询语言)语句:county=’035’并按Apply,执行查询(第1.3节有更多关于ArcGIS的查询操作)。所有凯霍加县的数据将被选中。点击Options键,将结果输出(Export)名为cuya2k_popu.dbf的文件。如果愿意,可以把该文件中多余的数据列删去,只保留我们需要的STFID和POP2000两列。

这一步可以略过,即直接将表tgr39000sf1trt.dbf连接到图层cuyautm,所得结果

7

8

将自动去掉其他县的数据。这里设计这一步是为了让读者练习属性查询这一功能。

6. 连接空间数据和属性数据

右键单击图层cuyautm > Joins and Relates > Join,基于公共标签STFID将表cuya2k_popu.dbf连接到cuyautm。STFID是每个普查小区的唯一标志码,包含州(2位)、县(3位)及普查小区(6为)的编码。图1.3显示了空间数据和属性数据的连接方式及与地图要素的关系。

7. 添加并计算人口密度

右键单击图层cuyautm,选择Open Attribute Table,打开属性表以检查连接结果。在连接后的表中,列的名称由两部分组成,第一部分为原表名,第二部分为列名。例如, cuyautm.area表示该列为cuyautm属性表中的area变量,tgr39000sf1trt.STFID表示表tgr39000sf1trt.dbf中的STFID(变量名过长时会自动截短)。在本书后续讲解(例如计算公式、表连接等操作)中,除非为了强调,当我们提到列名称时,将省略源表名。

单击Options按钮> Add Field,新增一列popuden,此列将显示在cuyautm属性表的最后,但位于表cuya2k_popu.dbf第一列之前。右键单击列popuden,选择Calculate Values ,输入公式1000000*[POP2000]/[area]。在公式中,POP2000和area都是通过直接双击最上面对话框中的列名称来实现的,这样既可以节省时间,也可以减少直接输入可能出现的错误。在本书后续讲解中,为简单起见,我们只列出计算公式如 popuden=1000000*POP2000/area。注意到地图投影的单位是米,而人口密度的单位为每平方公里的人口数,所以我们公式中乘上了1000,000。

8. 绘制人口密度模式图

右键单击图层cuyautm > Properties > Symbology > Quantities > Graduated Colors,基于popuden绘制人口密度图。我们可以尝试不同的分类方法、分类数及色彩方案。在主菜单中,选择View > Layout View来预览地图。在主菜单中,选择 Insert > Legend(Scale Bar, North Arrow等),可以插入比例尺、指北针、图例等地图要素。

9

图1.4为研究区内的人口密度图,北部的那一大片空白区域为伊利湖。本图中的人口密度分级是作图者自己定义(Customized)。

1.3ArcGIS中的空间分析工具:查询、空间连接、地图叠加

许多空间分析任务需要利用空间要素之间的位置关系,进行查询(queries)、空间连接(spatial joins)及地图叠加(map overlays)。这三种都是空间分析的基本工具。

查询包括属性(非空间)查询和空间查询。属性查询是基于属性表来提取在该属性表中的属性信息,或对应的空间图层中的空间信息。在ArcMap中进行属性查询,有两种办法(1)从主菜单中选择Selection by Attributes;(2)在一个打开的数据表中,选择Options按钮 > Selection by Attributes。两种方法都是基于属性变量用SQL查询语句来选择空间要素(或只是简单地从一个独立的属性表中选取若干条记录)。案例1A第5步中已经用到了这个功能。在主菜单的Selection菜单下,另有一个选项为交互式选择方法(Interactive Selection Method),就是用鼠标在屏幕(地图或属性表)上选择要素。

与其他信息系统相比,GIS的一个独特之处在于它的空间查询能力,即能够基于不同图层要素之间的位置关系进行信息查询。主菜单Selection菜单有一个Selection by Location选项,它可以基于一个图层中的要素与另一个图层中的要素之间的位置关系进行查询。可供查询的空间位置关系包括相交(intersect)、在一定范围之内(are within a distance of)、完全包含(completely contain)、完全在范围之内(are completely within),等等。

查询(属性查询或空间查询)所得结果可以输出为新的数据文件:(1)用右键单击源图层,然后选择Data > Export Data,可以将查询所得空间要素输出为新的图层文件;(2)单击数据表中的Options按钮 > Export,可以将结果保存为数据表。

属性连接是基于两表的共同列进行的,而空间连接是基于两个图层空间要素的位置关系如重叠、近邻等来完成的。我们用源图层和目标图层来区分不同图层在空间连接时的作用相异:源图层的属性经过空间连接后就转换到目标图层中了。如果源图层中的一个对象对应于目标图

10

层中的一个或多个对象,则是一个简单的空间连接(Simple join)。例如,将县域多边形图层(源图层)空间连接到学校位置(目标图层)的点图层,县图层的属性(如FIPS编码、县名、县长名)就转到那些落入县域边界内的学校。如果源图层的多个对象对应于目标图层的一个对象,就可能进行两种操作:汇总连接(summarized join)和距离连接(distance join)。汇总连接是指将源图层的数值属性进行汇总(例如取平均值、求和、最小值、最大值、标准差、方差)后再将结果添加到目标图层中。距离连接是从源图层所有要素中寻找一个距离目标图层中的匹配对象最近的要素,然后将它的属性及距离值(为二要素之间的距离)添加到目标图层中。例如,我们可以将地理位置编码的犯罪数据(源图层)与普查小区(目标图层)进行空间连接,从而得到按普查小区汇总的犯罪数,这就汇总连接;我们也可以将公交站点图层(源图层)与普查街区重心的点图层(目标图层)进行空间连接,从而得到距离每个普查街区最近的公交站点,这就是距离连接。

不同空间要素之间的连接方式多种多样(Price, 2004: 287-288)。表1.2是ArcGIS中各种空间连接的小结。与属性连接类似的是,空间连接是在ArcMap中实现:右键单击源图层 > 选择Joins and Relates > Join。在连接数据对话窗口中,选择“Join data from another layer based on spatial location”而不是“Join attributes from a table”。后者就是前面已经讲述的属性连接。

地图叠加可以广义地定义为任何不同图层改变要素的空间分析。可以用ArcGIS来实现 常用的地图叠加工具主要有:剪切(Clip)、相交(Intersect)、合并(Union)、缓冲区(Buffer)、多重缓冲区(Multiple Ring Buffer)。剪切是用一个图层的边界来截取另一个图层。相交是取叠加两图层的公共部分即交集。合并是取两个图层的并集。缓冲区是基于点、线或面状要素向外扩展一定的缓冲距离形成面状要素。多重缓冲区是基于多个距离同时生成一系列的缓冲区。在ArcGIS 9.0中,上述地图叠加工具分散在ArcToolbox > Analysis Tools中的不同位置:剪切在Extract工具库中,相交、合并在Overlay工具库中,缓冲区、多重缓冲在Proximity工具库中。本书用到的其他地图叠加工具包括:删除(Erase,参见第1.4.2节第3步)、近邻(Near ,参见第2.3.2节第2步)、点距离(Point Distance,参见第2.3.1节第2

11

步)、边界合并(Dissolve,参见第4.3.1节第2步)、附加(Append,参加第4.3节)等。

有读者可能已经注意到空间查询、空间连接及地图叠加之间的相似之处。事实上,许多空间分析任务可以用这三种方法中的任何一种来实现。表1.3列出了他们之间的区别。空间查询只是寻找并显示所需信息,它本身并不创建新的图层(除非我们将选中的要素输出成新的文件)。空间连接总是将连接结果保存为一个新的图层。空间连接与地图叠加有重要区别。空间连接只是识别输入图层空间要素之间的位置关系,它并不改变原来的空间要素,也不创建新的要素。在地图叠加过程中,一些输入要素被分割、融合或删去除以创建一个新的图层。地图叠加比空间连接的运算时间长,而空间连接的运算时间又比空间查询长。 1.4案例1B:提取克里夫兰市的普查小区并进行多边形邻接分析

本例将用到随书光盘中的如下数据:

1. shapefile文件cuyautm:俄亥俄州库亚霍加县的所有普查小区; 2. coverage图层文件clevbnd:俄亥俄州克里夫兰市的边界。

光盘中的所有coverage文件都是ArcInfo交换文件格式的(.e00),需要先进行格式转换:选择ArcToolbox的Coverage Tools > To Coverage > Import From Interchange File。这里的shapefile文件cuyautm 是案例1A所得结果,但为了方便在光盘中也提供了这个数据,以便读者可以独立于案例1A进行下面的操作。Coverage文件clevbnd是从网上下载的。 1.4.1提取克里夫兰市的普查小区

很多情况下,GIS使用者需要从一个较大区域中提取一个较小的研究区。下面我们要做的就是从库亚霍加县中提取克里夫兰市的普查小区。将两个图层叠加后发现,clevbnd的边界跟cuyautm边缘处的普查小区边界不完全重合。Cuyautm包含更多的地理细节。虽然二者的边界不完全一致,但Cuyautm中各普查小区的重心都落在clevbnd边界之内。我们的目的就是要找到cuyautm图层中那些落入clevbnd边界之内的重心,从而提取克里夫兰普查小区的多边形图层。如果我们只是简单地用clevbnd的边界来剪切cuyautm,将会丢失一些cuyautm中的地理信息。

12

13 12

1. 生成库亚霍加县普查小区的重心

激活ArcToolbox > 选择Data Management Tools > Features > Feature To Point。在弹出的对话框中,选择cuyautm作为输入要素,将输出要素命名为cuya_pt,并选中Inside的选项,于是得到普查小区重心的shapefile文件 cuya_pt。

2. 识别区市边界内的普查小区重心

右键单击目标图层cuya_pt,选择Joins and Relates > Join。在对话框中,选择Join data from another layer based on spatial location,设置源图层(source layer)为clevbnd polygon,连接选项为it falls inside,将输出结果命名为tmp1。图1.5为空间连接对话框示意图。打开tmp1的属性表可以看到,对于城市边界之内的普查小区,clevbnd_id = 1,而边界之外的普查小区,clevbnd_id = 0。

3. 将普查小区重心信息添加到多边形图层

添加cuyautm图层,右键单击图层并选择Joins and Relates > Join > 选择Join attributes from a table,用tmp1作为源数据表,STFID为连接关键词(目标图层cuyautm和源图层tmp1都以此为关键词)。

4. 提取市区内的普查小区

打开cuyautm 的属性表> 单击 Options 标签 > 选择Select by Attributes > 设置选择标准tmp1.clevbnd_id = 1。所有在城市之内的多边形将被选中并加亮。右键单击图层cuyautm并选择 Data > Export Data,需要注意的是,最顶端Export一览中为Selected features,将输出结果命名为clevtrt。所得shapefile文件clevtrt为克里夫兰市的所有普查小区。

上面我们用到了空间连接。正如第1.3节中介绍的那样,我们也可以用空间查询(Selection by Location),或地图叠加工具(ArcToolbox > Analysis Tools > Overlay > Identity)来完成上述任务。例如,用空间查询的方法为:在主菜单中,点击Selection > Selection by Location > 使用查询条件select features from cuyautm that have their center in

13

14

clevbnd polygon> 将所得结果输出为clevtrt的shapefile文件。 1.4.2识别邻接多边形

空间分析中,定义多边形邻接矩阵是一项非常重要的任务。例如在第九章基于面单元的空间聚类和空间回归时,我们用邻接矩阵来定义空间权重,从面分析表征空间自相关。多边形之间的邻接包括两种:(1)R邻接,也称边邻接,即两个多边形有一段共同的边界;(2)Q邻接,也称广义邻接,指两个多边形有共同点或边时即为邻接多边形(Cliff and Ord, 1973)。对于R邻接,我们可以用ArcInfo Workstation里面的PALINFO命令来得到多边形邻接矩阵。下面的案例分析使用Q邻接来定义邻接多边形,依次来演示第1.3节中介绍的空间分析工具。

这里我们以一个普查小区为例,寻找完的邻接多边形。与第1.4.1节中第4步类似,从clevtrt图层中选取TRACTID = ‘1038’ 的普查小区,并将其输出成名为zonei的shapefile文件。下面将基于Q邻接来寻找zonei的邻接普查小区。图1.6显示了抽样小区周边普查小区的TRACTID值。基于Q邻接,普查小区1038共有6个邻接普查小区(1026、1028、1029、1035、1036和1039)。如果是基于R邻接,则普查小区1028将不包括在邻接小区内。

下面是识别zonei的邻接小区的具体过程。 1. 生成缓冲普查小区

在ArcToolbox中,选择Analysis Tools > Proximity > Buffer。以一个较小的距离(如30米)在zonei周边做一个缓冲区,将结果输出名为zonei_buff的文件。缓冲区的距离必须大于模糊容差(对于这里的zonei,模糊容差大约为1米),但也要足够小,以避免超出直接相邻多边形的范围。

2. 从研究区中剪切缓冲区

在ArcToolbox中,选择Analysis Tools > Extract > Clip。选择clevtrt作为输入要素,zonei_buff作为剪切要素,将输出结果命名为zonei_clip。

3. 提取邻接多边形

14

15

在ArcToolbox中,选择Analysis Tools > Overlay > Erase。选取zonei_clip作为输入要素,zonei作为删除要素,将输出结果命名为zonejs。所得的shapefile文件zonejs包含了zonei基于Q邻接的所有邻接普查小区。

图1.7演示了操作过程。图层zonei只包含一个普查小区即1038。所得缓冲区zonei_buff只包含一个多边形(缓冲区里面的普查小区1038在图1.7里示出来只是为了进行对比)。用缓冲区剪切研究区得到zonei_clip,包括普查小区1038一共七个多边形。通过删除操作可以从zonei_clip中去掉原来的普查小区zonei。所得结果zonejs包含6个普查小区(图1.7中给出了各自的TRACTID值)。

生成研究区的多边形邻接矩阵需要对所有普查小区循环进行上述操作。我们在光盘中提供了一个AML(Arc Micro Language)程序Queen_Cont.aml来实现这个任务,该程序是基于(沈清1994)的工作开发的。

最后,我们可以用ArcCatalog删除不需要的文件来节省存储空间,我们主要保留cuyautm、cuya_pt和clevtrt三个文件即可,后续章节中将用到这三个文件。 1.5小结

总结本章介绍的GIS及空间分析技巧主要包括如下几点: 1. ArcGIS中的空间数据格式及格式转换; 2. 地图投影及投影变换;

3. 属性数据管理(创建、编辑、删除数据库及数据列); 4. 属性连接(包括属性数据与空间数据的连接); 5. 绘制属性地图; 6. 空间连接; 7. 属性与空间查询;

8. 地图叠加操作(剪切、缓冲区、相交、合并、删除)。

15

16

表1.3 空间查询、空间连接和地图叠加的对比

基本空间分析工具 空间查询 功能 基于不同图层要素之间的位置关系进行信息查询,然后显示在屏幕上。 识别不同图层要素之间的位置关系并将源图层要素的属性传给目标图层。 将不同图层叠加以生产新的要素,并将结果保存为新的图层。 是否创建新的图层 否(除非将选中的要素输出为新的数据文件) 是 是否生成新的要素 否 运算时间 最少 21

空间连接 否 介于其间 地图叠加 是 是(分割、融合、或删除一些要素,同时创建新的要素) 最多

本文来源:https://www.bwwdw.com/article/k6dd.html

Top