天文年历中几种常见天象图的绘制

中科院紫金山天文台和北京天文馆《天文爱好者》杂志社曾连续多年编纂《天文普及年历》, 其中就有不少行星周年视运动、日月和大行星的升没时刻和中天时刻图、木星伽利略卫星动态等。类似的图形,在《香港天文年历》中也有出现, 如 http://www.weather.gov.hk/gts/astron2018/2018transit.pdfhttp://www.weather.gov.hk/gts/astron2018/2018rise-set.pdf

这里提供一些R代码, 用于绘制类似图形。这些图形有些已经用于近几年的《爱牧夫天文台历》等 (参见 http://bbs.imufu.cn/thread-689955-1-1.html )。由于学识有限,错误和疏漏在所难免, 恳请广大读者指正。

用到的R程序包及其安装
天象图全部是用R语言程序包 skycalc, moonsun和ephem, 假设已安装了devtools程序包以及Rtools(针对Windows用户), 可以用以下命令安装上述三个程序包,需要按照如下顺序安装:

先安装Rcpp

install.packages(“Rcpp”)

skycalck安装:

devtools::install_github(“helixcn/skycalc”)

ephem包安装:

devtools::install_github(“helixcn/ephem”)

moonsun程序包: install.packages(“moonsun”)

R脚本
library(ephem)

Loading required package: moonsun

Loading required package: skycalc

Loading required package: Rcpp

library(skycalc)
options(longitude = 120) ## 假设经度为东经120度
金星和水星在日出日落时的高度和方位
venus_sunset(CAADate_DateToJD(2018, 1, 1, TRUE),
latitude = 40, days = 365, label_interval = 10 )
2018年金星在日落时的高度和方位

2018年金星在日落时的高度和方位

venus_sunrise(CAADate_DateToJD(2018, 1, 1, TRUE),
latitude = 40, days = 365, label_interval = 10)
2018年金星在日出时的高度和方位

2018年金星在日出时的高度和方位

mercury_sunrise( CAADate_DateToJD(2018, 1, 1, TRUE) ,
latitude = 40, days = 365, label_interval = 10)
2018年水星在日出时的高度和方位

2018年水星在日出时的高度和方位

mercury_sunset(CAADate_DateToJD(2018, 1, 1, TRUE),
latitude = 40, days = 365, label_interval = 10 )
2018年水星在日落时的高度和方位

2018年水星在日落时的高度和方位

2018年日月和大行星每月中旬在星空背景中的位置
plot_location_atlas(CAADate_DateToJD(Year = 2018,
Month =1,
Day =15,
TRUE))

Warning in log(constellation$MAG): NaNs produced

Warning in log(constellation$MAG): NaNs produced

Warning in log(constellation$MAG): NaNs produced

2018年1月15日月和大行星在星空背景中的位置

2018年1月15日月和大行星在星空背景中的位置

ra d phase angle dist size mag

2018-01-15-Sun 19h 46m 53s -22* 49’ 43’’ NA NA 0.98 0.5 NA

2018-01-15-Moon 18h 9m 11s -24* 38’ 15’’ 3.9 89.2 1.05 29.6 NA

2018-01-15-Mercury 18h 23m 22s -24* 33’ 59’’ 85.4 87.4 1.25 5.4 -1.5

2018-01-15-Venus 19h 51m 40s -22* 4’ 13’’ 100.0 -55.9 1.71 9.9 -3.9

2018-01-15-Mars 15h 18m 55s -18* 32’ 58’’ 92.1 105.3 1.82 5.1 0.9

2018-01-15-Jupiter 15h 5m 39s -17* 41’ 9’’ 99.3 106.4 5.76 34.2 -1.9

2018-01-15-Saturn 18h 11m 18s -23* 28’ 40’’ 100.0 91.1 10.99 15.1 1.3

2018-01-15-Uranus 1h 33m 44s 9* 11’ 8’’ 99.9 -111.4 19.90 3.3 5.8

2018-01-15-Neptune 22h 52m 20s -9* 50’ 40’’ 100.0 -111.5 30.66 2.0 7.9

2018-01-15-Pluto 18h 45m 15s -21* 55’ 52’’ 100.0 97.1 33.40 0.2 14.2

2018-01-15-Sun Sgr

2018-01-15-Moon Sgr

2018-01-15-Mercury Sgr

2018-01-15-Venus Sgr

2018-01-15-Mars Lib

2018-01-15-Jupiter Lib

2018-01-15-Saturn Sgr

2018-01-15-Uranus Psc

2018-01-15-Neptune Aqr

2018-01-15-Pluto Sgr

2018年日月和大行星中天时刻
plot_transit_table(transit_table(
CAADate_DateToJD(Year = 2018,
Month =1,
Day =1,
TRUE),
days =365),
legend = TRUE)
2018年日月和大行星的中天时刻

2018年日月和大行星的中天时刻

2018年行星的周年视运动
library(moonsun)
data(starcat)
ephem.mercury <- mercury(jd(year = 2018,
month = 1,
day = 1,
length = 365))
track(ephem.mercury,
mag = 4,
interval.lab = 30,
bright.lab = TRUE,
starcat = starcat,
bright = bright)
2018年水星的周年视运动

2018年水星的周年视运动

ephem.venus <- venus(jd(year = 2018,
month = 1,
day = 1,
length = 365))
track(ephem.venus, mag = 4,
interval.lab = 30,
bright.lab = TRUE,
starcat = starcat,
bright = bright)
2018年金星的周年视运动

2018年金星的周年视运动

ephem.mars <- mars(jd(year = 2018,
month = 1,
day = 1,
length = 365))
track(ephem.mars,
mag = 4,
interval.lab = 30,
bright.lab = TRUE,
starcat = starcat,
bright = bright)
2018年火星的周年视运动

2018年火星的周年视运动

ephem.jupiter <- jupiter(jd(year = 2018,
month = 1,
day = 1,
length = 365))
track(ephem.jupiter,
mag = 6,
interval.lab = 30,
bright.lab = TRUE,
starcat = starcat,
bright = bright)
2018年木星的周年视运动

2018年木星的周年视运动

ephem.saturn <- saturn(jd(year = 2018,
month = 1,
day = 1,
length = 365))
track(ephem.saturn,
mag = 8,
interval.lab = 30,
bright.lab = TRUE,
starcat = starcat,
bright = bright)
2018年土星的周年视运动

2018年土星的周年视运动

ephem.uranus <- uranus(jd(year = 2018,
month = 1,
day = 1,
length = 365))
track(ephem.uranus,
mag = 8,
interval.lab = 30,
bright.lab = TRUE,
starcat = starcat,
bright = bright)
2018年天王星的周年视运动

2018年天王星的周年视运动

ephem.neptune <- neptune(jd(year = 2018,
month = 1,
day = 1,
length = 365))
track(ephem.neptune,
mag = 8,
interval.lab = 30,
bright.lab = TRUE,
starcat = starcat,
bright = bright)
2018年海王星的周年视运动

2018年海王星的周年视运动

ephem.pluto <- pluto(jd(year = 2018,
month = 1,
day = 1,
length = 365))
track(ephem.pluto,
mag = 8,
interval.lab = 30,
bright.lab = TRUE,
starcat = starcat,
bright = bright)
2018年冥王星的周年视运动

2018年冥王星的周年视运动

木星伽利略卫星的位置变化
plot_juptermoons(CAADate_DateToJD(Year = 2018,
Month = 1,
Day =1,
TRUE),
days = 31, increment = 1/24)
2018年1月木星伽利略卫星的位置变化

2018年1月木星伽利略卫星的位置变化

参考文献

Komsta, Lukasz. 2013. Moonsun: Basic Astronomical Calculations with R. https://CRAN.R-project.org/package=moonsun.

Zhang, Jinlong. 2015. Skycalc: Computational Astronomy in R Based on Pj Naughter’s Aa+ Library. https://github.com/helixcn/skycalc/.

Zhang, Jinlong.. 2016. Ephem: Creating Figures for Astronomical Almanac.https://github.com/helixcn/.