ASCL.net

Astrophysics Source Code Library

Making codes discoverable since 1999

Searching for codes credited to 'Foreman-Mackey, Dan'

Tip! Refine or expand your search. Authors are sometimes listed as 'Smith, J. K.' instead of 'Smith, John' so it is useful to search for last names only. Note this is currently a simple phrase search.

[ascl:1303.002] emcee: The MCMC Hammer

emcee is an extensible, pure-Python implementation of Goodman & Weare's Affine Invariant Markov chain Monte Carlo (MCMC) Ensemble sampler. It's designed for Bayesian parameter estimation. The algorithm behind emcee has several advantages over traditional MCMC sampling methods and has excellent performance as measured by the autocorrelation time (or function calls per independent sample). One advantage of the algorithm is that it requires hand-tuning of only 1 or 2 parameters compared to $sim N^2$ for a traditional algorithm in an N-dimensional parameter space. Exploiting the parallelism of the ensemble method, emcee permits any user to take advantage of multiple CPU cores without extra effort.

[ascl:1407.008] Exopop: Exoplanet population inference

Exopop is a general hierarchical probabilistic framework for making justified inferences about the population of exoplanets. Written in python, it requires that the occurrence rate density be a smooth function of period and radius (employing a Gaussian process) and takes survey completeness and observational uncertainties into account. Exopop produces more accurate estimates of the whole population than standard procedures based on weighting by inverse detection efficiency.

[ascl:1502.020] ketu: Exoplanet candidate search code

ketu, written in Python, searches K2 light curves for evidence of exoplanets; the code simultaneously fits for systematic effects caused by small (few-pixel) drifts in the telescope pointing and other spacecraft issues and the transit signals of interest. Though more computationally expensive than standard search algorithms, it can be efficiently implemented and used to discover transit signals.

[ascl:1511.015] George: Gaussian Process regression

George is a fast and flexible library, implemented in C++ with Python bindings, for Gaussian Process regression useful for accounting for correlated noise in astronomical datasets, including those for transiting exoplanet discovery and characterization and stellar population modeling.

[ascl:1701.001] The Joker: A custom Monte Carlo sampler for binary-star and exoplanet radial velocity data

Given sparse or low-quality radial-velocity measurements of a star, there are often many qualitatively different stellar or exoplanet companion orbit models that are consistent with the data. The consequent multimodality of the likelihood function leads to extremely challenging search, optimization, and MCMC posterior sampling over the orbital parameters. The Joker is a custom-built Monte Carlo sampler that can produce a posterior sampling for orbital parameters given sparse or noisy radial-velocity measurements, even when the likelihood function is poorly behaved. The method produces correct samplings in orbital parameters for data that include as few as three epochs. The Joker can therefore be used to produce proper samplings of multimodal pdfs, which are still highly informative and can be used in hierarchical (population) modeling.

[ascl:1807.027] kplr: Tools for working with Kepler data using Python

kplr provides a lightweight Pythonic interface to the catalog of planet candidates (Kepler Objects of Interest [KOIs]) in the NASA Exoplanet Archive and the data stored in the Barbara A. Mikulski Archive for Space Telescopes (MAST). kplr automatically supports loading Kepler data using pyfits (ascl:1207.009) and supports two types of data: light curves and target pixel files.

[ascl:1702.002] corner.py: Corner plots

corner.py uses matplotlib to visualize multidimensional samples using a scatterplot matrix. In these visualizations, each one- and two-dimensional projection of the sample is plotted to reveal covariances. corner.py was originally conceived to display the results of Markov Chain Monte Carlo simulations and the defaults are chosen with this application in mind but it can be used for displaying many qualitatively different samples. An earlier version of corner.py was known as triangle.py.

[ascl:1709.008] celerite: Scalable 1D Gaussian Processes in C++, Python, and Julia

celerite provides fast and scalable Gaussian Process (GP) Regression in one dimension and is implemented in C++, Python, and Julia. The celerite API is designed to be familiar to users of george and, like george, celerite is designed to efficiently evaluate the marginalized likelihood of a dataset under a GP model. This is then be used alongside a non-linear optimization or posterior inference library for the best results.

celerite has been superceded by celerite2 (ascl:2310.001).

[ascl:1807.029] EVEREST: Tools for de-trending stellar photometry

EVEREST (EPIC Variability Extraction and Removal for Exoplanet Science Targets) removes instrumental noise from light curves with pixel level decorrelation and Gaussian processes. The code, written in Python, generates the EVEREST catalog and offers tools for accessing and interacting with the de-trended light curves. EVEREST exploits correlations across the pixels on the CCD to remove systematics introduced by the spacecraft’s pointing error. For K2, it yields light curves with precision comparable to that of the original Kepler mission. Interaction with the EVEREST catalog catalog is available via the command line and through the Python interface. Though written for K2, EVEREST can be applied to additional surveys, such as the TESS mission, to correct for instrumental systematics and enable the detection of low signal-to-noise transiting exoplanets.

[ascl:1810.005] STARRY: Analytic computation of occultation light curves

STARRY computes light curves for various applications in astronomy: transits and secondary eclipses of exoplanets, light curves of eclipsing binaries, rotational phase curves of exoplanets, light curves of planet-planet and planet-moon occultations, and more. By modeling celestial body surface maps as sums of spherical harmonics, STARRY does all this analytically and is therefore fast, stable, and differentiable. Coded in C++ but wrapped in Python, STARRY is easy to install and use.

[ascl:1901.009] bettermoments: Line-of-sight velocity calculation

bettermoments measures precise line-of-sight velocities from Doppler shifted lines to determine small scale deviations indicative of, for example, embedded planets.

[ascl:1904.022] eleanor: Extracted and systematics-corrected light curves for TESS-observed stars

eleanor extracts target pixel files from TESS Full Frame Images and produces systematics-corrected light curves for any star observed by the TESS mission. eleanor takes a TIC ID, a Gaia source ID, or (RA, Dec) coordinates of a star observed by TESS and returns, as a single object, a light curve and accompanying target pixel data. The process can be customized, allowing, for example, examination of intermediate data products and changing the aperture used for light curve extraction. eleanor also offers tools that make it easier to work with stars observed in multiple TESS sectors.

[ascl:1907.001] schwimmbad: Parallel processing pools interface

schwimmbad provides a uniform interface to parallel processing pools and enables switching easily between local development (e.g., serial processing or with multiprocessing) and deployment on a cluster or supercomputer (via, e.g., MPI or JobLib). The utilities provided by schwimmbad require that tasks or data be “chunked” and that code can be “mapped” onto the chunked tasks.

[ascl:1910.005] exoplanet: Probabilistic modeling of transit or radial velocity observations of exoplanets

exoplanet is a toolkit for probabilistic modeling of transit and/or radial velocity observations of exoplanets and other astronomical time series using PyMC3 (ascl:1610.016), a flexible and high-performance model building language and inference engine. exoplanet extends PyMC3's language to support many of the custom functions and distributions required when fitting exoplanet datasets. These features include a fast and robust solver for Kepler's equation; scalable Gaussian processes using celerite (ascl:1709.008); and fast and accurate limb darkened light curves using the code starry (ascl:1810.005). It also offers common reparameterizations for limb darkening parameters, and planet radius and impact parameters.

[ascl:2007.001] GProtation: Measuring stellar rotation periods with Gaussian processes

GProtation measures stellar rotation periods with Gaussian processes.

This code is no longer being maintained. Please consider using celerite (ascl:1709.008) or exoplanet (ascl:1910.005) instead.

[ascl:2011.012] wobble: Time-series spectra analyzer

wobble analyzes time-series spectra. It was designed with stabilized extreme precision radial velocity (EPRV) spectrographs in mind, but is highly flexible and extensible to a variety of applications. It takes a data-driven approach to deriving radial velocities and requires no a priori knowledge of the stellar spectrum or telluric features.

[ascl:2105.015] PyTorchDIA: Difference Image Analysis tool

PyTorchDIA is a Difference Image Analysis tool. It is built around the PyTorch machine learning framework and uses automatic differentiation and (optional) GPU support to perform fast optimizations of image models. The code offers quick results and is scalable and flexible.

[ascl:2107.024] K2-CPM: Causal Pixel Model for K2 data

K2-CPM captures variability while preserving transit signals in Kepler data. Working at the pixel level, the model captures very fine-grained information about the variation of the spacecraft. The CPM models the systematic effects in the time series of a pixel using the pixels of many other stars and the assumption that any shared signal in these causally disconnected light curves is caused by instrumental effects. The target star's future and past are used and the data points are separated into training and test sets to ensure that information about any transit is perfectly isolated from the model. The method has four tuning parameters, the number of predictor stars or pixels, the autoregressive window size, and two L2-regularization amplitudes for model components, and consistently produces low-noise light curves.

[ascl:2109.015] unpopular: Using CPM detrending to obtain TESS light curves

unpopular is an implementation of the Causal Pixel Model (CPM) de-trending method to obtain TESS Full-Frame Image (FFI) light curves. The code, written in Python, models the systematics in the light curves of individual pixels as a linear combination of light curves from many other distant pixels and removes shared flux variations. unpopular is able to preserve sector-length astrophysical signals, allowing for the extraction of multi-sector light curves from the FFI data.

[ascl:2203.006] starry_process: Interpretable Gaussian processes for stellar light curves

starry_process implements an interpretable Gaussian process (GP) for modeling stellar light curves. The code's hyperparameters are physically interpretable, and include the radius of the spots, the mean and variance of the latitude distribution, the spot contrast, and the number of spots, among others. The rotational period of the star, the limb darkening parameters, and the inclination (or marginalize over the inclination if it is not known) can also be specified.

[ascl:2205.005] maelstrom: Forward modeling of pulsating stars in binaries

maelstrom models binary orbits through the phase modulation technique. This set of custom PyMC3 models and solvers fit each individual datapoint in the time series by forward modeling the time delay onto the light curve. This approach fully captures variations in a light curve caused by an orbital companion.