一种基于Cesium的日照时长分析方法及系统技术方案

技术编号:39129945 阅读:8 留言:0更新日期:2023-10-23 14:50
本发明专利技术提供一种基于Cesium的日照时长分析方法及系统,方法包括:根据在Cesium中设置的日照时长分析时间信息,在GPU中逐帧计算日照率,对每帧计算得到的日照率进行累加操作,并将最终计算的日照率打包到颜色值中,保存到日照率帧缓存中;基于日照率帧缓存中的日照率,计算分析区域内的日照时长信息,并将分析区域内的日照时长信息打包到颜色值中,保存到日照时长帧缓存中;将日照时长帧缓存中的日照时长信息输出到图片上,得到日照时长分析图。本发明专利技术提出的方法,Cesium基于WebGL技术进行图形渲染,其可利用GPU进行加速运算,这就为快速进行日照时长分析提供了技术的土壤。速进行日照时长分析提供了技术的土壤。速进行日照时长分析提供了技术的土壤。

【技术实现步骤摘要】
一种基于Cesium的日照时长分析方法及系统


[0001]本专利技术涉及建筑物日照时长分析领域,更具体地,涉及一种基于Cesium的日照时长分析方法及系统。

技术介绍

[0002]随着我国城市化进程不断发展,居民对居住环境的改善也有很强烈的需求,其中光照对生活质量的影响是明显的。为居民创造良好的居住条件是新时期规划设计必须要考虑的问题之一,这就需要在城市规划过程中,合理地确定建筑的朝向、间距以及楼群密度等等,做到这些需要较多技术手段的配合,这其中对建筑物进行日照时长分析是有效的手段之一。
[0003]日照时长分析常用的方法有传统的手工计算以及基于CAD平台的日照时长分析系统,比如天正日照分析软件。这些方法的特点是分析时间过长,常常需要数小时甚至十数小时的时间。

技术实现思路

[0004]本专利技术针对现有技术中存在的技术问题,提供一种基于Cesium的日照时长分析方法及系统。
[0005]根据本专利技术的第一方面,提供了一种基于Cesium的日照时长分析方法,包括:在Cesium中创建时钟clock,用于设置日照时长分析时间信息,所述日照时长分析时间信息包括起始时间、结束时间和时间间隔;根据设置的起点时间、结束时间和时间间隔,在GPU中逐帧计算日照率,对每帧计算得到的日照率进行累加操作,并将最终计算的日照率打包到颜色值中,保存到日照率帧缓存中;基于日照率帧缓存中的日照率,计算分析区域内的日照时长信息,并将分析区域内的日照时长信息打包到颜色值中,保存到日照时长帧缓存中;将日照时长帧缓存中的日照时长信息输出到图片上,得到日照时长分析图。
[0006]在上述技术方案的基础上,本专利技术还可以作出如下改进。
[0007]可选的,所述根据设置的起点时间、结束时间和时间间隔,在GPU中逐帧计算日照率,对每帧计算得到的日照率进行累加操作,并将最终计算的日照率打包到颜色值中,保存到日照率帧缓存中,包括:设置初始化参数,所述初始化参数包括日照分析总时长a、日照分析总帧量f、待分析区域地理范围r和分析高程值h;根据设置的初始化参数,在GPU中使用片元着色器逐点进行计算,一帧时间内完成一次分析区域内的日照率计算;对每帧计算得到的日照率进行累加操作,最终得到分析区域内的日照率,其中,日照率累加算法为s=g+1/f,s表示累加日照率,g表示上一帧日照率,f表示总帧量;
将分析区域内的日照率转换为颜色值,保存到日照率帧缓存中。
[0008]可选的,所述根据设置的初始化参数,在GPU中使用片元着色器逐点进行计算,一帧时间内完成一次分析区域内的日照率计算,还包括:将Cesium系统中生成的阴影图传入片元着色器中,在GPU中使用片元着色器逐点进行计算时,判断当前点是否处于阴影中,若不处于阴影中,则计算一次日照率,否则,不进行计算。
[0009]可选的,所述日照率为浮点数,颜色值有四通道rgba,每个通道为8bit,所述将分析区域内的日照率转换为颜色值,包括将浮点数的日照率转化为rgba颜色值,其中:ec=float4(1, 255, 65025, 16581375)
ꢀ×ꢀ
s;ec=ec

float4(ec.gbaa)
×
float4(1/255, 1/255, 1/255, 0);ec为转换后的rgba颜色值,float4表示4个浮点数所组成的float4向量,ec.gbaa是取分量操作,g是第二个分量,b是第三个分量,a是第四个分量,s为日照率。
[0010]可选的,所述基于日照率帧缓存中的日照率,计算分析区域内的日照时长信息,并将分析区域内的日照时长信息打包到颜色值中,保存到日照时长帧缓存中,包括:将日照率帧缓存传入到片元着色器中,对其进行采样,将采样得到的颜色值rgba反算为日照率数值,其算法是:s = dot(rgba, float4(1, 1/255, 1/65025, 1/16581375));将反算出来的日照率数值乘以日照分析总时长,得到日照时长信息t,根据日照时长色带将日照时长信息t打包到颜色值,即t<1时,颜色值为rgba(0,0,0,1),以此类推,7<t<8时,颜色值为rgba(1,0,0,1)。将颜色值写入日照时长帧缓存中。
[0011]可选的,所述将日照时长帧缓存中的日照时长信息输出到图片上,得到日照时长分析图,包括:利用WebGL引擎中的webgl.readPixels方法读取日照时长帧缓存的像素流,创建与日照时长帧缓存尺寸一致的第一canvas画布,将像素流写入第一canvas画布中;根据待分析区域地理范围r计算输出图片的宽度和高度;基于输出图片的宽度和高度,创建第二canvas画布,将第一canvas画布中的内容绘制到第二canvas画布中;使用canvas.toDataURL方法将第二canvas画布转换为图片,即得到日照时长分析图。
[0012]可选的,所述根据待分析区域地理范围r计算输出图片的宽度和高度,包括:计算场景的分辨率:拾取第一canvas画布中心点处的地理位置l,向右增加一个像素,拾取此处的地理位置r,利用Cesium系统的distance距离函数求两点的距离:d = distance(l, r)则d就表示的是分辨率;根据待分析区域的地理坐标计算图片的宽高:根据待分析区域的地理坐标的最小经度w、最小纬度s、最大经度e和最大纬度n,求取地理范围的宽和高,其宽是ws=e

w,高是hs=n

s,则可计算图片的宽是wp=ws/d,高是hp=hs/d。
[0013]可选的,所述将日照时长帧缓存中的日照时长信息输出到图片上,得到日照时长分析图,之后还包括用鼠标拾取分析区域内任意一点的日照时长信息:
基于鼠标拾取分析区域内任意一点的地理坐标纬度和经度;根据待分析区域的地理坐标范围和时长分析图的像素流p,计算所述任意一点的像素坐标值,基于像素坐标值,得到对应的颜色值;根据颜色值反算日照时长信息。
[0014]可选的,所述根据待分析区域的地理坐标范围和时长分析图的像素流p,计算所述任意一点的像素坐标值,包括:x = (l
ꢀ‑ꢀ
w)
ꢀ×ꢀ
wp / ws;y = (v
ꢀ‑ꢀ
s)
ꢀ×ꢀ
hp / hs;其中,(x,y)为所述任意一点的像素坐标值,wp为时长分析图的宽度,hp为时长分析图的高度,ws为待分析区域的宽度,hs为待分析区域的高度。
[0015]根据本专利技术的第二方面,提供一种基于Cesium的日照时长分析系统,包括:创建模块,用于在Cesium中创建时钟clock,用于设置日照时长分析时间信息,所述日照时长分析时间信息包括起始时间、结束时间和时间间隔;第一计算模块,用于根据设置的起点时间、结束时间和时间间隔,在GPU中逐帧计算日照率,对每帧计算得到的日照率进行累加操作,并将最终计算的日照率打包到颜色值中,保存到日照率帧缓存中;本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于Cesium的日照时长分析方法,其特征在于,包括:在Cesium中创建时钟clock,用于设置日照时长分析时间信息,所述日照时长分析时间信息包括起始时间、结束时间和时间间隔;根据设置的起点时间、结束时间和时间间隔,在GPU中逐帧计算日照率,对每帧计算得到的日照率进行累加操作,并将最终计算的日照率打包到颜色值中,保存到日照率帧缓存中;基于日照率帧缓存中的日照率,计算分析区域内的日照时长信息,并将分析区域内的日照时长信息打包到颜色值中,保存到日照时长帧缓存中;将日照时长帧缓存中的日照时长信息输出到图片上,得到日照时长分析图。2.根据权利要求1所述的日照时长分析方法,其特征在于,所述根据设置的起点时间、结束时间和时间间隔,在GPU中逐帧计算日照率,对每帧计算得到的日照率进行累加操作,并将最终计算的日照率打包到颜色值中,保存到日照率帧缓存中,包括:设置初始化参数,所述初始化参数包括日照分析总时长a、日照分析总帧量f、待分析区域地理范围r和分析高程值h;根据设置的初始化参数,在GPU中使用片元着色器逐点进行计算,一帧时间内完成一次分析区域内的日照率计算;对每帧计算得到的日照率进行累加操作,最终得到分析区域内的日照率,其中,日照率累加算法为s=g+1/f,s表示累加日照率,g表示上一帧日照率,f表示总帧量;将分析区域内的日照率转换为颜色值,保存到日照率帧缓存中。3.根据权利要求2所述的日照时长分析方法,其特征在于,所述根据设置的初始化参数,在GPU中使用片元着色器逐点进行计算,一帧时间内完成一次分析区域内的日照率计算,还包括:将Cesium系统中生成的阴影图传入片元着色器中,在GPU中使用片元着色器逐点进行计算时,判断当前点是否处于阴影中,若不处于阴影中,则计算一次日照率,否则,不进行计算。4.根据权利要求2所述的日照时长分析方法,其特征在于,所述日照率为浮点数,颜色值有四通道rgba,每个通道为8bit,所述将分析区域内的日照率转换为颜色值,包括将浮点数的日照率转化为rgba颜色值,其中:ec=float4(1, 255, 65025, 16581375)
ꢀ×ꢀ
s;ec=ec

float4(ec.gbaa)
×
float4(1/255, 1/255, 1/255, 0);ec为转换后的rgba颜色值,float4表示4个浮点数所组成的float4向量,ec.gbaa是取分量操作,g是第二个分量,b是第三个分量,a是第四个分量,s为日照率。5.根据权利要求1所述的日照时长分析方法,其特征在于,所述基于日照率帧缓存中的日照率,计算分析区域内的日照时长信息,并将分析区域内的日照时长信息打包到颜色值中,保存到日照时长帧缓存中,包括:将日照率帧缓存传入到片元着色器中,对其进行采样,将采样得到的颜色值rgba反算为日照率数值,其算法是:s = dot(rgba, float4(1, 1/255, 1/65025, 1/16581375));将反算出来的日照率数值乘以日照分析总时长,得到日照时长信息t,根据日照时长色
带将日照时长信息t打包到颜色值,即t<1时,颜色值为rgba(0,0,0,1),以此类推,7&lt...

【专利技术属性】
技术研发人员:刘宏磊刘池凯杨健
申请(专利权)人:吉奥时空信息技术股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1