raster scan camera shim#1551
Conversation
… yet full camera base class)
|
Hi Andrew, I'm really sorry I didn't respond to the original issue in a timely fashion - it came in when I was on holiday and then dropped out of my attention ... I'll follow up with more detail shortly (probably on the original issue), but the main thrust of my thoughts are as follows:
Best wishes, |
…re stagescanner to avoid variable behavior
… them in sim inits
|
Working towards a more sane/complete implementation. As it stands now the Followed your suggestions, @David-Baddeley , for multichannel, signaling 1 frame for each channel to be read in by the frameWrangler. The Preview in PYMEAcquire is a bit odd, but for now this is a really nice improvement for me to be able to use the spooling/saving framework. I modified PYME/Acquire/SpoolController.py and protocol_acquisition.py to check for the number of channels of the |
| elif self.spoolType == 'File': | ||
| backend_kwargs['complevel'] = settings.get('hdf_compression_level', self.hdf_compression_level) | ||
|
|
||
| # set dimensions and shape |
There was a problem hiding this comment.
This will need to be revisited to make sure it plays well with XYZTCAcquisition and the like. XYZTCAcquisition creates it's backend with backend(..., shape=shape, dim_order=dim_order, **backend_kwargs) meaning that you will get repeated dim_order and shape keyword arguments to the backend and an error.
|
@barentine - as noted above, SpoolController changes will need revisiting. Need to think a bit about best way to handle this, but is likely to depend on your exact requirements, specifically whether your colour acquisitions need to be
If the answers are yes and no respectively it would likely be better to use |
|
If you still think that |
|
Really appreciate the help, @David-Baddeley ! I don't have the best overview of the acquisition backends, so I appreciate your patience. In answer to your questions,
It seems like maybe a reasonable thing to do is move logic out of I think I see now how to register my own acquisition type for the subclass |
|
For now
In the reasonably short term we should probably add a channel implementation to the default XYZTC acquisition, but maybe by making a subclass the default that gets used for z stacks etc rather than modifying the base. |
… type from read (list vs list of list depending on dim)
…era voxelsize) and add XVals and YVals properties so the active voxelsize of the scanner is discovered by microscope.GetPixelSize
…ntscan cam scanner

Along the lines of #1463 , I am currently working on a system with both a camera and a point detector. Ideally, I would like to be able to shim a stage-scanned image in as a
Camera, so I can acquire images with either "camera" and/or run one from another instance for simultaneous imaging.What I'm draft PR'ing for discussion here is a close-to-minimum working example for the approach. In my init script, I'm wrapping each axis of my 3-axis stage in a
base_piezo.SingleAxisWrapperand then aoffsetPiezoREST.TargetOwningOffsetPiezoso that I can leave the global microscope position the same, and scan about that position in aRasterscanCameraShim.scancall.At the moment I've tried to set things up to accept a variety of "axes" to scan. Generally, I like the idea of using state handlers so we can scan more than just positions (i.e. scanning positions of a filter wheel would also be viable).
Is this a bugfix or an enhancement?
enhancement
Proposed changes:
RasterScanCameraShimclass to mimic a camera while actually raster-scanning a point detectorMy init script looks like the following:
init script