def load_sky_subtraction_to_process_stack(self):
"""
Load sky subtraction into image processing stack
If sky image is 3-d ([n,x,y]), then collapse to 2-d ([x,y]) by doing a median on axis=0
"""
self.unload_sky_subtraction_from_process_stack()
if self.sky_hdulist is not None:
if self.sky_hdulist[0].data.ndim == 2:
process_fxn = ImageProcessAction(np.subtract, self.sky_hdulist[0].data)
elif self.sky_hdulist[0].data.ndim == 3:
process_fxn = ImageProcessAction(np.subtract, np.median(self.sky_hdulist[0].data, axis=0))
else:
raise UnrecognizedNumberOfDimensions("Tried to load sky image with {} dimensions, " +
"when can only handle 2-d or 3-d".format(
self.sky_hdulist[0].data.ndim))
# assume that sky subtraction should always be first in processing stack.
self.ztv_frame.image_process_functions_to_apply.insert(0, ('sky-subtraction', process_fxn))
wx.CallAfter(pub.sendMessage, 'image-process-functions-to-apply-changed',
msg=(self.ztv_frame._pause_redraw_image,))
wx.CallAfter(pub.sendMessage, 'set-window-title', msg=None)
self.sky_checkbox.SetValue(True)
评论列表
文章目录