1.GIS互操作:“SAFE”之路


S.Raghavendran GIS Analyst PIXEL INFOTEK PVT LTD
#194, Sankey Rd., Sadashiva Nagar Bangalore-560 080, India
Tel: +91-80-3619351/2/3,
Cell: +91-9845673851
Fax: + 91-80-3619354
Email: srg_gis@yahoo.com


序 言
  地理和地理信息系统(GIS)从未象现在这样与我们的生活联系得如此紧密,同时,“地理信息系统互操作”也从未象现在这样被业界关注过。不论你是否喜欢,不论你是否意识到,“互操作”实际上就存在于我们的日常生活中。也许在旧石器时代无从谈论互操作,但在21世纪高科技的生活中却随处 即是。如果你去过国外旅行,一定还会记得由于语言差异造成沟通困难的尴尬情形;而如果全世界都 能用一种共同的语言进行交流,你就会理解什么是互操作了。如果刻在Samsung CD上的音乐只能在Samsung的播放器上才能播放,又会是怎样?幸亏在实现互操作方面,音乐CD早已经克服了这种障 碍。还有,亚洲人第一次到美国时,往往会这么说:“哎呀要是带着我的电源插座转换器就好了!”这些都是互操作的例子。
  不论你是否喜欢,不论你是否意识到,互操作就存在于生活中,GIS领域也不例外。然而令人遗 憾的是,地理信息行业还没有实现其他行业中那种程度的互操作。当然,近些年来地理空间互操作虽然看起来仍然可望而不可及,但也已经获得了巨大的发展动力。随着“地理空间信息大众化”的思想深入人心,随着获取地理空间信息逐渐成为公众应有的权力,随着各种组织和机构在发展开放标准上 所做的工作,以及人们越来越多地使用SDI(空间数据基础设施)互操作工具,——例如FME(要素处 理引擎),GIS互操作将很快成为现实!

什么是GIS互操作?
  在GIS领域,互操作简单来说就意味着:在地理信息解决方案的不同组成部分之间集成、或交换 信息的能力,——即使这些组成部分是由不同的单位或部门在不同的GIS平台上开发的,使用着不同 的CAD或GIS文件、空间数据库或属性数据库、或其它相关的来自于多个组织、不同类型的电子文档。 互操作可能很简单——只需要从一种GIS格式转换到另一种GIS格式;也可能非常复杂——需要将数 据转换为用户或应用系统所要求的结构。换句话说,真正的GIS互操作应当是利用恰当的工具和技术、 将地理空间数据进行交换和转化,以便用户能够尽量发挥所使用的地理信息系统软件的功能。

为什么需要GIS互操作?

  自从加拿大在20世纪80年代初期首次提出“地理空间数据基础设施”,其它国家如美国、英国、 荷兰、澳大利亚和马来西亚等也先后加入这一行列中;最近印度也建立起“国家地理空间数据基础设 施”。地理空间数据的重要性、地理空间数据基础设施与其它基础设施一样的必要性已经广为人知。在20世纪90年代早期,地理信息系统基本上是孤立的,没有与其它业务相结合,用到的数据以基于文件的格式进行存储和优化,以便实现快速的读取。在一个单位的内部实现数据共享的程度受制于网络文件系统(NFS)的能力,并且通常要求所有的应用软件都是从同一个软件公司购买。为了实现不同组织机构、不同软件系统之间数据的共享,必须使用这些GIS软件所提供的数据转换模块,或者是利用开发工具自行编写转换程序。然而,在这个高速发展的信息时代,政府部门或其它机构经常需要对各种自然灾害、环境和其它类似事件做出非常及时快速的反应,这就依赖于他们获得各种关键信息的能力;在分秒必争的紧要关头,能否迅速地获取必需的信息甚至是生死攸关。而现实的情况是:这些必需的信息如果不是无法获取,就是处于孤立的过时系统中、使用着各种不同的GIS格式。决策者往往陷于尴尬境地:一方面缺少进行准确决策所需要的信息,一方面还要面对不同各种格式之间的互操作问题。这不仅突出了建立各级空间数据基础设施的急迫性,也突出了合适的SDI工具或技术来实现互操作的重要性,目的就是在适当的时间、以适当的形式、获得适当的信息。

GIS互操作技术
  GIS互操作的实现是一项非常艰巨的任务,每取得一点点进展都将面临大量困难,诸如地图数据 缺乏更新、地图数据无法获得、缺少地图投影、比例尺不一致等等,而这些还不是问题的全部。正所谓“众口难调”,即使地理空间数据能够获得,也还存在存储格式的差异,这归咎于技术的不成熟和文件格式的不统一。从世界各地的经验来看,这正是地理空间数据基础设施建设中的瓶颈。
  在GIS领域,数据互操作一直是人们讨论的焦点。长期以来,世界各地的GIS用户和组织机构的 管理者一直把数据封锁在各类专有的格式中;直到互操作的悄然兴起,这种困境才因为FME(“要素操 纵引擎”)——由1993年成立于加拿大的Safe Software公司所推出的Spatial ETL(“提取、转换、以及加载”)技术而改变。
  每种GIS文件格式都各有优缺点,即便是OGC(Open GIS Consortium)在GIS文件格式和界面的标准化方面正在取得巨大的成就,要实现互操作也还有很长的路要走。

FME(“要素操纵引擎”):空间ETL工具
  简单来说,ETL工具的目标就是将数据从一个存储位置传输到另一个存储位置。ETL 的“提取”(Extract)功能指从某一指定的数据源中获取所需的数据;“转换”(Transform)功能是指对所获取的 数据进行处理,进行变换、甚至与其它数据进行合并,以重组为目标数据源所要求的正确结构;最后,“加载”(Load)功能是把处理的数据结果写入目标数据源。
  “空间ETL”(由Safe Software公司创造的术语)给ETL增加了空间特性,从而将它带入新的领域和高度。与传统的ETL工具相比,空间ETL工具,例如Safe公司的FME,除了具备传统ETL工具的 一般功能之外,还有一点显著的区别,那就是空间ETL工具触及了空间信息,它既可以用来创建/挖 掘空间数据,也可以用来发挥现存空间数据的作用。多数情况下,不同系统之间的空间数据组织方式 存在较大差异,因此,简单地从一种格式转换成另一种格式并不足以解决问题。进行简单的格式转换 或移植不能解决GIS互操作问题的时候,FME这样的空间ETL工具就显示出其价值。
  作为一个空间ETL工具,FME能够从一个数据库(data store)中提取数据,并把它转换成所需的投影、格式和视图,然后提供给发出请求的应用程序、或装载进另一个数据库(data store)。新生成的数据既可以作为临时用途提供给最终用户或应用程序,也可以作为永久性数据移植/转换项目的一部分结果。总的来说,空间ETL就是让用户“在适当的时间、以适当的形式、获得适当的数据”。
  FME真正有别于其他互操作手段的特点,是它在数据格式转换的同时也能进行数据模型的转换。 FME提供了一个联系不同系统的“宽通道”,允许在数据转换的过程中对数据模型进行重构。


FME:如何使GIS文件格式不再成为麻烦?

  在传统的GIS文件格式转换中,连接一个数据源到另一个数据源的是“窄通道”,属性数据和空间数据被强制从有限的数据模型通过;这个数据模型仅仅支持一些基本的概念,这使得它只能给数据增加少量价值,或者根本无法实现增值;但它为数据转换提供了简单快捷的方案。
  FME实现了“语义转换”(宽通道转换),它的重点是按照最终用户或系统的要求改变数据的视图(changing the view of the data)。FME不是简单的从一种格式到另一种格式的转换,而是完全在一 种通用格式上工作,并且注重提供各种模块(providing building blocks)来帮助用户操纵数据并转换为需要的形式,其中格式的改变只是数据转换过程中的一小部分工作。语义转换提供了一个引擎,能够分别对输入或输出数据重新进行定义。支持这个引擎的,是FME所提供的一个非常丰富的数据模 型,它比各种专用格式所支持的数据模型要更丰富,并且具有内部一致性和可扩展性,从而实现很高 程度的数据重新定义。
  由于提供了底层丰富的数据模型,以及强大的、与格式无关的、支持超过100种格式的空间数据 转换引擎,完全可以说在FME中“CAD和GIS文件格式不再是麻烦”。除了格式转换能力之外,FME还 通过其内置的“函数”(Functions)和“分类机”(Factories)提供了一系列的数据处理功能。这些功能可以用于在数据转换的过程中进行图形数据的操作(如构面或连线),或生成新的属性(如长度或 面积)。FME提供了超过65种函数(作用于单个空间对象)和超过47种分类机(每次作用于多个空间 对象)。译注:最新版本的FME早已不止这两个数字。

GIS互操作:“SAFE”之路
  FME有八个不同的套件版本,分别满足用户的不同需要。每个套件版本都包括三个核心组成部分: FME Workbench(工作台)、FME Universal Translator(通用转换器)、以及FME Universal Viewer(通用浏览器)。“FME通用转换器”是一个强大的数据转换软件,其界面支持数据的拖放,使用户可以很容易地实现数据的转换并存储成120多种不同的格式(其中包括一系列OGC标准格式)。如果用户需要自定义数据转换过程,他们可以使用“FME工作台”,它提供了图形化的数据流编辑环境,使极其复杂的数据处理任务都变得轻而易举。“FME通用浏览器”可以快速地浏览各种格式的数据,包括其中每个图形元素的全部资料。在利用FME工作台和FME通用转换器执行转换之前,用户可以预览要转换的数据的属性信息和图形信息,——能够预览数据是非常理想的。FME支持4400多种坐标系统,它们包括各种投影、椭球体和水准面参数。
  函数(Functions)和分类机(Factories)是FME提供给用户的基本模块,用于实现复杂的要素处理功能。函数提供了一种灵活的方式,能够在转换的同时对要素执行特定算法的操作,这有力地增 强了FME的转换功能;分类机则使得FME可以对要素的集合进行处理。  
  函数(Functions)和分类机(Factories)是FME提供给用户的基本模块,用于实现复杂的要素处理功能。函数提供了一种灵活的方式,能够在转换的同时对要素执行特定算法的操作,这有力地增强了FME的转换功能;分类机则使得FME可以对要素的集合进行处理。
  为了实现要素的格式转换,FME把空间要素看成是与二维或三维图形相关联的一组属性名称和属 性值的集合。FME对属性的类型和属性值没有任何限定,属性名由一个或者多个ASCII字符组成。典 型的FME数据转换由一系列规则进行控制,它们指定了数据转换的原则和变换操作。“映射文件”是 FME的语言,它可以通过多种方法生成,也可以使用记事本(Notepad)等简单的程序进行编辑。映射文件决定了数据转换过程中FME各个模块要执行的操作。要素从原始系统到目标系统的变换完全是由语义映射文件中指定的规则所控制的。


图1 FME体系结构

  
   FME是一种与GIS格式无关的空间ETL工具,它读取和转换数据的方法与市场上常见的各种GIS 转换程序是不同的。FME每次执行空间ETL操作并读取数据集时,每一个读入的要素都被带有“要素 类”(Feature Type)、“ 要素属性”(Feature Attributes)和“要素图形”(Feature Geometry)。“要素类”反映了要素在数据集中的分组情况,它与格式有关;“要素属性”包括了用户属性数据、与格式相关的属性数据、和FME内部的属性数据;“要素图形”则告诉FME被读取和转换的要素所具有的图形特征。函数和分类机增强、增加了复杂的要素处理能力,使得数据集能够变换为用户或应用程序所需 要的结构。




CAD到GIS互操作的案例:“SAFE”之路
  下面将讨论一个CAD到GIS的互操作案例。这是一个简单的例子,使用的CAD格式是Bentley公 司的MicroStation DGN(v7),GIS格式则是MapInfo的TAB。我们的例子中使用的MicroStation DGN
  文件包含了一个城市的图斑和其它基础图的数据,这些图形要素的属性信息存储在Microsoft Access中,并通过DGN图形元素上附加的唯一的“MSLINK”值相关联。我们的目标是将这个数据转换为 MapInfo的TAB格式。很多常见的GIS转换程序都可以实现这个功能,但是如果要进行增值处理,毫 无疑问,FME才是合适的工具!
  我们可以看看用户在两个系统之间转换数据时,通过指定函数和分类机所能实现的复杂的要素处理能力,包括以下几类:
  计算操作:计算出一个值并赋予要素的某个新属性项。例如:可以用来计算DGN文件中的图斑多边形的面积,并把它添加为MapInfo TAB文件中的一项属性。
  集合操作:可以对要素集合进行操作,要素集合可以被替换为根据这些要素生成的新要素,同时把它们的属性或图形进行合并,或者改变它们的顺序。例如:如果用户要求MapInfo TAB文件中的图斑多边形按照图斑属性表中的面编码进行聚类,FME中的“聚合器”(Aggregator)就可以用来在从DGN写 入MapInfo TAB格式时对多边形进行组合。


图2 FME中要素的典型生命周期

数据库操作:支持与外部数据库的交互,例如ODBC、Access MDB、以及直接的Oracle SQLNet等。FME可以从外部数据库读取信息,并在转换的过程中加入要素流,或者合并到要素上。例如:为 了从MS Access中提取DGN文件中图斑多边形的属性,可以从中读取MSLINK字段的值,然后获得相应 的属性数据,并写入MapInfo TAB文件。

过滤操作:根据对要素的图形和/或属性的测试结果,将要素分别组织到不同的目标中。例如: 用户可以根据存储在MS Access属性表中的“税收类别”(tax category)字段对图斑多边形进行分类过滤,并且只将特定类别的图斑写入MapInfo TAB文件。利用“属性过滤器”(Attribute Filter)或“条件测试器”(Tester)可以实现这一功能。

图形操作:对单个要素或要素集的图形数据进行处理。FME提供了广泛的图形功能,包括:叠加、 捕捉、线标注、裁剪和相交处理等等。例如:DGN文件中的地块数据没有建立拓扑关系,利用FME中 的“拓扑构造器”(Topology Builder)就可以为转换到TAB格式的要素自动创建拓扑。

编辑操作:独立地修改(编辑)单个要素的图形或属性。例如:对DGN文件中的路网按100米生 成缓冲区,以便在MapInfo中可视化地分析距离道路中心线100米范围内的图斑。在FME中就可以使 用“缓冲区生成器”(Bufferer)来处理DGN文件中的道路中心线,并将生成的路网缓冲区图层写入 MapInfo TAB文件,然后在MapInfo中进行分析。

字符串操作:用来处理属性中的字符串,如:查找、替换、改变大小写、提取字符编码类型等 等。例如:我们发现图斑属性表中的土地利用类型编码存在录入错误,居民地类型编码“RL”被错写 成了“RC”,这需要在转换时进行改正。利用FME中的“字符串替换器”(StringPairReplacer),可以 很容易完成这个改正,而无需到MapInfo中编辑。


结 论:
  上面的例子对于FME如何实现GIS互操作的介绍只不过是简单介绍,FME还有很多复杂的功能, 能帮助世界各地的用户在数据转换方面领先于别人。这不仅是因为FME打破了格式的壁垒,还因为它 在转换的同时能够实现数据增值、按用户或应用系统要求的结构来提供数据。FME也许不能解决所有 的问题,但它肯定是今天GIS界在面对地理空间互操作问题时的重要手段之一。现在需要的是建设性 的、创造性的意见,大家应该一起努力来应用FME等GIS互操作工具,对付这个建设地理空间数据基 础设施时的拦路虎。
  尽管很多国际知名机构已经付出了不少的努力,例如:开放地理信息系统协会(OGC),全球空间数据组织(GSDI),欧洲空间信息机构(INSPIRE),国家空间数据机构(NSDI)等,GIS互操作仍然还 是一个远期的目标。
  实现GIS互操作的路还很长,但在“SAFE”的GIS互操作之路上,“GIS格式已不再成为麻烦”!

致 谢
  深切地感谢Safe公司的产品开发副总裁Dale Lutz先生、以及Safe公司总裁Don Murray先生,是他们一直在鼓励我深入研究这个课题、以及表达我对空间ETL工具和FME的认识。
  特别感谢Safe公司技术支持组,感谢他们的优秀支持,以及他们FME技术经验的分享。
  感谢印度Pixel Infotek公司的总经理P.V.Rai先生的鼓励和精神支持。
  最后衷心感谢我在Anna University城市系统开发系的导师,是他把我领进了GIS世界。

参考文献:
National Spatial Data Infrastructure
http://www.nsdiindia.org/about/back.htm
Joe Francica (2003), .Product Overview: Safe Software's Feature Manipulation Engine (FME)., Directions Magazine http://www.directionsmag.com/features.php?feature_id=82 Directions Staff (1999), Data Formats Don’t Matter, Directions Magazine http://www.directionsmag.com/article.php?article_id=33
Brig V. N. Nerikar, Development of a National Geospatial Data Infrastructure. Theories and Technologies, GISdevelopment http://www.gisdevelopment.net/policy/india/technology/intech037.htm
White papers on the theories behind semantic data translation and the processes, Safe Software Inc http://www.safe.com/solutions/whitepapers/index.htm
Preetha Pulusani (2003). Interoperability. Trend or Reality? GIS development http://www.gisdevelopment.net/magazine/gisdev/2003/september/itr.shtml