示例#1
0
 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()
示例#2
0
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)
示例#3
0
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)
示例#4
0
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)
示例#5
0
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)
示例#6
0
 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()