def interpolateData(self): import scipy.interpolate as interpolate NyK = self.Ny - 2*self.K.value # The Capon image will be 2*K smaller in range if VERBOSE: print 'Start interpolating...' # IQ-interpolation (in image domain, imag and real, hence coherent) iq_interp_factor = 2 x_idx = np.arange(self.Nx) y_idx = np.arange(NyK) x_up_idx = np.linspace(0.25, self.Nx-1-0.25, (self.Nx-1)*iq_interp_factor) y_up_idx = np.arange(NyK) self.angles_intrp = interpolate.interp1d( x_idx, self.angles ) (x_up_idx) self.ranges_intrp = self.ranges if self.K.value > 0: self.ranges_intrp = self.ranges_intrp[self.K.value:-self.K.value] img_das_real = interpolate.RectBivariateSpline( x_idx, y_idx, self.img_das.real ) (x_up_idx, y_up_idx) img_das_imag = interpolate.RectBivariateSpline( x_idx, y_idx, self.img_das.imag ) (x_up_idx, y_up_idx) img_capon_real = interpolate.RectBivariateSpline( x_idx, y_idx, self.img_capon.real ) (x_up_idx, y_up_idx) img_capon_imag = interpolate.RectBivariateSpline( x_idx, y_idx, self.img_capon.imag ) (x_up_idx, y_up_idx) self.img_das_iq_intrp = img_das_real + 1j * img_das_imag self.img_capon_iq_intrp = img_capon_real + 1j * img_capon_imag # In-coherent interpolation if self.Ky.value > 1 or self.Kx.value > 1: NxK = (self.Nx-1) * iq_interp_factor y_idx = np.arange(NyK) x_idx = np.arange(NxK) y_up_idx = np.linspace(0,NyK-1,NyK*self.Ky.value) x_up_idx = np.linspace(0,NxK-1,NxK*self.Kx.value) self.angles_intrp = interpolate.interp1d( x_idx, self.angles_intrp ) (x_up_idx) if self.K.value > 0: self.ranges_intrp = interpolate.interp1d( y_idx, self.ranges[self.K.value:-self.K.value].squeeze() ) (y_up_idx) else: self.ranges_intrp = interpolate.interp1d( y_idx, self.ranges ) (y_up_idx) self.img_das_intrp = interpolate.RectBivariateSpline( x_idx, y_idx, abs(self.img_das_iq_intrp) ) (x_up_idx, y_up_idx) self.img_capon_intrp = interpolate.RectBivariateSpline( x_idx, y_idx, abs(self.img_capon_iq_intrp) ) (x_up_idx, y_up_idx) else: # do nothing self.img_das_intrp = self.img_das_iq_intrp self.img_capon_intrp = self.img_capon_iq_intrp self.img_das_intrp = np.transpose(self.img_das_intrp) self.img_capon_intrp = np.transpose(self.img_capon_intrp) self.img_das_detected = self.logCompress(self.img_das_intrp, self.minDynRange.value, self.maxDynRange.value) self.img_cap_detected = self.logCompress(self.img_capon_intrp, self.minDynRangeCapon.value, self.maxDynRangeCapon.value) if VERBOSE: print 'done'
def testTransposed(self): BT = mynp.transpose(self.B) self.assertListEqual(self.BT.tolist(), BT.tolist())
def interpolateData(self): import scipy.interpolate as interpolate NyK = self.Ny - 2 * self.K.value # The Capon image will be 2*K smaller in range if VERBOSE: print 'Start interpolating...' # IQ-interpolation (in image domain, imag and real, hence coherent) iq_interp_factor = 2 x_idx = np.arange(self.Nx) y_idx = np.arange(NyK) x_up_idx = np.linspace(0.25, self.Nx - 1 - 0.25, (self.Nx - 1) * iq_interp_factor) y_up_idx = np.arange(NyK) self.angles_intrp = interpolate.interp1d(x_idx, self.angles)(x_up_idx) self.ranges_intrp = self.ranges if self.K.value > 0: self.ranges_intrp = self.ranges_intrp[self.K.value:-self.K.value] img_das_real = interpolate.RectBivariateSpline( x_idx, y_idx, self.img_das.real)(x_up_idx, y_up_idx) img_das_imag = interpolate.RectBivariateSpline( x_idx, y_idx, self.img_das.imag)(x_up_idx, y_up_idx) img_capon_real = interpolate.RectBivariateSpline( x_idx, y_idx, self.img_capon.real)(x_up_idx, y_up_idx) img_capon_imag = interpolate.RectBivariateSpline( x_idx, y_idx, self.img_capon.imag)(x_up_idx, y_up_idx) self.img_das_iq_intrp = img_das_real + 1j * img_das_imag self.img_capon_iq_intrp = img_capon_real + 1j * img_capon_imag # In-coherent interpolation if self.Ky.value > 1 or self.Kx.value > 1: NxK = (self.Nx - 1) * iq_interp_factor y_idx = np.arange(NyK) x_idx = np.arange(NxK) y_up_idx = np.linspace(0, NyK - 1, NyK * self.Ky.value) x_up_idx = np.linspace(0, NxK - 1, NxK * self.Kx.value) self.angles_intrp = interpolate.interp1d( x_idx, self.angles_intrp)(x_up_idx) if self.K.value > 0: self.ranges_intrp = interpolate.interp1d( y_idx, self.ranges[self.K.value:-self.K.value].squeeze())( y_up_idx) else: self.ranges_intrp = interpolate.interp1d(y_idx, self.ranges)(y_up_idx) self.img_das_intrp = interpolate.RectBivariateSpline( x_idx, y_idx, abs(self.img_das_iq_intrp))(x_up_idx, y_up_idx) self.img_capon_intrp = interpolate.RectBivariateSpline( x_idx, y_idx, abs(self.img_capon_iq_intrp))(x_up_idx, y_up_idx) else: # do nothing self.img_das_intrp = self.img_das_iq_intrp self.img_capon_intrp = self.img_capon_iq_intrp self.img_das_intrp = np.transpose(self.img_das_intrp) self.img_capon_intrp = np.transpose(self.img_capon_intrp) self.img_das_detected = self.logCompress(self.img_das_intrp, self.minDynRange.value, self.maxDynRange.value) self.img_cap_detected = self.logCompress(self.img_capon_intrp, self.minDynRangeCapon.value, self.maxDynRangeCapon.value) if VERBOSE: print 'done'