Skip to content

MindRoadAB/Thesis-X-BACH

 
 

Repository files navigation

X-BACH

X-BACH (Extended Basic Accelerated C++ HOTPANTS) is an astronomical image subtraction software created by Gustav Arneving and Hugo Wilhelmsson, as part of a master's thesis conducted at MindRoad Öst AB. It is based on BACH, an earlier master's thesis by Annie Wång and Victor Lells.

X-BACH is a parallelization of the popular image subtraction tool HOTPANTS, rewritten in C++, and using OpenCL for task acceleration. It operates on two FITS images, one called science and one called template, generates a difference image by subtraction. The purpose of X-BACH was to explore the parallelization potential of non-trivial parallelizable tasks in the HOTPANTS algorithm and check how it would perform.

Build

See here.

Usage

The usage of X-BACH is highlighted below:

BACH -t <template image name> -s <science image name>

X-BACH also supports some optional arguments. These arguments are presented below:

  • -o <convolved output name>: name of the convolved output FITS image. Defaults to diff.fits.
  • -op <output path>: name of the output folder, where the output images will be stored. Defaults to out/.
  • -ip <input path>: name of the input folder, where the input images are located. Defaults to res/.
  • -v: turns on verbose mode.
  • -vt: prints execution time.

For instance, if the input files are stored in C:\in, called science.fits and template.fits, and the output files would be written to C:\out, the following command would be used:

BACH -t template.fits -s science.fits -ip "C:\in\" -op "C:\out\"

This would generate two files, diff.fits (convolved image) and sub.fits (subtracted image) in C:\out.

Known Issues

  • Input and output path arguments are glitchy. Always put '/' (or '\') at the end of the path.
  • Non-deterministic behaviour is observed between computers in some rare test cases.

About

An extension of the original BACH implementation

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 95.9%
  • C++ 2.4%
  • C 1.5%
  • Other 0.2%