PEXO is a package for making precise exoplanetology. As compared with previous models and packages, PEXO is significantly advanced and accounts for the orbital dynamics of binary motion and stellar reflex motions induced by planetary companions. PEXO treats both classic and relativistic effects such as the Roemer, Shapiro, and Einstein time delays both in the Solar System and in the target system
PEXO is able to model timing to a precision of 1 ns, astrometry to a precision of 1 microarcsecond, and radial velocity to a theoretical precision of 1 \(\mu\)m/s and a realistic precision of 1 cm/s. PEXO was bechmarked with the pulsar timing package TEMPO2. Theoretical and computational details of the code are described in the paper by Feng et al (2019).
The code is written in R and depends on several libraries. To install R on Linux, download it here or, in Ubuntu:
sudo apt-get install r-base
in MacOS:
brew install r
Clone this repository:
git clone https://github.com/phillippro/pexo.git
Install missing R libraries “cd pexo” then
Rscript install_dependencies.R
(might require su privileges to be installed): or just install them manually using install.packages(‘package_name’) in R console.
To use PEXO, one needs to go to the directory pexo/code/ and run command lines such as
Rscript pexo.R -m emulate -p 'GJ551' -t '2440000 2450000 10' -i 'APF' -m 'TAR'
which will run a simulation of the astrometry and radial velocity variation of GJ551 from JD[UTC]=2440000 to JD[UTC]=2450000 with a time step of 10 days.
By runing
Rscript pexo.R -m fit -p HD10700 -N 100 -d '../input/HD10700'
The code will fit a single star model to the data saved in the ‘../input/HD10700’ directory.
One can also simulate binary systems such as alpha Cen by using
Rscript pexo.R -m emulate -p 'HD128620' -t '2440000 2450000 10' -i 'ESO' -o '../input/HD128620.par' -C 1
One can fit a binary model to various timing, RV and astrometry data using
Rscript pexo.R -m fit -p 'HD128620' -N 100 -C 1 -d '../input/HD128620'
The revelant command line arguments are listed as follows.
| Short name | Full name | Meaning |
|---|---|---|
| -m | --mode | PEXO mode: emulate or fit [optional; default=emulate] |
| -c | --component | PEXO model component: timing (T), astrometry (A), radial velocity (R) and their combinations [optional; default=TAR] |
| -i | --ins | Instrument or observatory [mandatory for emulation mode; default=NA] |
| -P | --par | Parameter file: parameters for astrometry and observatory [default: automatically obtained from simbad if not find parameter file] |
| -N | --Niter | Sample size of MCMC [optional; default=1000] |
| -C | --Companion | Companion number [optional; default=0] |
| -g | --geometry | geometric orbit or relativistic orbit [optional; default=TRUE] |
| -n | --ncore | Number of cores [optional; default=4] |
| -c | --component | PEXO model component: timing (T), astrometry (A), radial velocity (R) and their combinations [optional; default=TR] |
| -t | --time | Two options are possible. 1. Timing file: epochs or times could be in 1-part or 2-part JD[UTC] format; 2. Format of "Start End By" [mandatory if mode=emulate] |
| -p | --primary | primary star name [mandatory] |
| -s | --secondary | secondary star name [default=NA] |
| -M | --mass | Mass of primary in unit of solar mass [optional; default=1] |
| -d | --data | Data directory: directory with timing, RV or astrometry data files [default= ‘../input/primary’ where primary is the star name] |
| -v | --var | Output variables [optional; default=NULL] |
| -o | --out | Output file name: relative or absolute path [optional; default=out.txt] |
| -f | --figure | Output figure and verbose: FALSE or TRUE [optional; default= TRUE] |
| -V | --verbose | Verbose: FALSE or TRUE [optional; default= FALSE] |
Since the astrometry and radial velocity modeling depends on the the output of timing model, T should always be included in the -c or --component argument.
For emulate mode, the ‘-t’ or ‘-time’ argument is mendatory. It could either be a timing file or a string with "Start End By" format.
The timing file could be two-part or one-part JD or MJD (MJD=JD-2400000.5) in UTC time standard. The former can store epochs with precision of \(10^{-14}\) second while the the latter can store epoch with precision of \(10^{-6}\) second or microsecond in a 64-bit computer.
The "Start End By" format timing argument is composed of the start epoch (Start), the end epoch (End) and the time step (By). For example, a run of PEXO with -t "2456640.5 2458462.5 0.5" will simulate the system from JD2456640.5 to JD2458462.5 by a time step of 0.5 days. The -t argument could also be in MJD format such as -t "56640 58462 0.5". The times generated from the sequence would be transformed into 2-part JD format for high precision emulation.
The orbital parameter file is specified by assigning a file path to -o or –orbit. By default, pexo will look for orbital parameters in ../input/primary.par (primary is the value of -p or –primary). A typically parameter file is as follows:
secondary HD128621
mass 1.1
logmC -0.09761283
logP 10.281
e 0.5179
I 79.32
omegaT 232
Omega 205
Tp 2435328.96
It can redefine the secondary name if --secondary is not given through commandline. It will give mass of the primary and the initial/optical values of logarithmic mass of companion (logmC), logarithmic orbital period in days (logP), eccentricity (e), inclination (I in degree), argument of periastron for the primarty (omegaT in degree), longitude of ascending node (Omega in degree), and the priastron epoch (Tp in Julian days). In addition to these orbital parameters which is only for binaries, extra parameters of astrometry and observatory should be given for both singles and binaries. These additional parameters could either be automatically found by PEXO getting astrometry from Simbad (using get_cor_from_simbad.py) or manually given by specifying the parameter file (-P or --parfile). If specifying these parameters manually, the user should create a file with the following format. I use instrument APF/LICK and alpha Cen A for an example:
phi.APF 37.3425
elong.APF -121.63825
height.APF 1.274
epoch 2457206.375
ra 219.902058333333
dec -59.1660075
pmra -3679.25
pmdec 473.67
plx 743
rv -21.4
logmC -0.09761283 -10 10 U
logP 10.281 -10 20 U
e 0.5179 0 1 U
I 79.32 0 180 U
omegaT 232 0 360 U
Omega 205 0 360 U
Tp 2435328.96 2335328.96 2535328.96 U
The first three parameters are the latitude, longitude and height of the instrument or observatory. For fitting mode with multiple data sets, coordinates for multiple instruments are needed. The format to specify an instrument is using xxx.yyy where xxx is the coordinate name and yyy is the instrument name. Then ra, dec, pmra, pmdec, plx, and rv are the astrometric parameters from astrometric surveys such as Gaia and Hipparcos. The epoch parameter is the reference astrometry epoch for a given survey. The other parameteters define the priors for orbital parameters and are only necessary for fitting mode for stars with companions (i.e. –Companion>0) For example, the prior for e is uniform from 0 to 1. The initial values are taken from the orbital parameters given in ‘–orbfile’ and are for initializing MCMC.
The other model related parameters are given in ../input/basic.par. A summary definition of parameters are as follows. The bold-faced values are default ones.
| parameter | unit | options or examples | meaning |
|---|---|---|---|
| RefType | - | none, refro, refco, refcoq | computation method for atmospheric refraction |
| EopType | - | 2006, 2000B | type of Earth rotation model and corresponding Earth orientation parameters |
| TaiType | - | instant, scale | UTC to TAI method |
| TtType | - | BIPM, TAI | TAI to TT method |
| unit | - | TCB, TDB | output quantities compatible with TCB or TDB time standard |
| DE | - | 430, 430t, 438, … | JPL ephemerides |
| TtTdbMethod | - | eph, FB01, FBgeo | TT to TDB method |
| SBscaling | - | FALSE, TRUE | linear scaling between tB and tS due to relativistic effects |
| PlanetShapiro | - | TRUE, FALSE | planetary shapiro delay |
| CompareT2 | - | FALSE, TRUE | calculate uSB using TEMPO2 method for comparison |
| RVmethod | - | analytical, numerical | the method used for RV modeling, numerical is used only for comparison |
| LenRVmethod | - | T2, PEXO | the method used to derive RV lensing, T2 is used by default to be consistent with shapiro delay model in PEXO |
| BinaryModel | - | none, DDGR, kepler | binary model |
| ellipsoid | - | WGS84, GRS80, WGS72 | ellipsoidal (normal) Earth Gravitational Model |
| epoch | JD or MJD | 2448349.06250 | epoch when the astrometry and position of the target is measured |
| observatory | - | CTIO | observatory name |
| xtel | metre | 1814985.3 | geocentric position of the telescope in the International Terrestrial Reference Frame (ITRF) |
| ytel | metre | -5213916.8 | geocentric position of the telescope in ITRF |
| ztel | metre | -3187738.1 | geocentric position of the telescope in ITRF |
| tdk | K | 278 | ambient temperature at the observer |
| pmb | millibar | 1013.25 | pressure at the telescope |
| rh | - | 0.1 | relative humidity at the observer (range 0-1) |
| wl | \(\mu\)m | 0.5 | effective wavelength of the source |
| tlr | K/metre | 0.0065, any value>0 | Temperature lapse rate in the troposphere |
| g | 1, 0, any other values >0 | one of the PPN parameters | |
| mT | \(M_\odot\) | 1.1055 | target mass |
| mC | \(M_\odot\) | 0.9373 | companion mass |
| ra | degree | 219.9175253 | right ascension (RA) of the barycenter (TSB) |
| dec | degree | -60.8371344 | declination (DEC) of the barycenter (TSB) |
| plx | mas | 747.1700008 | parallax of the barycenter (TSB) |
| pmra | mas/yr | -3649.4980522 | proper motion in RA of the barycenter (TSB) |
| pmdec | mas/yr | 624.7691720 | proper motion in DEC of the barycenter (TSB) |
| rv | km/s | -22.3929553 | radial velocity of the barycenter (TSB) |
| aT | au | 10.80332 | semi-major axis of the barycentric motion of the target |
| P | year | 79.929 | orbital period of the target |
| e | - | 0.5208 | eccentricity |
| I | degree | 79.32 | inclination |
| omegaT | degree | 52.006 | argument of periastron |
| Omega | degree | 205.064 | longitude of ascending node |
| Tp | JD or MJD | 2435328.96 | periastron epoch |
In the above table, epoch is the time when the position and astrometry of the target sysstem is measured. It is tpos defined in the PEXO paper.
PEXO will first look for observatory data by finding xtel, ytel, and ztel from the parameter file. If it does not find these parameters, it will look for elong (longitude in degree), phi (latitude in degree) and height (altitude in km). If these parameters are not given, PEXO will look for the observatory name (observatory) and code (ObsCode). It will look for the observatory data in observatories/observatory_MPC.csv or in observatories/satellite_list.csv. For space-based observatory, the atmospheric refraction and delay are zero and would not be implemented by PEXO. For ground-based telescope, the RefType parameter should be refro (recommended), refco, or refcoq for the calculation of refraction in astrometry modeling. If RefType is none, the atmospheric refraction is zero. The tropospheric delay and its time derivative are automatically implemented for ground-based observatories and thus do not depend on the choice of RefType.
For space-based observatory, “code/GetSpaceObsEph.py” will be used to find the telescope’s ephemerides. So you need to install python as well as python packages sys, astropy, numpy, and astroquery.
There are outputs from four functions in PEXO:
OutObs <- time_Utc2tb(utc,Par)
utc is the input 2-part JD epochs, Par is the input and derived parametes. The output OutObs is a list of variables related to the transformation from JD[UTC] to JD[TCB] or JD[TDB].
OutTime <- time_Ta2te(OutObs,Par)
This function uses OutBary and Par to transform JD[TCB] to BJD[TCB] to light emission time. Thus OutBary and OutTime are the outputs from the timing models.
OutAstroT <- astro_FullModel(OutObs,OutTime,Par,Mlens=Par$mC,component='T')
OutAstroC <- astro_FullModel(OutObs,OutTime,Par,Mlens=Par$mT,component='C')
OutAstroT and OutAstroC are outputs of the astrometry modeling of the T and C component in the target system. Since the astrometry function astro_FullModel calls OutBary and OutTime, these astrometry outputs depend on outputs of timing model.
OutRv <- rv_FullModel(OutObs,OutTime,Par)
OutRv is the output of radial velocity modeling and also depends on the outputs of timing model.
These output lists will be combined as OutAll to be saved as ascii file if the output variables -v are specified in the command line.
We list the output variables in OutAll, their unit and meaning in the following table.
| variable | unit | meaning |
|---|---|---|
| AbeTarget | second | target aberration delay |
| BJDtcb | day | BJD[TCB] |
| BJDtdb | day | BJD[TDB] |
| BT | au; au/yr | Position and velocity vectors from TSB to T |
| DefEarth | rad | Deflection vector due to Earth lensing |
| DefJupiter | rad | Deflection vector due to Jupiter lensing |
| DefMars | rad | Deflection vector due to Mars lensing |
| DefMercury | rad | Deflection vector due to Mercury lensing |
| DefMoon | rad | Deflection vector due to Moon lensing |
| DefNeptune | rad | Deflection vector due to Neptune lensing |
| DefSaturn | rad | Deflection vector due to Saturn lensing |
| DefSun | rad | Deflection vector due to Sun lensing |
| DefUranus | rad | Deflection vector due to Uranus lensing |
| DefVenus | rad | Deflection vector due to Venus lensing |
| delevation | rad/day | time derivative of elevation angle |
| delevationT2 | rad/day | time derivative of elevation angle computed by TEMPO2 method |
| DirObs | rad | observed right ascension and declination of the target |
| dl.all | rad | Light deflection vector due to all effects |
| dl.woRef | rad | Light deflection vector due to all effects except for atmospheric refraction |
| dTCB.dTT | - | dTCB/dTT |
| dTDB.dTT | - | dTDB/dTT |
| dzenith | rad/day | Time derivative of zenith: dzenith/dt |
| EinsteinIS | second | Einstein delay due to relative motion between TSB and SSB |
| EinsteinTarget | second | Einstein delay in the target system |
| elevation | rad | elevation angle |
| elevationT2 | rad | elevation angle calculated using TEMPO2 method |
| emrat | - | Earth-Moon mass ratio |
| Eph | - | a list of ephermerides of solar system objects |
| EphEarth | km; km/s | Earth ephemeris in the Barycentric celestial reference system (BCRS) frame; units are denoted by columns names |
| EphJupiter | km; km/s | Jupiter ephemeris in BCRS |
| EphMars | km; km/s | Mars ephemeris in BCRS |
| EphMercury | km; km/s | Mercury ephemeris in BCRS |
| EphMoon | km; km/s | Moon ephemeris in BCRS |
| EphNeptune | km; km/s | Neptune ephemeris in BCRS |
| EphSaturn | km; km/s | Saturn ephemeris in BCRS |
| EphSun | km; km/s | Sun ephemeris in BCRS |
| EphUranus | km; km/s | Uranus ephemeris in BCRS |
| EphVenus | km; km/s | Venus ephemeris in BCRS |
| GM | km; km/s | Position and velocity vector from the geocenter to the Moon |
| GO | km; km/s | Position and velocity vector from the geocenter to the observer/telescope |
| JDtai | JD | JD[TAI] or TAI |
| JDtcb | JD | JD[TCB] or TCB |
| JDtcg | JD | JD[TCG] or TCG |
| JDtdb | JD | JD[TDB] or TDB |
| JDtt | JD | JD[TT] or TT |
| JDut1 | JD | JD[UT1] or UT1 |
| leap | second | leap second |
| li | - | unit vector or direction of the incident or pre-refraction light ray |
| limll | - | li - ll |
| ll | - | direction of the light ray after leaving the target system |
| llmle | - | ll - le |
| lo | - | direction of the light ray at the telescope before being observed |
| lomli | - | lo-li |
| MO | km; km/s | Position and velocity vector from the Moon to the observer |
| OffAbe | arcsecond | offset due to aberration in (dRA*, dDEC) |
| OffAbe1 | arcsecond | offset due to first-order aberration |
| OffAbe2 | arcsecond | offset due to second-order aberration |
| OffAll | arcsecond | offset due to all effects |
| OffLenS | arcsecond | offset due to all lensing in the solar system |
| OffLenT | arcsecond | offset due to all lensing in target system |
| OffRef | arcsecond | offset due to atmospheric refraction |
| OL | - | a list of observer to solar system body (lens) vectors |
| OutBT | - | a list of outputs from binary models |
| rBT | au | position vector from TSB to T |
| RBT | au | length of rBT |
| ref | rad | refraction vector |
| Ref | rad | refraction angle |
| rOB | pc | position vector from the observer to the TSB |
| rOC | pc | position vector from the observer to the companion (C) |
| Roemer1 | second | first order Roemer delay in the solar system |
| Roemer2 | second | second order Roemer delay in the solar system |
| Roemer3 | second | third order Roemer delay in the solar system |
| RoemerOrder | second | a combined list of Roemer1, Roemer2 and Roemer3 |
| RoemerSB | second | Roemer delay using SB rather than ST as the reference direction (only for comparison) |
| RoemerSolar | second | total Roemer delay in the solar system |
| RoemerT2 | second | Roemer delay calculated using the TEMPO2 method (including the total effects and effects for different terms) |
| RoemerTarget | second | Roemer delay in the target system |
| rOT | pc | position vector from the observer to the target |
| rSB | pc | position vector from SSB to TSB |
| rSC | pc | position vector from SSB to the companion |
| rST | pc | position vector from SSB to the target |
| rTC | au | position vector from the target to the companion |
| RvBT | m/s | radial velocity for TSB to T |
| RvGO | m/s | radial velocity for geocenter to observer |
| RvgsO | m/s | general and special relativistic effect on RV at the observatory or in the solar system |
| RvgT | m/s | general and special relativistic effect on RV in the target system |
| RvlO | m/s | lensing RV in the solar system |
| RvLocal | m/s | all RV effects in the solar system |
| RvlT | m/s | lensing RV in the target system |
| RvRemote | m/s | all RV effects in the target system |
| RvSB | m/s | RV due to motion of TSB w.r.t. SSB |
| RvSG | m/s | RV due to motion of the geocenter w.r.t. SSB |
| RvSO | m/s | RV due to motion of the observer w.r.t. SSB |
| RvsT | m/s | special relativitistic effect on RV in the target system |
| RvST | m/s | RV due to motion of the target w.r.t. SSB |
| RvTot | m/s | total RV |
| RvTropo | m/s | tropospheric RV |
| SB | pc; au/yr | position and velocity vectors from the SSB to TSB |
| SG | km; km/s | position and velocity vectors from the SSB to the geocenter |
| ShapiroEarth | second | Shapiro delay due to Earth |
| ShapiroJupiter | second | Shapiro delay due to Jupiter |
| ShapiroMars | second | Shapiro delay due to Mars |
| ShapiroMercury | second | Shapiro delay due to Mercury |
| ShapiroMoon | second | Shapiro delay due to Moon |
| ShapiroNeptune | second | Shapiro delay due to Neptune |
| ShapiroPlanet | second | a combined list of Shapiro delays due to solar system objects |
| ShapiroSaturn | second | Shapiro delay due to Saturn |
| ShapiroSolar | second | Shapiro delay in the solar system |
| ShapiroSun | second | Shapiro delay due to Sun |
| ShapiroTarget | second | Shapiro delay in the target system |
| ShapiroUranus | second | Shapiro delay due to Uranus |
| ShapiroVenus | second | Shapiro delay due to Venus |
| SO | km; km/s | position and velocity vectors from the SSB to the observer |
| SolarDef | rad | deflection angle (vector) due to lensing in the solar system |
| SolarDefList | rad | a list of deflection angles due to lensing by solar system objects |
| TargetDelay | second | total delay in the target system |
| tauE | JD | proper emission time |
| tB | JD | coordinate light arrival time at TSB |
| TDBmTTgeo | second | TDB-TT at the geocenter |
| TropoDelay | second | tropospheric delay |
| TropoDelayT2 | second | tropospheric delay calculated using uSB(t=tpos) or ub (see paper) as the reference direction as done in TEMPO2t |
| tS | JD | same as BJD[TCB]; coordinate ligth arrival time at SSB |
| U | rad | eccentric anomaly |
| uBT | - | unit vector for rBT |
| uo | - | observed direction of the target |
| uOB | - | unit vector for rOB |
| uOC | - | unit vector for rOC |
| uommlo | - | uo+lo |
| uommlo1 | - | uo+lo1 |
| uommlo2 | - | uo+lo2 |
| uommlo3 | - | uo+lo3 |
| uOT | - | unit vector for rOT |
| uSB | - | unit vector for rSB |
| uSB.T2 | - | uSB calculated using the TEMPO2 method (ignoring third order effects) |
| uST | - | unit vector for rST |
| VacuumIS | - | vacuum delay in interstellar medium |
| vBT | au/yr | velocity of T w.r.t. TSB |
| vGO | km/s | velocity of the observer w.r.t. the geocenter |
| vOB | au/yr | velocity of TSB to the observer |
| vOT | au/yr | velocity of target to the observer |
| vSB | au/yr | velocity of TSB to SSB |
| vST | au/yr | velocity of the target to SSB |
| xp | rad | parameter for polar motion of the Earth |
| yp | rad | parameter for polar motion of the Earth |
| ZB | - | barycentric correction of Doppler shift |
| ZBwe | - | barycentric correction of Doppler shift using Wright & Eastman 2014 method |
| Zcomb | - | combined list of all doppler shifts |
| ZenIn | rad | zenith angle |
| ZenInT2 | rad | zenith angle using uSB(t=tpos) or ub (see paper) |
| zenith | rad | zenith vector |
| ZgO | - | doppler shift due to general relativistic effect in the solar system |
| ZgsO | - | doppler shift due to relativistic effects in the solar system |
| ZgsO.de | - | doppler shift due to relativistic effects in the solar system calculated using JPL ephemerides |
| ZgSS | - | combined list of gravitational doppler shifts due to solar system objects |
| ZgsT | - | doppler shift due to relativistic effects in the target system |
| ZgTk | - | doppler shift due to general relativistic effect in the target system |
| ZkpO | - | doppler shift due to parallax delay in the solar system |
| ZkpT | - | doppler shift due to parallax delay in the target system |
| Zlensing | - | combined list of doppler shifts due to lensing by solar system objects |
| ZlO | - | doppler shift due to solar system lensing |
| Zlocal | - | local doppler shift |
| ZlT | - | doppler shift due to target system lensing |
| Zremote | - | local doppler shift |
| ZsO | - | special relativistic doppler shift in the solar system |
| ZSO | - | doppler shift due to the motion of SSB w.r.t. the observer |
| ZsT | - | special relativistic doppler shift in the target system |
| ZST | - | doppler shift due to the motion of target w.r.t. SSB |
| ZST0 | - | doppler shift due to the motion of target w.r.t. SSB using uSB.T |
| ZST0 | - | doppler shift due to the motion of target w.r.t. SSB using uSB.T |
| zTDBmTTgeo | - | doppler shift corresponding to the time derivative of TDB-TT at the geocenter |
| zTDBmTTobs | - | doppler shift corresponding to the time derivative of the observer term in TDB-TT |
| zTDBmTTobsR | - | zTDBmTTobs due to rGO |
| zTDBmTTobsV | - | zTDBmTTobs due to vGO |
| Ztot | - | total doppler shift |
| Ztropo | - | tropospheric doppler shift |
PEXO can be used to simulate the timing, RV and astrometry variation of a single star. PEXO will automatically find astrometry data from Simbad if it is not given manualy. To explain the output of PEXO, tau Ceti is simulated using the following commandline:
Rscript pexo.R -p HD10700 -t '2450000 2460000 10' -i 'ESO' -c 'TAR'
In the output of PEXO, the various timing, RV and astrometric effects are printed. Summary plots for these effects are saved as pdfs with names of ../results/AllTimes_HD10700_timing_kepler_Ntime1001.pdf, ../results/absolute_HD10700_astrometry_kepler_Ntime1001_none.pdf, and ../results/paper_HD10700_RV_kepler_Ntime1001_none.pdf. The user can also choose which variables to be saved in an output file with default name of out_pexo.txt. The user can specify -o and -v to define the output file name and variable names, respectively. For example, if the user is interested in barycentric correction of a star, he/she could add -v 'BJDtdb ZB' to the commandline and then get BJDtdb and ZB from the output file. The barycentric RV is ZB*c where c is the speed of light.
The main advantage of PEXO is to model the timing, RV and astrometry for binaries to a high precision. alpha Cen A and B are a good exmample to demonstrate this. For exmaple, the following commandline
Rscript pexo.R -p HD128620 -t '2450000 2460000 10' -i 'PFS' -c 'TAR' -C 1
will simulate alpha Cen A and B from JD2450000 to JD2460000 by a time step of 10 days. The instrument is PFS and the components in the simulation include timing (T), astrometry (A), and RV (R). As for the case of single stars, one will get summary plots and magnitudes of various effects as well as output ascii file (named out_pexo.txt by default).
For emulation/simulation mode, one cannot optimize the astrometric and orbital parameters. By fitting these parameters to various data, one is able to find the optimal astrometric and orbital solution. To do that, the data files for fitting should be named according to the following format if HD10700 is the primary star and xxx is an instrument name:
Timing data (typically is data for time delay): HD10700_xxx.delay
RV data: HD10700_xxx.rv
Absolute astrometry data: HD10700_xxx.abs
Relative astrometry data: HD10700_xxx.rel
For timing data, there are at least two columns: JD[UTC], delay [s], (delay error [s]). For RV data, there are three columns: JD[UTC], RV [m/s], RV error [m/s]. Note that the time and RV in RV data should not be barycentrically corrected. For absolute and relative astrometry data, there are at least five columns: JD[UTC], ra [deg], ra error [mas], dec [deg], dec error [mas], (lambda [\(\mu\)m]). Lambda is the wavelength of an ground-based astrometric measurement. If not given, PEXO will assumes 0.55 \(\mu\)m wavelength which will be used to determine the amount of atmospheric refraction.
Proxima Cen or GJ551 is taken as an example to explain how to use the PEXO fitting mode. For example, the following commandline
Rscript pexo.R -m fit -p GJ551 -N 100
or you can specify the output Robj name, e.g.
Rscript pexo.R -m fit -p GJ551 -N 100 -o 'test.Robj'
will launch 4 MCMC and each has a length of 100. The pexo outputs (exclude the variation of barycentrically corrected RV files) are explained as follows:
| file name | meaning |
|---|---|
| ../results/GJ551_barycorrected.rv | Barycentrically corrected combined RV |
| ../results/GJ551_0companion_llmax-2810322_N100_einsteinTRUE.pdf | Summary plots for the model prediction (red) and data (black) as well as residuals and mcmc trace plots etc. |
| ../results/GJ551_0companion_llmax-2810322_N100_einsteinTRUE_fancy.pdf | Fancy plots for PEXO-simulated optimal fit to raw data as well as small panels showing residuals |
| ../results/GJ551_0companion_llmax-2810322_N100_einsteinTRUE.Robj | All outputs of PEXO are saved as an R object (xxx.Robj). The path of this file can be defined by the -o input parameter. |
In the Robj file, the MCMC related variables are explained as follows.
| variable name | meaning |
|---|---|
| Data | A data frame saving all input data, first column: UTC time; second column: RV[m/s], or delay [second], or RA [deg], or dRA [mas]; third column: error of the second column; fourth column: NA for RV and delay data and DEC[deg] or dDEC[mas] for absolute and relative astrometry respectively; fifth column: error of fourth column; sixth column: star name; seventh column: data type; eighth column: instrument; ninth column: wavelength[\(\mu\)m] for astrometry data |
| model | Model prediction at the raw data epochs, the columns have the same meanings. |
| pred | Model prediction at simulated epochs (typically with higher cadence and with constant time steps sampling over the whole data timespan), the columns have the same meanings. |
| ParStat | Statistics of parameters infered from MCMC posterior samples. Columns are model parameters and rows are the statistics for them, including xopt: optimal value at the maximum a posteriori, x1per: 1% quantile; x99per: 99% quantile; x10per: 10% quantile; x90per: 90% quantile; xminus.1sig: xopt-1sigma; xplus.1sig: xopt+1sigma; and other statistics are easy to understand. The parameters of raOff [mas], decOff [mas], pmraOff [mas/yr], pmdecOff [mas/yr], plxOff [mas] are offsets added to the initial astrometry of the barycenter of the target system. The parameters of logjitterRv.star.instrument and bRv.star.instrument are log jitter and intercept for a given instrument and star. For binary or star-companion system, the orbital parameters are also given with the number of companions added to the end of each parameter name. In specific, logmC1 is the log mass of the first companion in units of solar mass; logP1 is the log orbital period in units of day; e1 is eccentricity; I1 is inclination in radiant; omegaT1 is the primary star argument of periastron in radiant; Omega1 is the longitude of ascending node in units of radiant; Mo1 is the mean anomaly in units of radiant. |
To fit a binary model to the data, you can run the following commandline (e.g., Kruger 60 or HD239960)
Rscript pexo.R -m fit -p HD239960 -N 100 -C 1
Then you will get similar output as for the case of single stars.
A simple shell wrapper is included for convenience. The arguments are identical to pexo.R, type ./pexo.sh --help so see help.
To run PEXO via this script, you need to set an environment variable $PEXODIR to a path to the PEXO repository. It is also recommended to create an alias for this script to run it from anywhere in the terminal. To do that, add
export PEXODIR=/example/path/to/pexo
alias pexo="/example/path/to/pexo/pexo.sh"
to your ~/.bashrc or ~/.bash_profile if you’re using bash, or
setenv PEXODIR /example/path/to/pexo
alias pexo /example/path/to/pexo/pexo.sh
to ~/.tcshrc if you’re using tcsh. You’ll need to open a new terminal or type source ~/.bashrc / source ~/.tcshrc to apply this. You may also source ~/.bash_profile to permanently save the settings. Note that the path to pexo should be absolute. Then you can open a new terminal window to use PEXO everywhere in your computer.
For example, you have the following two options to run a simulation of Tau Ceti.
You may either go to the pexo/code directory and run
Rscript pexo.R -p HD128620 -t '2450000 2460000 10' -i 'PFS' -c 'TAR' -C 1
or run the following shell script in your current directory by providing paths for timing and parameter files
pexo -p HD128620 -t '2450000 2460000 10' -i 'PFS' -c 'TAR' -C 1
By running the above command line, PEXO will look for the parameter and data files in the ../input/ directory and save output file if you specify the -v and -o arguments.
PEXO v2 is able to emulate a system or fit a Keplerian model to timing, astrometry and RV data sets. A python wrapper are also developed for python users. PEXO v3 will provide functionality for pulsar timing and gravitational wave searches. Feedback from PEXO users and contribution from the astronomical community are appreciated and are important to improve the software.