-
Notifications
You must be signed in to change notification settings - Fork 6
09. Barycentric correction for Solar System RVs
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).
This input parameter is the measured redshift to be corrected for the motion of the observatory.
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)
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.
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)
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)
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)
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.
For observations of the Sun, set SolSystemTarget = 'Sun'
.
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')
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.