Skip to content

FXI: triggering Andor detector takes long time #188

@gmysage

Description

@gmysage

It looks like triggering the detector takes a large portion of overhead time. Here is what I have tried (exposure time and acquire period are set to 0.05s for all test):

  1. For Andor camera, I can reach 17 Hz if running in continuous mode in CSS.

  2. If I run the scan: RE(count([Andor], 100), it takes 90sec for 100 images, corresponding to scanning rate of 1.2Hz

  3. If I choose to take multiple images (e.g. 10 images) per each triggering, and run RE(count([Andor], 10)), it gives a image shape of (10, 10, 2160, 2560), effectively 100 images using 17 sec, which means the scanning rate is about 5.9 Hz

  4. If I choose to take 100 images per each triggering, and run RE(count([Andor], 1)), it gives a image shape of (1, 100, 2160,2560), and it takes about 10sec, so it is 10 Hz

The problem in taking multiple images per triggering is that, it does not record the motor position (e.g. rotation stage in "fly scan")

Based on the observation, it looks like triggering the detector takes a lot of overhead:

In [9]: RE(count([Andor], 10))
19:19:03.532400 stage             -> Andor           args: (), kwargs: {}
19:19:03.777227 open_run          -> None            args: (), kwargs: {'detectors': ['Andor'], 'num_points': 10, 'num_intervals': 9, 'plan_args': {'detectors': ["Manta(prefix='XF:18IDB-BI{Det:Neo}', name='Andor', read_attrs=['hdf5', 'stats1', 'stats5'], configuration_attrs=['cam'])"], 'num': 10}, 'plan_name': 'count', 'hints': {'dimensions': [(('time',), 'primary')]}}
19:19:03.909235 checkpoint        -> None            args: (), kwargs: {}
19:19:03.909457 trigger           -> Andor           args: (), kwargs: {'group': 'trigger-82cf66'}
19:19:03.911521 wait              -> None            args: (), kwargs: {'group': 'trigger-82cf66'}
19:19:04.554847 create            -> None            args: (), kwargs: {'name': 'primary'}                                                          
19:19:04.554978 read              -> Andor           args: (), kwargs: {}
19:19:04.580523 save              -> None            args: (), kwargs: {}
19:19:04.589170 checkpoint        -> None            args: (), kwargs: {}
19:19:04.589365 trigger           -> Andor           args: (), kwargs: {'group': 'trigger-d5bb5c'}
19:19:04.591320 wait              -> None            args: (), kwargs: {'group': 'trigger-d5bb5c'}
19:19:05.295046 create            -> None            args: (), kwargs: {'name': 'primary'}                                                          
19:19:05.295234 read              -> Andor           args: (), kwargs: {}
19:19:05.297107 save              -> None            args: (), kwargs: {}
19:19:05.300038 checkpoint        -> None            args: (), kwargs: {}
19:19:05.300314 trigger           -> Andor           args: (), kwargs: {'group': 'trigger-e7da9b'}
19:19:05.302524 wait              -> None            args: (), kwargs: {'group': 'trigger-e7da9b'}
19:19:05.953721 create            -> None            args: (), kwargs: {'name': 'primary'}                                                          
19:19:05.953915 read              -> Andor           args: (), kwargs: {}
19:19:05.955782 save              -> None            args: (), kwargs: {}
19:19:05.958449 checkpoint        -> None            args: (), kwargs: {}
19:19:05.958700 trigger           -> Andor           args: (), kwargs: {'group': 'trigger-fac4a8'}
19:19:05.960827 wait              -> None            args: (), kwargs: {'group': 'trigger-fac4a8'}
19:19:06.660897 create            -> None            args: (), kwargs: {'name': 'primary'}                                                          
19:19:06.661033 read              -> Andor           args: (), kwargs: {}
19:19:06.662482 save              -> None            args: (), kwargs: {}
19:19:06.665135 checkpoint        -> None            args: (), kwargs: {}
19:19:06.665372 trigger           -> Andor           args: (), kwargs: {'group': 'trigger-cd8617'}
19:19:06.667395 wait              -> None            args: (), kwargs: {'group': 'trigger-cd8617'}
19:19:07.323329 create            -> None            args: (), kwargs: {'name': 'primary'}                                                          
19:19:07.323448 read              -> Andor           args: (), kwargs: {}
19:19:07.324518 save              -> None            args: (), kwargs: {}
19:19:07.326162 checkpoint        -> None            args: (), kwargs: {}
19:19:07.326309 trigger           -> Andor           args: (), kwargs: {'group': 'trigger-59aac4'}
19:19:07.327962 wait              -> None            args: (), kwargs: {'group': 'trigger-59aac4'}
19:19:08.045736 create            -> None            args: (), kwargs: {'name': 'primary'}                                                          
19:19:08.045932 read              -> Andor           args: (), kwargs: {}
19:19:08.047479 save              -> None            args: (), kwargs: {}
19:19:08.051042 checkpoint        -> None            args: (), kwargs: {}
19:19:08.051365 trigger           -> Andor           args: (), kwargs: {'group': 'trigger-b86e12'}
19:19:08.053808 wait              -> None            args: (), kwargs: {'group': 'trigger-b86e12'}
19:19:08.702118 create            -> None            args: (), kwargs: {'name': 'primary'}                                                          
19:19:08.702250 read              -> Andor           args: (), kwargs: {}
19:19:08.703764 save              -> None            args: (), kwargs: {}
19:19:08.705595 checkpoint        -> None            args: (), kwargs: {}
19:19:08.705758 trigger           -> Andor           args: (), kwargs: {'group': 'trigger-571046'}
19:19:08.707237 wait              -> None            args: (), kwargs: {'group': 'trigger-571046'}
19:19:09.410331 create            -> None            args: (), kwargs: {'name': 'primary'}                                                          
19:19:09.410446 read              -> Andor           args: (), kwargs: {}
19:19:09.411741 save              -> None            args: (), kwargs: {}
19:19:09.413733 checkpoint        -> None            args: (), kwargs: {}
19:19:09.413903 trigger           -> Andor           args: (), kwargs: {'group': 'trigger-bfe105'}
19:19:09.415342 wait              -> None            args: (), kwargs: {'group': 'trigger-bfe105'}
19:19:10.071331 create            -> None            args: (), kwargs: {'name': 'primary'}                                                          
19:19:10.071493 read              -> Andor           args: (), kwargs: {}
19:19:10.072843 save              -> None            args: (), kwargs: {}
19:19:10.075255 checkpoint        -> None            args: (), kwargs: {}
19:19:10.075467 trigger           -> Andor           args: (), kwargs: {'group': 'trigger-b4dd59'}
19:19:10.077603 wait              -> None            args: (), kwargs: {'group': 'trigger-b4dd59'}
19:19:10.790743 create            -> None            args: (), kwargs: {'name': 'primary'}                                                          
19:19:10.790852 read              -> Andor           args: (), kwargs: {}
19:19:10.792053 save              -> None            args: (), kwargs: {}
19:19:10.793862 close_run         -> None            args: (), kwargs: {'exit_status': None, 'reason': None}
19:19:10.798074 unstage           -> Andor           args: (), kwargs: {}
Out[9]: ('8e222e68-56b6-4224-b731-3ef9e904eadc',)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions