Ecosystem
The joy of our community is the many astronomy and astrophysics packages available for wide use. Packages are separated by functionality and Julia's declarative package manager takes care of resolving dependencies. You get just the functionality you need, and smaller packages lead to more rapid development.
Data I/O
AstroImages.jl
Load, manipulate, and visualize astronomical images
- Works with the FileIO.jl interface
CFITSIO.jl
Reading and writing FITS files
- Low-level wrapper for cfitsio
- The c interface can be directly accessed with the CFITSIO_jll package
FITSIO.jl
Reading and writing FITS files
- Interact with header data units (HDUs), FITS headers, and FITS data: both images and tables
- FITS tables follow the Tables.jl interface, allowing seamless integration with the rich data ecosystem, like CSV.jl, DataFrames.jl, etc.
eschnett/ASDF2.jl
Load files in ASDF format, which is the upcoming stadnard for STScI/Roman
torrance/Casacore.jl
A high level Julia interface to Casacore
- Wrapper for CasaCore
- Uses casacorecxx which uses CxxWrap to wrap the C++ Casacore codebase. These raw objects and methods are available in
Casacore.LibCasacore
JuliaAPlavin/Difmap.jl
Wrapper for the Difmap program used in synthesis imaging
- Execute Difmap scripts, handle inputs/outputs and logs
- Display images and plots from Difmap in interactive Julia environments
emmt/EasyFITS.jl
Using FITS files made easier for Julia
- EasyFITS is a Julia package designed to make it easier to read and write data in FITS format without sacrificing performances, flexibility, or readability.
emmt/OIFITS.jl
Support for OI-FITS
- Read and write OI-FITS optical interferometry data format
JuliaAPlavin/VirtualObservatory.jl
Access remote data and services that follow Virtual Observatory (VO, https://www.ivoa.net/) protocols.
- Currently supports the Table Access Protocol (TAP), and a few key features specific to the VizieR database
JuliaAPlavin/VLBIData.jl
Work with data formats common in very long baseline interferometry (VLBI)
- Read interferometric visibilities (
uvfits
), images (fits
), and source models - Minimal writing support for source models
Images
AstroImages.jl
Load, manipulate, and visualize astronomical images
- Works with the FileIO.jl interface
CCDReduction.jl
Common CCD image processing routines
- Creation of calibration files
- Dark subtraction, flat normalization, bias subtraction, cropping
- Specialized iterator for processing directories of FITS files using a table built from the FITS headers.
LACosmic.jl
Cosmic-ray rejection by Laplacian edge detection
- Implementation of the L.A.Cosmic algorithm (van Dokkum, 2001)
- Returns bad pixel masks and cleaned data
Photometry.jl
Aperture photometry
- Background estimation and source extraction
- Fast and precise aperture photometry
PSFModels.jl
Analytical, allocation-free point-spread-functions (PSF)
- Lazy representation allows fast allocation-free calculations
- Gaussian (Normal), Moffat, and Airy disk.
Reproject.jl
Astronomical image reprojection
SAOImageDS9.jl
Interface with the DS9 image viewer
- Uses XPA.jl to communicate with DS9 instances
- Easily display images in DS9 and add features like circles and lines
- Low-level API accessible with
set
andget
JuliaHCI/ADI.jl
Angular Differential Imaging (ADI) routines in Julia
- PCA, NMF, LLSG, LOCI, etc.
- Apply algorithms framewise or in spectral differential imaging (SDI) using Julia's multiple dispatch
- Provide an interface for using these algorithms in other tools
- Common HCI metrics including S/N maps, contrast curves, throughput curves (from PSF injection), STIM, etc.
JuliaHCI/HCIToolbox.jl
Common utilities for high-contrast imaging (HCI) processing
- Morphological operations (rotation, stacking, shifting)
- Masking routines (circles, annulus, series of annuli)
- Spectral scaling and descaling
Time, Coords, Units
AstroAngles.jl
String parsing and representation of angles
- Parse and represent sexagesimal angles with a variety of delimiters
- Methods for converting to hour-minute-second angles from degrees and radians, and vice-versa
AstroTime.jl
Astronomical time keeping
- High-precision, time-scale aware, DateTime-like data type
- Support all commonly used astronomical time scales
ERFA.jl
Time systems conversions
- Low-level wrapper for liberfa
SkyCoords.jl
Astronomical coordinate systems
- Supports ICRS, galactic, and FK5 coordinate systems
- Fast conversion of coordinates between different systems
SPICE.jl
SPICE data retrieval and usage
- Wrapper for CSPICE
- Read SPICE data files and compute derived observation geometry such as altitude, latitude/longitude and lighting angles
UnitfulAstro.jl
Astronomical units
- Extension of Unitful.jl
WCS.jl
World Coordinate System transformations
- Wrapper for wcslib
Orbits
EarthOrientation.jl
Earth orientation parameters
- Calculate Earth orientation parameters from IERS tables
Transits.jl
Flexible photometric transit curves with limb darkening
- Inspired by exoplanet
- Includes Keplerian orbits and generic orbits
- Fully compatible with Unitful.jl
EphemerisSources.jl
Meta package for accessing JPL HORIZONS and SPICE sources
- Calculate positions and velocities of solar system bodies
barrettp/Astrometry.jl
Set of IAU standard algorithms for calculating the time and position of celestial objects
- More information can be found on the official website of the Standards of Fundamental Astronomy.
PerezHz/HORIZONS.jl
An interface to NASA-JPL HORIZONS system and other Solar System Dynamics APIs in Julia
- Calculate positions and velocities of solar system bodies
sefffal/PlanetOrbits.jl
Tools for displaying and solving Keplerian orbits in the context of direct imaging
General
AstroLib.jl
Collection of generic astronomical and astrophysical functions
- Translation of many IDL AstroLib procedures
BoxLeastSquares.jl
Compute box-least-squares periodogram
- Fit BLS periodograms to time-series data
- Extract best-fitting transit parameters from the BLS periodogram
- Fully compatible with Unitful.jl
Cosmology.jl
Distances in the universe
- $\Lambda$-CDM and $w_0$-$w_a$ cosmologies
- Open, closed, and flat variants
- Fully compatible with Unitful.jl
DustExtinction.jl
Dust extinction laws and maps
- Various empirical extinction models
- SFD (1998) galactic dust map
- Fully compatible with Unitful.jl
LombScargle.jl
Compute Lomb-Scargle periodogram
- Create periodograms from unevenly sampled periodic signals
- Supports multi-threading
Photometry.jl
Aperture photometry
- Background estimation and source extraction
- Fast and precise aperture photometry
mileslucas/BiweightStats.jl
Robust statistics based on the biweight transform
- Implements the location, scale, midvariance, midcovariance, and midcorrelation statistics
ziotom78/Healpix.jl
Implementation of Healpix spherical tesselation scheme in pure Julia
- pixel functions, query functions, map functions
- power spectrum support
- plotting support
ajwheeler/Korg.jl
Theoretical stellar spectra from 1D model atmospheres and linelists, assuming LTE
ManuelBehrendt/Mera.jl
Working with large hydrodynamical simulation data
- Loading, writing, analysing 3D AMR/uniform-grid and N-body data sets
- Memory lightweight data processing within a database framework
- Many predefined functions and examples
fabienbaron/OITOOLS.jl
A collection of tools to load, visualize, model-fit and image optical interferometry data coming from CHARA, NPOI and VLTI
- OITOOLS is a Julia package to read, plot, model-fit and image optical interferometric data coming from astronomical arrays such as CHARA, VLTI, and NPOI
- Note that despite having the same name as JMMC's oitools, they are completely unrelated and were developed independently
sefffal/PairPlots.jl
Beautiful and flexible visualizations of high dimensional data
- Corner plots or scatter plot matrices. Both Julia and Python are supported (PairPlots.jl and pairplots.py)
- Inspired by corner.py and chainconsumer.py
See also:
JuliaSpace/SatelliteToolbox.jl
Perform analysis and build simulations related to satellites
- Atmospheric, gravitational, and geomagnetic field models
- Orbit propagators
See also: