Functions for: determining eclipse and occultation calculations, computing the times of rising, setting and meridian transits for all planets, asteroids, the moon and the fixed stars; computing phase, phase angle, elongation, apparent diameter, apparent magnitude for the Sun, the Moon, all planets and asteroids; and determining heliacal phenomenon after a given start date

swe_sol_eclipse_when_loc(jd_start, ephe_flag, geopos, backward)

swe_sol_eclipse_when_glob(jd_start, ephe_flag, ifltype, backward)

swe_sol_eclipse_how(jd_ut, ephe_flag, geopos)

swe_sol_eclipse_where(jd_ut, ephe_flag)

swe_lun_occult_when_loc(jd_start, ipl, starname, ephe_flag, geopos, backward)

swe_lun_occult_when_glob(jd_start, ipl, starname, ephe_flag, ifltype, backward)

swe_lun_occult_where(jd_ut, ipl, starname, ephe_flag)

swe_lun_eclipse_when_loc(jd_start, ephe_flag, geopos, backward)

swe_lun_eclipse_how(jd_ut, ephe_flag, geopos)

swe_lun_eclipse_when(jd_start, ephe_flag, ifltype, backward)

swe_rise_trans_true_hor(
  jd_ut,
  ipl,
  starname,
  ephe_flag,
  rsmi,
  geopos,
  atpress,
  attemp,
  horhgt
)

swe_pheno_ut(jd_ut, ipl, ephe_flag)

swe_pheno(jd_et, ipl, ephe_flag)

swe_azalt(jd_ut, coord_flag, geopos, atpress, attemp, xin)

swe_azalt_rev(jd_ut, coord_flag, geopos, xin)

swe_refrac(InAlt, atpress, attemp, calc_flag)

swe_refrac_extended(InAlt, height, atpress, attemp, lapse_rate, calc_flag)

swe_heliacal_ut(jd_utstart, dgeo, datm, dobs, objectname, event_type, helflag)

swe_vis_limit_mag(jd_ut, dgeo, datm, dobs, objectname, helflag)

swe_heliacal_pheno_ut(jd_ut, dgeo, datm, dobs, objectname, event_type, helflag)

swe_topo_arcus_visionis(
  jd_ut,
  dgeo,
  datm,
  dobs,
  helflag,
  mag,
  AziO,
  AltO,
  AziS,
  AziM,
  AltM
)

swe_heliacal_angle(
  jd_ut,
  dgeo,
  datm,
  dobs,
  helflag,
  mag,
  AziO,
  AziS,
  AziM,
  AltM
)

Arguments

jd_start

Julian day number as double (UT)

ephe_flag

Ephemeris flag as integer (SE$FLG_JPLEPH=1, SE$FLG_SWIEPH=2 or SE$FLG_MOSEPH=4)

geopos

position as numeric vector (longitude, latitude, height)

backward

backwards search as boolean (TRUE)

ifltype

eclipse type as integer (SE$ECL_CENTRAL=1, SE$ECL_NONCENTRAL=2, SE$ECL_TOTAL=4, SE$ECL_ANNULAR=8, SE$ECL_PARTIAL=16, SE$ECL_ANNULAR_TOTAL=32 or 0 for any)

jd_ut

UT Julian day number as double (day)

ipl

Body/planet as integer (SE$SUN=0, SE$MOON=1, ... SE$PLUTO=9)

starname

Star name as string ("" for no star)

rsmi

Event flag as integer (e.g.: SE$CALC_RISE=1, SE$CALC_SET=2, SE$CALC_MTRANSIT=4, SE$CALC_ITRANSIT=8)

atpress

Atmospheric pressure as double (hPa)

attemp

Atmospheric temperature as double (Celsius)

horhgt

Horizon apparent altitude as double (deg)

jd_et

ET Julian day number as double (day)

coord_flag

Coordinate flag as integer (reference system (SE$ECL2HOR=0 or SE$EQU2HOR=1))

xin

Position of body as numeric vector (either ecliptical or equatorial coordinates, depending on coord_flag)

InAlt

object's apparent/topocentric altitude as double (depending on calc_flag) (deg)

calc_flag

Calculation flag as integer (refraction direction (SE$TRUE_TO_APP=0 or SE$APP_TO_TRUE=1))

height

observer's height as double (m)

lapse_rate

lapse rate as double (K/m)

jd_utstart

UT Julian day number as double (day)

dgeo

Geographic position as numeric vector (longitude, latitude, height)

datm

Atmospheric conditions as numeric vector (pressure, temperature, relative humidity, visibility)

dobs

Observer description as numeric vector

objectname

Name of fixed star or planet as string

event_type

Event type as integer

helflag

Calculation flag (incl. ephe_flag values) as integer

mag

Object's visible magnitude (Vmag) as double (-)

AziO

Object's azimuth as double (deg)

AltO

Object's altitude as double (deg)

AziS

Sun's azimuth as double (deg)

AziM

Moon's azimuth as double (deg)

AltM

Moon's altitude as double (deg)

Value

swe_sol_eclipse_when_loc returns a list with named entries:

return status flag as integer, tret for eclipse timing moments as numeric vector,

attr phenomena during eclipse as numeric vector and serr error message as string

swe_sol_eclipse_when_glob returns a list with named entries:

return status flag as integer, tret for eclipse timing moments as numeric vector and serr error warning as string

swe_sol_eclipse_how returns a list with named entries:

return status flag as integer,

attr phenomena during eclipse as numeric vector and serr error message as string

swe_sol_eclipse_where returns a list with named entries:

return status flag as integer, pathpos geographic path positions as numeric vector,

attr phenomena during eclipse as numeric vector and serr error message as string

swe_lun_occult_when_loc returns a list with named entries:

return status flag as integer, tret for eclipse timing moments as numeric vector,

attr phenomena during eclipse as numeric vector and serr error message as string

swe_lun_occult_when_glob returns a list with named entries:

return status flag as integer, tret for eclipse timing moments as numeric vector,

attr phenomena during eclipse as numeric vector and serr error message as string

swe_lun_occult_where returns a list with named entries:

return status flag as integer, pathpos geographic path positions as numeric vector,

attr phenomena during eclipse as numeric vector and serr error message as string

swe_lun_eclipse_when_loc returns a list with named entries:

return status flag as integer, tret for eclipse timing moments,

attr phenomena during eclipse and serr error warning as string

swe_lun_eclipse_how returns a list with named entries:

return status flag as integer,

attr phenomena during eclipse as numeric vector and serr error message as string

swe_lun_eclipse_when returns a list with named entries:

return status flag as integer, tret for eclipse timing moments as numeric vector and serr error warning as string

swe_rise_trans_true_hor returns a list with named entries: return status flag as integer,

tret for azimuth/altitude info as double and serr error message as string

swe_pheno_ut returns a list with named entries:

return status fag as integer, attr for phenomenon information as numeric vector and serr error warning as string

swe_pheno returns a list with named entries:

return status fag as integer, attr for phenomenon information as numeric vector and serr error message as string

swe_azalt returns a list with named entries:

xaz for azi/alt info as numeric vector.

swe_azalt_rev returns a list with named entries:

xaz for celestial info as numeric vector.

swe_refrac returns the (apparent/topocentric) altitude as double (deg)

swe_refrac_extended returns a list with named entries: return status flag as integer,

dret refraction results as numeric vector (TopoAlt, AppAlt, refraction)

swe_heliacal_ut returns a list with named entries return status flag as integer,

dret heliacal results as numeric vector, and serr error message as string.

swe_vis_limit_mag returns a list with named entries: return status flag as integer,

dret limiting magnitude as double and serr error message as string

swe_heliacal_pheno_ut returns a list with named entries: return status flag as integer

darr for heliacal details as numeric vector and serr error message as string

swe_topo_arcus_visionis returns a list with named entries: return status flag as integer,

darr heliacal details as numeric vector and serr error message as string

swe_heliacal_angle returns a list with named entries: return status flag as integer,

dret heliacal angle as numeric vector and serr error message as string

Details

swe_sol_eclipse_when_loc()

Find the next solar eclipse for a given geographic position.

swe_sol_eclipse_when_glob()

Find the next solar eclipse on earth.

swe_sol_eclipse_how()

Compute the attributes of a solar eclipse for a given time.

swe_sol_eclipse_where()

Compute the geographic position of a solar eclipse path.

swe_lun_occult_when_loc()

Find the next lunar occultation with planet or star at a certain position.

swe_lun_occult_when_glob()

Find the next lunar occultation with planet or star somewhere on the earth.

swe_lun_occult_where()

Compute the geographic position of an occultation path.

swe_lun_eclipse_when_loc()

Find the next lunar eclipse for a given geographic position.

swe_lun_eclipse_how()

Compute the attributes of a lunar eclipse for a given time.

swe_lun_eclipse_when()

Find the next lunar eclipse on earth.

swe_rise_trans_true_hor()

Compute the times of rising, setting and meridian transits for planets, asteroids, the moon, and the fixed stars for a local horizon that has an altitude.

swe_pheno_ut()

Compute phase, phase angle, elongation, apparent diameter, apparent magnitude for the Sun, the Moon, all planets and asteroids (UT)

swe_pheno()

Compute phase, phase angle, elongation, apparent diameter, apparent magnitude for the Sun, the Moon, all planets and asteroids (ET).

swe_azalt()

Compute the horizontal coordinates (azimuth and altitude) of a planet or a star from either ecliptical or equatorial coordinates.

swe_azalt_rev()

Compute either ecliptical or equatorial coordinates from azimuth and true altitude. If only an apparent altitude is given, the true altitude has to be computed first with e.g. the function swe_refrac_extended().

swe_refrac()

Calculate either the topocentric altitude from the apparent altitude or the apparent altitude from the topocentric altitude.

swe_refrac_extended()

Calculate either the topocentric altitude from the apparent altitude or the apparent altitude from the topocentric altitude. It allows correct calculation of refraction for heights above sea > 0, where the ideal horizon and planets that are visible may have a negative altitude.

swe_heliacal_ut()

Compute the Julian day of the next heliacal phenomenon after a given UT start date. It works between geographic latitudes 60 South and 60 North.

swe_vis_limit_mag()

Determine the limiting visual magnitude in dark skies. If the visual magnitude mag of an object is known for a given date (e. g. from a call of function swe_pheno_ut(), and if magnitude is smaller than the value returned by swe_vis_limit_mag(), then it is visible.

swe_heliacal_pheno_ut()

Provide data that are relevant for the calculation of heliacal risings and settings. This function does not provide data of heliacal risings and settings itself, just some additional data mostly used for test purposes. To calculate heliacal risings and settings, use the function swe_heliacal_ut().

swe_topo_arcus_visionis()

Compute topocentric arcus visionis.

swe_heliacal_angle()

Compute heliacal angle.

See also

Section 6 in http://www.astro.com/swisseph/swephprg.htm. Remember that array indices start in R at 1, while in C they start at 0!

Examples

data(SE)
swe_sol_eclipse_when_loc(1234567,SE$FLG_MOSEPH,c(0,50,10),FALSE)
#> $return
#> [1] 4242
#> 
#> $tret
#>  [1] 1234772 1234772       0       0 1234772 1234772       0       0       0
#> [10]       0
#> 
#> $attr
#>  [1]   0.5456566   0.9610719   0.4366684 140.8277404 240.5812752  -0.3454225
#>  [7]   0.1904528   0.2314444   0.5456566  43.0000000  11.0000000   0.0000000
#> [13]   0.0000000   0.0000000   0.0000000   0.0000000   0.0000000   0.0000000
#> [19]   0.0000000   0.0000000
#> 
#> $serr
#> [1] ""
#> 
swe_sol_eclipse_when_glob(1234567,SE$FLG_MOSEPH,SE$ECL_TOTAL+SE$ECL_CENTRAL+SE$ECL_NONCENTRAL,FALSE)
#> $return
#> [1] 5
#> 
#> $tret
#>  [1] 1235274 1235274 1235274 1235274 1235274 1235274 1235274 1235274       0
#> [10]       0       0       0       0       0       0       0       0       0
#> [19]       0       0
#> 
#> $serr
#> [1] ""
#> 
swe_sol_eclipse_how(1234580.19960447,SE$FLG_MOSEPH,c(0,50,10))
#> $return
#> [1] 0
#> 
#> $attr
#>  [1]   0.000000   0.000000   0.000000   0.000000  60.620865  -1.191438
#>  [7]  -1.191438 178.457334   0.000000   0.000000   0.000000   0.000000
#> [13]   0.000000   0.000000   0.000000   0.000000   0.000000   0.000000
#> [19]   0.000000   0.000000
#> 
#> $serr
#> [1] ""
#> 
swe_sol_eclipse_where(1234771.68584597,SE$FLG_MOSEPH)
#> $return
#> [1] 18
#> 
#> $pathpos
#>  [1] -12.73280  60.96523   0.00000   0.00000   0.00000   0.00000   0.00000
#>  [8]   0.00000   0.00000   0.00000   0.00000   0.00000   0.00000   0.00000
#> [15]   0.00000
#> 
#> $attr
#>  [1]   0.85430631   0.96115285   0.80281057 140.82774036 229.98172373
#>  [6]  -0.06472644   0.42784837   0.06720146   0.85430631  43.00000000
#> [11]  11.00000000   0.00000000   0.00000000   0.00000000   0.00000000
#> [16]   0.00000000   0.00000000   0.00000000   0.00000000   0.00000000
#> 
#> $serr
#> [1] ""
#> 
swe_lun_occult_when_loc(1234567,SE$VENUS,"",SE$FLG_MOSEPH+SE$ECL_ONE_TRY,c(0,50,10),FALSE)
#> $return
#> [1] 32644
#> 
#> $tret
#>  [1] 1234620 1234620 1234620 1234620 1234620       0       0       0       0
#> [10]       0
#> 
#> $attr
#>  [1]  4.507544e+01  1.018592e+02  1.037530e+04 -3.451949e+03  4.149433e+01
#>  [6]  9.456394e+00  9.549269e+00  3.256049e-02  0.000000e+00  0.000000e+00
#> [11]  0.000000e+00  0.000000e+00  0.000000e+00  0.000000e+00  0.000000e+00
#> [16]  0.000000e+00  0.000000e+00  0.000000e+00  0.000000e+00  0.000000e+00
#> 
#> $serr
#> [1] ""
#> 
swe_lun_occult_when_glob(1234567,SE$VENUS,"",SE$FLG_MOSEPH+SE$ECL_ONE_TRY,SE$ECL_TOTAL,FALSE)
#> $return
#> [1] 5
#> 
#> $tret
#>  [1] 1234590 1234590 1234590 1234591 1234590 1234591 1234590 1234590       0
#> [10]       0
#> 
#> $serr
#> [1] ""
#> 
swe_lun_occult_where(1234590.44756319,SE$VENUS,"",SE$FLG_MOSEPH+SE$ECL_ONE_TRY)
#> $return
#> [1] 5
#> 
#> $pathpos
#>  [1] 157.97716  24.85635   0.00000   0.00000   0.00000   0.00000   0.00000
#>  [8]   0.00000   0.00000   0.00000   0.00000   0.00000   0.00000   0.00000
#> [15]   0.00000
#> 
#> $attr
#>  [1]  3.961461e+01  7.827735e+01  6.127344e+03 -3.444528e+03  4.467609e+00
#>  [6]  4.393483e+01  4.395166e+01  1.659223e-04  0.000000e+00  0.000000e+00
#> [11]  0.000000e+00  0.000000e+00  0.000000e+00  0.000000e+00  0.000000e+00
#> [16]  0.000000e+00  0.000000e+00  0.000000e+00  0.000000e+00  0.000000e+00
#> 
#> $serr
#> [1] ""
#> 
swe_lun_eclipse_when_loc(1234567,SE$FLG_MOSEPH,c(0,50,10),FALSE)
#> $return
#> [1] 20624
#> 
#> $tret
#>  [1] 1234580       0       0 1234580       0       0       0 1234580 1234580
#> [10]       0
#> 
#> $attr
#>  [1]   0.7181782   1.7455705   0.0000000   0.0000000 240.6428342  -0.3511680
#>  [7]   0.1856562   0.5866590   0.7181782  12.0000000  58.0000000   0.0000000
#> [13]   0.0000000   0.0000000   0.0000000   0.0000000   0.0000000   0.0000000
#> [19]   0.0000000   0.0000000
#> 
#> $serr
#> [1] ""
#> 
swe_lun_eclipse_when(1234567,SE$FLG_MOSEPH,SE$ECL_CENTRAL,FALSE)
#> $return
#> [1] 4
#> 
#> $tret
#>  [1] 1234580       0 1234580 1234580 1234580 1234580 1234580 1234580       0
#> [10]       0       0       0       0       0       0       0       0       0
#> [19]       0       0
#> 
#> $serr
#> [1] ""
#> 
swe_lun_eclipse_how(1234580.19960447,SE$FLG_MOSEPH,c(0,50,10))
#> $return
#> [1] 16
#> 
#> $attr
#>  [1]   0.7181700   1.7455623   0.0000000   0.0000000 240.6429698  -0.3510697
#>  [7]   0.1857383   0.5866633   0.7181700  12.0000000  58.0000000   0.0000000
#> [13]   0.0000000   0.0000000   0.0000000   0.0000000   0.0000000   0.0000000
#> [19]   0.0000000   0.0000000
#> 
#> $serr
#> [1] ""
#> 
swe_rise_trans_true_hor(1234567.5,SE$SUN,"",SE$FLG_MOSEPH,0,c(0,50,10),1013.25,15,0)
#> $return
#> [1] 0
#> 
#> $tret
#> [1] 1234568
#> 
#> $serr
#> [1] ""
#> 
swe_pheno_ut(1234567,1,SE$FLG_MOSEPH)
#> $return
#> [1] 4
#> 
#> $attr
#>  [1] 149.63072161   0.06860756  30.29443454   0.51784960  -6.78321157
#>  [6]   0.95056874   0.00000000   0.00000000   0.00000000   0.00000000
#> [11]   0.00000000   0.00000000   0.00000000   0.00000000   0.00000000
#> [16]   0.00000000   0.00000000   0.00000000   0.00000000   0.00000000
#> 
#> $serr
#> [1] ""
#> 
swe_pheno(1234567,1,SE$FLG_MOSEPH)
#> $return
#> [1] 4
#> 
#> $attr
#>  [1] 154.11610006   0.05015976  25.81961047   0.52035863  -6.27357709
#>  [6]   0.95516823   0.00000000   0.00000000   0.00000000   0.00000000
#> [11]   0.00000000   0.00000000   0.00000000   0.00000000   0.00000000
#> [16]   0.00000000   0.00000000   0.00000000   0.00000000   0.00000000
#> 
#> $serr
#> [1] ""
#> 
swe_azalt(1234567,SE$EQU2HOR,c(0,50,10),15,1013.25,c(186,22))
#> $xaz
#> [1] 114.636188   8.210881   8.209274
#> 
swe_azalt_rev(1234567,SE$ECL2HOR,c(0, 50,10),c(123,2))
#> $xout
#> [1] 166.0465  18.0853   0.0000
#> 
swe_refrac_extended(2,0,1013.25,15,-0.065,SE$TRUE_TO_APP)
#> $return
#> [1] 2.278709
#> 
#> $dret
#>  [1] 2.0000000 2.2787088 0.2787088 0.0000000 0.0000000 0.0000000 0.0000000
#>  [8] 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000
#> [15] 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000
#> 
swe_heliacal_ut(1234567,c(0,50,10),c(1013.25,15,50,0.25),c(25,1,1,1,5,0.8),"sirius",
  SE$HELIACAL_RISING,SE$HELFLAG_HIGH_PRECISION+SE$FLG_MOSEPH)
#> $return
#> [1] 0
#> 
#> $dret
#>  [1] 1234769 1234769 1234769       0       0       0       0       0       0
#> [10]       0       0       0       0       0       0       0       0       0
#> [19]       0       0       0       0       0       0       0       0       0
#> [28]       0       0       0       0       0       0       0       0       0
#> [37]       0       0       0       0       0       0       0       0       0
#> [46]       0       0       0       0       0
#> 
#> $serr
#> [1] ""
#> 
swe_vis_limit_mag(1234567.5,c(0,50,10),c(1013.25,15,20,0.25),c(25,1,1,1,5,0.8),'sirius',
  SE$HELFLAG_HIGH_PRECISION+SE$FLG_MOSEPH)
#> $return
#> [1] 1
#> 
#> $dret
#>  [1]   5.968846  11.079741 224.100276 -61.808089 352.678922 -41.486802
#>  [7] 302.677186  -1.460000   0.000000   0.000000   0.000000   0.000000
#> [13]   0.000000   0.000000   0.000000   0.000000   0.000000   0.000000
#> [19]   0.000000   0.000000   0.000000   0.000000   0.000000   0.000000
#> [25]   0.000000   0.000000   0.000000   0.000000   0.000000   0.000000
#> [31]   0.000000   0.000000   0.000000   0.000000   0.000000   0.000000
#> [37]   0.000000   0.000000   0.000000   0.000000   0.000000   0.000000
#> [43]   0.000000   0.000000   0.000000   0.000000   0.000000   0.000000
#> [49]   0.000000   0.000000
#> 
#> $serr
#> [1] ""
#> 
swe_heliacal_pheno_ut(1234567.5,c(0,50,10),c(1013.25,15,20,0.25),c(25,1,1,1,5,0.8),'sirius',
  SE$HELIACAL_RISING,SE$HELFLAG_HIGH_PRECISION+SE$FLG_MOSEPH)
#> $return
#> [1] 0
#> 
#> $darr
#>  [1]  1.107974e+01  1.115846e+01  1.107973e+01  2.241003e+02 -6.180809e+01
#>  [6]  3.526789e+02  7.288783e+01  7.288782e+01  1.285786e+02  1.005729e+02
#> [11]  2.500000e-01  0.000000e+00  1.234568e+06  1.000000e+08  1.000000e+08
#> [16]  1.000000e+08  0.000000e+00  0.000000e+00  0.000000e+00 -7.653757e-06
#> [21] -1.460000e+00  1.234568e+06  1.234568e+06  3.436893e-01  1.000000e+08
#> [26]  0.000000e+00  1.005729e+02  1.000000e+02  0.000000e+00  0.000000e+00
#> [31]  0.000000e+00  0.000000e+00  0.000000e+00  0.000000e+00  0.000000e+00
#> [36]  0.000000e+00  0.000000e+00  0.000000e+00  0.000000e+00  0.000000e+00
#> [41]  0.000000e+00  0.000000e+00  0.000000e+00  0.000000e+00  0.000000e+00
#> [46]  0.000000e+00  0.000000e+00  0.000000e+00  0.000000e+00  0.000000e+00
#> 
#> $serr
#> [1] ""
#> 
swe_topo_arcus_visionis(1234567.5,c(0,50,10),c(1013.25,15,20,0.25),c(25,1,1,1,5,0.8),
  SE$HELFLAG_HIGH_PRECISION+SE$HELFLAG_OPTICAL_PARAMS,-1,124,2,120,0,-45)
#> $return
#> [1] 0
#> 
#> $tav
#> [1] 12.48013
#> 
#> $serr
#> [1] ""
#> 
swe_heliacal_angle(1234567.5,c(0,50,10),c(1013.25,15,20,0.25),c(25,1,1,1,5,0.8),
  SE$HELFLAG_HIGH_PRECISION+SE$HELFLAG_OPTICAL_PARAMS,-1,124,120,0,-45)
#> $return
#> [1] 0
#> 
#> $dret
#>  [1]  3.468750 11.569977 -8.101227  0.000000  0.000000  0.000000  0.000000
#>  [8]  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000
#> [15]  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000
#> [22]  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000
#> [29]  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000
#> [36]  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000
#> [43]  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000
#> [50]  0.000000
#> 
#> $serr
#> [1] ""
#>