Astrophotography tools in Julia - image processing and hardware control

I’ve been an amateur astronomer for the past 15 years or so, and only recently have I gotten into astrophotography. (Exhibit A, a 3-panel IRG mosaic of several deep-sky objects in the Small Sagittarius Star Cloud)


It seems like the standard approach to image processing is to buy Pixinsight and use the huge ecosystem of tools and plugins available for it, but I prefer to take a different approach and use as many open source tools as possible - after all, anyone can visit the Mikulski archives and process raw Hubble or JWST data. I also personally avoid using black-box tools in my processing (anything involving machine learning/neural networks).

What packages do you think would be useful in astrophotography, and where do gaps exist? Here’s what comes to mind for me.

Image processing

  • DeconvOptim.jl: Performs fast Richardson-Lucy deconvolution. Oriented towards microscopy, but I don’t think that’s a problem.
  • CloudCovFix.jl: a package that can infill the background from images which have had stars removed. I learned about this one at JuliaCon 2025.
  • BlockRegistration.jl: I will be testing this package for registering lunar and planetary images that are affected by atmospheric seeing.
  • A package for image stretches? Astrophotographers commonly use generalized hyperbolic stretches or asinh in their processing.
  • Denoising? I’m interested in incorporating data from calibration frames when performing denoising. I’ve come to realize that some sources of noise in my image sensor cannot be modeled as purely uncorrelated.

Instrument control

  • LibASICamera.jl: Unmaintaned interface for ZWO ASI cameras.
  • Some new package for working with ASCOM, INDI, or other common interfaces to astronomical hardware?
7 Likes

It looks like there isn’t a package for the drizzle algorithm, which may be of interest to all sorts of people. I’m not familiar enough with it to write a quick implementation myself, but I may work on it in the future.

Oh cool, thanks for starting this thread! I’d also be curious to see what open source tools folks use, or are looking for, in astrophotography

Not sure if related, but I vaguely recall Ujjwal using some sort of drizzle algorithm in the context of their EpochFolding.jl package. Totally not my field though, sorry if this is just a red herring!

1 Like

On a separate note, I’ve been sporadically working on a Julia version of astroalign to align astronomical images without needing to do an expensive plate solve first. If this sounds like a useful tool, then I would definitely love some help from folks more experienced with image processing, especially with getting a RANSAC implementation going to make our alignments more robust. Here’s a brief demo notebook for anyone that might be interested

2 Likes

From my cursory examination, I don’t think the drizzling used here is the same as the drizzle algorithm, but at the same time it might be a useful package for people who want to monitor variable stars.

1 Like