Transit models for TTV measurements#
The TTV transit models fit independent mid-transit times instead of forcing all
events to follow the same Tc + N * P ephemeris. They keep the usual transit
shape parameters (R_Rs, impact parameter or inclination, stellar density or
a_Rs, eccentricity parametrization and limb darkening), but replace the single
global conjunction epoch with one fitted Tc per observed transit.
These models are the right choice when the measured transit times themselves are the scientific product. For ordinary transit fits with one shared inferior-conjunction epoch, use Transit light-curve models.
The examples in the external
PyORBIT_examples TTV directory
show the same four workflows described below: one file per transit, transit
identifiers in a subset column, an external transit-time list, and ancillary
columns carrying the transit identifiers.
Model families#
Workflow |
Batman model |
PyTransit model |
Transit-time parameters |
|---|---|---|---|
One dataset per transit |
|
|
one dataset-level |
Transit IDs from |
|
|
|
External transit-time list |
|
|
|
Transit IDs from ancillary columns |
|
|
|
The aliases subset_batman_transit_ttv, subset_pytransit_transit_ttv,
tclist_batman_transit_ttv, tclist_pytransit_transit_ttv,
ancillary_batman_transit_ttv and ancillary_pytransit_transit_ttv are also
accepted.
One dataset per transit#
Use batman_transit_ttv or pytransit_transit_ttv when each input file contains
one transit event. This is the most explicit layout: every dataset gets its own
dataset-level Tc.
1input:
2 LCdata_transit00:
3 file: individual_transits/lc_transit00.dat
4 kind: Phot
5 models:
6 - lc_model
7
8 LCdata_transit01:
9 file: individual_transits/lc_transit01.dat
10 kind: Phot
11 models:
12 - lc_model
13
14lc_model:
15 model: batman_transit_ttv
16 planets: [b]
17 limb_darkening: ld_quadratic
Use this form when the light curves are already split by transit and no extra transit identifier column is needed.
TTVs from dataset subsets#
Use the _subset models when one file contains many transits and the dataset
has a subset column identifying the event. The example data in
PyORBIT_examples/ttv_measurement/subset_transits use a header like:
# time flux flux_error jitter offset subset
Each non-negative subset value identifies a fitted transit time. For example,
subset 0 maps to Tc_0, subset 1 maps to Tc_1, and so on.
1input:
2 LCdata_inst0:
3 file: subset_transits/lc_inst0.dat
4 kind: Phot
5 models:
6 - lc_model_inst0
7
8lc_model_inst0:
9 model: pytransit_transit_ttv_subset
10 planets: [b]
11 limb_darkening: ld_quadratic
12 use_shared_ttv: True
This layout is convenient when different instruments observe the same sequence
of transits and the fitted Tc_N values must be common to all of them.
TTVs from an external transit-time list#
Use the _tclist models when the expected transit windows are stored in a
separate file. The examples use a table with a planet label, transit identifier,
expected transit time and transit window:
# planet transit_id transit_time transit_window
b 0 2.170000 0.50000
b 1 6.330000 0.50000
Declare the list in the planet common object:
1planet_b:
2 common: planets
3 orbit: circular
4 parametrization: Eastman2013
5 use_time_inferior_conjunction: True
6 TTV_Tc_list: tclist_transits/WASP47_simulated_planetb_tclist.dat
7
8lc_model:
9 model: batman_transit_ttv_tclist
10 planets: [b]
11 limb_darkening: ld_quadratic
12 minimum_number_of_observations: 20
13 use_shared_ttv: False
The model searches the dataset around each listed transit window and creates a
fitted Tc_N parameter for the events with enough data points. Increase
minimum_number_of_observations to skip poorly covered windows.
For a multi-planet TTV fit, give each planet its own TTV_Tc_list and include
all planets in the same model:
1lc_model:
2 model: batman_transit_ttv_tclist
3 planets: [b, c]
4 limb_darkening: ld_quadratic
5 use_shared_ttv: True
TTVs from ancillary transit flags#
Use the _ancillary models when the input file already includes one column that
labels the transit number for each planet. The two-planet examples use columns
like:
# time flux flux_error jitter offset subset id_transit_b id_transit_c
Connect the planet to the correct ancillary column with TTV_Tc_flag:
1planet_b:
2 common: planets
3 orbit: circular
4 parametrization: Eastman2013
5 use_time_inferior_conjunction: True
6 TTV_Tc_flag: id_transit_b
7
8lc_model:
9 model: pytransit_transit_ttv_ancillary
10 planets: [b]
11 limb_darkening: ld_quadratic
12 use_shared_ttv: False
Rows with a negative flag are ignored; non-negative identifiers are mapped to
the corresponding Tc_N parameter.
Choosing the workflow#
Use the one-dataset-per-transit models for small, already segmented light-curve
sets. Use _subset when a standard PyORBIT subset column already identifies
the transit event. Use _tclist when the event windows are easier to maintain
outside the light-curve files, especially for multi-planet systems. Use
_ancillary when the transit IDs are already part of the data table or when
different planets require different event labels in the same file.