当前位置:   article > 正文

天文观测相关知识_天文标准函数库sofa代码

天文标准函数库sofa代码

1、相关概念

【系列文章】业余天文学入门
恒星星空图绘制(一)——参考系
恒星星空图绘制(二)——星表详解
恒星星空图绘制(三)——恒星观测位置计算

Stellarium:天象模拟软件
starx星空志
天体测量—时间历法与参考系简介

1.1 天文数据库

Hubble过往数据:http://hla.stsci.edu/hlaview.html
Chandra数据中心http://cda.harvard.edu/chaser/
NASA高能天体物理数据库:http://heasarc.gsfc.nasa.gov/
CASTLE:http://www.cfa.harvard.edu/glensdata/
JVAS/CLASS:http://www.jb.man.ac.uk/research/gravlens/lensarch/lens.html
https://www.iers.org/IERS/EN/DataProducts/EarthOrientationData/eop.html

2、基本术语

名词索引:https://astronomy.swin.edu.au/cosmos/
名词介绍:Proper motion
中国大百科全书–天体测量星表
ICRS、GCRS、CIRS、TIRS和ITRS坐标系统简介

  • ICRS(International Celestial Reference System):国际天球参考系统
  • GCRS(Geocentric Celestial Reference System):地心天体参考系
  • CIRS(Celestial Intermediate Reference System):天球中间参考系(地球极点坐标系)
  • TIRS (Topocentric Intermediate Reference System):地心相对天体坐标系
  • ITRS(International Terrestrial Reference System):地球坐标系

国际大地测量学和地球物理学联合会(IUGG)
国际大地测量学协会(IAG)
国际天文学会(IAU)
赤经:right ascension
赤纬:declination
弧秒:arcsecond (12 °13′ 36″)

  • 角度角秒换算:1° = 3600″ ====> 1″ = 1/3600°
  • 弧度与秒换算:1弧度 = 206,264.5″ (180/π×3600) ===> 1″ = 4.848 ×10-6 弧度(1/3600×π/180)
  • 角度弧度换算:1度 = π/180 ≈ 0.01745弧度,1弧度 = 180/π ≈ 57.29578度
RA :  24.35417 ====  01:37:25.0
Dec: -45.67778 ==== -45:40:40
  • 1
  • 2
地极移动(极移):polar motion,地球瞬时自转轴在地球本体内的运动。
自行、自行运动、固有运动 :proper motion,恒星在一年内沿着垂直于视线方向走过的距离对观测者所张的角度。单位为角秒/年。
岁差(Precession)
春分(Vernal Equinox)、秋分(Autumnal Equinox)
赤道(Equator)
天球子午圈(Principal Vertical)
子午线/经线(Meridian)
格林威治/本初子午线(Greenwich Meridian/Prime Meridian)
几何地平(Geometric Horizon)、视地平(Apparent Horizon)
天顶(Zenith)和天底(Nadir)
地平经圈(Vertical)、地平纬圈(Almucantar)、卯酉圈(Prime Vertical)
方位(Azimuth),即地平经度,简称Az
高度(Altitude),即地平纬度,简称 h 或 Alt 
时角(Hour Angle),简称H,从观测者所处子午圈起向西(顺时针方向)测量,取值范围以小时为单位从0h - 24h, 每15° 为1h
赤纬(Declination),简称δ
黄道(ecliptic)
黄道面(Ecliptic Plane)
赤经(Right Ascension),简称α;也就是角VX',从春分点开始向逆时针方向测量,取值范围以小时为单位从0h - 24h, 每15° 为1h,(有时也可以用角度表示)
赤纬(Declination),简称δ;也就是角 XX',即天体和地心的连线与赤道面的夹角(线面角) ,取值范围为+90° ~ -90°。
黄经(Ecliptic Longitude),简称λ;也就是角VX',从春分点开始向逆时针方向测量,取值范围为 0° ~ 360°。
黄纬(Ecliptic Latitude),简称β;也就是角 XX',即天体和太阳的连线与黄道面的夹角(线面角) ,取值范围为+90° ~ -90°。
中天(Culmination)中天是当天体正经过当地子午圈的时刻。中天又分为上中天(Upper Culmination)和下中天(Lower Culmination)
拱极星(Circumpolar)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23

2.1 国际天文学联合会(International Astronomical Union,IAU)

https://www.iau.org/
国际天文联合会(IAU)是全球天文学家认可,能为天体命名的主要机构。为了能给予任何天体一个明确的名称,该会建立一个命名系统,能系统化的为各种不同的天体命名与排列顺序。

2.2 国际天球参考系统(International Celestial Reference System,ICRS)

国际天球参考系统 (ICRS)是国际天文联合会(IAU)采用的天球参考系统标准。它的原点是太阳系的质心,轴的指向在太空中是固定的。ICRS的内容大致与赤道座标系统是协调一致的:ICRS J2000.0的平均极点在12h的方向是17.3±0.2 mas,在18 h的方向是5.1±0.2 mas;在ICRS J2000.0的平均分点从ICRS赤经原点移动了78±10 mas(方向是大约环绕着极轴)。
ICRS 中的坐标系统与赤道坐标系基本一致,重点在于如何选取参照物。在通常的赤道坐标系中,我们规定太阳的春分点所在的位置为赤经零点,但是事实上,春分点并不是恒久不变的。由于地球的进动以及章动,春分点无时无刻不在运动着。进动是指地球自转轴绕着空间中的另一个轴旋转,章动则是在进动的过程中更加微小的运动。P 和 N 分别是进动与章动。
于是ICRS 选择使用几乎 “恒久不动” 的河外天体作为参照物,这就是 ICRF(International Celestial Reference Frame)—— 国际天球参考框架。通过 VLBI—— 甚长基线射电干涉测量技术,我们可以将这些射电源的位置精确到数个毫角秒以内,以保证 ICRS 的精确性。
天文学家约定采取某一个时刻的地球运行状态作为赤道坐标系的基准。现如今这个约定的时刻是 J2000.0,J 代表儒略纪元,2000.0 代表 2000 年一月一日(具体的时刻因时间系统的差异而有微小差别,但是是地球时的中午十二时整),简单来说就是公元 2000 年的第一天中午。

2.3 国际地球参考系统(International Terrestrial Reference System,ITRS)

也叫地固坐标系,其原点在地球质心(包含大气海洋等质量),坐标系xy平面为地球赤道面,z轴指向北极CIO处,x轴指向格林威治子午线与赤道面交点处。 此坐标系固定在地球上,地面站测控,以及地球引力场系数等都在此坐标系下定义。
国际地面参考框架(ITRF,International Terrestrial Reference Frame)是ITRS的实现。

2.4 国际GNSS服务(International GNSS Service,IGS)

https://igs.org/
国际GNSS服务,提供全球导航卫星系统,包括GPS、GLONASS、GALILEO等卫星星历,卫星钟差以及相应卫星系统的地面基准站坐标等方面信息的国际组织。

2.5 儒略

儒略日与公历转换

  • 儒略日(Julian Day): 在儒略周期内以连续的日数计算时间的计时法,主要是天文学家在使用。
  • 儒略日数(Julian Day Number,JDN): 从格林威治标准时间的中午开始,包含一个整天的时间,起点的时间(0日)回溯至儒略历的公元前4713年1月1日中午12点(在格里历是公元前4714年11月24日),这个日期是三种多年周期的共同起点,且是历史上最接近现代的一个起点。例如,2000年1月1日的UT12:00是儒略日2,451,545。
  • 儒略日期(Julian date,JD): 是以格林威治标准时中午12:00的儒略日加上那一天的瞬时时间的分数。儒略日期是儒略日添加小数部分所表示的儒略日数。例如,2013年1月1日00:30:00(UT)是儒略日期2,456,293.520833。
  • 儒略周期(Julian Period): 是开始于公元前4713年,长达7980年的纪年法,被用于历史上各种不同历法的日期转换。公元2018年是儒略周期的6731年,下一个儒略周期将开始于公元3268年。
  • 简化儒略日(Modified Julian Day, MJD): MJD = JD - 2400000.5 起始时间:1858年11月17日世界时0时
  • 简化儒略日2000(Modified Julian Day 2000, MJD2000 / MJD2K): MJD2000 = JD - 2451544.5 起始时间:2000年1月1日世界时0时

2.6 黄道

地球公转轨道在天球上的反映称为黄道,即地球轨道在天球上的投影。它和赤道面相交于春分点和秋分点。因为地球自转轴与公转平面不垂直,所以天赤道平面与黄道平面不重合,两个平面有23°26’21的夹角角度(公元2000年测值)。两个平面的交角点就连牢春分搭秋分。

3、天文坐标系

十三. 天文学中的坐标系
天体坐标系 - 天文的第一课

第一组坐标系:	1. 地平坐标系、2. 时角坐标系;
第二组坐标系:	3. 赤道坐标系、4. 黄道坐标系;
最后一个坐标系:	5. 地球坐标系;
被遗忘的坐标系:	6. 时间坐标系;
  • 1
  • 2
  • 3
  • 4
地理坐标系 Geographic Coordinate System
地平坐标系 Horizonal Coordinate System
第一赤道坐标系(时角坐标系)First Equatorial System (**HA-dec**) 
第二赤道坐标系 Second Equatorial System (**RA-dec**) 
黄道坐标系 Ecliptic Coordinate System 
  • 1
  • 2
  • 3
  • 4
  • 5

坐标系转换: Transformation of Coordinate

地平 <===>时角
赤道 <===>黄道
  • 1
  • 2

3、基础天文标准库(Standards Of Fundamental Astronomy, SOFA)

SOFA(Standards Of Fundamental Astronomy)软件包是IAU编写的有关天文基础标准的子程序库。目前一共有161个子程序,主要用Fortran F77和ANSI C两种语言编写,每个子程序放在一个.f的文件中。其主要内容包括两个方面:基础向量操作天文基础标准

由于Fortran 77不支持矩阵和向量的基本操作,如矩阵相乘等。因此SOFA中有一些关于这方面的子程序。在此基础上,编写出天文基础标准的子程序,包含:UTC时间的儒略日计算;基于1976 precession 和1980 nutation标准的地固坐标系(ITRF)到J2000地心天球坐标系(GCRF)的转换矩阵(也包含最新的IAU 2000和2006标准);以及太阳系行星历表的计算等等。所有的这些子程序都是依据IAU的相关标准而编制的,程序中有详细的注释,说明文档中也有相关说明。

官网:http://www.iausofa.org/
文档:Sofa函数说明

介绍sofa的网站:
http://www.scholarpedia.org/article/Standards_of_Fundamental_Astronomy
https://www.sciencedirect.com/topics/physics-and-astronomy/astrometry

sofa缩略词:http://www.iausofa.org/2013_1202_F/sofa/sofa_ast_summary.pdf

3.0 概述

void 	iauAb (double pnat[3], double v[3], double s, double bm1, double ppr[3])
//Apply aberration to transform natural direction into proper direction. 
//应用像差将自然方向转换为正确方向

void 	iauAe2hd (double az, double el, double phi, double *ha, double *dec)
//Horizon to equatorial coordinates: transform azimuth and altitude to hour angle and declination. 
//地平坐标系到第一赤道(时角)坐标系:将方位角和高度转换为时角和赤纬。Azi altitudE to Hour Declination.

int 	iauAf2a (char s, int ideg, int iamin, double asec, double *rad)
//Convert degrees, arcminutes, arcseconds to radians. 
//将度数、弧分、弧秒转换为弧度

void 	iauApcg (double date1, double date2, double ebpv[2][3], double ehp[3], iauASTROM *astrom)
//prepare star-independent astrometry parameters 
//准备与恒星无关的天体测量参数

void 	iauApcg13 (double date1, double date2, iauASTROM *astrom)
//prepare star-independent astrometry parameters 
//准备与恒星无关的天体测量参数

void 	iauApci (double date1, double date2, double ebpv[2][3], double ehp[3], double x, double y, double s, iauASTROM *astrom)
//prepare star-independent astrometry parameters 
//准备与恒星无关的天体测量参数

void 	iauApci13 (double date1, double date2, iauASTROM *astrom, double *eo)
//prepare star-independent astrometry parameters 
//准备与恒星无关的天体测量参数

void 	iauApco (double date1, double date2, double ebpv[2][3], double ehp[3], double x, double y, double s, double theta, double elong, double phi, double hm, double xp, double yp, double sp, double refa, double refb, iauASTROM *astrom)
//prepare star-independent astrometry parameters 
//准备与恒星无关的天体测量参数

int 	iauApco13 (double utc1, double utc2, double dut1, double elong, double phi, double hm, double xp, double yp, double phpa, double tc, double rh, double wl, iauASTROM *astrom, double *eo)
//prepare star-independent astrometry parameters 
//准备与恒星无关的天体测量参数

void 	iauApcs (double date1, double date2, double pv[2][3], double ebpv[2][3], double ehp[3], iauASTROM *astrom)
//prepare star-independent astrometry parameters 
//准备与恒星无关的天体测量参数

void 	iauApcs13 (double date1, double date2, double pv[2][3], iauASTROM *astrom)
//prepare star-independent astrometry parameters 
//准备与恒星无关的天体测量参数

void 	iauAper (double theta, iauASTROM *astrom)
//update the Earth rotation angle 
//更新地球旋转角度

void 	iauAper13 (double ut11, double ut12, iauASTROM *astrom)
//update the Earth rotation angle 
//更新地球旋转角度

void 	iauApio (double sp, double theta, double elong, double phi, double hm, double xp, double yp, double refa, double refb, iauASTROM *astrom)
//prepare star-independent astrometry parameters 
//准备与恒星无关的天体测量参数

int 	iauApio13 (double utc1, double utc2, double dut1, double elong, double phi, double hm, double xp, double yp, double phpa, double tc, double rh, double wl, iauASTROM *astrom)
//prepare star-independent astrometry parameters 
//准备与恒星无关的天体测量参数

void 	iauAtci13 (double rc, double dc, double pr, double pd, double px, double rv, double date1, double date2, double *ri, double *di, double *eo)
//Transform ICRS star data, epoch J2000.0, to CIRS. 
//将ICRS恒星数据历元J2000.0转换为CIRS。

void 	iauAtciq (double rc, double dc, double pr, double pd, double px, double rv, iauASTROM *astrom, double *ri, double *di)
//Quick ICRS, epoch J2000.0, to CIRS transformation.
//Quick ICRS,epoch J2000.0,到CIRS的转换 

void 	iauAtciqn (double rc, double dc, double pr, double pd, double px, double rv, iauASTROM *astrom, int n, iauLDBODY b[], double *ri, double *di)
//Quick ICRS, epoch J2000.0, to CIRS transformation. 
//Quick ICRS,epoch J2000.0,到CIRS的转换 

void 	iauAtciqz (double rc, double dc, iauASTROM *astrom, double *ri, double *di)
//Quick ICRS to CIRS transformation. 
//Quick ICRS 到CIRS的转换 

int 	iauAtco13 (double rc, double dc, double pr, double pd, double px, double rv, double utc1, double utc2, double dut1, double elong, double phi, double hm, double xp, double yp, double phpa, double tc, double rh, double wl, double *aob, double *zob, double *hob, double *dob, double *rob, double *eo)
//ICRS RA,Dec to observed place. 
//赤经赤纬转换到观测点。

void 	iauAtic13 (double ri, double di, double date1, double date2, double *rc, double *dc, double *eo)
//Transform star RA,Dec from geocentric CIRS to ICRS astrometric. 
//将恒星赤经赤纬从地极CIRS()转换为ICRS(国际天球参考系统)

void 	iauAticq (double ri, double di, iauASTROM *astrom, double *rc, double *dc)
//Quick CIRS RA,Dec to ICRS astrometric place. 
//将地极CIRS赤经赤纬转换到ICRS天体测量站

void 	iauAticqn (double ri, double di, iauASTROM *astrom, int n, iauLDBODY b[], double *rc, double *dc)
//Quick CIRS to ICRS astrometric place transformation. 
//快速CIRS到ICRS天体测量位置转换

int 	iauAtio13 (double ri, double di, double utc1, double utc2, double dut1, double elong, double phi, double hm, double xp, double yp, double phpa, double tc, double rh, double wl, double *aob, double *zob, double *hob, double *dob, double *rob)
//CIRS RA,Dec to observed place. 
//地心赤经赤纬到观测位置的转换

void 	iauAtioq (double ri, double di, iauASTROM *astrom, double *aob, double *zob, double *hob, double *dob, double *rob)
//Quick CIRS to observed place transformation. 
//快速地心赤经赤纬到观测位置的转换

int 	iauAtoc13 (const char *type, double ob1, double ob2, double utc1, double utc2, double dut1, double elong, double phi, double hm, double xp, double yp, double phpa, double tc, double rh, double wl, double *rc, double *dc)
//Observed place at a groundbased site to to ICRS astrometric RA,Dec. 
//地面观测点到ICRS赤经赤纬的转换

int 	iauAtoi13 (const char *type, double ob1, double ob2, double utc1, double utc2, double dut1, double elong, double phi, double hm, double xp, double yp, double phpa, double tc, double rh, double wl, double *ri, double *di)
//Observed place to CIRS. 
//观测点到地极CIRS的转换

void 	iauAtoiq (const char *type, double ob1, double ob2, iauASTROM *astrom, double *ri, double *di)
//Quick observed place to CIRS. 
//快速观测点到地极CIRS的转换

void 	iauBp06 (double date1, double date2, double rb[3][3], double rp[3][3], double rbp[3][3])
//Frame bias and precession, IAU 2006. 
//框架偏移和进动,IAU 2006

void 	iauBpn2xy (double rbpn[3][3], double *x, double *y)
//Extract the X,Y coordinates of the Celestial Intermediate Pole. 
//提取天体中间极的X、Y坐标

void 	iauC2i00a (double date1, double date2, double rc2i[3][3])
//Form the celestial-to-intermediate matrix for a given date. 
//构造给定日期的天体到中间矩阵

void 	iauC2i00b (double date1, double date2, double rc2i[3][3])
//Form the celestial-to-intermediate matrix for a given date . 
//构造给定日期的天体到中间矩阵

void 	iauC2i06a (double date1, double date2, double rc2i[3][3])
//Form the celestial-to-intermediate matrix for a given date. 
//构造给定日期的天体到中间矩阵

void 	iauC2ibpn (double date1, double date2, double rbpn[3][3], double rc2i[3][3])
//Form the celestial-to-intermediate matrix for a given date. 
//构造给定日期的天体到中间矩阵

void 	iauC2ixy (double date1, double date2, double x, double y, double rc2i[3][3])
//Form the celestial to intermediate-frame-of-date matrix. 
//构造从天体到中间日期框架的矩阵

void 	iauC2ixys (double x, double y, double s, double rc2i[3][3])
//Form the celestial to intermediate-frame-of-date matrix. 
//构造从天体到中间日期框架的矩阵

void 	iauC2t00a (double tta, double ttb, double uta, double utb, double xp, double yp, double rc2t[3][3])
//Form the celestial to terrestrial matrix. 
//构造天体到地球的转换矩阵

void 	iauC2t00b (double tta, double ttb, double uta, double utb, double xp, double yp, double rc2t[3][3])
//Form the celestial to terrestrial matrix. 
//构造天体到地球的转换矩阵

void 	iauC2t06a (double tta, double ttb, double uta, double utb, double xp, double yp, double rc2t[3][3])
//Form the celestial to terrestrial matrix. 
//构造天体到地球的转换矩阵

void 	iauC2tcio (double rc2i[3][3], double era, double rpom[3][3], double rc2t[3][3])
//Assemble the celestial to terrestrial matrix.
//组成天体到地球的转换矩阵 

void 	iauC2teqx (double rbpn[3][3], double gst, double rpom[3][3], double rc2t[3][3])
//Assemble the celestial to terrestrial matrix. 
//组成天体到地球的转换矩阵 

void 	iauC2tpe (double tta, double ttb, double uta, double utb, double dpsi, double deps, double xp, double yp, double rc2t[3][3])
//Form the celestial to terrestrial matrix. 
//形成天体到地球的转换矩阵 

void 	iauC2txy (double tta, double ttb, double uta, double utb, double x, double y, double xp, double yp, double rc2t[3][3])
//Form the celestial to terrestrial matrix. 
//形成天体到地球的转换矩阵 

int 	iauCal2jd (int iy, int im, int id, double *djm0, double *djm)
//Gregorian Calendar to Julian Date. 
//公历转成儒略日

int 	iauD2dtf (const char *scale, int ndp, double d1, double d2, int *iy, int *im, int *id, int ihmsf[4])
//Format for output a 2-part Julian Date. 
//输出两部分儒略日期的格式

int 	iauDat (int iy, int im, int id, double fd, double *deltat)
//For a given UTC date, calculate delta(AT) = TAI-UTC. 
//对于给定的UTC日期,计算delta(AT)= TAI - UTC。即TAI多UTC快多少秒,2023年当前是37秒

int 	iauDtf2d (const char *scale, int iy, int im, int id, int ihr, int imn, double sec, double *d1, double *d2)
//Encode date and time fields into 2-part Julian Date. 
//将日期和时间字段编码为两部分的儒略日期(整数、小数)
//d1是儒略日,d2是一天中的小数部分

void 	iauEceq06 (double date1, double date2, double dl, double db, double *dr, double *dd)
//Transformation from ecliptic coordinates (mean equinox and ecliptic of date) to ICRS RA,Dec, using the IAU 2006 precession model. 
//使用IAU 2006岁差模型,从黄道坐标(日期的平均平分点和黄道)到ICRS RA,12月的转换

void 	iauEcm06 (double date1, double date2, double rm[3][3])
//ICRS equatorial to ecliptic rotation matrix, IAU 2006. 
//ICRS赤道到黄道旋转矩阵,IAU 2006

double 	iauEe00a (double date1, double date2)
//Equation of the equinoxes. 
//赤经章动,二分差

double 	iauEe00b (double date1, double date2)
//Equation of the equinoxes. 
//赤经章动,二分差

double 	iauEe06a (double date1, double date2)
//Equation of the equinoxes. 
//赤经章动,二分差

double 	iauEo06a (double date1, double date2)
//Equation of the origins. 
//起源方程式

double 	iauEors (double rnpb[3][3], double s)
//Equation of the origins. 

double 	iauEpb (double dj1, double dj2)
//Julian Date to Besselian Epoch. 
//儒略日期到贝塞利纪元

void 	iauEpb2jd (double epb, double *djm0, double *djm)
//Besselian Epoch to Julian Date. 
//贝塞利纪元到儒略日期

double 	iauEpj (double dj1, double dj2)
//Julian Date to Julian Epoch. 
//儒略日期到儒略日

void 	iauEpj2jd (double epj, double *djm0, double *djm)
//Julian Epoch to Julian Date. 
//儒略日到儒略日期

int 	iauEpv00 (double date1, double date2, double pvh[2][3], double pvb[2][3])
//Earth position and velocity. 
//地球位置和速度

void 	iauEqec06 (double date1, double date2, double dr, double dd, double *dl, double *db)
//Transformation from ICRS equatorial coordinates to ecliptic coordinates. 
//ICRS赤道坐标到黄道坐标的转换

void 	iauFk425 (double r1950, double d1950, double dr1950, double dd1950, double p1950, double v1950, double *r2000, double *d2000, double *dr2000, double *dd2000, double *p2000, double *v2000)
//Convert B1950.0 FK4 star catalog data to J2000.0 FK5.
//将B1950.0 FK4恒星目录数据转换为J2000.0 FK5

void 	iauFk45z (double r1950, double d1950, double bepoch, double *r2000, double *d2000)
//Convert a B1950.0 FK4 star position to J2000.0 FK5.Convert a B1950.0 FK4 star position to J2000.0 FK5, assuming zero proper motion in the FK5 system. 
//将B1950.0 FK4恒星位置转换为J2000.0 FK5

void 	iauFk524 (double r2000, double d2000, double dr2000, double dd2000, double p2000, double v2000, double *r1950, double *d1950, double *dr1950, double *dd1950, double *p1950, double *v1950)
//Convert J2000.0 FK5 star catalog data to B1950.0 FK4.
//将J2000.0 FK5恒星目录数据转换为B1950.0 FK4

void 	iauFk52h (double r5, double d5, double dr5, double dd5, double px5, double rv5, double *rh, double *dh, double *drh, double *ddh, double *pxh, double *rvh)
//Transform FK5 star data into the Hipparcos system. 
//将FK5恒星数据转换为Hipparcos系统

void 	iauFk54z (double r2000, double d2000, double bepoch, double *r1950, double *d1950, double *dr1950, double *dd1950)
//Convert a J2000.0 FK5 star position to B1950.0 FK4, assuming zero proper motion in FK5 and parallax.
//将J2000.0 FK5恒星位置转换为B1950.0 FK4

void 	iauFk5hip (double r5h[3][3], double s5h[3])
//FK5 to Hipparcos rotation and spin. 
//FK5到Hipparcos依巴谷卫星公转和自转

void 	iauFk5hz (double r5, double d5, double date1, double date2, double *rh, double *dh)
//Transform an FK5 star position into the Hipparcos system. 
//FK5星体位置到依巴谷系统

void 	iauFw2m (double gamb, double phib, double psi, double eps, double r[3][3])
//Form rotation matrix given the Fukushima-Williams angles. 
//根据(福岛-威廉姆斯)Fukushima Williams角度形成旋转矩阵

void 	iauFw2xy (double gamb, double phib, double psi, double eps, double *x, double *y)
//CIP X,Y given Fukushima-Williams bias-precession-nutation angles.
//CIP X,Y给定Fukushima Williams偏置进动章动角 

int 	iauGc2gde (double a, double f, double xyz[3], double *elong, double *phi, double *height)
//Transform geocentric coordinates to geodetic. 
//将地心坐标转换为大地坐标

int 	iauGd2gce (double a, double f, double elong, double phi, double height, double xyz[3])
//Transform geodetic coordinates to geocentric. 
//将大地坐标转换为地心坐标

double 	iauGst00b (double uta, double utb)
//Greenwich apparent sidereal time. 
//格林尼治视恒星时间

double 	iauGst06 (double uta, double utb, double tta, double ttb, double rnpb[3][3])
//Greenwich apparent sidereal time. 
//格林尼治视恒星时间

double 	iauGst94 (double uta, double utb)
//Greenwich apparent sidereal time. 
//格林尼治视恒星时间

void 	iauH2fk5 (double rh, double dh, double drh, double ddh, double pxh, double rvh, double *r5, double *d5, double *dr5, double *dd5, double *px5, double *rv5)
//Transform Hipparcos star data into the FK5 (J2000.0) system. 
//将Hipparcos恒星数据转换为FK5(J2000.0)系统

void 	iauHd2ae (double ha, double dec, double phi, double *az, double *el)
//Equatorial to horizon coordinates. 
//赤道至地平线坐标

double 	iauHd2pa (double ha, double dec, double phi)
//Parallactic angle for a given hour angle and declination.
//给定时角和赤纬的视差角

void 	iauHfk5z (double rh, double dh, double date1, double date2, double *r5, double *d5, double *dr5, double *dd5)
//Transform a Hipparcos star position into FK5 J2000.0. 
//将Hipparcos恒星位置转换为FK5 J2000.0

int 	iauJd2cal (double dj1, double dj2, int *iy, int *im, int *id, double *fd)
//Julian Date to Gregorian year, month, day, and fraction of a day.
//儒略日期到公历年、月、日和一天的小数 

int 	iauJdcalf (int ndp, double dj1, double dj2, int iymdf[4])
//Julian Date to Gregorian Calendar. 
//儒略历日期到公历

void 	iauLd (double bm, double p[3], double q[3], double e[3], double em, double dlim, double p1[3])
//Apply light deflection by a solar-system body. 
//太阳系物体对光的偏转

void 	iauLdn (int n, iauLDBODY b[], double ob[3], double sc[3], double sn[3])
//apply light deflection by multiple solar-system bodies 
//多个太阳系天体对光的偏转

void 	iauLdsun (double p[3], double e[3], double em, double p1[3])
//Deflection of starlight by the Sun.
//太阳对星光的偏转 

void 	iauLteceq (double epj, double dl, double db, double *dr, double *dd)
//Transformation from ecliptic coordinates (mean equinox and ecliptic of date) to ICRS RA,Dec.
//从黄道坐标(日期的平均平分点和黄道)到ICRS赤经赤纬的转换。

void 	iauLtecm (double epj, double rm[3][3])
//ICRS equatorial to ecliptic rotation matrix, long-term. 
//ICRS赤道到黄道旋转矩阵,长期

void 	iauLteqec (double epj, double dr, double dd, double *dl, double *db)
//Transformation from ICRS equatorial coordinates to ecliptic coordinates. 
//从ICRS赤道坐标到黄道坐标的转换

void 	iauLtp (double epj, double rp[3][3])
//Long-term precession matrix.
//长期进动矩阵

void 	iauLtpb (double epj, double rpb[3][3])
//Long-term precession matrix, including ICRS frame bias.
//长期进动矩阵,包括ICRS帧偏移

void 	iauLtpecl (double epj, double vec[3])
//Long-term precession of the ecliptic.
//黄道的长期进动

void 	iauNum00a (double date1, double date2, double rmatn[3][3])
//Form the matrix of nutation for a given date.
//形成给定日期的章动矩阵 

void 	iauNum00b (double date1, double date2, double rmatn[3][3])
//Form the matrix of nutation for a given date.
//形成给定日期的章动矩阵 

void 	iauNum06a (double date1, double date2, double rmatn[3][3])
//Form the matrix of nutation for a given date. 
//形成给定日期的章动矩阵

void 	iauNumat (double epsa, double dpsi, double deps, double rmatn[3][3])
//Form the matrix of nutation.
 //形成章动矩阵

void 	iauNutm80 (double date1, double date2, double rmatn[3][3])
//Form the matrix of nutation for a given date,. 
//形成给定日期的章动矩阵

void 	iauPb06 (double date1, double date2, double *bzeta, double *bz, double *btheta)
//forms three Euler angles which implement general precession from epoch J2000.0, 
//形成三个欧拉角,实现从历元J2000.0开始的一般进动

int 	iauPlan94 (double date1, double date2, int np, double pv[2][3])
//Approximate heliocentric position and velocity of a planet. 
//行星的近似日心位置和速度

void 	iauPmat00 (double date1, double date2, double rbp[3][3])
//Precession matrix from GCRS to specified date. 
//GCRS到指定日期的进动矩阵

void 	iauPmat06 (double date1, double date2, double rbp[3][3])
//Precession matrix from GCRS to a specified date. 
//GCRS到指定日期的进动矩阵

void 	iauPmat76 (double date1, double date2, double rmatp[3][3])
//Precession matrix from J2000.0 to a specified date. 
//J2000.0到指定日期的进动矩阵

void 	iauPmpx (double rc, double dc, double pr, double pd, double px, double rv, double pmt, double pob[3], double pco[3])
//Proper motion and parallax. 
//自行运动和视差

int 	iauPmsafe (double ra1, double dec1, double pmr1, double pmd1, double px1, double rv1, double ep1a, double ep1b, double ep2a, double ep2b, double *ra2, double *dec2, double *pmr2, double *pmd2, double *px2, double *rv2)
//Star proper motion. 
//恒星自有运动

void 	iauPn00 (double date1, double date2, double dpsi, double deps, double *epsa, double rb[3][3], double rp[3][3], double rbp[3][3], double rn[3][3], double rbpn[3][3])
//Precession-nutation, IAU 2000 model. 
//进动章动,IAU 2000模型

void 	iauPn00a (double date1, double date2, double *dpsi, double *deps, double *epsa, double rb[3][3], double rp[3][3], double rbp[3][3], double rn[3][3], double rbpn[3][3])
//Precession-nutation, IAU 2000A model. 
//进动章动,IAU 2000模型

void 	iauPn00b (double date1, double date2, double *dpsi, double *deps, double *epsa, double rb[3][3], double rp[3][3], double rbp[3][3], double rn[3][3], double rbpn[3][3])
//Precession-nutation, IAU 2000B model. 
//进动章动,IAU 2000B模型

void 	iauPn06 (double date1, double date2, double dpsi, double deps, double *epsa, double rb[3][3], double rp[3][3], double rbp[3][3], double rn[3][3], double rbpn[3][3])
//Precession-nutation, IAU 2006 model. 
//进动章动,IAU 2006模型

void 	iauPn06a (double date1, double date2, double *dpsi, double *deps, double *epsa, double rb[3][3], double rp[3][3], double rbp[3][3], double rn[3][3], double rbpn[3][3])
//Precession-nutation, IAU 2006/2000A models. 
//进动章动,IAU 2006/2000A模型

void 	iauPnm00a (double date1, double date2, double rbpn[3][3])
//Form the matrix of precession-nutation. 
//形成进动章动矩阵

void 	iauPnm00b (double date1, double date2, double rbpn[3][3])
//Form the matrix of precession-nutation. 
//形成进动章动矩阵

void 	iauPnm06a (double date1, double date2, double rnpb[3][3])
//Form the matrix of precession-nutation. 
//形成进动章动矩阵

void 	iauPnm80 (double date1, double date2, double rmatpn[3][3])
//Form the matrix of precession/nutation. 
//形成进动章动矩阵

void 	iauPom00 (double xp, double yp, double sp, double rpom[3][3])
//Form the matrix of polar motion. 
//形成进动章动矩阵

int 	iauPvstar (double pv[2][3], double *ra, double *dec, double *pmr, double *pmd, double *px, double *rv)
//Convert star position+velocity vector to catalog coordinates. 
//将恒星位置+速度矢量转换为目录坐标

void 	iauPvtob (double elong, double phi, double hm, double xp, double yp, double sp, double theta, double pv[2][3])
//Position and velocity of a terrestrial observing station. 
//地面观测站的位置和速度

void 	iauRefco (double phpa, double tc, double rh, double wl, double *refa, double *refb)
//Determine constants in the atmospheric refraction model. 
//确定大气折射模型中的常数

double 	iauS00a (double date1, double date2)
//The CIO locator using the IA2000A precission-nutation model.
//使用IA2000A精密章动模型的CIO定位器 

double 	iauS00b (double date1, double date2)
//The CIO locator using the IAU 2000B precission-nutation model. 
//使用IAU 2000B精密章动模型的CIO定位器

double 	iauS06a (double date1, double date2)
//The CIO locator using IAU2006 precession and IAU 2000A nutation models.
//使用IAU2006进动和IAU 2000A章动模型的CIO定位器。

int 	iauStarpm (double ra1, double dec1, double pmr1, double pmd1, double px1, double rv1, double ep1a, double ep1b, double ep2a, double ep2b, double *ra2, double *dec2, double *pmr2, double *pmd2, double *px2, double *rv2)
//Star proper motion. 
//星体自有运动

int 	iauStarpv (double ra, double dec, double pmr, double pmd, double px, double rv, double pv[2][3])
//Convert star catalog coordinates to position+velocity vector. 
//将星表坐标转换为位置+速度矢量

int 	iauTf2a (char s, int ihour, int imin, double sec, double *rad)
//Convert hours, minutes, seconds to radians. 
//将时分秒转换为弧度。

int 	iauTf2d (char s, int ihour, int imin, double sec, double *days)
//Convert hours, minutes, seconds to days. 
//时分秒转日。Transfer f to Days. 

int 	iauTporv (double xi, double eta, double v[3], double v01[3], double v02[3])
//In the tangent plane projection, determine the direction cosines of the tangent point. 
//在切平面投影中,确定切点的方向余弦。

void 	iauTpsts (double xi, double eta, double a0, double b0, double *a, double *b)
//In the tangent plane projection, solve for the spherical coordinates of the star. 
//在切平面投影中,求解恒星的球面坐标。

void 	iauTpstv (double xi, double eta, double v0[3], double v[3])
//In the tangent plane projection, solve for the direction cosines of the star. 
//在切平面投影中,求出恒星的方向余弦。

int 	iauTpxes (double a, double b, double a0, double b0, double *xi, double *eta)
//In the tangent plane projection, solve for the star's rectangular coordinates in the tangent plane.
//在切平面投影中,求出恒星在切平面中的直角坐标

int 	iauTpxev (double v[3], double v0[3], double *xi, double *eta)
//In the tangent plane projection, solve for the star's rectangular coordinates in the tangent plane. 
//在切平面投影中,求出恒星在切平面中的直角坐标。

void 	iauXys00a (double date1, double date2, double *x, double *y, double *s)
//Compute X,Y coordinates of the CIP and CIO locator. 
//计算CIP和CIO定位器的X、Y坐标。

void 	iauXys00b (double date1, double date2, double *x, double *y, double *s)
//Compute X,Y coordinates of the CIP and CIO locator. 
//计算CIP和CIO定位器的X、Y坐标

void 	iauXys06a (double date1, double date2, double *x, double *y, double *s)
//Compute X,Y coordinates of the CIP and CIO locator. 
//计算CIP和CIO定位器的X、Y坐标。
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
  • 82
  • 83
  • 84
  • 85
  • 86
  • 87
  • 88
  • 89
  • 90
  • 91
  • 92
  • 93
  • 94
  • 95
  • 96
  • 97
  • 98
  • 99
  • 100
  • 101
  • 102
  • 103
  • 104
  • 105
  • 106
  • 107
  • 108
  • 109
  • 110
  • 111
  • 112
  • 113
  • 114
  • 115
  • 116
  • 117
  • 118
  • 119
  • 120
  • 121
  • 122
  • 123
  • 124
  • 125
  • 126
  • 127
  • 128
  • 129
  • 130
  • 131
  • 132
  • 133
  • 134
  • 135
  • 136
  • 137
  • 138
  • 139
  • 140
  • 141
  • 142
  • 143
  • 144
  • 145
  • 146
  • 147
  • 148
  • 149
  • 150
  • 151
  • 152
  • 153
  • 154
  • 155
  • 156
  • 157
  • 158
  • 159
  • 160
  • 161
  • 162
  • 163
  • 164
  • 165
  • 166
  • 167
  • 168
  • 169
  • 170
  • 171
  • 172
  • 173
  • 174
  • 175
  • 176
  • 177
  • 178
  • 179
  • 180
  • 181
  • 182
  • 183
  • 184
  • 185
  • 186
  • 187
  • 188
  • 189
  • 190
  • 191
  • 192
  • 193
  • 194
  • 195
  • 196
  • 197
  • 198
  • 199
  • 200
  • 201
  • 202
  • 203
  • 204
  • 205
  • 206
  • 207
  • 208
  • 209
  • 210
  • 211
  • 212
  • 213
  • 214
  • 215
  • 216
  • 217
  • 218
  • 219
  • 220
  • 221
  • 222
  • 223
  • 224
  • 225
  • 226
  • 227
  • 228
  • 229
  • 230
  • 231
  • 232
  • 233
  • 234
  • 235
  • 236
  • 237
  • 238
  • 239
  • 240
  • 241
  • 242
  • 243
  • 244
  • 245
  • 246
  • 247
  • 248
  • 249
  • 250
  • 251
  • 252
  • 253
  • 254
  • 255
  • 256
  • 257
  • 258
  • 259
  • 260
  • 261
  • 262
  • 263
  • 264
  • 265
  • 266
  • 267
  • 268
  • 269
  • 270
  • 271
  • 272
  • 273
  • 274
  • 275
  • 276
  • 277
  • 278
  • 279
  • 280
  • 281
  • 282
  • 283
  • 284
  • 285
  • 286
  • 287
  • 288
  • 289
  • 290
  • 291
  • 292
  • 293
  • 294
  • 295
  • 296
  • 297
  • 298
  • 299
  • 300
  • 301
  • 302
  • 303
  • 304
  • 305
  • 306
  • 307
  • 308
  • 309
  • 310
  • 311
  • 312
  • 313
  • 314
  • 315
  • 316
  • 317
  • 318
  • 319
  • 320
  • 321
  • 322
  • 323
  • 324
  • 325
  • 326
  • 327
  • 328
  • 329
  • 330
  • 331
  • 332
  • 333
  • 334
  • 335
  • 336
  • 337
  • 338
  • 339
  • 340
  • 341
  • 342
  • 343
  • 344
  • 345
  • 346
  • 347
  • 348
  • 349
  • 350
  • 351
  • 352
  • 353
  • 354
  • 355
  • 356
  • 357
  • 358
  • 359
  • 360
  • 361
  • 362
  • 363
  • 364
  • 365
  • 366
  • 367
  • 368
  • 369
  • 370
  • 371
  • 372
  • 373
  • 374
  • 375
  • 376
  • 377
  • 378
  • 379
  • 380
  • 381
  • 382
  • 383
  • 384
  • 385
  • 386
  • 387
  • 388
  • 389
  • 390
  • 391
  • 392
  • 393
  • 394
  • 395
  • 396
  • 397
  • 398
  • 399
  • 400
  • 401
  • 402
  • 403
  • 404
  • 405
  • 406
  • 407
  • 408
  • 409
  • 410
  • 411
  • 412
  • 413
  • 414
  • 415
  • 416
  • 417
  • 418
  • 419
  • 420
  • 421
  • 422
  • 423
  • 424
  • 425
  • 426
  • 427
  • 428
  • 429
  • 430
  • 431
  • 432
  • 433
  • 434
  • 435
  • 436
  • 437
  • 438
  • 439
  • 440
  • 441
  • 442
  • 443
  • 444
  • 445
  • 446
  • 447
  • 448
  • 449
  • 450
  • 451
  • 452
  • 453
  • 454
  • 455
  • 456
  • 457
  • 458
  • 459
  • 460
  • 461
  • 462
  • 463
  • 464
  • 465
  • 466
  • 467
  • 468
  • 469
  • 470
  • 471
  • 472
  • 473
  • 474
  • 475
  • 476
  • 477
  • 478
  • 479
  • 480
  • 481
  • 482
  • 483
  • 484
  • 485
  • 486
  • 487
  • 488
  • 489
  • 490
  • 491
  • 492
  • 493
  • 494
  • 495
  • 496
  • 497
  • 498
  • 499
  • 500
  • 501
  • 502
  • 503
  • 504
  • 505
  • 506
  • 507
  • 508
  • 509
  • 510
  • 511
  • 512
  • 513
  • 514
  • 515

3.1 iauApco13() 计算恒星无关天体测量参数

  • prepare star-independent astrometry parameters
  • For a terrestrial observer, prepare star-independent astrometry parameters for transformations between ICRS and observed coordinates. The caller supplies UTC, site coordinates, ambient air conditions and observing wavelength, and SOFA models are used to obtain the Earth ephemeris, CIP/CIO and refraction constants.
  • The parameters produced by this function are required in the parallax, light deflection, aberration, and bias-precession-nutation parts of the ICRS/CIRS transformations.
int 	iauApco13 (double utc1, double utc2, double dut1, double elong, double phi, double hm, double xp, double yp, double phpa, double tc, double rh, double wl, iauASTROM *astrom, double *eo)
  • 1
Parameters
[in]	utc1	UTC as a 2-part...									//儒略日
[in]	utc2	...quasi Julian Date (Notes 1,2)					//儒略日一天的小数部分
[in]	dut1	UT1-UTC (seconds, Note 3)							//UT1是世界时UT0经过地极移动改正后的世界时
[in]	elong	longitude (radians, east +ve, Note 4)				//观测站地理经度,WGS84 
[in]	phi		latitude (geodetic, radians, Note 4)				//观测站地理纬度
[in]	hm		height above ellipsoid (m, geodetic, Notes 4,6)		//观测站高度
[in]	xp,yp	polar motion coordinates (radians, Note 5)			//地轴极移x、y方向
[in]	phpa	pressure at the observer (hPa = mB, Note 6)			//气压
[in]	tc		ambient temperature at the observer (deg C)			//温度
[in]	rh		relative humidity at the observer (range 0-1)		//温度
[in]	wl		wavelength (micrometers, Note 7)					//波长
[out]	astrom	star-independent astrometry parameters:				//输出恒星无关参数-----
[out]	pmt		PM time interval (SSB, Julian years)				//时间间隔
[out]	eb		SSB to observer (vector, au)						//
[out]	eh		Sun to observer (unit vector)						
[out]	em		distance from Sun to observer (au)
[out]	v		barycentric observer velocity (vector, c)
[out]	bm1		sqrt(1-|v|^2): reciprocal of Lorenz factor
[out]	bpn		bias-precession-nutation matrix
[out]	along	longitude + s' (radians)
[out]	xpl		polar motion xp wrt local meridian (radians)
[out]	ypl		polar motion yp wrt local meridian (radians)
[out]	sphi	sine of geodetic latitude
[out]	cphi	cosine of geodetic latitude
[out]	diurab	magnitude of diurnal aberration vector
[out]	eral	"local" Earth rotation angle (radians)
[out]	refa	refraction constant A (radians)
[out]	refb	refraction constant B (radians)
[out]	eo		equation of the origins (ERA-GST)
Returns
		+1 = dubious year (Note 2) 
 		 0 = OK 
		-1 = unacceptable 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34

3.2 iauAtco13() 赤经赤纬坐标转换到观察者位置

  • ICRS RA,Dec to observed place.
  • ICRS RA,Dec to observed place. The caller supplies UTC, site coordinates, ambient air conditions and observing wavelength.
  • SOFA models are used for the Earth ephemeris, bias-precession- nutation, Earth orientation and refraction.
int iauAtco13(
double 	rc,			//赤经
double 	dc,			//赤纬
double 	pr,			//
double 	pd,			//
double 	px,			//
double 	rv,			//
double 	utc1,		//
double 	utc2,		//
double 	dut1,		//
double 	elong,		//
double 	phi,		//
double 	hm,			//
double 	xp,			//
double 	yp,			//
double 	phpa,		//
double 	tc,			//
double 	rh,			//
double 	wl,			//
double * aob,		//
double * zob,		//
double * hob,		//
double * dob,		//
double * rob,		//
double * eo 		//
)	
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
Parameters
[in]	rc		ICRS right ascension at J2000.0 (radians, Note 1)  	//赤经
[in]	dc		ICRS declination at J2000.0 (radians, Note 1) 		//赤纬
[in]	pr		RA proper motion (radians/year; Note 2) 			//赤经固有运动
[in]	pd		Dec proper motion (radians/year)					//赤纬固有运动
[in]	px		parallax (arcsec)									//视差
[in]	rv		radial velocity (km/s, +ve if receding)				//角速度
[in]	utc1	UTC as a 2-part quasi Julian Date					//utc转成儒略日
[in]	utc2	UTC as a 2-part quasi Julian Date (Notes 3-4)		//utc转成儒略日的小数部分
[in]	dut1	UT1-UTC (seconds, Note 5)							//UT1与utc的差
[in]	elong	longitude (radians, east +ve, Note 6)				//经
[in]	phi		latitude (geodetic, radians, Note 6)				//纬
[in]	hm		height above ellipsoid (m, geodetic, Notes 6,8)		//高
[in]	xp,yp	polar motion coordinates (radians, Note 7)			//极坐标
[in]	phpa	pressure at the observer (hPa = mB, Note 8)			//气压
[in]	tc		ambient temperature at the observer (deg C)			//环境温度
[in]	rh		relative humidity at the observer (range 0-1)		//相对温度
[in]	wl		wavelength (micrometers, Note 9)					//波长
[out]	aob		observed azimuth (radians: N=0,E=90)				//观测方位角
[out]	zob		observed zenith distance (radians)					//观测天顶距离
[out]	hob		observed hour angle (radians)						//观测小时角
[out]	dob		observed declination (radians)						//观测赤纬
[out]	rob		observed right ascension (CIO-based, radians)		//观测赤经
[out]	eo		equation of the origins (ERA-GST)					//起源方程式
Returns
	+1 = dubious year (Note 4) 
	 0 = OK 
	-1 = unacceptable
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28

3.3 iauDtf2d()

将日期和时间字段编码为两部分的儒略日期。
将日期和时间字段编码为两部分的儒略日期(或者在UTC的情况下,包含闰秒特殊规定的准JD形式)。
Encode date and time fields into 2-part Julian Date.
Encode date and time fields into 2-part Julian Date (or in the case of UTC a quasi-JD form that includes special provision for leap seconds).

int iauDtf2d(	
const char * 	scale,	//时段
int 	iy,
int 	im,
int 	id,
int 	ihr,
int 	imn,
double 	sec,
double * d1,
double * d2 
)		
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
Parameters
[in]	scale		time scale ID (Note 1)		//时段标志
[in]	iy,im,id	year, month, day in Gregorian calendar (Note 2)
[in]	ihr,imn		hour, minute
[in]	sec			seconds
[out]	d1,d2		2-part Julian Date (Notes 3,4)
Returns
+3 = both of next two +2 = time is after end of day (Note 5) +1 = dubious year (Note 6) 0 = OK -1 = bad year -2 = bad month -3 = bad day -4 = bad hour -5 = bad minute -6 = bad second (<0)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

3.4 iauAf2a()、iauTf2a()

3.4.1 iauAf2a() 度分秒

度、弧分、弧秒 ===> 弧度(double)
注意:不是角度,换成角度要(x*180/Pi)
Convert degrees, arcminutes, arcseconds to radians.

int 	iauAf2a (char s, int ideg, int iamin, double asec, double *rad)

  • 1
  • 2
Parameters
[in]	s		sign: '-' = negative, otherwise positive
[in]	ideg	degrees
[in]	iamin	arcminutes
[in]	asec	arcseconds
[out]	rd		angle in radians
Returns
0 = OK 1 = ideg outside range 0-359 2 = iamin outside range 0-59 3 = asec outside range 0-59.999...
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

3.4.2 iauTf2a() 时分秒

时分秒 ===> 弧度
Convert hours, minutes, seconds to radians.

int iauTf2a	(	
char 	s,
int 	ihour,
int 	imin,
double 	sec,
double *rad 
)	
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
Parameters
[in]	s		sign: '-' = negative, otherwise positive
[in]	ihour	hours
[in]	imin	minutes
[in]	sec		seconds
[out]	rad		angle in radians
Returns
status: 0 = OK 1 = ihour outside range 0-23 2 = imin outside range 0-59 3 = sec outside range 0-59.999...
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

5、astropy(封装了sofa的python库)

astropy官网:https://www.astropy.org/
Astropy文档:https://www.osgeo.cn/astropy/coordinates/index.html
AstroPy荣获2022年度ADASS软件奖
Python天文数据处理——Astropy
《利用精密星历验证ITRS与GCRS不同转换方法的差异》:在不同领域经常涉及到国际地球参考系(international terrestrial reference system,ITRS)和地心天球参考系(geocentric celestial reference system,GCRS)这两种不同坐标系之间的相互转换,其中ITRS用来描述地面点或近地卫星在地球上的位置,而GCRS用来描述自然天体或人造天体在空间的位置与方向。
目前,基础天文标准库(standards of fundamental astronomy,SOFA)基于天球中间原点(celestial intermediate origin,CIO),提供两种坐标转换方法——经典角度法X、Y序列转换方法。基于这两种转换方法,利用国际GNSS服务(IGS)提供的精密星历SP3,在不同历元对不同转换方法的差异进行了验证。实验表明,在任意历元,X轴和Z轴的差异均小于0.08 mm,而Y轴差异小于0.03mm。

6、OTF扫描

行进扫描(OTF)(一)
行进扫描(OTF)(二)
    行进扫描(On the fly mapping,简称OTF)是射电天文中的一种观测技术。
    行进扫描观测让望远镜波束沿一定轨迹对一个天区进行扫描,扫描的过程中以较高的采样率记录数据以及波束的指向。随后,数据处理过程中将这些数据序列处理为整个天区的二维(x-y)或三维(x-y-v)数据。所以,行进扫描的关键是高速(积分0.1秒或更短记录一次数据)记录数据以及通过数据处理还原数据。其中后一部分是重中之重。
    原则上,还原数据是一个反卷积的过程,但反卷积计算量大,并且可能不收敛。对于实际感兴趣的星际介质研究,展源的强度在空间上是缓变的,所以可以通过对(冗余)采样的数据进行平滑,近似还原数据。操作的关键是平滑函数的选取。
    但是在实际观测中,行进扫描需要考虑的问题很多,比如扫描轨迹、扫描速度、坐标投影等。和其它观测一样,行进扫描要考虑的一个最重要的指标是灵敏度。行进扫描的灵敏度和单此积分时间(TSAM)、卷积核(平滑函数)、扫描速度(R)以及冗余采样率(NOS)有关。而扫描速度和单次积分时间(TSAM)、冗余采样率(NOS)以及波束(在扫描方向的)半高全宽(BX)有关。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小桥流水78/article/detail/989471
推荐阅读
相关标签
  

闽ICP备14008679号