空间数据库是基于大型关系数据库系统,存储和管理海量空间数据的技术,是地理信息系统的重要组成部分,也是GIS应用项目的基础。
但是由于缺少通用性建库工具,当前空间数据建库存在大量重复的建库工具开发工作。空间数据库建设一般由建库单位基于选定的GIS软件,开发一套针对特定数据文件的软件工具,使用该软件工具,对原始数据进行处理并入库。对另一批数据进行建库时,就需要修改原有的建库工具,甚至重新开发建库工具才能满足建库要求。而且不同单位都在做着类似的重复性工作,形成更大范围内的重复投入。如何克服这些问题,提高空间数据库建库的生产效率,降低建库成本,成为一个亟待解决的问题。
与此同时,在建库过程中还需要大量的人工干预,如果碰到特殊情况出现,甚至需要手工操作来对数据进行处理。由此产生的大量人力、物力、财力的投入,影响了建库进度,增加了建库成本。
SuperMap D-Builder以SuperMap SDX+技术为基础,并引进多项先进技术到建库的过程中,可以大大的降低建库难度,提高建库效率。同时使用SuperMap D-Builder还能够满足各种建库的需求,避免了重复性的建库工具的开发。
SuperMap D-Builder的主要功能
SuperMap D-Builder提供的功能包括空间数据格式转换、地理参照系变换、空间数据入库三个方面。这三项功能都是基于可视化建模以及自动化技术来实现的,应此都具有批量工作、人工干预少、工作效率高等特点。
◆ 空间数据格式转换
提供把各种其他格式的空间数据,比如CAD数据,SHP数据,E00数据等,转换为SuperMap的SDB数据源。转换的时候按照一一对应的方式进行:一个原始数据文件对应到一个SDB数据文件,并保持原始的文件目录结构,便于用户检查格式转换结果的正确性。为了保证转换的效率,格式转换时,将忽略原始数据的数据组织方式,默认按照GIS分层存储的方式处理,同时忽略原始数据文件的投影信息。
◆ 地理参照系变换
由于格式转换时忽略掉了原始数据的投影信息,在格式转换完成之后,需要对SDB数据源设置和转换投影信息。投影转换时,只需要设定需要转换的SDB数据源和目标投影信息,系统就可以自动工作。
◆ 空间数据入库
空间数据入库是在SDB数据源的基础上进行。用户可以根据自己的需求建立自己的建库模型、建库规则、数据重组方式。通过自定义数据重组规则,用户就可以建立起符合实际应用需要的空间数据库。
SuperMap D-Builder的产品特点
▲ 可视化建模
可视化建模就是利用一种统一的形象化的符号语言,把对象模型准确地表达出来,即构建系统模型的过程。利用可视化建模首先能够有效的降低系统的复杂度,同时能够提高系统设计的可重用性,增强系统的灵活性。
在空间数据建库中,包括三类基本模型:源数据模型、规则模型和目标数据模型,如下表。
△ 源数据模型:设定需要入库的数据信息,包括数据文件及其类型信息。
△ 目标数据模型:设定空间数据库的信息,包括数据库连接信息等。
△ 规则模型:设定输入数据与空间数据库的对应规则,包括图层对应关系以及数据重组信息等等。
建库时,首先通过源数据模型设定需要入库的数据,通过目标数据模型设定空间数据库信息,然后通过规则模型把需要入库的数据与空间数据库中的数据以一定的规则一一对应起来,完成空间数据建库的建模过程。(如下图所示)。
经过上述模型化组织后,整个建库过程简单明了。并且只需调整部分参数,就能够应用于对其他数据或应用的建库,减少不必要的重复工作。
▲ 脚本执行模式
根据可视化模型,系统自动生成脚本文件。在脚本文件中,一条语句对应一个处理动作。数据入库过程则根据这个脚本来进行。运行脚本时,采用读取脚本编译脚本执行脚本的方式,并且一次只处理一条脚本。
脚本执行采用事务模式。一条脚本执行失败或者未执行完,数据库将自动回滚到执行脚本之前的状态,保证了数据处理的正确性和完整性;同时脚本执行模式也是实现数据入库断点续传的基础。脚本执行模式过程如下图所示。
脚本执行模式除了可以防止入库时意外中断导致的工作成果损失外,还可以根据脚本的执行情况看到当前入库的进度,并随时中止脚本的执行,完全控制入库的进程。
▲ 断点续传
在数据入库过程中,发生崩溃、中断或者其他非正常中止时,用户总是希望能够从中断的地方重新开始数据入库,并且不会影响已经完成的工作成果。断点续传就是针对这种情况提出来的。
断点续传是在脚本的基础上,通过详细的日志、错误记录,保留脚本执行结果的详细信息。重新入库时,根据日志信息,定位到中断执行的地方,开始剩余数据的入库工作, 并且由于脚本执行采用事务的方式,保证了入库工作的连续性、正确性和完整性。
▲ 数据分层与重组
名字、类型和专题属性是数据层所具有的三个重要的属性。根据这三个属性,可以把数据层和数据层中的对象区分开来。基于此就有下面三种基本的数据重组规则:
△ 根据数据层名字重组数据:比如可以把所有名字包含“road”字符串的数据层,合并到名字为“道路”数据层中去。
△ 根据数据层类型重组数据:可以根据数据层类型,把同属于一个类型的数据,合并为一个图层或者把一个数据层中的不同类型对象拆分到多个数据层中。
△ 根据数据层专题属性重组数据:可以根据数据层的某项专题属性值,拆分或者合并数据。
上述三种基本的数据重组规则可以单独使用,也可以两两组合,或者三个同时使用,这样还可以形成下面四种复合的数据重组规则:
△ 根据数据层名字+数据层类型重组数据:1)、2)的组合
△ 根据数据层名字+数据层专题属性重组数据:1)、3)的组合
△ 根据数据层类型+数据层专题属性重组数据:2) 、3)的组合
△ 根据数据层名字+数据层类型+数据层专题属性重组数据:1)、2) 、3)的组合
在构建空间数据建库模型中的规则时,用户可以根据自己的需要,以上述7种重组规则为基础,定制自己需要的重组规则。
▲ 多源数据自适应处理
数据入库中面临的多源数据问题主要指数据存放地点分散、数据格式多样、异构数据入库三个方面的问题。
数据存放地点分散问题,原始数据可能分散在一个局域网的不同机器上,或者在一个机器的多个目录下,导致在建模和入库时查找原始数据十分困难。通过提供带有过滤条件的自动搜索功能,就可以降低用户选择数据的困难,提高工作效率。
数据格式多样问题,不同部门生产数据使用不同的数据生产工具,导致数据产品格式多种多样,这就需要把这些不同格式的数据统一入库。通过自动化的批量格式转换,把所有数据都转换到一种格式下,就可以完全解决这个问题。
异构数据入库问题,不同时期或者不同部门生产的数据,空间数据结构可能存在很大的不同,入库时就要面临将这些异构数据重组,按照统一的数据结构进行存储的问题。解决这个问题只需要定制不同的规则模型即可。用户设计数据重组规则时,对每一种结构的数据定制一个规则,不同结构的数据分别使用各自的规则进行入库,从而满足异构数据一体化入库的要求。如下图所示,源数据A、B、C为结构互不相同的数据,入库时为他们分别建立入库规则,但使用同一个目标数据,这样就可以达到异构数据同时入库的目的。
▲ 多用户协同建库
一个大型地理信息系统的建立往往需要多个用户协作才能完成,同时多用户协同建库还是提高建库效率的一个很有效的手段。多用户协同建库可以通过以下几个步骤实现:首先在设计数据建库模型时,按照客户端的情况把模型分组,并生成多个脚本文件;其次把需要入库的数据和对应的脚本分配给各个客户端;最后客户端根据分配的脚本和数据,进行各自的建库工作。