空间基于GIS数量方法与应用中文教材第一章Word格式.docx
《空间基于GIS数量方法与应用中文教材第一章Word格式.docx》由会员分享,可在线阅读,更多相关《空间基于GIS数量方法与应用中文教材第一章Word格式.docx(20页珍藏版)》请在冰豆网上搜索。
ArcCatalog、ArcMap和ArcToolbox。
ArcCatalog用于查看、管理空间数据文件。
ArcMap用于显示、分析、编辑空间及属性数据。
ArcToolbox整合了各种数据管理和数据分析工具箱,包括地图投影管理、数据格式转换以及实现早期的ArcInfo命令。
在ArcGIS9.0中,ArcToolbox可以从ArcMap或ArcCatalog界面中激活。
大部分(但不是全部)早期ArcInfo命令都可以在ArcGIS中实现。
对于有些命令或功能,我们作空间分析还是用的较勤,仍然需要用到ArcInfo的命令行界面。
例如,在附录1中讨论了如何用ArcInfoWorkstation来读取、输出ASCII文件。
第二章中的案例2介绍了如何用ArcInfoWorkstation来计算网络距离。
地图投影及空间数据模型
GIS不同于其他信息系统的一个显著特点是它能够管理地理或空间(区位)数据。
为了理解这一点,我们需要具备地理坐标系统的基础知识,例如,我们需要了解经纬度及用x、y坐标在各种平面坐标系上的表示方法。
将地球的椭球表面转换为平面,或在不同平面坐标系之间进行转换的过程称为地图投影。
在ArcGIS中,ArcMap会自动地将不同坐标系的数据转化为最先添加的图层坐标系,这个过程一般称为即时投影变换(on-the-flyreprojections)。
但是,如果数据量较大的话,这个过程可能会花很多时间。
所以,同一个项目里面的所有图层最好用同一种投影。
美国常用的投影有两种:
通用横轴墨卡托投影(UTM)和州平面坐标系统(StatePlaneCoordinateSystem,SPCS)。
严格来说,SPCS并不是单一的一种投影,它可能使用三种投影中的一种:
兰伯特等角圆锥投影、横轴墨卡托投影、斜轴墨卡托投影。
为了尽量减少变形,南北向长条形的州或地区使用横轴墨卡托投影,东西向长条形的州或地区使用兰伯特等角圆锥投影。
有些州(如阿拉斯加、纽约州)可能用不只一种投影。
更多内容,读者可以参阅ESRI公司ArcGIS光盘上的“理解地图投影”PDF文件。
在ArcGIS中查看空间数据图层的投影,可以在ArcCatalog中点击该图层,然后选择Metadata>
Spatial,或者在ArcMap右键单击图层,依次选择layer>
Properties>
Source。
在ArcToolbox中进行投影相关操作的办法为:
依次点击DataManagementTools>
ProjectionsandTransformations,在投影与变换工具箱(ProjectionsandTransformations)下,投影定义工具(DefineProjection)将新建一个包含投影参数的投影文件(PRJ),或者矫正原来的错误投影。
投影定义工具只是标记地理数据的正确坐标系统,坐标系统本身不会被改变。
对于矢量空间数据,选择Feature>
Project,将坐标系统从一种投影转换到另一种投影,并生成一个新的图层。
本工具中提供了如下一些选项:
创建新坐标系统,使用一个现存的坐标系统,从一个地理数据中输入坐标系统。
对于栅格数据,则选择Raster>
ProjectRaster.
GIS可以处理矢量和栅格两种空间数据。
在处理矢量数据时,GIS用地理坐标点来构建点、线、面等要素;
在处理栅格数据时,GIS借助按行列排列栅格单元来表征空间要素。
栅格数据的结构比较简单,模型构造相对容易。
社会经济应用中大多使用矢量数据,本书的大部分GIS应用也使用矢量数据。
大部分商业GIS软件都提供了矢量、栅格数据的互相转换。
在ArcGIS中,可以通过调用ArcToolbox中的转换工具(ConversionTools)来实现。
ESRI公司的早期GIS软件使用coverage数据模型。
后来在开发ArcView软件包时,采用了shapefiles数据模型。
在ArcGIS8及以后的版本中,开始使用geodatabase模型,代表了面向东西数据模型的新趋势。
面向东西的数据模型把物体的几何特征(空间数据)也当作一种属性数据来存储,而传统的coverage和shapefiles模型是将空间和属性两种数据单独存储的。
一般而言,社会经济分析中的空间数据和属性数据常常来自不同的渠道,在用GIS进行制图或分析之前的一个基本任务是把他们连接在一起。
这就涉及到下面将要介绍的属性数据管理了。
属性数据管理及属性连接
GIS数据分为两类,即空间数据和属性数据。
空间数据表征地图要素的几何特征,属性数据则描述要素的一些特征。
属性数据往往以表格或表格文件的方式存储。
Shapefile属性表使用dBase数据格式,ArcInfoWorkstation使用INFO格式,geodatabase表格使用MicrosoftAccess格式。
ArcGIS也能够读取几种ASCII数据格式,包括逗号分隔和tab分隔的文本文件。
附录1讨介绍了用ArcGIS输入/输出ASCII数据的方法,如果要用GIS和其它软件(如SAS)进行高级分析,或者自己编写一些程序来完成复杂的任务,这种数据转换是非常重要的操作。
基本的数据管理任务,有些用ArcCatalog或ArcMap都可以实现,而其他一些任务则只有其中一种工具可以完成。
例如,新建数据表或删除/拷贝一个数据表都只能在ArcCatalog中实现(前面我们曾提到,ArcCatalog可以用于查看和管理GIS数据文件)。
数据表的创建过程为:
右键单击将要在里面创建数据表的文件夹,选择new即可。
而要删除或拷贝数据表,只要在ArcCatalog中右键单击该数据表,然后单击Delete(或Copy)即可。
如果要在一个数据表中新增一个变量(可能是在shape文件属性表或dBase文件中新增一列或是在ArcInfoworkstation的INFO文件中新增一项),ArcCatalog和ArcMap都可以胜任。
删除INFO文件中的某一项也可以任选ArcCatalog或ArcMap之一来完成;
但是,删除dBase文件中的一列则只能用ArcMap来实现。
例如,在shape文件属性表中新增一列,可以用ArcCatalog来实现,即右键点击shape文件>
Fields,在空白行里面输入新建列的名字,并定义数据类型即可。
在ArcMap中,则要先打开数据表>
Options>
AddField。
在ArcMap中删除一列,可以打开数据表,然后右键单击该列,然后选DeleteField即可。
如果要进行列之间数据的运算,可以用ArcMap:
打开数据表>
右键单击列>
CalculateValues。
此外,在ArcMAP中,可以通过右键单击列,然后选择Statistics来得到一些基本的统计参数。
在GIS中,我们常常使用的属性连接,是基于某一个相同列将两张表的信息连接在一起。
被连接的表可能是一个与特定地理数据库有关的属性表,也可能是一个独立的数据表。
在进行属性连接时,公共标签的名字可以不同,但它们的数据类型必须匹配。
数据表之间的连接关系有多种:
一对一、多对一、一对多、多对多。
一对一或多对一连接是通过ArcGIS中的join来完成的。
但是,一对多或多对多连接则不能用join来实现,这需要用ArcGIS中的relate来关联两张表,在关联的同时会保持两张表各自独立。
在进行关联(relate)时,是从一张表中选取一条或多条记录,然后从另一张表中选取若干条关联记录。
表1.1列出了上述连接的关系及所用的ArcGIS工具。
连接(join)或关联(relate)是通过ArcMap来实现的。
在地图目录中,右键单击空间数据或目标表格,然后依次选择JoinsandRelates>
Join(或Relate),然后,在连接数据对话框中选择“Joinattributesfromatable”。
连接只是暂时的,并不会新建数据表,如果退出项目时不保存的话,下次再打开时连接就没有了。
可以把连接后的结果输出为新的数据表从而永久地保存。
一旦属性信息连接到空间图层,我们就可以用ArcGIS方便地制图了。
在ArcMAP中,右键单击图层,选择Properties,在弹出的对话框中选择Symbology。
在这里,我们可以选取某一列指标来绘制地图,可以选择要素显示的颜色和图例,设置显示的模板。
地图要素(比例尺、指北针、图例)可以从主菜单中插入(Insert)。
1.2案例:
绘制俄亥俄州库娅霍加县人口密度模式图
对于那些不太熟悉GIS的读者,如果能够通过简单地点击几下鼠标就可以亲自绘制一张地图,则可以很快尝GIS的甜头,克服对GIS复杂性的神秘感。
本节通过一个例子来演示如何在GIS连接空间和非空间信息,并用于绘制地图。
在接下来的操作中,我们将演示第1.1节里面介绍的大部分功能。
完成一个GIS项目开始之前先要收集相关数据。
一般而言,我们可以使用现存的数据。
在美国社会经济应用研究中,美国人口普查局发布的拓扑集成地理编码参照文件(TIGER)及十年一度的人口普查数据是空间数据和属性数据的主要来源。
这两种数据都可以从普查局的网站下载()。
熟练的ArcGIS用户可以直接下载TIGER数据,然后用TIGER转换工具提取所需空间数据。
依次点击ArcToolbox里面的CoverageTools>
Conversion>
ToCoverage>
AdvancedTigerConversion(或BasicTigerConversion)即可激活TIGER转换工具。
转换过程可能会花些时间,而转换之后的数据可能还需要进一步的加工。
所幸的是,一些网站提供了业已处理好的ArcGIS格式(shapefiles或coverage)的TIGER空间数据下载服务。
ESRI发布ArcGIS软件时,附送有包含这些数据的光碟。
如果空间数据是交换格式(e00)的,则可以很方便地进行转换:
依次点击:
ArcToolbox>
CoverageTools>
ImportfromInterchangeFile。
在下面的案例中,我们将直接使用从ESRI网站下载的shapefile空间数据。
尽管读者可以自己下载数据,但为方便起见,本书光盘中提供了所需数据:
1.shape文件:
tgr39035trt00;
2.dBase文件:
tgr39000sf1trt.dbf。
在本书中,所有计算机文件、变量名以及某些工程中将要用到的命令行都用CourierNew字体。
下面是分步介绍的操作过程。
1.下载空间数据
登录ESRI公司的网站,进入到2000年人口普查TIGER/LineData页面:
。
选择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中,依次选择DataManagementTools>
ProjectionsandTransformations>
Feature>
Project,激活投影变换对话框。
在对话框中,选择tgr39035trt00.shp作为输入数据,将输出数据命名为cuyautm.shp,定义输出坐标系统为UTM(zone17,unitsmeters)。
在这里,我们从一个现存的数据集中提取投影文件来定义输出的坐标系统:
点击“OutputCoordinateSystem”旁的图标,激活空间参照属性对话框>
Import>
clevbnd。
图1.1为本任务的对话框。
点击ok执行任务。
3.计算shapefile文件中面要素的面积
在ArcMap中(本书中除非特别说明,ArcMap是我们ArcGIS的默认工作环境),打开cuyautm的属性表,右键单击Options按钮,选择AddField,新增一列area,设置数据类型为双精度Double。
右键单击列area,选择CalculateValues以计算面积。
在对话框中,点击Advanced,在第一个文本框中输入下述VBA命令,
DimdblAreaasdouble
DimpAreaasIArea
SetpArea=[shape]
dblArea=pArea.area
在第二个文本框,即“area=”下面的文本框中输入dblArea。
点击OK计算面积。
图1.2为计算面积的对话框示例。
需要说明的是,在更新的ArcGIS版本(如9.2)中,计算面积很简单:
右键单击列area,选择CalculateGeometry,然后在对话框中的Property项选Area、Units项选SquareMeters[sqm]以计算面积。
4.下载属性数据
属性数据可以从上面同一个网站下载,选择“2000censustractdemographics(SF1)”即可。
属性数据tgr39000sf1trt.dbf是整个俄亥俄州的数据,为dBase格式,SF1表示SummaryFile1(即基于普查短表的100%普查的汇总数据)。
这里的dBase文件并不包含所有的普查变量。
如要获取完整的普查数据,可以访问2000年人口普查网站:
处理SF1、SF3等文件时,需要知道2000年人口普查数据的结构,并要用到一些数据分析软件如SAS、Access。
SF3就是基于普查长表的1%抽样数据。
5.提取凯霍加县的属性数据
在ArcMap中,添加并打开表tgr39000sf1trt.dbf。
点击表右下角的选项按钮(Options)>
选择SelectByAttributes>
输入SQL(结构查询语言)语句:
county=’并按Apply,执行查询(第1.3节有更多关于ArcGIS的查询操作)。
所有凯霍加县的数据将被选中。
点击Options键,将结果输出(Export)名为cuya2k_popu.dbf的文件。
如果愿意,可以把该文件中多余的数据列删去,只保留我们需要的STFID和POP2000两列。
这一步可以略过,即直接将表tgr39000sf1trt.dbf连接到图层cuyautm,所得结果将自动去掉其他县的数据。
这里设计这一步是为了让读者练习属性查询这一功能。
6.连接空间数据和属性数据
右键单击图层cuyautm>
JoinsandRelates>
Join,基于公共标签STFID将表cuya2k_popu.dbf连接到cuyautm。
STFID是每个普查小区的唯一标志码,包含州(2位)、县(3位)及普查小区(6为)的编码。
图1.3显示了空间数据和属性数据的连接方式及与地图要素的关系。
7.添加并计算人口密度
右键单击图层cuyautm,选择OpenAttributeTable,打开属性表以检查连接结果。
在连接后的表中,列的名称由两部分组成,第一部分为原表名,第二部分为列名。
例如,cuyautm.area表示该列为cuyautm属性表中的area变量,tgr39000sf1trt.STFID表示表tgr39000sf1trt.dbf中的STFID(变量名过长时会自动截短)。
在本书后续讲解(例如计算公式、表连接等操作)中,除非为了强调,当我们提到列名称时,将省略源表名。
单击Options按钮>
AddField,新增一列popuden,此列将显示在cuyautm属性表的最后,但位于表cuya2k_popu.dbf第一列之前。
右键单击列popuden,选择CalculateValues,输入公式1000000*[POP2000]/[area]。
在公式中,POP2000和area都是通过直接双击最上面对话框中的列名称来实现的,这样既可以节省时间,也可以减少直接输入可能出现的错误。
在本书后续讲解中,为简单起见,我们只列出计算公式如popuden=1000000*POP2000/area。
注意到地图投影的单位是米,而人口密度的单位为每平方公里的人口数,所以我们公式中乘上了1000,000。
8.绘制人口密度模式图
Symbology>
Quantities>
GraduatedColors,基于popuden绘制人口密度图。
我们可以尝试不同的分类方法、分类数及色彩方案。
在主菜单中,选择View>
LayoutView来预览地图。
在主菜单中,选择Insert>
Legend(ScaleBar,NorthArrow等),可以插入比例尺、指北针、图例等地图要素。
图1.4为研究区内的人口密度图,北部的那一大片空白区域为伊利湖。
本图中的人口密度分级是作图者自己定义(Customized)。
1.3ArcGIS中的空间分析工具:
查询、空间连接、地图叠加
许多空间分析任务需要利用空间要素之间的位置关系,进行查询(queries)、空间连接(spatialjoins)及地图叠加(mapoverlays)。
这三种都是空间分析的基本工具。
查询包括属性(非空间)查询和空间查询。
属性查询是基于属性表来提取在该属性表中的属性信息,或对应的空间图层中的空间信息。
在ArcMap中进行属性查询,有两种办法
(1)从主菜单中选择SelectionbyAttributes;
(2)在一个打开的数据表中,选择Options按钮>
SelectionbyAttributes。
两种方法都是基于属性变量用SQL查询语句来选择空间要素(或只是简单地从一个独立的属性表中选取若干条记录)。
案例1A第5步中已经用到了这个功能。
在主菜单的Selection菜单下,另有一个选项为交互式选择方法(InteractiveSelectionMethod),就是用鼠标在屏幕(地图或属性表)上选择要素。
与其他信息系统相比,GIS的一个独特之处在于它的空间查询能力,即能够基于不同图层要素之间的位置关系进行信息查询。
主菜单Selection菜单有一个SelectionbyLocation选项,它可以基于一个图层中的要素与另一个图层中的要素之间的位置关系进行查询。
可供查询的空间位置关系包括相交(intersect)、在一定范围之内(arewithinadistanceof)、完全包含(completelycontain)、完全在范围之内(arecompletelywithin),等等。
查询(属性查询或空间查询)所得结果可以输出为新的数据文件:
(1)用右键单击源图层,然后选择Data>
ExportData,可以将查询所得空间要素输出为新的图层文件;
(2)单击数据表中的Options按钮>
Export,可以将结果保存为数据表。
属性连接是基于两表的共同列进行的,而空间连接是基于两个图层空间要素的位置关系如重叠、近邻等来完成的。
我们用源图层和目标图层来区分不同图层在空间连接时的作用相异:
源图层的属性经过空间连接后就转换到目标图层中了。
如果源图层中的一个对象对应于目标图层中的一个或多个对象,则是一个简单的空间连接(Simplejoin)。
例如,将县域多边形图层(源图层)空间连接到学校位置(目标图层)的点图层,县图层的属性(如FIPS编码、县名、县长名)就转到那些落入县域边界内的学校。
如果源图层的多个对象对应于目标图层的一个对象,就可能进行两种操作:
汇总连接(summarizedjoin)和距离连接(distancejoin)。
汇总连接是指将源图层的数值属性进行汇总(例如取平均值、求和、最小值、最大值、标准差、方差)后再将结果添加到目标图层中。
距离连接是从源图层所有要素中寻找一个距离目标图层中的匹配对象最近的要素,然后将它的属性及距离值(为二要素之间的距离)添加到目标图层中。
例如,我们可以将地理位置编码的犯罪数据(源图层)与普查小区(目标图层)进行空间连接,从而得到按普查小区汇总的犯罪数,这就汇总连接;
我们也可以将公交站点图层(源图层)与普查街区重心的点图层(目标图层)进行空间连接,从而得到距离每个普查街区最近的公交站点,这就是距离连接。
不同空间要素之间的连接方式多种多样(Price,2004:
287-288)。
表1.2是ArcGIS中各种空间连接的小结。
与属性连接类似的是,空间连接是在ArcMap中实现:
右键单击源图层>
选择JoinsandRelates>
Join。
在连接数据对话窗口中,选择“Joindatafromanotherlayerbasedonspatiallocation”而不是“Joinattributesfromatable”。
后者就是前面已经讲述的属性连接。
地图叠加可以广义地定义为任何不同图层改变要素的空间分析。
可以用ArcGIS来实现常用的地图叠加工具主要有:
剪切(Clip)、相交(Intersect)、合并(Union)、缓冲区(Buffer)、多重缓冲区(MultipleRingBuffer)。
剪切是用一个图层的边界来截取另一个图层。
相交是取叠加两图层的公共部分即交集。
合并是取两个图层的并