背景

转载自:https://blog.csdn.net/u011575168/article/details/52081409

本文主要阐述了目前国际天文界最新规定的岁差章动模型(IAU 2000A/B),并根据此模型给出ITRS,GCRS和 J2000平赤道地心系相互转换的详细步骤。

本文主要依据《IERS Conventions 2003》(IERS Technical Note No. 32)而来,由于文章为英文,且详细叙述了ITRS,GCRS参考系以及岁差章动等模型,会使得读者初次阅读(或天文背景知识不够)产生阅读障碍。笔者也是在多次反复阅读的基础上并参考其它书籍和文献才稍微弄清楚,因此本文是笔者关于此文献的一个总结,希望能够对读者有所帮助。

本文不打算对坐标系转换的理论(岁差章动,极移等)进行详细讲解,仅仅给出坐标转换的基本步骤和必要常识,以便读者根据此文能够迅速掌握ITRS,GCRS和J2000平赤道地心系相互转换的基本原理,并能够依据IERS提供的Fortran源程序进行实际编程应用。

前言

名词缩写和解释

缩写 全称
BCRS barycentric celestial reference system
CEO celestial intermediate origin
CIP celestial intermediate pole
CIRS celestial intermediate reference system
EOP earth orientation parameters
GCRS geocentric celestial reference system
GMST Greenwich mean sidereal time
GAST Greenwich apparent sidereal time
IAU international astronomical union
ICRS international celestial reference system
IERS international Earth rotation and reference systems service
ITRS international terrestrial reference system
J2000 2000 January 1.5
SOFA standards of fundamental astronomy
TEO terrestrial intermediate origin
TIRS terrestrial intermediate reference system
TT terrestrial time
UT1 universal time UT1
UTC coordinated universal time
MAS milliarcsecond

ITRS

就是我们常说的地固坐标系,其原点在地球质心(包含大气海洋等质量),坐标系xy平面为地球赤道面,z轴指向北极CIO处,x轴指向格林威治子午线与赤道面交点处。

此坐标系固定在地球上,地面站测控,以及地球引力场系数等都在此坐标系下定义。

J2000.0

常被称为J2000平赤道地心坐标系。其原点也是在地球质心,xy平面为J2000时刻的地球平赤道面,x轴指向J2000时刻的平春分点(J2000时刻平赤道面与平黄道面的一个交点)。

此坐标系常被作为地球卫星的惯性坐标系,卫星运动积分等都在此坐标系计算。

GCRS

J2000地心天球坐标系,其定义与J2000平赤道地心坐标系仅有一个常值偏差矩阵B。目前IAU推荐用此坐标系逐渐取代J2000平赤道地心坐标系。

时间转换

UT1=UTC+(UT1−UTC)DAT=TAI−UTCTAI=UTC+DATTT=TAI+32.184s\begin{aligned} & UT1=UTC+(UT1-UTC) \\ & DAT=TAI-UTC\\ & TAI=UTC+DAT\\ & TT=TAI+32.184s \end{aligned} ​UT1=UTC+(UT1−UTC)DAT=TAI−UTCTAI=UTC+DATTT=TAI+32.184s​

给定UTC时刻,可求得其距离J2000的世纪数,即:
t=(TT−2000Jan1d12hTT)indays/36525t=(TT-2000 Jan 1d 12h TT) in days/36525 t=(TT−2000Jan1d12hTT)indays/36525
上式中:
2000Jan1d12hTT:对应的儒略日(Julianday)为2451545.0天。2000 Jan 1d 12h TT:对应的儒略日(Julian day)为2451545.0天。 2000Jan1d12hTT:对应的儒略日(Julianday)为2451545.0天。

坐标转换

当一坐标系绕其3个轴旋转 角时,则坐标旋转矩阵可表述为:
Rx(θ)=(1000cosθsinθ0−sinθcosθ)Ry(θ)=(cosθ0−sinθ010sinθ0cosθ)Rz(θ)=(cosθsinθ0−sinθcosθ0001)R_x(\theta)= \begin{pmatrix} 1 & 0 & 0 \\ 0 & cos\theta & sin\theta \\ 0 & -sin\theta & cos\theta \\ \end{pmatrix} \\ R_y(\theta)= \begin{pmatrix} cos\theta & 0 & -sin\theta \\ 0 & 1 & 0 \\ sin\theta & 0 & cos\theta \\ \end{pmatrix} \\ R_z(\theta)= \begin{pmatrix} cos\theta & sin\theta & 0 \\ -sin\theta & cos\theta & 0 \\ 0 & 0 & 1 \\ \end{pmatrix} Rx​(θ)=⎝⎛​100​0cosθ−sinθ​0sinθcosθ​⎠⎞​Ry​(θ)=⎝⎛​cosθ0sinθ​010​−sinθ0cosθ​⎠⎞​Rz​(θ)=⎝⎛​cosθ−sinθ0​sinθcosθ0​001​⎠⎞​
其旋转方向符合右手螺旋法则,即逆时针旋转为正方向。另外坐标旋转矩阵具备如下性质:
R−1(θ)=RT(θ)=R(−θ)R^{-1}(\theta)=R^T(\theta)=R(-\theta) R−1(θ)=RT(θ)=R(−θ)

背景知识

我们知道,地球的自转轴在惯性空间中不是固定的,而是不断摆动的。此摆动造成地轴绕北黄级顺时针运动,夹角约为23.5度。于此同时,地轴还在做微小的抖动,见下图。前者的运动称为岁差(Precession),后者运动成为章动(Nutation)。岁差章动的原因主要有两个方面。其一是太阳系行星对地球绕日轨道所产生的摄动影响;其二是太阳和月球对地球赤道隆起部分的摄动影响。

关于岁差章动的计算,此前一直采用IAU 1976岁差模型和1980章动模型。随着时间的推移,此模型的精度逐渐跟不上需要。因此,IAU又规定,自2003年1月1日起,采用新的岁差章动模型,即IAU 2000A模型(精度到达0.2mas),或者IAU 2000B模型(精度达到1mas)。

岁差章动模型描述了地球自转轴的运动,另外,由于地球表面的海洋,大气运动以及地核内部液体的运动造成地球自转轴并不是相对地球不动的;相对地球北极CIO点来说有个小范围的运动,此种现象成为极移。

此外,地球的自转也不是均匀的,也很复杂。

综上所述,从地固坐标系(ITRS)到地心惯性系(GCRS或J2000平赤道地心系)的坐标转换矩阵由极移,自转和岁差章动组成。

ITRS到GCRS的转换矩阵

本文采用IAU 2000A/B 岁差章动模型,在某历元UTC时刻,ITRS到GCRS的转换矩阵可写成:
r⃗GCRS=Q(t)⋅R(t)⋅W(t)⋅r⃗ITRS=H⋅GT(t)⋅r⃗ITRS\vec r_{GCRS}=Q(t)\cdot R(t)\cdot W(t)\cdot \vec r_{ITRS}=H\cdot G^T(t)\cdot \vec r_{ITRS} rGCRS​=Q(t)⋅R(t)⋅W(t)⋅rITRS​=H⋅GT(t)⋅rITRS​
其中:
r⃗ITRS:ITRS坐标r⃗GCRS:GCRS坐标W(t):极移转换矩阵R(t):自转转换矩阵Q(t):岁差章动转换矩阵\begin{aligned} & \vec r_{ITRS}:ITRS坐标\\ & \vec r_{GCRS}:GCRS坐标\\ & W(t):极移转换矩阵\\ & R(t):自转转换矩阵\\ & Q(t):岁差章动转换矩阵\\ \end{aligned} ​rITRS​:ITRS坐标rGCRS​:GCRS坐标W(t):极移转换矩阵R(t):自转转换矩阵Q(t):岁差章动转换矩阵​
计算R(t)R(t)R(t)和Q(t)Q(t)Q(t)的时候,会有两种计算方法,我们分别称为CEO-based转换方法和equinox-based转换方法。其中前者为IAU提出的新的计算方法。

下面分别给出上述三个转换矩阵的求解过程:

极移矩阵W(t)W(t)W(t)

W(t)=Rz(−s′)⋅Ry(xp)⋅Rx(yp)W(t)=R_z(-s^{'})\cdot R_y(x_p)\cdot R_x(y_p) W(t)=Rz​(−s′)⋅Ry​(xp​)⋅Rx​(yp​)

式中,−s′-s^{'}−s′为:
s′=−0.047mas⋅ts^{'}=-0.047mas\cdot t s′=−0.047mas⋅t
极移量(xp,yp)(x_p,y_p)(xp​,yp​)的求解为:
(xp,yp)=(x,y)IERS+(Δx,Δy)tidal+(Δx,Δy)nutation(x_p,y_p)=(x,y)_{IERS}+(\Delta x,\Delta y)_{tidal}+(\Delta x,\Delta y)_{nutation} (xp​,yp​)=(x,y)IERS​+(Δx,Δy)tidal​+(Δx,Δy)nutation​
极移量主要是由IERS根据天文观测给出的(x,y)IERS(x,y)_{IERS}(x,y)IERS​,每周都有新的观测数据,此外,由于地球潮汐和章动的影响,会对极移有微小的修正(Δx,Δy)tidal(\Delta x,\Delta y)_{tidal}(Δx,Δy)tidal​和(Δx,Δy)nutation(\Delta x,\Delta y)_{nutation}(Δx,Δy)nutation​。

上式中(x,y)IERS(x,y)_{IERS}(x,y)IERS​由IERS给出的观测数据计算求得,(Δx,Δy)tidal(\Delta x,\Delta y)_{tidal}(Δx,Δy)tidal​和(Δx,Δy)nutation(\Delta x,\Delta y)_{nutation}(Δx,Δy)nutation​可由公式计算得到,IERS提供此fortran源程序。

地球自转矩阵R(t)R(t)R(t)

地球自转角θ的求解根据转换方法的不同有不同的求解方式(CEO-based或者equinox-based),具体求解IERS给出了fortran源程序。
R(t)=Rz(−θ)R(t)=R_z(-\theta) R(t)=Rz​(−θ)

岁差章动矩阵 Q(t)Q(t)Q(t)

前面提到,计算此矩阵有两种方法:

CEO-based方法:

这种方法是IAU最新提出的并极力倡导的,其计算公式为:
Q(t)=(1−aX2−aXYX−aXY1−aY2Y−X−Y1−a(X2+Y2))⋅Rz(s)Q(t)= \begin{pmatrix} 1-aX^2 & -aXY & X \\ -aXY & 1-aY^2 & Y \\ -X & -Y & 1-a(X^2+Y^2) \\ \end{pmatrix} \cdot R_z(s) Q(t)=⎝⎛​1−aX2−aXY−X​−aXY1−aY2−Y​XY1−a(X2+Y2)​⎠⎞​⋅Rz​(s)
其中:
a=1/2+1/8(X2+Y2)a=1/2+1/8(X^2+Y^2) a=1/2+1/8(X2+Y2)

(X,Y)=(X,Y)IAU2000+(dX+dY)IERS(X,Y)=(X,Y)_{IAU2000}+(dX+dY)_{IERS} (X,Y)=(X,Y)IAU2000​+(dX+dY)IERS​

(X,Y)IAU2000(X,Y)_{IAU2000}(X,Y)IAU2000​和sss可根据IAU2000A/B岁差章动模型求解出,IERS同样给出求解的fortran源程序,另外,由于IAU2000A/B岁差章动模型没有包含地轴的高频率运动,所以要加上IERS通过观测数据给出的高频率修正项(dX+dY)IERS(dX+dY)_{IERS}(dX+dY)IERS​

Equinox-based方法:

Q(t)=B⋅P(t)⋅N(t)Q(t)=B\cdot P(t)\cdot N(t) Q(t)=B⋅P(t)⋅N(t)

其中,常值偏差矩阵B ,岁差矩阵P(t)和章动矩阵N(t)如下:
KaTeX parse error: No such environment: equation at position 8: \begin{̲e̲q̲u̲a̲t̲i̲o̲n̲}̲ \left\{ \begin…
章动量(Δψ,Δϵ)(\Delta\psi,\Delta\epsilon)(Δψ,Δϵ):
(Δψ,Δϵ)=(Δψ,Δϵ)IAU2000+(δΔψ,δΔϵ)IERS(\Delta\psi,\Delta\epsilon)=(\Delta\psi,\Delta\epsilon)_{IAU2000}+(\delta\Delta\psi,\delta\Delta\epsilon)_{IERS} (Δψ,Δϵ)=(Δψ,Δϵ)IAU2000​+(δΔψ,δΔϵ)IERS​
(Δψ,Δϵ)IAU2000(\Delta\psi,\Delta\epsilon)_{IAU2000}(Δψ,Δϵ)IAU2000​由IERS 2000A章动模型给出。前面提到过,IAU 2000A/B模型提供的岁差章动不包含高频率项,而是由IERS的观测数据提供(上式右端最后一项),但是在IERS给出的观测数据中仅仅给出(dX+dY)IERS(dX+dY)_{IERS}(dX+dY)IERS​,我们可以通过IERS提供的fortran源程序将(dX+dY)IERS(dX+dY)_{IERS}(dX+dY)IERS​转换为(δΔψ,δΔϵ)IERS(\delta\Delta\psi,\delta\Delta\epsilon)_{IERS}(δΔψ,δΔϵ)IERS​。

其余参数皆为岁差参数,可以通过公式求出,此处从略。

值得一提的是常值偏差矩阵 中的参数也是给定的,在CEO-based方法求解中,此偏差是包含在(X,Y)IAU2000(X,Y)_{IAU2000}(X,Y)IAU2000​中。

利用IERS提供的Fortran源程序进行转换

上节中详细讲述了ITRS到GCRS转换矩阵的求解过程,在实际应用中,如果是自己编写源程序的话是件非常琐碎的事情,因为IERS 2000A/B 章动模型的参数多达1000多项。幸而这些基本子程序IERS都提供了,我们所做的就是如何正确的运用这些源程序,并将它们组合起来。

在ftp://maia.usno.navy.mil/conv2000/chapter5/上可下载相关的源程序,子程序列表如下:

子程序名 说明
BPN2000 CEO-based intermediate-to-celestial matrix
CBPN2000 equinox-based true-to-celestial matrix
EE2000 equation of the equinoxes (EE)
EECT2000 EE complementary terms
ERA2000 Earth Rotation Angle
GMST2000 Greenwich Mean Sidereal Time
GST2000 Greenwich (apparent) Sidereal Time
NU2000A nutation, IAU 2000A
NU2000B nutation, IAU 2000B
POM2000 form polar-motion matrix
SP2000 the quantity s’
T2C2000 form terrestrial to celestial matrix
XYS2000A X, Y, s
interp.f Interpolation of IERS polar motion and UT1 time series
uai2000.f IAU 2000 celestial pole offsets conversion (dpsi,deps,dX,dY)

上表最后可从ftp://hpiers.obspm.fr/iers/models上下载得到。

IERS观测数据的处理

前面一再提到IAU 2000A/B章动岁差模型不包含高频率项,因此在完整的坐标转换过程中,必须考虑到IERS提供观测数据的高频率修正项。

IERS每周发布Bulletins A,每月发布Bulletins B,它们都是描述EOP的参数,下面是综合的EOP参数文件(C 04),其主要内容如下:

GNSS-ITRS_GCRS_J2000坐标系的相互转换相关推荐

  1. 机械手基坐标系和工具坐标系的相互转换

    机械手基坐标系和工具坐标系的相互转换,主要是通过欧拉角来完成的. double D2R(double D) {return D / 180 * M_PI; }double R2D(double R) ...

  2. ArcGIS坐标系篇之几种常见坐标系的相互转换(二)

    几种常见坐标系的相互转换 坐标系的转换是我们在地理数据的使用过程中经常会遇到的问题,像大家经常提到的54转8080转2000WGS84转2000等等,以及ArcGIS经常提到的地理坐标系转投影坐标系. ...

  3. wgs-84,gcj-02,bd-09的相互转换,高德,世界测量,百度坐标系的相互转换,坐标系转换

    高德使用的是gcj-02坐标系,百度使用的是bd09坐标系,注意其间的相互转换 1.首先创建一个GPS对象类 public class Gps {private double wgLat;privat ...

  4. 浅析相机相关坐标系的相互转换(世界坐标系、相机坐标系、图像坐标系、像素坐标系、内参矩阵、外参矩阵、扭转因子)【相机标定计算机视觉】

    最近在网上看到了很多关于坐标系转换的帖子,但是其内容很多都是相互转载(甚至还有一部分是错误的),同时大部分的文章内容都是告诉你四种坐标系间的相互转化的数学公式,看完之后很多时候还是不知所云,本文意在深 ...

  5. 2D坐标系与3D坐标系的相互转换--python实现

    并不是做关于SLAM方向的,但由于某些任务涉及到,故作此笔记- 相机内参矩阵: 不同的的深度摄像头具有不同的特征参数,在计算机视觉里,将这组参数设置为相机的内参矩阵C: [fx0cx0fycy001] ...

  6. 百度地图(BD-09)坐标系和高德(GCJ-02)坐标系的相互转换(PHP版)

    简单介绍一下常见的地理经纬度坐标系: WGS-84坐标系: 是国际标准坐标系,GPS坐标(Google Earth使用.或者GPS模块). GCJ-02坐标系: 火星坐标系,GCJ-02是由中国国家测 ...

  7. php百度坐标转腾讯坐标,火星坐标系、百度坐标系、腾讯坐标系的相互转换

    /** * 火星坐标系 (GCJ-02) 与百度坐标系 (BD-09) 的转换算法 将 GCJ-02 坐标转换成 BD-09 坐标 * * @param gg_lat * @param gg_lon ...

  8. 电子围栏绘制、校验、不同坐标系(wgs84,jcg02、bd09)的相互转换,看这一篇就够了!

    作为一名前端开发者,在工作中经常会用到地图相关的API,比如百度.高德.腾讯等,但是不同地图平台使用的坐标系可能不一样,这就导致定位时会出现几百米到1000左右的误差,比如在小程序平台获取位置的时候我 ...

  9. node.js转换shp文件数据的坐标系

    接上文:IDEA中配置运行node.js 本文使用两个js开源库完成对shp文件的坐标系转换(支持GCJ-02,WGS84等大多数主流坐标系) 一.安装所需的npm包 1.读写shp文件的js库gda ...

最新文章

  1. 命令行下运行 java someClass.class出现 “错误:找不到或无法加载主类someClass ” 的解决方案
  2. TabHost选项卡的实现(一):使用TabActivity实现
  3. 三篇论文之bigtable
  4. matlab 排序点,matlab如何进行排序?
  5. jQuery 遍历:思路总结,项目场景中如何处理/控制获取的 each 遍历次数?
  6. Java基础学习总结(165)——API 安全最佳实践
  7. 奇人有奇书(李渔、张岱、陈继儒、吴敬梓)
  8. 诡异奇怪的“虚拟硬盘可用空间不足”告警
  9. 测试数据库日期格式转换
  10. [转载] dataframe按列/行遍历数据
  11. 超级简单:ASP.NET输出缓存
  12. DM365的UBL源码分析(二)
  13. 基于Opencv实现车牌图片识别系统
  14. idea打包 jar文件
  15. Netty 解决TCP粘包/半包使用
  16. [音频处理]傅里叶变换去噪
  17. iOS 强制旋转屏幕
  18. POJ 1625 Censored!
  19. 什么是CDN资质?什么情况需要办CDN牌照
  20. 私域流量运营之社交裂变

热门文章

  1. 操作系统之页面置换算法(FIFO、LFU、LRU、OPT算法)
  2. 如何与其他用户共享SkyBell HD访问
  3. 原著《西游记》中的几点不解和穿帮
  4. 从公众号跳转至小程序页面,页面链接发生变化?原因剖析解决方案
  5. 微信公众号、小程序账号被冻结的解决方法
  6. java 生成短链接_java调用百度API生成短链接(一)
  7. 女生适合从事什么工作?程序员!
  8. MongoDB学习笔记~对集合属性的操作
  9. 精选——Hive十道面试题(上)
  10. Enter的使用计算机,Win7系统下键盘Enter回车键五大功能介绍