太阳影子定位

2016-05-06 04:41汪昱列周宇徐佳笛
山东工业技术 2016年9期
关键词:经纬度

汪昱列 周宇 徐佳笛

摘 要:太阳影子定位技术就是通过分析物体影子变化,确定物体所在经纬度的技术。本文根据几何关系,结合穷举算法和相似度算法对给定大致经纬度范围内的物体进行精确经纬度定位的研究。我们首先通过太阳高度角与各个参数之间的关系,确立了影子长度与经纬度、日期、时间以及杆高之间的函数关系。接着,我们探讨建立了日期已知的经纬度定位模型,优化了之前的影长变化模型,将其结合了遍历算法。先通过影子顶点变化曲线特性分析缩小遍历范围,再遍历了不同杆长所有可能的经纬度。利用欧式距离算法衡量影长与遍历计算出的影长之间的相似度,欧氏距离最小的地点为最可能的直杆所处地点。最后,我们探讨了日期未知下的经纬度定位模型。对之前的模型进行了进一步的优化:引入影子方位角变化量作为描述影子方位随时间变化特性的参数,与影长结合共同描述影子变化特性。以影长相似度最高作为目标进行一次遍历,接着以影子方位角变化量相似度最高作为目标,对一次遍历结果进行二次遍历,以求得与其相似度最高的地点的经纬度和对应的日期,并用欧式距离检验。

关键词:经纬度、遍历算法、欧氏距离

DOI:10.16640/j.cnki.37-1222/t.2016.09.218

1 影长变化模型的建立

我们设直杆影子长度为l,直杆长度为z。

太阳高度角是太阳射到地面的平行光线与地面的夹角,设其为h,范围为(0°,90°)。

因为太阳光射到地面为平行光,又假设地面平整,固定直杆垂直于地面,则有影长与直杆长度z和不同时刻的太阳高度角h的三角关系。

其中,h是太阳高度角,为当地纬度,规定北纬度数为正,南纬度数为负,所以范围为(-90°,90°),δ为太阳赤纬角,即太阳直射点所在的纬度,范围为(-23°26,23°26),Ω为太阳时角。

由图1可以看出,太阳赤纬角就是太阳直射点所在的纬度。太阳在地球上的直射点的纬度变化以年为周期,直射点在北纬23°26到南纬23°26的范围内移动,太阳赤纬由日期确定,夏至时太阳照射在北回归线,即北纬23°26,冬至时太阳照射在南回归线,即南纬23°26。一天之中赤纬角的变化可忽略不计。因此固定日期的赤纬角δ可以当做常数。

赤纬角的计算公式可以查阅资料(资料名称见参考文献[2])得到,如下:

δ=0.006918-0.399912×cos(β)+0.0070257×sin(β)-0.006758×cos(2β)+0.000907×sin(2β)-0.002697×cos(3β)+0.00148×sin(3β) (1-3)

其中,β为日角,,n为日数,从1月1日开始起n=1,比如1月3日n=3。

因此只要已知日期(年月日),就可以算出具体的赤纬角值。

由图2可看出,太阳时角Ω是指从地球上的观测点天球子午圈沿天赤道量至太阳所在时圈的角距离。子午圈和天赤道量属于地理学中赤道坐标系的概念,在本文中不过多展开。解释一下太阳时角就是任一时刻太阳与直杆的连线在赤道面上的投影与观测点正南方向的夹角。

设该地方的经度为α,西经为负值,东经为正值,α范围为(-180°,180°)。设该地方的北京时间为t(当前时刻,单位为小时,例:12点36分即12.6小时),对于观测点来说,不同时刻太阳相对于自己的方位也不一样。这导致太阳时角的具体值也不同。所以太阳时角Ω与北京时间t和当地经度α有关。

查阅文献[2]可知太阳时角Ω的计算公式:

其中S表示当地的真太阳时,即当地太阳位于正南向的瞬时,即当地的正午。

综上公式1-1、1-2、1-3,如果已知某地经度α和北京时间t,就可以求出此时刻的太阳时角Ω;如果已知该地的日期,就可以求出该地的太阳赤位角δ,如果再知道该地纬度,就可以求出太阳高度角h,结合杆高z可以求出影长l。

通过公式1-1、1-2、1-3可得建立影长变化模型:

2 有日期下经纬度定位模型的建立

由于只要给出任意杆长就可以遍历所有经纬度得到最有可能的地点,为了计算便捷,我们只给出杆长为2米和3米两种情况下,最有可能的经纬度。

2.1 影长的计算

若已知条件中直接给出了影长则可以直接进行step2,若影长给出的是坐标(x,y),则可以算出影长,然后将经纬度范围内的每个经纬点这个时刻的影长也算出来与之对比即可。

2.2 遍历范围的缩小

由于遍历算法计算量巨大,所以我们考虑结合题目给出的北京时间数据和影子顶点变化曲线的特性来缩小遍历的经纬度范围。

(1)估算大致经度范围。根据日夜状态与一定的背景信息先行缩小经度范围。

(2)估算大致纬度范围。查阅地理学文献[3]可以知道对于处在不同纬度的直杆,一天当中的影长轨迹可能有两种情况。以北半球的夏季为例,北半球的夏季太阳直射点在北半球(赤道与北回归线之间),那么位于直射点以南的地区(包括南半球),影子轨迹就如左图;位于直射点以北的地区,一天的影子轨迹就如右图。

2.3 将经纬度范围代入遍历程序

我们考虑先在较大经纬度范围内进行粗遍历,先找出最可能点所在的大致范围,再缩小经纬度范围,缩小步长,进行精确定位。

(1)缩小可能的经纬度范围:由于初始遍历的经纬范围比较大,为防止程序计算量过大导致计算时间过长,我们可以先选取较大的经纬度变化步长,。

(2)精确确定经纬度:在得到粗略的经纬度之后可以缩小步长为0.01°,求出较为精确的地理坐标。

3 无日期下经纬度定位模型的建立

上一个模型已经分析,只有已知某地的日期、纬度、经度α、北京时间t和杆高z可以求出影長l,在无日期下,如果沿用之前的模型,则需要遍历确定日期和杆长两个量。

3.1 沿用之前模型计算不同日期下的经纬度坐标

我们在之前的遍历模型外加上一层遍历365天的循环,然后重新遍历。

在进过试验后可以看出来,沿用之前的模型仍能求出一年365天每天的最有可能的经纬度位置。但是无法确定附件给出的具体日期。因此我们加入地理学中太阳方位角的概念来确定日期。一天中物体影子的变化由影长变化和影子方位(和正南方向的夹角)变化共同确定,通过上述遍历法求得的结果很多且相似度很高是由于只考虑了影长随时间的变化的相似度,没有考虑影子方位随时间变化的相似度。上述模型中缺少描述影子方位变化参数。由此,我们引入极坐标系,来讨论影子方位角的变化值,以此确定影子方位变化,对模型进行优化。

3.2 日期的确定

(1)极坐标系的建立。我们考虑将给出影长坐标的平面直角坐标系转化为极坐标系。以直杆底端为原点,平面直角坐标系的x轴正方向为极轴正方向,取逆时针方向为角度的正方向,建立极坐标系:

与原平面直角坐标系转化关系如下:

(3-2)

其中ρ=l(影长),θ为影子方向与极轴正方向所成的夹角。我们考虑利用上述极坐标系求出附件2中各个时刻的θ。

(2)太阳方位角A的引入。固定直杆底端为极坐标系的原点,变化极轴的方向,特别地,若以正南方向为极轴正方向,建立极坐标系。

此时,有θ=A,A为太阳方位角(直杆影子与正南方向的夹角),太阳方位角A与太阳高度角h间关系如下:

(3-2)

上式中,δ为太阳赤纬,Ω为太阳时角,计算方法之前已经给出。

所以,通过求解得到的每一天相似度最高地点的经纬度、杆高、日期和观测时间,即可算出每一天相似度最高的地点,任意观测时刻的太阳方位角。

但是,由于建立极坐标系时极轴方向的不同,通过计算得到太阳方位角A与利用附件原始平面直角坐标系转化得到的极坐标系中的θ是不同的(当且仅当极轴方向为正南方向时θ=A)。

因此,我们考虑引入影子与极轴正方向夹角θ关于时间的变化量Δθ作为描述影子方位随时间变化特性的参数,定义Δθ为影子方位角变化量。

我们定义Δθ为影长坐标给出的观测后一时刻的θ与前一时刻θ的差值,由上述分析,太阳方位角A即为极轴方向为直杆正南方向时的θ,所以应当有Δθ=ΔA。

实际计算时,由于Δθ与ΔA不可能严格相等,我们考虑沿用欧式距离算法作为判定Δθ与ΔA相似度的算法,对求出来的一年365天每天的最有可能的经纬度进行二次穷举,算出这365个经纬地点方位角的变化量ΔA与附件所给的影子与极轴正方向夹角Δθ的欧氏距离,筛选出最小的欧氏距离,得到经纬度。此时的经纬度即最有可能的经纬度地点,这个经纬度对应的日数即可推算出当天日期。第二次欧氏距离计算公式如下:

(3-2)

遍历365个日期对应的经纬度,求取Δθ与ΔA相似度最高的地点作为最优解。

参考文献:

[1]王国安,米鸿涛,邓天宏,李亚男,李兰霞.太阳高度角和日出日落时刻太阳方位角一年变化范围的计算[J].气象与环境科学,2007(S1):161-164.

[2]贺晓雷,于贺军,李建英,丁蕾.太阳方位角的公式求解及其应用[J].太阳能学报,2008(01):69-73.

[3]武琳.基于太阳阴影轨迹的經纬度估计技术研究[D].天津大学,2010.

猜你喜欢
经纬度
海拔和经纬度对藜麦生长及品质的影响
加强公共场所视频监控系统设备技术革新研究
书籍设计可视因素的独特魅力
基于回归分析的河流弯曲度影响因素研究
皖中长江大跨越拆线施工技术分析
论文旅项目策划中的经纬度
基于经纬度范围的多点任务打包算法
自制中学实验操作型经纬测量仪
基于多元非线性优化理论的影长定位
澳洲位移大,需调经纬度