Cube operations

sinfo_cube_zshift

shifts an imagelist by a given amount to sub-pixel accuracy

Parameters:
cube input cube to be shifted
shift amount of z shift to be applied


typedef struct _CubeData CubeData
typedef struct _CubeDataVector CubeDataVector
cpl_imagelist * sinfo_cube_zshift (const cpl_imagelist *cube_inp, const double shift, double *sub_shift)
cpl_imagelist * sinfo_cube_zshift_poly (const cpl_imagelist *cube_inp, const double sub_shift, const int order)
cpl_imagelist * sinfo_cube_zshift_spline3 (const cpl_imagelist *cube_inp, const double sub_shift)

sinfo_new_cube_ops()

4 operations between 2 cubes

Parameters:
cube1 1st cube
cube2 2nd cube
operation result cube
Note:
possible operations are: # Addition '+' # Subtraction '-' # Multiplication '*' # Division '/'


cpl_imagelist * sinfo_new_cube_ops (cpl_imagelist *cube1, cpl_imagelist *cube2, int operation)
cpl_imagelist * sinfo_new_cube_const_ops (cpl_imagelist *c1, double constant, int operation)
cpl_imagelist * sinfo_new_cube_sub (cpl_imagelist *c1, cpl_imagelist *c2)
cpl_imagelist * sinfo_new_cube_add (cpl_imagelist *c1, cpl_imagelist *c2)
cpl_imagelist * sinfo_new_cube_mul (cpl_imagelist *c1, cpl_imagelist *c2)
cpl_imagelist * sinfo_new_cube_div (cpl_imagelist *c1, cpl_imagelist *c2)
cpl_imagelist * sinfo_new_add_image_to_cube (cpl_imagelist *cu, cpl_image *im)
cpl_imagelist * sinfo_new_sub_image_from_cube (cpl_imagelist *cu, cpl_image *im)
cpl_imagelist * sinfo_new_mul_image_to_cube (cpl_imagelist *cu, cpl_image *im)
cpl_imagelist * sinfo_new_div_cube_by_image (cpl_imagelist *cu, cpl_image *im)
cpl_imagelist * sinfo_new_add_spectrum_to_cube (cpl_imagelist *cu, Vector *spec)
cpl_imagelist * sinfo_new_sub_spectrum_from_cube (cpl_imagelist *cu, Vector *spec)
cpl_imagelist * sinfo_new_mul_spectrum_to_cube (cpl_imagelist *cu, Vector *spec)
cpl_imagelist * sinfo_new_div_cube_by_spectrum (cpl_imagelist *cu, Vector *spec)
Vector * sinfo_new_clean_mean_of_spectra (cpl_imagelist *cube, int llx, int lly, int urx, int ury, double lo_reject, double hi_reject)
cpl_image * sinfo_new_median_cube (cpl_imagelist *cube)
cpl_image * sinfo_new_average_cube_to_image (cpl_imagelist *cube)
cpl_image * sinfo_new_sum_cube_to_image (cpl_imagelist *cube)
cpl_image * sinfo_new_average_cube_to_image_between_waves (cpl_imagelist *cube, float dispersion, float centralWave, float initialLambda, float finalLambda)
cpl_image * sinfo_new_extract_image_from_cube (cpl_imagelist *cube, int plane_index)
Vector * sinfo_new_extract_spectrum_from_cube (cpl_imagelist *cube, int x_pos, int y_pos)
cpl_imagelist * sinfo_new_combine_jittered_cubes (cpl_imagelist **cubes, cpl_imagelist *mergedCube, int n_cubes, float *cumoffsetx, float *cumoffsety, float *exptimes, char *kernel_type)

sinfo_new_combine_jittered_cubes()

check input of cube coaddition functions

Parameters:
cubes,: list of jittered cubes to mosaic
n_cubes,: number of cubes in the list to merge
cumoffsetx,: array of relative x pixel offsets with respect to the first frame in the same sequence as the cube list.
cumoffsety,: array of relative y pixel offsets with respect to the first frame in the same sequence as the cube list.
exptimes,: exposure times array giving the time in the same sequence as the cube list


int sinfo_new_combine_jittered_cubes_range (cpl_imagelist **cubes, cpl_imagelist *mergedCube, cpl_imagelist *mask, int n_cubes, float *cumoffsetx, float *cumoffsety, double *exptimes, char *kernel_type, const int z_min, const int z_max)

sinfo_new_combine_jittered_cubes_thomas_range()

Parameters:
cubes,: list of jittered cubes to mosaic (over a given range with kappa-sigma clipping of outliers)
mergedCube,: resulting merged cube containing the jittered cubes
mask,: cube of the same size as combinedCube containing 0 for blank (ZERO pixels) and the summed integration times for overlapping regions
n_cubes,: number of cubes in the list to merge
cumoffsetx,: array of relative x pixel offsets with respect to the first frame in the same sequence as the cube list.
cumoffsety,: array of relative y pixel offsets with respect to the first frame in the same sequence as the cube list.
exptimes,: exposure times array giving the time in the same sequence as the cube list
kernel_type,: the name of the interpolation kernel that you want to generate using the eclipse routine sinfo_generate_interpolation_kernel() Supported kernels are: NULL: default kernel, currently tanh "default": dito "tanh": Hyperbolic tangent "sinc2": Square sinc "lanczos": Lanczos2 kernel "hamming": Hamming kernel "hann": Hann kernel
z_min minimum cube's plane processed
z_max maximum cube's plane processed
kappa value for kappa-sigma clipping

merges jittered data cubes to one bigger cube by averaging the overlap regions weighted by the integration times. The x, y size of the final data cube is user given, and should be between 32 and 64 pixels, while the relative pixel-offset (sub-pixel accuracy) of the single cubes with respect to the first cube in the list is read from the SEQ CUMOFFSETX,Y fits header keyword.



int sinfo_new_combine_jittered_cubes_thomas_range (cpl_imagelist **cubes, cpl_imagelist *mergedCube, cpl_imagelist *mask, int n_cubes, float *cumoffsetx, float *cumoffsety, double *exptimes, char *kernel_type, const int z_min, const int z_max, const double kappa)

sinfo_new_interpol_cube_simple()

Parameters:
cube,: 1 allocated cube
badcube,: bad pixel mask cube (0: bad, 1: good pixel)
maxdist,: maximal pixel distance from bad pixel to search for good pixels, don't make this value too big!
Returns:
interpolated cube, and corrected bad pixel mask cube interpolates bad pixel of an object cube if a bad pixel mask cube is available by using the nearest neighbors in 3 dimensions.


cpl_imagelist * sinfo_new_interpol_cube_simple (cpl_imagelist *cube, cpl_imagelist *badcube, int maxdist)

sinfo_new_combine_cubes()

Parameters:
cubes,: list of jittered cubes to mosaic
mergedCube,: resulting merged cube containing the jittered cubes
mask,: cube of the same size as combinedCube containing 0 for blank (ZERO pixels) and the summed integration times for overlapping regions
n_cubes,: number of cubes in the list to merge
cumoffsetx,: array of relative x pixel offsets with respect to the first frame in the same sequence as the cube list.
cumoffsety,: array of relative y pixel offsets with respect to the first frame in the same sequence as the cube list.

: sigma factor beyond which pixels are thrown away.

Parameters:
kernel_type,: the name of the interpolation kernel that you want to generate using the eclipse routine sinfo_generate_interpolation_kernel() Supported kernels are: NULL: default kernel, currently tanh "default": dito "tanh": Hyperbolic tangent "sinc2": Square sinc "lanczos": Lanczos2 kernel "hamming": Hamming kernel "hann": Hann kernel
Returns:
mask: cube of the same size as combinedCube containing 0 for blank (ZERO pixels) and n used pixels for overlapping regions mergedCube: final data cube containing the jittered cubes

merges jittered data cubes to one bigger cube by taking the sinfo_new_median in each pixel and throw away the high deviation pixels (bigger than factor * sigma) The x, y size of the final data cube is user given, and should be between 32 and 64 pixels, while the relative pixel-offset (sub-pixel accuracy) of the single cubes with respect to the first cube in the list is read from the SEQ CUMOFFSETX,Y fits header keyword.



cpl_imagelist * sinfo_new_combine_cubes (cpl_imagelist **cubes, cpl_imagelist *mergedCube, int n_cubes, float *cumoffsetx, float *cumoffsety, float factor, char *kernel_type)
cpl_imagelist * sinfo_new_bin_cube (cpl_imagelist *cu, int xscale, int yscale, int xmin, int xmax, int ymin, int ymax)
cpl_imagelist * sinfo_new_scale_cube (cpl_imagelist *cu, float xscale, float yscale, char *kernel_type)

sinfo_kappa_sigma_offset_with_mask

implamentation of kappa-sigma clipping

Parameters:
globalSizeX size of the result image by X axis
globalSizeY size of the result image by Y axis
z_min plane number to start coaadition
z_max the last plane number to be used for coaddition
nCubes number of cubes in the inputCubes array
inputCubes array of the input cubes, each cube is an cpl_imagelist
exptimes exposure times array, one element for each cube in inputCubes
imResult result cube
offsetX each element represents the offset of the corresponding cube by X axis
offsetY each element represents the offset of the corresponding cube by Y axis
skyMask output parameter shows "bad pixels", pixels which were not taken to calculation due kappa-sigma
kappa parameter for kappa-sigma algorithm


void kappa_sigma_CubeDataVector (int globalX, int globalY, CubeDataVector *pCubeDataVector, cpl_imagelist *imlistResult, cpl_imagelist **input_cubes, cpl_imagelist *sky_mask, int iPlanesNumber, int z_min, const double kappa, double *exptimes)
double kappa_sigma_array_with_mask (cpl_array *parray, int szArray, const double kappa, cpl_image *imMask, double *exptimes, int x, int y, double mask_delta)
int sinfo_coadd_with_ks_clip_optimized (const int z_min, const int z_max, const int n_cubes, const double kappa, int *llx, int *lly, double *exptimes, cpl_imagelist *sky_mask, cpl_imagelist *mergedCube, cpl_imagelist **tmpcubes)

cubes: list of jittered cubes to mosaic

Parameters:
mergedCube,: resulting merged cube containing the jittered cubes
n_cubes,: number of cubes in the list to merge
cumoffsetx,: array of relative x pixel offset with respect to the first frame in the same sequence as the cube list.
cumoffsety,: array of relative y pixel offsets with respect to the first frame in the same sequence as the cube list.
exptimes,: exposure times array giving the time in the same sequence as the cube list
kernel_type,: the name of the interpolation kernel that you want to generate using the eclipse routine sinfo_generate_interpolation_kernel() Supported kernels are: NULL: default kernel, currently tanh "default": dito "tanh": Hyperbolic tangent "sinc2": Square sinc "lanczos": Lanczos2 kernel "hamming": Hamming kernel "hann": Hann kernel
z_min min z of plane to be combined
z_max max z of plane to be combined
Returns:
mask: cube of the same size as combinedCube containing 0 for blank (ZERO pixels) and the summed integration times for overlapping regions merges jittered data cubes to one bigger cube by averaging the overlap regions weighted by the integration times. The x, y size of the final data cube is user given, and should be between 32 and 64 pixels, while the relative pixel-offset (sub-pixel accuracy) of the single cubes with respect to the first cube in the list is read from the SEQ CUMOFFSETX,Y fits header keyword.


cpl_imagelist * new_combine_jittered_cubes_it (cpl_imagelist **cubes, cpl_imagelist *mergedCube, cpl_imagelist *mask, int n_cubes, float *cumoffsetx, float *cumoffsety, float *exptimes, char *kernel_type, const int z)
int new_combine_jittered_cubes_sky_range (cpl_imagelist **cubes, cpl_imagelist *mergedCube, cpl_imagelist *mask, cpl_imagelist *mergedSky, cpl_imagelist *mergedMsk, cpl_imagelist *mergeMed, cpl_imagelist *mergeAvg, cpl_imagelist *mergeStd, cpl_imagelist *mergeNc, int n_cubes, float *cumoffsetx, float *cumoffsety, float *exptimes, char *kernel_type, const int z_min, const int z_max)
int new_combine_jittered_cubes_sky_range2 (cpl_imagelist **cubes, cpl_imagelist *mergedCube, cpl_imagelist *mask, cpl_imagelist *mergedSky, cpl_imagelist *mergedMsk, cpl_imagelist *mergeMed, cpl_imagelist *mergeAvg, cpl_imagelist *mergeStd, cpl_imagelist *mergeNc, int n_cubes, float *cumoffsetx, float *cumoffsety, double *exptimes, char *kernel_type, const int z_min, const int z_max)

Detailed Description

TBD


Generated on 8 Mar 2011 for SINFONI Pipeline Reference Manual by  doxygen 1.6.1