时空变化修正模型设计

时间:2022-10-29 11:56:28

时空变化修正模型设计

1引言

空间对象有3个基本的属性:空间属性,专题属性和时间属性。传统的GIS在处理空间对象时,主要突出空间属性和专题属性,对时间属性则予以固定[1]。这种取舍造成传统的GIS只能处理世

界的当前状态,或者某一历史状态的快照,而无法记录数据随时间的动态变化,无法进行时序分析和处理时态现象[2]。地理对象的变化与时间紧密相关,为了跟踪和记录变化,需要在GIS中引入

时间信息,这就是时态GIS(TGIS)所要解决的主要问题。作为TGIS的核心,时空数据模型的研究成为TGIS实现的前提条件。在过去的20多年里,研究者们提出了大量的时空数据模型

,如时空立方体模型、基态修正模型、时空复合模型、快照模型[3],面向对象时空数据模型[4],将时间语义理解为事件序列的ESTDM模型以及改进模型[2,5],以过程为核心的时空数

据模型[6]等。这些模型多以概念模型为主,有的还没有实用的系统平台,或仅停留在原型验证阶段。Arc-GIS平台作为当今主流的GIS软件平台之一,在地学处理和空间分析等方面功能强

大,积淀丰富,但在时态GIS领域,仍少有涉及。因此,本研究以支持时空变化表达为主要目的,设计了支持时空变化过程的时空数据模型,并通过多时态矢量空间数据转换算法自动发现和提取时空

变化结构信息,将多时态的矢量空间数据转换成系统支持的时空数据结构存储。2基于Shapefile的基态修正模型设计2.1基态修正模型对地理空间实体变化的认知是TGIS的基础[7]

。Yuan将地理对象的变化划分为6种类型[8],TamasAbraham在1999年使用W三角形也总结了8种空间变化类型[9],这些变化描述能够对特定的应用领域和应用需求进行较

好的模拟,但通用性比较差[10]。在前人研究的基础上,本研究将地理对象的变化抽象为以下8种类型:①产生;②消失;③属性变化;④空间变化;⑤属性和空间变化;⑥1对多变更;⑦多对1

变更;⑧不变。基态修正模型最早由GailLangran提出,其主要思想是只保存某个时间的数据状态(称为基态),和变化量[1,3,11]。基态修正模型的缺点是:对较远的历史数据进

行查询时,效率较低。为提高查询效率,刘睿等提出了基于动态基态的时空数据基态修正方法,引入了动态基态数据与动态数据存储区域的概念[12]。本研究综合前人的研究结果,采用多基态和多

级差文件[13-14]对模型进行改进。主要的改进包括:(1)以研究对象的最新状态作为当前的工作状态;(2)以整个数据系统较早的状态作为最原始的基态,最早的变化基于此基态,当差文

件累积到一定程度时,重新建立新的基态,之前的基态和差文件不再变更,新的变化发生时,在新基态的基础上更新差文件和当前状态;(3)对于基态距(相邻两个基态之间的时间距离)较大的区域

,对其间的差文件进行合并,建立多级差文件,当查询的历史时刻距离最近的基态较远时,优先使用时间跨度较大的二级差文件进行叠加操作。改进后的基态修正模型数据组织结构如图1所示。

2.2基于Shapefile的基态修正模型的设计

2.2.1时空数据结构设计数据模型要在实际中应用,需要合适的数据结构实现。本研究以矢量的时空模型为例,采用Shapefile文件保存数据,并对Shapefile文件做如下扩展:

首先,增加GlobalID字段,作为地理对象的唯一标识,为了维护数据模型的完整性,对Glob-alID进行如下约定:①唯一性;②不可重用性;③永久性,即一个对象对应的Globa

lID一经产生,便不能再更改。然后,增加地理对象的开始时间(Start-Time),结束时间(EndTime),入库时间(DBTime)字段,其中,入库时间应不早于开始时间,且

时空变化过程的模拟时间粒度要达到秒级的精度[15-16]。最后,为了完整的存储和重现时间拓扑信息,增加变化类型(ChangeType),前一状态时空对象ID(PriorIDs)

和后一状态时空对象ID(NextIDs)字段。时刻t新产生的时空对象,前一状态的时空对象应为空;时刻t消失的时空对象,其后一状态的时空对象也为空;一对多变化,该时空对象的Nex

tIDs应存储多个后续对象;多对一变化,该时空对象的PriorIDs完整存储所有前驱对象信息。基态文件和差文件的存储数据结构相同。增加必要的字段后,整个Shapefile数据的

数据结构如图2所示。

2.2.2时空数据索引随着时空数据的时间跨度的增加,对应的基态文件和差文件会越来越多。为快速地找到指定时间点对应的基态文件和差文件,周辉等2010年提出了基于时间的面向对象的差

文件索引设计方法[17],刘仁义等提出了区段快速索引和变粒度存储因子方法[18]。本研究在前人研究的基础上,分别建立基于时间的基态文件索引和差文件索引。以基态文件对应的时间主键

,按时间从早至晚的顺序排列,建立基于时间的基态文件索引。同时以差文件所记录的变化事件中最早的发生时间为主键,按照从早至晚的顺序,建立基于时间的差文件索引。基于时间的基态文件索引

和差文件索引的结构及其表结构如图3所示。

3模型的实现与应用

3.1多时态矢量空间数据的转换虽然时态GIS的概念已经产生20多年,但至今仍没有一个可以广泛应用的时态数据模型,因此,当前的多时态数据大部分仍然是以多快照模式存储的,即对应不同

的时刻,存储一个对应的快照状态,不同的时刻对应着多个快照状态。而时空数据模型发展中的一个重要问题就是应该顾及到新的时空数据模型与历史积累的大量实验数据和生产数据之间的移植性,至

少应提供一种转换方法和转换接口[19]。为了能够应用本文研究中设计的数据模型,设计了将多时相快照数据自动转换到基于基态修正的差文件存储的算法。考虑到矢量数据在ArcGIS中主要

以点、线、面的形式存储,多时态矢量空间数据自动转换算法也相应的分别针对点、线和面的转换算法。针对3种不同类型的转换算法的输入是不同时刻的两个矢量数据集,设为数据集DB0和数据集

DB1,其中,数据集DB0为旧时态数据集,DB1为新时态数据集;同时设obj0和obj1分别为数据集DB0和DB1上的对象;首先设置若干个属性字段作为属性查找比较的依据字段;其

次设置一个容差范围σ,作为空间比较的容差距离,在算法技术流程方面,参考汪汇兵的研究工作后设计的算法,主要思路如下[10]:(1)点状数据转换算法首先,遍历输入数据集DB0和DB

1,通过比较点之间的距离,建立距离Δd<σ的点之间的关联关系(若有多个点对象符合要求,则取距离最近的一个作为关联对象);然后,比较有关联关系的点的空间信息和属性信息,提取出变化

信息(属性变化、空间变化、空间-属性均变化等);再是,对所有未找到关联对象的点obj0,通过设定的属性字段查找关联对象,若找到关联对象,则比较其信息,提取变化信息,否则,将未找

到关联对象的点obj0设置为消失;最后,将所有未找到关联对象的obj1设置为新产生的对象。点状数据转换算法的流程如图4所示。(2)线状数据转换算法对于线状数据,上文中论述的8种

变化类型都可能涉及。为了快速查找到在空间上可能相关的对象,先对两个输入数据集DB0和DB1中的每一个线对象,建立其最小外接矩形(MBR)索引。线与线之间的关联性是根据两者节点匹

配率来计算的;两个节点之间的距离小于指定的容差σ,则认为两个节点可以匹配;设定一个阈值TL,若两个线对象的节点的匹配数量超过占总节点数的百分比大于设定的阈值TL,则认为obj0

与obj1能够关联,其中,阈值T可以根据实际情况进行设定。为了提高计算效率,对于任意obj0和obj1,首先比较其MBR,只有两者MBR相交时其才可能具有关联性,若两者MBR不

相交,可直接认定两者空间上不关联。首先,遍历输入数据集DB0和DB1,对每一个obj0和obj1都尝试建立对象关联关系,此时可能出现一对多或者多对一的关联关系,根据关联关系,提

取变化信息(空间变化、属性变化、空间属性变化、多对一、一对多等);其次,对未找到关联的obj0,通过属性查找关联对象,若找到关联对象,则比较其属性和空间信息,提取变化信息,否则

标记为消失;最后,对所有未标记的obj1,设置为新产生对象,线状数据转换的流程如图5所示。(3)面状数据转换算法为快速地找到可能与一个旧时态面对象相交的新时态面对象,此处仍然使

用MBR作为快速判断的依据。面状数据的转换算法流程与线状数据转换一样,不同之处在于面状数据的关联是通过其相交部分的面积占其总面积的比例来确定的。同样设定阈值TA,对任意两个ob

j0和obj1,若两者重叠的面积与任意一个对象的面积的比例达到指定的阈值TA,则认为两者可以关联,其中,阈值TA可以根据实际情况进行设定。在计算重叠面积时,一般而言使用栅格数据

比较合适,矢量数据叠置比较费时。但是矢量-栅格数据转换存在着无法确定合适分辨率的问题,若分辨率过高,转换效率太低;若分辨率过低,转换后一些小多边形容易遗漏,转换误差也较大,因此

,本文中仍然采用矢量数据直接叠置的方法[15-16]。面状数据转换算法流程与线状数据转换流程一致,如图5所示。

3.2模型的应用前文中从实用性和应用性的角度对基态修正模型进行改进,并设计了其基态文件和差文件的存储结构,考虑了其数据组织和索引策略,但其具体可应用性究竟如何,还需要在实际中来

验证。因此,本文设计和实现了一个原型系统对本文时空数据模型的实用性进行了验证,系统的整体架构如图6所示。(1)时空快照的恢复时空快照的恢复是指建立用户指定任意时刻的时空快照状态

,这是时态GIS的一个核心业务,也是时态GIS区别于普通GIS的关键所在。时空快照的恢复包括3个步骤。首先,根据用户指定的时刻,遍历基态文件索引,从索引中找到时间版本与用户指定

时刻最临近的基态文件。第二步,从差文件索引中查找到所有涉及到的差文件。最后,将基态文件和差文件按时间顺序逐一合并,生成时空快照。根据变化的时空数据进行时空快照恢复结果如图7所示

,其中绿色框标和蓝色框标记部分是历史状态相比于当前状态的变化部分。(2)时空数据的分析时空数据的分析主要包括对变化的分析、对象历史状态的分析等。对变化的查询主要查询符合条件的变

化事件的信息。要对整个时空数据查询变化信息,首先,根据查询的时间范围在文件索引中找到符合该时间范围的基态文件和差文件,然后,在符合条件的差文件中根据查询条件逐一查询并记录查询结

果。由于时间域信息和属性域信息都是使用dbase表进行存储的,因此,可以使用标准的SQL语句进行查询。如图8所示是查询到的2004-03-28至2006-03-28的事件信息。

在对象历史状态进行查询时,用户主要需要获取感兴趣对象在整个时间过程中的历史演化。在设计时空数据模型时,本文已经考虑到这种需求,将每个时空对象的前一状态时空对象信息和后一状态时空

对象信息都进行了存储,因此,只需要找到感兴趣的对象的最新状态,然后根据其PriorIDs和NextIDs进行回溯即可给出该时空对象的完整演化过程。图9是对GlobalID为20

9的对象进行演化分析,查询其历史变化过程的结果。(3)时空数据的更新时空数据的更新主要涉及到对时空数据的编辑和更新,与传统的GIS中数据编辑和更新只需要保存一个最新状态不同的是

,在时态GIS的数据编辑过程中,不仅要更新数据的最新状态,其历史状态也必须被妥善的保存下来以供未来的时空查询,而不能被简单的替代或者删除。同时,数据的编辑过程也不再是简单的更新

属性和空间信息,还需要对数据的时间拓扑关系进行维护,以保证未来时空分析的正确性。时空数据更新操作的对象可能是当前状态,也可能是生成的历史状态快照。在本文讨论的基态修正时空数据模

型中,对一条记录的编辑主要涉及到当前状态的更新、差文件的更新、基态文件索引的更新、差文件索引的更新、基态文件信息表的更新和差文件信息表的更新。图10所示为删除一个对象的过程,可

以看出,在编辑模式下删除该对象后,在差文件中记录了一个删除操作(选中的记录),同时,该对象被标记为已删除。

4结语

本文设计和实现了一种基于Shapefile文件格式的时空数据模型,使用改进的基态修正模型进行数据存储和组织,节省了数据的存储空间,同时也完整地保存了数据的历史变化信息,突破了传

统GIS只能存储和表达单一时刻地理对象信息的限制,并支持对历史变化信息的查询和时序分析,有利于分析和发现地理对象随时间的变化规律和变化趋势等。鉴此,对时空数据模型的设计开发出一

套原型系统。这说明该模型能够完整地存储和表达地理对象随着时间的变化,能够支持基本的时空快照恢复、基于时间的分析功能、数据的更新管理,具有较好的可行性和实用性。下一步对模型的改进

和完善包括:(1)进一步研究时空分析的需求,完善时间信息的组织,提高存储和分析效率;(2)完善时空数据管理和分析系统,提供一个通用的框架,将时空数据的编辑、管理、分析、查询等操

作进行统一的管理,提供模型的可扩展性和应用性;(3)研究时空数据动态可视化的方法。

上一篇:动态城市道路分层 下一篇:增强煤企统计工作的思索