16. swisseph功能概述 16.1. 行星和恒星计算 行星, 月亮, 小行星, 月交点, 远地点, 假想星体
long swe_calc_ut( double tjd_ut, /* 儒略日数, 世界时 */ int ipl, /* 行星编号 */ long iflag, /* 标志位 */ double *xx, /* 6个位置值的目标地址: 经度, 纬度, 距离, 经度速度, 纬度速度, 距离速度 */ char *serr); /* 256 字节的错误串 */
long swe_calc( double tjd_et, /* 儒略日数, 历书时 */ int ipl, /* 行星编号 */ long iflag, /* 标志位 */ double *xx, /* 6个位置值的目标地址: 经度, 纬度, 距离, 经度速度, 纬度速度, 距离速度 */ char *serr); /* 256 字节的错误串 */ 恒星 long swe_fixstar_ut( char *star, /* 恒星名, 返回40字节的恒星名*/ double tjd_ut, /* 儒略日数, 世界时 */ long iflag, /* 标志位 */ double *xx, /* 6个位置值的目标地址: 经度, 纬度, 距离, 经度速度, 纬度速度, 距离速度 */ char *serr); /* 256 字节的错误串*/
long swe_fixstar( char *star, /*恒星名, 返回40字节的恒星名*/ double tjd_et, /* 儒略日数, 历书时 */ long iflag, /* 标志位 */ double *xx, /* 6个位置值的目标地址: 经度, 纬度, 距离, 经度速度, 纬度速度, 距离速度 */ char *serr); /* 256 字节的错误串*/ 为天体行星的计算设置几何位置 void swe_set_topo ( double geolon, /* 地理经度 */ double geolat, /* 地理纬度 东经为正, 西经为负, 北纬为正, 南纬为负 */ double 高度); /* 海拔高度 */ 为恒星位置设置恒星模式 void swe_set_sid_mode ( int32 sid_mode, double t0, /* reference epoch */ double ayan_t0); /* 初始岁差 at t0 */
/* 函数计算给定 UT 日期的岁差. * 返回值是使用的星历标志或 ERR (-1) */ int32 swe_get_ayanamsa_ex_ut( double tjd_ut, /* 儒略日数 in UT */ int32 ephe_flag, /* 星历标志, SEFLG_SWIEPH, SEFLG_JPLEPH, SEFLG_MOSEPH 之一 */ double *daya, /* 输出: 岁差值 (指向双精度的指针 */ char *serr); /* 输出: 错误信息或警告 (指向串) */
/* 函数计算给定 ET/TT 日期的岁差. * 返回值为使用的星历标志或 ERR (-1) */ int32 swe_get_ayanamsa_ex( double tjd_ut, /* 儒略日数 in ET/TT */ int32 ephe_flag, /* 星在标志, SEFLG_SWIEPH, SEFLG_JPLEPH, SEFLG_MOSEPH 其中之一 */ double *daya, /* 输出: 岁差值 (指向双精度的指针 */ char *serr); /* 输出: 错误信息或警告(指向串的指针) */
/*从 UT 格式的日期得到岁差*/ double swe_get_ayanamsa_ut(double tjd_ut); /* 从 ET/TT 格式的日期得到岁差 */ double swe_get_ayanamsa(double tjd_et);
16.2 食和行星现象 查找给定地理位置的下一个食 int32 swe_sol_eclipse_when_loc( double tjd_start, /* 搜索的起始日期, 儒略日 UT */ int32 ifl, /* 星历标志*/ double *geopos, /* 3元素双精度数组 包含地理经度, 纬度, 高度 */ * 东经为正, * 西经为负, * 北纬为正, * 南纬为负 */ double *tret, /* 返回数组, 10 元素双精度数组, 见下 */ double *attr, /* 返回数组, 20 元素双精度数组, 见下 */ AS_BOOL backward, /* TRUE, 如果向前搜索 */ char *serr); /* 返回错误串 */ 全球地找出下一个日食 int32 swe_sol_eclipse_when_glob( double tjd_start, /* 搜索的起始日期, 儒略日 UT */ int32 ifl, /* 星历标志*/ int32 ifltype, /* 想要的食类型: SE_ECL_TOTAL 等 */ double *tret, /* 返回数组, 10 元素双精度数组, 见下 */ AS_BOOL backward, /* TRUE, 如果向前搜索 */ char *serr); /* 返回错误串 */ 对于给定tjd, 地理经度, 纬度和高度计算日食的属性 int32 swe_sol_eclipse_how( double tjd_ut, /* 时间, 儒略日 UT */ int32 ifl, /* 星历标志*/ double *geopos, /* 地理经度, 纬度, 高度 */ * 东经为正, * 西经为负, * 北纬为正, * 南纬为负 */ double *attr, /* 返回数组, 20 元素双精度数组, 见下 */ char *serr); /* 返回错误串 */ 当中心食达到中心或非中心食最大时找出它的地理位置 int32 swe_sol_eclipse_where ( double tjd_ut, /* 时间, 儒略日 UT */ int32 ifl, /* 星历标志*/ double *geopos, /* 返回数组, 2 元素数组, 地理经度和纬度. */ * 东经为正, * 西经为负, * 北纬为正, * 南纬为负 */ double *attr, /* 返回数组, 20 元素双精度数组, 见下 */ char *serr); /* 返回错误串 */
或
int32 swe_lun_occult_where ( double tjd_ut, /* 时间, 儒略日 UT */ int32 ipl, /* 行星编号 */ char* starname, /* 恒星名字, 如果不是恒星同时是必须是 NULL 或 ”” */ int32 ifl, /* 星历标志*/ double *geopos, /* 返回数组, 2 元素数组, 地理经度和纬度. * 东经为正, * 西经为负, * 北纬为正, * 南纬为负 */ double *attr, /* 返回数组, 20 元素双精度数组, 见下 */ char *serr); /* 返回错误串 */ 查找给定地理位置的一个星体的下一个月掩星 (也可用于日食 )
int32 swe_lun_occult_when_loc( double tjd_start, /* 搜索的起始日期, 儒略日 UT */ int32 ipl, /* 行星编号 */ char* starname, /* 恒星名字, 如果不是恒星同时是必须是 NULL 或 ”” */ int32 ifl, /* 星历标志*/ double *geopos, /* 3 元素双精度数组,含地理经度, 纬度, 高度 东经为正, 西经为负, 北纬为正, 南纬为负 */ double *tret, /* 返回数组, 10 元素双精度数组, 见下 */ double *attr, /* 返回数组, 20 元素双精度数组, 见下 */ AS_BOOL backward, /* TRUE, 如果向前搜索 */ char *serr); /* 返回错误串 */ 全球地查找下一个掩星 (也可用于日食 )
int32 swe_lun_occult_when_glob( double tjd_start, /* 搜索的起始日期, 儒略日 UT */ int32 ipl, /* 行星编号 */ char* starname, /* 恒星名字, 如果不是恒星同时是必须是 NULL 或 ”” */ int32 ifl, /* 星历标志*/ int32 ifltype, /* 想要的食类型 */ double *geopos, /* 3 元素双精度数组,含地理经度, 纬度, 高度 东经为正, 西经为负, 北纬为正, 南纬为负 */ double *tret, /* 返回数组, 10 元素双精度数组, 见下 */ double *attr, /* 返回数组, 20 元素双精度数组, 见下 */ AS_BOOL backward, /* TRUE, 如果向前搜索 */ char *serr); /* 返回错误串 */ 查找下一个月食, 从地理位置观察 int32 swe_lun_eclipse_when_loc( double tjd_start, /* 搜索的起始日期, 儒略日 UT */ int32 ifl, /* 星历标志*/ double *geopos, /* 3 元素双精度数组,含地理经度, 纬度, 高度 东经为正, 西经为负, 北纬为正, 南纬为负 */ double *tret, /* 返回数组, 10 元素双精度数组, 见下 */ double *attr, /* 返回数组, 20 元素双精度数组, 见下 */ AS_BOOL backward, /* TRUE, 如果向前搜索 */ char *serr); /* 返回错误串 */
查找下一个月食, 全局函数 int32 swe_lun_eclipse_when( double tjd_start, /* 搜索的起始日期, 儒略日 UT */ int32 ifl, /* 星历标志*/ int32 ifltype, /* 想要的食类型: SE_ECL_TOTAL etc. */ double *tret, /* 返回数组, 10 元素双精度数组, 见下 */ AS_BOOL backward, /* TRUE, 如果向前搜索 */ char *serr); /* 返回错误串 */ 计算给定时间的月食的属性 int32 swe_lun_eclipse_how( double tjd_ut, /* 时间, 儒略日 UT */ int32 ifl, /* 星历标志*/ double *geopos, /* 输入数组, 地理经度, 纬度, 高度 */ 东经为正, 西经为负, 北纬为正, 南纬为负 */ double *attr, /* 返回数组, 20 元素双精度数组, 见下 */ char *serr); /* 返回错误串 */
计算一个星体的升降和中天 int32 swe_rise_trans( double tjd_ut, /* 搜索该时间后 (UT) */ int32 ipl, /* 行星编号, 如果行星或月亮 */ char *starname, /* 恒星名, 如果恒星 */ int32 epheflag, /* 星历标志*/ int32 rsmi, /* 整型, 用于指出想要的升, 落, 或两个中天之一. 参见下面的定义 */ double *geopos, /* 三元素双精度数组包含地理经度, 纬度, 海拔高度 */ double atpress, /* 大气压力 毫巴/hPa */ double attemp, /* 大气温度 摄氏度 */ double *tret, /* 返回升的时间的等的双精度数的地址 */ char *serr); /* 返回错误信息地址 */
int32 swe_rise_trans_true_hor( double tjd_ut, /* 搜索该时间后 (UT) */ int32 ipl, /* 行星编号, 如果行星或月亮 */ char *starname, /* 恒星名, 如果恒星 */ int32 epheflag, /* 星历标志*/ int32 rsmi, /*整型, 用于指出想要的升, 落, 或两个中天之一. 参见下面的定义 */ double *geopos, /* 三元素双精度数组包含 * 地理经度, 纬度, 海拔高度 */ double atpress, /* 大气压力 毫巴/hPa */ double attemp, /* 大气温度 摄氏度 */ double horhgt, /* 星体升或落点的本地水平线高度, 单位为度 */ double *tret, /* 返回升落等时间地址(双精度). */ char *serr); /* 返回错误信息地址 */
计算行星现象 int32 swe_pheno_ut( double tjd_ut, /* 时间 儒略日 UT */ int32 ipl, /* 行星编号 */ int32 iflag, /* 星历标志*/ double *attr, /* 返回数组, 20 元素双精度数组, 见下 */ char *serr); /* 返回错误串 */ int32 swe_pheno( double tjd_et, /* 时间 儒略日 ET */ int32 ipl, /* 行星编号 */ int32 iflag, /* 星历标志*/ double *attr, /* 返回数组, 20 元素双精度数组, 见下 */ char *serr); /* 返回错误串 */
void swe_azalt( double tjd_ut, /* UT */ int32 calc_flag, /* SE_ECL2HOR 或 SE_EQU2HOR */ double *geopos, /* 3元素双精度数组: 包含地理经度, 纬度, 高度 */ double atpress, /* 大气压力 毫巴 (hPa) */ double attemp, /* 大气温度 单位为摄氏度 */ double *xin, /* 3元素双精度数组: 星体的黄道或赤道坐标位置, 取决于 calc_flag */ double *xaz); /* 返回数组 3元素双精度数组, 包含方位角, 真高度, 视高度 */
void swe_azalt_rev( double tjd_ut, int32 calc_flag, /* SE_HOR2ECL 或 SE_HOR2EQU */ double *geopos, /* 3元素双精度数组, 包含观测者的地理位置 */ double *xin, /* 2 元素双精度数组, 包含行星的方位角和真高度 */ double *xout); /* 返回数组 2元素双精度数组包含黄道或赤道坐标, 取决于 calc_flag */ double swe_refrac( double inalt, double atpress, /* 大气压力 毫巴 (hPa) */ double attemp, /* 大气温度 单位为摄氏度 */ int32 calc_flag); /* SE_TRUE_TO_APP 或 SE_APP_TO_TRUE */
|