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
  1. SymbolicML/DynamicQuantities.jl
  2. JuliaPhysics/PhysicalConstants.jl
  3. PainterQubits/Unitful.jl
  4. UnitfulAstro.jl
  1. Efficient and type-stable physical quantities in Julia.
  2. Common constants used in physics.
  3. Generic units.
  4. Astronomy specific units.
astropy.units
  1. SymbolicML/DynamicQuantities.jl
  2. JuliaPhysics/PhysicalConstants.jl
  3. Unitful.jl
  4. UnitfulAstro.jl
  1. Efficient and type-stable physical quantities in Julia.
  2. Common constants used in physics.
  3. Generic units.
  4. Astronomy specific units.
astropy.nddata
astropy.table
  1. JuliaData/DataFrames.jl
  1. In-memory tabular data in Julia.
astropy.time
  1. AstroTime.jl
  1. Astronomical time keeping in Julia.
astropy.timeseries
  1. JuliaStats/TimeSeries.jl
  1. Time series toolkit for Julia.
astropy.coordinates
  1. EphemerisSources.jl
  2. JuliaAPlavin/FlexiJoins.jl
  3. SkyCoords.jl
  4. SPICE.jl
  1. Meta package for accessing JPL HORIZONS and SPICE sources.
  2. A fresh take on joining datasets.
  3. Astronomical coordinate systems in Julia.
  4. SPICE data retrieval and usage.
astropy.wcs
  1. WCS.jl
  1. Astronomical World Coordinate Systems library for Julia.
astropy.modeling
  1. jump-dev/JuMP.jl
  2. SciML/NonlinearSolve.jl
  3. SciML/Optimization.jl
  1. Modeling language for Mathematical Optimization.
  2. High-performance and differentiation-enabled nonlinear solvers.
  3. Mathematical Optimization in Julia.
astropy.uncertainty
  1. JuliaStats/Distributions.jl
  2. JuliaPhysics/Measurements.jl
  3. baggepinnen/MonteCarloMeasurements.jl
  4. JuliaAPlavin/Uncertain.jl
  1. A Julia package for probability distributions and associated functions.
  2. Error propagation calculator and library for physical measurements.
  3. Propagation of distributions by Monte-Carlo sampling.
  4. Handle uncertain values with ease and performance!

Files, I/O, and Communication

PythonJuliaDescription
astropy.io.fits
  1. emmt/EasyFITS.jl
  2. barrettp/FITS.jl
  3. FITSIO.jl
  1. Using FITS files made easier for Julia.
  2. A Julia Flexible Image Transport System (FITS) file IO package.
  3. Flexible Image Transport System (FITS) file support for Julia.
astropy.io.ascii
  1. JuliaAPlavin/FixedWidthTables.jl
  1. Read fixed width (so-called ASCII) tables.
astropy.io.votable
  1. JuliaAPlavin/VOTables.jl
  1. Support for the VOTable format (Virtual Observatory Table, defined by IVOA) in Julia.

Computations and Utilities

PythonJuliaDescription
astropy.cosmology
  1. Cosmology.jl
  1. Cosmology library for Julia.
astropy.convolution
  1. JuliaDSP/DSP.jl
  1. Filter design, periodograms, window functions, and other digital signal processing functionality.
astropy.utils.iers
  1. EarthOrientation.jl
  1. Calculate Earth orientation parameters from IERS tables in Julia.
astropy.visualization
  1. AstroImages.jl
  2. /sefffal/PairPlots.jl
  1. Visualization of astronomical images.
  2. Beautiful and flexible vizualizations of high dimensional data.
astropy.stats
  1. JuliaStats
  1. Statistics and Machine Learning made easy in Julia.

Astropy coordinated packages

PythonJuliaDescription
asdf-astropy
  1. eschnett/ASDF2.jl
  1. A new Advanced Scientific Data Format (ASDF) package, written in Julia.
astropy-healpix
  1. ziotom78/Healpix.jl
  1. Healpix library written in Julia.
astroquery
  1. JuliaAPlavin/VirtualObservatory.jl
  1. Access remote data and services that follow Virtual Observatory (VO, https://www.ivoa.net/) protocols.
ccdproc
  1. CCDReduction.jl
  1. A package for performing CCD data reduction.
photutils
  1. Photometry.jl
  1. Utilities for characterizing sources in astronomical images.
regions
reproject
  1. Reproject.jl
  1. Julia-based Astronomical image reprojection.
specreduce
  1. Spectra.jl
  2. fjebaker/SpectralFitting.jl
  1. Utilities for interfacing with astronomical spectra and synthetic spectra libraries.
  2. ✨🛰 Fast and flexible spectral fitting in Julia.
specutils
  1. Spectra.jl
  2. fjebaker/SpectralFitting.jl
  1. Utilities for interfacing with astronomical spectra and synthetic spectra libraries.
  2. ✨🛰 Fast and flexible spectral fitting in Julia.