基于ARCINFO的地形图数据建库方法

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

基于ARC/INFO的地形图数据建库方法广西基础地理信息中心梅树红摘要:数据是地理信息系统不可或缺的一部分,怎样有效地生产数据和管理数据是GIS行业一直在探讨的课题。本文介绍了ARC/INFO空间数据管理的特点,并重点讨论了利用ARC/INFO的LIBRARIAN对地形数据建库和管理的方法。关键字:ARC/INFO、建库、LIBRARY一、前言地形图经过数字化成为电子数据以后,应用的好坏很大程度上依赖于对数据的管理,目前对数据的管理最有效的手段就是数据库。Arc/Info作为一个地理信息软件,也提供了对大量数据的集成管理,空间数据管理常用的方式有:Librarian、ArcStorm和SDE。Librarian和Arcedit、Arcplot一样,是Arc/Info的基本模块之一,它可管理大数据量的图形数据,并采用先进的空间索引方式,用户只要指定范围和内容,系统会自动调入相关而不是所有的数据,它还支持多用户同时读取同一地图库,当一用户在对固定范围的数据进行修改时,系统锁定这一范围数据,防止别的用户同时修改使数据产生不一致性;ArcStorm则是Arc/Info的一个扩展模块,它采用客户/服务器的结构设计,比起Librarian可以管理更大量的数据,数据的锁定可以基于单个特征,增加了数据的共享性;SDE采用了也是客户/服务器结构,提供了一种手段使空间数据可以添加到关系型数据库进行管理,提供了对空间、非空间数据进行操作的接口,支持VisualBasic、C、C++等流行的程序语言对Arc/Info数据的操作。由此可见,Libraian适用于一定范围纯Arc/Info图形数据(coverage)的管理,ArcStorm则适用于大数据量、多用户的Arc/Info图形数据管理,SDE则在开发基于图形的应用程序时发挥作用。本文以1:25万地形数据库为例讨论用LIBRARIAN进行建库和管理的方法。二、LIBRARIAN介绍LIBRARIAN是ARC/INFO软件的一个模块,该模块可以创建、维护数字地图库(LIBRARY)。数字地图库分块、分幅存贮地理数据,但可以把它作为一个整体进行访问,一般来说,一个图库代表一个地理区域。一个数字地图库的功能就是用一种方法来组织信息,使之容易被访问,并提供一种方法来控制访问和事务处理。2.1LIBRARY的功能定义数据库的空间位置关系定义数据内容的组织方式控制用户对数据库数据的使用权限,分为六个级别:主管ADMINSTRATOR、管理者MANAGER、操作员OPERATOR、浏览者BROWSER、不可拷贝浏览者LOOK、无任何权限NONE。控制访问并跟踪对库数据的任何修改允许在整个数据库范围内进行查询和选择,并能建立数据的空间索引关系,有效减少查询时间提供数据库修改过程的历史记录提供数据库结构和数据统计2.2LIBRARY的数据结构在逻辑上,LIBRARY以两种方式组织这个区域的数据:tiles和layers。如图1所示:图库是一个三维结构,在图库中,tile是水平的,而在概念上,layer是垂直的。当一个tile横切一个layer时,就产生一个coverage。TILE:是对图库进行二维分割,所有tile边界连起来便组成数据库的整个地理区域。Tiles在空间上分割数据库中的数据,数据在库中的存贮物理上是以tile为单位的。Tile可以基于规则格网、自然地理边界或景观特征。如1:25万数据建库时是以图幅范围为tile边界的。Tiles形状应反映数据库数据的使用和以后的应用;Tiles形状不应是经常变动的边界或不稳定的边界;Tiles应是连续的多边形COVERAGE,在一个tile中不允许存在不相连的岛多边形,每一个岛多边形应是独立的tiles。图1Library的数据结构Tile是以ARC/INFO的workspace形式存贮。Tiles是最难以改变的库结构,所以确定tile时应做充分的实验及论证。如1:25万数据建库时是以图幅范围为tile边界的,为使库里的数据在空间上是连续的,故选用的是经纬度的数据建库,则每个Tile是1°×1.5°的经纬网界线组成。广西全区共有28个Tiles。LAYER:在数据库中,分割数据的第二种方法就是用layer进行分割,一个layer包含整个区域中的某类特征,由一个类型的coverage构成,用于具体存放数据库的内容。数据库查询、显示的就是layer。2.3LIBRARY的数据组织Library是一个层次数据结构,数据库由标准的ARC/INFO数据结构的COVERAGE和INFO文件构成。它由四部分组成:数据库位置文件:每一个数据库只有一个位置文件,包含数据库的名字和存放位置,这个文件存放于ARC/INFO主目录的TABLES目录下。数据库参考目录(DATABASE):包含定义数据库结构的文件,包括一个数据库索引COVERAGE,该COVERAGE包含TILE的名字、物理位置等等,该目录里还包括数据库的样板LAYER。TILE工作空间:这是一个ARC/INFO的工作空间,它包含某一tile中的所有mapsectionMapsection/coverage:这是一个ARC/INFOcoverage,由某个tile中的一个layer构成。例见图2:图2Library的数据组织其中:access目录包含数据库的权限管理文件,LIBRARY.ACCESS控制用户对数据库的访部权限,LAYER.ACCESS控制用户对layer的访问,LAYER.IDS包含有关用户访问组的信息。index是一个连续的多边形coverage,描述数据库的tile结构,一个数据库只能有一个index文件。database下的bount、hydnt等是layer的模版coverage,定义了数据库中每一个layer的属性表结构、投影、精度等等,layer入库时与这些coverage比较,只有属性结构、投影、精度等等都完全一样才能入库。Tile目录存放数据库的coverage数据。三、建库方法:3.1数据库设计:根据数据库用户使用频率最高的方式,确定数据库索引,也就是Tile的结构。根据用户应用数据的范围、内容,确定数据库的结构。1:25万数据库的分层按采集时定义的分层,共14层。分析数据库用途,确定数据库的精度、投影等等。1:25万数据采集时的坐标容限值为25米,投影采用高斯投影,建库时坐标容限仍取25米,投影则转为地理投影(经纬度)。3.2建立索引文件INDEXCOVERAGE:INDEX是一个由多个TILE边界组成的多边形COVERAGE,每个多边形是一个TILE。可以数字化一个INDEXCOVERAGE,或者用ARC命令建立,包括用APPEND、DISSOLVE、GENERATE等。广西的1:25万数据库采用地理坐标(经纬度),经纬度范围:东经103.5°-112.5°,北纬20°-27°,用GENERATE生生成一个格网大小为1°×1.5°的多边形COVERAGE。如图形所示:图3Indexcoverage与建库范围的关系3.2.1建立index的过程:用GENERATE建立一个包含TILE结构的COVERAGE:INDEX;把COVERAGEBUILD成多边形COVERAGE;用ADDINDEXATT或ADDITEM给INDEX.PAT加入两个数据项:TILE-NAME和LOCATION;给TILE-NAME赋值,指定每个TILE的名称,如上图中的形式g4806、f4907等就是TILE的名称;给LOCATION赋值,用INFO名令CONCATENATE指定TILE的存贮地点;用TOLERANCE命令设置INDEXCOVERAGE的容限值;用PROJECTIONDEFINE给INDEX定义投影文件。3.2.2建立INDEXCOVERAGE的几点原则:索引COVERAGE的名称可以不为INDEX;每个TILE的名称需唯一;INDEX的容限值也就是整个数据库的处理容限值,代表了数据库的精度,这个值不可小于要入库的COVERAGE的容限值。数据库的精度在生产数据时控制,入库时精度可降不可升;如果入库数据不含投影文件,则INDEX也不应含投影文件。3.3建立TILE目录:建立了TILE结构的INDEXCOVERAGE,就可用LIBRARYBUILDTILES生成TILE工作空间:BUILDTILESINDEX此命令根据INDEX.PAT中的TILE-NAMEO为TILE工作空间命名,用LOCATION确定TILE工作空间所在的位置。3.4建立数据库的框架:建立TILE后,用LIBRARYCREATEMAPLIBRARY命令把该数据库登记在ARC/INFO里,createmaplibrarygx-gis25index其中,gx-gis25为数据库的名称。运行命令后,即在当前目录中生成了数据库参照目录DATABASE,INDEXCOVERAGE被拷贝入DATABASE目录中并被命名为INDEX。运行此命令,用户需对ARC/INFO的TABLES有写权限。3.5定义LAYER:LIBRARY:ADDLAYERlayercoverformat-coverlayer是LAYER的名称;cover是在DATABASE中存贮的样板LAYER名;format-cover是做为样板的cover的特征属性,该format-cover的空模板被拷入DATABASE中,应与cover同名。一个和加入的LAYER同名的数据项被添加到INDEX。PAT中,数据项的初值为“N”。如果某个TILE中有定义的LAYER数据,则数据项值为“P”。删除LAYER用LIBRARYDROPLAYER1:25万数据库LAYER的名称采用数据采集时定义的COVERAGE名称,共14个LAYER,分别为:BOUNT、BOUPT、HYDNT、HYDLK、RESPT、RESPY、ROALK、RAILK、TERLK、TERNT、OTHNT、ATNLK、GGDLN、QUAPY。3.6数据入库:数据入库可以用INSERT和PUTTILE。当一个COVERAGE跨多个TILE用INSERT将LAYER数据分配到各个TILE中。INSERTcoverlayer{DROPBORDER}PUTTILE比INSERT速度快。当数据库分区与数据存贮分区一致时,可以用PUTTILE入库:PUTTILEcovertilelayer应注意的是入库时LIBRARY只检查数据的定义、结构,不检查数据的内容,数据内容的正确与否应在入库前进行检查。3.7数据完整性检查数据入库后,应进行数据检查:VERIFYLAYERlayer{CHECK|UPDATA}这是检查layer的一致性,如发现错误,则返回信息。四、数据库的管理、维护4.1用户权限设置数据库建好投入使用,怎样保证数据的安全,这就需要对不同使用目的用户设置不同的使用权限。在librarian中,建库时的用户,建库后即获得了ADMINSTRATOR的权限。ADMINSTRATOR在任何时侯都可以修改各用户的访问权限。用GRANT定义用户权限:GRANTuser|$RESTaccessLIBRARYGRANTuser|$RESTaccessLAYERlayer|CURRENTuser|$REST:用户名;access:权限类型,即adminstrator、manager、operator、browse、look、none。用REVOKE取消用户的访问权:REVOKEuser|$RESTALLREVOKEuser|$RESTLIBRARYREVOKEuser|$RESTLAYERlayer|CURRENTLIBRARY的权限管理只能对应用LIBRARY和ARCPLOT进行的操作进行管理,LIBRARY应用的是操作系统的文件管理结构,因此,ADMINSTRTOR在应用

1 / 10
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功