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.
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
Python | Julia | Description |
---|---|---|
astropy.constants | ||
SymbolicML/DynamicQuantities.jl | Efficient and type-stable physical quantities in Julia | |
JuliaPhysics/PhysicalConstants.jl | Collection of fundamental physical constants with uncertainties | |
PainterQubits/Unitful.jl | Physical quantities with arbitrary units | |
UnitfulAstro.jl | Astronomical units and things | |
astropy.units | ||
SymbolicML/DynamicQuantities.jl | Efficient and type-stable physical quantities in Julia | |
JuliaPhysics/PhysicalConstants.jl | Collection of fundamental physical constants with uncertainties | |
PainterQubits/Unitful.jl | Physical quantities with arbitrary units | |
UnitfulAstro.jl | Astronomical units and things | |
astropy.nddata | ||
rafaqz/DimensionalData.jl | Named dimensions and indexing for julia arrays and other data | |
astropy.table | ||
JuliaData/DataFrames.jl | In-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.jl | A Julia implementation of the Sort-merge join algorithm | |
astropy.time | ||
AstroTime.jl | Astronomical time keeping | |
astropy.timeseries | ||
JuliaDSP/DSP.jl | Filter design, periodograms, window functions, and other digital signal processing functionality | |
LombScargle.jl | Compute Lomb-Scargle periodogram | |
JuliaStats/TimeSeries.jl | Time series toolkit for Julia | |
BoxLeastSquares.jl | Compute box-least-squares periodogram | |
astropy.coordinates | ||
EphemerisSources.jl | Meta package for accessing JPL HORIZONS and SPICE sources | |
PerezHz/HORIZONS.jl | An interface to NASA-JPL HORIZONS system and other Solar System Dynamics APIs in Julia | |
SPICE.jl | SPICE data retrieval and usage | |
SkyCoords.jl | Astronomical coordinate systems | |
astropy.wcs | ||
WCS.jl | World Coordinate System transformations | |
astropy.modeling | ||
jump-dev/JuMP.jl | Modeling language for Mathematical Optimization (linear, mixed-integer, conic, semidefinite, nonlinear) | |
SciML/NonlinearSolve.jl | High-performance and differentiation-enabled nonlinear solvers (Newton methods), bracketed rootfinding (bisection, Falsi), with sparsity and Newton-Krylov support | |
SciML/Optimization.jl | 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 | |
astropy.uncertainty | ||
JuliaPhysics/Measurements.jl | 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 | |
MonteCarloMeasurements.jl | Propagation of distributions by Monte-Carlo sampling: Real number types with uncertainty represented by samples | |
JuliaAPlavin/Uncertain.jl | Handle uncertain values with ease and performance! | |
JuliaStats/Distributions.jl | A Julia package for probability distributions and associated functions |
Files, I/O, and Communication
Python | Julia | Description |
---|---|---|
astropy.io.fits | ||
emmt/OIFITS.jl | Support for OI-FITS | |
CFITSIO.jl | Reading and writing FITS files | |
emmt/EasyFITS.jl | Using FITS files made easier for Julia | |
barrettp/FITS.jl | A Julia Flexible Image Transport System (FITS) file IO package | |
FITSIO.jl | Reading and writing FITS files | |
JuliaAPlavin/SkyImages.jl | Load astronomical images of the sky and process them with convenient, general, and composable functions. | |
astropy.io.ascii | ||
FixedWidthTables.jl | Read fixed width (so-called ASCII) tables | |
astropy.io.votable | ||
JuliaAPlavin/VLBIData.jl | Work with data formats common in very long baseline interferometry (VLBI) | |
JuliaAPlavin/VirtualObservatory.jl | Access remote data and services that follow VO protocols | |
JuliaAPlavin/VOTables.jl | Read and write VOTable files |
Computations and Utilities
Python | Julia | Description |
---|---|---|
astropy.cosmology | ||
Cosmology.jl | Distances in the universe | |
astropy.convolution | ||
JuliaDSP/DSP.jl | Filter design, periodograms, window functions, and other digital signal processing functionality | |
JuliaImages/ImageFiltering.jl | ulia implementations of multidimensional array convolution and nonlinear stencil operations | |
astropy.utils.iers | ||
EarthOrientation.jl | Earth orientation parameters | |
astropy.visualization | ||
AstroImages.jl | Load, manipulate, and visualize astronomical images | |
AstroImages.jl | Load, manipulate, and visualize astronomical images | |
AstroImages.jl | Load, manipulate, and visualize astronomical images | |
sefffal/PairPlots.jl | Beautiful and flexible visualizations of high dimensional data | |
JuliaAPlavin/SkyImages.jl | Load astronomical images of the sky and process them with convenient, general, and composable functions. | |
astropy.stats | ||
mileslucas/BiweightStats.jl | Robust statistics based on the biweight transform | |
JuliaStats | Statistics and Machine Learning made easy in Julia |
Astropy coordinated packages
Python | Julia | Description |
---|---|---|
asdf-astropy | ||
eschnett/ASDF2.jl | ASDF, the Advanced Scientific Data Format | |
astropy-healpix | ||
ziotom78/Healpix.jl | Implementation of Healpix spherical tesselation scheme in pure Julia | |
astroquery | ||
JuliaAPlavin/VirtualObservatory.jl | Access remote data and services that follow VO protocols | |
ccdproc | ||
CCDReduction.jl | Common CCD image processing routines | |
photutils | ||
Photometry.jl | Aperture photometry | |
regions | ||
Photometry.jl | Aperture photometry | |
reproject | ||
Reproject.jl | Astronomical image reprojection | |
specreduce | ||
ajwheeler/Korg.jl | Theoretical stellar spectra from 1D model atmospheres and linelists, assuming LTE | |
Spectra.jl | Utilities for interfacing with astronomical spectra and synthetic spectra libraries | |
fjebaker/SpectralFitting.jl | ✨🛰 Fast and flexible spectral fitting in Julia | |
specutils | ||
ajwheeler/Korg.jl | Theoretical stellar spectra from 1D model atmospheres and linelists, assuming LTE | |
Spectra.jl | Utilities for interfacing with astronomical spectra and synthetic spectra libraries | |
fjebaker/SpectralFitting.jl | ✨🛰 Fast and flexible spectral fitting in Julia |