太阳影子定位
摘要
大数据分析技术的发展让太阳影子定位技术在提升国家的综合国力上有着越来越
重要的作用。本文根据影子定位技术的特点建立了相对运动模型,简化太阳影子长度
的计算模型。根据影响太阳影子长度的因素,建立相关模型求解。
针对问题一,在已知时间,杆坐标和杆长的条件下,建立影子长度关于太阳高度
角和杆长的求解模型,得出计算结果,并依据北京时间和天安门时间的时差将所得结
果进行修正得到较为精确的天安们影子长度。
针对问题二,在缺少了地理坐标和杆长的条件下,本文探索了快速求解坐标的方
法及其特点。随后根据问题一求解模型,将求解模型进行进一步简化,将杆长的影响
因素排除,建立优化模型,并利用计算结果收敛性较好的遗传算法使用MATLAB求解。得到了可能的地区坐标范围为东经105.2°~111.2°,北纬17.2°~21.7°,确定海南为数
据的可能地点。并利用问题一中的模型通过验证影子长度验证结果的正确性。
针对问题三,在缺少了日期的条件下,通过探讨将问题二的模型优化模型改进并
建立了问题三的优化模型,利用遗传算法求解坐标范围,并通过影长计算验证。
针对问题四,用MATLAB提取视频中每帧的灰度图像,随后建立适当的空间坐标系将影子长度的信息提取出来,利用问题一、二和三的模型求解方法求解,最后计算
影长验证结果。
。。。。。。。。。。。。。。。
关键字:相对运动;优化模型;遗传算法;灰度图像;提取坐标
一、问题重述
近年来,由于计算机和互联网领域的快速发展,大数据分析让各行业有了翻天覆地的变化。通过数据分析,个人可以把握时代的脉搏,商家可以获取隐藏的商机,国家可以依此调整政策。数据分析也让太阳影子定位的技术得到了更好的发展。通过分析影子的视频数据,建立适当的模型,就可以初步得出视频的拍摄地点和时间。
问题一,建立数学模型,分析影子的变化规律并得到长度计算模型,并画出随时间变化的影子长度曲线。
问题二,依据影子顶点坐标数据,建立相关数学模型,以确定杆的地点。并根据附件一数据,得出杆的位置。
问题三,在问题二的基础上,建立数学模型来确定杆所处的地点和日期,计算附件2和附件3的数据确定可能的地点和时间。
问题四,根据以上数学模型和杆长度,基于附件四给出的视频数据,计算可能的拍摄地点和时间。
二、问题分析
根据所给的视频数据,分析出视频的拍摄位置和时间。在不同的维度和时间下,物体的影子长度变化不同,所以,要根据影子长度的变化或者正午太阳高度逆向求出拍摄地点的经度和纬度,且影子长度的变化规律与它拍摄的时间有关联,即拍摄时太阳与地球的想对位置及变化规律有着密不可分的关系,所以,建立好相关的模型便可根据已有的数据得出拍摄的时间和地点。
对于问题一,由已知的拍摄地点和拍摄时间确定影子的变化曲线。影子长度是由太阳高度角和杆长共同决定的,要得到影子长度的变化曲线,就要求出太阳高度角的变化规律,就要求出太阳与地球相对位置的变化规律。直接根据天体的运动变化得到这些是困难的,故而需要根据天体的相对运动来建立相对运动模型。
对于问题二,题目中虽然告诉了影子坐标,从而计算出影子的长度变化和影子的轨迹变化,但是缺少了杆长,从而使太阳高度角的计算变得十分困难,求出杆的坐标也就变得麻烦。但是,每个地区每天都会出现正午,而正午的时候影子长度总是最小的,这样本文的注意力转移到利用正午影子长度最短来得到杆的坐标上。随后,经过后续的计算和模型的优化就可使杆的的位置更加精确。或者,我们可以问题二的未知数为经纬度这两个未知数进行列方程求解。
针对问题三,问题三的求解与问题二应该类似,因为,问题三较之问题二少了时间这个条件,即未知数增加,所以,列方程求解或许仍然可行。所不同的是方程数量要多余问题二,且需要较好的算法使结果较好地收敛。
针对问题四,要想在题目中给出的视频中提取数据,就需要对视频的每帧进行灰度处理,设法根据图像中的影像以及给出的杆长计算出影子的长度和影子顶点提取坐标。随后利用在问题一、二和三中所建立的模型,将可能的位置计算出来。
三、模型假设
1、假设一天之内的时角和赤纬角不变。
2、假设光在透过地球大气层时不发生折射。
四、符号说明
符号符号说明
Alt太阳高度角
Lat杆所在的地球纬度
Lon杆所在的地球经度
Elat赤纬角
h杆长
l影子长
Tg太阳时角
θ日角
t北京时间
t中间变量
1
N中间变量
A中间变量
B中间变量
Y中间变量
N积日
t天安门时间
Lon'北京与天安门的经度之差
t任意时刻i的时间
i
Alt任意时刻i的太阳高度角
i
Tg任意时刻i的时角
i
f中间变量
1
f中间变量
2
f中间变量
3
五、 模型建立与求解
5.1 问题一
影子的长度是由太阳高度角和杆长两者决定的,而问题一中杆长已经给出,只需算出太阳高度角即可。而要想得到太阳高度角就需要先计算某一时间太阳与地球的相对位置。此相对位置计算转换较为复杂,故而我们考虑进行相对转化,利用天文学的研究成果,将地球与太阳的关系变化为以地球为核心,太阳绕地球的旋转的模型,可使计算大为简化。 5.11 相对运动模型
建立了相对运动模型如图1,此时杆底点作为原点,而杆顶作为天顶从而以杆向上的方向为z 方向,并认为太阳距离地球无穷远,红四星为太阳,从而将影响影子长度的因素转化为天阳高度角和杆长,也简化了太阳高度角的计算。
图1 相对运动模型示意图
而太阳的时角
()7201510800
t Tg π
-??=
太阳高度角示意图如图2。
Alt l
h
图2 太阳高度角示意图
而太阳高度角为
()()()()()arcsin sin sin cos cos cos Alt Elat Lat Elat Lat Tg =+????
(1)
影长与太阳高度角及杆长的关系为
()tan h
Alt l
= 其中 ,赤纬角
0.372323.2567sin 0.1149sin 20.1712sin 30.758cos 0.3656cos 2 0.0201cos3Elat θθθθθθ=++--++
θ为日角
1
2365.2422
t πθ=
其中
10t N N =-
N 为积日。
0198579.67640.2422(y 1985)4y N INT -??
=+?-- ?
??
使用MATLAB 计算[1]得出的数据见表1。
表1 杆的影长与时间的变化表 时间 杆的影长 9:00
6.6276
10:00 4.8122
11:00 3.9433
12:00 3.6746
13:00 3.9172
14:00 4.7505
15:00 6.522
从表中可以看出上午9:00的杆的影长和下午15:00的杆的影长基本一致且为最长,分别为6.6276m和6.522m说明此时的太阳高度角最小,12:00的影长最短,为3.6746m,说明此时的太阳高度角最小,而且此时的正午影长略大于杆长,说明此时的正午太阳
高度角小于45°,这是因为10月22日已经深秋,太阳直射点在南半球,数据结果满足
地理学的知识体系。影长与时间的关系图见图3。
图3 影长与时间的关系图
图3中横坐标代表时间(单位:h),纵坐标代表影子的长度(单位:m),可以
观察到图像关于12:00是对称图形,且12:00时影子长度最小。
但是,注意到北京时间的经度是东经120°,所以北京时间与天安门广场有一定的
时差,它会使天安门的正午时间出现在12:00之后。天安门时间与北京时间的关系为
04
t t Lon'
=+
然后将
t代入上述模型中计算可得修正之后的数据间表2。
表2 修正后的影子长度所时间的变化
时间修正后的影子长度
9:00 7.3657
10:00 5.1070
11:00 4.0956
12:00 3.6889
13:00 3.8077
14:00 4.5091
15:00 6.0498
可以看得,9:00和15:00的两个影子长度有一定的差,而且前者大于后者。12:00的影子长度较修正之前有所增大,这是由北京时间的经度大于天安门的经度引起的。修正后的图像见图4。
图4 修正后的影子长度随时间的变化
从图4中可以看出,影子最短的时刻在12:00之后,这说明天安门的正午在12:00之后。整个图形是修正前的图像在时间上的滞后,这正是因为天安门的经度比北京时间的经度小的缘故。
5.2 问题二
5.2.1模型一
由于缺少杆长,所以即使算出的影子长度也无法直接得到太阳高度角,而且由于给出的坐标的坐标系是随意建立的直角坐标系,也很难利用坐标的变化建立合理的模型进行计算。但是,观察到任意三个时刻的影长和杆长以及太阳高度角的方程。
()11
tan h
Alt l = ()22
tan h
Alt l = ()33
tan h
Alt l = 使两试相除可消除h 的影响,得到
()()1212tan tan Alt l l Alt =
()()
2323tan tan Alt l l Alt =
并进一步计算得
()
2222222221111
111
sin sin (Alt )l Alt l l l -=- ()
222222222333
1
111sin sin (Alt )l Alt l l l -
=- 其中
()()()()()()11sin sin sin cos cos cos Alt Elat Lat Elat Lat Tg =+ ()()()()()()
22sin sin sin cos cos cos Alt Elat Lat Elat Lat Tg =+ ()()()()()()
33sin sin sin cos cos cos Alt Elat Lat Elat Lat Tg =+
并求解
()2212min f f +
()()122
2222221121222222233223211
11sin sin (Alt )1111sin sin (Alt )f l Alt l l l f l Alt l l l ???=---? ????
?
???=--- ?
????
此问题是解决最优化的问题,而要解决这一问题,本文选用遗传算法[2],其优点是直接对结构对象进行操作,而不存在求导和函数连续性的限定的条件等。遗传算法流程图,如图。。。
根据遗传算法的特点,而且此问题的参数较少,收敛速度较快,本文将给出的数据繁衍500代之后,得到结果。计算部分结果见表3,全部结果见附表,,,从表3中
可以看出未知区域在东经105.2°~111.2°,北纬17.2°~21.7°,杆长从1.8835m~
2.2557m。经网上搜索地图验证,这一地区在海南及其附近的海域。经度的平均值为东
经108.5704°,纬度的平均值为北纬19.26708°,平均杆长为2.0377m。
表3 部分结果数据表
Lon Lat l
109.6 18.6 1.97999
109.7 18.7 1.972258
110 18 1.957869
108.7 19.3 2.035171
108.2 19.5 2.068241
110.9 17.6 1.900749
109.9 18.6 1.959626
我们从结果数据中找到东经109°,北纬19.5°,杆长为2.002m,在该杆长和本地时间的情况下,杆应有的影子长度和给出的影子长度进行比较,如图5。
图5 检验图
从图中观察发现,计算结果与本地影长基本一致,误差很小,说明这种方法合理。误差产生的原因可能是由于大气折射或者测量误差的作用,故本题答案合理。
而且由于本模型只需要几个影子顶点坐标点就可以得到杆的位置,时间,所以在
随后的问题解决方案中也将用到该模型的解题思路。
图6 遗传算法流程图
5.2.2模型二
由于没有了杆长,无法从影子的长度得出太阳高度角,进而无法得到杆所在的经纬度。本文从数据的分析角度入手,将数据进行拟合,得出杆在最小影子长度时的时间,此时刻与北京正午时刻的差值即是该地与北京的时差,从而得到它与北京的经度之差。继而得到该区的经度,随后方程的求解就只有一个未知数[3],带入问题一模型计算可得结果,但是初步计算这种方法的结果为越南的胡志明市,其在东经106.6°,北纬10.8°,这与模型一的解有过大不同。因为,拟合会产生很大的误差,所以这种计算经度的方法误差较大,经检验,经纬度相差一度会导致大约100公里以上的误差。
故本文从另一方面出发,在杆的高度不变的情况下,我们对比问题一中天安门与该问题中的影子长度随时间的变化曲线,见图7。本文发现,该地的影子变化曲线在天安门的影子变化曲线右下方,然后计算出当天的经纬度大致为10°,故该地的位置纬度在北纬10°~39°之间。根据该地影子长度曲线与天安门影子长度曲线的走势的关系,逐渐改变经度,纬度,找到一个大致的范围。经度是95°,纬度约是25°,逐渐调整,最后锁定在经度95.3999°。
图7 该地与天安门的影子长度变化图
为简化书写,定义
()sin Y Alt = ()()cos cos B Elat Tg =
()sin A Elat = ()sin X Lat =
并将算式(1)化简为
2X A B
=
+
根据,影子顶点的坐标可以得到影子的长度l ,并得到太阳高度角
arctan h Alt l ??
= ???
该地时角
()24120720720Tg t Lon π
=+--?????
利用问题一模型利用MATLAB 求解。解得纬度值见表4 。
表4 纬度值解表
赤道附近纬度
北回归线附近纬度
-3.2111° 25.2085° -2.6862° 25.3191° -2.3342° 25.3342° -1.6053° 35.3354° -0.7893°
25.3264°
故可得,纬度大致在两个地区,即南半球赤道附近南纬-0.7°~-3.2°之间,以及北回归线附近25.2085°~25.3264°之间。经查证,南半球附近无可能,因为这一区域是大海,而北回归线附近的这些解符合。即是北纬25.2085°~25.3264°,东经95.399°。该地实际影子长度与理论影子长度见图8。
图8 验证图
可以观察到,计算的结果与原影子长度几乎一致。但是该模型只能解决在杆长相等的情况下其它地区的坐标的问题,所以稳定性和灵敏性不高。 5.3 问题三
问题三由于没有告诉杆长,数据的时间以及经纬度,所以本问题根据问题一的模型存在四个未知数,而需要列出四个方程,所以本问题的解决思路与问题二的模型一相似,任意四个时刻的影长,太阳高度角和杆长的关系为
()11
tan h
Alt l = ()22
tan h
Alt l =
()33
tan h
Alt l = ()44
tan h
Alt l = 使两试相除可消除h 的影响,得到
()()1212tan tan Alt l l Alt =
()()2323tan tan Alt l l Alt =
()()
3434tan tan Alt l l Alt =
并进一步的计算得
()
222222111222
1111sin sin (Alt )l Alt l l l -
=- ()
2
222222223331
111
sin sin (Alt )l Alt l l l -=- ()
222222333444
1111sin sin (Alt )l Alt l l l -
=- 其中
()()()()()()11sin sin sin cos cos cos Alt Elat Lat Elat Lat Tg =+ ()()()()()()22sin sin sin cos cos cos Alt Elat Lat Elat Lat Tg =+ ()()()()()()
33sin sin sin cos cos cos Alt Elat Lat Elat Lat Tg =+
()()()()()()44sin sin sin cos cos cos Alt Elat Lat Elat Lat Tg =+
并根据问题二的模型一求解
()222123min f f f ++
()()()122
222211*********
22223323322222233443411
11sin sin (Alt )1111sin sin (Alt )1111sin sin (Alt )f l Alt l l l f l Alt l l l f l Alt l l l ???=---? ????????=---? ????????=--- ?????
结合问题一模型和问题二的模型一,将附件2数据繁衍100代后,其实际影长与理论影长的关系见图9。
图9 100代后的影长情况图
从图中,可以看出当位置在东经77.8353°,北纬13.1653°,杆长为1.721m,且所在日期为2015年4月25日时,其实际影长与理论影长的差别较大,这是因为本问题的参数较多,而且繁衍代数较少。所以增加繁衍代数至500代,结果见图10。
图10 500代的繁衍结果
由图可知,在图示位置、时间以及杆长的情况下,实际影长与理论影长已经基本符合。但是进一步观察其他的数据,结果见图11。
图11 500代繁衍结果
观察得该地的理论影子长度与实际影子长度有一定的差值,这可能是由于现在修正该地纬度坐标,并得到图12。可以发现,当地的理论影子长度和实际的影子长度非
常好地吻合,说明东经78°,北纬33.5°在2015年4月22日且杆长为1.7119m时是符
合题目的。
图12 修正后的检验图
本文发现,两个曲线的交点是两个而非一个,这说明导致误差的原因不是算法,
而是题目所给的数据有误差,而前述坐标需要修正,正是因为误差被放大导致的。故,模型稳定性很好。所以可以确定该区域在新疆。
将附件3的数据代入模型中计算,结果中大多数据的误差较大,图13。所示的误
差最小,可以确定此结果为最优结果其位置在东经110.8358°,北纬31.9683°,杆长
为2.4165m,日期为12月22日。将此坐标在地图上定位可得到地点为湖北。
图13 最佳结果校验图
5.4 问题四
问题四向我们提供了一段时长40分钟的视频资料,与前述问题相似,需要提取影子顶点的坐标随时间变化的数据,从而得到影子长度随时间变化的关系,从而利用问题一,二,三中的模型来计算。所以,首先需要我们对视频中的每帧图像进行灰度处理[5] ,然后根据 提取出数据
要得到影子图像的顶点,就要得出整个杆的影子中心的全部坐标。以下是找到杆的各段影子中心的方法:
第一步:在图像上获取两个像素点坐标,,,,,提取影子上的两点()11,x y 和()22,x y 。 第二部:提取杆上两点()0101,x y 和()0202,x y 。
第三部:建立直角坐标系画出杆和影子的直线,交点即为影子的中心坐标。
即
()12
1112
y y y y x x x x --=-- ()0102
01010102
y y y y x x x x --=
--
可以解得(),x y 。
六、 模型的优缺点
8.11 模型的优点
1、建立了相对运动模型,使复杂的转换变得极为简便,减少了计算难度和误差,也使
问题的分析变得简单。
2、使用遗传算法求解最优化问题,结果可靠,模型简单,便于推广。
3、模型利用方程代换消除杆高的影响,使结果的精度不受杆高的影响,从而避免了假
设杆高,使计算结果更加准确。
4、本文从多个角度出发,寻找可行方案,综合比较了较多的方案,得到了较好的模型,
所以模型稳定性较强。
5、本文在理论结果的基础上,根据实际情况进行了修正,并针对得到的结果进行了检
验,所以模型计算结果的精确度较高。
6、问题四的坐标提取是通过可靠的模型获得的,故数据的可靠性较强,处理得出来的
结果的误差较小,提高了模型的稳定性和灵敏度,使模型有了较大空间的应用价值。8.12 模型的缺点
1、大气折射未计算在内,所以,从而没有对光的路径进行修正,从而模型存在了不可
避免的误差。
2、测量误差,计算误差等即便是很小都会在地球坐标中放大,使得计算结果与实际情
况有差别。本文由于时间因素,对测量误差的考虑和计算较少。
七、模型改进
1、本文尚未考虑大气的折射,因为大气的折射率的计算较为复杂,而且大气的折射率
随着温度的变化而变换,模型的建立极为困难。
2、本文可由于测量以及计算误差等方面的影响,使得真实值难以确定,但可引进概率
论的思想,结合地理学,确定出最有可能的地方,以及在地球上可能地方以及概率分布图;
3、问题三中附件3数据处理的结果的误差较大,可能是由于遗传算法的某些误差引起
的,可进行相关的后续处理。
八、模型的推广和应用
1、本模型可以大量运用于军事性行动,通过控制敌方的摄像头,观测阴影的变化即可
得到对方的坐标等大量的宝贵的军事性信息,使得模型应用方取得先机。也可大量用于救援行动,当事发地坐标和时间未知的情况下,通过分析可获得的视频,便可获得该地坐标,避免了盲目救援的行为,使救援效率提升。
2、问题二的模型在进行计算前先将算式进行处理,而且计算结果收敛性较好,故可大
量应用于优化类模型的解计算中。
3、本文模型可广泛应用于视频处理上,一般的图像或视频都是彩色的,通过进行灰度
处理即可得到处理简单的图像,也可根据需要在此基础上对视频或图像进行二值化处理。本文中坐标的提取有着较大的可靠性,在其它合适的场合这种坐标的提取方法有着处理简单和计算速度较快等优点。
九、参考文献
[1] 李大潜.中国大学生数学建模竞赛[M].高等教育出版社,1998.
[2] 韩中庚.数学建模方法及其应用(第二版)[M].北京:高等教育出版社,2009.
[3] 白其铮.数学建模案例分析[M].北京:海洋出版社,2000.
[4] 徐飞,施晓红.MATLAB应用图像处理[M].西安:西安电子科技大学出版社,2002.
[5] 夏良正.数字图像处理[M].南京:东南大学出版社,1999.