Esempio n. 1
0
	def read1Dv(self, fname, tname):
		# open file and read column 0, 1 and 2 (variance), separator is tab
		data_t = []
		data_x = []
		data_v = []
		fp = open(fname, 'r')
		for l in fp:
			args = l.split('\t')
			if args[0][0].isalpha() == 0:
				data_t.append(float(args[0]))
				data_x.append(float(args[1]))
				data_v.append(float(args[2]))
		fp.close()
		if len(data_v)<len(data_x):
			data_v = np.zeros(len(data_x))
		
		data1 = DataArray(name=tname+" 0", shape=[len(data_t)])
		data2 = DataArray(name=tname+" 1", shape=[len(data_t)])
		
		data1.coords = [np.array(data_t)]
		data1.data = np.array(data_x)
		data1.shape = [len(data_x)]
		data2.coords = [np.array(data_t)]
		data2.data = np.array(data_v)
		data2.shape = [len(data_v)]
		return [data1, data2]
Esempio n. 2
0
	def read1D(self, fname, tname):
		# open file and read column 0 and 1, separator is tab
		data_t = []
		data_x = []
		fp = open(fname, 'r')
		for l in fp:
			args = l.split('\t')
			if args[0][0].isalpha() == 0:
				data_t.append(float(args[0]))
				data_x.append(float(args[1]))
		fp.close()
		
		data = DataArray(name=tname, shape=[len(data_t)])
		data.coords = [np.array(data_t)]
		data.data = np.array(data_x)
		data.shape = [len(data_x)]
		return [data]
Esempio n. 3
0
 def ComputeReference(self, inst):
     """
     
         Compute reference from given data if reference filter exists.
         
         Parameters:
             inst    -    array (DataArray)
                          or pubsub event data
                          inst.data must be DataArray
     
     """
     if not(isinstance(inst,DataArray)):
         array = inst.data
     else:
         array = inst
     narray = DataArray(shape=array.shape[:])
     narray.coords = array.coords[:]
     narray.data = array.data[:]
     # build reference data
     # first apply previous filter banks
     bank = self
     while bank.parent!=None:
         bank = bank.parent
     while bank!=self:
         narray = bank.ApplyFilters(narray)
         bank = bank.children[-1]
     # then apply current filter bank up to reference filter
     for ft in self.filters:
         if not(ft.is_reference):
             if ft.is_active:
                 ft.apply_filter(narray)
         else:
             ft.ref = narray
             ft.source = array
             if inst!=array:
                 pub.sendMessage("filter.change", data=self) # send filter change notification with filter bank as object
             break
Esempio n. 4
0
 def UpdateFilterDisplay(self, inst=None):
     """
     
         Update display of apodization window.
         
         Parameters:
             inst    -    pubsub event data
     
     """
     # update apodization filter preview
     arr = DataArray(shape=[201])
     arr.coords = [np.linspace(-1.0,1.0,201)]
     arr.data = np.ones(201) 
     is_before_ft = True
     if isinstance(self.bank,FilterBank):
         for ft in self.bank.filters:
             if ft.is_pre_filter and is_before_ft and ft.is_active:
                 ft.apply_filter(arr)
             if ft.is_transform:
                 is_before_ft = False
     data_x = np.concatenate(([-1.5,-1.0], arr.coords[0], [1.0,1.5]))
     data_y = np.concatenate(([0.0,0.0], arr.data, [0.0,0.0]))
     self.line_filter.set_data(data_x, data_y)
     self.plot_filter.draw()