This is a forward modeling program that will simulate the detected transiting exoplanet population around the Kepler sample of "solar-like" stars. You can import your own multi-planet system parameters to determine the probability of being detected or you can use an underlying power-law distribution to determine what population would be expected empirically. Multiplicity and its effects on detection efficiency are also considered here.
These instructions will get you a copy of the project up and running on your local machine for research, development, and testing purposes. ExoMult was orginally written in R, but we provide a wrapper to run the program in Python as well.
To run the software begin by installing R. The latest version of R can be downloaded from:
https://www.r-project.org
When running ExoMult in Python, it is still necessary to download and install R.
Before starting, make sure that "kepler_solar-like_stellar_parameters.csv" and "ExoMult.R" are located in the same directory. Start by opening R in this directory.
$ R
Now load ExoMult into R
> source("ExoMult.R")
Now you can execute the ExoMult function
> ExoMult()
ExoMult will return a data frame of the detected planets and export the results to a csv file "simulated_detect_pop.csv"
Alternatively, the ExoMult.Prob function will produce a detection probabilty for a given system of planets.
> ExoMult.Prob(radius=c(1,2,3,4), period=c(10,20,30,40), eccentricity=c(0,0.05,0.1,0.15))
ExoMult.Prob will produce a data frame corresponding to the input planetary system. This data frame will be sorted by decending detection probability.
Output | Description |
---|---|
Probability_Detection |
The probabilty each planet transits and is detected. |
Frequency_Detection |
The frequency in which this planet was found, given that any planet was detected. |
Probability_Detection_m_Planets |
The probability that a mulitplicity of at least m will be detected for this system, where m is an integer value corresponding to the data frame index. |
For improved speed and easy we recommend using ExoMult in R, however, a Python wrapper is also available. Before starting, make sure that "kepler_solar-like_stellar_parameters.csv", "ExoMult.R", and "ExoMult.py" are located in the same directory.
Other required modules include : numpy, rpy2, pandas2ri, and their associated dependencies.
Begin by opening Python in the appropriate directory.
$ python
Now load ExoMult (for Python3):
>>> exec(open("./ExoMult.py").read())
Now load ExoMult (for Python2):
>>> execfile("ExoMult.py")
Now you can execute the ExoMult function
>>> ExoMult()
ExoMult will return a Pandas data frame of the detected planets and export the results to a csv file "simulated_detect_pop.csv"
Alternatively, the ExoMult_Prob function will produce a detection probabilty for a given system of planets.
>>> ExoMult_Prob(radius=np.array[(1,2,3,4)], period=np.array[(10,20,30,40)], eccentricity=np.array[(0,0.05,0.1,0.15)])
ExoMult_Prob will produce a Pandas data frame corresponding to the input planetary system. This data frame will be sorted by decending detection probability.
Output | Description |
---|---|
Probability_Detection |
The probabilty each planet transits and is detected. |
Frequency_Detection |
The frequency in which this planet was found, given that any planet was detected. |
Probability_Detection_m_Planets |
The probability that a mulitplicity of at least m will be detected for this system, where m is an integer value corresponding to the data frame index. |
The above opperation will run ExoMult with the default setting.
ExoMult(rMin=0.5, rMax=16, alpha_1=-1.65, rad_break=2.66, alpha_2=-4.35, pMin=0.5, pMax=500,
beta_1=0.76, per_break=7.09, beta_2=-0.64, mut_Ray=1, ecc_alpha=0, ecc_beta=1, frac_m1=0.72,
frac_m2=0.68, frac_m3=0.66, frac_m4=0.63, frac_m5=0.60, frac_m6=0.55, frac_m7=0.40, export_csv=TRUE)
-
rMin, rMax = The minimum/maximum values of radius considered in this population simulation. The units are provided in Earth radii.
-
pMin, pMax = The minimum/maximum values of period considered in this population simulation. The units are provided in days.
-
alpha_1, alpha_2 = The population parameter for the planet radius distribution. The values correspond to exponent of the power-law.
-
beta_1, beta_2 = The population parameter for the planet period distribution. The values correspond to exponent of the power-law.
-
rad_break = The radius value where the power-law distribution changes exponents.
-
per_break = The period value where the power-law distribution changes exponents.
-
mut_Ray = The Rayleigh distribution parameter used to determine the expected mutual inclination dispersion for each system. This values is given in units of degrees. Putting a zero in this parameter will produce flat disks.
-
ecc_alpha, ecc_beta = The Beta distribution parameters used to determine the eccentricty of each planet. The default settings will produce zero eccentricity for each planet.
-
frac_m1, frac_m2, frac_m3, frac_m4, frac_m5, frac_m6, frac_m7 = the fraction of the stellar population with at least m planets.
-
export_csv = Tell ExoMult whether it should or should not print the results to a csv file. A Boolean value is expected.
ExoMult.Prob(radius, period, eccentricity, mut_Ray=0)
-
radius = A user provided vector of planet radii within the system of interest. The units are provided in Earth radii. Currently, ExoMult can accept systems with up to 7 planets.
-
period = A user provided vector of planet periods, ordered to correspond with the planet radii given. The units are provided in days.
-
eccentricity = A user provided vector of planet eccentricities, odered to correspond with the planet radii given. These values should range from [0,1].
-
mut_Ray = The Rayleigh distribution parameter used to determine the expected mutual inclination dispersion for each system. This values is given in units of degrees. Putting a zero in this parameter will produce flat disks.
To utilize this code for an alternative stellar population, be sure that your stellar sample file has the same format as "kepler_solar-like_stellar_parameters.csv". For improved speed and easy we recommend using ExoMult in R.
Please cite as Zink, Christiansen, & Hansen (2019).
@article{ExoMult,
author = {{Zink}, J. K. and {Christiansen}, J. L. and {Hansen}, B. M. S.},
title = {Accounting for incompleteness due to transit multiplicity in Kepler planet occurrence rates},
journal = {MNRAS},
volume = {483},
number = {4},
pages = {4479-4494},
year = {2019},
doi = {10.1093/mnras/sty3463}
}