Skip to content

Commit 31e1e6a

Browse files
committed
Fix PSF position shift inversion, kernel accumulation, and ref baseline
psf_photom.py: - psf_position: invert finite check so invalid (NaN/inf) ext_shift is zeroed rather than valid shifts being discarded - minimize_psf_flux: convolve a local copy of self.psf with the kernel instead of mutating self.psf in-place; previously each optimizer iteration re-convolved the already-convolved PSF, progressively broadening it through the fit tessreduce.py: - reduce: replace nanmin with nanpercentile(1) for reference baseline removal in difference imaging mode; nanmin is dominated by a single outlier negative pixel (cosmic ray, bad pixel), biasing every difference frame by that amount helpers.py: - _clip_region: fix image[rx,ry] → image[ry,rx] in threshold check so mask is applied to the same pixels as the sigma-clipped stats - grad_clip_fill_bkg: fix component size arrays to cover labels 1..n_objects (exclude background label 0, include last component)
1 parent 4fd2f1b commit 31e1e6a

2 files changed

Lines changed: 4 additions & 5 deletions

File tree

tessreduce/psf_photom.py

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -162,7 +162,7 @@ def psf_position(self,image,error,limx=0.8,limy=0.8,ext_shift=[0,0]):#,surface=F
162162
error = np.ones_like(image)
163163
#brightloc =
164164
if np.nansum(image) > 0:
165-
if np.isfinite(ext_shift).all():
165+
if not np.isfinite(ext_shift).all():
166166
ext_shift[0] = 0; ext_shift[1] = 0
167167
normimage = image / np.nansum(image) # normalise the image
168168

@@ -215,10 +215,9 @@ def minimize_psf_flux(self,coeff,image,error=None,surface=True,order=2,kernel=No
215215
s = polynomial_surface(xx,yy,plane_coeff,order)
216216
else:
217217
s = 0
218-
if kernel is not None:
219-
self.psf = fftconvolve(self.psf, kernel, mode='same')
218+
psf = fftconvolve(self.psf, kernel, mode='same') if kernel is not None else self.psf
220219

221-
res = np.nansum((image - self.psf*coeff[0] - s)**2/error)
220+
res = np.nansum((image - psf*coeff[0] - s)**2/error)
222221
return res
223222

224223
def psf_flux(self,image,error=None,ext_shift=None,surface=True,poly_order=3,kernel=None):

tessreduce/tessreduce.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2763,7 +2763,7 @@ def reduce(self, aper = None, align = None, parallel = None, calibrate=None,
27632763
self.ref = deepcopy(self.flux[self.ref_ind])
27642764
elif self._ref_type.lower() == 'stack':
27652765
self.stack_ref()
2766-
self.ref -= np.nanmin(self.ref)
2766+
self.ref -= np.nanpercentile(self.ref, 1)
27672767
self.flux -= self.ref
27682768

27692769
# self.ref -= self.bkg[self.ref_ind]

0 commit comments

Comments
 (0)