全国高分辨率土地利用数据服务 土地利用数据服务 土地覆盖数据服务 坡度数据服务 土壤侵蚀数据服务 全国各省市DEM数据服务 耕地资源空间分布数据服务 草地资源空间分布数据服务 林地资源空间分布数据服务 水域资源空间分布数据服务 建设用地空间分布数据服务 地形、地貌、土壤数据服务 分坡度耕地数据服务 全国大宗农作物种植范围空间分布数据服务
多种卫星遥感数据反演植被覆盖度数据服务 地表反照率数据服务 比辐射率数据服务 地表温度数据服务 地表蒸腾与蒸散数据服务 归一化植被指数数据服务 叶面积指数数据服务 净初级生产力数据服务 净生态系统生产力数据服务 生态系统总初级生产力数据服务 生态系统类型分布数据服务 土壤类型质地养分数据服务 生态系统空间分布数据服务 增强型植被指数数据服务
多年平均气温空间分布数据服务 多年平均降水量空间分布数据服务 湿润指数数据服务 大于0℃积温空间分布数据服务 光合有效辐射分量数据服务 显热/潜热信息数据服务 波文比信息数据服务 地表净辐射通量数据服务 光合有效辐射数据服务 温度带分区数据服务 山区小气候因子精细数据服务
全国夜间灯光指数数据服务 全国GDP公里格网数据服务 全国建筑物总面积公里格网数据服务 全国人口密度数据服务 全国县级医院分布数据服务 人口调查空间分布数据服务 收入统计空间分布数据服务 矿山面积统计及分布数据服务 载畜量及空间分布数据服务 农作物种植面积统计数据服务 农田分类面积统计数据服务 农作物长势遥感监测数据服务 医疗资源统计数据服务 教育资源统计数据服务 行政辖区信息数据服务
Landsat 8 高分二号 高分一号 SPOT-6卫星影像 法国Pleiades高分卫星 资源三号卫星 风云3号 中巴资源卫星 NOAA/AVHRR MODIS Landsat TM 环境小卫星 Landsat MSS 天绘一号卫星影像
空间数据库是目前地理信息系统( GIS) 应用的一个很重要的部分,其中空间数据库引擎(SDE) 作为中间件连接GIS 应用程序和关系数据库系统,较好地解决了空间数据和属性数据统一存储和管理的问题。通过清江水情仿真和水电综合调度系统空间数据库的设计过程阐述了其中的一些关键技术。
地理信息系统( GIS) 的发展要求数据库系统不仅能够存储属性数据,而且能够存储空间数据,存储和管理空间数据是GIS 的核心任务之一。对于空间数据来说,既要存储空间实体的地理位置,还要存储实体之间的拓扑关系。本文以清江水情仿真和水电综合调度系统的空间数据库设计过程阐述了其中用到的一些技术,其中最关键的技术是:作为中间件来连接GIS 应用程序和关系数据库系统的空间数据库引擎———ArcSDE;将数据分类存储的面向对象的空间数据模型———Geodatabase ;对清江流域数据进行系统存储的ESRI 的水文模型———Arc Hydro Data Model。
1 空间数据库技术
空间数据库技术用关系数据库管理系统(RDBMS) 来管理空间数据,主要解决存储在关系数据库中的空间数据与应用程序之间的数据接口问题, 即空间数据库引擎( Spatial Database Engine) 。更确切地说,空间数据库技术是解决空间数据对象中几何属性在关系数据库中的存取问题,其主要任务是:1) 用关系数据库存储管理空间数据; 2) 从数据库中读取空间数据,并转换为GIS 应用程序能够接收和使用的格式; 3) 将GIS 应用程序中的空间数据导入数据库,交给关系数据库管理。因此空间数据库技术是空间数据进出关系数据库的通道[ 1 ] 。
1. 1 空间数据库中数据存储经历的三个阶段
空间数据库中数据存储经历的三个阶段是:拓扑关系数据存储模式、Oracle Spatial 模式和ArcSDE 模式。拓扑关系数据存储模式将空间数据存在文件中,而将属性数据存在数据库系统中,二者以一个关键字相连。这样分离存储的方式由于存在数据的管理和维护困难、数据访问速度慢、多用户数据并发共享冲突等问题而不适用本系统。而Oracle Spatial 实际上只是在原来的数据库模型上进行了空间数据模型的扩展,实现的是“点、线、面”等简单要素的存储和检索,所以它并不能存储数据之间复杂的拓扑关系,也不能建立一个空间几何网络。ArcSDE 解决了这些问题,并利用空间索引机制来提高查询速度,利用长事务和版本机制来实现多用户同时操纵同一类型数据,利用特殊的表结构来实现空间数据和属性数据的无缝集成等等。
1. 2 数据存取的中间件———ArcSDE
所谓中间件是一个软件,它允许应用元素通过网络连接进行互操作,屏蔽其下的通讯协议、系统结构、操作系统、数据库和其他应用服务。中间件位于客户机/ 服务器的操作系统之上,管理计算资源和网络通讯,并营造出一个相对稳定的高层应用环境,使开发人员可以集中精力于系统的上层开发,而不用过多考虑系统分布式环境下的移植性和通讯能力。因此,中间件能无缝地连入应用开发环境中,应用程序可以很容易地定位和共享中间件提供的应用逻辑和数据,易于系统集成。在分布式的网络环境下,客户端的应用程序如果要访问网络上某个服务器的信息,而服务器可能运行在不同于客户端的操作系统和数据库系统中。此时,客户机的应用程序中负责寻找数据的部分只需要访问一个数据访问中间件,由该中间件完成网络中数据或服务的查找,然后将查找的信息返回给客户端[ 2 ] 。在本系统的设计中, 就是采用了ESRI 的ArcSDE 这样一个数据访问中间件。
图1 ArcSDE 的体系结构
图1 中的客户端可以是ArcGIS、ArcView 或者是用户自己利用VC、VB、MapObject 等开发的应用程序。与客户端结合的是ArcSDE 的客户库,它是一个程序设计接口,用于处理客户端的请求。服务器端处理客户端提出的请求,在本地执行所有的空间搜索和数据提取工作,将满足搜索条件的数据在服务器端缓冲存储,然后将整个缓冲区中的数据发往客户端应用程序[ 3 ] 。ArcSDE 充当了客户端和服务器端的中间件,可以屏蔽不同操作系统和数据库系统的差异,使面向特定领域(如空间数据管理及应用) 所需的技术得以实现,供不同的客户端高效地共享和互操作。基于ArcSDE 的这些特点,所以在本系统的设计中采用ArcSDE 模式,将空间数据和属性数据集成在一个关系数据库系统中。
2 一个空间数据库的实例
下面以清江水情仿真和水电综合调度系统为例介绍一个空间数据库的组成和关键技术。
2. 1 空间数据的获取和分析
在本系统的空间数据库中主要包含以下空间数据:
1) 基础空间信息数据:包括清江所在区域的行政区划图、道路图、水系图、地形图等;
2) 专题空间信息数据:雨量等值线、地形等高线、河道计算断面、流域计算网格等;
3) 图像数据:包含数字高程模型DEM、数字正射影像DOM 等。
数据获取和分析的主要的过程是:
1) 通过遥感技术和航空摄影得到清江流域和周边地区的地图;
2) 利用R2V 软件对地图进行数据处理,得到可以被ArcGIS 利用的矢量数据、栅格数据、数字高程模型DEM 等。其中矢量数据主要以Coverage 文件形式表现;
3) 利用ArcGIS 的ArcMap 对加工好的数据进行检查,使之符合事先规定的标准,并满足要素之间的拓扑关系。
2. 2 地面部分空间数据的分类
在空间数据库的物理设计中主要考虑的是空间数据以怎样的表现方式存储到一个数据库系统中。在本系统中作者采用的是基于面向对象技术的空间数据模型———Geodatabase 来表现空间实体。Geodatabase 按层次将地理数据组织成数据对象,并存储在要素类、对象类和要素集中。在Geodatabase 中,要素对象是存储空间数据的表,要素类是具有相同几何类型与属性要素的集合。要素集是空间实体(要素) 和非空间实体(对象) 以及它们之间的相互关系的容器,是共享相同空间引用的要素类的集合[4 ] 。另外,Geodatabase 中还包含有几何网络、域和规则等。由于Geodatabase 让用户能更容易、更自然地表示GIS数据要素,更容易地建立要素之间的各种关系,因而在本系统的设计中采用Geodatabase 来设计各种实体以及它们的关系。在数据入库之前应该根据Geodatabase 所定义的类对数据进行分类,在本系统的设计中主要将矢量数据分成地面和河流两个部分。地面部分的数据被包含在Land Feature Dataset (要素集) 里,它包含的要素类是:Capital (行政首府) 、Bridge (桥梁) 、Showplace(风景点) 、Geologic Boundary(地质分界线) 、Canton (行政区) 、Stratum(地层) 等。除了这些要素类以外,还包含一个几何网络:道路网。
2. 3 清江流域空间数据的存储
清江流域部分的空间数据采用ESRI 的水文模型(Arc Hydro Data Model) [ 5 ]来存储。这个水文模型是在Geodatabase的理论基础上发展起来的,它由五个部分组成:Network (网络) 、Drainage (流域) 、Channel (河道) 、Hydrography (水文) 和Time Series(时间序列) 。前面四个部分也可以称为要素集,每个要素集里面包含了一些要素类。Network 主要描述的是河流的总体信息,以点和线来组成这个网络;Drainage 将河流作为多边形来描述; Channel 描述的是河流的3D 特征;Hydrography 描述水体和水面建筑物的信息; Time Series 主要用于测量根据时间而变化的一些值,比如水位。之所以引入这个水文模型主要是因为用户需要用到流域的一些特有属性,比如河道的断面、历史水位值、水流方向等。如果仅仅采用像道路网那样的几何网络来建立这个河流网络,也就是说只建立一个Network ,那么只能得到诸如干流和支流在哪里相交、流域流向的一些总体信息,这样的信息是不完整的,不能完全满足用户的需求。因而在本系统的设计中采用这个水文模型来存储流域部分的空间数据。
2. 4 空间数据的入库
用Oracle 数据库管理向导建立一个数据库,为了提高数据库的运行速度,需把数据库的临时表空间与索引表空间置于两个不同驱动器中(非操作系统启动驱动器) ,并增大表空间容量。装载、启动数据库,在安装ArcSDE 过程中,需输入数据库的全局数据库名(SID) 以及空间数据引擎运行实例名(缺省为esri- sde) ,以便创建空间数据引擎的运行实例[ 6 ] 。在服务器端的ArcSDE 连接到Oracle 以后,就可以利用ArcGISDesktop 中的功能模块ArcCatalog 提供的向导来导入空间数据。在本系统中除了存储以上矢量数据外,还存储了影像数据和DEM(数字高程模型) 数据。影像数据可以用栅格数据集来存储,而DEM 就以TIN 数据集来存储。
2. 5 空间数据和属性数据的集成
图2 空间数据库系统结构
在这个空间数据库系统中除了空间数据,还包含一些属性数据,如水文站、雨量站、河道断面、计算网格、水文历史资料等。这些属性数据要么是空间数据的相关属性,要么与空间数据存在某种关系,比如水文站所记录的水文历史资料。在对空间数据查询需求的基础上创建相关的属性表,在这些属性表和ArcSDE 的商业表中都有一列属于相同域的属性字段(一般是标识ID 或名称) ,通过这个属性字段可以将空间数据和属性数据联系起来[ 7 ] ,这样就实现了空间数据和属性数据的无缝集成。如图2 所示。
3 结束语
空间数据库引擎技术是目前系统集成中广泛使用的中间件技术在空间数据库应用解决方案中的一种实现,虽然付出了附加中间层的额外代价,但它较好地解决了GIS 应用与空间数据库集成中数据提供与访问模式方面的制约瓶颈问题[ 8 ] ,是一种比较可行的方案,在本系统的开发中也证明了它的可行性。而面向对象的Geodatabase 是第三代数据模型,它克服了拓扑关系数据模型的缺点,由于它是面向对象的,因此能够方便地构造用户需要的任何复杂地理实体,而且这种模式符合人们看待客观世界的思维习惯,便于用户理解。结合Geodatabase 这种数据模型和ArcSDE 数据库引擎技术在建立空间数据库时有如下优点:
1) 由于有效地利用了ArcSDE 的多级空间索引机制,可以快速调入各类图像;
2) 完全实现了无缝空间数据库,大大提高了空间数据的存储和管理效率;
3) 由ArcSDE 作为一个中间件来连接客户端应用程序和服务器端关系数据库系统,实现了客户/ 服务器模式,降低了网络负荷。
但Geodatabase 数据模型的拓扑关系要根据需要临时构建,这需要消耗一定的系统资源和时间,会使拓扑查询和分析的效率降低。