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.
Domain
Solar System
EphemerisSources.jl
💻 Repository | 📘 Documentation
Meta package for accessing JPL HORIZONS and SPICE sources
- Calculate positions and velocities of solar system bodies
PerezHz/HORIZONS.jl
💻 Repository | 📘 Documentation
An interface to NASA-JPL HORIZONS system and other Solar System Dynamics APIs in Julia
- Calculate positions and velocities of solar system bodies
JuliaSpace/SatelliteToolbox.jl
💻 Repository | 📘 Documentation
Perform analysis and build simulations related to satellites
- Atmospheric, gravitational, and geomagnetic field models
- Orbit propagators
See also:
SPICE.jl
💻 Repository | 📘 Documentation
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
JuliaHCI/ADI.jl
💻 Repository | 📘 Documentation
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.
JuliaHCI/HCIToolbox.jl
💻 Repository | 📘 Documentation
Common utilities for high-contrast imaging (HCI) processing
- Morphological operations (rotation, stacking, shifting)
- Masking routines (circles, annulus, series of annuli)
- Spectral scaling and descaling
sefffal/PlanetOrbits.jl
💻 Repository | 📘 Documentation
Tools for displaying and solving Keplerian orbits in the context of direct imaging
Transits.jl
💻 Repository | 📘 Documentation
Flexible photometric transit curves with limb darkening
- Inspired by exoplanet
- Includes Keplerian orbits and generic orbits
- Fully compatible with Unitful.jl
Stars
cgarling/BolometricCorrections.jl
💻 Repository | 📘 Documentation
Interfaces to libraries of astrophysical bolometric correction
- Access to and interpolation of pre-computed grids of bolometric corrections
cgarling/InitialMassFunctions.jl
💻 Repository | 📘 Documentation
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
cgarling/StarFormationHistories.jl
💻 Repository | 📘 Documentation
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
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
Dust extinction laws and maps
- Various empirical extinction models
- SFD (1998) galactic dust map
- Fully compatible with Unitful.jl
EHTJulia/ScatteringOptics.jl
💻 Repository | 📘 Documentation
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
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
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
Aperture photometry
- Background estimation and source extraction
- Fast and precise aperture photometry
PSFModels.jl
💻 Repository | 📘 Documentation
Analytical, allocation-free point-spread-functions (PSF)
- Lazy representation allows fast allocation-free calculations
- Gaussian (Normal), Moffat, and Airy disk.
SAOImageDS9.jl
💻 Repository | 📘 Documentation
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
andget
Astrometry
barrettp/Astrometry.jl
💻 Repository | 📘 Documentation
Set of IAU standard algorithms for calculating the time and position of celestial objects
- More information can be found on the official website of the Standards of Fundamental Astronomy.
AstroTime.jl
💻 Repository | 📘 Documentation
Astronomical time keeping
- High-precision, time-scale aware, DateTime-like data type
- Support all commonly used astronomical time scales
EarthOrientation.jl
💻 Repository | 📘 Documentation
Earth orientation parameters
- Calculate Earth orientation parameters from IERS tables
ERFA.jl
💻 Repository | 📘 Documentation
Time systems conversions
- Low-level wrapper for liberfa
ziotom78/Healpix.jl
💻 Repository | 📘 Documentation
Implementation of Healpix spherical tesselation scheme in pure Julia
- pixel functions, query functions, map functions
- power spectrum support
- plotting support
Reproject.jl
💻 Repository | 📘 Documentation
Astronomical image reprojection
SkyCoords.jl
💻 Repository | 📘 Documentation
Astronomical coordinate systems
- Supports ICRS, galactic, and FK5 coordinate systems
- Fast conversion of coordinates between different systems
WCS.jl
💻 Repository | 📘 Documentation
World Coordinate System transformations
- Wrapper for wcslib
Spectroscopy
ajwheeler/Korg.jl
💻 Repository | 📘 Documentation
Theoretical stellar spectra from 1D model atmospheres and linelists, assuming LTE
Spectra.jl
💻 Repository | 📘 Documentation
Utilities for interfacing with astronomical spectra and synthetic spectra libraries
- Utilities for interfacing with astronomical spectra and synthetic spectra libraries
fjebaker/SpectralFitting.jl
💻 Repository | 📘 Documentation
✨🛰 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
JuliaDSP/DSP.jl
💻 Repository | 📘 Documentation
Filter design, periodograms, window functions, and other digital signal processing functionality
- DSP.jl provides a number of common digital signal processing routines in Julia
LombScargle.jl
💻 Repository | 📘 Documentation
Compute Lomb-Scargle periodogram
- Create periodograms from unevenly sampled periodic signals
- Supports multi-threading
JuliaStats/TimeSeries.jl
💻 Repository | 📘 Documentation
Time series toolkit for Julia
- TimeSeries aims to provide a lightweight framework for working with time series data in Julia
Interferometry
ptiede/Comrade.jl
💻 Repository | 📘 Documentation
Composable Modeling of Radio Emission
- A Bayesian differentiable modular modeling package for very long baseline interferometry
JuliaAPlavin/Difmap.jl
💻 Repository | 📘 Documentation
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
emmt/OIFITS.jl
💻 Repository | 📘 Documentation
Support for OI-FITS
- Read and write OI-FITS optical interferometry data format
fabienbaron/OITOOLS.jl
💻 Repository | 📘 Documentation
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
EHTJulia/PolarizedTypes.jl
💻 Repository | 📘 Documentation
Basic Polarized types for interferometry
- This defines the basic for polarized types for use in VLBI, including
StokesParams
for the stokes parametersCoherencyMatrix
for coherency matrices in arbitrary bases, including a mixed basis
JuliaAPlavin/VLBIData.jl
💻 Repository | 📘 Documentation
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
EHTJulia/VLBISkyModels.jl
💻 Repository | 📘 Documentation
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
JuliaPhysics/Measurements.jl
💻 Repository | 📘 Documentation
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
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
JuliaAPlavin/Uncertain.jl
💻 Repository | 📘 Documentation
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
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-dev/JuMP.jl
💻 Repository | 📘 Documentation
Modeling language for Mathematical Optimization (linear, mixed-integer, conic, semidefinite, nonlinear)
- JuMP is a domain-specific modeling language for mathematical optimization embedded in Julia
SciML/NonlinearSolve.jl
💻 Repository | 📘 Documentation
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
SciML/Optimization.jl
💻 Repository | 📘 Documentation
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
Collection of generic astronomical and astrophysical functions
- Translation of many IDL AstroLib procedures
mileslucas/BiweightStats.jl
💻 Repository | 📘 Documentation
Robust statistics based on the biweight transform
- Implements the location, scale, midvariance, midcovariance, and midcorrelation statistics
jeff-regier/Celeste.jl
💻 Repository | 📘 Documentation
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
Statistics and Machine Learning made easy in Julia
- Easy to use tools for statistics and machine learning
JuliaStats/Distributions.jl
💻 Repository | 📘 Documentation
A Julia package for probability distributions and associated functions
- A Julia package for probability distributions and associated functions
EHTJulia/FastHartleyTransform.jl
💻 Repository | 📘 Documentation
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
sefffal/Octofitter.jl
💻 Repository | 📘 Documentation
Octofitter is a Julia package for performing Bayesian inference against a wide variety of exoplanet and binary star data
- You can also use Octofitter from Python using octofitterpy
Utilities
Data I/O
eschnett/ASDF2.jl
💻 Repository | 📘 Documentation
ASDF, the Advanced Scientific Data Format
- A new Advanced Scientific Data Format (ASDF) package, written in Julia
AstroImages.jl
💻 Repository | 📘 Documentation
Load, manipulate, and visualize astronomical images
- Works with the FileIO.jl interface
CFITSIO.jl
💻 Repository | 📘 Documentation
Reading and writing FITS files
- Low-level wrapper for cfitsio
- The c interface can be directly accessed with the CFITSIO_jll package
emmt/EasyFITS.jl
💻 Repository | 📘 Documentation
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.
barrettp/FITSFiles.jl
💻 Repository | 📘 Documentation
A Julia Flexible Image Transport System (FITS) file IO package
- A Julia Flexible Image Transport System (FITS) file IO package
FITSIO.jl
💻 Repository | 📘 Documentation
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
Read fixed width (so-called ASCII) tables
- Read fixed width (so-called ASCII) tables. A wide range of format specification options, including autodetection
JuliaAPlavin/SkyImages.jl
💻 Repository | 📘 Documentation
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
JuliaAPlavin/VirtualObservatory.jl
💻 Repository | 📘 Documentation
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
JuliaAPlavin/VOTables.jl
💻 Repository | 📘 Documentation
Read and write VOTable files
- Text and binary VOTables support
- Read Unitful numbers and column metadata
Data processing
torrance/Casacore.jl
💻 Repository | 📘 Documentation
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
JuliaData/DataFrames.jl
💻 Repository | 📘 Documentation
In-memory tabular data in Julia
- Tools for working with tabular data in Julia
rafaqz/DimensionalData.jl
💻 Repository | 📘 Documentation
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
JuliaAPlavin/FlexiJoins.jl
💻 Repository | 📘 Documentation
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
gcalderone/SortMerge.jl
💻 Repository | 📘 Documentation
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
Load, manipulate, and visualize astronomical images
- Works with the FileIO.jl interface
JuliaImages/ImageFiltering.jl
💻 Repository | 📘 Documentation
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
ManuelBehrendt/Mera.jl
💻 Repository | 📘 Documentation
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
sefffal/PairPlots.jl
💻 Repository | 📘 Documentation
Beautiful and flexible visualizations of high dimensional data
- Corner plots or scatter plot matrices. Both Julia and Python are supported (PairPlots.jl and pairplots.py)
- Inspired by corner.py and chainconsumer.py
See also:
JuliaAPlavin/SkyImages.jl
💻 Repository | 📘 Documentation
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
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
SymbolicML/DynamicQuantities.jl
💻 Repository | 📘 Documentation
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
JuliaPhysics/PhysicalConstants.jl
💻 Repository | 📘 Documentation
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 ofAbstractQuantity
(fromUnitful.jl
package) and can also be turned intoMeasurement
objects (fromMeasurements.jl
package) at request
PainterQubits/Unitful.jl
💻 Repository | 📘 Documentation
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
Astronomical units and things
- Extension of Unitful.jl