Comparison with Astropy

We highlight some of the major packages in Python's astropy ecosystem and their corresponding implementations in the Julia ecosystem. This is an actively evolving document, and suggested additions are welcomed.

Affiliated/coordinated packages in Julia

While there is a clear demarcation between core, coordinated, and affiliated packages in Python, this is not really the case in Julia. Composability is a core feature of the language, allowing for interactions between packages to occur fairly naturally.

Astropy core packages

Data structures and transformations

PythonJuliaDescription
astropy.constants
DynamicQuantities.jlEfficient and type-stable physical quantities in Julia
PhysicalConstants.jlCollection of fundamental physical constants with uncertainties
Unitful.jlPhysical quantities with arbitrary units
UnitfulAstro.jlAstronomical units and things
astropy.units
DynamicQuantities.jlEfficient and type-stable physical quantities in Julia
PhysicalConstants.jlCollection of fundamental physical constants with uncertainties
Unitful.jlPhysical quantities with arbitrary units
UnitfulAstro.jlAstronomical units and things
astropy.nddata
DimensionalData.jlNamed dimensions and indexing for julia arrays and other data
astropy.table
DataFrames.jlIn-memory tabular data in Julia
FlexiJoins.jl`FlexiJoins.jl` is a fresh take on joining tabular or non-tabular datasets in Julia.
SortMerge.jlA Julia implementation of the Sort-merge join algorithm
astropy.time
AstroTime.jlAstronomical time keeping
astropy.timeseries
DSP.jlFilter design, periodograms, window functions, and other digital signal processing functionality
LombScargle.jlCompute Lomb-Scargle periodogram
TimeSeries.jlTime series toolkit for Julia
BoxLeastSquares.jlCompute box-least-squares periodogram
astropy.coordinates
CALCEPH.jlA wrapper to CALCEPH: IMCCE planetary ephemeris access library
EphemerisSources.jlMeta package for accessing JPL HORIZONS and SPICE sources
HORIZONS.jlAn interface to NASA-JPL HORIZONS system and other Solar System Dynamics APIs in Julia
SPICE.jlSPICE data retrieval and usage
SkyCoords.jlAstronomical coordinate systems
astropy.wcs
WCS.jlWorld Coordinate System transformations
astropy.modeling
JuMP.jlModeling language for Mathematical Optimization (linear, mixed-integer, conic, semidefinite, nonlinear)
NonlinearSolve.jlHigh-performance and differentiation-enabled nonlinear solvers (Newton methods), bracketed rootfinding (bisection, Falsi), with sparsity and Newton-Krylov support
Optimization.jlMathematical 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
astropy.uncertainty
Measurements.jlError propagation calculator and library for physical measurements. It supports real and complex numbers with uncertainty, arbitrary precision calculations, operations with arrays, and numerical integration
MonteCarloMeasurements.jlPropagation of distributions by Monte-Carlo sampling: Real number types with uncertainty represented by samples
Uncertain.jlHandle uncertain values with ease and performance!
Distributions.jlA Julia package for probability distributions and associated functions

Files, I/O, and Communication

PythonJuliaDescription
astropy.io.fits
OIFITS.jlSupport for OI-FITS
AstroImages.jlLoad, manipulate, and visualize astronomical images
CFITSIO.jlReading and writing FITS files
EasyFITS.jlUsing FITS files made easier for Julia
FITSFiles.jlA Julia Flexible Image Transport System (FITS) file IO package
FITSIO.jlReading and writing FITS files
SkyImages.jlLoad astronomical images of the sky and process them with convenient, general, and composable functions.
astropy.io.ascii
FixedWidthTables.jlRead fixed width (so-called ASCII) tables
astropy.io.votable
VLBIData.jlWork with data formats common in very long baseline interferometry (VLBI)
VirtualObservatory.jlAccess remote data and services that follow VO protocols
VOTables.jlRead and write VOTable files

Computations and Utilities

PythonJuliaDescription
astropy.cosmology
Cosmology.jlDistances in the universe
astropy.convolution
DSP.jlFilter design, periodograms, window functions, and other digital signal processing functionality
ImageFiltering.jlulia implementations of multidimensional array convolution and nonlinear stencil operations
astropy.utils.iers
EarthOrientation.jlEarth orientation parameters
astropy.visualization
AstroImages.jlLoad, manipulate, and visualize astronomical images
PairPlots.jlBeautiful and flexible visualizations of high dimensional data
SkyImages.jlLoad astronomical images of the sky and process them with convenient, general, and composable functions.
astropy.stats
BiweightStats.jlRobust statistics based on the biweight transform
JuliaStatsStatistics and Machine Learning made easy in Julia

Astropy coordinated packages

PythonJuliaDescription
asdf-astropy
ASDF2.jlASDF, the Advanced Scientific Data Format
astropy-healpix
Healpix.jlImplementation of Healpix spherical tesselation scheme in pure Julia
astroquery
VirtualObservatory.jlAccess remote data and services that follow VO protocols
ccdproc
CCDReduction.jlCommon CCD image processing routines
photutils
Photometry.jlAperture photometry
regions
Photometry.jlAperture photometry
reproject
Reproject.jlAstronomical image reprojection
specreduce
Korg.jlTheoretical stellar spectra from 1D model atmospheres and linelists, assuming LTE
Spectra.jlUtilities for interfacing with astronomical spectra and synthetic spectra libraries
SpectralFitting.jl✨🛰 Fast and flexible spectral fitting in Julia
specutils
Korg.jlTheoretical stellar spectra from 1D model atmospheres and linelists, assuming LTE
Spectra.jlUtilities for interfacing with astronomical spectra and synthetic spectra libraries
SpectralFitting.jl✨🛰 Fast and flexible spectral fitting in Julia