Skip to content

Parametric scan patterns for laser scanning microscopy

Notifications You must be signed in to change notification settings

sstucker/pyscanpatterns

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

72 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

testing PyPI version

PyScanPatterns

Parametric scan patterns for imaging applications.

Galvo drive signals, line camera/PMT exposure triggers, and frame/digitizer triggers are generated given a scan type and parameters. The exposure pulse is defined by the samples_on and samples_off parameters and this period (samples_on + samples_off) is used to create a pattern with a fixed number of exposures for a given max_line_rate.

Used for an SD-OCT imaging system, but should work for other laser scanning microscopy applications.

Installation

pip install scanpatterns

Features

The following patterns are possible:

  • Raster scan
  • Line scan
  • Raster scan with repeated A-lines
  • Raster scan with repeated B-lines
  • Bidirectional raster scan
  • Circle scans
  • Figure-8 scan (modified lissajous)
  • Rhodonea rose scan with odd number of petals

Patterns are created by calling the generate method of any LineScanPattern instance or by passing the arguments of generate to the constructor.

The resultant scan signals can be accessed via the x, y, line_trigger and frame_trigger properties.

Other properties of a pattern such as pattern_rate, frame_rate, and the arguments used to create the pattern are also available.

Gallery

Classic raster

RasterScanPattern(16, 16, 76000, samples_on=1, samples_off=10)

Stepped raster

RasterScanPattern(16, 16, 76000, samples_on=1, samples_off=10, fast_axis_step=True, slow_axis_step=True)

B-line repeated raster

RasterScanPattern(16, 16, 76000, samples_on=1, samples_off=10, bline_repeat=2)

Rectangular raster

RasterScanPattern(16, 16, 76000, fov=[1.5, 4.5], samples_on=1, samples_off=10, fast_axis_step=True, slow_axis_step=True)

Rotated raster

RasterScanPattern(16, 16, 76000, samples_on=1, samples_off=10, fast_axis_step=True, slow_axis_step=True, rotation_rad=np.pi/4)

Bidirectional raster

RasterScanPattern(15, 15, 76000, samples_on=1, samples_off=10, bidirectional=True, slow_axis_step=True)

Line scan

RasterScanPattern(15, 1, 76000, samples_on=1, samples_off=10)

Bidirectional line

RasterScanPattern(15, 1, 76000, samples_on=1, samples_off=10, bidirectional=True, rotation_rad=np.pi/8)

Circle

CircleScanPattern(64, 1.0, 76000, samples_on=1)

Sample figure-8 scan

Figure8ScanPattern(1.0, 16, 76000)

Rose p=3

RoseScanPattern(3, 1, 16, 76000, samples_on=1, samples_off=10)

Rose p=5

RoseScanPattern(5, 1, 16, 76000, samples_on=1, samples_off=10)

About

Parametric scan patterns for laser scanning microscopy

Topics

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages