杨娟 管续栋
摘要:基态修正模型,作为时空数据模型之一,可用于历史回溯功能的设计。鉴于此,利用ArcEngine开发组件和.Net开发平台,结合基于ArcSDE数据库的连接通道,连接到关系数据库,再使用其中时空数据实现历史数据回溯功能,使数据库能快速准确地回溯到历史状态并显示在地图上,便于提供丰富、直观、对比性强的信息。本文利用ArcEngine进行历史数据回溯开发,可将功能快速集成到开发者自定义的应用软件,从而达到高效、省时、节约成本的目的
关键词:历史数据回溯;ArcEngine;基态修正模型
中图分类号: P208 文献标识码:A 文章编号1672-3791(2016)01(a)-0000-00
空间、属性、时间是地理现象的三个基本特征,也是GIS数据库的三种基本数据成分。近年来,随着以空间数据库为基础的GIS研究和应用的不断深入,伴随时间而变化的信息越来越受到人们的关注,其需求如变更统计、历史查询、动态监测及趋势分析等都在不断变化。历史数据回溯是指令数据库在给定时间点上,回溯到当时时刻的状态,从而为上述需求提供数据依据。
传统历史数据回溯的方式一般为快照方式,即在数据库中仅记录当前数据状态,数据更新后,将一系列时间片段的数据快照保存起来,回溯则读取对应时间点上的数据快照,以反映整个空间特征的状态。因快照对未发生变化的所有特征进行重复存储,会产生大量数据冗余,当事件变化频繁且数据量较大时,系统效率急剧下降。因此,利用基态修正模型可避免重复记录未发生变化部分的特征。
1 基态修正模型
时空数据模型是一种有效组织、管理时态地理数据,属性、空间和时间语意更完整的地理数据模型。近10年来,研究学者提出了不同的时空概念模型,如基于状态的特征/关系表达、基于事件的特征/关系表达等,这些模型在表达时空数据的一体化特性中各有优劣。
基态修正时空数据模型,也称地图叠加模型,基本思想是首先确定地理现象的初始状态,再按一定的时间间隔记录发生变化的区域,通过叠加每次变化的内容,得到每次变化的状态。由于基态修正模型只存储地理现象变化的区域,因此可大幅度减少数据储存量,缩小数据冗余,节约储存空间,如图1所示简单描述了基态修正模型原理。
基态修正模型又可分为向前版本法和向后版本法。向后版本法是将现用数据库状态作为基态,每次变化后将前一状态相对于最新状态的变化部分存入变化量集合。该方法是一种较适用的基态修正方法,也是本文主要用于进行历史数据回溯的方法。
2 历史数据回溯的设计
历史数据回溯的结果是符合时间限制条件的基态记录(Value_Base)與变化量记录(Value_Change)的组合,需设计两个单独的数据库分别保存两个不同性质数据,即现势库(DB_NOW)和历史库(DB_HISTORY)。库中设计包含表示时间属性的字段,即ModifyTime和DeleteTime字段。
ModifyTime字段表示记录修改的时间,此字段的值将在记录被修改或删除时保存于DB_NOW。在更新现势库记录前,提取所有即将修改的记录(变化量),将其从DB_NOW复制到DB_HISTORY中,并将当前系统时间写入DB_HISTORY相应的DeleteTime字段中,则完成将相对最新基态的变化量提取到历史库的过程,同时也将最新基态更新到DB_NOW中。DeleteTime字段代表记录消亡时间,即记录“消亡”是一时空概念,指在某个确定时间点上的一个记录产生消亡。
历史数据回溯需指定一个时间点SpecifiedTime,令数据库回溯到相应时间的历史状态。筛选DB_NOW中符合条件“ModifyTime<=SpecifiedTime”的记录,将这些记录加入到一个临时库(DB_TEMP)。同时,DB_HISTORY的每条符合条件“ModifyTime<=SpecifiedTime And DeleteTime>SpecifiedTime”的记录也将添加于DB_TEMP,替代DB_NOW,实现数据库的回溯。
3 历史数据无极回溯
历史数据无极回溯是将数据库内容回滚到时间轴的某个时间点上,以保证数据库内容与此时间点上数据库内容一致。在用户拖动时间轴时,无极回溯能快速准确地在地图控件上动态显示对应时间点的回溯内容。
本文利用ArcEngine进行历史数据回溯开发,可将功能快速集成到开发者自定义的应用软件,从而达到高效、省时、节约成本的目的。实验分析时,结合符合时间条件的历史图层数据和现势图层数据,在地图上显示,以重现当时数据,再利用ArcSDE创建用户与关联表到Oracle,运用IProperty接口通过ArcSDE登录数据库以获取数据库工作空间,工作空间即在程序中以IWorkSpace接口表现出来。以ArcEngine_Layer类中IFeatureLayerDefinition2接口的DefinitionExpression法作为时间条件,限制表达式的输入口,将上述限制条件以程序的形式传递到DefinitionExpression参数中,运行程序即可完成功能。
上述方法能在地图中显示符合表达式条件的记录,则省略了将记录添加到新图层再显示的步骤。由于连续拖动时间轴动作将会对数据库进行大量操作,则操作时必须使用SpatialFilter对整个数据创建显示范围,如图2所示的测试数据,即选取时间轴上三个不同时间点,经测试后所显示的一定范围内的数据快照。结果表明,此方法快速准确。
4 结束语
利用ArcEngine组件与ArcSDE连接通道可加快功能模块的建立,加强对地理信息系统的管理。基于以上技术的地理信息历史数据回溯功能,可快速准确地将数据库回溯到指定历史状态,适用于地理信息数据管理、备份、研究及统计等方面。
参考文献
[1] 郝忠孝.时空数据库新理论[M].科学出版社第1版, 2011:35-60.
[2] 陶佩风,周波.基于时空模型的地籍信息数据库设计方法探讨[J].计算机时代,2009.2: 24-28.
[3] 曹伟,花向红,许跃民.时态GIS及其应用[J].地理空间信息2005.3(6): 31-32.
[4] 周辉,周晓光,何凭宗,等.基态修正模型的时空数据组织和快照查询方法研究[J].地理信息世界 2010.2:49-53
[5] 王贺封.时空数据模型及TGIS研究[J].测绘与空间地理信息2006.29(4): 11-13.