Skip to content

Commit

Permalink
Process obsresult in skyflat
Browse files Browse the repository at this point in the history
* Add more logging messages
  • Loading branch information
sergiopasra committed Apr 10, 2016
1 parent 07f7342 commit 92fd294
Showing 1 changed file with 12 additions and 7 deletions.
19 changes: 12 additions & 7 deletions megaradrp/recipes/calibration/slitflat.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
#
# Copyright 2011-2015 Universidad Complutense de Madrid
# Copyright 2011-2016 Universidad Complutense de Madrid
#
# This file is part of Megara DRP
#
Expand All @@ -25,7 +25,7 @@

from megaradrp.core.recipe import MegaraBaseRecipe
from megaradrp.products import MasterSlitFlat
from megaradrp.requirements import MasterFiberFlatFrameRequirement, MasterBiasRequirement, MasterDarkRequirement
from megaradrp.requirements import MasterBiasRequirement, MasterDarkRequirement
from numina.core import Product, Parameter
from scipy.ndimage.filters import median_filter
from scipy.signal import savgol_filter
Expand All @@ -38,7 +38,6 @@ class SlitFlatRecipe(MegaraBaseRecipe):
# Requirements
master_bias = MasterBiasRequirement()
master_dark = MasterDarkRequirement()
fiberflat_frame = MasterFiberFlatFrameRequirement()

window_length_x = Parameter(301, 'Savitzky-Golay length of the filter window OX')
window_length_y = Parameter(31, 'Savitzky-Golay length of the filter window OY')
Expand All @@ -54,24 +53,30 @@ def __init__(self):
def run(self, rinput):
_logger.info('Slit Flat')

fiberflat_frame = rinput.fiberflat_frame.open()[0].data
parameters = self.get_parameters(rinput)
reduced = self.bias_process_common(rinput.obresult, parameters)

_logger.debug("Compute median")
if rinput.median_window_length:
archivo_mediana = median_filter(fiberflat_frame, (1,rinput.median_window_length))
archivo_mediana = median_filter(reduced[0].data, (1, rinput.median_window_length))
else:
archivo_mediana = fiberflat_frame
archivo_mediana = reduced[0].data

_logger.debug("Compute Savitzky-Golay X filter (%d, %d)", rinput.window_length_x, rinput.polyorder)
result = savgol_filter(archivo_mediana, rinput.window_length_x, rinput.polyorder, axis=1)

if rinput.window_length_y:
_logger.debug("Compute Savitzky-Golay Y filter (%d, %d)", rinput.window_length_y, rinput.polyorder)
result = savgol_filter(result, rinput.window_length_y, rinput.polyorder, axis=0)

qe = fiberflat_frame/result
qe = reduced[0].data / result

_logger.debug('Filtering INF/NAN in result')
qe[np.isinf(qe)] = 1.0
qe[np.isnan(qe)] = 1.0

hdu = fits.PrimaryHDU(qe)
reduced = fits.HDUList([hdu])

_logger.info('End slit flat')
return self.create_result(master_slitflat=reduced)

0 comments on commit 92fd294

Please sign in to comment.