saving document, plane and fiducal fitter
This commit is contained in:
68
swissmx.py
68
swissmx.py
@@ -64,6 +64,7 @@ TASK_SETUP_CAMERA = "setup_camera"
|
||||
TASK_SETUP_ROI = "setup_rois"
|
||||
TASK_SAMPLE_SELECTION = "task_sample_selection"
|
||||
TASK_SCREENING = "screening"
|
||||
TASK_FIX_TARGET = "fix_trg"
|
||||
TASK_GRID = "grid"
|
||||
TASK_PRELOCATED = "prelocated"
|
||||
TASK_HELICAL = "helical"
|
||||
@@ -407,13 +408,14 @@ class SwissMxWnd(QMainWindow, Ui_MainWindow):
|
||||
self._goGrid=grid=pg.GridItem() # green grid and labels
|
||||
grid.opts['pen']=QPen(QColor(0, 255, 0))
|
||||
grid.opts['textPen']=QPen(QColor(0, 255, 0))
|
||||
#tr.reset()
|
||||
tr.reset()
|
||||
#grid.setTransform(tr) # assign transform
|
||||
vb.addItem(grid)
|
||||
|
||||
#--- beam marker ---
|
||||
bm_sz=np.array((50, 40)) # it is immidiatly repositioned in zoom_changed_cb
|
||||
self._goBeamMarker=bm=UsrGO.Marker(-opt_ctr-bm_sz/2,bm_sz,mode=0)
|
||||
bm.setTransform(tr) # assign transform
|
||||
vb.addItem(bm)
|
||||
|
||||
#--- opctical center ----
|
||||
@@ -717,8 +719,8 @@ class SwissMxWnd(QMainWindow, Ui_MainWindow):
|
||||
_log.warning(e)
|
||||
else:
|
||||
opt_ctr=geo._opt_ctr
|
||||
bm_sz=np.array(tuple(map(float, cfg.value(AppCfg.GEO_BEAM_SZ))))/1000
|
||||
bm_pos=np.array(tuple(map(float, cfg.value(AppCfg.GEO_BEAM_POS))))/1000
|
||||
bm_sz=cfg.value(AppCfg.GEO_BEAM_SZ)
|
||||
bm_pos=cfg.value(AppCfg.GEO_BEAM_POS)
|
||||
bm_sz=np.abs(geo.pos2pix(bm_sz))
|
||||
bm_pos=-opt_ctr-geo.pos2pix(bm_pos)-bm_sz/2
|
||||
bm=self._goBeamMarker
|
||||
@@ -936,7 +938,7 @@ class SwissMxWnd(QMainWindow, Ui_MainWindow):
|
||||
#_log.debug(f"vb pos {self.vb.mapFromScene(p)}") #pixel position on the scene (including black frame)
|
||||
#for o in self.vb.childGroup.childItems():
|
||||
# _log.debug(f"{type(o)} pos {o.mapFromScene(p)}") #pixel position on the scene (including black frame)
|
||||
|
||||
_log.debug(f"currentItem:{event.currentItem}")
|
||||
task = self.active_task()
|
||||
if task==TASK_SETUP_GEOMETRY_CALIB:
|
||||
self.mouse_click_event_geometry_calib(event)
|
||||
@@ -1235,11 +1237,40 @@ class SwissMxWnd(QMainWindow, Ui_MainWindow):
|
||||
def execute_collection(self):
|
||||
app=QApplication.instance()
|
||||
geo=app._geometry
|
||||
#zoom=app._zoom.get_val()
|
||||
task = self.active_task()
|
||||
self._is_aborted = False
|
||||
method = self._tabs_daq_methods.currentWidget().accessibleName()
|
||||
#self._is_aborted = False
|
||||
#method = self._tabs_daq_methods.currentWidget().accessibleName()
|
||||
|
||||
if task == TASK_GRID:
|
||||
|
||||
|
||||
if task == TASK_FIX_TARGET:
|
||||
#self.re_connect_collect_button(callback=self.collect_abort_grid, accessibleName="grid_abort", label="Abort Grid Scan",)
|
||||
#self._inspect = self._grid_inspect_area
|
||||
#self._inspect.setPlainText("")
|
||||
|
||||
fast_x=self.tweakers["fast_x"];
|
||||
fast_y=self.tweakers["fast_y"]
|
||||
fx=fast_x.get_val()
|
||||
fy=fast_y.get_val()
|
||||
opt_ctr=geo._opt_ctr
|
||||
for go in self._goTracked['objLst']:
|
||||
points=go.get_points() #points in coordinate system of ROI
|
||||
# names consists of abrevations
|
||||
# part 0: po=position sz=size dt=delta
|
||||
# part 1: px=pixel eu=engineering units (e.g. mm)
|
||||
po_px=go.pos()
|
||||
sz_px=go.size()
|
||||
tr=go.transform() # TODO: this is not yet used
|
||||
UsrGO.obj_info(tr)
|
||||
dt_px=-opt_ctr-po_px
|
||||
dt_eu=geo.pix2pos(dt_px)+(fx,fy)
|
||||
for i in range(points.shape[0]):
|
||||
points[i,:]=dt_eu+geo.pix2pos(points[i,:])#*tr
|
||||
|
||||
self.daq_collect_points(points, visualizer_method="grid", visualizer_params=None)
|
||||
|
||||
elif task == TASK_GRID:
|
||||
self.re_connect_collect_button(
|
||||
callback=self.collect_abort_grid,
|
||||
accessibleName="grid_abort",
|
||||
@@ -1541,6 +1572,7 @@ class SwissMxWnd(QMainWindow, Ui_MainWindow):
|
||||
|
||||
self._moduleFixTarget =mft = ModuleFixTarget.WndFixTarget(self,data)
|
||||
tab = self._tabs_daq_methods.insertTab(0,mft,'Fix Target')
|
||||
mft.setAccessibleName(TASK_FIX_TARGET)
|
||||
self._tabs_daq_methods.setCurrentWidget(mft) #set this as the active tabs
|
||||
|
||||
mft._cbType.addItems(["Fiducial", "FixTarget(12.5x12.5)", "FixTarget(23.0x23.0)", "FixTarget(<param>)", "Grid(<param>)"])
|
||||
@@ -1677,20 +1709,30 @@ class SwissMxWnd(QMainWindow, Ui_MainWindow):
|
||||
for go in reversed(objLst):
|
||||
if type(go)==UsrGO.FixTargetFrame:
|
||||
if j==4:
|
||||
trf=geometry.geometry.least_square_trf(ptFitTrf)
|
||||
#fid=np.array(((0.1, 0.1), (0.1, 1.1), (1.1, 0.1), (1.1, 1.1)))
|
||||
fid=np.array(go._dscr['fiducial']['pos'])
|
||||
sz=np.array(go._dscr['size'])
|
||||
fid=fid/sz
|
||||
trf=geometry.geometry.least_square_trf(ptFitTrf,fid)
|
||||
tr=go.transform()
|
||||
tr.setMatrix(100, 0, 0,
|
||||
0, 100, 0,
|
||||
0, 0, 1)
|
||||
tr.setMatrix(1, trf[1,0]/trf[0,0], 0,
|
||||
trf[0,1]/trf[1,1], 1, 0,
|
||||
0, 0, 1)
|
||||
go.setTransform(tr)
|
||||
go.setPos(trf[:,2])
|
||||
go.setSize((1,1))
|
||||
#go.setSize((1,1))
|
||||
sz=(trf[0,0],trf[1,1])
|
||||
go.setSize(sz)
|
||||
|
||||
j=0
|
||||
elif type(go)==UsrGO.Fiducial:
|
||||
ptFitTrf[j]=go.pos()+go.size()/2
|
||||
ptFitPlane[i]=go._xyz
|
||||
i+=1;j+=1
|
||||
plane=geometry.geometry.least_square_plane(ptFitPlane)
|
||||
app=QApplication.instance()
|
||||
geo=app._geometry
|
||||
if n>=3:
|
||||
geo.least_square_plane(ptFitPlane)
|
||||
|
||||
# **************** OBSOLETE AND/OR OLD STUFF ****************
|
||||
|
||||
|
||||
Reference in New Issue
Block a user