对太阳影子定位算法探究摘要本文是对2013年全国大学生数学建模竞赛A题的解答.随着人们对数据挖掘的深入,如何确定视频的拍摄地点和拍摄日期已经成为视频数据分析的重要方面,太阳影子定位技术就是通过分析视频中物体的太阳影子变化,确定视频拍摄的地点和日期的一种方法,进而可以促进视频分析定位技术发展。
对于问题一,我们根据地球自转公转的自然规律,建立影子长度变化的数学模型,并且分析影子长度关于各个参数的变化规律。
基于对问题的分析以及理论的学习研究,画出模拟概念图,然后计算相关量(如太阳高度角、赤纬角等)的表达式,并按照相关地理知识建立起模型,得到杆子影长与时间函数表达式,再将题目所给的数据代入求解方程,并用MATLAB作出曲线图,最后检验模型的准确性。
对于问题二,我们以问题一所求出的表达式和资料作为基础,继而利用球面天文学求算太阳视坐标的简化算法建立一模型直接求解出经度,纬度的估算值。
再代进数据并用利用多项式拟合出更长的时间序列曲线,用函数的特征值(最低点)加上时角,时区计算相关知识,再推算出经度值。
最后利用第一问模型,经度,加上曲线获得的几组影长数据联立求解出大致纬度,最后估算杆子所在的地区。
对于问题三,结合问题一问题二所建立的模型,将附件2,附件3的数据先画出散点图并以多项式拟合出两条相对完整的曲线,通过其曲线函数求得影长的最小值以及最小值所对应的时间求得经度,纬度,将经度和纬度代入赤纬角公式以及影长公式可求得相应的具体日期。
对于问题四,首先将视频数据利用MATLAB,并且编程处理视频得到每分钟一帧的图片,再把相关图片转化为灰度图矩阵,最后用语句转化为二值图(0为黑,1为白)。
下一步把二值图集分析并且分析出杆子影长的变化规律,求出视频拍摄点经度,利用模型一求出纬度,即是位置。
关键字:影长位置 MATLAB编程多项式拟合最小二乘法二值图一.问题重述如何确定视频的拍摄地点和拍摄日期是视频数据分析的重要方面,太阳影子定位技术就是通过分析视频中物体的太阳影子变化,确定视频拍摄的地点和日期的一种方法。
1.建立影子长度变化的数学模型,分析影子长度关于各个参数的变化规律,并应用你们建立的模型画出2015年10月22日,北京时间9:00-15:00之间天安门广场,3米高的直杆的太阳影子长度的变化曲线。
2.根据某固定直杆在水平地面上的太阳影子顶点坐标数据,建立数学模型确定直杆所处的地点。
将你们的模型应用于附件1的影子顶点坐标数据,给出若干个可能的地点。
3. 根据某固定直杆在水平地面上的太阳影子顶点坐标数据,建立数学模型确定直杆所处的地点和日期。
将你们的模型分别应用于附件2和附件3的影子顶点坐标数据,给出若干个可能的地点与日期。
4.附件4为一根直杆在太阳下的影子变化的视频,并且已通过某种方式估计出直杆的高度为2米。
请建立确定视频拍摄地点的数学模型,并应用你们的模型给出若干个可能的拍摄地点。
如果拍摄日期未知,你能否根据视频确定出拍摄地点与日期?注:题目及数据附件都可到全国大学生数学建模竞赛官方网站()下载.二.模型的假设1)假设地球在自转时角速度均匀;2)假设地球在公转时的椭圆为规则椭圆;3)假设题目涉及的太阳时计算为真太阳时;4)假设在一天内的太阳高度角不变;5)忽略大气折射对阳光传播的影响。
注:1真太阳日分为24真太阳时。
这个时间系统称为真太阳时。
真太阳时也称为视太阳时,简称视时。
真太阳时即真太阳视圆面中心的时角加12小时。
即:真太阳时=平太阳时+真平太阳时差三.符号说明表1四.模型的建立与求解4.1问题一4.1.1问题1分析题目要求描建立影子长度变化的数学模型,分析影子长度关于各个参数的变化规律。
首先通过查阅相关地理、物理文献,找寻建模中可能遇到的概念、方法,再挖掘建立模型相关的方法,为之后的建模奠定坚实的基础。
模型建立第一步,理清自变量(四个),因变量,选取参考系(参考面还有参考点),建立空间直角坐标系。
再做出太阳随时间移动杆影的直观视图(日照杆影图),最后,利用太阳高度角、杆高等相关量与杆影的几何关系,构造对应函数,使之符合题意,同时根据相应的标准进行统计、分析和构建相关的数学模型。
4.1.2模型1的建立通过对题目的探讨,一根垂直地面的杆子,研究它的影子长度随着日照光线的改变而改变,首先我们确定相应的参考系,以杆子所在地地平面α为参考面,以杆子的最低端为坐标原点,再得到以下的自变量:表2因变量:杆子在参考面上投影长度(可以从杆子顶点在参考面的投影求得)4.1.3步骤一:求出建立模型必须的物理,地理相关量值量在此基础上我们分析地球运动的特性规律与研究杆影与时间、日期、经度、纬度、杆长的相关关系,首先做出日照杆影分析图1-1,如下:图1-1设杆子顶点在地平面上投影点相对于原点坐标为Q(x0,y0),另外杆子高度为H ,影子长度为L 。
太阳高度角可求:)arctan(1L H =θ; 从图1-1中分析,太阳与杆子相夹的角近似为太阳高度角,太阳赤纬角:定义是又称太阳赤纬,是地球赤道平面与太阳和地球中心的连线之间的夹角。
由图1-1几何关系,查阅资料以及推理出计算公式如下:因为题中涉及到的是真太阳日所以太阳赤纬角的计算公式为 )365k)(284×36023.5sin(ε ;+= ① k 为日期序号,如若3月22号,k 就为81。
时角计算公式:12;-15n t , t β== ②太阳高度角θ计算公式:;βεεcos cosWcos sinWsin sin θ+= ③根据三角函数知识以及图中几何关系得,太阳方位角计算公式:;cos sin cos sin θβεφ= ④4.1.4步骤二:利用上面所得的数据求出Q 点的轨迹方程(即为影子轨迹)图1-2对图1-2进行分析,发现在某个地点某个时刻太阳照射杆子杆影的变化曲线图的大致规律:一条类似于抛物线的曲线对杆影的因变量和自变量进行量化分析得影子长度,推并推算相关公式得:;φtan 0y0⋅=x ⑤;φcos x 0L = ⑥ 然后将上述式子联立求解得Q 点的x 坐标的表达式:;φθ2tan 1cot 0x +⋅±=H ⑦ 代入数据得⑧]]]))))12(15cos(cos W cos sin W (sin cos(arcsin ))12(15sin(cos n[[tan[arcsi 1))))12(15cos(cos W cos sin nW (arcsin(cot H x0;-⨯⋅⋅+⋅-⨯⋅+-⨯⋅⋅+⋅⋅±=n n n si εεεεε 由;00L 22y x += 再以时间t 为自变量,可求得影子长度的变化曲线:⑨]]]))))12(15cos(cos W cos sin W (sin cos(arcsin ))12(15sin(cos n[[tan[arcsi 1))))12(15cos(cos W cos sin nW (arcsin(cot H tan 1L 2222;)(-⨯⋅⋅+⋅-⨯⋅+-⨯⋅⋅+⋅⋅+=n n n si εεεεεφ如果数据充足,可以利用MATLAB 做出Q 点的轨迹,以及影子长度随着自变量的变化而变化曲线图,其中纬度被包含在公式中,经度被时角所替代,地方时间n ,日期也嵌套在赤纬角里面,这样四个自变量就可以表示杆影的长度变化曲线。
4.1.5步骤三:计算取值,作曲线计算画出2015年10月22日北京时间9:00-15:00之间天安门广场(北纬39度54分26秒,东经116度23分29秒)3米高的直杆的太阳影子长度的变化曲线。
由步骤二可知道 φβ2tan 1cot 0x +⋅±=H , φtan 0y0⋅=x , 2200L y x +=.是主要公式,联合步骤二的有关公式可以得出直杆的太阳影子长度随时间的变化曲线为θφθφHcos tan 1cot tan 100t L 222222=+⋅+=+=H y x )()(. ⑩ 其中cos θ是时间的函数,因为H 、W 、J 、n 、日期已知,代入数据并用MATLAB 求得杆子顶点的影子长度的变化曲线如曲线图所示:图1-3 检验准确性分析图1-3,可见曲线直观上是一条类似于抛物线的曲线,表明3米高的杆子在北京天安门广场9:00到15:00的杆影长度曲线如图1-3。
图1-4来自于·影端轨迹周年变化的实践与分析_以北温带地区为例_吴济廉再根据相关文献中的依据,其中包含实验验证此现象的记载,表明结果的准确性程度较高。
4.2问题二4.2.1问题二的分析题目要求根据某固定直杆在水平地面上的太阳影子顶点坐标数据,建立模型确定该杆所在的地理方位。
附件一中有的条件是影长,时间,日期,不明确竿子高度H ,求所测地点的经纬度。
4.2.2模型的建立与检验:设竿子长度为H (未知),以问题一所建立模型为基础,利用球面天文学求算太阳视坐标的简化算法对问题进行探究,建立此问题的数学模型,并且带进附件一中的数据,再利用数据拟合出一天之中的竿影长度随时间的变化图,得出最短阴影长度值,进而得到该点经度值。
估算出测验地的地理未知,并检验。
首先我们要计算某一时间的天顶距S (是指在天体方位圈上,天体与天顶之间的交角称为天顶距---来自百度百科),可以从天顶的定位三角形,利用三角几何关系求图2-1百度百科上的天顶角示意图天顶距S 的代数关系式子:;cos cos cos sin sinW cosS βεεW += ⑪ 时角的精确计算方式:;150a -J ⨯+++=r r f (忽略)β ⑫a0为视赤经,f 为真太阳时(忽略),r 为地方时,ε为视赤纬;)2623cos arctan(tan 0a ︒=d , );2623sin sin(sin a ︒=d rc ε太阳的视天顶距为;sin 9tan 0306-S S S S ''+'''''='利用最小二乘法进行拟合求观测地点的经纬度,杆子的高度与影长之间的关系: .tan )cos cos cos sin sinW (arccos tan H βεεW S L +='= ⑬ 当影长一定时,假设杆子高度H 与经度纬度的函数,即是当影长一定时, 可把由影长而推算的物高H 看作为纬度和经度的函数();W,J f H =,⎪⎪⎩⎪⎪⎨⎧'-=∂∂-+=∂∂S H S W t H 3'3sin /sin cos J cos L Jsin /)sin cos cos W cos (sin L W βεεε ⑭ 结合第一问所得的L-t 图,解微分方程求解经度大约106°,再用多项式拟合求经度与之比较。