Skip to main content
Warning: You are using the test version of PyPI. This is a pre-production deployment of Warehouse. Changes made here affect the production instance of TestPyPI (
Help us improve Python packaging - Donate today!

Object-oriented interface for Andor EMCCD cameras

Project Description

Object-oriented, high-level interface for Andor cameras (SDK2), written in Cython.


  • This is not a stand-alone driver. Andor’s proprietary drivers must be installed. The setup script expects to find in /usr/local/lib/ (the driver’s default installation directory).

  • Andor provides a low-level, ctypes wrapper on their SDK, called atcmd. If available, it will be imported as Andor._sdk.

  • This documentation should be read along Andor’s Software Development Kit manual.

  • To build the extension:

    $ python2.7 build_ext --inplace


This module is not thread-safe. If AcqMode.wait is blocking a background thread, and another function call is made from the main thread, the main will block too.


The camera is controlled via the top-level class Andor:

>>> from andor2 import Andor
>>> cam = Andor()

The Andor instance is just a container for other objects that control various aspect of the camera:

  • Info : camera information and available features
  • Temperature : cooler control
  • Shutter : shutter control
  • EM: electron-multiplying gain control
  • Detector: CCD control, including:
    • VSS: vertical shift speed
    • HSS: horizontal shift speed
    • ADC: analog-to-digital converter
    • OutputAmp: the output amplifier
    • PreAmp: pre-amplifier control
  • ReadMode: select the CCD read-out mode (full frame, vertical binning, tracks, etc.)
  • Acquire <AcqMode>: control the acquisition mode (single shot, video, accumulate, kinetic)


>>> from andor2 import Andor
>>> cam = Andor()
>>> cam.Temperature.setpoint = -74  # start cooling
>>> cam.Temperature.cooler = True
>>> cam.Detector.OutputAmp(1)       # use conventional CCD amplifier instead of electron multiplying
>>> cam.PreAmp(2)                   # set pre-amplifier gain to 4.9
>>> cam.exposure = 10               # set exposure time to 10 ms
>>> cam.ReadMode.SingleTrack(590,5) # set readout mode: single track, 5 pixels wide, centered at 590 pixels
>>> cam.Acquire.Video()             # set acquisition mode to video (continuous)
>>> data = cam.Acquire.Newest(10)   # collect latest 10 images as numpy array
>>> cam.Acquire.stop()
>>> cam.Acquire.Kinetic(10, 0.1, 5, 0.01)    # set up kinetic sequence of 10 images every 100ms
                                         # with each image being an accumulation of 5 images
                                         # taken 10ms apart
>>> cam.Acquire.start()                      # start acquiring
>>> cam.Acquire.wait()                       # block until acquisition terminates
>>> data = cam.Acquire.GetAcquiredData()     # collect all data
Release History

Release History

This version
History Node


History Node


History Node


History Node


History Node


History Node


History Node


History Node


History Node


Download Files

Download Files

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

File Name & Checksum SHA256 Checksum Help Version File Type Upload Date
andor-1.17.tar.gz (237.4 kB) Copy SHA256 Checksum SHA256 Source Feb 26, 2016

Supported By

WebFaction WebFaction Technical Writing Elastic Elastic Search Pingdom Pingdom Monitoring Dyn Dyn DNS Sentry Sentry Error Logging CloudAMQP CloudAMQP RabbitMQ Heroku Heroku PaaS Kabu Creative Kabu Creative UX & Design Fastly Fastly CDN DigiCert DigiCert EV Certificate Rackspace Rackspace Cloud Servers DreamHost DreamHost Log Hosting