第一部分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间及属性数据。
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),或者矫正原来的错误投影。
投影定义工具只是标记地理数据的正确坐标系统,坐标系统本身不会被改变。
对于矢量空间数据,选择Feature > Project,将坐标系统从一种投影转换到另一种投影,并生成一个新的图层。
本工具中提供了如下一些选项:创建新坐标系统,使用一个现存的坐标系统,从一个地理数据中输入坐标系统。
对于栅格数据,则选择Raster > Project Raster.3GIS可以处理矢量和栅格两种空间数据。
在处理矢量数据时,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中实现(前面我们曾提到,ArcCatalog可以用于查看和管理GIS数据文件)。
数据表的创建过程为:右键单击将要在里面创建数据表的文件夹,选择new即可。
而要删除或拷贝数据表,只要在ArcCatalog中右键单击该数据表,然后单击Delete(或Copy)即可。
如果要在一个数据表中新增一个变量(可能是在shape文件属性表或dBase文件中新增一列或是在ArcInfo workstation的INFO文件中新增一项),ArcCatalog和ArcMap都可以胜任。
删除INFO文件中的某一项也可以任选ArcCatalog或ArcMap之一来完成;但是,删除dBase文件中的一列则只能用ArcMap来实现。
例如,在shape文件属性表中新增一列,可以用ArcCatalog来实现,即右键点击shape文件 > Properties > Fields,在空白行里面输入4 新建列的名字,并定义数据类型即可。
在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”。
连接只是暂时的,并不会新建数据表,如果退出项目时不保存的话,下次再打开时连接就没有了。
可以把连接后的结果输出为新的数据表从而永久地保存。
一旦属性信息连接到空间图层,我们就可以用ArcGIS方便地制图了。
在ArcMAP中,右键单击图层,选择Properties,在弹出的对话框中选择Symbology。
在这里,我们可以选取某一列指标来绘制地图,可以选择要素显示的颜色和图例,设置显示的模板。
地图要素(比例尺、指北针、图例)可以从主菜单中插入(Insert)i。
1.2案例1A:绘制俄亥俄州库娅霍加县人口密度模式图对于那些不太熟悉GIS的读者,如果能够通过简单地点击几下鼠标就可以亲自绘制一张地5 图,则可以很快尝GIS的甜头, 克服对GIS复杂性的神秘感。