29 lines
1.0 KiB
Python
29 lines
1.0 KiB
Python
|
import numpy as N
|
||
|
class Data:
|
||
|
def __init__(self, frequency, die_real, die_imag):
|
||
|
self.frequency = frequency
|
||
|
self.epsilon = die_real +1j *die_imag
|
||
|
self.data_curve = None # mpl object
|
||
|
self.fitted_curve = None # mpl object
|
||
|
self.length = len(frequency)
|
||
|
self.meta = dict()
|
||
|
self.fit_limits = (frequency.min(),frequency.max(),die_imag.min(),die_imag.max())
|
||
|
|
||
|
def __del__(self):
|
||
|
self.remove_curves()
|
||
|
|
||
|
#def set_fit_limits(self, limits=(None,None,None,None)):
|
||
|
def get_data(self):
|
||
|
"""
|
||
|
|
||
|
"""
|
||
|
mask = N.ones(len(self.frequency),dtype = 'bool')
|
||
|
mask = (self.frequency > self.fit_limits[0]) & (self.frequency < self.fit_limits[1])
|
||
|
mask &= (self.epsilon.imag > self.fit_limits[2]) & (self.epsilon.imag < self.fit_limits[1])
|
||
|
return self.frequency[mask], self.epsilon[mask]
|
||
|
|
||
|
def remove_curves(self):
|
||
|
if self.data_curve is not None: self.data_curve.remove()
|
||
|
if self.fitted_curve is not None: self.fitted_curve.remove()
|
||
|
|