Quasi-periodic kernel#

The most common and most reliable kernel for stellar activity is the quasi-periodic one, following the expression given by Grunblatt et al. 2015:

(1)#\[G(t_i, t_j) = h^2 \exp{ \left \{-\frac{\sin^2{[\pi(t_i - t_j)/\theta]}}{2 w ^2} - \left ( \frac{t_i-t_j}{\lambda} \right )^2 \right \} }\]

where \(\theta\) is equivalent to the rotation period of the star, \(w\) is the coherence scale, and \(\lambda\) is usually associated with the decay time scale of the active regions

Important

It is common to have a factor 2 in the denominator of the aperiodic variation (i.e., \(2 \lambda\) rather than \(\lambda\)) in (2). In such a case, it is sufficient to multiply the value of \(\lambda\) of PyORBIT by a factor \(\sqrt(2)\) - keep it in mind when assigning priors!

Model definition and requirements#

This kernel relies on the george package. An independent implementation relying only on basic packages is available, however it is much slower. A new implementation using tinyGP is now available, but it requires a few extra tricks in the configuration file and execution (see Caveats on the use of tinyGP )

model name: gp_quasiperiodic

model name: tinygp_quasiperiodic

‘’’warning At the moment of writing (March 2024), version >=0.3 of tinygp is not supported yet ‘’’

model name: gp_quasiperiodic_alternative

  • required common object: activity

  • direct implementation relying only on numpy and scipy

Model parameters#

The following parameters will be inherited from the common model (column Common?: common) or a different value will be assigned for each dataset (column Common?: dataset)

Name

Parameter

Common?

Definition

Notes

Prot

Rotational period of the star \(\theta\)

common

activity

Pdec

Decay time scale of active regions \(\lambda\)

common

activity

Oamp

Coherence scale \(w\)

common

activity

Hamp

Amplitude of the kernel

dataset

activity

Keywords#

Model-wide keywords, with the default value in boldface.

hyperparameters_condition

  • accepted values: True | False

  • activate the conditions \( \lambda ^ 2 > (3/4 \pi) \theta ^2 w ^ 2 \) (adapted from Rajpaul 2017 and Rajpaul et al. 2021 to take into account the factor 2 in the denominator of the aperiodic variation) to ensure that the QP function has at least one non-trivial turning point.

rotation_decay_condition

  • accepted values: True | False

  • if activated, it ensures that the decay time scale of the activity regions \(\lambda\) is at least twice the rotational period of the star \(\theta\)

use_stellar_rotation_period

  • accepted values: True | False

  • if activated, the parameter Prot from the activity common model will be replaced by the parameter rotation_period from the star_parameters common model. In this way, a unique parameter can be used by different models, e.g., stellar activity and Rossiter-McLaughlin modeling. It can also be useful if you want to use independent GP hyperparameters over several observational seasons while using a single parameter for the rotational period of the star.

Examples#

In the following example, a Radial Velocity (RV) dataset comes together with two activity indicators, the Bisector Inverse Span (BIS) of the CCF and the Mount Wilson S index (S_index).

The common:activity section provides the hyperparameters for the GP shared among all the datasets. The example shows how to assign boundaries and priors to the parameters. The model keywords and the boundaries for the dataset-specific parameters are listed in models:gp_quasiperiodic

 1inputs:
 2  RVdata:
 3    file: datasets/K2-141_RV_PyORBIT.dat
 4    kind: RV
 5    models:
 6      - radial_velocities
 7      - gp_quasiperiodic
 8  BISdata:
 9    file: datasets/K2-141_BIS_PyORBIT.dat
10    kind: BIS
11    models:
12      - gp_quasiperiodic
13  Sdata:
14    file: datasets/K2-141_Sindex_PyORBIT.dat
15    kind: S_index
16    models:
17      - gp_quasiperiodic
18common:
19  planets:
20    b:
21      orbit: circular
22      use_time_inferior_conjunction: True
23      boundaries:
24        P: [0.2750, 0.2850]
25        K: [0.001, 20.0]
26        Tc: [57744.00, 57744.10]
27      priors:
28        P: ['Gaussian', 0.280324956, 0.000000067]
29        Tc: ['Gaussian', 57744.071508, 0.000103]
30      spaces:
31        P: Linear
32        K: Linear
33    c:
34      orbit: keplerian
35      parametrization: Eastman2013
36      use_time_inferior_conjunction: True
37      boundaries:
38        P: [7.70, 7.80]
39        K: [0.001, 20.0]
40        Tc: [58371.00, 58371.10]
41        e: [0.00, 0.70]
42      priors:
43        e: ['Gaussian', 0.00, 0.098]
44        P: ['Gaussian', 7.7489943, 0.0000149]
45        Tc: ['Gaussian', 58371.07415, 0.000652]
46      spaces:
47        P: Linear
48        K: Linear
49  activity:
50    boundaries:
51      Prot: [10.0, 20.0]
52      Pdec: [20.0, 1000.0]
53      Oamp: [0.001, 1.0]
54    #priors:
55    #  Oamp: ['Gaussian', 0.35, 0.035]
56  star:
57    star_parameters:
58      priors:
59        mass: ['Gaussian', 0.708, 0.028]
60        radius: ['Gaussian', 0.681, 0.018]
61        density: ['Gaussian', 2.65, 0.08]
62models:
63  radial_velocities:
64    planets:
65      - b
66      - c
67  gp_quasiperiodic:
68    model: gp_quasiperiodic
69    common: activity
70    hyperparameters_condition: True  # Condition from Rajpaul 2017, Rajpaul+2021
71    rotation_decay_condition: True # It forces the decay timescale to be at least twice the rotational period
72    boundaries:
73      Hamp: [0.0, 100.0] # same range for all datasets
74parameters:
75  Tref: 59200.00
76solver:
77  pyde:
78    ngen: 50000
79    npop_mult: 4
80  emcee:
81    npop_mult: 4
82    nsteps: 50000
83    nburn: 20000
84    nsave: 25000
85    thin: 100
86  recenter_bounds: True

In the example below, one dataset is divided into several observing seasons. The decay time scale of active regions, the coherence scale, and the amplitude of the kernel are independent for each season, while the rotational period of the star is shared across all the datasets.
Note the use of two activity common models marked with the labels activity_s01 and activity_s02. Correspondingly, two gp_quasiperiodic models are employed, marked as gp_quasiperiodic_s01 and gp_quasiperiodic_s02. The prior on the rotation_period is stored in the star_aparameters common_model. As a consequence, both the activity and star_parameters common models must be recalled in the gp_quasiperiodic model.

The use of a common_offset ensures the use of a single offset parameter for each type of dataset, avoiding degeneracies in the presence of long-period signals.
The use of a common_jitter model may be motivated as well.

 1inputs:
 2  RVdata_s01:
 3    file: datasets/TOI1807_RV_s01_PyORBIT.dat
 4    kind: RV
 5    models:
 6      - radial_velocities
 7      - gp_quasiperiodic_s01
 8      - common_offset_RV
 9  BISdata_s01:
10    file: datasets/TOI1807_BIS_s01_PyORBIT.dat
11    kind: BIS
12    models:
13      - gp_quasiperiodic_s01
14      - common_offset_BIS
15  ...
16  RVdata_s02:
17    file: datasets/TOI1807_RV_s02_PyORBIT.dat
18    kind: RV
19    models:
20      - radial_velocities
21      - gp_quasiperiodic_s02
22      - common_offset_RV
23  BISdata_s02:
24    file: datasets/TOI1807_BIS_s02_PyORBIT.dat
25    kind: BIS
26    models:
27      - gp_quasiperiodic_s02
28      - common_offset_BIS
29    ...
30common:
31  planets:
32    b:
33      orbit: circular
34      use_time_inferior_conjunction: True
35      boundaries:
36        P: [0.54, 0.56]
37        K: [0.001, 20.0]
38        Tc: [8899.30, 8899.40]
39      priors:
40        P: ['Gaussian', 0.549374, 0.000013]
41        Tc: ['Gaussian', 8899.3449, 0.0008]
42      spaces:
43        P: Linear
44        K: Linear
45  activity_s01:
46    model: activity
47    boundaries:
48      Pdec: [10.0, 100.0]
49      Oamp: [0.001, 1.0]
50    #priors:
51    #  Oamp: ['Gaussian', 0.35, 0.035]
52  activity_s02:
53    model: activity
54    boundaries:
55      Pdec: [10.0, 100.0]
56      Oamp: [0.001, 1.0]
57    #priors:
58    #  Oamp: ['Gaussian', 0.35, 0.035]
59  star:
60    star_parameters:
61      boundaries:
62        rotation_period: [8.0, 10.0]
63      priors:
64        mass: ['Gaussian', 0.76, 0.03]
65        radius: ['Gaussian', 0.690, 0.036]
66        density: ['Gaussian', 2.3, 0.4]
67        rotation_period: ['Gaussian', 8.8, 0.1]
68  common_offset_RV:
69    model: common_offset
70  common_offset_BIS:
71    model: common_offset
72  common_offset_logRHK:
73    model: common_offset
74models:
75  radial_velocities:
76    planets:
77      - b
78  gp_quasiperiodic_s01:
79    model: gp_quasiperiodic
80    common: 
81      - activity_s01
82      - star_parameters
83    use_stellar_rotation_period: True
84    hyperparameters_condition: True  # Condition from Rajpaul 2017, Rajpaul+2021
85    rotation_decay_condition: True # It forces the decay timescale to be at least twice the rotational period
86    boundaries:
87      Hamp: [0.0, 100.0] # same range for all datasets
88  gp_quasiperiodic_s02:
89    model: gp_quasiperiodic
90    common: 
91      - activity_s02
92      - star_parameters
93    use_stellar_rotation_period: True
94    hyperparameters_condition: True  # Condition from Rajpaul 2017, Rajpaul+2021
95    rotation_decay_condition: True # It forces the decay timescale to be at least twice the rotational period
96    boundaries:
97      Hamp: [0.0, 100.0] # same range for all datasets