Astrophysics Source Code Library

Making codes discoverable since 1999

Welcome to the ASCL

The Astrophysics Source Code Library (ASCL) is a free online registry for source codes of interest to astronomers and astrophysicists, including solar system astronomers, and lists codes that have been used in research that has appeared in, or been submitted to, peer-reviewed publications. The ASCL is indexed by the SAO/NASA Astrophysics Data System (ADS) and Web of Science and is citable by using the unique ascl ID assigned to each code. The ascl ID can be used to link to the code entry by prefacing the number with (i.e.,

Most Recently Added Codes

2021 Jan 14

[submitted] whereistheplanet: predicting positions of directly imaged companions

The purpose of whereistheplanet is to predict the locations of directly imaged companions (mainly exoplanets and brown dwarfs) based on past orbital fits to the data. This tools was built to help coordinate follow-up observations to characterize their properties, as precise pointing of the instrument is often needed. It uses orbitize! (ascl:1910.009) as a backend. whereistheplanet is available as a Python API, a command line tool, and a web form at

2021 Jan 12

[submitted] BAYES-LOSVD: a bayesian framework for non-parametric extraction of the LOSVD

BAYES-LOSVD is a python framework for the non-parametric extraction of the Line-Of-Sight Velocity Distributions in galaxies. It makes use of Stan ( to perform all the computations and provide reliable uncertainties for all the parameters of the model chosen for the fit. The code comes with a large number of features, including read-in routines for some of the most popular IFU spectrographs and surveys: ATLAS3D, CALIFA, MaNGA, MUSE-WFM, SAMI, SAURON.

2021 Jan 08

[submitted] 3LPT-init: Initial conditions with third-order Lagrangian perturbation for cosmological N-body simulations

In cosmological N-body simulations, higher-order Lagrangian perturbation on the initial condition affects the formation of nonlinear structure. Using this code, the initial condition generated by Zel'dovich approximation (Lagrangian linear perturbation) for Gadget-2 code to initial condition with second- or third-order Lagrangian perturbation (2LPT, 3LPT).

2020 Dec 31

[ascl:2012.026] EinsteinPy: General Relativity and gravitational physics problems solver

EinsteinPy performs General Relativity and gravitational physics tasks, including geodesics plotting for Schwarzschild, Kerr and Kerr Newman space-time models, calculation of Schwarzschild radius, and calculation of event horizon and ergosphere for Kerr space-time. It can perform symbolic manipulations of various tensors such as Metric, Riemann, Ricci and Christoffel symbols. EinsteinPy also features hypersurface embedding of Schwarzschild space-time, and includes other utilities and functions. It is a community-developed package and is written in Python.

[ascl:2012.025] Magritte: 3D radiative transfer library

Magritte performs 3D radiative transfer modeling; though focused on astrophysics and cosmology, the techniques can also be applied more generally. The code uses a deterministic ray-tracer with a formal solver that currently focuses on line radiative transfer. Magritte can either be used as a C++ library or as a Python package.

[ascl:2012.024] DRAGraces: Reduction pipeline for GRACES spectra

DRAGraces (Data Reduction and Analysis for GRACES) reduces GRACES spectra taken with the Gemini North high-resolution spectrograph. It finds GRACES frames in a given directory, determines the list of bias, flat, arc and science frames, and performs the reduction and extraction. Written in IDL, DRAGraces is straightforward and easy to use.

[ascl:2012.023] HCGrid: Mapping non-uniform radio astronomy data onto a uniformly distributed grid

HCGrid maps non-uniform radio astronomy data onto a uniformly distributed grid using a convolution-based algorithm on CPU-GPU heterogeneous platforms. The package has three modules; the initialization module initializes parameters needed for the calculation process, such as setting the size of the sampling space and output resolution. The gridding module uses a parallel ordering algorithm to pre-order the sampling points based on HEALPix on the CPU platform and uses an efficient two-level lookup table to speed up the acquisition of sampling points; it then accelerates convolution by using the high parallelism of GPU and through related performance optimization strategies based on CUDA architecture to further improve the gridding performance. The third module processes the results; it visualizes the gridding and exports the final products as FITS files.

[ascl:2012.022] SWIGLAL: Access LALSuite libraries with Python and Octave scripts

SWIGLAL, a wrapper for and component of the LALSuite (ascl:2012.021) gravitational wave detection and analysis libraries, which are primarily written in C, makes LALSuite routines directly accessible to Python and Octave scripts.

[ascl:2012.021] LALSuite: LIGO Scientific Collaboration Algorithm Library Suite

LALSuite contains numerous gravitational wave analysis libraries. Written primarily in C, the libraries include math and signal analysis packages such as for vector manipulation, FFT, statistics, time-domain filtering, and numerical and signal injection routines. The libraries also include date and time and datatype factory routines, in addition to general and support tools and a variety of Python packages. Also included are packages for gravitational waveform and noise generation, burst gravitational wave data analysis, inspiral and ringdown CBC gravitational wave data analysis, pulsar and continuous wave gravitational wave data analysis, and Bayesian inference data analysis. Various wrappers and other tools are also included.

[ascl:2012.020] BlackHawk: Black hole evaporation calculator

BlackHawk calculates the Hawking evaporation spectra of any black hole distribution. Written in C, the program enables users to compute the primary and secondary spectra of stable or long-lived particles generated by Hawking radiation of the distribution of black holes, and to study their evolution in time.