Advanced¶
For those who want more control over how the data is transformed, we provide a number of places to hook into the process.
Image class¶
This class really encapsulates the process of transforming a science image, and
computing the separation between processed images. The Donuts class is merely
a high level API over the Image class.
The easiest way to customise the transformation process (trimming, normalisation
and background subtraction) is to subclass Image and override the
preconstruct_hook and postconstruct_hook methods, for example:
from donuts.image import Image
class MyCustomImage(Image):
def preconstruct_hook(self):
self.med_image = np.median(self.raw_image)
self.raw_image -= self.med_image
def postconstruct_hook(self):
self.backsub += self.med_image
Then to “install” this custom class into the process, construct a Donuts
object using the image_class parameter of the constructor:
from donuts import Donuts
d = Donuts(filename, image_class=MyCustomImage)
If further customisation is required, override other methods in the process but currently no convenience hooks are present to make the process easier. As always feel free to check out the source code to see what’s going on.