太
太 太阳 阳 阳影 影 影子 子 子定 定 定位 位 位
摘 摘 摘要 要 要
对于问题一,根据物体所处的位置(经度、维度以及测量的时间),建立了物体影子长 度随时间变化的数学模型。根据模型,绘制了2015年10月22日北京时间9 : 00-15 : 00之间天 安门广场北纬39度54分26秒,东经116度23分29秒)3米高的直杆的太阳影子长度的变化曲线,
图形显示北京时间上午9点直杆的影子最长,在7.25米左右,影子最短长度为3.7米左右,下 午15点影子长度为6.1米左右。图形不对称是因为北京的时间与北京时间相差3.6个经度。
对于问题二,由于问题一所建模型反推难度较大,我们把2015年4月18日北京时间15点 左右地球上为白天的区域按照经度和维度进行了分割构成了一个大的网格(分割的细度 为1度)。对于附件1的数据,我们很容易求得直杆影长的变化率。由于网格的格点处经度和 维度已知,根据问题一中所建模型,求所有格点处按照北京时间14点42到15点42一根任意长 度的直杆的影子长度的变化率,把所得的变化率数据与实际影长的变化率求方差,方差最小 的格点即为直杆所处的位置。利用MAT LAB软件编程求得直杆所处的位置在北纬19度,东 经109度或者是南纬4度,东经104度。
针对问题三,在实际的求解过程中只需要在问题二解决的基础上对时间进行分割搜索。
搜索的结果显示附件2给出的数据可能是在北纬39度,东经79或者是0度,东经79度测量的;
附件3给出的数据可能是在北纬31度,东经109度,或者南纬2度,东经109度。
对于问题四,所给出的视频,我们利用tracker软件对视频进行了处理,每隔4分钟测量 在所给坐标系中直杆影子的变化情况,根据相机的成像原理建立一个图像中影子长度与真实 的影子长度之间的换算函数,得到了真实的的直杆影子变化。再根据问题一中的模型求出 在其他区域相应时间直杆影子的变化情况,再和视频给出的直杆影子的变化情况做比较,
误差最小的一个就是视频的拍摄地点。利用MAT LAB软件编程确定视频的拍摄地点在北 纬40度,东经110度附近。
关 关
关键键键词词词: 影子定位;视频处理;分割搜索算法
1. 问 问 问题 题 题重 重 重述 述 述
如何确定视频的拍摄地点和拍摄日期是视频数据分析的重要方面,太阳影子定位技术就 是通过分析视频中物体的太阳影子变化,确定视频的地点和日期的一种方法。
(1) 由 于 太 阳 光 下 影 子 的 长 度 是 随 着 相 关 因 素 的 变 化 而 变 化 的 , 因 此 建 立 影 子 长 度 变 化 规 律 , 然 后 分 析 影 子 长 度 关 于 各 个 参 数 的 变 化 规 律 , 建 立 影 子 变 化 的 模 型 后 , 将2015年10月22日 北 京 时 间9:00-15:00之 间 天 安 门 广 场 ( 北 纬39度54分26秒 , 东 经116度23分29秒)3米高的直杆这些条件带到建立的模型里后再画出太阳影子长度的变化曲 线。
(2)如果一个杆子在水平地面上经太阳照射后的影子坐标和日期给出,然后建立数学 模型确定那根杆子所处的地点。这个模型可以拿附件一里的数据做验证,然后去确定所有满 足条件的可能地点。
(3)如果一个杆子在水平面上经太阳光照射在地面上影子顶点坐标给出,然后建立数学模 型确定那根杆子的所处地点和日期。然后用附件2和附件3的影子顶点坐标来应用与模型中一 次确定所有可能的地点和日期。
(4)根据附件4给出的视频里太阳影子的变化,如果已经通过各种某种方式估计出直杆的 高度后,建立一个能确定这个视屏拍摄的地点的数学模型,然后用建立的模型去确定若干个 可能的拍摄地点。如果拍摄日期未知时,再考虑能否根据视屏确定出拍摄地点和日期。
2. 问 问 问题 题 题分 分 分析 析 析
2.1. 问 问 问题 题 题一 一 一
因为影子长度的变化与太阳高度角有关,因此影响太阳高度角的因素即为影响影长的因 素。根据几何和地理学的相关知识推出的太阳高度角计算公式可知,影响它的因素有观测地 的纬度、观测时的日期以及观测时的时间。影子和地面以及杆子三者构成的三角形里由三角 关系可以求出影子的长度公式,最后将上面推出的太阳高度角的计算公式带入影子长度计 算公式中,就得到所要求解的影子长度变化规律的函数,最后用MATLAB 编制关于影子长 度变化规律的函数的程序,将问题一给出2015年10月22日北京时间9:00-15:00之间天安门广场
(北纬39度54分26秒,东经116度23分29秒)3米高的直杆相关参数带入程序中便可以绘制出 所求的太阳影子的变化规律曲线图
2.2. 问 问 问题 题 题二 二 二
问题二采用穷举筛选的思想。将北京时间14:42-15:42这个时间段内全球处于白天的区域 找出,然后将这个区域分解成若干个子区域,取每个子区域某一点的经纬度作为各个子区域 的经纬度。根据相关地理知识可以求出其他子区域的经纬度,以及附件一中给出的时间点在 每个小区域所对应的时间。再根据问题一建立的影长模型求出各个子区间的在相应时间点所 对应的影长,得到一个影长数组。然后再对每个子区域的影长数组里相邻影长做比值,得到 一个比值数组。同样对附件一里的数据用坐标求出影长数组后做同样处理,最终每个子区域 包括附加一里的观测地都将得到一个的影长比值数组,最后将各个子区域的影长比值数组分 别于附件一里影长比值数组做比较,误差较小的几个区域便是观测地所在的地址。
2.3. 问 问 问题 题 题三 三 三
对问题三的分析采用和问题二类似的思想,这里就是在问题二的基础上再多考虑一下时 间的划分,问题二中是将一块处于白天的区域进行经纬度等分割,由于地球的公转是周期性 的因此这里在处理时间的方法是取一年这个时间段然后等分割成365天。下面的任务就是将 每一天的日期带入到第二问的模型中,算出每一天所有子区域的影长比值数组与附件给定的 数据得到的比值数组之间的方差,然后在这些方差中找到较小的几个,那么其对应的日期和 观测地就是附件数据可能的日期和观测地
2.4. 问 问 问题 题 题四 四 四
问题四给出了一个拍摄的视频,其中包括了拍摄的时间和日期等信息,现在要利用这些 条件分析视频拍摄的地点。将整个拍摄的视频按等间段分割,每隔一个几分钟取一帧,得到 了与不同时刻对应的图片,然后用MATLAB软件对这些图片进行处理,读取每张图片杆子在 地面上的影子长度,根据透视原理算出每张图片对应的真实影长,得到一个影长序列。接下 来利用视频中给出的拍摄时间段确定整个地球处于白天的区域,然后对我们得到的区域进行 划分,再用问题一的模型求出每个子区域里同样一根杆子在视频里对应时间点的影子长度,
然后与视频拍摄点的杆子的影子长度做方差。方差最小的那个子区域就是视频可能的拍摄地 点。
3. 问 问 问题 题 题假 假 假设 设 设与 与 与符 符 符号 号 号说 说 说明 明 明
3.1. 问 问 问题 题 题假 假 假设 设 设
假设 1:太阳光为平行光;
假设 2:忽略大气层对太阳光的折射;
假设 3:忽略海拔、地形等地理因素的影响;
假设 4:假定在一定的区域范围内影子的变化规律近似相同;
3.2. 符 符 符号 号 号说 说 说明 明 明
• L. . . .影子长度
• H . . . .杆子的高度
• φ . . . 太阳光与影子的夹角
• R . . . 地球半径
• α . . . B点的纬度
• β . . . A地与太阳直射点B点的经度差
• γ . . . A地的纬度
• T1, T2 . . . 北京时间13:09和14:09
• xi, yi . . . 影子端点的坐标
• Li. . . 影子长度向量组中第i个数
• Si. . . 影子比值数组中第i个数
• A1, A2 . . . 起始端和终端的经度
• Tm. . . 一个经度相差的时间
• B1, B2. . . 起始端和终端的纬度
• d . . . 经纬度划分的间隔为10
• ∆t . . . 时间间隔
• αi . . . 一个经度代表的时间
• Wpq. . . 经度为p纬度为q的子区域
• Tm. . . 每个经度表示的时间差距
• tpq(1), tpq(2) . . . 子区域的起始时间
• Lpq(i) . . . 子区域第i个时间点的影子长度
• Kij. . . 影长比值
• n, y, r . . . 表示年,月,日
• D(ij)(ny) . . . 某个时期(n y)的影长比值差异
• λ . . . 图片的比例尺
• δ . . . 太阳赤纬
• η . . . .太阳高度角
4. 模 模 模型 型 型的 的 的建 建 建立 立 立
4.1. 问 问 问题 题 题一 一 一模 模型 模 型 型的 的 的建 建 建立 立 立
为了得到影子长度关于关于各个参数的变化规律,考虑太阳光线的变化,如图下图所示
图 1 太阳照射杆子的图形
太阳光线、杆子以及地面构成一个直角三角形,那么影子长度的公式为L = H tan φ。
要知道影长的变化规律,只要知道φ的变化规律。而φ可以通过太阳高度角η确定。画出 太阳光照射地球的三维图.以O点为圆心,OD所在直线为X轴,过地心的轴线OM为Z轴建立 空间直角坐标系,如图;
图 2 太阳照射地球的三维图
由于太阳光是平行光,那么根据平行关系可以得到如下平面图:
图 3 平面图
从 图 中 可 以 看 出̸ AOB等 于 太 阳 高 度 角 。A、B点 的 坐 标 分 别 为(R cos γ,0,R sin γ), (R cos α cos β,R cos α cos β,R sin α) 求出OA,OB,AB的长度,由余弦定理计算得到̸ AOB
OA的长度:
OA =√
(R cos γ)2+ (R sin γ)2 (1)
OB的长度:
OB =√
(R cos γ cos β)2+ (R cos γ cos β)2 + (R sin γ)2 (2) AB的长度:
AB =√
(R cos γ cos β − R cos γ)2 − (R cos γ cos β)2− (R sin γ − R sin γ) (3)
̸ AOB的公式:
̸ AOB = arccosOA2+ OB2− AB2
2OA· OB (4)
那么太阳高度角为:
sin η = sin φ′sin δ′ + cos φ′cos δ′cos γ′ (5) 将(1)式与(5)式结合求出影子长度关于各个参数的函数因此影子长度的变化规律得出,
L = H × sin η
√1− sin η2 (6)
4.2. 问 问 问题 题 题二 二 二模 模型 模 型 型的 的 的建 建 建立 立 立
(1)假设对某地的一根杆子在北京时间(T1,T2)这个时间段内的影子长度进行测量,得 到N个时间点的影子端点坐标。(xi,yi),(i=1,2,3... N),
根据勾股定理:x2i + y2i = L2i,(i=1,2,3... N)
图 4 坐标系
因此得到各个时间点的影长数组L = (L1, L2...LN) 再将影长数组L中分别用后一个影长 比前一个影长得到N − 1个影长比值的数组S = (S1, S2...SN−1)。然后求出全球在(T1,T2)这个 时间段处于白天的区域范围:
晨线经度:
A1 = 116− (7 − T1)αi (7) 昏线经度:
A2 = 116− (18 − T2)αi (8) 那么(T1,T2)这个时间段全球处于白天区域的经度范围是(A1,A2)纬度范围是((B1,B2)),因 此白天的区域如下图所示,
图 5 处于白天的区域图
然后以北京为起始点,经度和纬度都按照公差为d以东经120”为中心,划分上述时区 图,在时区图上画出等间隔的横线和竖线,得到如下网格图;
图 6 划分子区域的网格图
图中每个小网格代表的区域的经纬度用网格中的一个点的经纬度表示,并认为每个小网 格内影子长度的比值不变,然后根据时间和经度的关系可以求出北京时间(T1,T2) 时间段内每 个小区域Wpq所对应的时间段,
求时间段公式:
tpq(1) = (p− A1)Tm+ 7; (9)
tpq(2) = (q− A1)Tm+ 7 + (T2 − T1) (10) 其中,Tm表示相差一个经度的时间差
从区域Wpq的tpq(1)时刻开始每隔δ 分钟利用问题一中的模型求出影子长度,第ϵ 时刻的 时间为
t = tpq(1) + (ϵ− 1)δ (11)
影子长度为:
L = F (q, n, y, r, t, H) (12)
Lpq(i) = L tan φi (13) 因此得到每个子区间里N个时刻的影长组:
Lpq = (L tan φ1, L tan φ2...L tan φN) (14) 再将Lpq向量组中分别用后一个元素比前一个元素,
K = L tan φi+1
L tan φi (15)
得到一个N − 1维的比值数组
K = (K1, K2...KN−1) (16)
定义求得的比值向量为每个区域的”特征”,再通过比较每个小区域的”特征”与观测地 的”特征”差异,确定可能的观测地点。
将每个小区域的比值向量与观测地的比值向量做方差得:
Dij = vu utN∑−1
i=1
(ki− Si)2 (17)
Dij 定义为子区域与观测地点的差异;找到Dij的最小值;
Dϕψ = minDij (18)
最后根据以上方法求出各个子区间和观测地的方差Dij 其中方差最小的那个区域就是观 测地所在的位置。
观测地的经度为:
p = A1+ ϕ− 1 (19)
观测地的纬度为:
q = 90− ψ (20)
4.3. 问 问 问题 题 题三 三 三模 模型 模 型 型的 的 的建 建 建立 立 立
问题三的解题思路与问题二类似,只要在问题二模型的基础上对日期进行筛选,确定出 观测点的精确日期:假设可能的日期范围是(D1D2)。以T0 为单位将这个日期范围分割得到 如下一个日期序列数组
D = (d1, d2, d3,,..ds), s = 1, 2, 3...n (21)
再将每个日期带入到问题一中的模型函数中L = F (a, n, y, r, t, H), 然后再通过问题二建 立的模型求出在各个日期每个子区域的差异,其中差异最小的一个为:
Dϕ1φ2ds = minDijds, s = 1, 2, 3...n (22) 因此此问题的观测地经度:
P1 = A1+ ϕ1− 1 (23)
观测地纬度
Q1 = 90− ψ2 (24)
4.4. 问 问 问题 题 题四 四 四模 模型 模 型 型的 的 的建 建 建立 立 立
对于问题四,首先假设相机和杆子的位置如图所示:
图 7 相机个杆子的位置图
相机镜头所在平面与杆子的夹角为γ0′如图:
图 8 机镜头所在平面与杆子的夹角示意图
(1)通过相关软件处理图片知道图片中影子长度为L′0,杆子的长度为S′,而已知杆子的真 实长度为S,那么图片中的长度与显示中的长度的比例λ = SS′
从图片中读取的影子长度就是上图中影子在与摄相机镜头平行的直线上的投影OE的长 度,即OE = l′0,因此OE的实际长度为:
l0 = λl′0 (25)
再假设影子与OE的夹角为γ0′ 那么真实的影子的长度公式为:
L0 = λl0′ tan γ0′ (26) 因此求出t0 时刻影子长度为L0
(2)由于地球的运动,影子的端点也会发生改变,ti时刻的影子如图:
图 9 机镜头所在平面与杆子的夹角示意图
由图片可得到OE′的图像长度li′,因此OE′实际长度为li = λli′ 图中θi就是太阳在ti− t0这 个时间段内太阳方位角的变化,其计算公式为:
θi = arcsincos δ.sin ∆ω
cos η (27)
又太阳时角的计算公式为:
ω = (ti− t0)×15
60 (28)
ti影子的真实长度为:
Li = litan(γ0′ − θi) = λli′tan(γ0′ − θi) = λl′itan(γ0′ − arcsincos δ.sin(ti− t0)× 15/60
cos η ) (29) (2) 接下来的过程与问题二类似,求出处于白天的区域再将其分割成一个个的小区域,
然后求出在不同的小区域长为S的杆子在相应时间点的影子长度:
T = (T1, T2, T3...Tn)
观测地影子长度为:L = (L1, L2, L3...Ln) 将T 与L做方差得:
Dt= vu ut∑n
t=1
(Tt− Lt)2 (30) 因此方差最小的就是可能的拍摄地。
5. 模 模 模型 型 型的 的 的求 求 求解 解 解
5.1. 问 问 问题 题 题一 一 一的 的 的求 求 求解 解 解
为了解决问题一的模型,由于问题一中影子长度受时间和日期,地点也就是经纬度、太 阳高度角等众多因素影响,根据问题一建立的模型如果我们想计算影长的变化规律我们可以 按如下步骤去求解
Step 1 : 计算出太阳高度角;
Step 2: 太阳高度角中需要用到赤纬,查阅相关文献[5]得到赤纬的计算公式:
δ′ = 0.3723+23.2567 sin θ+0.1149 sin 2θ−0.1712 sin 3θ−0.758 cos θ+0.3656 cos 2θ+0.0201 cos 3θ (31) 上式中θ的计算如下:
θ = 2πt′1
365.2422 (32)
t′1的求解公式为:
t′1 = N′ − N0 (33)
表达式中的N0的公式如下:
N0 = 79.6764 + 0.2422× n − 1985 − (n − 1985 × 1
4) (34)
太阳高度角的计算公式为:
sin η = sin φ′sin δ′ + cos φ′cos δ′cos γ′ (35)
其中:
γ′ = t− 12 × 60 ×15
60 (36)
Step 3 : 将题目中所给的2015年10月22日北京时间9 : 00− 15 : 00之间天安门广场(北 纬39度54分26秒,东经116度23分29秒)3米高的直杆相关参数带到程序中便可以绘制出所求 的太阳影子的变化规律曲线图如下
9 10 11 12 13 14 15 3.5
4 4.5 5 5.5 6 6.5 7 7.5
The shadow of the pole
Time
Height
图 10 杆子影长的变化规律曲线图
图中的曲线不是关于12点对称,因为题中所说的北京时间是指东经1200这条经线上的时 间,而北京天安门广场的经度是1160,因此由经度跟时间的关系可以推算出天安门广场和东 经1200的时间差为∆t = 5× 6015,因此北京时间9:00-15:00换算成天安门广场的时间然后能得到 一个时间段,这个时间段为(9 : 00− ∆t, 15 : 00 − ∆t)
因为天安门广场的时角是不对称的,因此太阳光在12:00之前照射天安门广场的时间大 于12:00之后照射的时间,因此最终的影长图是左高右低,如上面的图像所示,图像的最低点 在12:00左右。
相关的MATLAB程序见附录1.
5.2. 问 问 问题 题 题二 二 二的 的 的求 求 求解 解 解
通过附录1中给出的时间,确定搜索的经度范围是:东经0度–东经165度;搜索的纬度 范围是北纬0度–北纬90度;将经度和纬度都按照间隔为1度等距离分割这块区域,并通过 经纬度的计算公式求出每个子区域的经纬度,再通过时间与经度的换算关系算出北京时 间14:42–15:42这个时间段内,在各个小区域对应当地时间的时间段,然后利用第一问建立的 模型算出各个小区域在对应时间点的杆子长度然后求出影长的比值数组,对附件一给出的影 子端点的坐标求出影长,然后对同样对相邻影长做比值得到一组比值数组,最后将每个区域 的比值数组与附件给出的数据的比值数组求方差,通过MATLAB编程序(见附录2),求得最 优的区域如下:
表1 附件一可能的地点
经纬度 190
N ,109
0E
40S,104
0E
区域 海南岛附近 印度尼西亚
5.3. 问 问 问题 题 题三 三 三的 的 的求 求 求解 解 解
问题三与问题二类似,因此在求解问题三时,首先根据附件2和附件3给出的时间确定 出搜索区域,并将得到的搜索区域进行划分,确定每个子区域的经纬度。将日期从1月1号 至12月31号分别带入问题一建立的模型函数,求出每一个日期所有子区域的比值数组与附件 的数据确定的比值数组的误差,然后比较所有日期的子区域的误差,最小的那个区域和日期 就是拍摄地点可能的日期和拍摄地。通过MATLAB软件(见附录3)来计算得出如下结果:
表2 附件二可能的地点和日期
日期 地点1 地点2
5月19号 390
N ,79
0E
00,790E
7月19号 390N ,79
0E
00,790E
表3 附件三可能的地点和日期
日期 地点1 地点2
1月6号 310
N ,109
0E
20S,109
0E
11月3号 310N ,109
0E
20S,109
0E
之所以有两个时间是由于地球对称的关系,如图:
图 11 对称点示意图
5.4. 问 问 问题 题 题四 四 四的 的 的求 求 求解 解 解
5.4.1.
利用T racker软件对视频进行处理,每隔3分钟测量一次影子定点长度,见下图
图 8 Tracker软件示意图
得到如下数据:
表4 视频中的时间和影长
时间 8 : 54 8:57 9:00 9:06 9:09 9:12 影长 2.378 2.334 2.28 2.245 2.211 2.168 时间 9:15 9:18 9:21 9:24 9:27 9:30 影长 2.123 2.069 2.035 2.009 1.959 1.896
再将时间和日期等数据带入问题二的程序中,求出每个子区域在对应时间点的影子长 度并与L做方差,方差最小的那个区域就是视频拍摄点。通过MATLAB编程得到这个区域 为:400N, 1100E。
若拍摄日期未知,也可以确定拍摄的地点和日期。只要从1月1日至12月31日每一个日期 都按照上述模型计算一次,与视频的数据最接近的就是拍摄的地点。
6. 模 模 模型 型 型的 的 的优 优 优缺 缺 缺点 点 点分 分 分析 析 析及 及 及评 评 评价 价 价
模型的优点:
• 每一个问题的结果都是通过MATLAB程序计算后的结果,建立的模型与实际情况比较 吻合。
• 原创性很强,文章的模型及算法都是自行推导的结果。
• 对文章中出现的表格及图片进行了精心的处理,有较好的视觉效果
模型的缺点
• 忽略了地理因素以及大气对太阳光的折射效果,模型与实际情况有一定的偏差。
• 进行穷举筛选时划分的区域过大,最后确定的范围偏大,精度不够。
• 对于问题4中的视频处理时选取的间隔过大,最后模拟的效果不够好。
参
参 参考 考 考文 文 文献 献 献
[1] 贺晓雷,于贺军,李建英,于蕾,太阳方位角的求解及其应用,太阳能学报,2008年,29卷
(1期):71-72
[2] 汪和平,探究日影运动轨迹,中学数学月刊,2010年,第9期:29-30
[3] http:wenku.baidu.comlink?url=YRU-5r-MZ9n05lIaSNzHyYR6UqL7DkwL Bg3cez5uNJkjFsiXc3CJHGNgqCHEsoqlN2wP8fW I1QIBzZdHu1tol52EUzSU1J5YS7wzfYT5 [4] http:baike.baidu.comlink?url=pcbkhGUCCwSaRJikRJbkHjC6wffahzOry1qgYNDHwT7cQJawHxcI76QpXyHUC0T9
[5] http:baike.baidu.comview86609.htm