1、引言
自从美国总统戈尔1998年1月31日提出“数字地球”的概念后,在信息产业、科技界、世界各国政府以及公众中引起了积极的反响。“数字地球”为新世纪空间科学、信息科学和地球科学的发展提供了崭新的的思路。
时空集成化、网络化、虚拟现实是“数字地球”的三个突出特点。作为“数字地球”的重要组成部分的GIS,必须适应“数字地球”的需求,进一步完善与发展,才能有力地支持和保证“数字地球”的实施和运行。
1.1传统GIS的缺陷
随着信息技术的飞速发展,基于七十至八十年代技术基础上的GIS系统正面临巨大的挑战。一般而言,传统的GIS模型一般存在如下问题:
●GIS的属性数据和空间数据分离,两者之间仅是一种ID的联系,属性表与空间图形数据未建立相互的封装
●一些扩充了时态属性、分布属性的空间逻辑模型与GIS核心结构难成一体
●缺乏构造空间模型和关系模型的指导模型等除此之外,传统GIS在实际应用中也存在如下问题:
●孤立的、各自为政的部门:不同部门针对自己的需求而建立了各自独立的GIS应用系统,各部门间缺乏统一的组织,数据交叉且标准各一,即使是一个部门内可能由于组织关系或研究目的的不同,又有许多独立的GIS应用系统。
●专有的数据格式:现有的商用GIS系统都有自己的数据格式,且互不兼容,造成了许多历史遗留的问题,形成了人力、财力上的浪费,信息资源不能得到有效的利用。
●昂贵的软硬件平台:GIS是一项极其专业的信息技术,需要专有的硬件平台做支撑,由于一定的技术难度,使得开发费用较高,再加上面临为数不多的专业用户群使用,所以GIS的投入成本高。
●工具使用的艰难:目前各GIS软件的开发是基于传统模式的,其用户界面和二次开发工具使用较困难,用户必须得经过专业培训才能使用。
1.2 GIS面临的挑战要建立“数字地球”科学工程,新一代GIS必须具有以下特点:
●数据库中存储地理数据具有多源、多维、时态与大规模数据量的特点。可以接收多源数据包括遥感、图形、声音、视频和文本数据以及不同的数据格式。
●由于数据库中需要存储多源、多维、时态数据,使得GIS数据库异常庞大。所以要求新一代的GIS具有多维、海量数据的管理、组织能力。
●方便地在更大的信息系统中集成空间信息。目前我国已经建立了各种成熟的、大型的商用信息管理系统,怎样利用现有的属性信息以及在它们之中快速、无缝地集成空间信息,这些都是新一代的GIS必须考虑的问题。
●维护准确的、无缝连接的实时数据。
●提供快速的数据接入。
2、空间数据仓库技术
自从1970年提出关系数据库模型以来,由于其严谨的数学基础、简洁的概念,使关系数据库模型得到广泛的接受并取得很大的发展。关系数据库和它的查询语言SQL已经成为工业标准。为了克服传统GIS的缺陷,有必要在GIS中引入数据仓库技术,这就是空间数据仓库技术。
空间数据仓库是在数据仓库的基础上,引入空间维数据,根据主题从不同的GIS应用系统中截取从瞬态到区段直到全球地球系统的不同规模时空尺度上的信息,从而为当今的地学研究以及有关环境资源政策的制定提供最好的信息服务。
2.1功能特征
空间数据仓库为了决策支持的需要,主要具有以下几方面功能特征:
(1)空间数据仓库是面向主题的。空间数据仓库的主要目标是为决策支持提供服务,信息的组织以业务工作的专题内容为主线。
(2)空间数据仓库是集成的。空间数据仓库是在各种面向应用的GIS系统基础上,进行集成以提取各种有用的数据。
(3)数据的变换。为了优化空间数据仓库的分析性能,需要将现有的GIS数据进行适当的变换。
(4)时间序列的历史数据。为了进行趋势分析,要求数据必须具有时间的概念。
(5)空间序列的方位数据。空间数据仓库的数据要求具有空间维,能进行空间分析,以反映自然界的空间变化趋势。
2.2体系结构
空间数据仓库不是一个产品或一组产品,只是一种以GIS为基础的新的数据组织方式。它的建立并不能取代传统的GIS应用,其实质仍是计算机存储数据的系统。
1)源数据。源数据是空间数据仓库的信息源,它一般包括GIS核心数据和附加的特定应用数据。GIS核心数据可以通过卫星影象、观测数据、扫描、数字化和现有的不同平台的数据等方式获得。这些数据构成了空间数据仓库的物质基础。
2)数据变换工具。源数据在输入数据库之前,必须经过适当的变换,将其投影到某一参考系统,进行地理编码和格式化。因为这些数据在许多方面存在着异质性,如数据格式、命名、编码体系、投影等。变换主要包括:提炼、转换和空间变换。
3)空间数据仓库。源数据经过变换后进入空间数据仓库,并按某一专题进行信息组织,其包括的信息量巨大。空间数据仓库采用多维技术来管理海量数据。构建立方体或超立方体模型。多维数据库中的维不是随意定义的,它是一种高层次的类型划分。维是根据用户空间查询和分析需求来决定的。例如一般的地理查询和分析可以分解为时间、地点、过程和结果。因此,我们可以使用空间三维、时间维和专题维来组织数据。在实际分析过程中,可按需要把任一维与其它维进行组合,以多维方式显示数据,以便人们从不同角度来认知客观世界。
4)分析工具。空间数据仓库的目标是提供决策支持,它不仅仅是完成一般GIS的查询和分析功能,还需要供决策支持所需的功能强大的分析工具。其分析工具按照功能一般可以划分为查询工具、验证工具和挖掘工具。
2.3技术需求
空间数据仓库需要集成多维、海量数据,所以必须有独特的技术需求。
●必须充分利用所有的数据库系统功能:目前,在大多数GIS应用中,空间数据存储于文件系统中,属性数据由关系数据库来管理。空间数据和属性数据的分离管理造成系统的查询和分析效率低下,要求空间数据和属性数据统一在一个数据库管理系统下,充分利用数据库的系统功能如并行、复制、安全、有效等并进行扩充。
●拥有公开数据模式:不使用专用格式来存贮数据,建立统一的数据标准,比如可使用元数据技术。
●提供经由SQL语言到达数据的接口:不需捆绑到应用程序界面(API)的中间件,而是直接使用SQL语言来操纵空间数据。
●基于解决方案的服务器:不需要空间数据管理中间件,而是直接利用现有的数据库管理功能。
●在线分析与处理(OLAP):为了补偿数据库中数据处理过程的缺陷,我们需要研究和开发称之为OLAP(OnLineAnalysisandProcessing)的数据分析工具。
经过以上分析,在GIS中引入数据仓库技术,便会使得空间数据不再是互不兼容,GIS用户能更好地管理数据,商业用户可以接近空间数据,GIS开发商能获取更大的增值空间。
3、主要GIS厂商的空间数据仓库技术比较
目前,采用空间数据库技术的主要GIS厂商有Intergraph、ESRI、MapInfo,各自的产品为GeoMedia、SDE、SpatialWare。它们虽然都采用Oracle、MicrosoftSQLServer、Sybase、IBMDB2及Informix等数据库来存储、管理和快速查询检索、分析空间数据,但实现技术有很大差别。GeoMedia使用GDO对象与Oracle的SpatialCartridge技术完整结合,直接操纵数据库中的空间数据,而SDE、SpatialWare采用ODBC技术通过一个中间件来处理由商业数据库软件如Oracle托管的空间数据。具体来讲,它们的差别主要表现为:
3.1Client/Server处理
GeoMedia利用SpatialCartridge提供的数据结构、索引方式、访问机制,使应用程序开发者能创建稳固的、企业级的空间应用程序。通过使用Client/Server结构或三层Client/Server结构,GeoMedia采用分布式部件对象模型(DCOM)技术,将应用程序的任务分布到各个系统完成。为此,使用GeoMedia可以创建真正的Client/Server应用。
SDE、SpatialWare等空间中间件大多是在客户端通过应用程序接口(API)与服务器数据库相连。这种体系结构需要加载额外的处理服务,增加额外的通信工序,并与SQL脱离,这将会降低Oracle的安全性。由于空间中间件在数据库服务器之外来维护空间数据,仅仅通过中间服务器来联系空间数据库,这将限制用户对数据的访问,同样限制用户直接读写数据库中空间数据以外的其他数据。
3.2数据库安全性
GeoMedia可以充分利用Oracle提供的所有安全措施,如用户审核、角色审核、基于角色的安全机制、综合安全审核、Client/Server连接安全性、数据流安全性等。
SDE、SpatialWare等中间件需要一个附加的安全层以确保授权用户才能访问数据库中空间数据。通过在数据库服务器以外的中间服务器上的附加层来管理授权用户对系统的访问以及能进行何种操作。用户访问中间件服务器进行安全检查后,中间件服务器再为授权用户建立数据库会话。所以,如果5个用户访问数据库中的相同数据组,数据库和DBA只知道数据组属主已开始了5个会话而不是1到5个用户的会话。这样就大大减少了责任级并增加了复杂性和必须由数据库管理员执行的任务数。
3.3应用程序接口(API)
GeoMedia访问Oracle中的空间数据使用的是结构化查询语言(SQL)。SQL是一种简单的、强大的数据库访问语言,它是关系数据库管理系统的结构化语言。Oracle公司使用的SQL与ANSI¤ISO标准SQL语言完全兼容。既然SQL是世界有名的计算机语言,任何具有SQL知识的人都能访问空间数据。另外,任何SQL语句只需小小改动或不加改动就能进行空间查询。
许多空间中间件软件使用基于C结构的API,这种API不标准并且非常难以使用。应用程序开发者必须使用这些API建立与中间件服务器的接口,然后中间件服务器再使用标准SQL建立与数据库的通信。既然C语言本身难以理解,再加上复杂的中间件API函数,这就极大地限制了使用此软件的用户类型。另外,使用中间件软件,不得不重写已有的许多访问空间数据的应用程序代码。
为了更好地理解两种访问机制的差异,下面就以用户想查找人口大于10,000以及在一指定点10英里范围内的城市为例,说明需要进行空间查询所必需的语句。在GeoMedia中,采用如下格式:
SELECTcity_name,area,population
FROMcities_sdogeom,(SELECTsdo_gidgid1FROM(_gidgid1FROMcities_sdoindexa,windows_sdoindexb,
cities_sdogeomcWHERE(_gid=tion>10000)AND(_gid=_code=_code)(‘cities’,sdi_gid,‘INSIDE’,‘windows’,1)=‘INSIDE’)
WHEREsdo_gid=gid1;
可见,以上查询完全是基于SQL的空间查询。在ESRI的SpatialDatabaseEngine中,要实现此查询,采用如下格式:
rc=SE_stream_create(Connection,&Stream);
check_error(Connection,NULL,rc,“SE_stream_create”);
rc=SE_sql_construct_alloc(1,&sqlc);
sqlc_where=malloc(20);
sqlc_num_table=1;
strcpy(sqlc→tablesp[0],”cities”);
strcpy(sqlc→where,”population<10000”);
rc=SE_shape_generate_circle(Point,radius,max_points,Shape);
check_error(Connection,NULL,rc,“SE_shape_generate_circle”);
strcpy(,“cities”);
strcpy(,“boundary”);
=shape;
=SM_AI;
=TRUE;
_type=SE_SHAPE_FILTER;
rc=SE_stream_set_spatial_constraints(Stream,SE_SPATIAL_FIRST,FALSE,1,&Filter);
check_error(NULL,stream,rc,SE_stream_set_spatial_constraints);
num_cols=3;
attrs=(CHAR**)malloc(num_cols*sizeof(CHAR*));
attrs[0]=“city_name”;
attrs[1]=“area”;
…
rc=SE_stream_free(Stream);
3.4空间操作
Geomedia使用的SpatialCartridge是一套完整的Oracle数据库里空间数据管理解决方案。从最简单的特征选取到复杂的空间分析等空间操作完全在Oracle服务器上执行。Geomedia提供许多空间拓扑操作如inside,touch,covers,equals,overlap,disjoint等。除了空间操作外,Geomedia还以完全开放的方式来维护几何图形。这样,任何授权用户都能够使用标准的SQL数据操作语言(DML)来添加、删除图形要素以及修改图形坐标。需要再次强调的是由Geomedia所提供的空间操作全都能通过SQL来实现,所以任何基于数据库的应用程序都能进行空间操作。
空间中间件软件是通过中间件服务器来进行空间操作的。这是因为许多中间件软件是以LongRaw(BLOB)列来存放矢量数据,从而防止用户直接访问此数据。中间件厂家通过锁定数据库的空间数据在数据库服务器以外维护空间数据,所以用户必须使用中间件软件厂商所提供的工具来访问空间数据。
3.5空间数据存储
Geomedia使用的SpatialCartridge与空间中间件的空间数据的逻辑/物理数据模型存在很大差别。SpatialCartridge使用行列方式来存储空间数据以确保空间数据不受Oracle数据库的限制。即通过SpatialCartridge,用户可将空间数据, 当作数据库的特征来使用。例如,通过Geomedia,可支持空间数据库的复制、分布式空间数据库以及高速的批量装载,而空间中间件则不能。除了允许使用所有数据库特性以外,SpatialCartridge还提供用户使用行列来快速访问数据。这可以通过各种应用开发技术如主数组等来实现。使用简单的SQL语句,应用开发者就能直接选取多个记录。SpatialCartridge数据模型也给数据库管理员提供了极大程度的灵活性。DBA可使用常见的管理和调整数据库的技术。
大多数空间中间件依赖于Oracle中用于存放矢量数据的LONGRAW(BLOB)列。LONGRAW将坐标存储在单独的列会带来一定的限制。最大的限制是空间中间件给数据库管理员带来不便,不能充分利用数据库的特性如批量装载、数据复制、数据分布等。
例如,由100个点组成的多边形在Geomedia的层Geometry(几何图形)表中存储为两行,而空间中间件将其存储在一列中。Geomedia和空间中间件都能使用fetch操作来检索此多边形。但当一个多边形包含成百上千个点时,在进行其它处理前,空间中间件需要检索全部点,而Geomedia却可以检索起始值立即进行处理。由于Geomedia能够处理起始值后继续检索剩余的点,所以它能优化处理过程。
3.6空间数据装载
Geomedia通过SpatialCartridge能使用Oracle的快速数据装载程序来快速装载数据。通过使用直接写数据块和异步读写技术,Geomedia的批量数据装载器可以磁盘速度输入数据。它可灵活地、高效地装载各种文件格式的数据,将单通道输入文件装载到多个表中。所以,从几百兆到几百千兆的空间数据都能在1分钟或1小时内输入Oracle数据库中。因为SpatialCartridge采用开放的数据格式,各种数据源都能写入或输出SpatialCartridge。例如,空间数据格式转换器能接受如ARC/INFO、Shape、MGE、FRAMME、MIF、DXF等第三方厂商的数据格式。
空间中间件的数据模型是封闭的,所以仅仅空间中间件厂商才提供自己的数据格式转入与转出。
3.7数据仓库
Geomedia使用的SpatialCartridge是基于SQL,所以它是分布式的、多源数据库。因为Oracle可以支持10多个TB的数据容量,所以通过Geomedia在Oracle中储存5GB数据也不算大,这样有利于海量数据的管理。空间中间件在数据容量上由于中间过程的存在有一定限制。
4空间数据仓库的应用实例
中国国土资源环境遥感动态调查与空间信息服务体系是国家“九.五”重中之重科技攻关项目。我们采用了基于Geomedia的空间数据仓库技术,以Oracle为数据库,将遥感与地理信息系统相结合,经过多年努力建成了国家级的反映国土资源环境动态变化的分层、分级、分区的基本资源环境遥感调查数据库。并实现了集数据库管理、模型分析和决策支持等功能的国家基本资源环境空间信息系统。在项目的实施与应用过程中产生了较好的社会效益与经济效益,在资源调查、抗洪救灾等方面得到国家领导人的肯定,并已向国家相关部门和科研单位提供有效的信息服务。
系统是由1:100,000、1:250,000、1:1,000,000三级比例尺的土地利用图、四个专题要素温度、湿润度、地表质地和地貌地势背景数据库以及分县TM影象库构成。数据库采用Oracle8i,SDE采用GeomediaWebMap。
5、结束语
利用空间数据仓库技术是新一代GIS的发展方向。GIS真正要走向大众,必须利用现有数据仓库功能,与办公自动化和各种管理信息系统等完整结合,并在此基础上进行复杂的空间分析,反映自然界不同时空尺度下的动态变化趋势,以提供决策服务。
(转载)