Package Ecosystem

The joy of our community is the many astronomy and astrophysics packages available for wide use. Packages are separated by functionality and Julia's declarative package manager takes care of resolving dependencies. You get just the functionality you need, and smaller packages lead to more rapid development. This page serves as the index of packages available in the dropdown navigation menus above.


Domain

Solar System

CALCEPH.jl

💻 Repository | 📘 Documentation | JuliaAstro

A wrapper to CALCEPH: IMCCE planetary ephemeris access library

  • This is a julia wrapper for CALCEPH a C library for reading planetary ephemeris files, such as INPOPxx, JPL DExxx and SPICE ephemeris files
  • CALCEPH C library is developped by IMCCE

EphemerisSources.jl

💻 Repository | 📘 Documentation | JuliaAstro

Meta package for accessing JPL HORIZONS and SPICE sources

  • Calculate positions and velocities of solar system bodies

GeneralAstrodynamics.jl

💻 Repository | 📘 Documentation | JuliaAstro

Astrodynamics with units! Provides common astrodynamics calculations, plotting, and iterative Halo, Kepler, and Lambert solvers.

  • Common astrodynamics calculations, with hooks into the SciML ecosystem.

HORIZONS.jl

💻 Repository | 📘 Documentation | PerezHz

An interface to NASA-JPL HORIZONS system and other Solar System Dynamics APIs in Julia

  • Calculate positions and velocities of solar system bodies

SatelliteToolbox.jl

💻 Repository | 📘 Documentation | JuliaSpace

Perform analysis and build simulations related to satellites

  • Atmospheric, gravitational, and geomagnetic field models
  • Orbit propagators

See also:

SPICE.jl

💻 Repository | 📘 Documentation | JuliaAstro

SPICE data retrieval and usage

  • Wrapper for CSPICE
  • Read SPICE data files and compute derived observation geometry such as altitude, latitude/longitude and lighting angles

Exoplanets

ADI.jl

💻 Repository | 📘 Documentation | JuliaHCI

Angular Differential Imaging (ADI) routines in Julia

  • PCA, NMF, LLSG, LOCI, etc.
  • Apply algorithms framewise or in spectral differential imaging (SDI) using Julia's multiple dispatch
  • Provide an interface for using these algorithms in other tools
  • Common HCI metrics including S/N maps, contrast curves, throughput curves (from PSF injection), STIM, etc.

HCIToolbox.jl

💻 Repository | 📘 Documentation | JuliaHCI

Common utilities for high-contrast imaging (HCI) processing

  • Morphological operations (rotation, stacking, shifting)
  • Masking routines (circles, annulus, series of annuli)
  • Spectral scaling and descaling

Orbits.jl

💻 Repository | 📘 Documentation | JuliaAstro

Flexible and fast astronomical orbits

The goals of this package are, in this order:

  • have a simple interface with high composability
  • be flexible with respect to numeric types and application
  • be fully compatible with ChainRules.jl automatic differentiation (AD) system to leverage the derived analytical gradients
  • provide a codebase that is well-organized, instructive, and easy to extend
  • maintain high performance: at least as fast as similar tools

PlanetOrbits.jl

💻 Repository | 📘 Documentation | sefffal

Tools for displaying and solving Keplerian orbits in the context of direct imaging

Transits.jl

💻 Repository | 📘 Documentation | JuliaAstro

Flexible photometric transit curves with limb darkening

  • Inspired by exoplanet
  • Includes Keplerian orbits and generic orbits
  • Fully compatible with Unitful.jl

Stars

BolometricCorrections.jl

💻 Repository | 📘 Documentation | cgarling

Interfaces to libraries of astrophysical bolometric correction

  • Access to and interpolation of pre-computed grids of bolometric corrections

InitialMassFunctions.jl

💻 Repository | 📘 Documentation | cgarling

Evaluation of and sampling from stellar initial mass functions

  • Provides a framework to evaluate and sample from stellar initial mass functions, including common literature models

StarFormationHistories.jl

💻 Repository | 📘 Documentation | cgarling

Fitting astrophysical star formation histories via CMD modeling

  • Implements methods for modeling observed Hess diagrams (i.e., binned color-magnitude diagrams) and using them to fit astrophysical star formation histories (SFHs)
  • Provides utilities for simulating CMDs given input SFHs and photometric error and completeness functions, which can be useful for planning observations and writing proposals

Galaxies and Cosmology

Cosmology.jl

💻 Repository | 📘 Documentation | JuliaAstro

Distances in the universe

  • $\Lambda$-CDM and $w_0$-$w_a$ cosmologies
  • Open, closed, and flat variants
  • Fully compatible with Unitful.jl

DustExtinction.jl

💻 Repository | 📘 Documentation | JuliaAstro

Dust extinction laws and maps

  • Various empirical extinction models
  • SFD (1998) galactic dust map
  • Fully compatible with Unitful.jl

ScatteringOptics.jl

💻 Repository | 📘 Documentation | EHTJulia

A Julia package to simulate and model interstellar scattering in strong regime

  • Analyze interstellar scintillation observed at radio wavelengths
  • Implements physical models for the anisotropic scattering of radio waves
  • Modeling, analyze, and interpret the images of the Galactic Center's supermassive black hole, Sagittarius A*, especially with the Event Horizon Telescope

Techniques

Photometry

CCDReduction.jl

💻 Repository | 📘 Documentation | JuliaAstro

Common CCD image processing routines

  • Creation of calibration files
  • Dark subtraction, flat normalization, bias subtraction, cropping
  • Specialized iterator for processing directories of FITS files using a table built from the FITS headers.

LACosmic.jl

💻 Repository | 📘 Documentation | JuliaAstro

Cosmic-ray rejection by Laplacian edge detection

  • Implementation of the L.A.Cosmic algorithm (van Dokkum, 2001)
  • Returns bad pixel masks and cleaned data

Photometry.jl

💻 Repository | 📘 Documentation | JuliaAstro

Aperture photometry

  • Background estimation and source extraction
  • Fast and precise aperture photometry

PSFModels.jl

💻 Repository | 📘 Documentation | JuliaAstro

Analytical, allocation-free point-spread-functions (PSF)

  • Lazy representation allows fast allocation-free calculations
  • Gaussian (Normal), Moffat, and Airy disk.

SAOImageDS9.jl

💻 Repository | 📘 Documentation | JuliaAstro

Interface with the DS9 image viewer

  • Uses XPA.jl to communicate with DS9 instances
  • Easily display images in DS9 and add features like circles and lines
  • Low-level API accessible with set and get

Astrometry

Astrometry.jl

💻 Repository | 📘 Documentation | barrettp

Set of IAU standard algorithms for calculating the time and position of celestial objects

AstroTime.jl

💻 Repository | 📘 Documentation | JuliaAstro

Astronomical time keeping

  • High-precision, time-scale aware, DateTime-like data type
  • Support all commonly used astronomical time scales

EarthOrientation.jl

💻 Repository | 📘 Documentation | JuliaAstro

Earth orientation parameters

  • Calculate Earth orientation parameters from IERS tables

ERFA.jl

💻 Repository | 📘 Documentation | JuliaAstro

Time systems conversions

Healpix.jl

💻 Repository | 📘 Documentation | ziotom78

Implementation of Healpix spherical tesselation scheme in pure Julia

  • pixel functions, query functions, map functions
  • power spectrum support
  • plotting support

Reproject.jl

💻 Repository | 📘 Documentation | JuliaAstro

Astronomical image reprojection

  • Uses FITSIO.jl and WCS.jl to reproject coordinate systems between FITS images

SkyCoords.jl

💻 Repository | 📘 Documentation | JuliaAstro

Astronomical coordinate systems

  • Supports ICRS, galactic, and FK5 coordinate systems
  • Fast conversion of coordinates between different systems

WCS.jl

💻 Repository | 📘 Documentation | JuliaAstro

World Coordinate System transformations


Spectroscopy

Korg.jl

💻 Repository | 📘 Documentation | ajwheeler

Theoretical stellar spectra from 1D model atmospheres and linelists, assuming LTE

Spectra.jl

💻 Repository | 📘 Documentation | JuliaAstro

Utilities for interfacing with astronomical spectra and synthetic spectra libraries

  • Utilities for interfacing with astronomical spectra and synthetic spectra libraries

SpectralFitting.jl

💻 Repository | 📘 Documentation | fjebaker

✨🛰 Fast and flexible spectral fitting in Julia

  • Spectral fitting routines and models with a focus on X-ray astronomy
  • This project is an attempt to modernise the field with new advancements in computational methods and statistical methods
  • SpectralFitting.jl aims to be extensible and reproducible, such that fits may be easily tailored to novel and specific problems, and easily verified by others

Time Series Analysis

DSP.jl

💻 Repository | 📘 Documentation | JuliaDSP

Filter design, periodograms, window functions, and other digital signal processing functionality

LombScargle.jl

💻 Repository | 📘 Documentation | JuliaAstro

Compute Lomb-Scargle periodogram

  • Create periodograms from unevenly sampled periodic signals
  • Supports multi-threading

TimeSeries.jl

💻 Repository | 📘 Documentation | JuliaStats

Time series toolkit for Julia

  • TimeSeries aims to provide a lightweight framework for working with time series data in Julia

Interferometry

Comrade.jl

💻 Repository | 📘 Documentation | ptiede

Composable Modeling of Radio Emission

  • A Bayesian differentiable modular modeling package for very long baseline interferometry

Difmap.jl

💻 Repository | 📘 Documentation | JuliaAPlavin

Wrapper for the Difmap program used in synthesis imaging

  • Execute Difmap scripts, handle inputs/outputs and logs
  • Display images and plots from Difmap in interactive Julia environments

OIFITS.jl

💻 Repository | 📘 Documentation | emmt

Support for OI-FITS

  • Read and write OI-FITS optical interferometry data format

OITOOLS.jl

💻 Repository | 📘 Documentation | fabienbaron

A collection of tools to load, visualize, model-fit and image optical interferometry data coming from CHARA, NPOI and VLTI

  • OITOOLS is a Julia package to read, plot, model-fit and image optical interferometric data coming from astronomical arrays such as CHARA, VLTI, and NPOI
  • Note that despite having the same name as JMMC's oitools, they are completely unrelated and were developed independently

PolarizedTypes.jl

💻 Repository | 📘 Documentation | EHTJulia

Basic Polarized types for interferometry

  • This defines the basic for polarized types for use in VLBI, including
    • StokesParams for the stokes parameters
    • CoherencyMatrix for coherency matrices in arbitrary bases, including a mixed basis

VLBIData.jl

💻 Repository | 📘 Documentation | JuliaAPlavin

Work with data formats common in very long baseline interferometry (VLBI)

  • Read interferometric visibilities (uvfits), images (fits), and source models
  • Minimal writing support for source models

VLBISkyModels.jl

💻 Repository | 📘 Documentation | EHTJulia

Just the Comrade Models

  • VLBISkyModels provides an interface and library for of models that can be used to describe the on-sky emission seen by VLBI interferometers

Statistics

Uncertainty

Measurements.jl

💻 Repository | 📘 Documentation | JuliaPhysics

Error propagation calculator and library for physical measurements. It supports real and complex numbers with uncertainty, arbitrary precision calculations, operations with arrays, and numerical integration

  • Measurements.jl relieves you from the hassle of propagating uncertainties coming from physical measurements, when performing mathematical operations involving them
  • The linear error propagation theory is employed to propagate the errors

MonteCarloMeasurements.jl

💻 Repository | 📘 Documentation | baggepinnen

Propagation of distributions by Monte-Carlo sampling: Real number types with uncertainty represented by samples

  • This package facilitates working with probability distributions by means of Monte-Carlo methods, in a way that allows for propagation of probability distributions through functions

Uncertain.jl

💻 Repository | 📘 Documentation | JuliaAPlavin

Handle uncertain values with ease and performance!

  • The ultimate goal of Uncertain.jl is to support arbitrary uncertainty specifications – asymmetric errors, intervals, more complex distributions, and go beyond plain numbers. All within a single uniform interface

Optimization

BoxLeastSquares.jl

💻 Repository | 📘 Documentation | JuliaAstro

Compute box-least-squares periodogram

  • Fit BLS periodograms to time-series data
  • Extract best-fitting transit parameters from the BLS periodogram
  • Fully compatible with Unitful.jl

JuMP.jl

💻 Repository | 📘 Documentation | jump-dev

Modeling language for Mathematical Optimization (linear, mixed-integer, conic, semidefinite, nonlinear)

NonlinearSolve.jl

💻 Repository | 📘 Documentation | SciML

High-performance and differentiation-enabled nonlinear solvers (Newton methods), bracketed rootfinding (bisection, Falsi), with sparsity and Newton-Krylov support

  • Fast implementations of root finding algorithms in Julia that satisfy the SciML common interface

Optimization.jl

💻 Repository | 📘 Documentation | SciML

Mathematical Optimization in Julia. Local, global, gradient-based and derivative-free. Linear, Quadratic, Convex, Mixed-Integer, and Nonlinear Optimization in one simple, fast, and differentiable interface

  • Optimization.jl seeks to bring together all of the optimization packages it can find, local and global, into one unified Julia interface
  • This means, you learn one package and you learn them all!

General

AstroLib.jl

💻 Repository | 📘 Documentation | JuliaAstro

Collection of generic astronomical and astrophysical functions

  • Translation of many IDL AstroLib procedures

BiweightStats.jl

💻 Repository | 📘 Documentation | mileslucas

Robust statistics based on the biweight transform

  • Implements the location, scale, midvariance, midcovariance, and midcorrelation statistics

Celeste.jl

💻 Repository | 📘 Documentation | jeff-regier

Scalable inference for a generative model of astronomical images

  • Find and characterize stars and galaxies in astronomical images via approximate Bayesian inference

JuliaStats

💻 Repository | 📘 Documentation | JuliaStats

Statistics and Machine Learning made easy in Julia

  • Easy to use tools for statistics and machine learning

Distributions.jl

💻 Repository | 📘 Documentation | JuliaStats

A Julia package for probability distributions and associated functions

  • A Julia package for probability distributions and associated functions

FastHartleyTransform.jl

💻 Repository | 📘 Documentation | EHTJulia

A Julia implementation of the Fast Hartley Transform (FHT)

  • This package provides a Julia implementation of the Fast Hartley Transform (FHT)
  • It supports both CPUs and NVIDIA CUDA GPUs

Octofitter.jl

💻 Repository | 📘 Documentation | sefffal

Octofitter is a Julia package for performing Bayesian inference against a wide variety of exoplanet and binary star data


Utilities

Data I/O

ASDF2.jl

💻 Repository | 📘 Documentation | JuliaAstro

ASDF, the Advanced Scientific Data Format

AstroImages.jl

💻 Repository | 📘 Documentation | JuliaAstro

Load, manipulate, and visualize astronomical images

CFITSIO.jl

💻 Repository | 📘 Documentation | JuliaAstro

Reading and writing FITS files

EasyFITS.jl

💻 Repository | 📘 Documentation | emmt

Using FITS files made easier for Julia

  • EasyFITS is a Julia package designed to make it easier to read and write data in FITS format without sacrificing performances, flexibility, or readability.

FITSFiles.jl

💻 Repository | 📘 Documentation | barrettp

A Julia Flexible Image Transport System (FITS) file IO package

  • A Julia Flexible Image Transport System (FITS) file IO package

FITSIO.jl

💻 Repository | 📘 Documentation | JuliaAstro

Reading and writing FITS files

  • Interact with header data units (HDUs), FITS headers, and FITS data: both images and tables
  • FITS tables follow the Tables.jl interface, allowing seamless integration with the rich data ecosystem, like CSV.jl, DataFrames.jl, etc.

FixedWidthTables.jl

💻 Repository | 📘 Documentation | JuliaAPlavin

Read fixed width (so-called ASCII) tables

  • Read fixed width (so-called ASCII) tables. A wide range of format specification options, including autodetection

SkyImages.jl

💻 Repository | 📘 Documentation | JuliaAPlavin

Load astronomical images of the sky and process them with convenient, general, and composable functions.

  • FITS WCS and Healpix images
  • Uniform interface and Makie plotting
  • Use original data as-is or project onto a rectangular grid

VirtualObservatory.jl

💻 Repository | 📘 Documentation | JuliaAPlavin

Access remote data and services that follow VO protocols

  • Access remote data and services that follow Virtual Observatory (VO, https://www.ivoa.net/) protocols
  • Currently supports the Table Access Protocol (TAP), and a few key features specific to the VizieR database

VOTables.jl

💻 Repository | 📘 Documentation | JuliaAPlavin

Read and write VOTable files

  • Text and binary VOTables support
  • Read Unitful numbers and column metadata

XPA.jl

💻 Repository | 📘 Documentation | JuliaAstro

A Julia interface to the XPA Messaging System

  • Seamless communication between many kinds of Unix/Windows programs, including X programs and Tcl/Tk programs
  • Used for some popular astronomical tools such as SAOImage-DS9

Data processing

Astroalign.jl

💻 Repository | 📘 Documentation | JuliaAstro

An experimental reimplementation of astroalign.py

  • An experimental reimplementation of astroalign in Julia

Casacore.jl

💻 Repository | 📘 Documentation | torrance

A high level Julia interface to Casacore

  • Wrapper for CasaCore
  • Uses casacorecxx which uses CxxWrap to wrap the C++ Casacore codebase. These raw objects and methods are available in Casacore.LibCasacore

DataFrames.jl

💻 Repository | 📘 Documentation | JuliaData

In-memory tabular data in Julia

  • Tools for working with tabular data in Julia

DimensionalData.jl

💻 Repository | 📘 Documentation | rafaqz

Named dimensions and indexing for julia arrays and other data

  • DimensionalData.jl provides tools and abstractions for working with datasets that have named dimensions, and optionally a lookup index
  • It provides no-cost abstractions for named indexing, and fast index lookups

FlexiJoins.jl

💻 Repository | 📘 Documentation | JuliaAPlavin

FlexiJoins.jl is a fresh take on joining tabular or non-tabular datasets in Julia.

  • From simple joins by key, to asof joins, to merging catalogs of terrestrial or celestial coordinates – FlexiJoins supports any usecase

SortMerge.jl

💻 Repository | 📘 Documentation | gcalderone

A Julia implementation of the Sort-merge join algorithm

  • The Sort-merge join algorithm allows to quickly find the matching pairs in two separate arrays or collections
  • The best performances are obtained when the input data are already sorted, but the package is able to sort the data if they are not

Data Viz

AstroImages.jl

💻 Repository | 📘 Documentation | JuliaAstro

Load, manipulate, and visualize astronomical images

ImageFiltering.jl

💻 Repository | 📘 Documentation | JuliaImages

ulia implementations of multidimensional array convolution and nonlinear stencil operations

  • ImageFiltering implements blurring, sharpening, gradient computation, and other linear filtering operations, as well nonlinear filters like min/max

Mera.jl

💻 Repository | 📘 Documentation | ManuelBehrendt

Working with large hydrodynamical simulation data

  • Loading, writing, analysing 3D AMR/uniform-grid and N-body data sets
  • Memory lightweight data processing within a database framework
  • Many predefined functions and examples

PairPlots.jl

💻 Repository | 📘 Documentation | sefffal

Beautiful and flexible visualizations of high dimensional data

See also:

SkyImages.jl

💻 Repository | 📘 Documentation | JuliaAPlavin

Load astronomical images of the sky and process them with convenient, general, and composable functions.

  • FITS WCS and Healpix images
  • Uniform interface and Makie plotting
  • Use original data as-is or project onto a rectangular grid

Units/Constants

AstroAngles.jl

💻 Repository | 📘 Documentation | JuliaAstro

String parsing and representation of angles

  • Parse and represent sexagesimal angles with a variety of delimiters
  • Methods for converting to hour-minute-second angles from degrees and radians, and vice-versa

DynamicQuantities.jl

💻 Repository | 📘 Documentation | SymbolicML

Efficient and type-stable physical quantities in Julia

  • Defines a simple statically-typed Quantity type for Julia
  • Physical dimensions are stored as a value, as opposed to a parametric type, as in Unitful.jl

PhysicalConstants.jl

💻 Repository | 📘 Documentation | JuliaPhysics

Collection of fundamental physical constants with uncertainties

  • PhysicalConstants.jl provides common physical constants
  • They are defined as instances of the new Constant type, which is subtype of AbstractQuantity (from Unitful.jl package) and can also be turned into Measurement objects (from Measurements.jl package) at request

Unitful.jl

💻 Repository | 📘 Documentation | PainterQubits

Physical quantities with arbitrary units

  • Unitful is a Julia package for physical units
  • We want to support not only SI units but also any other unit system

UnitfulAstro.jl

💻 Repository | 📘 Documentation | JuliaAstro

Astronomical units and things