diff --git a/python/ucftar_downsampler b/python/ucftar_downsampler index a64583e..aeb7bf3 100755 --- a/python/ucftar_downsampler +++ b/python/ucftar_downsampler @@ -107,24 +107,26 @@ while True: (nxg,nyg,nzg) = params_in[7:10] data = data.reshape((nxl+2*ighost,nyl+2*ighost,nzl+2*ighost),order='F') - islice = [ii-ibeg+ighost for ii in range(ibeg,ibeg+nxl) if (ii-1)%nskip==0] - jslice = [ii-jbeg+ighost for ii in range(jbeg,jbeg+nyl) if (ii-1)%nskip==0] - kslice = [ii-kbeg+ighost for ii in range(kbeg,kbeg+nzl) if (ii-1)%nskip==0] + if nskip>1: + islice = [ii-ibeg+ighost for ii in range(ibeg,ibeg+nxl) if (ii-1)%nskip==0] + jslice = [ii-jbeg+ighost for ii in range(jbeg,jbeg+nyl) if (ii-1)%nskip==0] + kslice = [ii-kbeg+ighost for ii in range(kbeg,kbeg+nzl) if (ii-1)%nskip==0] - data = data[np.ix_(islice,jslice,kslice)] - ibeg = (islice[0]+ibeg-ighost)//nskip+1 - jbeg = (jslice[0]+jbeg-ighost)//nskip+1 - kbeg = (kslice[0]+kbeg-ighost)//nskip+1 - (nxl,nyl,nzl) = data.shape - nxg = (nxg-1)//nskip+1 - nyg = (nyg-1)//nskip+1 - nzg = (nzg-1)//nskip+1 + data = data[np.ix_(islice,jslice,kslice)] + ibeg = (islice[0]+ibeg-ighost)//nskip+1 + jbeg = (jslice[0]+jbeg-ighost)//nskip+1 + kbeg = (kslice[0]+kbeg-ighost)//nskip+1 + (nxl,nyl,nzl) = data.shape + nxg = (nxg-1)//nskip+1 + nyg = (nyg-1)//nskip+1 + nzg = (nzg-1)//nskip+1 params_out = list(params_in) - params_out[0] = 0 - params_out[1:4] = (ibeg,jbeg,kbeg) - params_out[4:7] = (nxl,nyl,nzl) - params_out[7:10] = (nxg,nyg,nzg) + if nskip>1: + params_out[0] = 0 + params_out[1:4] = (ibeg,jbeg,kbeg) + params_out[4:7] = (nxl,nyl,nzl) + params_out[7:10] = (nxg,nyg,nzg) if saveSinglePrecision: data = data.astype(np.float32,casting='same_kind') @@ -143,25 +145,27 @@ while True: (nxl,nyl,nzl) = params_in[4:7] (nxg,nyg,nzg) = params_in[7:10] data = data.reshape((nxl+2*ighost,nyl+2*ighost,nzl+2*ighost),order='F') + + if nskip>1: + islice = [ii-ibeg+ighost for ii in range(ibeg,ibeg+nxl) if (ii-1)%nskip==0] + jslice = [ii-jbeg+ighost for ii in range(jbeg,jbeg+nyl) if (ii-1)%nskip==0] + kslice = [ii-kbeg+ighost for ii in range(kbeg,kbeg+nzl) if (ii-1)%nskip==0] - islice = [ii-ibeg+ighost for ii in range(ibeg,ibeg+nxl) if (ii-1)%nskip==0] - jslice = [ii-jbeg+ighost for ii in range(jbeg,jbeg+nyl) if (ii-1)%nskip==0] - kslice = [ii-kbeg+ighost for ii in range(kbeg,kbeg+nzl) if (ii-1)%nskip==0] - - data = data[np.ix_(islice,jslice,kslice)] - ibeg = (islice[0]+ibeg-ighost)//nskip+1 - jbeg = (jslice[0]+jbeg-ighost)//nskip+1 - kbeg = (kslice[0]+kbeg-ighost)//nskip+1 - (nxl,nyl,nzl) = data.shape - nxg = (nxg-1)//nskip+1 - nyg = (nyg-1)//nskip+1 - nzg = (nzg-1)//nskip+1 + data = data[np.ix_(islice,jslice,kslice)] + ibeg = (islice[0]+ibeg-ighost)//nskip+1 + jbeg = (jslice[0]+jbeg-ighost)//nskip+1 + kbeg = (kslice[0]+kbeg-ighost)//nskip+1 + (nxl,nyl,nzl) = data.shape + nxg = (nxg-1)//nskip+1 + nyg = (nyg-1)//nskip+1 + nzg = (nzg-1)//nskip+1 params_out = list(params_in) - params_out[0] = 0 - params_out[1:4] = (ibeg,jbeg,kbeg) - params_out[4:7] = (nxl,nyl,nzl) - params_out[7:10] = (nxg,nyg,nzg) + if nskip>1: + params_out[0] = 0 + params_out[1:4] = (ibeg,jbeg,kbeg) + params_out[4:7] = (nxl,nyl,nzl) + params_out[7:10] = (nxg,nyg,nzg) if saveSinglePrecision: data = data.astype(np.float32,casting='same_kind')