基于基态修正模型的矢量数据增量更新机制研究
2015-12-11靖常峰
霍 亮,田 军,靖常峰
(1.北京建筑大学测绘与城市空间信息学院,北京100044;2.现代城市测绘国家测绘地理信息局重点实验室,北京100044)
一、引 言
二、技术流程
本文用增量信息来存储外业变化信息,内业通过更新处理程序对增量信息进行操作处理,进而完成对基态的修正更新。采用多级差文件形式保存并索引历史数据,将修正更新后的矢量数据库作为当前最新基态;随着基态的不断更新,差文件大量累积,当数量累积达到某个阈值时合并差文件,形成差文件的多级索引模式,并建立新基态,更新前的基态作为历史基态。基态模型如图1所示。
图1 基态修正模型
本文增量更新思路是通过对增量信息文件的采集时间和基态数据库的最新基态时刻进行对比处理,以检测数据库是否需要更新,再根据增量信息情况进行更新操作,技术流程如图2所示。
图2 矢量数据增量更新方法
三、时空数据组织
1.变化信息的分类
增量信息是指基于基态数据的变化信息,从面向对象的角度看,多个实体间的演变和空间结构的变化都可以通过对单个实体的操作实现。本文在现有研究成果基础上,将变化信息从实质上归结为4种变化类型:删除、创建、几何变化、属性变化。细分来说,对每一项又可以进行具体扩充:①删除:将一个地理对象删除,包括空间属性和非空间属性;②创建:新建一个地理对象及其相关属性;③属性变化:地理对象的非空间属性发生变化,主要是语义属性变化;④几何变化:地理对象的空间属性发生变化,其中主要包括实体的移动、旋转、扩大、缩小和变形。
2.增量信息的存储模型
增量信息是指外业采集的地理实体变化产生的成果数据,将其描述成地理空间中新旧地理目标在变化时刻的状态,本文将增量信息的模型定义为4个部分。
1)元数据信息:主要是与增量信息相关的信息,如文件版本、坐标系、投影类型、比例尺、数据空间范围等,在对旧基态进行增量更新时,便于旧基态与增量信息之间进行对比转换。
2)属性表结构:主要描述变化对象对应的属性表的结构信息,包括属性表名称、字段名称、属性类别(空间和非空间)、数据类型和数据精度等;对于每个属性表中,有几个字段固定存在,包括对象的唯一标识码、对象的变化类型,以及变化时间等。
3)采集时间:是指增量信息产生的时间,是用来区别多个不同增量文件的时间要素,也是增量文件与基态数据库之间关联的标识;通过采集时间可以判断数据库是否需要更新,采集时间T等于或小于数据库最新基态时刻t,表示数据库不需要更新;T大于t,表示数据库需要更新。
4)更新操作:主要包括更新操作的对象、基于变化类别的操作,以及更新操作的内容,见表1。
表1 更新操作
增量信息的存储模型是依据某一时刻发生的更新操作,逐顺序地存储每一步更新操作对应的增量信息,存储结构如图3所示。
372 Standard operation procedure of diagnosis and treatment process for severe acute pancreatitis: clinical application
图3 数据结构
3.差文件的数据组织
本文采用差文件对数据库更新后新旧两个基态之间产生的数据差进行组织和存储。通过调用基态数据库和相应的差文件,可以对历史数据进行检索查询,同时对差文件进行阈值合并,建立多级索引,对每一级的差文件增加一个记录变更时间段的字段,并且每一级别的差文件在时间上连续且范围没有重叠。
本文设计的差文件在数据格式上与增量信息的格式基本相似,引入面向对象的概念,差文件中增加了对新旧基态之间时间范围的相关记录,不再记录对象的变化类型和变化时间。主要包括以下3个部分:
1)元数据信息:该内容同增量信息类似,主要是与差文件相关的描述信息,由于本文的基态模型将差文件分成多级并建立索引,因此在此基础上增加了一个描述差文件级别的记录。
2)属性表结构:在增量信息的基础上,去掉了属性表中变化类型和变化时间的字段,增加了两个字段,即变化前对象ID和变化后对象ID。
3)时间覆盖范围:记录了差文件所描述的数据信息的时间跨度,以更新前基态的时刻作为差文件的开始时间、更新后基态的时刻作为差文件的结束时间。
四、矢量数据增量更新
1.增量更新逻辑处理
基态记录的是某时刻的数据库状态,增量信息记录的是相对于该数据库状态的变化信息。对基态进行数据更新,就需要对增量信息进行分析处理,具体更新流程如下:①读取增量信息;②分析增量信息的采集时间,对比数据库的基态时刻,将数据库与增量信息进行关联并判断是否需要更新;③处理元数据:主要是检查增量文件元数据信息中的版本、坐标系、投影、比例尺等信息,以及数据空间范围等相关信息,以便于确定基态数据与变化数据的一致性;④处理属性表结构:针对变化数据的属性表结构,采用一定的数据结构来提取和存储;⑤对增量信息的更新操作:对不同的要素对象根据其变化类型,采用相应的时空数据动态操作算子对其进行操作,实现对基态数据库的更新。
2.生成历史数据
本文在基于增量信息对基态数据库进行更新后,利用差文件来存储基态数据库更新后所产生的历史数据。生成的具体流程如下:①根据增量信息的元数据等相关信息,确定差文件的元数据信息,并根据新旧基态的时间间隔是否达到阈值及相邻时间段内差文件数量,来确定差文件的级别;②处理差文件属性表结构,存储变化信息的表结构内容,依据增量信息中的变化类型确定空间和非空间信息是否需要写入差文件对应的信息段中以历史信息保存;③从原基态中挖掘发生变化的空间目标对应的生存期,差文件中记录其开始和结束时间,即差文件的时间覆盖范围。
五、试 验
本文在Windows环境下,采用B/S开发模式,运用面向对象的方法和组件对象技术,将GeoServer和Tomcat集成发布矢量数据;利用PostgreSQL来存储空间和属性数据,使用 Java、HTML、JavaScript开发,设计实现了一个数据库增量更新系统。
以某区域的中药材普查信息为例,通过人工对不同药材的分布区域进行调绘并矢量成图,形成增量信息,系统在接收到新的增量信息文件时,加载基态数据,导入增量信息文件,然后通过增量信息对旧基态数据进行更新,具体处理流程如图4所示;更新之后的对象高亮显示,如图5、图6所示;最后将地理实体对象变化前后的信息差存入差文件中,以供历史查询。
图4 基于增量信息文件的更新流程
图5 某类中药材资源斑块
图6 某类中药材资源新增斑块
六、结束语
本文在国内外研究的基础上,基于基态修正扩展模型,探讨了时空数据的组织方式,采用改进的数据存储模型,设计并实现了一套利用增量信息和差文件实现增量更新和历史回溯的技术方案,不仅可以有效地实现增量更新,还可以实现历史数据的回溯、查询分析等。但本文的数据更新局限于统一尺度的矢量数据,没有考虑不同比例尺、不同分辨率的数据更新问题。多尺度、多源海量数据的更新问题是今后进一步研究的方向。
[1]周晓光,陈军,朱建军,等.基于事件的时空数据库增量更新[J].中国图象图形学报,2006,11(10):1431-1438.
[2]胡辉,王昌佐,梁万杰,等.基于Shapefile的基态修正模型设计与实现[J].地球信息科学学报,2012,14(3):314-319.
[3]尹章才,李霖.基于快照-增量的时空索引机制研究[J].测绘学报,2005,34(3):257-261.
[4]徐海敬,李清泉.基于时态GIS的导航电子地图增量更新研究[J].武汉大学学报:信息科学版,2008,33(11):1182-1185.
[5]张新长,郭泰圣,唐铁.一种自适应的矢量数据增量更新方法研究[J].测绘学报,2012,41(4):613-619.
[6]陈新宝,LI Songnian,朱建军,等.时空数据模型综述[J].地理科学进展,2009,28(1):9-17.
[7]张保钢,朱重光,王润生.改进的时空数据基态修正方法[J].测绘学报,2005,34(3):252-256.
[8]陈军,周晓光.基于拓扑联动的增量更新方法研究[J].测绘学报,2008,37(3):322-329.
[9]孙英杰.基于变化信息文件的增量更新方法研究[D].长沙:中南大学,2008.
[10]张嫣然.地籍数据库增量更新机制的研究与实现[D].杭州:浙江大学,2012.
[11]LANGRAN G.Time in Geographyic Information Systems[J].Taylor&Francis,1992,27(44):37-41.
[12]罗晓燕,袁燕岩.北京市数字线划图数据库增量更新技术的应用研究[J].测绘通报,2007(11):57-60.