Shared Skies

Alsvid Exoplanets

Exoplanet Algorithms provided by Alsvid


Transitmodel

Exoplanet transit light curve modeling is provided in Julia and Python codes that should yield similar outcomes. Both use a configuration file that defines the parameters used to generate the light curve. The Julia variant is currently maintained and tested against other validated light curve generators. Both derive from the Java code included in AstroImageJ which itself derived from the IDL code in ExoFast2.

An important distinction between transitmodel.jl and other modelers is that this one is based on the star-planet physics rather than on matching the observation. The intent is to provide insight into how the light curve (and eventually the radial velocity) is affected by the orbit, star and planet radii, masses, and temperatures. Given the times in the observed flux and the parameters in the configuration, the code calculates the position of the planet by determining the mean anomaly at each time. A graphical output displays the predicted light curve. The reference time is the periastron of the planet, not the center of the input data. To match the model to data, the time of periastron has to be provided since this sets the orientation of the orbital ellipse as seen from the Sun. Thus a transit timing variation may be associated with a precession of the time of peristron, or a drift of omega, The orbit may be visualized using the online transit simulator.

Configuration file

The file provides the parameters of the system with desciptive names. The same parameters may be used in the orbit and light curve visualizer to inform on their relevance to a match to an observed light curve. This is an example of one illustrating reasonable values for a test case included in the GitHub distribution:

The distances are relative and in this file would scale to the radius of the star. The parameters star_radius, planet_radius, and orbit_sax must be consistent. The code is currently insenstive to temperatures. The parameters are included for the anticipated introduction of the planet’s bolometric thermal emission and its observable effect, especially at the secondary transit. Angles are in radians. Time is presumed in JD and the tpa should be appropriate to have the transit appear with the times in the flux file.

Flux file

The input flux is used to set a time base and show a comparison. The model is calculated only for the times in the flux file, and the output may be compared with the observed flux with the graphics provided by the code, or by plotting the text output data file later. Use a two-column space or tab delimited file. The first column is BJD_TDB for the measurement, and the second is a normalized flux with a baseline of 1.0 outside of the transit. Lines in the data file beginning with ”#” or with ”!” are ignored.

Command line

julia transitmodel.jl parameters.dat flux.dat

As with most Alsvid code the file can be marked as executable and in Linux the first line will call the Julia version you want to use. This is overridden by evoking “julia” on the command line. Once the model has been calculated, it will be displayed to the user as local OpenGL application, exported to a PNG image, and also saved as a text-based data file. Graphics are performed usng Julia’s Makie system, and are easily modified within the code if desired. They provide for panning, zooming and have tool-tip indicators that identify specific flux data points.

While transitmodel.py and its GUI version are based on the same logic. However, the not currently maintained, and we recommend the Julia version unless you want a template for developing your own in Python. Neither the Julia or the Python versions have dependencies on other transit modelers. The logic used here can be traced to refereed papers in the astrophysics literature.

Barycentric correction

For exoplanet transit studies, the code jdutc_to_barycenters.jl will find the time in BJD_TDB for an event observed in target data at a time in JD_UTC. It allows for the position of the observer on Earth, and provides relativistic corrections for Earth’s gravity and for the signal to be measured at in BJD on a TDB clock. Roemer delay within the solar system is accounted for with the assumption that the target is infinitely far away. Einstein and Shapiro delays are not included. This Julia code is written purely in Julia with no imported dependencies other than requiring a local copy the JPL DE440t ephemeris. This program is associated with a family of related time utilities.

The Python code barycentric_correction.py is an interface to the Python barycorrpy package. The physics of the time delays is not apparent in the Alsvid wrapper, but is well-validated by community use and the source code is available. The code is in the Python exoplanets section.

Other time utilites are available in Julia and Python to manage conversion of UTC to different standard times, and to local sidereal time.