Pillars of Creation (NIRCam and MIRI Composite Image). Image Credit: NASA, ESA, CSA, and STScI
Welcome to the Astronomical Software Tools repository! This collection is dedicated to providing a comprehensive list of software tools and libraries that are essential for astronomical research and data analysis. Whether you are working with Python-based tools or standalone executable software, this repository aims to be a valuable resource for astronomers and astrophysicists. Explore the various tools listed below to enhance your research and streamline your workflows.
Astropy is a comprehensive library designed to support the core functionality needed for astronomy and astrophysics research. It provides a wide range of tools that are essential for astronomers, including celestial coordinate transformations, time and date handling, unit conversions, and data manipulation.
One of the key strengths of Astropy is its ability to handle various astronomical file formats, making it easier for researchers to read and write data. Additionally, it offers modules for performing statistical analysis and visualizing data, which are crucial for interpreting astronomical observations.
For more information and to get started with Astropy, visit their official website.
- Installation: Install Astropy
- Pip Installation:
pip install astropy - Source Code: GitHub Repository
- Tutorials: Learn Tutorials
- API Reference: Astropy API
AstroML is a Python module for machine learning and data mining built specifically for astronomy. It contains a growing library of statistical and machine learning routines for analyzing astronomical data in a variety of formats. The library is designed to be flexible and easy to use, making it a valuable tool for both researchers and educators.
AstroML includes tools for data preprocessing, feature selection, regression, classification, clustering, and more. It also provides a collection of example datasets and scripts to help users get started quickly.
For more information and to get started with AstroML, visit their official website.
- Installation: Install AstroML
- Source Code: GitHub Repository
- Pip Installation:
pip install astroML - Tutorials: AstroML Tutorials
- Books: AstroML Interactive Book
- Additional Resources: Textbook Figures
- API Reference: AstroML API
Astroquery is a Python package that provides a simple interface for querying astronomical databases and archives. It allows users to access a wide range of data sources, including NASA's archives, the European Space Agency's archives, and many others. The library is designed to be easy to use, with a consistent API that simplifies the process of querying and retrieving data.
Astroquery supports a variety of query types, including cone searches, image searches, and spectral searches. It also provides tools for handling the returned data, making it easier to integrate into your analysis workflows.
For more information and to get started with Astroquery, visit their official website.
- Installation:
pip install astroquery - Tutorials: Astroquery Tutorials
- API Reference: Astroquery API
- Source Code: GitHub Repository
- Python module Index: Useful API
batman (Bad-Ass Transit Model cAlculatioN) is a Python package for calculating transit light curves. It is designed to be fast and flexible, allowing users to model light curves for various types of exoplanetary systems. The package supports different limb darkening laws and can handle both primary and secondary eclipses.
batman is particularly useful for fitting transit light curves and deriving parameters such as the planet's radius, orbital inclination, and limb darkening coefficients.
For more information and to get started with batman, visit their official website.
- Installation:
pip install batman-package - Source Code: GitHub Repository
- Documentation: batman Documentation
- Tutorials: batman tutorials
- API Reference: batman API
Camb (Code for Anisotropies in the Microwave Background) is a cosmology library for calculating theoretical predictions for the cosmic microwave background (CMB) and matter power spectra. It is widely used in the field of cosmology for analyzing data from CMB experiments and large-scale structure surveys.
Camb provides tools for computing the CMB power spectra, matter power spectra, and other related quantities. It is highly configurable, allowing users to specify various cosmological parameters and models.
For more information and to get started with Camb, visit their official website.
- Installation:
pip install camb - Source Code: GitHub Repository
- Documentation: Camb Documentation
- Examples: Camb Examples Notebook
- API Reference: Camb API
CIGALE (Code Investigating GALaxy Emission) is a Python package for modeling the spectral energy distribution (SED) of galaxies. It provides tools for fitting observed SEDs with theoretical models, allowing users to derive physical properties such as star formation rates, stellar masses, and dust content.
CIGALE is designed to be flexible and user-friendly, with a range of options for customizing models and fitting procedures. It is particularly useful for studying the multi-wavelength properties of galaxies and interpreting observational data.
For more information and to get started with CIGALE, visit their official website.
- Installation: Download CIGALE
- Documentation: Cigate Documentation
- Source Code: Gitlab Repository
- Tutorials: CIGALE Tutorials
- Example Files:
# Download the zip CIGALE example file using wget
wget http://cigale.lam.fr/wp-content/uploads/2016/05/CIGALE_Howto_v0.9.0.zip- Research Paper: CIGALE Research Paper
Cobaya (Code for Bayesian Analysis) is a framework for sampling and statistical modeling, designed for cosmological parameter estimation. It allows users to define complex models and perform Bayesian inference using various sampling algorithms.
Cobaya is highly modular and can interface with other cosmological codes, such as CAMB and CLASS, to compute theoretical predictions. It also supports parallel computation, making it efficient for large-scale analyses.
For more information and to get started with Cobaya, visit their official website.
- Installation:
pip install cobaya - Source Code: GitHub Repository
- Documentation: Cobaya Documentation
- Examples: Cobaya Examples
- API Reference: Cobaya API
Dustpy is a Python package for simulating the evolution of dust in protoplanetary disks. It provides tools for modeling the growth, fragmentation, and dynamics of dust particles in these environments.
Dustpy is designed to be flexible and user-friendly, with a range of options for customizing simulations. It is particularly useful for studying the processes that lead to planet formation.
For more information and to get started with Dustpy, visit their official website.
- Installation:
pip install dustpy - Source Code: GitHub Repository
- Documentation: Dustpy Documentation
- Examples: Dustpy Basic Usages
- API Reference: Dustpy API
Eureka is a Python package designed for the reduction and analysis of data from the James Webb Space Telescope (JWST). It provides tools for processing time-series observations, including functions for data calibration, light curve extraction, and transit fitting.
For more information and to get started with Eureka, visit their official website.
- Installation:
pip install -e 'eureka[jwst]@git+https://github.com/kevin218/[email protected]' - Source Code: GitHub Repository
- Documentation: Eureka Documentation
- Tutorials: Eureka Tutorials
- API Reference: Eureka API
exoplanet is a toolkit for probabilistic modeling of time series data in astronomy, with a focus on observations of exoplanets. It leverages the PyMC library to provide a flexible and powerful framework for modeling and analyzing time series data, allowing users to perform tasks such as transit fitting, radial velocity analysis, and more.
These features include:
- A fast and robust solver for Kepler’s equation.
- Scalable Gaussian Processes using celerite.
- Fast and accurate limb darkened light curves using starry.
- Common reparameterizations for exoplanet-specific parameters like limb darkening and eccentricity.
- And many others!
For more information and to get started with exoplanet, visit their official website.
- Installation:
python -m pip install -U "exoplanet[pymc]" - Source Code: GitHub Repository
- Documentation: exoplanet Documentation
- Tutorials: exoplanet Tutorials Tutorials Gallery
- API Reference: exoplanet API
Gala is a Python package for galactic dynamics. It provides tools for analyzing the orbits of stars and other objects in the Milky Way and other galaxies. The package includes functions for integrating orbits, estimating potential parameters, and performing various dynamical analyses.
Gala is designed to be flexible and user-friendly, with a range of options for customizing analyses. It is particularly useful for studying the structure and dynamics of galaxies.
For more information and to get started with Gala, visit their official website.
- Installation:
pip install gala - Source Code: GitHub Repository
- Documentation: Gala Documentation
- Tutorials: Gala Tutorials
- API Reference: Gala API
GASTLI (Galactic and Stellar Light) is a Python package for simulating and analyzing the light from galaxies and stars. It provides tools for generating synthetic photometry, modeling stellar populations, and fitting observed data.
GASTLI is designed to be flexible and user-friendly, with a range of options for customizing simulations and analyses. It is particularly useful for studying the properties of galaxies and their stellar populations.
For more information and to get started with GASTLI, visit their official website.
- Installation: gastli install
- Source Code: GitHub Repository
- Documentation: GASTLI Documentation
- Tutorials: GASTLI tutorials
- API Reference: GASTLI API
H5py is a Python interface to the HDF5 binary data format, which is widely used in scientific computing for storing large datasets. It allows users to read and write HDF5 files, providing a flexible and efficient way to manage complex data.
H5py supports a range of data types and structures, making it suitable for a variety of applications, including astronomy. It also integrates well with other scientific libraries, such as NumPy and SciPy.
For more information and to get started with H5py, visit their official website.
- Installation:
pip install h5py - Source Code: GitHub Repository
- Documentation: H5py Documentation
- Examples: H5py Examples
- API Reference: H5py API
- BOOKS:
Healpy is a Python package for working with HEALPix (Hierarchical Equal Area isoLatitude Pixelation) data, which is commonly used in astronomy for analyzing spherical data, such as maps of the cosmic microwaveSPARCL background.
Healpy provides tools for creating, manipulating, and visualizing HEALPix maps. It also includes functions for performing spherical harmonic transforms and other operations on spherical data.
For more information and to get started with Healpy, visit their official website.
- Installation:
pip install healpy - Source Code: GitHub Repository
- Documentation: Healpy Documentation
- Tutorials: Healpy tutorial
- API Reference: Healpy API
Jdaviz is a suite of interactive data visualization tools for astronomy, built on the Jupyter platform. It provides a range of applications for visualizing and analyzing different types of astronomical data, including spectra, images, and cubes.
Jdaviz is designed to be user-friendly and highly customizable, with a focus on interactive exploration and analysis. It integrates with other scientific libraries, such as Astropy and Specutils, to provide a seamless workflow for astronomers.
For more information and to get started with Jdaviz, visit their official website.
- Installation:
pip install jdaviz - Source Code: GitHub Repository
- Documentation: Jdaviz Documentation
- Tutorials: Jdaviz video tutorials jdaviz example notebook
- API Reference: Jdaviz API
Lightkurve is a Python package for analyzing time series data from NASA's Kepler and TESS missions. It provides tools for working with light curves, including functions for reading, manipulating, and visualizing the data.
Lightkurve is designed to be easy to use, with a focus on enabling quick and efficient analysis of time series data. It also includes tools for detecting and characterizing exoplanets, making it a valuable resource for researchers in the field of exoplanet science.
For more information and to get started with Lightkurve, visit their official website.
- Installation:
pip install lightkurve - Source Code: GitHub Repository
- Tutorials: Lightkurve Examples
- API Reference: Lightkurve API
- Other similar softwareSimilar software that may complement lightkurve
Minato (Massive bINaries Analysis TOols) is a Python package designed for the analysis of massive binary stars. It provides tools for spectral analysis, allowing users to fit the spectra of binary stars simultaneously with synthetic spectra. The package returns effective temperatures, log surface gravities, rotational velocities, He/H ratios, and the light ratio.
- Source Code: GitHub Repository
- Documentation: Minato Documentation
- Tutorials: Minato Examples
PACMAN is a pipeline to reduce and analyze Hubble/Wide Field Camera 3 (WFC3) observations of transiting exoplanets. The pipeline runs end-to-end, beginning with a time series of 2D images and ending with a spectrum for the planet. PACMAN can easily fit multiple observations simultaneously.
The main steps in the pipeline are:
- optimally extract spectra from the 'ima' data products provided by STScI
- bin the spectra into user-specified wavelength bins and output the light curve(s)
- fit the light curves with a variety of astrophysical models (transit, eclipse, phase curve) and instrument systematic models (visit-long quadratic trends, orbit-long exponential trends)
- estimate uncertainties on the planet parameters with least-squares, MCMC, or nested sampling
For more information and to get started with PACMAN, visit their official website.
- Installation:
pip install 'pacman@git+https://github.com/sebastian-zieba/[email protected]' - Source Code: GitHub Repository
- Documentation: PACMAN Documentation
- Tutorials: PACMAN Quickstart
- API Reference: PACMAN API
petitRADTRANS is a Python package for modeling the transmission and emission spectra of exoplanet atmospheres. It provides tools for generating synthetic spectra based on various atmospheric parameters, including temperature, composition, and cloud properties.
petitRADTRANS is designed to be flexible and user-friendly, with a range of options for customizing models. It is particularly useful for studying the atmospheres of transiting exoplanets and interpreting observational data.
For more information and to get started with petitRADTRANS, visit their official website.
- Installation: Installation docs
- Source Code: GitHub Repository
- Documentation: petitRADTRANS Documentation
- Tutorials: petitRADTRANS Tutorials Examples
- API Reference: petitRADTRANS API
Photutils is a Python package for detecting and performing photometry of astronomical sources. It provides tools for source detection, aperture photometry, point spread function (PSF) photometry, and background estimation.
Photutils is designed to be flexible and easy to use, with a range of options for customizing analyses. It integrates well with other scientific libraries, such as Astropy, making it a valuable tool for astronomers.
For more information and to get started with Photutils, visit their official website.
- Installation:
pip install photutils - Source Code: GitHub Repository
- Documentation: Photutils Documentation
- Tutorials: Photutils Tutorials
- API Reference: Photutils API
POSEIDON is a Python package for modeling and analyzing exoplanet atmospheres. It provides tools for generating synthetic spectra, fitting observed spectra, and retrieving atmospheric properties. POSEIDON's main application is modelling and retrieval of 1D, 2D, and 3D exoplanet transmission spectra.
POSEIDON is particularly useful for studying the atmospheres of transiting exoplanets, allowing researchers to infer properties such as temperature, composition, and cloud coverage.
For more information and to get started with POSEIDON, visit their official website.
- Installation:
pip install poseidon - Source Code: GitHub Repository
- Documentation: POSEIDON Documentation
- Tutorials: POSEIDON Tutorials
- API Reference: POSEIDON API
PyCBC is a Python package for gravitational-wave astronomy, developed by the LIGO and Virgo collaborations. It provides tools for analyzing data from gravitational-wave detectors, including functions for signal processing, parameter estimation, and data visualization.
PyCBC is designed to be flexible and scalable, with support for parallel computation and integration with other scientific libraries. It is widely used in the field of gravitational-wave astronomy for detecting and characterizing gravitational-wave signals.
For more information and to get started with PyCBC, visit their official website.
- Installation:
pip install pycbc - Source Code: GitHub Repository
- Documentation: PyCBC Documentation
- Tutorials: PyCBC Examples Library Examples and Interactive Tutorials
- API Reference: PyCBC API
PyNbody is a Python package for analyzing and visualizing N-body simulations. It is designed for working with large-scale cosmological simulations, such as those modeling galaxy formation, dark matter halos, and the large-scale structure of the universe.
PyNbody provides tools for loading, manipulating, and visualizing simulation data, making it easier for researchers to analyze complex astrophysical systems. It also supports integration with other scientific libraries, such as NumPy and Matplotlib.
For more information and to get started with PyNbody, visit their official website.
- Installation:
pip install pynbody - Source Code: GitHub Repository
- Documentation: PyNbody Documentation
- Tutorials: PyNbody Tutorials
- API Reference: PyNbody API
pysynphot is a Python package for synthetic photometry, designed to simulate photometric observations. It is part of the Space Telescope Science Data Analysis System (STSDAS) and provides tools for creating synthetic spectra, calculating photometric magnitudes, and performing other photometric analyses.
pysynphot is particularly useful for simulating observations with the Hubble Space Telescope (HST) and other space-based observatories. It allows users to model the effects of different filters, detectors, and observing conditions on the observed photometry.
For more information and to get started with pysynphot, visit their official website.
- Installation:
pip install pysynphot - Source Code: GitHub Repository
- Documentation: pysynphot Documentation
- Tutorials: pysynphot Tutorials
- API Reference: pysynphot API
RADMC-3D is a versatile radiative transfer code for astrophysical applications. It is designed to simulate the propagation of radiation through dusty and gaseous media, making it useful for studying a wide range of astrophysical environments, such as protoplanetary disks, molecular clouds, and circumstellar envelopes.
RADMC-3D supports various types of radiative transfer calculations, including continuum and line transfer, and can handle complex geometries and physical conditions. It is highly configurable, allowing users to customize their simulations to match specific scientific needs.
It runs on linux and OS X.
For more information and to get started with RADMC-3D, visit their official website.
- Installation: Install RADMC-3D
- Source Code: GitHub Repository
- Python Module Package: RADMC-3D module package
- API Reference: RADMC-3D API
REBOUND is a powerful N-body simulation package for gravitational dynamics, written primarily in C with a Python interface. It is widely used for simulating planetary systems, exoplanets, and other gravitational interactions. REBOUND is designed to be fast, flexible, and easy to use, making it a popular choice for researchers studying the dynamics of celestial bodies.
REBOUND supports a variety of integrators, including the IAS15 integrator for high-precision simulations and the WHFast integrator for fast, symplectic integrations. It also includes tools for visualizing simulations and analyzing the results.
For more information and to get started with REBOUND, visit their official website.
- Installation (Python):
pip install rebound - Installation (C): Follow the instructions in the REBOUND Documentation.
- Source Code: GitHub Repository
- Documentation: REBOUND Documentation
- Tutorials: REBOUND Examples
- API Reference: REBOUND API
SPARCL (SPectra Analysis and Retrievable Catalog Lab) Client is a Python package for retrieving and analyzing spectral data from the SPARCL server. It provides an easy-to-use interface for searching astronomical spectral data, retrieving records, and handling spectral analysis.
Documentation: SPARCL Documentation
- Search for spectral records using constraints such as spectral type and redshift.
- Retrieve spectral data including flux, wavelength, and model information.
- Handle custom exceptions for efficient error management.
- Supports flexible queries with output field selection.
To install sparcl, use:
pip install sparclfrom sparcl.client import SparclClient
# Create an instance of the client
client = SparclClient()# Define search constraints (Example: Find galaxies with redshift between 0.5 and 0.9)
constraints = {'spectype': ['GALAXY'], 'redshift': [0.5, 0.9]}
# Search the SPARCL database
found = client.find(outfields=['id', 'ra', 'dec'], constraints=constraints)
# Print the retrieved records
for record in found.records:
print(record)# Extract record IDs from the search results
ids = [record['id'] for record in found.records]
# Retrieve spectral data
retrieved = client.retrieve(uuid_list=ids, include=['flux', 'wavelength', 'model'])
# Process the retrieved spectral data
for spectrum in retrieved.records:
flux = spectrum['flux']
wavelength = spectrum['wavelength']
print(f"Wavelength: {wavelength}, Flux: {flux}")Spectral-cube is a Python package for reading, writing, and analyzing spectral data cubes, which are commonly used in radio and millimeter astronomy. It provides tools for manipulating and visualizing spectral cubes, including functions for spectral extraction, moment calculation, and masking.
Spectral-cube is designed to be efficient and easy to use, with support for large datasets and integration with other scientific libraries, such as Astropy and Dask.
For more information and to get started with Spectral-cube, visit their official website.
- Installation:
pip install spectral-cube - Source Code: GitHub Repository
- Documentation: Spectral-cube Documentation
- Examples: Spectral-cube Examples
- API Reference: Spectral-cube API
spiderman is an open-source Python package designed to model phase curves and secondary eclipses of exoplanets. It provides tools for simulating the thermal emission and reflected light from exoplanets as they orbit their host stars, allowing researchers to study the atmospheric properties and dynamics of these distant worlds.
spiderman is particularly useful for analyzing data from space-based telescopes, such as the James Webb Space Telescope (JWST) and the Hubble Space Telescope (HST), as well as ground-based observatories.
For more information and to get started with spiderman, visit their official website.
- Installation:
pip install spiderman-package - Source Code: GitHub Repository
- Tutorials: spiderman Tutorials
Starry is a Python package for fast and accurate computation of light curves and stellar maps. It is designed to model the surface brightness of stars and exoplanets, allowing users to simulate and analyze time-series data from transiting exoplanets, eclipsing binaries, and other variable stars.
Starry leverages spherical harmonics to provide a flexible and efficient framework for modeling complex surface features, such as star spots and planetary albedo variations.
For more information and to get started with Starry, visit their official website.
- Installation:
pip install -U starry - Source Code: GitHub Repository
- Documentation: Starry Documentation
- Tutorials: Starry Tutorials
- API Reference: Starry API
Aladin is an interactive sky atlas for data visualization. It allows users to visualize and analyze astronomical images and catalogs. Aladin supports a wide range of data formats and provides tools for overlaying and comparing different datasets.
Aladin desktop runs on windows, linux and mac.
For more information and to get started with Aladin, visit their official website.
- Installation: Download Aladin
- Documentation: Aladin Documentation
- Tutorials: Aladin Tutorials
Aperture Photometry Tool (APT) is a software for astronomical research, as well as for learning, visualizing and refining aperture-photometry analyses. It provides tools for measuring the brightness of stars and other point sources in images, with options for background subtraction and error estimation.
APT is designed to be user-friendly and flexible, with a graphical interface that allows users to interactively define apertures and analyze photometric data. It supports a wide range of image formats and includes features for batch processing and data visualization.
For more information and to get started with APT, visit their official website.
- Installation: Download APT
- Documentation: APT feature/function Documentation
- Tutorials: APT Tutorials
AstroImageJ is an astronomical image processing software based on ImageJ. It provides tools for analyzing astronomical images, including photometry, astrometry, and image calibration.
For more information and to get started with AstroImageJ, visit their official website.
- Installation: Download AstroImageJ
- Documentation: AstroImageJ Documentation
- Tutorials: AstroImageJ Tutorials
CASA (Common Astronomy Software Applications) is a software suite for the calibration and analysis of radio astronomical data. It is widely used for processing data from radio telescopes, such as the Atacama Large Millimeter/submillimeter Array (ALMA) and the Very Large Array (VLA).
CASA provides a range of tools for data calibration, imaging, and analysis, including functions for flagging, calibration, imaging, and visualization. It is designed to be flexible and user-friendly, with a Python-based interface that allows for scripting and automation.
For more information and to get started with CASA, visit their official website.
- Installation: Install CASA
- Source Code: GitHub Repository
- Documentation: CASA Documentation
- Tutorials: CASA Tutorials
- API Reference: CASA API
CosmoMC is a Markov Chain Monte Carlo (MCMC) engine for exploring cosmological parameter space. It is widely used in the field of cosmology for analyzing data from cosmic microwave background (CMB) experiments, large-scale structure surveys, and other cosmological observations.
CosmoMC provides tools for performing Bayesian inference on cosmological models, allowing users to estimate parameters and their uncertainties. It is highly configurable, with support for various cosmological models and data sets.
For more information and to get started with CosmoMC, visit their official website.
- Installation: Install CosmoMC
- Source Code: GitHub Repository
- Documentation: CosmoMC Documentation
An exoplanet transit and radial velocity fitting software package in IDL. EXOFASTv2 is a software package for modeling and characterizing exoplanetary systems. It provides tools for fitting transit and radial velocity data, allowing users to derive precise parameters for exoplanets and their host stars.
For more information and to get started with EXOFASTv2, visit their Github.
- Installation: Install EXOFASTv2
- Source Code: GitHub Repository
- Tutorials: EXOFASTv2 Tutorials
JS9 is a web-based astronomical image display tool that allows users to visualize and analyze FITS images directly in their web browser. It provides a range of features for image manipulation, including zooming, panning, color mapping, and region selection.
JS9 is designed to be lightweight and easy to use, making it a convenient tool for quick image analysis and visualization. It can be integrated into web applications and supports various data formats.
For more information and to get started with JS9, visit their official website.
JS9-4L is a web-based lightweight version of JS9 designed for use on low-power devices, such as laptops and tablets. It provides many of the same features as JS9, including image visualization and analysis, but is optimized for performance on less powerful hardware.
JS9-4L is ideal for fieldwork and educational purposes, where portability and ease of use are important. It supports various data formats and can be integrated into web applications for remote access.
For more information and to get started with JS9-4L, visit their official website.
SAOImageDS9 is a tool for visualizing astronomical imaging data. It supports a wide range of data formats and provides tools for image analysis, including region selection, filtering, and color mapping.
For more information and to get started with SAOImageDS9, visit their official website.
- Installation: Install SAOImageDS9
- Documentation: SAOImageDS9 Documentation
- Tutorials: SAOImageDS9 Tutorials
TOPCAT is software for catalog manipulation and visualization. It provides tools for exploring and analyzing large astronomical catalogs, including functions for plotting, filtering, and cross-matching data.
For more information and to get started with TOPCAT, visit their official website.
- Installation: Install TOPCAT
- Documentation: TOPCAT Documentation
- Tutorials: TOPCAT Tutorials
SExtractor (Source Extractor) is a tool for source extraction from astronomical images. It provides tools for detecting and measuring the properties of sources in images, including photometry and astrometry.
For more information and to get started with SExtractor, visit their official website.
- Installation: Install SExtractor
- Documentation: SExtractor Documentation
- Github:[Github Sources](write for github:https://github.com/astromatic/sextractor)
- Tutorials: SExtractor Tutorials
Feel free to submit issues or pull requests for additional tools or updates.
MIT License

























