Software

This is a repository of all the software that I have made publicly available.

Object Creation Code (BETA versions)

I have developed a framework for generic source finders. It takes care of all the object generation and basic parametrisation. Plug in your favourite source finding algorithm and you have a working source finder. The compile line I use on my laptop is included as a comment line between the end of the functions and start of the main program. Note that a working cfitsio library is necessary to compile these programs, because they're designed to use fits files as input. Note that the code below is optimised for systems with at least 4GB of RAM. This can be changed if required by editing the code. Contact me for details.

Prototype_Catalog_v4.cpp

Code for generating objects from a datacube and a binary mask. This code also generates plots and some minor object parametrisation. This code forms a framework for source finder construction. Compiling this code requires working cfistio and pgplot libraries.

Prototype_Catalog_v4_NP.cpp

Prototype_Catalog_v4 with the plot generation removed. This code does not require a working pgplot library to be compiled.

ProcessSourceOnlyCube_v2.cpp

This is a variant of Prototype_Catalog_v4.cpp, that flags an input datacube before generating a catalogue and plots. This code is designed for processing datacubes containing only source. The source voxels are flagged using a simple threshold test applied to the voxel's absolute values.

DetectNPeaks_v2.cpp

This is a variant of Prototype_Catalog_v4.cpp, that flags an input datacube before generating a catalogue and plots. This code is designed to apply a simple intensity threshold to datacubes containing source+noise. The source voxels are flagged using a simple threshold test applied to the voxel values. Every voxel that is more than n-sigma below the datacube median is flagged as source. The n-sigma threshold is specified by the user.

DetectPPeaks_v2.cpp

This is a variant of Prototype_Catalog_v4.cpp, that flags an input datacube before generating a catalogue and plots. This code is designed to apply a simple intensity threshold to datacubes containing source+noise. The source voxels are flagged using a simple threshold test applied to the voxel values. Every voxel that is more than n-sigma above the datacube median is flagged as source. The n-sigma threshold is specified by the user.

GetNFfluxes_v2.cpp

This code complements Prototype_Catalog_v4.cpp, Prototype_Catalog_v4_NP.cpp, ProcessSourceOnlyCube_v2.cpp, DetectNPeaks_v2.cpp and DetectPPeaks_v2.cpp. It uses a catalogue's sparse representations to re-measure the properties of the catalogue's objects from a second datacube. The purpose of this code is to apply source finder results (encapsulated in the sparse representations) for a source+noise datacube to a source-only datacube. An example of using this code is to determine the amount of signal recovered by each source's mask. Conversely, this code can be used to determine what the properties of every object would be, if the masks determined from the source-only datacube are applied to the corresponding source+noise datacube.

MakeMiniPlots_v2.cpp

This code complements Prototype_Catalog_v4.cpp, Prototype_Catalog_v4_NP.cpp, ProcessSourceOnlyCube_v2.cpp, DetectNPeaks_v2.cpp and DetectPPeaks_v2.cpp. For a single object in a catalogue it generates a moment-0 map and positition-velocity diagrams for both RA and Dec. This code utilises the sparse representations in a catalogue to extract an object's voxels from a datacube and construct these plots.

MatchSparseReps_v2.cpp

This code matches two catalogues on a voxel-to-voxel basis using the sparse representations contained in each catalogue. Using this matching, the code calculates and reports the completeness and raw reliability of the first catalogue, using the second catalogue as a reference.

Coming Soon

The Characterised Noise HI (CNHI) source finder that I've been developing for the WALLABY survey.

Staff space
Public