ArcGIS历史归档

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

ArcGIS历史归档
ArcGIS版本原理
ArcGIS版本应用
利用ArcGIS版本可以进行多用户并非操作、长事务处理、处理复杂条件数据入库(入库一般发现入库数据有误的处理等)、历史回溯、时态型数据管理等。

ArcGIS版本原理
ArcGIS版本管理是利用ArcSDE来管理数据库数据,可以对数据进行版本注册,创建版本,对版本进行编辑,然后进行版本的协调,修改父子版本(或者上下级)的冲突,最后提交版本。

版本只是记录数据库的一个状态,是一个数据“快照”,而不是数据的物理复制。

以下描述都是在版本注册选择为Without the option to move edits to base
当ArcGIS对数据进行版本注册后,数据库本身一个基表Base会产生与基表相关联的Delta表A<R_ID>表(记录数据增加修改表)、D<R_ID>表(记录数据删除表),当用户通过客户端对Base表进行操作时,其实数据都记录在Delta表中,这也是某些用户通过直接查看数据库相关表并没有发现自己修改的数据的原因。

在使用版本编辑数据时,是通过用户数据库和SDE元数据库一块来完成相关的操作的。

在用户进行数据编辑时,通过sde数据库的states表记录编辑状态,通过state_linages记录编辑的流程,通过versions记录版本信息,然后与A表、D表通过state_ID进行相互关联来进行版本的编辑管理的。

在用户频繁的利用版本进行数据编辑时,可能会感觉数据查询会越来越慢,这就是因为在查询数据时,不仅仅是对Base表进行搜索的,要对A表、D表、SDE状态表、版本表等都会进行相互管理查询,所以用户应该定期提交版本到Default版本,对数据库进行Compress操作,作用是将Delta数据转移到Base表中,删除无效的编辑状态,这样就会提高查询分析效率。

ArcGIS记录历史的方式
版本方式
利用ArcGIS版本进行记录,用户每更新一次数据库,都要新建一个版本,更新完以后,可以保留该版本,因此用户可以通过版本记录数据库的更新信息,并且通过选择相应的版本,浏览当时的数据库状态。

利用版本方式记录历史,势必会增加数据库的冗余,使日后的查询分析效率下降。

因为如果详细记录数据的变化,每做一步就要建立一个版本来记录状态,对于大数据量频繁的进行变更,使用版本方式来记录历史肯定是繁杂而且效率低下的。

历史归档方式
ESRI公司从ArcGIS9.2版本之后就增加了Geodatabase数据模型的历史库功能,该功能就可以记录数据演变的每一个状态,而且可以进行相关联的历史回溯,可以满足不同行业对历史数据相关管理的要求。

ArcGIS历史归档
历史数据创建
前提
ArcGIS在使用历史归档时首先必须对ArcGIS数据进行版本注册,而且注册选项(without the option to move edits to base)。

数据支持
SDE数据管理的数据集、FeatureClass、Table、Relationship,Network、Topology 等数据类型。

创建
在GDB进行版本注册后,选择数据集右键,Archiving,选择Enable Archiving 即可。

在进行了数据归档后,会在原基表Base表的基础上产生一个新的历史表一般以Base_H表示,该表增加了GDB_FROM_DATE(记录某个要素也就是数据表的行记录的创建时间)、GDB_TO_DATE(记录某个要素也就是数据表的行记录的灭失时间)、GDB_ARCHIVE_ID(唯一标识归档类的某行记录)。

注意:历史表记录的时间为服务器的时间,在历史表会有一个ObjectID,该值是可以重复的。

例如当对一个图层进行改变形状、修改属性等。

历史归档针对的对象是Default版本,所有的子版本所做的变更只有通过提交后才会被归档,否则不会有变化。

在历史归档环境下对基表的列进行增加或者删除时,归档表也进行相应的改变。


档表知识记录历史数据,是只读状态,所以用户不能直接编辑该图层。

其他
如果用户注册为moving edits to base,不能使用历史归档
基表中的索引也在归档表中创建
归档表在ArcCatalog不可见,可以将归档表加载到ArcMap显示
归档表复制了基表的所有信息
对已经归档的数据集导入新的要素类,需要重新进行版本注册和历史归档操作
可以查看要素类属性- general-查看数据归档创建的相关信息
历史数据灭失
当用户对数据集进行反注册版本时,必须首先进行Disable Archiving。

在Enable Archiving的情况下,当用户对整个数据集或对选择的要素类进行删除,相应的历史表不被删除。

(进行Disable Archiving也不能删除)
当用户进行版本删除,或者当前版本数据的删除,都不会把历史表所记录的数据给删除掉,通过Disable Archiving功能可以灭失历史表(不能撤销)
单击是:则将删除存档类。

单击否:则会为具有gdb_from_date 和gdb_to_date 属性,您仍可能查询并查看ArcMap 中的时序表保留存档类。

ArcGIS历史归档工具
ArcMap历史归档工具介绍
ArcMap历史归档面板介绍
ArcMap历史归档面板介绍
历史工具使用流程
ArcGIS历史归档原理
编辑行为VS历史归档表
数据进行归档时,所有基表Base表数据都会产生一个Base_H表,归档表的数据继承了Base表的所有数据属性。

在GDB_FROM_DATE字段记录创建数据归档的数据库时间信息、GDB_TO_DATE默认为12/31/9999 23:59:59因为现在的数据没有任何变化,默认为结束时间为N年后了。

新增数据
当对数据进行新增要素时,归档表就会记录一个新要素的信息,特别是记录了要素创建时间。

如图所示新增数据117,创建时间2005年7月9日下午2点23分43秒。

删除数据
当对数据进行要素删除时,及逻辑表达也就是数据灭失,那么在GDB_TO_DATE 记录了要素删除的时间。

如图117删除时间为2005年7月12日下午5点34分22秒。

修改数据
上面记录的是修改数据,其实从图上表示为先删除后添加数据。

但是另一种情况就是直接改变117要素形状,那么真正的表应该是要素的如上图的117要素形状的结束时间和下图117新要素形状的创建时间应该是一致的,用下表来表示。

历史归档原理
根据上面编辑行为与历史归档表的相互关系,我们可以看到,所有的编辑行为都
是与编辑对象的创建时间、结束时间相互联系的,所以在ArcGIS历史归档应用就是记录编辑对象的创建、灭失时间,然后对记录的时间进行查询的过程。

ArcMap工具归档原理
在使用ArcMap进行历史归档时,我们可以对数据编辑的状态进行记录,也就是记录不同的历史状态,可以进行相关的历史回溯。

其实ArcMap记录历史状态的信息存储与SDE数据库里面的gdb_historicalmarkers,每一个状态对应一个状态时间,然后根据这个状态时间查询归档表里面的创建和灭失时间,以达到数据状态的历史浏览。

历史回溯
根据上面所述的编辑行为与历史归档表的相互关系,我们首先在GDB_TO_DATE 的时间为9999/12/31 23:59:59的数据,而且该数据的GDB_FROM_DATE与数据表里面的GDB_TO_DATE相同,这样做就排除了原来数据并没有发生变更的大量数据。

从上图我们可以看到有一条记录为from 时间为10:10:39 To时间为永久的数据,记录为A。

而且我们还可以看到有一条记录B的创建时间与刚才A记录的创建时间相同,但是结束时间为10:12:05,那么肯定B要素为已经删除的要素,而且A和B 为同时产生的,可以推断出是由某个要素分割而产生的A、B要素。

继续分析可以看到有一条记录C的To时间与A记录的FROM时间一致,可以分析出来时有C分割为A和B要素。

……
以此类推,直至分析到某个要素的From时间找不到任何一个要素的结束时间与其一致,这样一个变更过程的历史回溯到此结束。

ESRI中国(北京)有限公司客户及合作伙伴支持部
ESRI中国(北京)有限公司
客户及合作伙伴支持部Lish
11 / 11。

相关文档
最新文档