地平论吧 关注:34,270贴子:1,024,253

照片测星定位法原理简介及实例示范

只看楼主收藏回复

经过这几天的持续优化和尝试,我发现通过照片测星定位的精准度略逊于使用六分仪的定位方法,即使做到最好也无法将随机误差降低到18千米以下,换言之如果与实际位置偏离不到18千米是运气好而不是测得准。所以这个方法对住在城市里的普通人来说还是相当安全的,不会导致个人信息泄露。
接下来就会一步一步解析通过照片进行测星定位的原理及实施方法,具体的计算式我不会列出,供大家思考练习。
【第一节 从“过洋牵星术”说起】
我国古代有一种被称为“过洋牵星术”的定位方法,它是利用一系列用等长的绳子串着的大小不同的木板来测量北极星的高度,从在茫茫大海中知道纬度的航海导航技术,那么它是怎么实现的呢?
众所周知,恒星距离我们非常遥远,远远大于地球的直径和公转轨道直径,所以可以认为一颗星无论在什么时候什么地点看都是处于天球上的同一个位置(参考:赤经、赤纬)。随着四季流转,太阳在天球上的黄道运行,天球的不同部分会依次照亮;而昼夜半球又会因地球自转发生自东向西的转动,这才导致了我们不同季节、不同时间看到的星星不一样。
在一个具体的时刻,每颗星星的位置则是固定的。如同太阳有直射点一般,星星也会“直射”在地球上的某一个点,这个又点被称为它的地理位置(GP)。对于直射点GP而言,星星就在此地的正头顶上,仰角为90°。天上仰角90度的位置也被称为天顶(Zenith,我的同志短剑好像动了一下),这个一会儿会用到。对于在地球上别处的人来说,刚才那颗星星就不是在正头顶上了,而是和天顶有一定的夹角,被称为天顶角;天顶角和高度角是互余的关系,在实际操作中我们也更容易以地平线作为参考测出高度角θ。一颗星星的高度角θ一经测定,我们就知道了自己和那颗星星的GP之间,相对地心的夹角是多少了。
“过洋牵星术”正是利用了这个原理。因为北极星的GP近似在北极点,所以测量北极星的高度角就可以知道自己和北极点之间相对地心的夹角,再用90°减去这个夹角就是纬度了。由于古时候的航海多是沿着北半球海岸线航行,因此只要知道了纬度就可以大致知道自己身处沿海何处。

○ 本节计算方法提示(不想看可跳过)
· 高度角+天顶角=90°(互余关系)
· 所在位置与GP相对地心夹角=天顶角(平行直线同位角相等)
【第二节 双星定位法】
如果仔细思考过第一节的内容的话就会发现,能测到某颗星仰角为θ的所有地点集合在一起便是在球面上的一个以GP为圆心的圆,而这个圆恰好就是某个垂直于星星方向的平面与地球截出来的。如果测到了两颗不同的星星的仰角,便可以在地球上画出两个GP、两个不同半径的圆。这两个圆会有两个交点,观测者必然在其中一个交点上。再进一步发挥空间想象力,通过两颗星星的相对方位关系(谁左谁右?谁高谁低)就可以判断自己的位置是两个交点中的哪一个。

○ 本节计算方法提示
· 与GP地心夹角为θ的圆方程可以用立体几何来求解:
1. 把地球视为一个单位球体;
2. 求出某时刻一颗星星的单位方向向量n;
3. 该平面会经过nsinθ;
4. 用空间平面点法式和球体方程联立求得圆方程。
· 两个交点的方程可以用球体方程加上两个平面方程一同联立求得,正常情况下会求出两个截然不同的坐标。
· 求得的xyz坐标可以通过反三角函数转化回地球上的经纬度
【第三节 照片上的天体辨识和测量】
正常情况下,一张照片的光轴就是照片正中心点,因此拿到照片后第一件事就是用横竖线将照片的中心点标出。
接下来可以使用PS的色阶、对比度、高反差保留等等功能,最大限度地提高照片中星星的清晰度。
量出每颗星星相对画面中心点的坐标,单位像素。
打开星图软件,这里使用的是stellarium,将时间暂停并调到照片拍摄的时间,通过个人经验和星图对比得知你标记的每颗星星是谁。我一般会选用其中5颗,尽可能接近画面中心,并且不离天顶大致位置太近的星星。因为星图软件还能即时计算行星和日月的坐标,因此不止有恒星可以用来定位,照片上只要能标出来、认出来的星星都可以用。
在例图中我标识了木星、天囷一、昴宿六、天苑一和天囷八。

接下来,我们在星图软件中,将观测地的经纬度设为0°,0°,读取这五颗星的时角和赤纬,该时角我将其称为“参考时角”。通过参考时角和赤纬即可换算出这些星星的直射点GP的经纬度。
○ 本节计算方法提示
· 时角赤纬和直射点GP经纬度换算:
1. 赤纬 = 纬度
2. 360°-参考时角 × 15°/h = 经度
【第四节 照片成像原理与像素焦距】
在之前的回帖中很多人质疑“照片的广角畸变是怎么消除的”。事实上我直接绕过了这个问题,从成像原理出发,把广角畸变扼杀在摇篮里。
一张普通的数码照片相当于是透过一张想象的相纸看外面的世界,所有星星的方向向量会被投影到一个与视点距离为z的平面上。要想复原出这些星星本来的方向向量,只需先按上一步的方法量出星星在照片上的x, y坐标,再求出这张照片的像素焦距z就可以了,因为这个像素焦距z对照片上所有的点都是一样的。

现在我们知道所有星星直射点GP的经纬度,可以用向量的点乘求出它们之间的理论夹角;
此外我们还测量了所有星星在照片上的x, y坐标,再代入一个z,求出它们的实测夹角。只要稍作尝试让两组夹角之间平均地相等,我们就试出了z值。在这张图里试出z = 1300.8,可以看到理论值和实测值偏差最多不到1%。
“广角畸变”的产生正是将投影的长度直接当成夹角来计算导致的问题,如果我们用向量而非照片上的长度来求算,就可以直接绕开“广角畸变”。



【第五节 天顶位置确定】
这里是简单的透视原理
正常的照片符合透视原理,画面中出现的所有平行直线都必然汇聚在照片上的一个点,这个点被称为这组平行线的“灭点”。虽然“灭点”在现实中对应这组平行线方向上的无穷远点,但因为照片只记录“与光轴的夹角信息”,而不记录“距离信息”,因此“灭点”得以在照片上实实在在地存在(有些地平论者会对此狡辩,因此我在这里要特意强调这点)。有时候这些灭点也可能超出照片的画幅,只要适当拓宽就一样可以标注出灭点的位置。
我们在上一节已经学会了将照片上的xy坐标转化为空间向量求解点和点之间的夹角,现在我们确定出天顶的坐标之后,也就可以很容易地算出每颗星星的高度角了。


【第六节 定位计算】
我们已经知道了这些星星的直射点经纬度和它们的高度角,到这里就万事俱备只欠东风了,只需要硬着头皮按着第二节的方法计算,就可以得到一系列的经纬度坐标:

(如果忘了我再说一遍省得你往回翻啊,根据5颗星星的GP坐标和高度角可以求出观测者所在5个平面的方程;将这一系列方程两两为一组依次与单位球方程联立就能求出10×2=20组可能得经纬度坐标)

(其实就是在解两平面一球面交点的方程)

观察发现,每一组两个计算结果中都有一个值是在123°(E)、41°(N)附近,而另一个值则偏差很大。
【第七节 结果汇总】
最后我们将正确的经纬度挑选出来,取平均值,就得到了我们想求的结果了:

求得的经纬度坐标位于沈阳市浑南区(注意,该测算的误差范围有整个沈阳市那么大,地图标点仅供参考)
类似的统计计算结果我会习惯性地再算一下标准差,并且会用透视关系求出地平线上一点的xy坐标以对z值进行验算。推测的z值和透视关系求出的z值相差仅1.16%,基本可以确定天顶的位置的可信度。

之前的帖子中只使用两颗星进行求算,并且计算天顶和地平参考点只各使用了建筑物上的各两条线段,误差较大;现在使用5颗星的坐标,20条线段延长线取平均值来求天顶,以星星的理论夹角反推z值,因而可以将误差范围缩到该方法的最小值。最后的误差只受两个因素影响:天顶xy坐标的准确度、时间准确度。
全文完,欢迎交流!


IP属地:福建1楼2023-11-17 04:19回复
    天道代行者5、QQxianN66、百度用户#20744438543403. . . 被楼主禁言,将不能再进行回复
    阿阿阿?有新照片了(搓手


    IP属地:浙江来自iPhone客户端2楼2023-11-17 04:46
    收起回复
      2025-08-04 19:40:33
      广告
      不感兴趣
      开通SVIP免广告
      🐮,虽然完全看不懂


      IP属地:江苏来自Android客户端3楼2023-11-17 05:24
      收起回复
        一头雾水。
        算了,楼主你自己明白就行了。
        而且,从屌球的反应来看,大概率你的计算是比较接近的。


        IP属地:天津来自Android客户端4楼2023-11-17 06:24
        收起回复
          之前航海基础课上就听得一头雾水最后只学会用六分仪看太阳


          IP属地:浙江来自Android客户端5楼2023-11-17 07:02
          收起回复
            猴子们完全看不懂啊?你这不是对牛弹琴的问题了嘛,猴子哪有这智商?太打击猴子们了


            IP属地:江苏来自iPhone客户端6楼2023-11-17 07:42
            收起回复
              照片拍摄比例和位置和计算机模拟会有点差别,一个是手机镜头和算法问题,一个是大气折射。这两个都不是普通人可以解决的问题。手机或者相机的光圈调节就是调节聚焦,会对焦点外的事物拉伸成像。成像算法,这个根据不同厂商有不同的解决翻方案。大气折射这个,空气的温度和湿度、高度,影响因素就更多了。。


              IP属地:浙江来自Android客户端8楼2023-11-17 08:05
              收起回复
                膜拜


                IP属地:上海来自Android客户端9楼2023-11-17 08:26
                回复
                  2025-08-04 19:34:33
                  广告
                  不感兴趣
                  开通SVIP免广告
                  阿巴阿巴,听不懂好厉害的样子


                  IP属地:安徽来自Android客户端10楼2023-11-17 08:56
                  回复
                    只用简单的数学知识和天文学知识就推导出了可行的公式,您果然是天才


                    IP属地:重庆来自Android客户端11楼2023-11-17 08:59
                    回复


                      IP属地:北京来自iPhone客户端12楼2023-11-17 09:14
                      回复
                        @高压吊球✌️ ,快来找出其中的错谬,让他见识见识地平学者的实力。


                        IP属地:上海来自Android客户端13楼2023-11-17 09:53
                        收起回复
                          非常好教程贴,收藏了👍


                          IP属地:广西来自Android客户端15楼2023-11-17 10:25
                          收起回复
                            太厉害了,都有系统的文章了


                            IP属地:江苏来自Android客户端17楼2023-11-17 10:36
                            回复