面向地理分析模拟的城市小区场景数据组织方法
2018-08-27乐松山校大卫孙菱志芦宇辰汪灵珊郑培蓓闾国年
陶 虹,乐松山,校大卫,孙菱志,芦宇辰,汪灵珊,郑培蓓,4,闾国年
1. 南京师范大学虚拟地理环境教育部重点实验室,江苏 南京 210023; 2. 江苏省地理环境演化国家重点实验室培育建设点,江苏 南京 210023; 3. 江苏省地理信息资源开发与利用协同创新中心,江苏 南京 210023; 4. 苏州工业园区测绘地理信息有限公司,江苏 苏州 215027
城市是人口最为集中、社会经济活动最为频繁的区域,城市环境的建模与模拟研究一直都是地理学相关研究领域的重要研究方向[1-2]。在我国,城市小区(城市居住小区)是居住功能的主要承载体,其形式规整、自成体系,且数量巨大、发展迅速,是我国城市空间的基础地理单元[3-4]。近年来,城市小区的积水内涝、停车难、噪音影响、光污染等问题不断涌现,对城市小区的精细设计、科学建设及管理运维的需求越来越迫切[5-7]。如何利用计算机技术、地理信息、虚拟地理环境等相关理论和方法来支撑城市小区环境的综合模拟,辅助人们了解小区全貌、精确管理多种数据资源、进行可靠的小区运维决策,是智慧城市微观化、精细化应用与发展的必然趋势[8-10]。
当前在城市空间的数据模型构建与应用方面的研究已经取得了系列的成果,其中以CityGML和BIM技术的发展为代表。基于CityGML数据模型可以完整灵活地表达城市三维对象的语义、几何、拓扑、属性等信息,并且通过定义5种不同细节层次(LOD),来表达城市三维空间不同尺度的信息,并保持语义和几何的一致性[11-12]。此外,由于建筑物在城市空间中的重要性,研究者在针对BIM数据模型的研究中提出了工业基础类IFC数据模型(industry foundational classes),利用IFC数据模型对建筑构件的语义表达能力,能有效地支撑建筑建设工程管理、三维可视化建模以及结构分析等应用[13-14]。以上数据模型分别从城市整体和建筑主体来进行空间信息建模,但是,相较于宏观的城市尺度以及微观的建筑物尺度,中观尺度城市小区建模与分析研究还相对匮乏。
对于城市小区环境的建模分析和应用,当前研究主要是从特定问题和特定研究领域出发,通过构建相应的分析模型对小区的自然、社会、人文等环境进行模拟。例如,对临街城市小区的交通噪声分布模拟[15]、城市小区的日照模拟[16]、城市小区内的管网分析模拟[17]、城市小区的降水模拟[18]等。而对于城市小区环境的综合模拟,则难以通过构建单一模型来完成对小区环境各个层面的完整表达。在虚拟地理环境(virtual geographic environment,VGE)研究领域,将地理分析模型作为支撑地理环境动态表达的重要资源,通过不同的数据模型与地理分析模型集成,可以解决复杂地理问题,形成诸多集成建模平台相关的成果[19-23]。城市环境作为地理环境的重要组成部分,其复杂程度高且受人为干预强烈,当前针对城市6小区环境分析模拟的集成建模研究较少,阻碍了在小区尺度上对城市环境问题的综合求解与分析。
针对此,本文从城市小区环境的分析模拟需求出发,以构建一种能够有序表达小区环境信息的小区建模场景为主要目标,设计城市小区建模信息的数据结构化组织方法。本文所构建的小区建模场景,区别于小区三维可视化表达场景,是一种服务于城市小区环境分析模拟的综合数据仓库。在此基础上,本研究通过设计小区分析模型与小区建模场景的集成运行方法,从小区建模场景中抽取出适合分析模型运行的数据内容,从而支撑在所构建的小区建模场景上对小区环境进行模拟和分析。
1 城市小区建模信息的结构化组织
城市小区环境的分析模拟涉及多个学科和专业,在研究对象、研究方法和研究尺度上都存在较大的差异性。不同建模研究对于小区数据的抽象方法、组织方式和详细程度也都各不相同。这些建模应用的特征都对小区集成建模模拟研究提出了更高的要求,尤其是如何将小区环境信息完整表达出来以适应于不同的建模需求。本文从地理信息建模的视角认识小区,按照层次化的组织方式来构建城市小区建模场景,形成支撑不同分析模型应用的数据基础。
1.1 城市小区建模场景的基础结构
城市小区内包含了各种各样的地物,既有与人工设计相关的建筑、管网、道路等数据,也有与自然环境相关的气候、水文、地质等数据,还有与人文环境相关的人口、社保、户籍等数据。此外,根据城市小区建模模拟的研究对象不同,城市小区数据还需要跟纷繁多样的建模专业数据相关联。本文按照小区系统(system),小区系统要素(object)和小区系统要素关系(relation)3种不同的对象类型来表达小区环境中的各种建模信息,并通过对这3种对象的层次化组织来构建城市小区建模场景。
(1) 小区系统是从功能系统的视角对城市小区进行抽象和划分,是指在一定的结构组织下通过相互协同共同完成特定功能定位的小区地理实体集合。小区系统中的要素除了具有地理位置外,它还具有在系统结构中的位置与功能特性。小区的系统构成与小区功能要求密切相关,城市小区主要有使用(居住、通行、交往)以及卫生、安全、美观等功能要求。本文在城市小区建模场景中定义了6个基本的小区系统:建筑系统、通行系统、管线系统、景观系统、防灾系统和卫生系统。此6个基本的小区系统内部均可包含相应的子系统来对城市小区空间进行不同细节层次的表达。
(2) 小区系统要素是指按小区系统组织的小区内部各个地理实体的对象化表达,也是小区建模应用中的基本组成元素,它具有明确的语义属性、空间属性和行为属性。小区系统要素的语义属性是其在解释层面的信息。例如,小区内一条人行走道要素的描述中,其语义属性包含名称、长/宽度、建造材料等属性信息。小区系统要素的空间属性是对某个小区系统要素进行空间化的描述。例如,在小区某个建筑物要素的描述中,包含该建筑物的几何轮廓信息、楼层分户几何信息、建筑高程信息等。小区系统要素的行为信息是通过不同的行为名称和量化指标来指明其对小区环境的影响。例如,小区内某块草地要素的描述中,其对降水的截留作用可以影响整个小区的降水模拟,此信息用量化的雨水截留系数来表达。
(3) 小区系统要素关系是将小区系统间的关系、小区系统要素间的关系、小区系统与小区系统要素之间的关系、小区系统与外部城市环境之间的关系等进行统一管理和表达的对象。在小区系统要素关系中,主要包含有语义关系、空间关系及作用关系。语义关系用于表达不同小区系统/要素在语义层面的关系,如绿化中的银杏、香樟都属于乔木,两者在语义上具有类属的关系。空间关系用于表达不同小区系统/要素在空间上的拓扑关系、距离关系和方位关系等,如建筑物与小区地块之间的相交关系等。作用关系用于表达小区系统/要素间复杂的相互影响关系,如小区道路对小区消防系统的影响作用等。
在城市小区建模场景中,小区系统-要素-关系三者按照层次化的结构进行组织。在小区系统中包含相应的子系统,在小区系统要素中包含相应的子要素,在小区系统要素关系中引用了建模场景中定义的小区系统或者小区系统要素。
1.2 城市小区建模场景的内容表达
在对城市小区进行集成建模模拟的研究中,由于专业领域的不同、建模方法的不同及研究者研究视角的不同,不同的模型都有着自己特定的数据需求。在地理建模领域,针对跨学科、跨领域地理模型的共享、重用与集成需求,研究者提出了统一数据表达与交换模型(universal data description & eXchange model,UDX),通过统一的Node-Kernel结构来描述地理模型所涉及的多源异构数据内容[24-26]。在UDX统一数据表达与交换模型中包括两个具体的实现:UDX Data和UDX Schema分别用于存储数据内容和对数据内容进行解释,两者在内容结构上保持一致。利用UDX的这种自描述特性可以在对城市小区内各地物要素进行可扩展的、完备的表达,并能够与具体的分析模型实现良好的对接。因而,本文选择UDX作为城市小区建模场景中对数据内容表达的基础数据结构。
如图1所示,本研究设计了小区系统抽象类AbstractSystem、小区系统要素抽象类AbstractObject和小区系统要素关系抽象类AbstractRelation作为小区建模场景表达的主要结构。在此3个表达结构中,通过UDX_Data来组织数据内容,通过UDX_Schema来组织数据描述信息,从而实现对城市小区环境中的建模信息进行对象化的表达。
在小区系统抽象类AbstractSystem的具体实现中:①提供获取该系统唯一ID的方法(GetSystemID),从而可以与其他系统进行区分。②提供获取该系统常用名称的方法(GetSystemName),从而易于建模应用者理解此系统的功能。③提供获取该系统关联的子系统的方法(GetSubSystem),从而将小区建模信息系统按照层次化的方式进行组织。④提供获取该系统下所有的要素的方法(GetObject),从而可以将零散的小区地物按照系统的方式进行管理。⑤提供获取相关建模数据的方法(GetContent),所获取的数据按照UDX_Data返回。⑥提供附加小区系统要素关系的方法(AttachRelation),对于附加到小区系统中的关系对象,主要是用AbstractRelation的具体实现来处理的。在小区系统的对象化表达结果中,除了对具体的数据内容进行存储,还提供了相应的结构化描述文档来对小区系统的建模信息进行描述。
图1 城市小区建模场景的结构模型Fig.1 Structure of the urban residential region modeling scene
在小区系统要素AbstractObject的具体实现中:①提供获取该要素唯一ID的方法(GetSystemID),从而可以与其他要素进行区分。②提供获取该要素常用名称的方法(GetObjectName),从而易于建模应用者理解此要素的概念。③提供获取该要素关联的所有小区系统对象的方法(GetParentSystem),具体实现的小区系统要素对象都可以关联到多个不同的小区系统对象中。④提供获取该要素对象关联的所有其他要素对象的方法(GetRelatedObject)。所谓关联的其他要素对象,是指在一个要素内部进行细化描述的子要素,每个小区系统要素对象也是按照层次化的方式进行组织和管理的。⑤提供获取相关建模数据的方法(GetContent),此方法与小区系统对象的设计一致,所获取的数据按照UDX_Data返回。⑥提供附加小区系统要素关系的方法(AttachRelation),此方法也与小区系统对象的设计一致,对于附加到要素对象中的关系对象,主要是用AbstractRelation的具体实现来处理的。
在小区系统要素关系AbstractRelation的具体实现中:①提供获取该关系对象唯一ID的方法(GetSystemID),从而可以与其他关系对象进行区分。②提供获取该关系对象常用名称的方法(GetObjectName),从而易于建模应用者理解此关系对象的概念。③提供获取该要素关联的所有小区系统对象的方法(GetLinkedSystem)。④提供获取该要素对象关联的所有其他要素对象的方法(GetLinkedObject)。⑤提供获取相关建模数据的方法(GetContent),此方法与小区系统对象和小区系统要素对象的设计保持一致,所获取的数据按照UDX_Data返回。⑥提供注册关系操作接口的方法(RegisterOperation),此方法与获取相关建模数据方法(GetContent)配合使用。与系统对象和要素对象不同,关系对象的数据内容并不是显式存储,而是需要响应所关联的系统对象和要素对象的变化的。因而,对于关系对象数据的内容获取,需要按照所注册关系操作接口来进行动态创建。在关系操作接口中,主要提供输入系统对象和要素对象、输出关系计算结果的功能。
2 城市小区建模场景与分析模型的集成方法
本文所研究的城市小区建模场景,需要为建模者提供一个能够支持不同模型运行的建模数据仓库;基于建模数据仓库,研究者可以通过相应的数据抽取方法来获得适合分析模型运行的数据。因而,按照前文所述的城市小区场景的结构化组织方法,本文设计了相应的小区场景对象RegionScene(如图2(a)所示)来对相关的小区建模数据进行结构化的组织和管理,并为具体的模型集成应用提供所需的数据内容。
图2 城市小区场景对象与分析模型的集成Fig.2 Integration of the urban residential region modeling scene and geo-analysis models
在小区场景对象中是通过注册的机制来将不同的小区系统、要素和关系进行关联的。通过注册小区系统对象RegisterSystem的方式,将不同的小区系统关联到整个小区建模场景对象中;通过注册小区系统要素RegisterObject的方式,将不同的小区系统要素关联到整个小区建模场景对象中;通过注册小区系统对象RegisterRelation的方式,将不同的小区系统要素关系关联到整个小区建模场景对象中。
在与集成分析模型进行集成应用时,小区场景对象RegionScene中提供了获取场景ID的方法(GetSceneID,用于指明特定小区场景对象的唯一性,可以与其他小区场景对象进行区分),获取场景通用名称的方法(GetSceneName,用于为建模者提供某个小区场景对象的名称,该名称在不同场景对象中可以一样,主要通过场景ID来确定场景唯一性),获取小区系统的方法(GetSystem,建模者可以根据特定的研究需求从小区场景中获取相应的小区系统对象),获取小区系统要素的方法(GetObject,建模者可以根据特定的研究需求从小区场景中获取相应的小区系统要素对象),获取小区系统要素关系的方法(GetRelation,建模者可以根据特定的研究需求从小区场景中获取相应的小区系统要素关系对象)。
此外,在小区建模场景对象中还包含有注册建模视角的方法RegisterAspect和获取当前激活的建模视角的方法GetActiveAspect。注册建模视角RegisterAspect方法是用于建模者将特定的数据抽取方法和数据处理方法关联到整个小区建模场景中,获取当前激活的建模视角GetActiveAspect方法是用于告知建模者当前正在执行的建模数据抽取和准备流程。其中,建模视角对象通过继承建模视角接口IModelingAspect实现。在建模视角接口IModelingAspect中包含了当前模型所需数据关联的小区系统对象、小区系统要素对象和小区系统要素关系对象。如图2(b)所示,在注册到小区场景对象中的具体建模视角中,通过连接数据处理操作的ConnectOperation方法,引用外部的动态链接库(Dynamic Link Library,DLL)来实现具体的数据处理;通过外部回调的执行数据处理操作ConductOperation方法来驱动具体的数据处理流程;最后调用获取处理结果的ContentCallback方法来得到处理后的建模数据,从而支撑相关的模型执行计算。
在整个小区建模场景中,所有的数据内容都通过UDX_Data来进行表达,每个UDX_Data都关联相应的UDX_Schema对象来进行语义内含的描述。对于复杂地理对象的结构化表达,现有的研究主要是通过构建关系属性表的方式。受到集成建模的需求动态变化特性的影响,在这种关系属性表中往往需要不断的更改和添加新的字段内容。对于特定目标的小区环境建模研究而言,用关系属性表的方式来组织建模数据是适用的;然而,在不确定具体建模目标的城市小区集成建模模拟研究中,任何确定模式的关系属性在适应于一个建模应用的同时,在集成另一个建模应用时往往无法直接兼容。因而,本研究采用数据聚合的思路,从信息完备描述的角度,利用多个不同结构的UDX_Data对象来表达建模数据,不同UDX_Data对象之间可以通过节点来关联,而每个UDX_Data对象都拥有自己的UDX_Schema对象;从而使得对于一个小区建模对象而言,其建模信息的描述结构是一致的,而建模信息的内容是累积式的。根据不同的观察视角,可以对同一个建模对象形成不同层面的描述(用UDX_Data和相应的UDX_Schema表达)。
3 原型系统与试验验证
本文通过设计并实现相关的原型系统来对所提出的方法进行验证。在城市小区建模场景的构建方面,设计并实现了城市小区建模场景构建系统,通过交互式的方式将城市小区环境中的各种数据按照统一的组织结构进行表达,即构建城市小区建模场景。如图3所示,在城市小区建模场景构建子系统中,主要包含了对建模场景数据的浏览、加载、交互、可视化等功能。通过小区系统层次化管理的方式对小区建模场景中的系统-要素-关系对象进行组织。
图3 城市小区建模场景构建系统Fig.3 Platform for building an urban residential region modeling scene
在城市小区建模场景与分析模型集成应用方面,本文设计并实现了城市小区分析模型集成运行系统,如图4所示。主要用于接入小区建模场景数据源和接入不同的小区环境分析模型,配置模型运行所需的输入/输出数据,并可以对集成流程进行定制,实现基于小区建模场景的小区环境分析模型的集成与运行。
图4 城市小区分析模型集成运行系统Fig.4 Platform for integrating and executing geo-analysis models
本研究选取苏州市一个居住小区作为试验案例,对所设计的城市小区建模场景的构建方法进行实用性的研究。该小区占地面积约36 000 m2,各种类型的建筑物共有11栋,车行道、人行道32条,小区出口2个。构建小区建模场景的数据源包括各种相关的小区规划设计图(总平面图、竖向设计图、绿化及景观设计图和综合管线设计图等)、实测数据、城市基础地理数据等。
小区建模场景与分析模型的集成应用包括两个不同方向的建模案例:①利用已有的数字地形DEM分析模型和城市雨洪模拟模型SWMM之间的集成,来对该实验小区在实际运维中的排水管理给出相关预案性的分析结果;②利用RLS90噪声传播模型与城市小区场景数据的集成,来对该实验小区在街道噪声影响中状况进行模拟。集成案例中所涉及的主要模型的说明如表1所示。
表1 集成案例中的主要模型的说明
在所构建的城市小区分析模型集成运行系统中,加载案例小区的建模场景数据,并按照IModelingAspect接口对SWMM模型和RLS90模型分别实现相应的数据抽取方法。根据不同模型对数据内容的特定需求,从小区建模场景中抽取出相应的数据来支持其运行。基于此,在图5中给出了两个建模案例运行的效果图。
图5 城市小区建模场景与分析模型集成运行的效果Fig.5 Snapshots for integrating urban residential region modeling scene with geo-analysis models
4 结 论
针对城市小区环境综合分析模拟的需求,本文提出了城市小区建模场景的构建方法。将小区环境信息按照系统-要素-关系的结构进行组织,采用层次化和对象化的抽象方式来构建小区建模场景。综合考虑城市小区数据的复杂性、异构性和多源性等特征,在城市小区建模场景中,引入统一数据表达与交换模型UDX作为数据组织的基础。在此基础上,利用可扩展的接口将城市小区建模场景与具体的分析模型进行集成,通过从小区场景中抽取合适的数据来驱动具体分析模型的应用。试验结果表明,通过本文所设计的城市小区建模场景构建方法,能够对城市小区环境分析建模相关的数据进行有效的、结构化的组织,并支撑在统一的数据视图上驱动城市小区分析模型的集成与运行。通过城市小区场景的构建能够将小区环境信息的搜集处理工作与具体的模型应用工作进行解耦,使得城市小区环境的分析模拟研究在集成应用层面更加便捷。
本文的研究内容主要集中于在数据层面支撑城市小区环境的分析与模拟,利用具备自描述特性的UDX数据表达与交换模型来构建城市小区建模场景。相比于地理信息建模领域的CityGML等数据模型,该方法能够在结构化组织数据的同时,对小区环境进行信息内容层面的描述,支持不同领域的建模研究者理解小区建模数据。此外,在小区建模场景中能够附加相关的数据操作方法来实现不同的数据抽取和处理操作,从而为小区环境分析模型提供合适的数据。在本研究中,小区环境分析模型之间的集成主要是通过数据进行驱动的,对于如何支持模型内部的集成耦合、如何更加便捷地构建城市小区建模场景、如何通过定制/配置的方式来实现建模数据抽取等问题还需进一步展开探索。