Changelog#
11-Mar-2026: version 3.3.13#
numba acceleration for the occultquad transit model (significant speed-up)
improved binning function
allow resuming emcee sampling at any stage of a previous sampling run
included shared_params in rerun_result function
allow to decontaminate TESS and Kepler data based on CROWSAP keyword
corrected indices of customRV parameters
fixed spleaf GP omission in get_decorr; fixed bug when decorr parameter list is empty; fixed step size for f1ev with emcee sampler
sorting option for RVs
get_TESS_data: improved flux selection and added mask_points method for masking data based on time and flux ranges
fix load_lightcurves to use zeros for missing columns when column is absent in the input file
fixed ValueError when calling np.where on empty GPindex/rvGPindex (0d array) when no GPs are configured
CI: updated GitHub Actions to Node.js 24 (setup-python@v5, FORCE_JAVASCRIPT_ACTIONS_TO_NODE24); added macOS and Windows wheel builds
27-Aug-2025: version 3.3.12#
renamed Transit_Model and RadialVelocity_Model to Planet_LC_Model and Planet_RV_Model respectively
added exclude+pars argument in get_decorr() to exclude specific parameters from the decorrelation model
allow loading lightcurves/rvs from a dictionary instead of from files
included kwargs for getting cheops data taking into account the SAA, Earth, Moon, Sun and CR limits
can now get K2 data from MAST using CONAN.get_files.get_K2_data
implemented multiseries (multidimensional) GP fitting for RVs using spleaf
expanded george multidimensional GP fitting which was not working for more than 2 dimensions
more robust and scalable alternative for .dat config file. config file can now be saved and loaded as yaml file.
27-May-2025: version 3.3.11#
including GPkernels from with more than 2 parameters: quasiperiodic, expsine2, SHO,…
allow to pick between logUniform or uniform prior for GP params and also rho_star and Duration. default is logUniform
added option to chose planet phase variation model: cosine or lambert
elliposidal variation model now include fractional amplitude of the other cosine harmonics
added draft of Joss paper
imporved documentation with full API reference
notebook updates
28-Feb-2025: version 3.3.8#
implemented multiprocessing for plotting figures
29-jan-2025: version 3.3.3#
improved generation of smooth time array (now at 1min sampling) for plotting best fit model
result object now allows to get baseline model and the stdev using result.lc.get_baseline() and result.rv.get_baseline()
fixed binning and offset issues in ttv lc plot
20-Jan-2025: version 3.3.2#
added capability for different parameters to share the same value.
e.g. shared_params = {‘lc1_logjitter’: [‘lc2_logjitter’, ‘lc3_logjitter’, ‘lc4_logjitter’]} * Quality factor Q of the SHO kernel can be fixed to a value using lc_obj._Qsho or rv_obj._Qsho * when multiplying Gp kernels, amplitude of the second kernel should be set to -1 to deactivate it * fixed bug in post-sampling GP prediction when “same” GP is used for lcs * added reflective boundary condition for impact parameter when sampling with dynesty
18-Jan-2025: version 3.3.1#
changed pause statement in occultquad.f to print warning so as not to pause program execution
added sesinw-secosw parameterization for planet model
added filter dependent GP fit
6-Dec-2024: version 3.3#
conversion functions (e.g., rho_to_aR) can take uncertainties.ufloat objects as input
custom func can be given as a class
automatic linking of lc_obj and rv_obj with seamless parameter sharing
fix for installation on python>=3.10
added
.detrend_data()method to remove best fit decorr model from data.added option to specify whether to fit jitter and offset for each light curve
fixed bug in transit model for eccentric orbits
added spleaf for GP fitting
reorganized result folder: meidan and max model plots are now saved in med/ and max/ folders respectively. *out.dat files in out_data/ folder
setup_phasecurve()method of the lc object now changed tophasecurve()corrected ecc anomaly calculation to be accurate for large eccentricities
added tests
12-July-2024: version 3.2.2dev#
added light travel time correction to the lightcurve model, user only required to set the stellar radius
phase curve model properly account for orbital eccentricity.
users can define a custom function which can be used to modify or replace the native CONAN lightcurve model. lc_obj.add_custom_LC_function()
changed import pickle to import dill as pickle which allows to pickle more complex objects like functions.
allow masking data points with user-defined condition. e.g. lc_obj.mask_data(lc_list=”all”, condition=”lc[‘col0’]<lc[‘col0’][10]”) to mask first 10 data points.
allow saving of modified injested data. e.g. lc_obj.save_LCs(save_path=”data_preproc/”)
calculation of AIC,BIC and chisqr now take into account the jitter if added to the errorbars
allow installation of CONAN when fortran compiler is not available, in which case python implementation of the transit model is used.
extra fixed arguments can be passed to custom function
accounted better for eccentricity in different parameter conversions (rho_to_aR, aR_to_rho, Tdur_to_aR, aR_to_Tdur, etc)
fixed bug in lc_out.dat file where the gp baseline was not properly subtracted to create the detrended LC
new lc_obj.add_sinusoid() function to fit a sinusoidal model to the lc baseline
added gp component to get_decorr function
contamination factors can now be setup as fitting parameters.
minor correction for TTV model of multiplanet sysyem when transits overlap
new CONAN.compare_results() class with methods that allows to compare results from different fits.
implemented cosine kernel in celerite
3-Jun-2024: version 3.2.1#
added function to read the parameters values and errors from the result_**.dat file –> result.get_all_params_dict()
automatically save fit config file in the output folder as config_save.dat
input files no longer overwritten when modified within CONAN. CONAN injests the file and works with a copy of it.
fixed bug in splitting filenames with multiple dots
selection of system parameter reference when using ‘ps’ table of the NASA exoplanet archive
changed reported stellar density unit from rho_sun to g/cm3
outlier rejection can be performed on selected columns of the data. e.g. lc_obj.clip_outliers(clip=4,width=11,selected_column=[“col1”,”col3”,”col4”])
when Downloading TESS data, user can now split the sector into orbits to create different file that can be detrended differently
fixed bug in writing result files when duration is a fixed parameter
7-May-2024: version 3.2.0#
added detrend argument to .plot() function to plot the detrended data and model. also adjusted space betweem data and residuals
fixed bug in mutiprocessing which was not closing the pool after fitting
added run_kwargs and dyn_kwargs arguments to the .run_fit() function to pass optional arguments to the emcee/dynesty sampler
remove nan rows when loading data.
corrected box-shaped occultation model by properly scaling transit model for occultations.
modified binning function to account for large data gaps and also modified other plotting outlooks.
fixed bug in obtaining upper sigma of the best-fit model.
spline fitting can now take ‘r’ for knot_spacing argument in order to fit a single spline to the range of the data array.
celerite gp fit of non-sorted array (e.g roll-angle). Now the array is sorted before fitting and the result is sorted back to the original order
Added doppler beaming signal with amplitude A_db to phase curve model.
D_occ, A_atm, A_ev and A_db now given in ppm.
modified phase curve section of config file to print priors for D_occ, A_atm, ph_off, and A_ev side-by-side instead of in separate lines.
choose between duration or rho_star for transit model.
corrected formating issues in *out.dat files when significant digits are too many.
automatically determine limits on jitter terms and baseline parameters from the data
added dynamic nested sampling with dynesty
sampling can be resumed by passing resume_sampling=True to the .run_fit() function
changed lamdas argument in load_lightcurves to wl. lamdas is still accepted but will be deprecated in future versions.
support for nested output folder path.
allowed float clip values in clip_outliers() function
out.dat files now contain arrays of the different baseline components [base_para, base_spl, base_gp, base_total] and the residuals.
check that user actually set planet parameters before attempting fit.
23-Feb-2024: version 3.1.5#
specified version of ldtk to install (1.7.0)
added information about flux arrays names available in tess data
fixed bug in making dynesty traceplot
changed mean of gp from 1 to 0 to reduce correlation with the offset parameter. full baseline thus changes from gp*base to gp+base
modified GP parameters labels (Amp{n} and len{n}) to count from 1 instead of 0 where n is the kernel number
19-Feb-2024: version 3.1.4#
fixed 2D spline fit for lc and rv data
implemented TTV for multiplanetary systems, added test notebook
added column 8 for decorrelation of lcs
estimate of rms and jitter for lc_obj and rv_obj upon ingestion of lc and rv data
“auto” option for the limits of the lc and rv paramteric baseline parameters.
modified fit plots to only phasefold lcs of same filter
uniform prior on rho_star changed to loguniform following literature convention
added ellipsoidal variation amplitude, A_ev, to phase curve model
renamed planet atmospheric variation in phasecurve from A_pc to A_atm
new configfile version to ingest new inputs [ttv,A_ev,A_atm]
added dynesty trace plot to view exploration of parameter space
12-Feb-2024: version 3.1.3#
added estimate of rms and jitter for lc_obj and rv_obj
“auto” option for the limits of the lc and rv paramteric baseline parameters.
8-Feb-2024: version 3.1.2#
fit configfile from command line: >>> conanfit config_file.dat
added notebook for occultation fitting (KELT20b)
2-Feb-2024: version 3.1.0#
added function get_decorr() now available for lc and rv objects
get_decorr() can now use spline. useful when analysing CHEOPS data or to remove other long-term trend in the data
added function clip_outliers() and rescale_column_data() to lc object
download data directly from TESS archive using function get_tess_data()
changed transit_rv_pars() function of the lc object to planet_parameters()
get system parameters from NASA exoplanet archive
limb darkening model now uses kipping parameterization.
get LD priors from phoenix
automatically fit .FITS and .dat files from EULER pipeline
supersampling of long cadence data
improved results object that allows to re-evaluate the model at user-defined times and make plots
phase curve fitting
sampling also with dynesty, now the default sampler
reimplementation of GP, for lc and rv, including more kernels and combinations of kernels
support for multiplanet system in lc and rv. no defined limit on the number of planets
see example implementations in the Notebooks folder
20-11-2023: version 3.0.5(dev)#
added functions clip_outliers() and split_transits to the lc object.
get_decorr() now uses same planet parameter names [“Period”, “Duration”,”Impact_para”,”RpRs”,…]
get_decorr() also allows to exclude some columns from the decorrelation analysis while enforcing others
load_chain() has been renamed as load_result() which returns an object that contains all the results from the MCMC run.
improved results object allows to reevaluate the bestfit model at user-given times
use can now specify output directory for the results using the “out_folder” argument of CONAN.fit_data().
columns of the input data are now described by col0, col3, col4, etc. instead of the legacy xshift, yshift which dont necessarily describe the input columns
added shoTerm gp for celerite
added function get_decorr() to the rv object to find best baseline model for each rv data.
added 2D spline fit for decorrelation of lc and rv data
support for multiplanet system in lc and rv
28-12-2022: version 3.0.5#
fixed bug in fit_data.py when dt is set for RV
from Andreas: removed function call to grweights in fit_data.py, caused errors for TDVs
from Andreas: added some attributes (TO,P,dur) to the result object
25-07-2022: version 3.0.4#
added phases to the output files
fixed problem with RV jitter and gamma indexes when jit_apply = “n”
fixed RV filepath
added spline for roll-angle decorrelation (added roll and spline_fit columns to output file)
can obtain priors for limb darkening using ldtk
smooth sampled transit model in decorr plot
allow setting up lc object without any lc file.
create bin_data function in plots.py
22-07-2022: version 3.0.3#
Modified automatic steps assignment in planet_parameterss() function
allow fitting single LDC while keeping the other fixed
correction in celerite fitting
corrected setup_occultation() which erroneously showed fit=”y” when not fitting a lc for occultation
specify delta_BIC threshold for selecting parameters in get_decorr() function
reduced bounds on the offset parameter -> [0.9, 1.2]
white noise in celerite uses bounds: [-5,-12]
burn-in chains now saved as .png before running the production chain
increased max number of parameters for making cornerplot from 12 to 14
increase maximum of impact parameter to 1.5
pointing input errors back to the concerned functions/methods
fixed issue with RV jitter not jumping
corrected error for celerite when WN=”n”
10-07-2022: version 3.0.2#
changed format of quadratic limb darekening: now allows either gaussian or uniform priors. Gaussian still recommended
- included 1D GP fitting using Celerite (~5X faster than with George)
to use celerite gp for a lightcurve, use “ce” instead of “y” in function lc_baseline().
added function get_decorr() for light curves object to find best baseline model for each lc.
added function plot_burnin_chains() to the results object to see how the chains evolved during burn-in.
added function load_result_array() to load result array for customized plotting.
some notebooks in example folder