def _filter(self): print('Filtering...') for key in self.data.keys(): self.data[key] = self.data[key].reshape(-1, self.cols) self.data[key] = boxcar2d(data=self.data[key], window=self.filter_window) self.data[key] = self.data[key].flatten()
def main(): pars = Params() with open(pars.infile,'r') as fid: data = np.fromfile(fid,dtype=pars.dtype).reshape(-1,pars.cols) out = boxfilter.boxcar2d(data=data,window=pars.win,null=pars.null, nullset=pars.nullset,thread='auto',numthrd=8,tdthrsh=1e5) if pars.outnan: nullmask = np.abs(out - pars.null) < 1.e-7 out[nullmask] = np.nan with open(pars.outfile,'w') as fid: out.flatten().tofile(fid)
def main(): pars = Params() with open(pars.infile, 'r') as fid: data = np.fromfile(fid, dtype=pars.dtype).reshape(-1, pars.cols) out = boxfilter.boxcar2d(data=data, window=pars.win, null=pars.null, nullset=pars.nullset, thread='auto', numthrd=8, tdthrsh=1e5) if pars.outnan: nullmask = np.abs(out - pars.null) < 1.e-7 out[nullmask] = np.nan with open(pars.outfile, 'w') as fid: out.flatten().tofile(fid)
def buffermask(mask, width, dx=1.0, dy=1.0): """ buffermask(mask,width,dx=1.,dy=1.) Add or remove a buffer zone from a binary mask Parameters ---------- mask : ndarray binary mask (ROI values assumd = 1) width : float width of buffer zone (> 0 for outer buffer; < 0 for inner) dx : float grid spacing in x direction [1] dy : float grid spacing in y direaction [1] """ from pysar.signal import boxfilter if np.abs(width) < np.finfo(np.float32).eps: return mask mtype = mask.dtype if mask.ndim == 1: window = int(np.abs(width // dx)) fmask = boxfilter.boxcar1d(mask.astype(np.float32), window) elif mask.ndim == 2: window = [int(np.abs(width // dx)), int(np.abs(width // dy))] fmask = boxfilter.boxcar2d(mask.astype(np.float32), window) if np.sign(width) < 0: onemask = fmask > 0.99 else: onemask = fmask > 0.01 fmask[onemask] = 1.0 fmask[-onemask] = 0.0 return fmask.astype(mtype)
def buffermask(mask, width, dx=1., dy=1.): ''' buffermask(mask,width,dx=1.,dy=1.) Add or remove a buffer zone from a binary mask Parameters ---------- mask : ndarray binary mask (ROI values assumd = 1) width : float width of buffer zone (> 0 for outer buffer; < 0 for inner) dx : float grid spacing in x direction [1] dy : float grid spacing in y direaction [1] ''' from pysar.signal import boxfilter if np.abs(width) < np.finfo(np.float32).eps: return mask mtype = mask.dtype if mask.ndim == 1: window = int(np.abs(width // dx)) fmask = boxfilter.boxcar1d(mask.astype(np.float32), window) elif mask.ndim == 2: window = [int(np.abs(width // dx)), int(np.abs(width // dy))] fmask = boxfilter.boxcar2d(mask.astype(np.float32), window) if np.sign(width) < 0: onemask = fmask > 0.99 else: onemask = fmask > 0.01 fmask[onemask] = 1. fmask[-onemask] = 0. return fmask.astype(mtype)
def _filter(self): print('Filtering...') for key in self.data.keys(): self.data[key] = self.data[key].reshape(-1,self.cols) self.data[key] = boxcar2d(data=self.data[key], window=self.filter_window) self.data[key] = self.data[key].flatten()