High-Level Data Reduction Library 1.6.0a5
High-Level data reduction routines for ESO pipelines
Loading...
Searching...
No Matches
Hdrl_frameiter

Data Structures

struct  hdrl_frameiter_state
 

Macros

#define MAX_DIM   32
 

Functions

hdrl_iter * hdrl_frameiter_new (const cpl_frameset *frames, hdrl_iter_flags flags, intptr_t naxes, intptr_t *axes, intptr_t *offsets, intptr_t *strides, intptr_t *dims)
 create iterator over cpl_frameset
 

Detailed Description

Macro Definition Documentation

◆ MAX_DIM

#define MAX_DIM   32

Function Documentation

◆ hdrl_frameiter_new()

hdrl_iter * hdrl_frameiter_new ( const cpl_frameset *  frames,
hdrl_iter_flags  flags,
intptr_t  naxes,
intptr_t *  axes,
intptr_t *  offsets,
intptr_t *  strides,
intptr_t *  dims 
)

create iterator over cpl_frameset

Parameters
framesframes to iterate
flagsflags of iterator
naxesnumber axis to iterate
axesaxes iteration order
offsetsoffsets in axes (NULL for no offset)
stridesstrides in axes (NULL for stride 1)
dimsdimensions of axes (NULL for dimensions of data)

Create iterator over uniform frameset and extensions. Treats data as [nframes,next,nx,ny,nz] dimensional array and iterates over some axis of this data. Currently only supports iterating over frame and extension axis and returning 2d images. E.g. create iterator iterating first over the frames beginning at offset 0 and stride 1, then over the extensions beginning at offset 2 (primary is offset 0) with stride 2. It returns a cpl_image in each iteration which is owned by the caller. The dimensions are defined by the data in the frames:

it = hdrl_frameiter_new(frames, 2, (intptr_t[]){HDRL_FRAMEITER_AXIS_FRAME, HDRL_FRAMEITER_AXIS_EXT}, (intptr_t[]){0, 2}, (intptr_t[]){1, 2}, NULL), for (cpl_image * h = hdrl_iter_next(it); h != NULL; h = hdrl_iter_next(it)) { cpl_image_delete(h); } hdrl_iter_delete(it);