当前位置: 首页 > 专利查询>南通大学专利>正文

一种基于数据缓存的日照时数计算方法技术

技术编号:13621075 阅读:39 留言:0更新日期:2016-08-31 14:12
本发明专利技术公开了一种基于数据缓存的日照时数计算方法,读取场景数据,设置与日照分析相关的背景信息,计算太阳位置,并生成太阳光线向量,将太阳光线与缓存中的三角形图元进行相交判断,将太阳光线与场景中地形/地物要素所构成的三角网进行相交判断,将日照时数进行叠加,设置缓存中的三角形图元为遮挡三角形,比较当前计算时刻是否超出计算区间。本发明专利技术基于数据缓存方法,在光线与场景中大量地形地物进行相交判断之前,先与缓存中的少量要素进行相交判断,减少了光线/要素的相交判断次数,从而有效的提高了算法效率。

【技术实现步骤摘要】

本专利技术涉及一种日照时数计算方法,特别是一种基于数据缓存的日照时数计算方法
技术介绍
当前的日照分析主要应用于城市规划与建筑学中,以日照时数为主要指标,进行一系列分析。日照分析的主要对象——建筑物一般处于一个复杂的地理场景中,该场景包含大量的地形、地物要素。这些要素都是存在于真实世界中的三维实体,共同构成了一个真三维的日照分析场景。在实际分析过程中,地形要素以及建筑周边的亭台楼阁、植被、古塔等地物要素都对日照光线产生遮挡。因此要在现实世界中进行精确的日照分析模拟,必须考虑场景中众多三维实体的遮挡因素。在当前的日照分析相关研究领域,学者们主要围绕日照时数计算、日照阴影分析、日照间距计算、地物遮挡分析等问题展开研究。针对场景要素之间的遮挡关系判断这一核心问题,提出了建筑物CAD法、通视分析法、几何光学法等方法。但上述方法在面向场景中众多的地形、地物要素进行分析运算时,效率比较低下。
技术实现思路
本专利技术所要解决的技术问题是提供一种基于数据缓存的日照时数计算方法,它解决了现有技术在面向场景中众多的地形、地物要素进行分析运算时计算效率不高的问题。为解决上述技术问题,本专利技术所采用的技术方案是:一种基于数据缓存的日照时数计算方法,其特征在于包含以下步骤:步骤一:读取场景数据,将存储在外部文件中的场景数据读入内存;步骤二:设置与日照分析相关的背景信息;步骤三:计算太阳位置,并生成太阳光线向量;步骤四:将太阳光线与缓存中的三角形图元进行相交判断,若相交,则该点在该时刻被遮挡,转步骤七;否则转步骤五;步骤五:将太阳光线与场景中地形/地物要素所构成的三角网进行相交判断,若有相交,转步骤七;若未相交,转步骤六;步骤六:将日照时数进行叠加;步骤七:设置缓存中的三角形图元为遮挡三角形;比较当前计算时刻是否超出计算区间,如果是,结束计算,输出结果;否则,转步骤三,进行下一时刻计算;步骤八:结束计算,输出日照时数的计算结果。进一步地,所述步骤一中场景数据包含所有地形、地物要素几何实体边界的三角网数据,场景数据在计算机中的数据组织方式是通过计算机编程语言内部实现的内存数据结构。进一步地,所述步骤二中背景信息包含待测点坐标、经纬度、计算日期、计算时段、离散时间步长信息。进一步地,所述步骤二中背景信息设置具体为,设置待测点P(X,Y,Z),以及其经度值α和纬度值设置计算的日期Date,起止时段TBegin、TEnd及所需的离散时间步长L,其中8:00<=TBegin<TEnd<=16:00,L取1分钟或5分钟,初始化日照时间起始值SUM=0,计算时刻TX=TBegin,相交三角形TShade为空。进一步地,所述步骤三太阳位置计算过程为,根据日期Date计算出太阳的赤纬δ,δ=23.45×sin|(d-80.25)×(1-d/9500)| (1)其中,d为所选日期Date到当年元旦的天数差;循环选取所设定时段中的时刻TX,计算太阳在每一时刻的真太阳时T,T=TX+|α-120|/15×60 α>120T=TX-|α-120|/15×60 α<120 (2)计算太阳时角Ω,Ω=(12/π)×(T-12) (3)根据公式计算太阳位置,得到太阳高度角Hs与太阳方位角As,其中,为地理纬度;基于计算所得到的太阳高度角与方位角,计算太阳的光线向量VectorS(X,Y,Z),根据光线向量,得到沿该向量较远处一点PS(X,Y,Z);VectorS.X=-cos(Hs)×sin(As);VectorS.Y=sin(Hs)VectorS.Z=-cos(Hs)×cos(As)PS.X=P.X+100000×VectorS.X;PS.Y=P.Y+100000×VectorS.YPS.Z=P.Z+100000×VectorS.Z (6)。进一步地,所述步骤四中与三角形图元进行相交判断过程为,判断缓存是否为空,若为空,转步骤五;若不为空,则将光线与缓存中的三角形Triangle按如下方法进行相交判断:A)取Triangle所包含的三个点,分别赋值给点P0,P1,P2;B)将点P与点PS,P0,P1,P2分别组合,得到向量Vpq,Vpa,Vpb,Vpc, Vpq . X = P . X - P 1 . X ; V 1 . Y = P . Y - P 1 . Y ; V 1 . Z = P . Z - P 1 . Z Vpa . X = P . X - P 2 . X ; V 1 . Y = P . Y - P 2 . Y ; V 1 . Z = P . Z - P 2 . Z Vpb . X = P . X 本文档来自技高网...

【技术保护点】
一种基于数据缓存的日照时数计算方法,其特征在于包含以下步骤:步骤一:读取场景数据,将存储在外部文件中的场景数据读入内存;步骤二:设置与日照分析相关的背景信息;步骤三:计算太阳位置,并生成太阳光线向量;步骤四:将太阳光线与缓存中的三角形图元进行相交判断,若相交,则该点在该时刻被遮挡,转步骤七;否则转步骤五;步骤五:将太阳光线与场景中地形/地物要素所构成的三角网进行相交判断,若有相交,转步骤七;若未相交,转步骤六;步骤六:将日照时数进行叠加;步骤七:设置缓存中的三角形图元为遮挡三角形;比较当前计算时刻是否超出计算区间,如果是,结束计算,输出结果;否则,转步骤三,进行下一时刻计算;步骤八:结束计算,输出日照时数的计算结果。

【技术特征摘要】
1.一种基于数据缓存的日照时数计算方法,其特征在于包含以下步骤:步骤一:读取场景数据,将存储在外部文件中的场景数据读入内存;步骤二:设置与日照分析相关的背景信息;步骤三:计算太阳位置,并生成太阳光线向量;步骤四:将太阳光线与缓存中的三角形图元进行相交判断,若相交,则该点在该时刻被遮挡,转步骤七;否则转步骤五;步骤五:将太阳光线与场景中地形/地物要素所构成的三角网进行相交判断,若有相交,转步骤七;若未相交,转步骤六;步骤六:将日照时数进行叠加;步骤七:设置缓存中的三角形图元为遮挡三角形;比较当前计算时刻是否超出计算区间,如果是,结束计算,输出结果;否则,转步骤三,进行下一时刻计算;步骤八:结束计算,输出日照时数的计算结果。2.按照权利要求1所述的一种基于数据缓存的日照时数计算方法,其特征在于:所述步骤一中场景数据包含所有地形、地物要素几何实体边界的三角网数据,场景数据在计算机中的数据组织方式是通过计算机编程语言内部实现的内存数据结构。3.按照权利要求1所述的一种基于数据缓存的日照时数计算方法,其特征在于:所述步骤二中背景信息包含待测点坐标、经纬度、计算日期、计算时段、离散时间步长信息。4.按照权利要求1或3所述的一种基于数据缓存的日照时数计算方法,其特征在于:所述步骤二中背景信息设置具体为,设置待测点P(X,Y,Z),以及其经度值α和纬度值设置计算的日期Date,起止时段TBegin、TEnd及所需的离散时间步长L,其中8:00<=TBegin<TEnd<=16:00,L取1分钟或5分钟,初始化日照时间起始值SUM=0,计算时刻TX=TBegin,相交三角形TShade为空。5.按照权利要求1所述的一种基于数据缓存的日照时数计算方法,其特征在于:所述步骤三太阳位置计算过程为,根据日期Date计算出太阳的赤纬δ,δ=23.45×sin|(d-80.25)×(1-d/9500)| (1)其中,d为所选日期Date到当年元旦的天数差;循环选取所设定时段中的时刻TX,计算太阳在每一时刻的真太阳时T,T=TX+|α-120|/15×60 α>120T=TX-|α-120|/15×60 α<120 (2)计算太阳时角Ω,Ω=(12/π)×(T-12) (3)根据公式计算太阳位置,得到太阳高度角Hs与太阳方位角As,其中,为地理纬度;基于计算所得到的太阳高度角与方位角,计算太阳的光线向量VectorS(X,Y,Z),根据光线向量,得到沿该向量较远处一点PS(X,Y,Z);VectorS.X=-cos(Hs)×sin(As);VectorS.Y=sin(Hs)VectorS.Z=-cos(Hs)×cos(As)PS.X=P.X+100000×VectorS.X;PS.Y=P.Y+100000×VectorS.YPS.Z=P.Z+100000×VectorS.Z (6)。6.按照权利要求1所述的一种基于数据缓存的日照时数计算方法,其特征在于:所述步骤四中与三角形图元进行相交判断过程为,判断缓存是否为空,若为空,转步骤五;若不为空,则将光线与缓存中的三角形Triangle按如下方法进行相交判断:A)取Triangle所包含的三个点,分别赋值给点P0,P1,P2;B)将点P与点PS,P0,P1,P2分别组合,得到向量Vpq,Vpa,Vpb,Vpc,Vpq.X=P.X-P1.X;V1.Y=P.Y-P1.Y;V1.Z=P.Z-P1.ZVpa.X=P.X-P2.X;V1.Y=P.Y-P2.Y;V1.Z=P.Z-P2.ZVpb.X=P.X-P3.X;V1.Y=P.Y-P3.Y;V1.Z=P.Z-P3.Z (7);Vpc.X=P.X-PS.X;V1.Y=P.Y-PS.Y;V1.Z=P.Z-PS.ZC)分别选取Vpq、Vpa、Vpb构造向量三重积u=Triple(Vpq,Vpa,Vpb),具体方法为:a)将Vpq和Vpa进行叉积运算,生成crossqa(X,Y,Z), c r o s s q a . X = V p q . y × V p a . z - ...

【专利技术属性】
技术研发人员:张驰李冠男王英利周侗陶菲
申请(专利权)人:南通大学
类型:发明
国别省市:江苏;32

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

1