时间数据归档实际上是将空间数据库的所有变化都保存下来,记录其变化的时间和变化后
的状态,并且提供工具访问某一时刻或者某一时间段的数据库状态,还提供了分析工具。
时间数据归档功能是在ArcInfo和ArcEditor中提供的,针对的是完全版本化的数据。在已
有的Transactional Version的基础上,Geodatabase Archiving增加了新的Historical V
ersion。用户既可以连接到Transactional Version,也可以连接到Historical Version。
用户可以利用Transactional Version来实现数据的编辑,而Historical Version使得用户
能够展示数据在某一时刻或者时间段的状态,并且该状态是只读的。在连接一个数据库的
时候,可以选择是连接Historical Version还是Transactional Version,并且还可以通过
Change Version工具来进行修改。对于Historical Version的查询是基于Archive Class,
而对于Transactional Version的查询是基于Base表和Delta表。
时间数据归档是将所有针对空间数据库的Default版本的变化都保存下来,在Arch
ive Class中存储和管理。当开始创建归档时,首先在数据库中创建Archive Class,它是
对Default版本的完全拷贝,具备相同的Schema,但是增加了3个属性,其中gdb_from_dat
e表示数据库某个状态的开始时间,gdb_to_date表示数据库某个状态的结束时间,gdb_ar
chive_oid用来唯一标识档案类的某行记录。当Default版本变化以后,在Archive Class中
增加一条记录,保存Default版本变化后的状态,以及该状态的存在时间段。
在数据归档中提供了多个工具以实现时间数据库的浏览和分析,其中History View
er 工具条用于浏览空间数据库变化的时间系列中某一时刻的状况,可以通过Marker选择,
也可以通过Date/Time选择;Historical Marker Manager用于创建,修改和查询Markers,
其中Markers是将数据库的变化时间用一个有意义的名字表示,例如用户在2005年5月1日,
将数据库中的地块A删除,那么在档案类中可以将2005年5月1日这个时间用“地块A被删除
”这种描述性的信息来命名,使得用户能直观理解时间所代表的含义,在History Viewer
Tool中,通过点击“地块A被删除”,就可以察看2005年5月1日的数据库状态;还包括将
Archive类添加到ArcMap中的命令。因为在ArcCatalog和ArcMap中,用户是无法直接浏览和
分析Archive Class的,必须要借助ArcMap中的命令添加,可以实现查询,以及通过符号化
来显示事物随时间的变化轨迹。
Archiving 能够支持完全的Geodatabase数据模型,独立的Feature Classes、Feat
ure Datasets、Tables、Relationship、Network Topology都能够实现Archiving。
注意:
(1) 一旦数据集注册为“Registered with moving edits to base ”,则不能实
现Archiving,必须将数据集Unregistered,然后再“Registered as versioned without
the option to move edits to base”;
(2) 仅仅对具备Own权限的Datasets或者Classes进行Archiving;
(3) 在开始Archiving时,原始Class的Indexed也将创建;
(4) 能够通过点击Archiving的Properties查看数据的档案;
(5) 对Archive Class类的命名规则是在原始对象类的名称后加“_H”,例如Road_H
;
(6) 利用ArcCatalog不能查看Archive Class,但是在ArcMap中通过Add Historica
l Archive命令把Archive Class添加到ArcMap中浏览和分析;
(7) 为了更好的使用Archive Class,应该定期更新Database Statistics;
当对Versioned Database开始Enabling Archiving时,则创建Archive Class,并采
用两个字段gdb_from_date,gdb_to_data来记录变化时间。有两种时间Valid Time和Trans
actional Time,其中Valid Time是对应真实世界的变化发生时间,而Transactional Tim
e则是将变化记录到数据库的时间,是由系统自动记录的。ArcGIS采用Transactional时间
以记录变化保存和提交到Default版本的时间。这样就会产生不一致的问题。
一旦开始Archiving ,Default Version中的所有Row都被拷贝到Archive Class中,
并且所有来自原始数据的Row都用相同的Timestamp标记。Gdb_from_date字段是用开始Ena
bling Archiving操作的时间来记录的,而gdb_to_date字段是记录为12/31/9999。如果一
个对象的gdb_to_date是12/31/9999,表示其属性与Default版本的状态是相同的。一旦数
据被编辑,保存并提交到Default版本以后,Archive Class会自动更新。当对数据库中的
某个要素Update的时候,提交到Default版本后,该要素的Row的gdb_to_date将变成提交变
化的时间,同时增加一行,将其gdb_from_date改为提交变化的时间,而将gdb_to_date改
成12/31/1999。一旦要删除一个要素,则将该要素的属性gdb_to_date改成提交变化的时间
。对数据库的Archive都是在一个独立的Database Transaction中进行的,保证编辑结果可
以回退。
当Disabling Archiving时,可以选择不删除相关的Archive Class,将其保存为具
备From和To字段的Temporal Table,可以用来实现时间动画、动画图表和追踪分析,也可
以选择删除Archive Class。在Unregistered as Versioned之前,必须要将数据集Disabl
e Archive。在Archiving Enabled期间删除要素集或者要素类,将保存Archive Class。
转载于:https://www.cnblogs.com/dancingfeather/archive/2008/04/11/1148574.html