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
SymbolicML/DynamicQuantities.jlEfficient and type-stable physical quantities in Julia
JuliaPhysics/PhysicalConstants.jlCollection of fundamental physical constants with uncertainties
PainterQubits/Unitful.jlPhysical quantities with arbitrary units
UnitfulAstro.jlAstronomical units and things
astropy.units
SymbolicML/DynamicQuantities.jlEfficient and type-stable physical quantities in Julia
JuliaPhysics/PhysicalConstants.jlCollection of fundamental physical constants with uncertainties
PainterQubits/Unitful.jlPhysical quantities with arbitrary units
UnitfulAstro.jlAstronomical units and things
astropy.nddata
rafaqz/DimensionalData.jlNamed dimensions and indexing for julia arrays and other data
astropy.table
JuliaData/DataFrames.jlIn-memory tabular data in Julia
JuliaAPlavin/FlexiJoins.jl`FlexiJoins.jl` is a fresh take on joining tabular or non-tabular datasets in Julia.
gcalderone/SortMerge.jlA Julia implementation of the Sort-merge join algorithm
astropy.time
AstroTime.jlAstronomical time keeping
astropy.timeseries
JuliaDSP/DSP.jlFilter design, periodograms, window functions, and other digital signal processing functionality
LombScargle.jlCompute Lomb-Scargle periodogram
JuliaStats/TimeSeries.jlTime series toolkit for Julia
BoxLeastSquares.jlCompute box-least-squares periodogram
astropy.coordinates
EphemerisSources.jlMeta package for accessing JPL HORIZONS and SPICE sources
PerezHz/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-dev/JuMP.jlModeling language for Mathematical Optimization (linear, mixed-integer, conic, semidefinite, nonlinear)
SciML/NonlinearSolve.jlHigh-performance and differentiation-enabled nonlinear solvers (Newton methods), bracketed rootfinding (bisection, Falsi), with sparsity and Newton-Krylov support
SciML/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
JuliaPhysics/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
JuliaAPlavin/Uncertain.jlHandle uncertain values with ease and performance!
JuliaStats/Distributions.jlA Julia package for probability distributions and associated functions

Files, I/O, and Communication

PythonJuliaDescription
astropy.io.fits
emmt/OIFITS.jlSupport for OI-FITS
CFITSIO.jlReading and writing FITS files
emmt/EasyFITS.jlUsing FITS files made easier for Julia
barrettp/FITS.jlA Julia Flexible Image Transport System (FITS) file IO package
FITSIO.jlReading and writing FITS files
JuliaAPlavin/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
JuliaAPlavin/VLBIData.jlWork with data formats common in very long baseline interferometry (VLBI)
JuliaAPlavin/VirtualObservatory.jlAccess remote data and services that follow VO protocols
JuliaAPlavin/VOTables.jlRead and write VOTable files

Computations and Utilities

PythonJuliaDescription
astropy.cosmology
Cosmology.jlDistances in the universe
astropy.convolution
JuliaDSP/DSP.jlFilter design, periodograms, window functions, and other digital signal processing functionality
JuliaImages/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
AstroImages.jlLoad, manipulate, and visualize astronomical images
AstroImages.jlLoad, manipulate, and visualize astronomical images
sefffal/PairPlots.jlBeautiful and flexible visualizations of high dimensional data
JuliaAPlavin/SkyImages.jlLoad astronomical images of the sky and process them with convenient, general, and composable functions.
astropy.stats
mileslucas/BiweightStats.jlRobust statistics based on the biweight transform
JuliaStatsStatistics and Machine Learning made easy in Julia

Astropy coordinated packages

PythonJuliaDescription
asdf-astropy
eschnett/ASDF2.jlASDF, the Advanced Scientific Data Format
astropy-healpix
ziotom78/Healpix.jlImplementation of Healpix spherical tesselation scheme in pure Julia
astroquery
JuliaAPlavin/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
ajwheeler/Korg.jlTheoretical stellar spectra from 1D model atmospheres and linelists, assuming LTE
Spectra.jlUtilities for interfacing with astronomical spectra and synthetic spectra libraries
fjebaker/SpectralFitting.jl✨🛰 Fast and flexible spectral fitting in Julia
specutils
ajwheeler/Korg.jlTheoretical stellar spectra from 1D model atmospheres and linelists, assuming LTE
Spectra.jlUtilities for interfacing with astronomical spectra and synthetic spectra libraries
fjebaker/SpectralFitting.jl✨🛰 Fast and flexible spectral fitting in Julia