def __init__(self, parent=None,**kwargs):
super(AppWindow, self).__init__(parent)
self.setupUi(self)
self.I=kwargs.get('I',None)
from PSL.analyticsClass import analyticsClass
self.CC = analyticsClass()
self.setWindowTitle(self.I.H.version_string+' : '+params.get('name','').replace('\n',' ') )
self.plot1=self.add2DPlot(self.plot_area)
labelStyle = {'color': 'rgb(255,255,255)', 'font-size': '11pt'}
self.plot1.setLabel('left','Voltage -->', units='V',**labelStyle)
self.plot1.setLabel('bottom','Time -->', units='S',**labelStyle)
self.plot1.setYRange(-8.5,8.5)
self.I.set_gain('CH1',1)
self.I.configure_trigger(0,'CH1',0)
self.tg=1
self.tgLabel.setText(str(5000*self.tg*1e-3)+'mS')
self.x=[]
self.looptimer=QtCore.QTimer()
self.curveCH1 = self.addCurve(self.plot1,'CH1')
self.CH1Fit = self.addCurve(self.plot1,'CH1 Fit')
self.region = pg.LinearRegionItem([self.tg*50,self.tg*800])
self.region.setZValue(-10)
self.plot1.addItem(self.region)
self.lognum=0
self.state=0
self.I.set_state(SQR1=0)
self.msg.setText("Fitting fn :\noff+amp*exp(-damp*x)*sin(x*freq+ph)")
self.Params=[]
python类LinearRegionItem()的实例源码
def __init__(self, parent=None,**kwargs):
super(AppWindow, self).__init__(parent)
self.setupUi(self)
self.I=kwargs.get('I',None)
self.IMU = MPU6050.connect(self.I.I2C)
from PSL.analyticsClass import analyticsClass
self.CC = analyticsClass()
self.setWindowTitle(self.I.H.version_string+' : '+params.get('name','').replace('\n',' ') )
self.plot1=self.add2DPlot(self.plot_area)
labelStyle = {'color': 'rgb(255,255,255)', 'font-size': '11pt'}
self.plot1.setLabel('left','Acceleration -->', units='V',**labelStyle)
self.plot1.setLabel('bottom','Time -->', units='S',**labelStyle)
self.tg=2000
self.tgLabel.setText(str(2000*self.tg*1e-3)+'mS')
self.curveGx = self.addCurve(self.plot1,'Gx')
self.curveGy = self.addCurve(self.plot1,'Gy')
self.curveGz = self.addCurve(self.plot1,'Gz')
self.plot2 = self.addAxis(self.plot1)
self.curveAx = self.addCurve(self.plot2,'Ax')
self.curveAy = self.addCurve(self.plot2,'Ay')
self.curveAz = self.addCurve(self.plot2,'Az')
self.curves = [self.curveAx,self.curveAy,self.curveAz,self.curveGx,self.curveGy,self.curveGz]
self.curveNames=['Ax','Ay','Az','Gx','Gy','Gz']
self.legend=self.plot1.addLegend(offset=(-10,30))
for a in range(6):
self.legend.addItem(self.curves[a],self.curveNames[a])
self.datasets = [[],[],[],[],[],[]]
self.looptimer=QtCore.QTimer()
self.region = pg.LinearRegionItem([self.tg*50*1e-6,self.tg*800*1e-6])
self.region.setZValue(-10)
self.plot1.addItem(self.region)
self.lognum=0
self.msg.setText("Fitting fn :\noff+amp*exp(-damp*x)*sin(x*freq+ph)")
self.Params=[]
def __init__(self, parent=None,**kwargs):
super(AppWindow, self).__init__(parent)
self.setupUi(self)
self.I=kwargs.get('I',None)
self.CC = analyticsClass()
self.setWindowTitle(self.I.H.version_string+' : '+params.get('name','').replace('\n',' ') )
self.plot=self.add2DPlot(self.plot_area)
labelStyle = {'color': 'rgb(255,255,255)', 'font-size': '11pt'}
self.plot.setLabel('left','Voltage -->', units='V',**labelStyle)
self.plot.setLabel('bottom','Time -->', units='S',**labelStyle)
self.plot.setYRange(-8.5,8.5)
self.tg=100
self.tgLabel.setText(str(5000*self.tg*1e-3)+'S')
self.x=[]
self.CParams=[0,0,0,0,0]
self.FitTable.setHorizontalHeaderLabels(['Amp','Freq','Phase','Offset','Damping'])
for a in range(5):
item = QtGui.QTableWidgetItem()
self.FitTable.setItem(0,a,item)
item.setText('Nil')
self.curveCH1 = self.addCurve(self.plot,'CH3')
self.CH1Fit = self.addCurve(self.plot,'CH3 Fit')
self.region = pg.LinearRegionItem([self.tg*50*1e-6,self.tg*800*1e-6])
self.region.setZValue(-10)
self.plot.addItem(self.region)
self.msg.setText("Function:offset+A*exp(-damp*x)*sin(x*freq+ph)")
self.running=True
self.Params=[]
self.looptimer=QtCore.QTimer()
self.looptimer.timeout.connect(self.updateProgress)
self.I.set_w1(1)
def __init__(self, removable=True, *args, **kwargs):
super(LinearRegionItem, self).__init__(*args, **kwargs)
self.menu = None
self.removable = removable
self.deletable = removable
def __init__(self, *args, **kwargs):
pg.LinearRegionItem.__init__(self, *args, **kwargs)
for l in self.lines:
l.setCursor(Qt.SizeHorCursor)
self.setZValue(10)
color = QColor(Qt.red)
color.setAlphaF(0.05)
self.setBrush(pg.mkBrush(color))
def __init__(self, parent=None,**kwargs):
super(AppWindow, self).__init__(parent)
self.setupUi(self)
self.I=kwargs.get('I',None)
self.I.__ignoreCalibration__()
self.table = myTable()
self.tableLayout.addWidget(self.table)
#Reset existing calibration in software!
self.reset()
self.hexid = hex(self.I.device_id())
self.setWindowTitle(self.I.generic_name + ' : '+self.I.H.version_string.decode("utf-8")+' : '+self.hexid)
#Check DIO and freq counter
for a in ['SQR1','SQR2','SQR3','SQR4']:
x = {'SQR1':0,'SQR2':0,'SQR3':0,'SQR4':0}
x[a]=1
self.I.set_state(**x)
time.sleep(0.1)
self.I.sqrPWM(10000,0.5,0,0.5,0,0.5,0,0.5)
for a in ['ID1','ID2','ID3','ID4','CNTR']:
if abs(self.I.get_freq(a,0.2)-10000)>2:
self.setWindowTitle('D/IO error!!!!!!!!!!!!!!!!!!!!!!!' + ' : '+self.hexid)
self.I.set_state(SQR1=0,SQR2=0,SQR3=0,SQR4=0)
self.plot=self.add2DPlot(self.plot_area)
self.plot=self.add2DPlot(self.plot_area)
labelStyle = {'color': 'rgb(255,255,255)', 'font-size': '11pt'}
self.plot.setLabel('left','Error -->', units='V',**labelStyle)
self.plot.setLabel('bottom','Actual Voltage -->', units='V',**labelStyle)
self.plot.setYRange(-.06,.06)
self.region = pg.LinearRegionItem([-1.,1.])
self.region.setZValue(-10)
self.plot.addItem(self.region)
self.opendir = QtGui.QPushButton('open')
self.opendir.clicked.connect(self.loadDir)
self.WidgetLayout.addWidget(self.opendir)
self.uploadButton = QtGui.QPushButton('Upload')
self.uploadButton.clicked.connect(self.uploadCalibration)
self.WidgetLayout.addWidget(self.uploadButton)
self.results={}
self.DAC_POLYS=[]
self.INL_SLOPE=0
self.INL_INTERCEPT=0
self.adc_shifts=[]
self.DAC_FILES=[]
self.DAC_TABLES=[]
self.dirname = ''
self.ADDITIONAL_FILE = 'CAP_PCS.csv'
def setup(self):
self.settings.New('spec_index', dtype=int, initial=0)
self.settings.spec_index.add_listener(self.on_spec_index_change)
self.ui = QtWidgets.QGroupBox()
self.ui.setLayout(QtWidgets.QVBoxLayout())
self.ui.spec_index_doubleSpinBox = QtWidgets.QDoubleSpinBox()
self.settings.spec_index.connect_bidir_to_widget(self.ui.spec_index_doubleSpinBox)
self.ui.layout().addWidget(self.ui.spec_index_doubleSpinBox)
self.graph_layout = pg.GraphicsLayoutWidget()
self.ui.layout().addWidget(self.graph_layout)
self.power_plot = self.graph_layout.addPlot()
self.power_plot.setLogMode(x=True, y=True)
self.power_plotcurve = self.power_plot.plot([1],[1], name='Data')
self.power_fit_plotcurve = self.power_plot.plot([1],[1],pen='r', name='Fit')
self.power_plot_arrow = pg.ArrowItem()
self.power_plot_arrow.setPos(0,0)
self.power_plot.addItem(self.power_plot_arrow)
self.power_plot_lr = pg.LinearRegionItem([1,2])
self.power_plot_lr.setZValue(-10)
self.power_plot.addItem(self.power_plot_lr)
self.power_plot_lr.sigRegionChanged.connect(self.redo_fit)
#self.power_plot_legend = pg.LegendItem()
#self.power_plot.addItem(self.power_plot_legend)
#self.power_plot_legend.addItem(self.power_plotcurve)
#self.power_plot_legend.addItem(self.power_fit_plotcurve)
self.fit_text = pg.TextItem("fit")
self.fit_text.setParentItem(self.power_plot_lr, )
self.graph_layout.nextRow()
self.spec_plot = self.graph_layout.addPlot()
self.spec_plotcurve = self.spec_plot.plot([0])
def plot_trace(self):
event_time = self.filtered_catalog.utc_timestamp.values[self.event_idx]
self.statusBar.showMessage('Event {} of {}: {}'.format(
self.event_idx+1, self.num_events, utc.UTCDateTime(event_time)))
window_sz = 20 # in sec
utc_time = utc.UTCDateTime(event_time)
start = utc_time
end = utc_time+window_sz
local_stream = self.stream.slice(start, end)
local_stream.filter('highpass', freq=2.0)
sample_rate = local_stream[0].stats.sampling_rate
npts = local_stream[0].stats.npts
event_sample = (utc_time-start)*sample_rate
n_traces = len(local_stream)
n_samples = len(local_stream[0].data)
data = np.zeros((n_traces, n_samples), dtype=np.float32)
for i in range(n_traces):
data[i, :] = local_stream[i].data[...]
mean = np.mean(data[i, :])
data[i, :] -= mean
self.trace_x.clear()
self.trace_y.clear()
self.trace_z.clear()
self.trace_x.plot(data[0, :], pen=(255,120,120,200))
self.trace_y.plot(data[1, :], pen=(120,255,120,200))
self.trace_z.plot(data[2, :], pen=(120,120,255,200))
self.lrx = pg.LinearRegionItem([event_sample,event_sample+sample_rate*1])
self.lrx.setZValue(-10)
self.trace_x.addItem(self.lrx)
# lry = pg.LinearRegionItem([400,700])
# lry.setZValue(-10)
# self.trace_y.addItem(lry)
#
# lrz = pg.LinearRegionItem([400,700])
# lrz.setZValue(-10)
# self.trace_z.addItem(lrz)
#
# regions = [lrx, lry, lrz]
#
# def updateRange(lr, regions):
# for l in regions:
# if l != lr:
# l.setRegion(lr.getRegion())
#
# # for l in regions:
# lrx.sigRegionChanged.connect(lambda : updateRange(lrx, regions))
# lry.sigRegionChanged.connect(lambda : updateRange(lry, regions))
# lrz.sigRegionChanged.connect(lambda : updateRange(lrz, regions))