#Coelacanth ###Codes for EMCCD and Lucky-Imaging Analysis
There's life in the old fish yet.
Coelacanth is an ongoing effort to refactor and document a collection of C++ codes I wrote for lucky-imaging data-reduction and analysis, as described in my PhD thesis. The hope is that it might be useful to others: either in whole, in part, or as a cautionary lesson in how we used to do things.
Codes for EMCCD and lucky-imaging analysis == COELA , but 'coelacanth' is more memorable. That, and C++03 is a bit of a dinosaur.
-
A framework for performing complex multi-coordinate-system pixel arithmetic on two-dimensional pixel arrays.
-
A minimal, C++-style implementation of the FITS image-file format, complete with bit-packing decompression.
-
A basic but reasonably performant implementation of the Keys81 algorithm for bicubic interpolation.
-
Routines for bright-speckle location via cross-correlation with a carefully tuned PSF core model.
-
A simple (translation-only) but reasonably performant implementation of the Drizzle algorithm.
-
High-performance Monte-Carlo simulation code for simulating EMCCD data from light-intensity maps (built on UNURAN).
-
Fitting routines for extracting EMCCD parameters from raw data.
-
A full (multi-threaded) lucky-imaging pipeline, including:
- Asynchronous file-buffering and decompression
- Calibration routines for constructing per-pixel histograms from dark-frames data
- Image debias / flat-fielding routines built upon the EMCCD calibration
- Photon-thresholding for faint targets
- Various routines for multi-EMCCD data-synchronisation and mosaic building.
-
A set of decomposable, DRY-principle-adherent CMake build scripts.
-
Four years of sweat and C++ related tears.
Unfortunately there's no documentation yet, and progress is slow as this is effectively a side-project. However, if you're interested in digging in, do get in touch and I'll help out if I can.