Commit 5d32ace3 authored by BO ZHANG's avatar BO ZHANG 🏀
Browse files

tweaks

parent c99d5409
...@@ -19,6 +19,10 @@ class CsstMscInstrumentProc(CsstProcessor): ...@@ -19,6 +19,10 @@ class CsstMscInstrumentProc(CsstProcessor):
def __init__(self): def __init__(self):
super(CsstMscInstrumentProc).__init__() super(CsstMscInstrumentProc).__init__()
self.__img = None
self.__wht = None
self.__flg = None
def _do_fix(self, raw, bias, dark, flat): def _do_fix(self, raw, bias, dark, flat):
'''仪器效应改正 '''仪器效应改正
...@@ -31,9 +35,9 @@ class CsstMscInstrumentProc(CsstProcessor): ...@@ -31,9 +35,9 @@ class CsstMscInstrumentProc(CsstProcessor):
exptime: 曝光时长 exptime: 曝光时长
''' '''
self.__img = np.divide( self.__img = np.divide(
raw.data - bias.data - dark.data * raw.exptime, flat.data, raw.data - bias - dark * raw.exptime, flat,
out=np.zeros_like(raw.data, float), out=np.zeros_like(raw.data, float),
where=(flat.data != 0), where=(flat != 0),
) )
def _do_badpix(self, flat): def _do_badpix(self, flat):
...@@ -44,8 +48,9 @@ class CsstMscInstrumentProc(CsstProcessor): ...@@ -44,8 +48,9 @@ class CsstMscInstrumentProc(CsstProcessor):
Args: Args:
flat: 平场 flat: 平场
''' '''
med = np.median(flat.data) # TODO: flat-bias?
flg = (flat.data < 0.5 * med) | (1.5 * med < flat.data) med = np.median(flat)
flg = (flat < 0.5 * med) | (1.5 * med < flat)
self.__flg = self.__flg | (flg * 1) self.__flg = self.__flg | (flg * 1)
def _do_hot_and_warm_pix(self, dark, exptime, rdnoise): def _do_hot_and_warm_pix(self, dark, exptime, rdnoise):
...@@ -60,7 +65,7 @@ class CsstMscInstrumentProc(CsstProcessor): ...@@ -60,7 +65,7 @@ class CsstMscInstrumentProc(CsstProcessor):
exptime: 曝光时长 exptime: 曝光时长
rdnoise: 读出噪声 rdnoise: 读出噪声
''' '''
tmp = dark.data * exptime tmp = dark * exptime
tmp[tmp < 0] = 0 tmp[tmp < 0] = 0
flg = 1 * rdnoise ** 2 <= tmp # 不确定是否包含 暂定包含 flg = 1 * rdnoise ** 2 <= tmp # 不确定是否包含 暂定包含
self.__flg = self.__flg | (flg * 2) self.__flg = self.__flg | (flg * 2)
...@@ -136,7 +141,7 @@ class CsstMscInstrumentProc(CsstProcessor): ...@@ -136,7 +141,7 @@ class CsstMscInstrumentProc(CsstProcessor):
for name in kwargs: for name in kwargs:
self._switches[name] = kwargs[name] self._switches[name] = kwargs[name]
def run(self, raw: CsstMscImgData, bias, dark, flat): def run(self, raw: CsstMscImgData, bias: np.ndarray, dark: np.ndarray, flat: np.ndarray):
assert isinstance(raw, CsstMscImgData) assert isinstance(raw, CsstMscImgData)
self.__img = np.copy(raw.data) self.__img = np.copy(raw.data)
...@@ -164,4 +169,7 @@ class CsstMscInstrumentProc(CsstProcessor): ...@@ -164,4 +169,7 @@ class CsstMscInstrumentProc(CsstProcessor):
return img, wht, flg return img, wht, flg
def cleanup(self): def cleanup(self):
self.__img = None
self.__wht = None
self.__flg = None
pass pass
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment