最新要闻

广告

手机

iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?

iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?

警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案

警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案

家电

已知球面经纬度求方位角和反方位角(awk一行代码实现)

来源:博客园


(相关资料图)

已知球面经纬度求方位角和距离

一个常见的错误

假如你在广州,先朝东北走2000km,然后朝西南走2000km,你不会回到起点,而是到达深圳或者东莞。这是因为地球是一个球面,方位角和反方位角加起来并不是360度。所以要朝着南偏西约49度的方向走2000km才能回到原点。

原理

球面上两点和北极点组成球面三角形,黎曼几何告诉我们,这个三角形内角和大于180度。而且起点到终点的方位角和终点到起点的方位角只和也不是180度。已知球面的起点(lon1,lat1)和终点(lon2,lat2),求他们的方位角azi的公式是:cos(azi)=sin(lon1-lon2)cos(lat2)/(cos(lat1)sin(lat2)-sin(lat1)cos(lat2)cos(lon1-lon2))

awk一行代码实现求起点到终点的方位角

#以下代码输入经纬度单位是度,输出方位角的单位也是度echo $lon1 $lat1 $lon2 $lat2 | awk "{  b1=$2*0.017453;   b2=$4*0.017453;   da=($3-$1)*0.017453;   y=sin(da)*cos(b2);   x=cos(b1)*sin(b2)-sin(b1)*cos(b2)*cos(da);   az=(atan2(y,x)/0.017453+360)%360;   print "Azimuth from (",$1,$2,") to (",$3,$4,") is",az," deg."}" | cat

求反方位角时,把起点重点的位置互换即可。

关键词: