Skip to content

09. Barycentric correction for Solar System RVs

Shubham edited this page Mar 2, 2021 · 18 revisions

In v0.3, we include algorithms for barycentric corrections to correct RV measurements of the Sun by RV instruments.

Note that barycorrpy outputs velocity (m/s) and not redshift (z).

For more details, refer to Wright and Kanodia (2020).

zmeas

This input parameter is the measured redshift to be corrected for the motion of the observatory.

ztrue

The true radial velocity of the Sun for an observer at the observatory but in an inertial frame not moving. If zmeas is included to show the measured absolute redshift for the Sun as measured by an instrument, then in this formulation, ztrue will show the motion of the Sun, which is mostly dominated by the synodic period of Jupiter as seen from Earth.

Example:

times = [2455000, 2458000]
c = 299792458.0
vtrue, warnings, flag = get_BC_vel(JDUTC=times,
                    lat=-30.169283, longi=-70.806789, alt=2241.9,
                    SolSystemTarget='Sun',
                    predictive=False, zmeas=vmeas/c)

Predictive mode - zpredict

We also introduce a predictive mode in v0.3, if predictive=True, then the code returns the predicted zmeas, which is shown in the formula below (referred to as zmeas in the manuscript, since its the ideal measured redshift). This output returns the theoretical prediction for the measured redshift which includes the barycentric component. This will be the measurement of a noiseless RV instrument observing the Sun.

Solar_zmeas

Example:

times = [2455000, 2458000]
vmeas, warnings, flag = get_BC_vel(JDUTC=times,
                    lat=-30.169283, longi=-70.806789, alt=2241.9,
                    SolSystemTarget='Sun',
                    predictive=True, zmeas=0.0)

zb

This is the 'barycentric correction', the amount we must adjust our measured redshift by to correct it to ztrue. This is equivalent to the corrected redshift returned by get_BC_vel (i.e. ztrue) when zmeas is set to 0. ztrue = ((1+ zb)*(1+ zmeas)-1)

Solar_zb

zb can be calculated using the snippet shown here,

Example:

times = [2455000, 2458000]
vb, warnings, flag = get_BC_vel(JDUTC=times,
                    lat=-30.169283, longi=-70.806789, alt=2241.9,
                    SolSystemTarget='Sun', 
                    predictive=False, zmeas=0.0)

Light travel time

For the Sun, we are assuming the time of observation to be the same as the time of emission while querying the ephemerides for Solar position and velocity. This is because the change in position angle for the Sun due to this ~ 8 minute discrepancy is negligible and causes an error << 1 cm/s.

Solar Observations

For observations of the Sun, set SolSystemTarget = 'Sun'.

v0.3.7

Also, as recommended in Wright and Kanodia (2020), the time stamp for these observations should be the time of emission of the photons, and we've implemented a function JDUTC_to_HJDTDB() in v0.3.7 to perform this time conversion.

Example - result = utc_tdb.JDUTC_to_HJDTDB(JDUTC=2458000, obsname='KPNO')

Reflected Light Observations

We also include an algorithm for reflected light measurements of the Sun from observations of the moon or other solar system object. To obtain the position and velocity of the solar system object, we use JPL Horizons and the SolSystemTarget keyword can be used to query Horizons.

Furthermore, the user must also set HorizonsID_type='smallbody' or HorizonsID_type='majorbody'. One can check the lists of 'smallbody' and 'majorbody' on Horizons webpage. For observations of asteroids, you will need to use the 'smallbody' ID type which is the default. Then one can set SolSystemTarget = 'Ceres' or SolSystemTarget = 'Vesta' for example.

For observations of the Moon, set HorizonsID_type='majorbody' and SolSystemTarget = 'Moon'. One can also query for a particular coordinate on the Lunar surface. See the Selecting a Target Body section in the Horizons documentation for tips on how to do this, and the sign convention to follow. Example: SolSystemTarget = 'g:355.8,39.7,0@301'

Not: One can also use the object codes for Horizons objects, for example the Moon is '301', as long as the HorizonsID_type is set correctly.