企业级GIS设计管理优化策略(txt+pdf+epub+mobi电子书下载)


发布时间:2020-09-16 01:40:22

点击下载

作者:李少华

出版社:电子工业出版社

格式: AZW3, DOCX, EPUB, MOBI, PDF, TXT

企业级GIS设计管理优化策略

企业级GIS设计管理优化策略试读:

前 言

正如2014年中央电视台春节联欢晚会上的一首《时间都哪去了》,听完也会感叹自己的时间都去哪了。从2010年真正接触和研究企业级地理数据库及其密切的相关方向到现在已经有四年时间了,本书提及的企业级地理数据库技术以Esri的ArcSDE技术、Geodatabase技术为核心,并结合了数据库技术(Oracle)、操作系统技术等相关技术。企业级地理数据库及其相关技术一直以来就是Esri比较成熟的核心技术,因为它处于GIS系统的最底层,是前端系统正常运行的基础和保证,一旦出现问题,会导致整个GIS信息系统完全瘫痪,造成的影响和损失是致命的,所以掌握企业级地理数据库的相关知识,解决在系统运行中的问题并进行性能优化是地理数据库管理人员的首要工作。

每次步入海淀图书城(北京),我都会去留意地理信息类别的图书,这里面基本上涵盖了所有GIS技术的专业书籍,包括GIS基础理论类、GIS技术与行业应用类、基础平台软件操作类、GIS技术开发类,但是关于企业级地理数据库相关技术的介绍书籍基本没有。作为Esri公司的售后技术支持工程师,每天都会接到来自全国用户咨询的相关问题,有通用的典型问题、有疑难的复杂问题、有变态的环境问题、有已确认的Bug问题,这些问题都会令相关的系统技术人员无法解决而烦恼不已,而且在互联网上的可用资料也不是很多,当出版社的编辑与我沟通,问我是否愿意出版一部相关技术的书籍时,我不假思索地答应了。之所以能够接下这个“任务”,是因为在四年技术支持工作生涯中,我将处理的几千个用户问题以博客的形式进行了积累,这也为今天能够交出这份“答卷”提供了素材的保证。而且在同用户沟通过程中,了解到他们也希望市面上有类似的参考书籍出版,这更加坚定了我一定要把自己研究和积累的企业级地理数据库技术和经验分享给大家的信心。

随着目前Web GIS的广泛使用,大家关注的重心往往是功能、页面等,在前几年C/S架构GIS系统火爆时期,大家对地理数据库还是比较重视的。现在B/S架构和移动平台的日益普及,很多开发者都希望能够抛开目前繁重、复杂的数据库技术,直接使用文件型存储、NoSQL技术等来取代关系型数据库。我个人持谨慎乐观态度,的确,随着计算机技术的不断发展,Esri相关产品技术也会结合最新的计算机技术不断更新和改进。从ArcSDE的安装方式、连接方式、逐渐透明的存储结构、对数据库原生的存储,甚至ArcGIS也可以连接非关系型数据库、数据源的数据,这都证明了Esri的与时俱进。但是从目前国内的发展现状来看,虽然开发商会紧跟最新技术的发展热潮,但是还有很多基础建设的项目要开展和使用,还有现在已经正在运行的项目,这都需要企业级地理数据库技术进行保障,而且毕竟该技术已经有非常成熟和长期的实施经验,一直以来深受用户的好评和信赖。

本书主要有企业级地理数据库的基础知识、设计、管理、优化以及与新技术的结合等几部分。基础部分主要介绍地理数据库、ArcGIS版本技术、ArcSDE技术、使用空间SQL操作Geodatabase,这些知识将为后面用户对企业级地理数据库的设计、管理以及优化提供很好的技术保证。而且,本书也介绍ArcGIS与新技术相结合后发展以及应用情况,为用户开展企业级项目提供了一个很好的建议和指导。

鉴于企业级地理数据库为一个GIS系统的服务器端,而且服务器端的版本升级可能不及客户端那么快,所以本书主要以ArcGIS 10为主要测试环境,但是会顾及ArcGIS 9.x版本和ArcGIS 10.x版本,甚至最新的ArcGIS 10.2.1版本的内容都会有所涉及。不仅介绍ArcGIS主要的核心技术,也将Esri社区相关的管理工具(非官方)推荐给用户。本书的ArcGIS产品介绍会出现ArcGIS(代表整个Esri产品体系)、ArcGIS 10(代表10版本的整个Esri产品体系)、ArcGIS Desktop 10(10版本的桌面)、ArcGIS 10.1 for Desktop(在该版本中,Esri对软件的命名发生了变化)、ArcGIS 10.x for Desktop(高于10版本的ArcGIS桌面)等不同版本,因为该技术结合了其他数据库技术,所以以用户最常用的Oracle数据库为主要对象进行讲解。

本书要求用户有ArcGIS Desktop、ArcSDE、Geodatabase、Oracle数据库的相关基础知识,适合ArcGIS开发工程师、GIS项目经理、地理数据库管理员、GIS系统建设者以及系统集成和运维人员等阅读。

在写作过程中,特别要感谢Esri技术总监沙志友先生对我的指导和帮助,并抽出宝贵时间为该书作序。特别感谢刘锋工程师,他以扎实的ArcGIS与Oracle技术帮助我踏入企业级地理数据库的殿堂,也为我日后工作和学习提供了很多帮助。也感谢曾经的同事吴泳峰、张宝才在相关技术的研究方面给予我的支持,也感谢Esri中国信息技术有限公司各位领导和同事在工作上对我的帮助。

还要特别感谢我的爸爸妈妈在写作过程中对我的鼓励和支持,感谢我的爱人Dido给予我大量的独立时间进行写作,感谢我可爱的宝宝Wendy,每天看到她可爱的微笑都会让我精神百倍,充满动力和能量。

由于作者水平有限,不成熟、不完善之处在所难免,希望读者提出宝贵意见。李少华2014年2月 北京第1章Geodatabase技术1.1 地理数据模型的发展历程

地理数据模型是对真实世界的抽象,它是由一系列支持地图显示、查询、编辑和分析的数据对象组成的。

ArcInfo 8引入了全新的面向对象的数据模型——Geodatabase模型。它能够表达要素的自然行为以及这些行为的关联方式。这个全新的模型的意义是非常重大的。为了我们能够更好地理解理数据库,下面回顾一下我们曾经使用过的地理数据模型。1.1.1 CAD数据模型

CAD数据模型是最早的计算机制图系统,使用阴极射线管的显示线来绘制矢量地图,使用行式打印机上的加印技术绘制栅格地图。以此为起源,19世纪六七十年代出现了精致的绘图硬件工具以及能够使用合理逼真制图技术进行地图符号化的制图软件。

这一时代中,地图通常用一般的CAD(计算机辅助制图)软件来制作。CAD数据模型以表示点、线、面的二进制文件格式来存储地理数据。但是这些文件不能存储足够多的属性信息。地图图层和注记标注是基本的描述属性。1.1.2 Coverage数据模型

1981年,Esri推出了第一个商用GIS软件ArcInfo,它实现了第二代地理数据模型——Coverage数据模型(也称地理关系数据模型)。这个模型有如下两个关键特点。● 空间数据与属性数据相结合。空间数据存储在二进制索引文件中,

使显示和访问数据得到了优化。属性数据存储在表格中,使用类

似于二进制文件中要素数目的行来存储数据,并且属性和要素使

用同一ID连接。● 矢量要素之间的拓扑关系也被存储起来。这意味着,线的空间数

据记录包含这些信息:哪些结点分割线,通过结点分割线可以推

算有哪些线相连,同时线的左右两边分别有哪些多边形信息。

但是,Coverage数据模型有一个重大缺陷——要素是以统一的行为聚集的点、线、面的集合。也就是说,表示道路的线的行为和表示河流线的行为是一模一样的,这显然与现实地理世界是不相符的。1.1.3 Shapefile数据模型

Shapefile是一种用于存储地理要素的几何位置和属性信息的非拓扑简单格式。Shapefile中的地理要素可通过点、线或面来表示。包含Shapefile的工作空间还可以包含dBASE表,它们用于存储可连接到Shapefile的要素的附加属性。

Shapefile以其简单灵活的特点,一直被ArcGIS用户所推崇。而且Shapefile也是ArcGIS软件对外的交换格式,该数据格式是一种公开格式,感兴趣的用户可以到Esri官网下载Shapefile的白皮书来研究。Esri Shapefile白皮书:http://www.esri.com/library/whitepapers/pdfs/shapefile.pdf。

但是随着ArcGIS技术的不断发展,ArcGIS用户对复杂地理对象研究需求日益增加,而且组成Shapefile的每个文件有2GB存储的限制要求,Shapefile模型已经不能满足用户的需求。1.1.4 Geodatabase数据模型

ArcInfo 8引入了一种新的面向对象的数据模型——Geodatabase数据模型。在这个全新的数据模型中,通过为要素添加更贴切的“自然”行为,从而使GIS数据库中的要素更加智能化,在Geodatabase中,不仅能够存储点、线、面等简单对象,还可以存储描述高级地理现实世界的复杂对象,如城市管网模型、城市交通模型等。而且Geodatabase模型也支持业务工作流的事务模型。

下面介绍一下Geodatabase的几个特点:● 地理数据库是ArcGIS的原生数据结构,并且是用于编辑和数据

管理的主要数据格式。当ArcGIS使用多个地理信息系统(GIS)

文件格式的地理信息时,会使用地理数据库功能。● 它是地理信息的物理存储方式,主要使用数据库管理系统(DBMS)或文件系统。通过ArcGIS或使用SQL的数据库管理系

统,可以访问和使用数据集集合的物理实例。● 地理数据库具有全面的信息模型,用于表达和管理地理信息。该

信息模型通过一系列用于保存要素类、栅格数据集和属性的表的

方式来实现。此外,高级GIS数据对象可添加用于管理空间完整

性规则的GIS行为,以及用于处理核心要素、栅格数据和属性的

大量空间关系的工具。● 地理数据库软件提供了ArcGIS中使用的通用应用程序的逻辑,

用于访问和处理各种文件和各种格式的所有地理数据。该逻辑支

持处理地理数据库,包括处理Shapefile、计算机辅助绘图(CAD)

文件、不规则三角网(TIN)、格网、CAD数据、影像、地理标

记语言(GML)文件和大量其他的GIS数据源。● 地理数据库还具有用于管理GIS数据工作流的事务模型。1.2 Geodatabase类型1.2.1 个人地理数据库(Personal Geodatabase)

Personal Geodatabase是最早使用的文件型的Geodatabase,也被称为个人地理数据库。个人地理数据库可存储、查询和管理空间数据和非空间数据的Microsoft Access数据库。由于个人数据库存储在Access数据库中,因此其最大存储量为2GB。而且数据存储量在250~500 MB时性能会达到最佳,超过该范围性能可能会有所下降。此外,个人地理数据库可以由多用户同时访问,但是一次只能有一个用户编辑个人地理数据库中存储的数据。1.2.2 文件地理数据库(File Geodatabase)

File Geodatabase是ArcGIS 9.2版本推出的一种文件型Geodatabase。文件地理数据库是磁盘上某个文件夹中文件的集合,可以存储、查询和管理空间数据和非空间数据。文件地理数据库可同时由多个用户使用,但一次只能有一个用户编辑同一数据。因此,一个文件地理数据库可以由多个编辑者访问,但他们必须编辑不同的数据。

File Geodatabase存储的表最大可以支持1TB,而且针对用户不同的数据情况,也可以选择相应的存储关键字进行管理。如图1-1所示,一般情况下,使用DEFAULT关键字即可。图1-1 文件地理数据库关键字● 如果存储超过1TB大小的大栅格数据集,建议指定

MAX_FILE_SIZE_256TB关键字;● 如果存储非拉丁字母的字符数据(如中文),建议指定

TEXT_UTF16关键字;● 如果在文件地理数据库中存储地形数据集,建议指定

GEOMETRY_OUTOFLINE关键字;● 如果存储还包含大BLOB列的地形数据集,建议指定

EOMETRY_AND_BLOB_ OUTOFLINE关键字;● 如果存储包含不会经常访问的大BLOB列的要素类,建议指定

BLOB_OUTOFLINE配置关键字。

File Geodatabase不仅仅在存储性能要优于Personal Geodatabase,而且在编辑和浏览性能方面的表现更加优秀。Esri建议如果用户使用文件型的地理数据库,首选文件地理数据库,因为File Geodatabase最大的优点就是可以跨平台使用。特别是如果用户使用文件数据源在非Windows操作系统中发布文件型地理数据库数据源的ArcGIS Server服务等需求的话,File Geodatabase当然是用户的最佳选择。提示:文件地理数据库的大小和名称限制。文件地理数据库的大小:无限制。表或要素类的大小:1TB(默认值),4GB或256TB(关键字指定)。要素类和表的数目:2 147 483 647。要素类或表中的字段数:65 534。要素类或表中的行数:4 294 967 295。地理数据库名称的长度:操作系统所允许的文件夹名的字符数。要素类或表名的长度:160个字符。字段名的长度:64个字符。文本字段的宽度:2 147 483 647。1.2.3 企业级地理数据库(Enterprise Geodatabase)

企业级地理数据库,顾名思义,区别于文件型的地理数据库,该数据库是建立在关系型数据库上面的。截至ArcGIS 10.2.1版本,ArcGIS支持Oracle、SQL Server、PostgreSQL、IBM DB2、IBM Informix五种关系型数据库。

企业级地理数据库不仅支持Windows操作系统,也支持Redhat Linux、IBM AIX、HP-UX、Sun Solaris、SUSE Linux等常用的服务器操作系统,企业级地理数据库的存储大小依据不同的关系型数据库所使用的存储设备来定。而且企业级地理数据库最大的特点就是可以支持多用户并发读写的操作,这是文件型地理数据库所不能做到的。提示: ArcGIS 10.2 也支持连接 SQLite 、 Teradata 、 Netazza 、 MongoDB 等不同级别的数据库或者数据仓库。目前这些数据库只支持简单对象,而且在这些数据库中并没有创建 Geodatabase 的对象。1.3 文件型地理数据库的性能优化

任何一种数据存储模型,长时间进行数据的编辑和查询都会产生大量的数据冗余,那么用户就需要对这些数据进行相关的优化操作。ArcGIS提供了文件型地理数据库的数据压缩和紧缩操作,如图1-2所示。图1-2 文件型地理数据库的压缩和紧缩1.3.1 压缩文件地理数据库(Compress)

压缩只适用于File Geodatabase。要降低存储要求,可将文件地理数据库中的矢量要素类和表压缩为只读格式。压缩后,数据集在ArcCatalog和ArcMap中与其被解压缩之后看起来是一样的。而且,除了编辑之外,使用方式也是相同的。压缩数据为直接访问格式,所以无须在每次访问时都进行解压缩,ArcGIS客户端可以直接读取压缩数据。

为了更好地理解文件地理数据库的压缩,用户可以将压缩想象为紧凑、挤压或紧压数据,但这与普通压缩数据时的情况不一样。文件地理数据库压缩不会在物理上将数据挤压到更小的空间中,而是将其重新编码为另一种不同的更紧凑的形式。结果通常小于原始数据大小,因为压缩进程会移除数据中的冗余。例如,3个A41的运行“A41 A41 A41”可重新编码为“A41(3)”,(3)表示A41重复3次。要显示压缩数据,ArcGIS 会将“A41(3)”重新解释回“A41 A41 A41”。这只是ArcGIS用于压缩文件地理数据库数据的一种策略。对于不同的字段,ArcGIS 会应用不同的策略,这取决于数据的类型、唯一值的数量以及值的重复频率。1.3.2 紧缩(Compact)

紧缩适用于Personal Geodatabase和File Geodatabase。紧缩是指通过重新排序并消除空白空间的方式来整理文件中记录的存储状况。如果用户在文件或个人地理数据库中频繁地添加和删除数据,则应每月对地理数据库执行一次紧缩操作,可以缩减文件大小并改善性能。1.4 多用户Geodatabase类型

一般情况下,每个项目都是由多用户对地理数据库进行相关的操作。那么多用户地理数据库支持三种类型,分别是Personal级别、Workgroup级别和企业级别,如图1-3所示。图1-3 支持的三种类型

三种多用户地理数据库类型的适用场景对比如表1-1所示。表1-1 三种多用户地理数据库类型的适用场景对比(续表)

Desktop类型就是在ArcGIS for Desktop安装介质自带的一个ArcSDE程序,通常也称之为Personal ArcSDE。企业级区别特征中的空间类型,就是支持不同数据库的空间存储,如Oracle的ST_GEOMETRY和SDO_GEOMETRY。企业级区别特征中的IT集成,就是该类型的软件可以和ArcGIS Server一起为整个企业级GIS系统协调工作。工作组类型其实也是一个单独的软件介质,也是一个单独的许可,因为该类型处于中间级别,所以使用较少。1.5 Geodatabase元素简介1.5.1 要素类(Feature Class)

要素类是一些地理要素的集合,这些地理要素在公共区域共享相同的几何类型、属性字段和投影。街道、井点、宗地、土壤类型和人口普查区域都是要素类。

ArcGIS要素类的类型包括:● 点状要素类(Point):表示过小而无法表示为线或多边形以及点

位置(如 GPS 观测值)的要素。● 线状要素类(Polyline):表示形状和位置过窄而无法表示为区域

的地理对象(如街道中心线与河流)。也使用线来表示具有长度

但没有面积的要素,如等高线和边界。● 面状要素类(Polygon):一组具有多个面的面要素,表示同类要

素类型(如州、县、宗地、土壤类型和土地使用区域)的形状和

位置。● 注记要素类(Annotation):表示所有要素均具有地理位置和属

性,可以位于要素数据集内或独立的要素类内。每个文本注记要

素都具有符号系统,其中包括字体、大小、颜色以及其他任何文

本符号属性。注记通常为文本,但也可能包括需要其他类型符号

系统的图形形状(如方框或箭头)。● 多面体(MultiPatch):一种3D几何图形,用于表示在三维空间

中占用离散区域或体积的要素的外表面或壳。多面体由平面3D

环和三角形构成,将组合使用这两种形状以建立三维壳模型。可

使用多面体来表示从简单对象(如球体和立方体)到复杂对象(如等值面和建筑物)的任何事物。● 尺寸(Dimension):一种可显示特定长度或距离(例如,要指示

建筑物某一侧、地块或两个要素之间距离的长度)的特殊注记类

型。在GIS的设计、工程和公共事业应用中,经常会使用尺寸。● 多点(Multipoint):由多个点组成的要素。多点通常用于管理非

常大的点集合数组(如激光雷达点聚类),可包含数以亿计的点。

对于此类点集合使用单一行是不可行的。将这些点聚类为多点行,

可使地理数据库能够处理海量点集。

用户可以通过ArcGIS客户端(如ArcGIS for Desktop)创建不同类型的要素类,如图1-4所示。图1-4 ArcMap创建要素类1.5.2 数据集(Feature Dataset)

要素数据集是共用一个通用坐标系的不同类型要素类的集合。要素数据集被用于按空间或主题整合相关的要素类。它们的主要用途是将相关要素类编排成一个公用数据集,用以构建拓扑、网络数据集、地形数据集或几何网络等更为复杂的地理对象,如图1-5所示。图1-5 数据集对象

数据集的特点如下:(1)编排主题相关的要素类。

在用户建库过程中,经常会将整个企业级的业务数据存储在Geodatabase 中,但是这些业务数据库可能是按照不同业务部门或者不同区域进行区分的,那么用户就可以使用数据集的方式将不同业务数据或区域进行分类。(2)基于数据库权限安排数据访问权限。

有时用户会使用要素数据集来安排数据访问权限。一个要素数据集中包含的所有要素类都具有相同的访问权限。例如,用户可能需要使用多个要素数据集来划分一系列相关要素类,以便在各用户之间实现访问权限的差异化。每个组对其中一个要素数据集及其要素类具有编辑访问权限,但对其他要素数据集不具有编辑访问权限。(3)编排要素类以实现数据共享。

在某些数据共享情况下,协作型企业可能会制定一个数据共享模式,以便与其他用户共享数据集。在这种情况下,相关人员可以使用文件夹形式的要素数据集来编排简单要素类的集合,以便与其他用户共享。1.5.3 子类(Subtype)

子类型是要素类中具有相同属性的要素的子集,或表中具有相同属性的对象的子集。可通过它们对数据进行分类,如图1-6所示。图1-6 子类对象

子类型的作用如下:(1)通过将真实世界中的各种对象表示为给定要素类中的要素子集,而不是为每个对象都创建新的要素类,从而提高了地理数据库的性能。

例如,可将河流要素类中的河流划分为三个子类型:一级河流、二级河流、三级河流。(2)设置一个将在创建新要素时自动应用的默认值。

例如,可创建和定义一个地方街道子类型,以便每当将此类型的街道要素添加到要素类中时,其速度限制属性就会自动设置为 35 km/h。(3)对要素应用编码属性域或值域范围,以将输入信息限制在一个有效的值域范围内。

例如,在一个热力网络中,子类型给热力管可以使用一个编码属性域来表示材料,以将其材料限定于铜芯、铸铁芯等。(4)创建其他子类型和要素类之间的连通性规则以保持网络的完整性。

例如,在一个供水管网中,消火栓可以连接到消火栓支管,但不能连接到生活用水支管。1.5.4 域(Domain)

特性域是描述字段类型是否合法的规则,系统提供了一种增强数据完整性和规范性的方法。特性域用于约束表或要素类的任意特定字段属性中的允许值。域是可接收特性值的声明。如果某个特性字段与某个域对象相关联,则只有该域内的值才对此字段有效。

特征域分为两种类型:范围域和编码域。(1)范围域:范围域用于指定数值特性的有效值范围。创建范围域时,需要输入一个最小有效值和一个最大有效值,可将范围域应用于数值型和日期特性类型。例如,建筑密度值的范围定义为0~1之间。(2)编码域:编码值域可以应用于任何类型的字段,如文本类型、数值类型和日期类型等。编码值域用于为特性字段指定有效的值集。例如,土地权属性质分为:国有土地所有权、国有土地使用权、集体土地所有权、集体土地使用权、土地他项权利等。1.5.5 关系类(Relationship Class)

哲学上有句话说:万事万物都是有联系的。GIS技术要真实表达地理对象的联系也需要将地理对象之间的关系表达出来。在ArcGIS中,数据集中的要素类与要素类是有关系的,要素类里面的要素之间也是有关系的,要素类与普通属性表同样是有关系的,那么上面所述的不同对象间的关系,ArcGIS使用关系类对这些对象进行管理,如图1-7所示。图1-7 关系类对象

ArcGIS集成了各种类型的地理和非地理实体的相关信息。以国土行业为例,把地籍的最小单元称之为宗地,在宗地上面可以建造房子(也称之为建筑物),这些建筑物是有所有人的,所有人是拥有这些建筑物产权证明的(也称之为房本或者登记卡),上述所列举的所有实际对象都是有关联的,而且这种关联是有范围限制的。例如,房子只能建在宗地上,如果宗地注销,在上面的建筑物则需要拆毁。

ArcGIS使用关系类对象来表达:(1)某些地理实体可以与其他地理实体相关联,例如,建筑物可与宗地相关联;(2)地理实体可以与非地理实体相关联,例如,建筑物可与建筑物所有者相关联;(3)某些非地理实体可以与其他非地理实体相关联,例如,可将建筑物的登记卡指定给建筑物所有者。1.5.6 拓扑(Topology)

拓扑是结合了一组编辑工具和技术的规则集合,它使地理数据库能够更准确地构建几何关系模型。ArcGIS通过一组用来定义要素共享地理空间方式的规则和一组用来处理在集成方式下共享几何的要素的编辑工具来实施拓扑。

一般情况下,用户的数据来源比较多样化,包括人工采集、地图矢量化、格式转换等,这些方法都会存在由于人为因素或者不同软件数据格式的差异性导致数据的质量问题,那么势必会导致系统查询分析的效率低下或者结果出现偏差。出于对ArcGIS入库前数据质量的考虑,用户可以使用ArcGIS拓扑对数据质量进行检查,Esri提供了将近三十多种拓扑关系,如图1-8所示,而且这些拓扑关系完全可以满足目前事物之间的逻辑和业务关系需求。图1-8 ArcGIS典型拓扑规则

以国土行业为例,有表达最小地籍单元的宗地图层,有沿着宗地边界的界址线图层,有沿着宗地节点的界址点图层。那么在国土业务当中,有以下必须严格执行的业务规则:● 宗地与宗地之间不能相互压盖;● 宗地的边界必须与界址线重合;● 宗地的节点必须与界址点重合;● 界址线不能有自相交;● 界址线不能有悬挂线。

通过上面的业务规则,用户就可以在ArcGIS拓扑对象中添加相应的拓扑规则进行验证,查询出有问题的数据并进行修改,直至满足用户的业务需求。1.5.7 几何网络(Geometric Network)

借助几何网络,可以构建现实世界中的公用设施网络和基础设施网络模型。如电力、天然气、下水道和给水线路等只允许沿边单向同时行进。网络中的代理(如管道中石油的流动)不能选择行进的方向,如图1-9所示。它行进的路径需要由外部因素来决定:重力、电磁、水压等。工程师可以通过控制外部因素来控制对象的流向。图1-9 几何网络的流向标识

构建几何网络模型后,可以通过执行各种网络分析来满足部分工作的需要。表1-2列出了一些可以执行的几何网络分析,并举例说明了可从各种分析中获益的对象。表1-2 可执行的几何网络分析1.5.8 网络数据集(Network Dataset)

网络数据集非常适合构建交通网络。它们由包含了简单要素(线和点)和转弯要素的源要素创建而成,而且存储了源要素的连通性。例如,街道、人行道和铁路网络等交通网允许在边上双向行驶,如图1-10所示。网络中的代理(如在公路上行驶的卡车驾驶员)通常有权决定遍历的方向与目的地。如果用户需要使用网络数据集,必须拥有ArcGIS Network Analyst扩展模块的许可。图1-10 网络数据集的流向标识

使用网络数据集进行网络分析可以解决如下问题。(1)最佳路线选择。无论是查找两个位置之间的单条路线,还是查找访问多个位置的路线,人们通常都会采用最佳路线。(2)最近设施点。查找距离事故地点最近的医院、距离犯罪现场最近的警车,以及距离客户地址最近的商店等。(3)网络服务区。网络服务区是指包含所有可到达街道的区域。例如,网络上某一设施点的10分钟服务区包含从该设施点出发10分钟内可以到达的所有街道。(4)可达性评估。可达性是指到达某个地点的难易程度。例如,距离一家电影院10分钟车程的范围内有多少人居住?距离一家超市步行距离半公里范围内有多少客户?检查可达性有助于确定某个地点对于开展新业务的适宜程度,也有助于识别现有业务附近的设施点,以帮助用户做出有针对性的营销决策。(5)OD成本矩阵。OD成本矩阵是一个包含从每个起始点到每个目的地的网络阻抗的表文件。此外,可根据从每个起始点行进到每个目的地所需的最小网络阻抗,对每个起始点所连接的目的地按升序排序。(6)车辆配送。车辆配送是通过遵循所有时间限制并使每个路线的整体运营和投资成本降至最低,为客户提供一个高水准的服务。(7)位置分配。位置分配有助于基于与需求点的潜在交互信息来从一组设施点中选择需要操作的设施点。例如,应在哪里建立一家工厂才能使其与配送中心的距离最短。1.5.9 栅格数据集(Raster Dataset)

栅格数据集是存储在磁盘或地理数据库中的任何栅格数据模型。它是构建其他数据集的最基本的栅格数据存储模型。栅格数据集是组织成一个或多个波段的任何有效的栅格格式。每个波段由一系列像素(单元)数组组成,每个像素都有一个值。栅格数据集要求至少有一个波段。ArcGIS支持超过70种不同的栅格数据集文件格式,其中包括TIFF、JPEG 2000、Esri Grid和MrSid。栅格数据集适合带有标准坐标系的航片或卫片,导入影像文件可以拼接为一张完整的大图,如图1-11所示。但是对图幅要求比较高,图幅必须带有坐标系,而且接边要求比较严格。图1-11 栅格数据集对象

ArcGIS 9.x版本一般使用栅格数据集将多幅小影像镶嵌成一个完整的影像。而且它浏览速度快,同时支持影像服务的发布。如果用户需要实时更新影像数据,需要留意,因为栅格数据集镶嵌更新比较耗时。1.5.10 栅格目录(Raster Catalog)

栅格目录是栅格数据集的集合,采用表格的形式。在表格中,每个记录代表了目录中包含的单个的栅格数据集。栅格目录最常用于显示相邻的。完全重叠的或者部分重叠的栅格数据集而无须将它们镶嵌为一个大的栅格数据集,如图1-12所示。栅格目录就如同一个书架,把各种图书统一地管理起来,用户只是管理和维护一个目录,这样如果出现某一个图幅需要修改的情况,只需要把需要修改的图幅删除,再重新导入即可。图1-12 栅格目录对象

栅格目录装载速度非常快,而且存储的影像数据无须统一坐标系,但是栅格目录不支持影像服务发布。1.5.11 镶嵌数据集(Mosaic Dataset)

镶嵌数据集是ArcGIS 10推出的管理栅格数据的影像新技术。它是一项由栅格数据集和栅格目录相结合的混合技术,采用与非托管的栅格目录相一致的方法来管理栅格数据,如图1-13所示。因此,可以对数据集进行索引,并且可以对集合执行查询。它的存储方式和栅格目录类似,在使用过程中和普通栅格数据集相同。图1-13 镶嵌数据集对象

镶嵌数据集是一组以目录形式存储并以单个镶嵌影像或单个影像(栅格)的方式显示或访问的栅格数据集(影像)。这些集合的总文件大小和数据集数量都会非常大。镶嵌数据集中的栅格数据集可以采用本机格式保留在磁盘上,也可以存储于地理数据库中。可通过栅格记录和属性表中的属性来管理元数据。通过将元数据存储为属性,可以更方便地管理诸如传感器方向数据等参数,同时也可以提高对选择内容的查询速度。

镶嵌数据集中的数据不必相邻或叠置,也可以以未连接的不连续数据集的形式存在。数据甚至可以完全或部分叠置,但需要在不同的日期进行捕获。镶嵌数据集是一种用于存储临时数据的理想数据集。用户可以在镶嵌数据集中根据时间或日期查询所需的影像,也可以使用某种镶嵌方法来根据时间或日期属性显示镶嵌影像。

镶嵌数据集并不局限于某种特定类型的栅格数据。用户可以添加不同投影、分辨率、像素深度以及波段数的栅格数据,可以生成整个数据集合的概视图(如金字塔)。这样便可更快速地查看数据,并且可以轻松地使用这些数据集。此外,还存在许多其他关于查看(包括设置镶嵌方法)的属性,这些属性使得这些数据集在各种情况下具有独特性和功能性。还可以根据空间和非空间查询约束来查询镶嵌数据集。查询结果可以是一组用户能够依次处理的影像,也可以是一个动态生成的镶嵌影像。建议:镶嵌数据集是ArcGIS 10版本推出的一种新型的影像存储模型,使用镶嵌数据集解决了用户海量影像数据导入ArcSDE数据库的耗时问题。而且镶嵌数据集提供了大量的影像处理函数来进行动态镶嵌与实时处理,同样镶嵌数据集也支持发布影像服务。所以如果用户使用ArcGIS 10以上版本进行影像数据管理,建议使用高效的镶嵌数据集存储模型。1.6 小结

本章主要介绍了地理数据模型的发展历程,而且对Esri推出的Geodatabase存储模型、相关类型以及各自优缺点也进行了阐述,特别说明了Geodatabase支持的对象元素,本书只介绍了比较常用的元素类型,更多的类型比如LAS数据集、定位器、NetCDF、宗地结构、TIN、地形数据集等建议用户查看ArcGIS的帮助文档。第2章ArcSDE技术2.1 ArcSDE简史

ArcSDE是ArcGIS软件家族中的一员,是一个空间数据库中间件技术。ArcSDE以数据库为后台存储中心,如图2-1所示,为前端的GIS应用提供快速的空间数据访问,海量数据的快速读取和数据存储的安全高效是ArcSDE的重要特征。图2-1 ArcSDE中间件

Esri公司早年就已经开始研究空间数据库的解决方案,并与1994年发布了ArcSDE的前身产品——SDE(Spatial Data Engine),并在过去的时间里不断更新和改进ArcSDE软件。2001年,ArcSDE被纳入ArcGIS软件家族系列。作为空间数据库的解决方案,ArcSDE可以存储海量数据,并整合Geodatabase的功能,是存储地理数据及其行为的一个“智能”数据库解决方案。一直以来,ArcSDE都是空间数据库的首选解决方案。

随着ArcGIS 9.2的发布,ArcGIS软件家族的体系结构也发生了一些变化。ArcSDE归于ArcGIS 9.2 Server产品线下,成为整合的ArcGIS Server的重要组件。ArcSDE现在被统一称为ArcGIS Server 的Basic版,由于ArcSDE技术的特殊性,在软件介质以及技术推广方面仍然作为独立的部分来面向广大ArcGIS用户。2.2 ArcSDE简介

目前的大型企业级GIS系统都是以ArcSDE作为空间数据引擎来进行数据库到客户端之间的数据交互。不管是作为基础GIS平台的ArcGIS Desktop,基于C/S架构的ArcGIS Engine二次开发,基于B/S架构的ArcGIS Server的Web程序,还是目前最火的地理信息协同共享平台的Portal for ArcGIS,最终的数据存储都需要通过ArcSDE技术来完成。而且ArcSDE以其高效的存储和交互技术在千万ArcGIS项目实践中获得了用户的肯定和赞扬。2.3 ArcSDE的特点

在多用户GIS环境中,用户需要一个管理空间数据的数据库,也需要GIS应用程序进行业务操作。不同类型和大小各异的空间数据库会被创建出来,随着业务组织发展和时间的推移,空间数据库的数据量会随之增长壮大。当空间的数据库发展到一定规模时,实现局域网或者万维网上的数据共享成为用户的追逐目标,ArcSDE管理这些海量数据的优势也比较明显,ArcSDE具有的主要特征如下。1.数据库连接结构属性

用户可以把GIS应用程序置于DBMS、ArcSDE、ArcSDE客户端前端,也可以不通过ArcSDE而直接连接DBMS。使用ArcSDE应用服务器可以实现性能优化,并带有支持服务器辅助应用的机制。直接连接数据库不需要进行过多的管理。连接配置允许用户决定满足该项目环境的最大需要。2.空间数据描述

空间数据表述建立在DBMS中标准的数据类型上。如果DBMS增加了空间数据类型,ArcSDE 就能访问并使用这些类型以管理空间数据。必要的话,ArcSDE能为空间数据管理提供版本机制。这些存储方法带来了一个高速,紧凑的空间数据描述。3.数据库的易携性

用户可以通过ArcSDE数据输出和输入设备把数据从一个DBMS迁移到另外一个DBMS且不会丢失信息。如果用户单位拥有一个异构的数据库,可能包含工作组或个人数据系统,此时对易携性能力的要求尤为重要,这种能力甚至也适用于最高级的空间数据库设计。4.应用程序的易携性

ArcSDE为空间数据定义了一个逻辑模型,实现于一个物理数据库视图的顶层。不用多大或无须改变,伴随着ArcSDE API发展的应用程序能在一个DBMS中运行于不同的物理计划上。它使GIS数据库管理者为各个独立的数据集选择最好的数据结构以实现应用程序的需求。例如,一个数据集能够用一个符合存储模型(在Oracle中作为ST_GEOMETRY存储)来维护和编辑,然而另外一个数据集可能以Oracle Spatial类型形式存储。数据的存储对末端用户应用来说是透明的。5.数据的完整性

ArcSDE管理数据库中的点、线和多边形信息的完整性,它不允许不规则的要素数据的几何添加(比如,多边形边界必须要封闭)。用户可以通过ArcGIS Desktop工具来实现数据模型约束。例如,为几何网络添加连接规则。6.应用规划接口

ArcSDE为查询和处理空间信息提供了开放和高级的C API和[1]Java API。这些APIs为高级的应用开发提供了GIS函数。当主 DBMS 提供了扩展的空间类型(如Oracle Spatial、SQLServer Geometry、Geography和PostGIS等)时,结构查询语言SQL也适用于在 DBMS 中处理几何列。2.4 ArcSDE安装2.4.1 安装ArcSDE前的准备

ArcSDE是一个中间件,在安装前需要确定操作系统以及相关的数据库的版本,而且在ArcSDE 10.1之前包括32位应用程序和64位应用程序,ArcSDE 10.1版本之后都是64位应用程序。针对不同类型的操作系统和数据库,Esri公司提供了不同ArcSDE版本的系统需求,特别是如果用户需要进行项目相关的软件采购或者生产系统的搭建,必须按照Esri的系统需求来选择相应的软件环境。不同类型的数据库所对应的地址如下:Oracle database requirements for ArcGIS 10.2.x: http://resources.arcgis.com/en/help/system-requirements/10.2/index.html#/Oracle_Database_Requirements/01510000006s000000/ Oracle database requirements for ArcGIS 10.1: http://resources.arcgis.com/en/help/system-requirements/10.1/index.html#/Oracle_Database_Requirements/01510000006s000000/ ArcSDE 10 Oracle database requirements: http://help.arcgis.com/en/systemrequirements/index.html#/Oracle_Database_Requirements/01510000006s000000/ ArcSDE 9.3/9.3.1 Oracle database requirements: http://downloads.esri.com/support/systemrequirements/arcsde_oracle_database_requirements.pdf2.4.2 ArcSDE 10单实例安装(Windows)

以Windows操作系统为例,在同一个操作系统下,既安装Oracle数据库,又安装ArcSDE软件。ArcSDE软件在安装的存储位置,默认即可,在安装完ArcSDE软件后,最重要的是Post Installation(后配置创建地理数据库),下面对相关步骤进行详细解析。提示:因为ArcSDE 10版本之前分32位和64位,那么在同一台机器的安装过程中,ArcSDE版本位数的选择是根据Oracle数据库服务器端的位数而定的,并不依赖于操作系统的位数。(1)ArcSDE安装后配置的开始界面如图2-2所示。图2-2 ArcSDE安装后配置的开始界面

该界面有两个选择项“Complete”和“Custom”,如果用户是第一次安装,默认选择“Complete”完全配置即可;如果用户已经建库完毕,但是可能出现许可过期、重建服务等,可以选择“Custom”选项来勾选需要操作的步骤。(2)用户信息界面如图2-3所示。图2-3 用户信息界面

该界面需要用户输入Oracle数据库的SYS用户密码以及网络服务名(如果是远程连接)。该界面其实就是执行了一个连接SYS用户的过程。而且连接之后赋予两个Public权限。有些数据库管理比较严格,不提供SYS用户的密码,可以联系对方数据库管理员,赋予Public权限,创建SDE表空间、SDE用户以及赋予SDE用户相关权限。然后选择开始界面的“Custom”,只勾选创建资料库、注册许可、创建服务选项即可。#连接SYS用户 sqlplus sys /password@netservicename as sysdba #赋予public dbms_pipe和dbms_lock权限 grant execute on dbms_pipe to public; grant execute on dbms_lock to public;(3)SDE用户和表空间信息界面如图2-4所示。图2-4 SDE用户和表空间信息界面

该界面主要是通过SYS用户来创建SDE用户,设置SDE用户密码,设置SDE用户表空间的名称以及设置SDE表空间的存储路径。该界面其实就是执行了创建SDE用户、表空间的SQI语句的操作,而且还赋予SDE用户相关权限的SQL语句。#创建SDE表空间 create tablespace sde datafile '/LOCATION/sde.dbf' size 400M extent management local uniform size 512K; #创建SDE用户(用户名称必须为SDE) create user sde identified by sde default tablespace sde temporary tablespace temp; #赋予SDE用户建库权限 grant CREATE SESSION to sde; grant CREATE TABLE to sde; grant CREATE PROCEDURE to sde; grant CREATE SEQUENCE to sde; grant CREATE TRIGGER to sde; grant CREATE TYPE to sde; grant CREATE LIBRARY to sde; grant CREATE PUBLIC SYNONYM to sde; grant CREATE OPERATOR to sde; grant CREATE INDEXTYPE to sde; grant DROP PUBLIC SYNONYM to sde; grant UNLIMITED TABLESPACE to sde; grant CREATE VIEW to sde; #如果用户需要版本压缩,需要赋予该权限 grant SELECT ANY TABLE to sde; #安装完毕之后可以撤销该权限 grant ADMINISTER DATABASE TRIGGER to sde;(4)ArcSDE配置文件界面如图2-5所示。图2-5 ArcSDE配置文件界面

该界面主要是对ArcSDE的相关配置文件(包括ArcSDE命令参数文件、ArcSDE连接设置文件、ArcSDE存储参数配置文件)进行选择,用户可选择默认文件也可以选择自定义的配置文件。(5)创建ArcSDE地理数据库界面如图2-6所示。图2-6 创建ArcSDE地理数据库界面

该界面主要是使用SDE用户创建ArcSDE系统表、Geodatabase系统表、索引、存储过程、序列、触发器、视图等对象。该界面其实是[2]执行了一个ArcSDE建库命令。Sdesetup –o install –d ORACLE11G -p sde(6)ArcSDE授权界面详见2.4.6节ArcSDE软件授权介绍。(7)ArcSDE服务信息界面如图2-7所示。图2-7 ArcSDE服务信息界面

该界面主要是设置SDE的实例名、端口号,创建、启动ArcSDE服务。该界面其实执行了如下操作:#创建ArcSDE服务 Sdeservice –o create –d ORACLE,netservicename -i esri_sde -p sde #写入SDE实例名和端口号(esri_sde 5151/tcp)到配置文件 %SDEHOME\etc\services.sde C:\Windows\System32\drivers\etc\services #写入连接Oracle的netservicename到配置文件 %SDEHOME\etc\dbinit.sde #启动ArcSDE服务 Sdemon –o start –I 5151 –p sde2.4.3 ArcSDE 10单实例安装(Linux)1.创建操作系统级别的ArcSDE用户

在创建ArcSDE用户之前,确保Linux操作系统已经安装了Oracle数据库软件,而且确保可以正常地进行Oracle用户连接。如果没有创建oinstall组,用户可以自行创建。#创建操作系统级别的ArcSDE用户名arcsde [root@localhost ~]# useradd -d /home/arcsde -G oinstall -m arcsde #赋予操作系统级别用户arcsde的密码为arcsde [root@localhost ~]# passwd arcsde Changing password for user arcsde. New UNIX password: BAD PASSWORD: it is based on a dictionary word Retype new UNIX password: passwd: all authentication tokens updated successfully. [root@localhost ~]# su - arcsde [arcsde@localhost ~]$2.安装ArcSDE软件

用户需要将ArcSDE软件上传到Linux操作系统中,确保新创建的操作系统级ArcSDE用户对该软件介质有读、写权限。然后执行安装命令,安装过程中会提示用户从什么位置选择软件安装介质,该软件安装到什么位置。[root@localhost oracle11g_64]# ./install -load 你可以读懂本行文字吗 ? Is the previous statement legible in your native language? [yes] Continue installation with the selected language interaction? [yes] 如果你已阅读并同意所附许可协议中的条款,请输入 'yes' 继续安装过程,否则按 < 回车 > 键或输入 'no' 退出安装过程 . [no] yes 敲回车选择默认项, '?' 帮助, '^' 返回到 上一个问题,或 'q' 退出 . 输入 CD-ROM mount 点 : [/mediamnt] /opt/sde/linux/oracle11g_64/ 输入安装目录的路径名 : [/opt/sde/linux/oracle11g_64] /home/arcsde/ ArcSDE version 10.0 for Oracle11g - May 20 , 2010 -------------------------------------------------- ArcSDE Product 将要安装的软件模块号 : [all] 软件模块选择完毕 -------------------------- 你选择了安装下列软件模块 ArcSDE Product ArcSDE Server 这正确吗 ? [yes] 安装时列出文件名吗 ? [no] 正在安装软件,请等待 ... 软件安装完毕 退出 ... [root@localhost oracle11g_64]#3.创建ArcSDE的用户、表空间、赋予权限

如果ArcSDE软件安装完毕,%SDEHOME/tools/oracle文件夹里面提供了ArcSDE的建库脚本createsdeoracle.sql,查看一下相关的SQL文件,用户可以根据自己的环境进行相关的参数修改。prompt * Granting of permissions by the SYS user in Oracle, on two packages prompt * to the public role. grant execute on dbms_pipe to public; grant execute on dbms_lock to public; prompt * * * * * * * * * * * * * * * prompt * ArcSDE NEW INSTALLATION * prompt * * * * * * * * * * * * * * * prompt * Connect as system/ to create the sde prompt * tablespace and user. connect sys/oracle@orcl as sysdba prompt * Create the sde tablespace. prompt * Before you run this script update LOCATION for the desired datafile pathname. #

试读结束[说明:试读内容隐藏了图片]

下载完整电子书


相关推荐

最新文章


© 2020 txtepub下载