IndoorGML介绍
Ki-Joune Li、Jiyeong Lee、Sisi Zlatanova等编写
Walter Yu 译
IndoorGML是一种室内空间信息表达的OGC标准,是一种开放的数据模型和XML模式。它提供了一种表达和交换室内空间信息的通用框架,是OGC GML3.2.1的一种应用模式。
内容目录:
1、目的(Motivations)
2、IndoorGML的基本概念(General Concepts of IndoorGML)
3、结构化空间模型(Structured Space Model)
4、多层空间模型(Multi-Layered Space Model)
5、外部引用(External References)
6、锚节点(Anchor Node)
7、子空间(Subspacing)
8、模块(Modularization)
1、目的
与室外空间相比,室内空间在许多方面具有较大差异。空间信息的基本概念、数据模型和标准需要重新进行定义,以满足室内空间应用的需求。不同的应用对室内空间信息的需求也不同。通常,室内空间信息应用可分为以下两大类:建筑组件(building components)和室内设施管理;室内空间用途(Usage of indoor space)。
建筑建造管理和设施管理属于第一类应用。同时,第一类应用主要集中在建筑组件,如屋顶、墙;第二类应用主要集中在室内空间静态或动态要素的功用和定位。第二类室内空间信息需要表达空间组件,如房间、走廊、空间约束(如门的约束)。例如,在室内位置服务、室内路径分析或室内地理标签服务都属于第二类应用。因此,这个标准的主要目的是为了定义一种室内空间信息的框架来定位室内空间静态或移动的对象,并提供室内空间与对象位置相关的空间信息服务,而不仅仅是表达建筑结构组件。IndoorGML主要提供的功能包括:表达室内空间属性信息和提供室内空间要素的参考系(Providing spatial reference of features in indoor space)。
室内导航应用对标准化的需求非常迫切,例如室内位置服务、路径服务、应急响应等,因此IndoorGML 1.0主要面向室内导航应用。其他方面的需求(如室内设施管理)将在IndoorGML后续的版本中进行考虑。
2、IndoorGML基本概念
室内空间与室外空间最大的区别在于室内空间具有更加复杂的约束,比如走廊、门、楼梯、电梯等,另外道路网络也具有许多约束。这意味着室内空间信息建模和标准化的最关键问题就是合理的表达室内约束。
单元空间(Cellular Space):室内空间由一组单元空间组成,将这样的空间定义为室内空间中最小的组织或结构单元[Wordnet, Princeton University, 2010]。单元空间具有一些重要的属性。首先,每个单元具有唯一的标识,称作ID,比如房间号。其次,每个单元与其他单元有共用的边界但与其他单元不存在覆盖关系(Overlap)。另外,虽然对于许多精确的位置可以用(x,y,z)坐标表示,但单元空间中的位置也可以用单元标识来表示。
语义表达(Semantic Representation):语义是单元的一个重要特征。在IndoorGML中,语义有两种作用:提供分类、标识单元和确定单元之间的连通性。用语义来定义单元对导航非常重要。例如,通常在拓扑空间中可以将单元分类用来区分可导航单元(如房间、走廊、门)和不可导航单元(如墙、障碍物)。
几何表达(Geometric Representation):室内空间2D或3D要素的几何表达不属于IndoorGML的重点。因为这些已经在ISO 19107、CityGML和IFC中进行了详细的定义。为了保证IndoorGML自身的完整性,根据ISO19107中定义的数据模型,在IndoorGML中将对象的2D或3D几何作为一种可选内容。在IndoorGML中有三种可选方式来表达单元的几何,如图1所示。
图1 IndoorGML中单元几何表示方法
1)外部引用(External Reference):为了不在IndoorGML中显式的表达几何,在IndoorGML文档中仅仅包含在其他数据集中已经定义的对象的外部链接,称作c.xlink,c是IndoorGML中的一个单元。其中在外部数据集中定义的对象包含了几何信息。IndoorGML中的单元与其他数据集中的相关对象存在1:1或n:1的映射关系。
2)IndoorGML中包含几何(Geometry in IndoorGML):单元的几何表达包含在IndoorGML文档中,称作c.geom,c是IndoorGML的一个单元。其中3D中的GM_Solid 和2D中的GM_Surface已经在ISO19107中进行了定义。体(Solid)中或面(Surface)中洞(Holes)的情况也包含在该标准中。
3)不包含几何(No Geometry):在IndoorGML文档中不包含几何信息。
拓扑表达(Topological Representation):拓扑是单元空间和IndoorGML中重要的组成部分。节点关系结构(Node-Relation Graph, NRG)[J.Lee 2004]能够表达室内对象之间的拓扑关系,如邻接、连通等。NRG能够抽象、简化、表达室内环境3D空间(如建筑中的房间)之间的拓扑关系。它能够通过一种图结构表达邻接、连通关系,但不包含几何属性。在室内导航和路径分析系统中能够有效的解决复杂的计算问题。对偶性(Poincaré Duality)为将室内空间映射为NRG来表达拓扑关系提供了一种理论基础。利用对偶性理论可以将室内空间转换成拓扑空间中的NRG。通过组合(或逻辑)拓扑网络模型简化了室内空间3D的复杂空间关系[25]。根据对偶性理论,能够将N-维的原空间(Primal Space)中的一个k-维对象映射为对偶空间中的(N-k)维的对象。那么三维原空间中的三维体对象(如房间)就可以映射为对偶空间中的节点(0维对象)。两个体对象共享的2D面可以转换为对偶空间中的一条连接两个节点的边。
多层表达(Multi-Layered Representation):单个室内空间可以根据语义从逻辑上划分为不同的单元空间。例如,可以将室内空间表达为一个由房间、走廊和楼梯组成的拓扑单元空间,同时,也可以根据Wi-Fi和RFID传感器覆盖特征将室内空间分别表达成不同的单元空间。正因为如此,IndoorGML支持将室内空间表达成不同单元空间的多个表达层。每个语义表示层对相同的室内空间进行了不同的划分,每一种划分形成了单元空间的一个独立的层,如图2所示。
图2 室内空间多层表达
3、结构化空间模型(Structured Space Model)
IndoorGML主要基于结构化空间模型(Structured Space Model)和多层空间模型(Multi-Layered Space Model,MLSM)这两种概念框架。其中,结构化的空间模型定义了每个空间层一般的结构(Layout),它独立于其他特定的空间模型。每个层划分为四个部分,如图3所示。
图3 结构化空间模型
在图3中,结构化的空间一方面划分为原空间(Primal Space)和对偶空间(Dual Space),另一方面分为几何和纯拓扑。这种结构是所提出的室内空间模型的框架基础图中上下两部分遵循建模现实世界对象几何要素的标准ISO 19107,但是从原空间到对偶空间的转换就没法按照这个标准进行建模或者描述。IndoorGML中的拓扑关系(如邻接、连通)没有按照ISO19107中的拓扑方式进行定义,而是在IndoorGML数据模型中进行了显式的关联(association)。在结构化空间模型中,3D或2D空间对象之间的拓扑关系在拓扑空间中进行了表达(如图的下半部分)。通过对偶变换,原空间中的3D单元映射为对偶空间中的节点。3D单元之间的拓扑邻接关系转换为对偶空间中连接节点对的边。此外,NRG中的节点叫做状态(State)、边叫做转移(Transition)。激活状态(Active State)表达了NRG中的一个节点、同时表示了当前所定位对象所在的空间区域。对象一旦进入一个拓扑连通区域,对应着NRG中的另外一个节点,这样就产生一个新的激活状态(Active State)。NRG表达了拓扑空间中3D空间对象之间的拓扑关系,这是一种逻辑NRG,而将这种NRG嵌入到欧式空间(IR3)就形成一种几何NRG。
图3表示了这种结构化空间模型的数据模型UML图。SpaceLayer表达了一个单独的解释和一个划分的层(A SpaceLayer represents a separate interpretation and a decomposition layer and it is composed of States and Transitions which represent nodes and edges of NRG for dual space, respectively)。它由状态(States)和转移(Transitions)组成,其中状态和转移分别表达了对偶空间NRG的节点(Nodes)和边(Edges)。每一层的NRG和状态-转移图通过SpaceLayer实现。注意:当前版本的IndoorGML支持对偶空间的逻辑NRG和几何NRG。正如上面所提到的,NRG作为结构化空间模型的一部分,在IndoorGML模型中对其进行了实现。在对偶空间中,当State和Transition与Geometry 类的基数是0时,用逻辑NRG进行表示;而当基数为1时,用几何NRG进行表示。
图4 结构化空间模型的数据模型
4、多层空间模型
结构化空间模型的概念可以进一步扩展为多层空间模型(Multi-Layered Space Mode,MLSM)。多层空间模型提供了一种将多种不同的语义空间结构和划分层结合在一起的方法,以支持所有的室内信息服务。
正如上面所讲,同一室内空间在不同的应用需求中通常具有不同的语义信息。这样就可将同一室内空间划分为不同的空间,每一种划分形成一种NRG。例如拓扑空间、Wi-Fi传感器空间和RFID传感器空间形成独立的结构化空间,这样就形成三个独立的层,如图5所示。
图5 多层空间模型
多层空间模型中层之间通过层间关系互联。如图6中的例子,有三个空间层,每个层构成一个NRG。在拓扑层中,节点表达了导航对象可能的状态,与原空间中的单元(如房间)相关联;而边表达了状态转移(如对象从一个空间移动到另一个空间)。这些状态转移(State Transition)与原空间中单元之间的连通关系相关联(如邻居房间通过门连通)。在传感器空间中,NRG与上面所讲的NRG有一些小的区别。节点也是表达了单元(如整个Wi-Fi发射器的覆盖空间),而边表示了从一个Wi-Fi覆盖空间转移到另一个相邻的Wi-Fi覆盖空间。由于这些层覆盖了相同的物理空间,因此这些独立的对偶图可以结合在一起形成一个多层图。
图6 多层空间模型NRG
无论是拓扑空间还是传感器空间,假设每一个空间模型都是基于空间不相交(non-overlapping)划分的,那么一个导航对象在某一时刻只属于一个单元,这样就只有一个状态被激活。因此,在给定的时间一个对象实际上同时处在每个层中的一个单元(称作状态State)。那么整个状态就可以通过结合所有空间层中的激活状态来进行表示。
然而,只有不同层中的一些特殊状态组合才是有效的,能够同时激活。这些组合可以通过不同层之间连接节点的附加边表达。将这些边成为连接状态(Joint Edges),可以从不同层相交的单元几何对中导出来。如果两个相关单元的内部相交不为空,那么就在两个节点之间插入一个连接边(Joint Edge)。因此,根据8关系模型[OGC Simple Feature Geometry],连接边(Joint Edges)可以表达不同空间层两个单元之间除了"不相交"(Disjoint)和"接触"(Touch)外的其他所有空间关系,这样就可以表示层之间的关系(Inter-Layer Relationships)。
在IndoorGML中,以多层空间表达方式表示的空间模型,叫做多层空间模型(Multi-Layered Space Model),可以通过图7中的MultiSpaceLayer 类来实现。MultiLayeredGraph由SpaceLayers和InterLayerConnections组成。SpaceLayer表达了每一个空间层(如拓扑空间层、传感器空间层等),形成了由对象状态(State)和转移(Transition)组成的NRG。层间关系通过InterLayerConnection来实现。在图6中,{(1,A,Within), (4,A,Within), (3,A,Cross), (3,AB,Cross), (3,B,Cross), (2,B, Within), (A,R1,Contains), (B,R2,Contains), (3,R1,Contains),(3,R2,Contains)},这些都是InterLayerConnection类的实例的集合。每个实例表达了图2中不同空间层的两个单元之间的关系。MultiSpaceLayer由SpaceLayer和InterLayerConnection聚合而成。
图7 多层空间模型的数据模型
5、外部引用
IndoorGML主要集中在单元空间和拓扑的表达,没有包含室内要素的几何和详细的语义信息。因此,IndoorGML提供了一种方法从外部数据集中引用已经定义好的对象,如CityGML或IFC。不用的应用领域中,室内要素可能具有不同的几何和语义表达模型。例如,在机器人领域室内空间通常表达成网格模型(Grid Model)。通过从IndoorGML中分离出特定领域的模型并提供外部引用的方法,可提高模型高层的灵活性。
6、锚节点(Anchor Node)——室内与室外的连接
室内外空间之间的连接是室内空间信息表达的一个重要需求。IndoorGML提出了一种锚节点(Anchor Node)的概念来连接室内外空间。利用附加的拓扑连接室内外空间。每个室内空间至少有一个入口,可以用它来连接室内外空间。在IndoorGML中,入口在室内空间拓扑图中表示为一个特殊的节点,来连接室内外空间,如图8所示。将其称作Anchor Node,由于它包含了室内CRS到室外绝对CRS转换的附加信息,因此区别于拓扑图中的其他节点。
图8 锚节点(Anchor Node)
锚节点(Anchor Node)中包含的属性支持室内外空间的无缝转换。
1)室内道路网的外部参考:Anchor Node包含了地面道路网络中一个节点的外部参考信息,与Anchor Node相连接,如图8所示。注意,Anchor Node与室外地面道路网的节点是双向连通的。Anchor Node不仅在IndoorGML文档中进行了定义,同时也可在外部数据集(如室外道路网)中也是可以访问的。例如,当一个车辆进如一栋建筑时,可以通过地面道路网中的节点的外部参考得到这栋建筑的IndoorGML文档。
2)转换参数:很多情况下,室内空间通常是相对参考系,需要的时候可根据室外绝对坐标系将室内几何中的每一个点进行转换。Anchor Node包含了转换参数:
3)其他属性,可能包含一些额外的信息,如Wi-Fi室内定位中的Radio Map。
7、子空间(Subspacing)
室内空间通常是一种层次(Hierarchical)结构,在许多情况下都需要把对室内空间进行划分以反映其层次结构。根据空间对象之间的连同关系,对走廊或大厅等要素进行精细的划分以表达室内空间的几何属性。
子空间的例子如图9所示。以图9-(a)中的走廊为例,NRG中的节点n6表示了室内空间中的一段走廊,这个节点作为一个主节点(Master Node),可以将其转换为一个子图,仍然保留了走廊分区空间之间的连通关系,如图9-(c)。即将原NRG中的节点n6转换为n6-1和n6-2,图9-(c)中转换后的NRG的边e1,表达了二维区域(如走廊)的子图。
图9 子空间例子
IndoorGML以多层空间模型的方式支持子空间划分,反映了室内空间的层次(Hierarchical)结构,如图10所示。NRG图G1是包含节点n6的原图,而G2是包含划分后的节点n6-1和n6-2的转换后的图。层次结构就可通过多层空间模型层间连接的方式表达出来。
图10 多层空间模型层次结构
8、模块化(Modularization)
根据OGC模块化规范标准,将整个IndoorGML分解成一个核心模块和其他扩展模块,其中扩展模块依赖于核心模块。因此,IndoorGML数据模块是由一个核心模块和若干个扩展主题模块组成(如图11)。核心模块包括一些基本的概念,每个扩展模块包含了特定主题领域的内容,如导航应用(如行人、轮椅、机器人)。每个IndoorGML模块定义为一个具有独立或全局XML目标命名空间的XML模式文档中。根据模块之间的依赖关系,每个模块中可能会引入相关的IndoorGML其他模块。
图11 IndoorGML模块
IndoorGML核心模块定义了IndoorGML数据模型的基本概念和组件,扩展模块包含了IndoorGML语义建模的一些内容。在核心模块基础上,扩展模块包含了IndoorGML数据模型中一个独立的主题组件。IndoorGML首先引入了一个主题扩展模块,称作IndoorNavigation模块。IndoorGML模块之间的依赖关系如图11所示。每个模块用一个包来表示,包名和模块名一致。
9、参考资料
[1] http://indoorgml.net/
[2] Official Schemas. http://schemas.opengis.net/indoorgml/1.0
[3] OGC. OGC IndoorGML version 1.0. OGC 14-005r3.2014-1202. http://docs.opengeospatial.org/is/14-005r3/14-005r3.html
[4] Becker, T., Nagel, C., and Kolbe, T. H., A Multilayered Space-Event Model for Navigation in Indoor Spaces, Lecture Notes in Geoinformation and Cartography – 3D Geo-Information Science, 2008.
[5] Becker, T., Nagel, C., and Kolbe, T. H., 2009. Supporting Contexts for Indoor Navigation using a Multilayered Space Model, Tenth International Conference on Mobile Data Management:systems, services and middleware, 2009. MDM '09 ; 18 – 20 May 2009, Taipei, Taiwan. Online available