张 驰,周 良 辰,闾 国 年,周 侗
(1.南通大学地理科学学院,江苏 南通 226019;2.虚拟地理环境教育部重点实验室(南京师范大学),江苏 南京 210023;3.江苏省地理环境演化国家重点实验室培育建设点,江苏 南京 210023;4.江苏省地理信息资源开发与利用协同创新中心,江苏 南京 210023)
面向复杂地理场景的日照分析算法研究
张 驰1,2,周 良 辰2,3,4*,闾 国 年2,3,4,周 侗1
(1.南通大学地理科学学院,江苏 南通 226019;2.虚拟地理环境教育部重点实验室(南京师范大学),江苏 南京 210023;3.江苏省地理环境演化国家重点实验室培育建设点,江苏 南京 210023;4.江苏省地理信息资源开发与利用协同创新中心,江苏 南京 210023)
在现实世界的复杂地理场景中进行日照分析模拟,必须考虑众多真三维地形/地物的遮挡因素,传统的日照分析方法难以得出高效、准确的结果。该文面向复杂地理场景的真三维地形/地物要素,设计了相应的日照遮挡分析算法,并以太阳光线的空间局限性为基础,构建了均匀格网-AABB-kd-树的场景组织方式,可以准确、快速地计算出日照时数,有效地实现了算法加速。
复杂地理场景;日照分析;空间局限性;空间划分
日照分析是以太阳在地理场景中的运动轨迹为基础,研究太阳光线与场景中地形、地物等要素的时空关系,并对场景中指定要素的阴影、日照时数等指标进行定性/定量分析计算的过程。目前,日照分析已成为城市规划、居住环境评价以及“阳光权” 实施与保障的重要手段。日照分析的主要对象——建筑物一般处于一个复杂的地理场景中,该场景不仅包括人居建筑,也包括山地、丘陵等起伏的地形以及植被、亭台楼阁、古塔等一系列地物要素。这些地形/地物要素都是存在于真实世界中的三维实体,共同构成了一个真三维的日照分析场景。在实际分析过程中,地形要素及建筑周边的亭台楼阁、植被、古塔等地物要素都对日照光线产生遮挡,要进行精确的日照分析模拟,必须考虑场景中众多三维实体的遮挡因素。
在当前日照分析的相关研究领域,学者们主要围绕日照时数、日照阴影、日照间距、建筑遮挡等问题[1-4]展开研究,针对场景要素之间的遮挡关系判断这一核心问题,提出了建筑物CAD法[5,6]、通视分析法[7]、几何光学法[1-4,8,9]等方法。但这些方法在应用于复杂地理场景时,存在如下问题:1)拘泥于建筑场景,没有考虑现实世界中日照分析场景的真三维特性,难以应用到复杂地理场景中[5-9];2)缺乏对太阳光线与场景中地形/地物要素时空关系的考虑,应用于复杂地理场景中计算效率低[1-4]。当前虽然存在以众智日照、鸿业日照为代表的相关日照分析软件,且众智日照分析软件是住建部在建筑日照分析领域的首推软件,但上述软件往往基于建筑CAD平台,采用底图拉伸附加屋顶结构的方式构造建筑物模型,这种建模方式不便于描述现实世界中复杂的建筑实体,从严格意义上讲,是一种伪三维场景。
现实世界是三维的,作为对现实世界日照情况的刻画,日照分析也必须基于真实地理场景下的众多真三维地形/地物要素进行快速、准确的分析与模拟。本文将针对上述问题,研究一种适合于复杂地理场景的高效日照分析算法,实现真实地理场景中快速、准确的日照分析计算。
在进行日照分析时,一般将太阳看成一个无限远处的点光源。在某一时刻,太阳位置可以根据精确的算法算出[3,10-12]。在此基础上,可根据待测点与太阳位置的连线是否被场景要素遮挡这一条件,判断待测点的遮挡情况。因此,可采用如下思路面向真三维地理场景构造日照分析算法:在某一时刻,从待测点出发,向太阳所在位置引一条射线,判断该射线与场景中所有地形、地物要素的关系:若与某一地形、地物要素的三维实体边界相交,则该点在该时刻被遮挡;若与所有地形、地物要素的三维实体边界都不相交,则该点在该时刻不被遮挡。
该算法可以在已知太阳位置的基础上,较为准确地判断出真实地理场景中的日照遮挡关系,但面临另一个问题:真实地理场景中往往包含大量的地形/地物要素,要将光线与场景中数以万计的地理要素的三维实体边界进行相交判断,计算效率将受到极大影响。因此,问题就转化为如何利用太阳与地理场景的时空关系,对上述日照分析算法进行优化,使其能够快速、准确地实现日照遮挡关系判断。
太阳光线与地理场景中地形、地物要素的时空关系处于一个动态变换的过程中,不同的时间与地点,有效日照的“时间”特征与日照光线路径上的“空间”特征都不同。在地理位置、分析时段已知的情况下,太阳运行轨迹可采用非线性方程表达。如果能基于有效日照的“时间”特征和日照光线路径上的“空间”特征,确定出对应时刻中可能产生遮挡的有效范围,并以较低代价过滤掉不可能与太阳光线相交的地形/地物要素,即可在一定程度上加快日照遮挡关系的判断过程。
图1是某场景的平面投影,由于太阳在某一特定时刻位置是确定的,因此从某待测点引出的太阳光线也是确定的,而该光线在该时刻只可能与场景中一定范围内的地形/地物要素相交(图1中与地物A、B、C相交)。因此,若采用空间划分方法对场景中的地形/地物要素进行组织,在进行遮挡关系判断时,就可以较低代价过滤掉场景中不可能与光线相交的大量地形、地物要素,从而大大减少光线与场景要素的相交判断次数,使得计算效率得到极大提升。
图1 太阳光线的空间局限性
Fig.1 The space limitation of the sunlight
基于日照光线的空间局限性,本文采用空间划分方法对场景进行组织,以实现算法的加速。当前主要的空间划分方法有均匀网格、八叉树、BSP树、kd-树等[13]。文献[14]指出,kd-树的构建代价较高,但在构建完成后,其访问效率明显高于均匀网格和空间八叉树。BSP树与kd-树类似,都属于构建代价较高但访问效率高的空间划分方法,适用于静态场景。日照分析的地理场景一经建立,改变较少,因此应选用访问效率较高的kd-树或BSP树对空间进行组织。kd-树是一种特殊的BSP树,它将BSP树划分中的任意分割平面退化为轴对齐的分割平面。日照分析的地理场景以建筑为主体,而建筑一般以垂直于地面的方式存在,因此,以轴对齐的方式进行空间划分可以降低BSP树生成时的几何体元分割操作,却同样具有BSP树的优良特性,即一定程度上的启发式空间划分,这样使得最终划分的二叉树尽可能平衡,进而提升效率。
因此,本文基于kd-树对场景进行组织,实现算法的加速。将场景中的单一地形、地物要素以轴对齐包围盒(AABB)进行统一管理,在AABB的基础上,对每个要素进行kd-树的划分,形成一个AABB-kd-树的组织体系。构建kd-树所面临的核心问题是分割平面的选择策略,当前学者提出了一系列kd-树的分割平面选择方法。其中,表面积启发(Surface Area Heuristic,SAH)方法[15]使用较为普遍,它考虑了影响光线跟踪的两大因素:图元对象分布和空间尺寸,实践证明,该方法是一种合理且高效的kd-树构建方法。因此,本文选择SAH方法进行分割平面的选择。
AABB-kd-树的组织体系能有效过滤掉多余的场景要素,减少光线与要素的相交判断,进而提升了算法效率。但若场景中地物数量众多,则仍需进行大量光线-AABB的相交测试。为了进一步提高效率,本文以均匀网格对场景中要素的AABB进一步组织,形成一个均匀网格-AABB-kd-树的组织体系(图2)。通过上述场景组织方法,可以为光线与场景要素的快速遮挡判断提供支持。
图2 基于均匀网格、kd-树的场景组织
Fig.2 The scene organization based on uniform grid and kd-tree
基于该场景组织方式的光线遮挡判别算法如下(图3):1)设置待测点与测试时刻,利用文献[3]的太阳位置算法获取待测点在该时刻的太阳位置,并与该点相连生成所对应的太阳光线;2)将光线与均匀网格进行相交判断,筛选出与光线相交网格所关联的地形/地物要素,作为下一步相交判断的待选要素;3)循环遍历筛选出来的地形/地物要素,判断光线是否与该要素的AABB相交,若相交则转下一步,否则转步骤5;4)递归遍历该要素的kd-树,如果光线与kd-树的某叶子结点相交,则循环遍历该叶子结点中所包含的三角面片,如有相交,则该点在该时刻被遮挡,转步骤6,如果与该kd-树中三角面片不存在相交,则光线与该要素没有相交,转下一步;5)如果还有要素没有遍历完成,则转步骤3,否则该要素未被遮挡,转步骤6;6)结束遍历,得出计算结果。
图3 基于空间划分的日照分析方法
Fig.3 The solar analysis algorithm based on space division
当前针对复杂地理场景下日照分析的研究成果较少,具有代表性的是文献[3],其所采用的日照分析算法计算出的日照时数在精度上高于众智日照分析软件。因此,笔者将本文算法与文献[3]的方法进行对比实验。实验数据采用南京师范大学仙林校区北区地形、地物数据,场景总共包含约45 000个三角面片。测试日期:冬至日;测试时段:8∶00-16∶00;离散时间步长:1 min。
3.1 算法精度测试
基于在场景中选取的3个点(图4),对其日照时数进行对比计算。表1结果表明,本文算法与文献[3]算法计算结果除了在B点有部分偏差外,其他点基本一致,因此本文算法具有一定的准确性。
图4 精度测试选点
Fig.4 The points for precision test
表1 精度比较结果
Table 1 Results of precision comparison
点编号坐标文献[3]算法日照时数(min)本文算法日照时数(min)A397214 4,3555349 9,34 7335335B397191 6,3555351 8,31 2295294C397212 9,3555351 8,47 9205205
3.2 算法效率测试
基于场景中选取的两个立面数据进行离散分析,其中立面1离散为252个点,立面2离散为153个点。基于1 min离散时间步长,计算结果如表2所示。
表2 1 min时间离散步长的效率对比
Table 2 Efficiency comparison of 1 minute discrete interval
编号待测点个数文献[3]算法(s)本文算法(加速前)(s)本文算法(加速后)(s)125223473463215315902482
表2结果表明:1)本文方法效率大大高于文献[3]所采用方法。文献[3]中过多地考虑了地球形体等因素,计算过程太复杂。而在实际应用中,日照分析计算场景跨度一般在10 km以内,地球形体等因素对日照分析产生的误差较小,因此在多数情况下不必采用如此复杂的计算方法。2)基于空间划分方法的场景组织方式可以最大限度过滤掉不需要参加运算的地形/地物要素,使得计算效率得到较大程度提升。因此本文算法在确保精度的前提下有效地提高了计算效率,是一种适用于复杂地理场景的日照分析方法。
本文基于太阳光线的空间局限性,利用均匀网格、kd-树等空间划分方法对场景进行重新组织,可以较低代价过滤掉不可能与光线相交的地形地物/要素,大大减少耗时的光线/场景要素的相交判断。该方法在应用于地形/地物要素较多的复杂场景中进行日照时数计算时,可以在保证计算精度的前提下,有效地提高计算效率。下一步会考虑将日照分析延伸到室内场景,基于太阳光线的空间局限性,实现室内场景中要素遮挡关系的快速、准确判断。
[1] 李朝奎,朱庆,陈松林,等.基于3DCM的日照分析模型研究[J].武汉大学学报(信息科学版),2005,30(1):89-92.
[2] 吴颖.数码城市GIS中的日照分析研究[J].测绘通报,2007(12):62-65.
[3] 张富.面向复杂地理场景的日照分析模型研究[D].南京:南京师范大学,2010.
[4] 张颖.基于三维城市模型的日照分析研究[D].武汉:武汉大学,2005.
[5] 王诂.建筑日照分析的CAD方法[J].工程设计CAD与智能建筑,1996(4):26-30.
[6] 王诂.建筑日照计算新概念[J].建筑学报,2001(2):48-50.
[7] 应申.空间可视分析的关键技术和应用研究[D].武汉:武汉大学,2005.
[8] CHEUNG H D,CHUNG T M.Analyzing sunlight duration and optimum shading using a sky map[J].Building and Environment,2007,42(9):3138-3148.
[9] MARSH A.Computer-optimised shading design[C].Building Simulation,2003.11-14.
[10] BOURGES B.Improvement in solar declination computation[J].Solar Energy,1985,35(4):367-369.
[11] SPENCER J W.Comments on the astronomical almanac′s algorithm for approximate solar position(1950-2050)[J].Solar Energy,1989,42(4):353.
[12] 王炳忠,杨洁.几种太阳位置计算方法的比较研究[J].太阳能学报,2001,22(4):413-417.
[13] ERICSON C.Real-Time Collision Detection[M].Taylor & Francis US,2005.
[14] SZIRMAY L,HAVRAN V.On the efficiency of ray-shooting acceleration schemes[C].International Conference on Computer Graphics and Interactive Techniques,2002.97-106.
[15] HAVRAN V.Heuristic ray shooting algorithms[D].Czech Technical University,Prague,Czech Republic,2001.
Study on Algorithm of Solar Analysis for Complex Geographic Scene
ZHANG Chi1,2,ZHOU Liang-chen2,3,4,LV Guo-nian2,3,4,ZHOU Tong1
(1.CollegeofGeographicScience,NantongUniversity,Nantong226019;2.KeyLaboratoryofVirtualGeographyEnvironment,NanjingNormalUniversity,Nanjing210023;3.StateKeyLaboratoryCultivationBaseofGeographicalEnvironmentEvolution,Nanjing210023;4.JiangsuCenterforCollaborativeInnovationinGeographicalInformationResourceDevelopmentandApplication,Nanjing210023,China)
It is necessary to take into account the shelter factor of numerous terrain and cultural features of three dimensions when carrying on solar analysis in the complex geographical scene of real world.However traditional solar analysis methods often have the problems of low efficiency and low accuracy when applied in it.In response to these issues,the sunlight shelter analysis algorithm for the three dimensional features in complex geographical scene is designed and the organization of uniform grid-AABB-kd-tree is created by this paper to accelerate the algorithm based on the sunlight′s attribute of space limitation.Experiment shows that,sunlight duration can be calculated precisely and efficiently by this method,which is suitable for the solar analysis in complex geographical scene.
complex geographical scene;solar analysis;space limitation;space division
2014-09-23;
2014-12-16
江苏省测绘地理信息科研项目(JSCHKY201406、JSCHKY201404);国家自然科学青年基金(41301415);虚拟地理环境教育部重点实验室开放基金项目(2014VGE02)
张驰(1982-),男,博士,讲师,研究方向为建筑物建模与模拟。*通讯作者E-mail:benz1983@163.com
10.3969/j.issn.1672-0504.2015.03.013
P208
A
1672-0504(2015)03-0065-04