精品课程 地理信息系统原理 The Principle of Geographical Information System (GIS)
|
首页 | 课程简介 | 申报书 | 师资队伍 | 教学大纲 | 授课教案 | 教学课件 | 复习思考题 | 模拟试卷 | 实验指导 | 教学录像 | 参考书目 | 联系我们 |
《地理信息系统原理》
程先富 编著
安徽师范大学国旅学院地理信息系统系 二00六年六月
实验目录
实习一 地图数字化 实习二 GIS空间数据的建立与编辑 实习三 属性数据的输入与连接 实习四 地图投影与数据格式转换 实习五 数字高程模型(DEM)的建立与应用 实习六 叠加分析 实习七 缓冲区分析 实习八 GIS模型的构建与应用 实习九 查询与统计 实习十 GIS产品输出
实验一 地图数字化 一、实验目的:1. 初步熟悉Arc/Info和ArcView的基本操作 2. 掌握数字化的过程和方法 二、实验内容 利用Arc/Info和ArcView软件进行数字化 三、实验步骤 从前受GIS软、硬件的限制,主要采用手工键盘录入地图数据的方式,现在主要采用数字化仪和扫描仪获取地图数据,大大提高了数字化的精度和速度。数字化仪直接以矢量形式获取地图坐标数据;扫描矢量化是目前较为流行的数字化方法,这种方法是先用扫描仪将地图扫描为栅格图像,然后对图像进行屏幕跟踪矢量化。 1. 数字化仪操作过程 (1)原图准备 首先要进行数字化底图的选取。这是进行空间数据采集前的首要工作,底图的选取主要考虑两方面的内容即底图的精度和要素的繁简;其次,对地图进行分层与分幅。在进行数字化前,必须确定对哪些要素数字化,并对这些要素进行分层并确定层名,如要数字化一幅土壤图,就要将土壤图边界、主要道路、河流等分别作为单独的图层进行数字化。 (2)地图预处理 为了减小图纸变形的影响,对于纸质地图,需要将其转绘到不易引起变形的聚酯薄膜上;为了便于多幅图的拼接,需将于地图内图框相交的线划要素向图框外延伸5-10mm;检查原图内容的完整性,分别标识原图的图幅角点、内部控制点等。 (3)连接并设置数字化仪 在利用数字化仪进行空间数据的采集前,需要进行必要的设置。这些设置包括连接好数字化仪、安装数字化仪驱动程序、定位器按钮和数字化方式的设置、数字化仪坐标系的设置以及坐标数据文件的输出格式和传输方式的设定。输入初始化参数。包括数字化的阈值(数字化两点间的最短距离),图幅四角点的理论坐标,图幅长度(length)和宽度(width),以及图名、图号、比例尺、地图投影等。 输入数字化图幅四角点的坐标和经标识的控制点坐标。 2. 扫描仪的使用过程 (1)原图定位:准确地将原图定位于扫描仪上可以大大减少后期栅格图像的处理工作量; (2)激活扫描软件:许多图像处理软件(如Photoshop、CorelDraw等)都带有与扫描仪相连的接口,从这些图像处理软件连入扫描仪,有利于后期的图像处理工作和选取不同的文件存贮格式; (3)设置扫描方式:扫描方式的选择包括扫描分辨率、色深和通道数等内容。扫描方式决定了栅格图像的质量和图像文件所占磁盘空间的大小; (4)原图预扫:为了进一步调整扫描方式,需对原图进行预扫; (5)调整扫描的尺寸及扫描后处理:扫描后处理包括:选择扫描图像的格式和对扫描图像进行进一步地加工,如对图像的锐化和滤波处理等,目的是为了能够从图像中最大程度地获取图面信息。 (二)、利用Arc/Info数字化的基本步骤 Arc/Info以coverage方式组织地图,每一个coverage是一个图层,coverage名称即为图层名,该层中的所有数据文件都存贮在coverage目录下。Arc/Info的所有功能都是通过模块化的方式提供的,ADS是Arc/Info数字化模块。 1.连接数字化仪 用Arc/Info进行数字化之前,一定要保证连接好数字化仪,并启动了数字化仪驱动程序,可以用CON-DIG命令检查数字化仪的连接情况,并设置通信条件: ARC: CON-DIG ARC: CON-DIG LIST ARC: CON-DIG DIGTIZER COM1 9600 N 8 1 其中最后一条命令表示将数字化仪连接到计算机的COM1端口上,数据传输的波特率为9600,数据位是8,停止位是1,无奇偶校验。连接好数字化仪以后最好还应对数字化仪的功能键及工作方式等设置进行检测。 Arc:DIGTEST
2.启动ADS数字化模块 Arc:ADS {coverage1} 进入数字化模块后,Arc/Info首先提示你输入至少4个控制点,然后提示你确定数字化的图面范围,完成这些工作后,系统就进入ADS数字化主菜单: Arc Digitizing System (ADS)-Ver3.4D 1) ADD Arcs 3) ADD Labels 5) Draw Coverage 7) ADD Tics 2) Remove Arcs 4) Remove Labels 6(Define Window 8)Set Options 9) EXIT Enter function: 从Arc/Info的数字化主菜单可以看出:ADS可以进行增加/删除弧段(arcs)、标识点(labels)和增加控制点(tics)等操作,并通过选项菜单(set options)设置数字化过程中的编辑距离(edit distance)、顶点捕捉距离、坐标容限值等,以及对地图重定向等操作。这些操作都是通过按鼠标或键盘上的数字键进入数字化子菜单完成。 尽管Arc/Info是以拓扑型数据结构组织地图数据,但在其数字化阶段,并没有建立拓扑型的空间数据结构,所以地理实体都是以弧段(arcs)和标识点(labels)方式进行数字化的。
3. 利用Arcedit进行数据编辑 主要步骤如下: (1)进入Arcedit模块 ARC: arcedit Arcedit: DIGTIZER 9100 com1 stream Arcedit: COORDINATE DIGTIER (2)设置硬件环境: Arcedit:display 9999 (3)创建coverage 并输入Tic点 Arcedit: createc <excov> Creating excov Tic-ID: 1 Tic-ID: 2 Tic-ID: 3 Tic-ID: 4 Tic-ID: 0
4. 设置绘图环境和指定编辑特征 Arcedit: drawenvironment arc tic ids node dangle Arcedit: draw Arcedit: editfeature arc Arcedit: add ……. 5. 创建特征属性表(FAT) Arcedit: create attributes Arcedit: additem symbol 4 5 b
6. 建立增加弧段的环境(设定容限值等)和增加弧段 Arcedit: nodesnap closest 10 Arcedit: arcsnap on 1.5 Arcedit: add …… 7. 建立拓扑关系 Arc: clean <coveragename> Build: 创建coverage的特征属性表(反映拓扑关系) Build <coverage> | poly | line | point |node | annotation <subclass> | Clean: 输出一个具有正确多边形集弧段—结点拓扑关系的coverage,并根据此创建PAT表和AAT表,在创建过程中coverage修改了数据中的几何坐标错误,在一定范围内调整整个数据的坐标值。 Clean <incover> | out-cover | ﹛dangle-length﹜﹛fuzzy-toler﹜﹛poly | line ﹜ Renode: 重排的弧段的结点,更新AAT表中的Fnode#和Tnode#两个数据项。 Renode < cover> ﹛from-node-elev-item﹜﹛to node-ele -item﹜
数据拓扑关系 build clean ① 建立polygon. Line. Point. Nodeanno的拓扑关系数据 只能建立Polygon和line的拓扑关系 ② 创建相应的特征属性表 创建多边形和线的属性表(PAT 和AAT) ③ 直接对coverage进行操作不创建新的coverage 创建新的coverage ④ 特征的属性数据不发生变化 弧段能被删除,弧结点或中间点坐标也可能发生变化 ⑤ 建多边形拓扑关系时,相交的弧段必须有结点 自动在弧段交叉处产生结点
8. 查找和显示错误 ◇假结点 □ 悬挂结点 552+多个标识点 * 缺少标识点 在Arc查找 Arc: labelerrors <cover> Arc: nodeerrors <cover> Arc: intersecterr <cover> 在arcplot中显示: Arcplot: labelerrors <cover> ﹛arcs | no arcs﹜ Arcplot: nodeerrors <cover> ﹛all | dangle | pseudo﹜ 在arcedit中显示 Arcedit: mape < cover > Arcedit: edit < cover > Arcedit: drawe arc intersect node errors Arcedit: draw
9. 编辑和修改错误 Arcedit: mape < cover > Arcedit: editcoverage < cover > Arcedit: drawe arc intersect node label errors Arcedit: draw Arcedit: editfeature arc Arcedit: seletct one or many …… 10. 重建拓扑关系 Arc: clean Arc: build
常见编辑错误与修改命令如图1所示。
图1 常见编辑错误与修改命令
① 欠头错误 Drawenv node dangle extend arcs, or move nodes , or clean ② 欠头错误 Drawenv node dangle select dangle, delete, or clean ③ 方向错误 Drawenv arc arrow flip ④ 交叉错误 Drawenv arc intersect move 0 0 , or clean ⑤ 重叠弧段 Drawenv arc intersect select delete ⑥ 过多或缺少标识点 select $labels ne 1 Delete or move, or Clean or build ⑦ 区域不封闭 select unclosed Append arc or add tics 简单数据编辑命令: 拷贝特征 copy Put Get Duplicate 移动特征 move Drag 旋转特征 arcedit: select $text cn “ sanfrancisco” Arcedit: rotate 45 将于输入在一定距离内的弧段的结点snap到输入弧段 align 在弧段中间加结点或分割弧段 select; split 合并相连的弧段或去除弧段的伪结点 select ; unsplit 多个区域合并为一个 select ; merge
基本数据编辑命令: Annoclip (Arc) 用| clip-cover | 的外多边形剪裁 < in-cover>的注记特征 Annoclip < in-cover> | < clip-cover>| | out-cover | Clip (Arc) 提取落入< clip-cover>内的< in-cover>的特征 Clip < in-cover> < clip-cover> <out-cover> |poly| line | point |net |link |raw | ﹛fuzzy-tolerance﹜ Erase (Arc) 删除< in-cover>中落入< erase-cover>中的特征 Erase < in-cover> < erase-cover> <out-cover> |poly| line | point |net |link |raw | ﹛fuzzy-tolerance﹜ Split (Arc) 将一个coverage分割为多个coverage Split < in-cover> < split-cover> <out-cover> |poly| line | point |net |link |raw | ﹛fuzzy-tolerance﹜ Append (Arc) 将最多500个coverage合并为一个coverage Append <out-cover> ﹛notest | template-cover | feature-class……feature-class﹜﹛none | feature |Tics | All﹜ Mapjoin (Arc) 将最多500个含有多边形或网络特征的coverage合并为一个coverage并重建拓扑关系 Mapjoin <out-cover> ﹛feature-class……feature-class﹜﹛none | feature |Tics | All﹜﹛clip-cover﹜ Get (arcedit) 从其他coverage中将当前编辑特征(点、线、多边形等)或当前子类的所有特征拷贝到当前编辑的coverage中,或将其他info文件的所有记录拷贝到当前编辑info文件中。 Get <cover > get < info-file > Put (arcedit) 将当前编辑的coverage中的选中特征及其属性拷贝到另一个coverage中,或将选中info记录拷贝到其他info文件中。 Put <cover> put <cover> ﹛sublcass﹜ put < info-file > Transform (Arc) 根据相同的控制点(tic)信息,实现coverage的坐标变换。 Transform < in-cover> <out-cover> ﹛affine | projective | similarity|﹜ (三)、利用ArcView进行数字化 1. 启动ArcView 点击ArcView快捷方式,打开ArcView,进入ArcView视图。 2. 在ArcView视图项目中,点击File菜单,在下拉菜单项中,点击Extension,加载要求的图像支持格式,如.tif 、.jpg等;(图2)。
图2 添加扩展模块
3. 调入将要数字化的原图。 点击View菜单,在其下拉菜单项中,选择Add theme(添加专题)按钮。在出现的对话框中,从Date Source Types (数据源类型)栏列表中选取(image data source)影像数据源。转到想添加的影像所在的目录。双击要加入的影像文件,将影像(原图)加入到专题中。 4. 在视图中创建新主题,进行数字化。 1)在视图界面中,选定 “视图”(View)下拉菜单中的“New theme”项。 2)在弹出的对话框内选择想要创建的新主题的图形要素类型(注意:每一个新主题所包含的图形要素只能选择点、线、面三种基本类型中的一种),单击OK按钮确认。 3)在随后出现的新的对话框内,指定ArcView将要创建的、你想要添加的新主题的Shape文件的名称与保存位置,单击OK。这样,一个新主题就出现在你当前视图的主题目录表中。 4)屏幕数字化(给新主题添加图形要素) 单击常用工具条中的“绘图工具”项(注意:点击过程应当稍微长一些),调出下拉式绘图工具(添加线要素的图形示例)(图3),然后即可在视图图形显示框内进行数字化。
图3 下拉式绘图工具 四、实验作业 1. 打开ArcView,在视图界面中调入要数字化的地图soil. jpg;在视图中创建新主题soil,图形要素为线状;根据原图,进行屏幕数字化。
实验二 GIS空间数据的建立与编辑 一、实验目的:1. 掌握利用ArcView建立空间数据的方法 2. 对空间数据进行编辑 二、实验内容 GIS空间数据的建立与编辑 三、实验步骤 1. 在视图中创建新主题的方法 1)建立一个全新的主题 在ArcView中创建一个全新的主题是项目设计的重要工作之一。在ArcView之中,主题可以是Shape文件格式,也可以不是Shape格式,但所有的非Shape主题都可以转换成Shape主题。 ①在视图界面中,选定 “视图”(View)下拉菜单中的“New theme”项。 ②在弹出的对话框内选择想要创建的新主题的图形要素类型(注意:每一个新主题所包含的图形要素只能选择点、线、面三种基本类型中的一种),单击OK按钮确认。 ③在随后出现的新的对话框内,指定ArcView将要创建的、你想要添加的新主题的Shape文件的名称与保存位置,单击OK。这样,一个新主题就出现在你当前视图的主题目录表中。 ④给新主题添加图形要素 单击常用工具条中的“绘图工具”项(注意:点击过程应当稍微长一些),调出下拉式绘图工具(添加线要素的图形示例),根据绘图工作的实际需要选择合适的工具,然后即可在“视图”图形显示框内进行绘图。绘图工作结束后,ArcView将会自动生成一个与当前主题图形要素相对应的主题属性表。打开该表显示其含有两个字段“Shape”和“ID”。其中,前者记录用户给当前主题所添加的所有图形要素的类型名;后者的所有记录均为0(即为空白记录),有待用户手工添加属性数据。
2. 创建线专题图 1)建立空白线专题 ① 打开要增加新专题的视图或创建新视图; ② 从View菜单中选择New theme 选项,在出现的对话框中,选择Line的要素类型,单击OK; ③ 在下一个对话框出现时,指定路径和文件名来保存新专题数据。 2)线状要素的编辑 在往线要素主题中增加新的线要素之前,应确定它们是否应该结合和对齐,确保所有相交于同一点的共有一个公共结点,同时没有过线和未连线段。这就需要设置捕捉(Snapping)环境。其步骤为: ① 点取视图中正在编辑的专题的名称,并激活; ② 点击Theme菜单中的下拉项Properties按钮; ③ 在出现的对话框中,点击Editing(编辑)图标,显示专题的编辑属性。点取General 复选框打开结合环境。在出现的Tolerance(容限值)栏中输入容限值。按下OK。 线状要素的常规编辑 (1)改变一个线条或线段形状的方法 ① 点选工具条内的“顶点”(Vertex)编辑工具; ② 选择要编辑的线状要素对象,对象在原来形成过程中的结点就会以“空心小矩形”的形式出现在线条上,该小矩形称为“顶点”; ③ 用鼠标指针指向想要改变其位置的顶点,当出现十字光标时,就可以用左键拖动以改变顶点的位置。 (2)线要素的劈分 在ArcView中可以用Line Split“线劈分”工具来绘一条线,将原先的线段劈开,在交点处形成新结点。其步骤为: ① 激活主题,使主题处于被编辑状态。 ② 按下工具条中的“绘图工具板”按钮,在出现的下拉栏中,选定“线劈分”(Line Split)工具。 ③ 在视图内画一条线,凡与该线相交的所有线条均被劈分,成为一个个以交叉点位端点的独立线段。 (3)线要素的合并 在ArcView中可以用Union Feature(合并要素)工具来将一组选择的线要素合并成为一个要素。其步骤为: ① 激活线状主题,使主题处于被编辑状态。 ② 使用“指针”工具,用Shift键相配合,选择要合并的线状要素。 ③ 从“Edit”下拉菜单中选取Union Feature(合并要素)项,即可完成合并。 (4)为线状要素添加属性 ① 从Edit(编辑)菜单中选取Start Editing选项,使主题处于被编辑状态。 ② 打开线状要素的专题属性表。 ③ 从Edit(编辑)菜单中选取Add Field选项,在出现的对话框中点取字段名称、类型等。 ④ 利用Edit快捷工具,可以添加属性。 3. 建立面状(多边形)专题图 1)建立空白面专题 ① 打开要增加新专题的视图或创建新视图; ② 从View菜单中选择New theme 选项,在出现的对话框中,选择Polygon的要素类型,单击OK; ③ 在下一个对话框出现时,指定路径和文件名来保存新专题数据。 2)面状要素的编辑 (1)对多边形形状的改变 可以使用“顶点编辑工具”(Vertex Edit Tool),通过加点、删点、移动顶点来改变多边形要素的形状。 ① 移动顶点改变多边形形状。将光标定于想要移动的“顶点”上,当光标变为十字形状时,按下鼠标左键拖动,达到指定位置时,松开左键。 ② 用顶点编辑工具加点。把光标移到要加点的位置,当光标变为十字丝外套圆形状时,点击鼠标左键即可。 ③ 用顶点编辑工具删点。把光标移到要删除顶点的位置,当光标变为十字丝形状时,点击键盘<Delete>键即可。 (2)改变两个多边形的公共边界 ① 点取顶点编辑工具。 ② 点取公共边界,顶点控制柄方框出现在公共边界的每个顶点上,圆形的锚出现在公共边界的每个结点上。 ③ 移动、添加、删除一个顶点,两个多边形将发生变化。 ④ 移动公共结点,所有多边形都会发生变化。 (3)分裂多边形 ① 激活多边形专题,使其处于被编辑状态。 ② 点取绘图工具面板,在下拉工具表中,选取多边形分裂工具。 ③ 画出一条分裂线,双击左键,则原来的多边形就会被一分为二。 (4)合并多边形 ① 激活主题,在Theme的下拉菜单中选择“Start Editing”,使当前主题处于被编辑状态。 ② 以Shift键相配合,使用指针工具,选择要合并的多边形。 ③ 在Edit菜单下,选择Union Features(要素合并)选项,则自动完成多边形合并。 (5)创建圈饼多边形 ① 在Theme的下拉菜单中选择“Start Editing”,使当前主题处于被编辑状态。 ② 使用绘图工具板内的多边形、圆、矩形等绘图工具,在目标多边形内部绘出一个想挖去的较小的多边形区域。 ③ 使用指针工具,选择两个多边形。 ④ 在Edit菜单下,选择Combine Features(要素联合)选项,则产生一个新的“圈饼状”多边形。 (6)多边形相减 删除两个多边形的重叠部分,可用Subtract Feature(减去要素)选项。其具体过程是: ① 激活主题,在Theme的下拉菜单中选择“Start Editing”,使当前主题处于被编辑状态。 ② 以Shift键相配合,使用指针工具,选定两个重叠多边形。 ③ 在Edit菜单下,选择Subtract Features(减去要素)选项,则自动除去重叠部分。 (7)多边形的交集 ① 激活主题,在Theme的下拉菜单中选择“Start Editing”,使当前主题处于被编辑状态。 ② 使用指针工具,选择要求交集的多边形。 ③ 在Edit菜单下,选择Intersect Features(交集要素)选项。 (8)为多边形要素添加属性 ① 从Edit(编辑)菜单中选取Start Editing选项,使主题处于被编辑状态。 ② 打开多边形要素的专题属性表; ③ 从Edit(编辑)菜单中选取Add Field选项,在出现的对话框中选取字段名称、类型等。 ④ 利用Edit快捷工具,可以添加属性。 四、实验作业 1. 对实验一的数字化图层,在Arc/Info状态下,建立拓扑关系,并进行编辑; 2. 在ArcView视图状态下,对线状要素进行编辑(公共边界的修改、分裂多边形、合并多边形、创建圈饼多边形、多边形的交集、多边形相减等); 3. 给图层添加属性数据。
实验三 属性数据的输入与连接 一、实验目的:1. 掌握利用ArcView进行属性数据的输入 2. 对属性数据表的编辑以及和空间数据的连接 二、实验内容: 属性数据的输入、编辑及其与空间数据的连接
三、实验步骤: 1.在ArcView视图中打开要添加属性数据的主题。 2.给主题的属性表添加字段和记录 ①从theme的下拉菜单点击“table”,或点击属性表的快捷菜单,打开主题的属性表; ②从table的下拉菜单中,点击“start editing”,使属性表处于开始编辑状态; ③给属性表添加字段。从Edit编辑菜单选取Add Field(添加字段)选项。在对话框中给出字段名称、数据类型和宽度,按OK,如图4。
图4 属性表字段对话框
ArcView中可以定义的数据类型有: 字符型(String),需输入字符串的宽度。 数值型(Number),除需输入字段宽度外,还需输入小数点之后的位数(Decimal Places)。 逻辑型(布尔型,Boolean),每个值只能在True(是)或者False(非)中选择一种,一般在应用中用T或F来代替。 日期型(Date)以8位数字表示日期,格式为YYYYMMDD,如19990112表示1999年1月12日。 ④添加记录 新建的表只有列,没有行,选菜单Edit/Add record,将增加空白记录,再点击按钮编辑属性,向记录的单元添加数据,添加完毕后要按回车键,忘记回车键往往会丢失最后一次输入的数据。 ⑤表的内容修改 修改属性:点击工具对属性进行编辑,直接对要修改的属性单元修改。 增加字段:选用菜单Edit/Add Field……. 删除字段:先点击要删除的字段名,再选用菜单Edit/Delete Field。 删除记录:先选择记录,再选用菜单Edit/Delete Records。 ⑥结束编辑 关闭编辑状态选用菜单Table/Stop Editing,系统提示,是否将编辑的结果保存起来,回答yes则确认,标的编辑状态结束。如回答no,则放弃编辑,表的编辑状态也结束,但属性表的内容恢复到Start Editing(编辑开始)之前的状况,选用菜单Tables/Start Editing,使该表再次进入编辑状态。
3. 独立数据库表格数据的加载 每一个专题(theme)有对应的专题属性表,在ArcView窗口中若需要打开会自动读入,和专题属性表相独立的表也可查询、编辑。一般为3种:①dbf文件;②Info表(Arc/Info的属性数据表);③文本文件(Delimited Text,用逗号分隔各列,用回车分隔各行)。独立表要先加载,才可查询、编辑。 ①在Project窗口中,单击tables 的图标,再单击窗口中Add按钮,出现Add Table对话框。 ②在Add Table对话框左下侧的数据类型字段中(List Files of Type:),选择dBASE(*.dbf)、Info或delimited Text(*.txt)。 ③在右侧路径对话框的提示下,找到要加载的表,双击该表名,完成了对此表的加载。 ④在Project窗口中单击Tables的图标,所有已加载的表会自动显示。用鼠标点击某个表名,再点击Open按钮,就可以打开该表,同时进入Tables。 4. 以SQL方式访问其他数据库 ArcView还可以通过Project/SQL connect……选项,以SQL方式访问其他数据库的表,如Access,Oracle,SQL Server等等。其步骤如下: ① 激活工程窗口。 ② 从Project(工程)菜单中选取SQL Connect(SQL连接)。 ③ 在出现的对话框中,连接表中显示可以访问到的所有数据库连接。选中所需数据库类型,按Connect(连接)按钮,即可登录到数据库。 ④ 表格列表显示出所选数据库所有表的列表。可以在表上点击,列出表中字段(Columns)。指定表和字段组成一个SQL查询:双击Column(字段)名添加到Select(选择)框,双击表名添加到From框。 ⑤ 如果只想获得表的记录子集,可在where框中键入选择条件表达式。例如,只想得到某字段比5大的记录子集,先在where框中点击一下激活它,双击字段名添加到表达式,再键入“> 5 ”即可。 ⑥ 在Output Table(输出表格)框中,指定ArcView中对应的表格文档名。 ⑦按Query(查询)按钮结束。 这样ArcView用从数据库取出的指定记录创建了一个表格。ArcView只存贮SQL查询的定义,而不是数据记录本身。连接数据库创建的表格在ArcView中不可编辑。想编辑可以在File(文件)选项,将该表格转换为dBASE文件,再添加到ArcView中。 5. 空间数据库和属性数据库的连接 建立表和表之间的连接,使空间要素的属性、多个属性表的查询功能得到扩展。需要建立连接的两个表必须有相同数据类型,对应数据内容的字段作为关键字段。进行连接的两个表中的记录,可存在“一对一”、“多对一”、“一对多”等各种逻辑关系。ArcView提供两种连接方式:Join(合并)和Link(链接)。 Join(合并)方式连接的方法与步骤: ① 打开源表,点选“公共字段”名称; ② 在“窗口”下拉菜单中选择“视图”窗口,激活“主题”; ③ 打开“主题属性表”,并点选与源表之间的“公共字段”。 ④ 在“表格”下拉菜单中选择“Join(合并)”,合并即告完成。图5。
图5 空间数据和属性数据的连接
图6反映的是合并前两个表格的情况,其中左表是目的表(当前被选中的公共字段名称为tushu-id),右表为源表。 注意:Join(合并)操作必须注意操作的顺序,先选择连接表,再选择目标表,才能把连接表连接到目标表上。Join连接有时会失败,一般的原因是某个表或专题图正在编辑,应选用菜单Table/Stop Editing,退出编辑状态,再重新连接。选用菜单Table/Remove all Joins,将各种Join方式的连接解开。 表格Join和Link的区别 (1)连接关系不同。Join方式连接的两个表格之间的记录只能是“一对一”、“多对一”的查询关系,不能实现“一对多”的查询;而Link方式连接的两个表格之间的记录可以是“一对一”、“多对一”、“一对多”的查询关系。 (2)显示内容不同。Link仅简单定义了两表之间的相关性,两表的本来结构和内容并不改变,外观上仍然是两个独立的表,查询其中一个表的记录时,另一个表中的对应记录被立刻查到,分别显示在各自的窗口中;而Join实现连接后,被连接的表就被合并到结果表中,使得结果表中的字段得到扩展,表的显示比较紧凑、简洁。 6. 表格数据的归纳、统计与计算 ArcView提供了对表格数据的归纳、统计与计算的方法。归纳、统计的对象是表格中的数字型字段,内容有:计数、平均值、累加、最大值与最小值、取值范围、标准差、方差等。 (1)归纳(Summarize) ①单击表格中的数字型字段,选定要进行归纳的字段名。若只想对字段中的部分记录进行归纳,则必须选择这些记录,选择可以在选定字段之前,也可以在选定字段之后。 ②单击工具条的“Summarize”按钮,或者单击“字段”(Field)菜单下的“Summarize”选项,将弹出一个对话框。图6。
图6 表格归纳定义框 ③在对话框中,确定归纳表格的存贮位置及文件名(缺省名为Sum1、Sum2等);在Field的下拉列表中选定要归纳的字段名称;在“Summarize by”下拉列表中选定归纳方式;单击添加(Add)按钮,则由字段名与归纳方式共同组成的新字段将出现在对话框右侧的列表框中(图6), ④单击OK确定,则ArcView自动生成一个新的归纳表格,图7 。
(2)统计(Statistics) ①单击表格中的数字型字段,选定要进行统计的字段名。注意:若只想对字段中的部分记录进行统计,则必须选择这些记录,选择可以在选定字段之前,也可以在选定字段之后。 ②从字段“Field”下来菜单中选择“统计”(Statistics)项,则ArcView自动生成一个新的统计结果窗口,显示当前被选定的或源表全部记录的统计信息(图8)。
(3)计算(Calculate) ①从Edit编辑菜单选取Add Field(添加字段)选项。在对话框中给出字段名称、数据类型和宽度,按OK。 ②选定想要计算的字段名。注意:若只想对字段中的部分记录进行计算,则必须选择这些记录,选择可以在选定字段之前,也可以在选定字段之后。 ③从字段“Field”下来菜单中选择“计算”(Calculate)项,则出现一个对话窗(图9),在对话框中,Field的下拉列表中选定要计算的字段名称,按OK确定。
图9 表格计算对话框 注意:计算的字段和选定的字段类型要一致。 四、实验作业 1. 在常用的数据库软件中建立属性数据库soilsample.dbf; 2. 把soilsample.dbf属性数据和soil的空间数据相连接; 3. 对soil中的空间数据进行统计、归纳和求和。 |
|