diff --git a/draco/analysis/dayenu.py b/draco/analysis/dayenu.py index 640686285..f775a3e1c 100644 --- a/draco/analysis/dayenu.py +++ b/draco/analysis/dayenu.py @@ -130,9 +130,12 @@ def process(self, stream): ) except np.linalg.LinAlgError as exc: + pc_good = (100.0 * flag.mean(axis=0)).astype(int) self.log.error( - "Failed to converge while processing baseline " - f"{bb} [{bcut:0.3f} micro-sec]: {exc}" + f"Failed to converge while processing baseline {bb} " + f"[{bcut:0.3f} micro-sec]\n" + f"Percentage unmasked frequencies: {pc_good}\n" + f"Exception: {exc}" ) weight[:, bb] = 0.0 continue @@ -252,7 +255,7 @@ def process(self, stream): baseline_mask = ~baseline_flag if np.all(baseline_mask): - self.log.error("All data flaged as bad.") + self.log.error("All data flagged as bad.") return None if np.any(baseline_mask) and not self.single_mask: @@ -288,7 +291,12 @@ def process(self, stream): ) except np.linalg.LinAlgError as exc: - self.log.error(f"Failed to converge while processing time {tt}: {exc}") + pc_good = (100.0 * flag.mean(axis=0)).astype(int) + self.log.error( + f"Failed to converge while processing time {tt}.\n" + f"Percentage unmasked frequencies: {pc_good}\n" + f"Exception: {exc}" + ) weight[:, :, tt] = 0.0 continue @@ -472,9 +480,12 @@ def process(self, ringmap): ) except np.linalg.LinAlgError as exc: + pc_good = (100.0 * flag.mean(axis=0)).astype(int) self.log.error( - "Failed to converge while processing el " - f"{el:0.3f} [{ecut:0.3f} micro-sec]: {exc}" + f"Failed to converge while processing el {el:0.3f} " + f"[{ecut:0.3f} micro-sec]\n" + f"Percentage unmasked frequencies: {pc_good}\n" + f"Exception: {exc}" ) weight[wslc] = 0.0 continue diff --git a/draco/analysis/flagging.py b/draco/analysis/flagging.py index 609994a52..9e18d4857 100644 --- a/draco/analysis/flagging.py +++ b/draco/analysis/flagging.py @@ -1022,7 +1022,7 @@ class RFIMaskChisqHighDelay(task.SingleTask): of freedom (i.e., number of baselines). """ - reg_arpls = config.Property(proptype=float, default=100000.0) + reg_arpls = config.Property(proptype=float, default=1e5) nsigma_1d = config.Property(proptype=float, default=5.0) win_t = config.Property(proptype=int, default=601) @@ -1170,7 +1170,7 @@ def mask_1d(self, y, m): med_w = np.ascontiguousarray((~med_m).astype(np.float64)) # Estimate a baseline - baseline = tools.arPLS_1d(med_y, mask=med_m, scale=self.reg_arpls) + baseline = tools.arPLS_1d(med_y, mask=med_m, lam=self.reg_arpls) # Subtract the baseline and estimate the noise abs_dev = np.abs(med_y - baseline)