major fixes in coordinate systems
This commit is contained in:
@@ -133,6 +133,11 @@ class AppCfg(QSettings):
|
||||
opt_ctr=np.array([603.28688025, 520.01112846])
|
||||
self.setValue(AppCfg.GEO_OPT_CTR, opt_ctr)
|
||||
|
||||
if AppCfg.DT_HOST not in keys:
|
||||
_log.warning(f'{AppCfg.DT_HOST} not defined. use default')
|
||||
self.setValue(AppCfg.DT_HOST,'SAR-CPPM-EXPMX1')
|
||||
#self.setValue(AppCfg.DT_HOST,'localhost:10001:10002')
|
||||
|
||||
#if AppCfg.ACTIVATE_PULSE_PICKER not in keys:
|
||||
# self.setValue(AppCfg.ACTIVATE_PULSE_PICKER, False)
|
||||
|
||||
@@ -352,7 +357,7 @@ class AppCfg(QSettings):
|
||||
app=QApplication.instance()
|
||||
cfg=app._cfg
|
||||
#dt1 = cfg.value(AppCfg.DT_HOST,'SAR-CPPM-EXPMX1')
|
||||
dt1 = cfg.value(AppCfg.DT_HOST,'localhost:10001:10002')
|
||||
dt1 = cfg.value(AppCfg.DT_HOST)
|
||||
dt2 = cfg.value(AppCfg.DT_VEL_SCL, 1, type=float)
|
||||
dt3 = cfg.option(AppCfg.DT_SHOW_PLOTS)
|
||||
|
||||
|
||||
@@ -170,7 +170,7 @@ class Fiducial(pg.ROI):
|
||||
#p.drawText(24, 20, 'beam marker')
|
||||
ctr=tuple(self.pos()+self.size()/2)
|
||||
sz=tuple(self.size())
|
||||
print((*ctr,self._z))
|
||||
#print((*ctr,self._z))
|
||||
#p.drawText(5, 25, 'x{:.4g}\ny{:.4g}\nz{:.4g}'.format(*ctr,self._z))
|
||||
p.drawText(52, 10,40,40,Qt.TextWordWrap, 'x{:.5g}\ny{:.5g}\nz{:.5g}'.format(*ctr,self._z))
|
||||
|
||||
@@ -504,9 +504,11 @@ class FixTargetFrame(pg.ROI):
|
||||
t=self.transform()
|
||||
p=np.array(self.pos())
|
||||
s=self.size()/self._dscr['size']
|
||||
trf=np.array(((t.m11(),t.m12(),0),(t.m21(),t.m22(),0)))
|
||||
trf[:,2]=p
|
||||
trf[:,:2]*=s
|
||||
trf=np.array(((t.m11(),t.m12()),(t.m21(),t.m22()),(0,0)))
|
||||
trf[2,:]=p # shift origin
|
||||
#trf[:2, 0]*=s[0];trf[:2, 1]*=s[1] #scaling (before rotation shear)
|
||||
trf[:2,:]=(trf[:2,:].T*s).T # same as np.asmatrix(np.diag(s))*trf[:2,:], trf[:2,:]*=s not working, scale before rot / shear
|
||||
|
||||
# trf*'gridpos in um' -> motor pos in mm
|
||||
param['trf']=trf
|
||||
return param
|
||||
|
||||
30
swissmx.py
30
swissmx.py
@@ -1363,6 +1363,8 @@ class WndSwissMx(QMainWindow, Ui_MainWindow):
|
||||
grp=self._goTracked
|
||||
cldLst=grp.childItems()
|
||||
for go in cldLst:
|
||||
if type(go)==UsrGO.Fiducial:
|
||||
continue
|
||||
if type(go)!=UsrGO.FixTargetFrame:
|
||||
_log.warning(f'for now: ONLY FixTargetFrame are supported ->skipped:{go}')
|
||||
continue
|
||||
@@ -1383,24 +1385,36 @@ class WndSwissMx(QMainWindow, Ui_MainWindow):
|
||||
# p[i,:]=(trf*t).A.ravel()
|
||||
# Same but much faster !
|
||||
m=np.hstack((p*pitch+pos,np.ones((p.shape[0],1))))
|
||||
p=(trf*np.asmatrix(m).T).T.A
|
||||
#p=(trf*np.asmatrix(m).T).T.A
|
||||
p=(np.asmatrix(m)*trf).A
|
||||
|
||||
# add up to 100 test fiducial
|
||||
vb=self.vb
|
||||
grp=self._goTracked
|
||||
mft=self._moduleFixTarget
|
||||
try:
|
||||
tmpGoLst=self._goTmp
|
||||
except AttributeError:
|
||||
tmpGoLst=self._goTmp=[]
|
||||
else:
|
||||
for go in tmpGoLst:
|
||||
vb.removeItem(go)
|
||||
tmpGoLst.clear()
|
||||
|
||||
n=int(p.shape[0]/100)+1
|
||||
for i in range(0,p.shape[0],n):
|
||||
fx,fy=p[i, :]/1000
|
||||
l=.06
|
||||
go=UsrGO.Fiducial((fx-l/2, fy-l/2), (l, l), i)
|
||||
grp.addItem(go)
|
||||
mft._tree.setData(grp.childItems())
|
||||
tmpGoLst.append(go)
|
||||
mft._tree.setData(grp.childItems())
|
||||
|
||||
print('DEBUG: first point:')
|
||||
print(p[0,:])
|
||||
print('DEBUG: difference from point to point:')
|
||||
print(np.diff(p, axis=0))
|
||||
#self.daq_collect(**param)
|
||||
#_log.debug(f'first point:{p[0,:]}')
|
||||
#_log.debug(f'step to 2nd point:{p[1,:]-p[0,:]}')
|
||||
#print('DEBUG: difference from point to point:')
|
||||
#print(np.diff(p, axis=0))
|
||||
self.daq_collect(**param)
|
||||
|
||||
elif task == TASK_GRID:
|
||||
self.re_connect_collect_button(
|
||||
@@ -1874,7 +1888,7 @@ class WndSwissMx(QMainWindow, Ui_MainWindow):
|
||||
go.setSize(sz)
|
||||
|
||||
j=0
|
||||
elif type(go)==UsrGO.Fiducial:
|
||||
elif type(go)==UsrGO.Fiducial and go.size()[0]==0.12:
|
||||
ptFitTrf[j]=go.pos()+go.size()/2
|
||||
ptFitPlane[i]=go.ctr()
|
||||
i+=1;j+=1
|
||||
|
||||
Reference in New Issue
Block a user