Skip to main content

Parametric patterns for laser scanning microscopy

Project description

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 ultrasound and 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)

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

scanpatterns-0.2.0.tar.gz (11.2 kB view hashes)

Uploaded Source

Built Distribution

scanpatterns-0.2.0-py3-none-any.whl (9.9 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page