コード例 #1
0
ファイル: CR_Interface.py プロジェクト: bmountjoy/LMTools
	def cr_envi_dynamic(self, in_hdr_path, in_dat_path, out_hdr_path, out_dat_path, waves):
		
		self.writeMessage("cr_envi_dynamic")
		
		wt = self.wave_thresh
		
		srange_min = float(self.shortRangeStartEntry.get())
		srange_max = float(self.shortRangeStopEntry.get())
		lrange_min = float(self.longRangeStartEntry.get())
		lrange_max = float(self.longRangeStopEntry.get())
		kernel = int(self.kernelEntry.get())
		
		if kernel % 2 == 0:
			self.writeMessage("Error. Kernel size must be odd.")
			return
		
		#validate wavelength range
		if (srange_max - srange_min < wt) or (lrange_min - srange_max < wt) or (lrange_max - lrange_min < wt):
			self.writeMessage("Error. Bad wavelength range.")
			return
		
		ss0 = self.shortRangeZeroIntVar.get()
		ss1 = self.shortRangeMinIntVar.get()
		ss2 = self.shortRangeMaxIntVar.get()
		ls0 = self.longRangeZeroIntVar.get()
		ls1 = self.longRangeMinIntVar.get()
		ls2 = self.longRangeMaxIntVar.get()
		
		if ss0 == 0 and ss1 == 0 and ss2 == 0:
			self.writeMessage("Error. Must select short wavelength strategy.")
			return
			
		if ls0 == 0 and ls1 == 0 and ls2 == 0:
			self.writeMessage("Error. Must select short wavelength strategy.")
			return
		
		s_strat = 0
		if ss1 == 1: s_strat = 1
		if ss2 == 1: s_strat = 2
		
		l_strat = 0
		if ls1 == 1: l_strat = 1
		if ls2 == 1: l_strat = 2
		
		
		(f_width, low_i, high_i) =\
		self.compute_cr_band_extents(waves, srange_min, lrange_max)
		
		self.writeMessage("f_width:" + str(f_width))
		self.writeMessage("low_i:" + str(low_i))
		self.writeMessage("high_i:" + str(high_i))
		
		#
		# generate output header
		#
		self.generate_cr_header(in_hdr_path, out_hdr_path, waves, f_width, low_i, high_i)
		
		#
		# compute the continuum removal
		#
		CR_module.cr_envi_dynamic(\
			in_hdr_path,\
			in_dat_path,\
			out_dat_path,\
			srange_min,\
			srange_max,\
			lrange_min,\
			lrange_max,\
			s_strat,\
			l_strat,\
			kernel)
		
		self.writeMessage("Done!")