1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 2017 2018 2019 2020 2021 2022 2023 2024 <2025> | Index | 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 2017 2018 2019 2020 2021 2022 2023 2024 <2025> |
<== Date ==> | <== Thread ==> |
---|
Subject: | RE: Using NDPluginGather to collect NDArrays from multiple detectors? |
From: | Mark Rivers via Tech-talk <tech-talk at aps.anl.gov> |
To: | Jörn Dreyer <j.dreyer at hzdr.de>, "tech-talk at aps.anl.gov" <tech-talk at aps.anl.gov> |
Date: | Tue, 25 Feb 2025 17:27:50 +0000 |
Hi
Jörn, I just tested what you are trying to do with 3 ADSimDetector drivers running in the same IOC. It worked fine. I set each simDetector with AcquirePeriod=1 second, Continuous acquisition. See first attachment. I set the NDGather plugin to get its data from the 3 simDetectors. See second attachment. Note that ArrayRate=3 frames/s as expected. I set the HDF plugin to get its data from GATHER1. I set the WriteMode to Stream, NumCapture=100, and pressed Start. Note that ArrayRate is also 3 for this plugin, which is expected.
It took 33 seconds to write the HDF5 file. See third attachment, which was captured when it had saved 70/100 arrays. This is the output of h5dump –contents on the resulting HDF5 file. (base) [epics@corvette scratch]$ h5dump --contents Gather_test_024.h5 HDF5 "Gather_test_024.h5" { FILE_CONTENTS { group / group /entry group /entry/data dataset /entry/data/data group /entry/instrument group /entry/instrument/NDAttributes dataset /entry/instrument/NDAttributes/NDArrayEpicsTSSec dataset /entry/instrument/NDAttributes/NDArrayEpicsTSnSec dataset /entry/instrument/NDAttributes/NDArrayTimeStamp dataset /entry/instrument/NDAttributes/NDArrayUniqueId group /entry/instrument/detector group /entry/instrument/detector/NDAttributes dataset /entry/instrument/detector/NDAttributes/ColorMode dataset /entry/instrument/detector/data -> /entry/data/data group /entry/instrument/performance dataset /entry/instrument/performance/timestamp } } This is the output of h5dump –header for the /entry/data/ group. Note that the dimensions are (100, 1024, 1024) as expected. GROUP "data" { ATTRIBUTE "NX_class" { DATATYPE H5T_STRING { STRSIZE 7; STRPAD H5T_STR_NULLTERM; CSET H5T_CSET_ASCII; CTYPE H5T_C_S1; } DATASPACE SCALAR } DATASET "data" { DATATYPE H5T_STD_U8LE DATASPACE SIMPLE { ( 100, 1024, 1024 ) / ( 100, 1024, 1024 ) } ATTRIBUTE "NDArrayDimBinning" { DATATYPE H5T_STD_I32LE DATASPACE SIMPLE { ( 2 ) / ( 2 ) } } ATTRIBUTE "NDArrayDimOffset" { DATATYPE H5T_STD_I32LE DATASPACE SIMPLE { ( 2 ) / ( 2 ) } } ATTRIBUTE "NDArrayDimReverse" { DATATYPE H5T_STD_I32LE DATASPACE SIMPLE { ( 2 ) / ( 2 ) } } ATTRIBUTE "NDArrayNumDims" { DATATYPE H5T_STD_I32LE DATASPACE SCALAR } ATTRIBUTE "signal" { DATATYPE H5T_STD_I32LE
DATASPACE SCALAR } } } Mark From: Mark Rivers <rivers at cars.uchicago.edu>
Hi Jörn, Please set each camera so it is acquiring continuously at 1 Hz. Then send a screen shot of the Gather plugin, which should have an Array Rate = 3. Set the HDF5 plugin to Stream mode with NumCapture=100. Then press the Capture Start button to start streaming. It should save 3 arrays per second for 33 seconds and then close the file. Send
a screenshot of the HDF5 screen after you press the Capture Start button. Mark From: Jörn Dreyer <j.dreyer at hzdr.de> Hi Mark, |
Attachment:
simDetector_cam1_Gather.png
Description: simDetector_cam1_Gather.png
Attachment:
Gather_Gather.png
Description: Gather_Gather.png
Attachment:
HDF5_Gather.png
Description: HDF5_Gather.png