1太阳影子定位摘要太阳影子定位技术是一项可以确定视频的拍摄地点以及拍摄日期的技术,其核心是分析视频中太阳影子的变化。针对问题一,分析太阳照射在直杆之上时的理想模型,并且核心所求对象为太阳高度角的模型:sinh=sinδsinφ+cosδcosφcost在这个基础之上,根据美国JPL的DE200太阳立法求解出该模型中具体的参数。得到太阳高度角之后,求解影子长度-直杆高度模型,得出了北京市太阳影子高度变化曲线,该曲线表明北京市10月22日的影子长度变化范围是3.1-9.2m,然后利用地理知识直接求解正午太阳高度角,并且求解出的最短影长,与3.1m接近,说明模型一是比较合理的。针对问题二,问题二已知某地影子在地平面上X,Y轴的投影。首先利用勾股定理求解出影子的长度,然后利用第一问的模型进行多项式拟合拟合出影子长度的变化曲线以及太阳高度角的变化曲线。由于日期已知,因此知道了正午太阳高度角,便可知道纬度大概的范围。然后利用第一问模型,求解出北京4月18日北京市太阳影子高度变化曲线,将北京曲线中的最短影子长度时间与当地曲线中的最短影子长度时间做差。所得到的时差即为经度差。最终得到的经纬度可能为下列城市或地区:海南岛西部,北海市,柳州市。针对问题三,由于问题三除了影子长度以外没有其他可知的条件。因此使用问题一或者问题二的方法是不太方便的。经过观察可以知道,无论直杆的高度如何改变,前后杆影的是保持平行关系,并且夹角也保持不变。根据这两个条件可以构造出目标函数,然后利用MATLAB求解出最优的几组解:新疆尉犁县,西藏仲巴县,山西晋中,陕西铜川。针对问题四,提取附件4的视频,利用Hough变换将原始的图进行矫正,得出相关的像素坐标,利用第三问的模型求解出视频的位置在:呼和浩特北部。关键词:影长变化;日地参数;最小二乘法;优化模型;图像处理2一、问题重述如何确定视频的拍摄地点和拍摄日期是视频数据分析的重要方面,太阳影子定位技术就是通过分析视频中物体的太阳影子变化,确定视频拍摄的地点和日期的一种方法。建立数学模型讨论下列问题:1.建立影子长度变化的数学模型,分析影子长度关于各个参数的变化规律,并应用你们建立的模型画出2015年10月22日北京时间9:00-15:00之间天安门广场(北纬39度54分26秒,东经116度23分29秒)3米高的直杆的太阳影子长度的变化曲线。2.根据某固定直杆在水平地面上的太阳影子顶点坐标数据,建立数学模型确定直杆所处的地点。将你们的模型应用于附件1的影子顶点坐标数据,给出若干个可能的地点。3.根据某固定直杆在水平地面上的太阳影子顶点坐标数据,建立数学模型确定直杆所处的地点和日期。将你们的模型分别应用于附件2和附件3的影子顶点坐标数据,给出若干个可能的地点与日期。4.附件4为一根直杆在太阳下的影子变化的视频,并且已通过某种方式估计出直杆的高度为2米。请建立确定视频拍摄地点的数学模型,并应用你们的模型给出若干个可能的拍摄地点。如果拍摄日期未知,你能否根据视频确定出拍摄地点与日期?根据上述的问题的背景以及其具体问题,应该建立下述数学模型解决:1.根据查阅相关的专业文献,根据具体问题的实际情况,建立有关物体影子长度的数学模型。2.针对第二,第三,第四问,分析其相同点以及不同点,构建出相似或者有关联的数学模型。二、问题分析关于问题一,要建立影子长度变化的数学模型,分析影子长度关于各个参数变化的规律。根据上述要求,发现核心的问题是影子长度,而影子是由于物体遮住了光线的传播,不能穿过不透明物体而形成的较暗区域。该问题中的光3源来自太阳,物体则是长度为3米的直杆。因此,首先要考虑太阳相对地球具体某点的位置,找出具体表征太阳位置的参数(太阳高度角,太阳赤纬,太阳赤经,太阳天顶角等),找出具体表征地球位置的参数(经度,纬度),具体的时间(年,月,日等)。根据相关的文献,找出相关量的求解办法,进而利用相关的程序求解出2015年10月22日北京时间9:00-15:00天安门广场直杆影子的长度变化曲线。关于问题二,根据问题一得出的影子长度的数学模型,由于该模型是物体实际长度和影子长度之间的函数关系,而问题二所要用到的附件1提供了所需的数据恰好是某地直杆的影子长度。因此可以先对问题二的影子长度已经太阳高度角进行一定的拟合,利用问题一所给出的模型,以及将北京市作为一个参考点,得出附件1可能的地理位置。关于问题三,由于问题三需要求解时间以及其地理位置,因此可能存在多组情况的问题。所以,可以考虑构造相关的约束方程,比如夹角,杆子,以及影子之间的约束。求解出最优的几组情况。这些情况便是附件2,附件3可能的地理位置。关于第四问,第四问是有关图像处理的问题。因此首先要提取出图像来,然后进一步运用现代算法将失真的图像采集有关的数据,得到了相关的坐标之后,便可考虑前几问的模型进行求解,进而找出附件4可能存在的位置。三、符号说明L第一问影子的长度L2第二问影子的长度Lst参考点经度H直杆的长度W近地点角距M平近点角JD儒略日E偏近点角𝐴1,𝐴2,𝐴1∗,𝐴2∗第三问夹角变化参数h太阳高度角4T当地时间Tst参考点当地地方时Tx第三问待求时间t太阳时角i黄赤交角f真近点角f(x)最小二乘法近似函数e偏心率a轨道半长轴r太阳径向距n一年累计天数s0天平时0h的恒星时𝑙1,𝑙2,𝑙1∗,𝑙2∗第三问影子长度变化参数𝒯当时北京时间α太阳赤经φ纬度δ太阳赤纬Ω升交赤径εi误差函数四、模型假设1.在研究太阳光线照射时,不考虑大气层对光线造成的折射,散射等光学现象,光沿着直线传播到地表。2.假设太阳和地球均为均匀的球体。3.只考虑地球和太阳之间的相互作用,不考虑地球与其他天体的相互作用即不考虑章动和岁差。4.附件所给出的数据是真实可信的。5五、模型的建立与求解5.1问题一模型的建立与求解问题一的分析对整个问题的背景以及问题一的分析,可以知道应该根据当地的地理位置信息(经度,纬度),以及当天的时间,结合有关太阳位置的参数,计算出10月22日北京9:00-15:00的太阳高度角,得出有关影子长度和直杆高度的函数关系。根据该关系,利用MATLAB绘制出太阳影子长度的变化曲线。首先,从问题一中可以提取不少有用的信息:1.北京当天的日期以及时间范围。2.具体的地理位置参数:经度和纬度。3.直杆的长度。根据上述的信息已经可以建立出有关的影子长度-物体高度关系模型。然后,进一步分析影子长度-物体高度的有关模型,可以知道关键是要求解出太阳高度角。阅读相关文献可以得出,为求得太阳高度角应该求解出或者找出下列的参数:1.当地纬度2.太阳赤纬3.太阳时角根据上面三个参数,可以计算出太阳高度角。将太阳高度角代入到影子长度-物体高度模型中,求解出影子长度。最后,根据题目中所给的信息,以及查阅相关的文献,找出求得太阳高度角所需的参数,代入太阳高度角的公式中去,求得不同时间的太阳高度角。最终求解出不同时间的影子长度。问题一模型的建立模型一:影子长度-物体高度模型6根据太阳照射在物体上,形成影子的原理,运用AutoCAD绘出原理图:图1:太阳照射物体形成影子原理图根据上图所示的原理图可以得出影子长度-物体高度模型:L=Htanh(1)分析影子长度-物体高度模型可知,直杆高度H是已知条件,因此太阳高度角是求解该模型的唯一参数。因此要进一步分析问题,需要知道太阳高度角h。模型二:太阳高度角首先,利用AutoCAD画出地球半球以及其相关参数示意图[5]:图2:地球半球以及其相关参数示意图7其中,太阳高度角为h,纬度为φ,太阳赤纬为δ,太阳时角为t,它们之间的关系如上图所示。因此,其函数关系式为[1]:sinh=sinδsinφ+cosδcosφcost(2)从上式可以看出太阳高度角求解所需的参数,由于纬度已经知道为39度54分26秒,因此要求解出太阳赤纬以及太阳时角。模型三:太阳时角以及太阳赤纬首先构建出太阳直角坐标系,以地心处为原点,X轴和Y轴在赤道面上,X轴向着春分点,Y轴在X轴之东90°,Z轴向着北极星,下图为太阳直角坐标系示意图:图3:太阳直角坐标系其中,太阳在太阳直角坐标系下的三个坐标值为:{X=r(cosΩcosu−sinΩsinucosi)Y=r(sinΩcosu+cosΩsinucosi)Z=rsinusini8(u=f+w,Ω为升交点赤经,i为黄赤交角,f真近点角,ω为升交点到近地日点的角距)。从太阳直角坐标系可以看出,太阳的赤纬为:δ=arctan(Z/√X2+Y2)(3)因此求解太阳赤纬必须查阅或者求解出升交点赤经,黄赤交角,真近点角,升交点到近地日点的角距这四个参数。通过查阅相关的文献可知,目前所采用的太阳基本历表是由美国喷气推进实验室(JPL)以及海军天文台(USNO)的得到的太阳历表DE200,由此可得下列的太阳轨道参数[1]:对于当天平春分点的近地点角距(角黄经)ω为:ω=282°56′14′′.45+6190′′.32T+1′′.655T2+0′′.012T3(4)平黄道赤道面交角(轨道倾角)i为:i=23∘26′21′′.448−46′′.8150T−0′′.00059T2+0′′.001813T3(5)平近点角M为:M=357°31′44′′.76+129596581′′.04T−0′′.562T2−0′′.012T3(6)偏心率e为:e=0.01670862−0.0004204T−0.00000124T2(7)轨道半长轴为:a=1.00000102(8)由于此时的升交点恰好与春分点重合,因此升交点的赤经为:𝛺=0(9)上述公式中的T是从2000年1月1日12时TDT算起的儒略世纪数。TDT表示用于地心视位置历表的引数为地球力学。儒略日可以用下面的公式求解出,当然也可以直接查阅相关天文历表得出[6]。JD=D−32075+1461×[y+4800+(m−14)12]14+367×[m−2−(m−14)12×12]12+3×{[y+4900+(m−14)12]100}149除了上述参数,还有真近点角f和太阳径向距r需要求解。根据开普勒定律,偏近点角E满足下列关系[2]:M=E−esinE(10)其中的轨道参数平近点角M以及椭圆轨道偏心率e已知。但是此方程为超越方程,因此无法直接对其进行求解。因此,可以采用直接迭代法,运用计算机编写相关的程序进行求解。下面是直接迭代法的思想:En+1=M+esinEn(𝑛=1,2⋯⋯)(11)得到偏近点角E之后,可以求解出真近点角:{sin(f)=(1−𝑒)12sin(𝐸)1−cos(𝑒)cos(𝑓)=cos(𝐸)−𝐸1−𝑒𝑐𝑜𝑠(𝐸)(12)于是有:f=arctan(sin(f)/cos(f))(13)太阳径向距r为:r=a[1−ecos(E)](14)以上参数的得出可以利用太阳赤纬的公式计算出太阳赤纬。通过查阅相关相关的文章,可以得出有关太阳时角的计算公式[4]:t=𝑠0+𝒯−Δ𝜑+𝛼得到的太阳时角,太阳赤纬以及已知的纬度,可以计算出北京市的太阳高度角。综上所述,有关影子长度-物体高度的模型建立完毕,该模型可以用MATLAB实现。问题一模型的求解根据上述建立的模型,只需要将上述模型代码化(具体代码见附件),运用MATLAB即可实现太阳影子长度变化曲线。在程序中,时间,经纬度均为已知量,通过儒略日计算器计算出10月22日的儒略日,其余的量均为未知。下图为根据模型计算出来的太影子长度变化曲线:10图4:直杆的太阳影子长度变化曲线。模型的验证:已知北京的北纬是39度54分26秒,经过计算可知,此时太阳直射的纬度为:南纬11.63°,结合正午太阳高度角公式以及影子长度-直杆高度模型可计算出正午影子高度约为3.4m,这个与图4是较为吻合的。5.2问题二模型的建立与求解问题二的分析针对问题二,问题二需要提取出附件1中的影子顶点数据,建立相关的数学模型,分析得到的结果,找出该数据可能来自的地点。附件1中影子的数据可知,附件1的数据是影子分解到以地平面为x,y轴的数据。因此,首先需要运用勾股定理,