Exponential-sine periodic kernel (S+LEAF)#

The Exponential-sine periodic (ESP) kernel is an approximation of the quasi-periodic (QP) kernel implemented in the S+LEAF software. In the S+LEAF documentation, the QP kernel is referred to as the squared-exponential periodic (SEP) kernel. Despite the different name, the QP periodic kernel definition is the same as the one implemented in PyORBIT in either the trained or the multidimensional approach.

The quasi-periodic kernel is the preferred choice for the multidimensional GP. We follow the expression given by Rajpaul et al. 2015:

(13)#\[\gamma ^{(G,G)}_{i,j} = \exp{ \left \{-\frac{\sin^2{[\pi(t_i - t_j)/ P_\mathrm{rot}]}}{2 O_\mathrm{amp} ^2} - \frac{(t_i-t_j)^2}{2 P_\mathrm{dec}^2} \right \} }\]

Note

If you use the multidimensional GP through S+LEAF, please don’t forget to cite Delisle et al. 2020 and Delisle et al. 2022

Implementation of the S+LEAF package#

As PyORBIT naturally supports an unlimited number of datasets with heterogeneous cadences, the inclusion of the S+LEAF package has been quite straightforward. The GP hyperparameters preserve the same name as in the other kernels: the rotation period of the star \(P_\mathrm{rot}\), the coherence scale \(O_\mathrm{amp}\), and the decay time scale of the active regions \(P_\mathrm{dec}\), corresponds to \(P\), \(\eta\), \(\rho\) in S+LEAF documentation.

The coefficients \(\alpha\) and \(\beta\) introduced in the S+LEAF multiGP example are consequently renamed in con_amp and rot_amp, with the reference dataset easily identifiable from the terminal output.

Model definition and requirements#

model name: spleaf_multidimensional_esp

  • required common objects: activity

model aliases

  • spleaf_multidimensional_exponentialsineperiodic

  • spleaf_multidimensional_esp_slow

  • spleaf_multidimensional_exponentialsineperiodic_slow

  • spleaf_multidimensional_esp_devel

Keywords#

Model-wide keywords, with the default value in bold face.

n_harmonics

  • accepted values: integer | 4

  • Number of harmonics to include in the ESP approximation of the QP kernel

hyperparameters_condition

  • accepted values: True | False

  • activate the conditions \( P_\mathrm{dec} ^ 2 > \frac{3}{2 \pi} P_\mathrm{rot} ^2 O_\mathrm{amp} ^ 2 \) from Rajpaiul 2017 and Rajpaul et al. 2021, 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\)

derivative

  • accepted values: list of datasets using the model

  • if not provided, default is True for all datasets except H-alpha S_index Ca_HK, and FWHM. If provided, default is False for all the datasets not explicitly mentioned.

  • If True, the first derivative of the underlying Gaussian process is included, otherwise, rot_ampF is fixed to zero.

Examples#

In the following example, one RV dataset comes together with two activity indicators, the BIS and the FWHM of the CCF, the latter as a replacement of \(\log{R^{\prime}_\mathrm{HK}}\).

This example is nearly identical to the one presented for the multidimensional QP kernel. The three main differences are:

  • The model spleaf_multidimensional_esp is replacing tinygp_multidimensional_quasiperiodic

  • the additional keyword n_harmonics is included in the example

  • the safe_reload keyword in the parameters section is not longer required

  1inputs:
  2  RVdata:
  3    file: RVS_PyORBIT.dat
  4    kind: RV
  5    models:
  6      - radial_velocities
  7      - gp_multidimensional
  8  BISdata:
  9    file: BIS_PyORBIT.dat
 10    kind: BIS
 11    models:
 12      - gp_multidimensional
 13  FWHMdata:
 14    file: FWHM_PyORBIT.dat
 15    kind: FWHM
 16    models:
 17      - gp_multidimensional
 18common:
 19  planets:
 20    b:
 21      orbit: circular
 22      use_time_inferior_conjunction: True
 23      boundaries:
 24        P: [2.21000, 2.240000]
 25        K: [0.001, 20.0]
 26        Tc: [59144.60, 59144.63]
 27      priors:
 28        P: ['Gaussian', 2.2241951, 0.00000030]
 29        Tc: ['Gaussian', 59144.616171, 0.000284]
 30    c:
 31      orbit: keplerian
 32      boundaries:
 33        P: [2.0, 100.0]
 34        K: [0.001, 30.0]
 35        e: [0.00, 0.70]
 36      priors:
 37        e: ['Gaussian', 0.00, 0.098]
 38    d:
 39      orbit: keplerian
 40      boundaries:
 41        P: [2.0, 100.0]
 42        K: [0.001, 30.0]
 43        e: [0.00, 0.70]
 44      priors:
 45        e: ['Gaussian', 0.00, 0.098]
 46  activity:
 47    boundaries:
 48      Prot: [20.0, 30.0]
 49      Pdec: [30.0, 1000.0]
 50      Oamp: [0.01, 1.0]
 51    priors:
 52      Prot: ['Gaussian', 14.00, 0.50]
 53      Oamp: ['Gaussian', 0.35, 0.035]
 54  star:
 55    star_parameters:
 56      priors:
 57        mass: ['Gaussian', 0.65, 0.05]
 58        radius: ['Gaussian', 0.624, 0.005]
 59        density: ['Gaussian', 2.65, 0.08]
 60models:
 61  radial_velocities:
 62    planets:
 63      - b
 64      - c
 65      - d
 66  gp_multidimensional:
 67    model: spleaf_multidimensional_esp
 68    common: activity
 69    n_harmonics: 4
 70    hyperparameters_condition: True
 71    rotation_decay_condition: True
 72    RVdata:
 73      boundaries:
 74        rot_amp: [0.0, 20.0] #at least one must be positive definite
 75        con_amp: [-20.0, 20.0]
 76      derivative: True
 77    BISdata:
 78      boundaries:
 79        rot_amp: [-20.0, 20.0]
 80        con_amp: [-20.0, 20.0]
 81      derivative: True
 82    FWHMdata:
 83      boundaries:
 84        con_amp: [-50., 50.]
 85      derivative: False
 86parameters:
 87  Tref: 59200.00
 88  low_ram_plot: True
 89  plot_split_threshold: 1000
 90  cpu_threads: 16
 91solver:
 92  pyde:
 93    ngen: 50000
 94    npop_mult: 4
 95  emcee:
 96    npop_mult: 4
 97    nsteps: 100000
 98    nburn: 25000
 99    nsave: 25000
100    thin: 100
101    #use_threading_pool: False
102  nested_sampling:
103    nlive: 1000
104    sampling_efficiency: 0.30
105  recenter_bounds: True

Tip

Since the coefficients are always coupled, there is a degeneracy between a given set and the opposite one (i.e., all the coefficient with opposite sign). This degeneracy can be solved by force one coefficient to be positive, e.g., rot_amp for the RV_data in the example.

A simpler way to prepare the configuration file if you are not specifying the boundaries is to list the datasets with derivatives under the same keyword:

 1...
 2  gp_multidimensional:
 3    model: gp_multidimensional_quasiperiodic
 4    common: activity
 5    hyperparameters_condition: True
 6    rotation_decay_condition: True
 7    derivative:
 8      RVdata: True
 9      BISdata: True
10      FWHMdata: False
11parameters:
12...

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

con_amp

coefficient of \(G(t)\) component

dataset

activity

rot_amp

coefficient of \(G^\prime (t)\) component

dataset

activity