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 main feature of the language, allowing for interactions between packages to occur fairly naturally.

Astropy core packages

Data structures and transformations

PythonJuliaDescription
astropy.constantsUnitful.jl, UnitfulAstro.jl, PhysicalConstants.jl, DynamicQuantities.jlGeneric units | Astronomy specific units | Common constants used in physics | Efficient and type-stable physical quantities in Julia
astropy.unitsUnitful.jl, UnitfulAstro.jl, PhysicalConstants.jl, DynamicQuantities.jlGeneric units | Astronomy specific units | Common constants used in physics | Efficient and type-stable physical quantities in Julia
astropy.nddata
astropy.tableDataFrames.jlIn-memory tabular data in Julia
astropy.timeAstroTime.jlAstronomical time keeping in Julia
astropy.timeseriesTimeSeries.jlTime series toolkit for Julia
astropy.coordinatesSkyCoords.jl, FlexiJoins.jl, EphemerisSources.jl, SPICE.jlAstronomical coordinate systems in Julia | A fresh take on joining datasets | Meta package for accessing JPL HORIZONS and SPICE sources | SPICE data retrieval and usage
astropy.wcsWCS.jlAstronomical World Coordinate Systems library for Julia
astropy.modelingNonlinearSolve.jl, Optimization.jl, JuMP.jlHigh-performance and differentiation-enabled nonlinear solvers | Mathematical Optimization in Julia | Modeling language for Mathematical Optimization
astropy.uncertaintyMeasurements.jl, Distributions.jl, Uncertain.jl, MonteCarloMeasurements.jlError propagation calculator and library for physical measurements | A Julia package for probability distributions and associated functions | Handle uncertain values with ease and performance! | Propagation of distributions by Monte-Carlo sampling

Files, I/O, and Communication

PythonJuliaDescription
astropy.io.fitsFITSIO.jl, FITS.jl, EasyFITS.jlFlexible Image Transport System (FITS) file support for Julia | A Julia Flexible Image Transport System (FITS) file IO package | Using FITS files made easier for Julia
astropy.io.asciiFixedWidthTables.jlRead fixed width (so-called ASCII) tables
astropy.io.votableVOTables.jlSupport for the VOTable format (Virtual Observatory Table, defined by IVOA) in Julia

Computations and Utilities

PythonJuliaDescription
astropy.cosmologyCosmology.jlCosmology library for Julia
astropy.convolutionDSP.jlFilter design, periodograms, window functions, and other digital signal processing functionality
astropy.utils.iersEarthOrientation.jlCalculate Earth orientation parameters from IERS tables in Julia
astropy.visualizationAstroImages.jl, PairPlots.jlVisualization of astronomical images | Beautiful and flexible vizualizations of high dimensional data
astropy.statsJuliaStatsStatistics and Machine Learning made easy in Julia

Astropy coordinated packages

PythonJuliaDescription
asdf-astropyASDF2.jlA new Advanced Scientific Data Format (ASDF) package, written in Julia
astropy-healpixHealpix.jlHealpix library written in Julia
astroqueryVirtualObservatory.jlAccess remote data and services that follow Virtual Observatory (VO, https://www.ivoa.net/) protocols
ccdprocCCDReduction.jlA package for performing CCD data reduction
photutilsPhotometry.jlUtilities for characterizing sources in astronomical images
regions
reprojectReproject.jlJulia-based Astronomical image reprojection
specreduceSpectra.jlUtilities for interfacing with astronomical spectra and synthetic spectra libraries
specutilsSpectra.jlUtilities for interfacing with astronomical spectra and synthetic spectra libraries