#include <math.h>
#include <string.h>
#include <xsh_error.h>
#include <xsh_utils_ifu.h>
#include <xsh_utils_image.h>
#include <xsh_utils_wrappers.h>
#include <xsh_pfits.h>
#include <xsh_model_io.h>
#include <xsh_data_rec.h>
#include <xsh_dfs.h>
Go to the source code of this file.
Defines | |
#define | PI_NUMB (3.1415926535897932384626433832795) |
Functions | |
static double | xsh_interpol (double x, double x1, double x2, double y1, double y2) |
static double | xsh_sess2deg (const double sess) |
Convert a double from ssessagesimal to deg: 203049.197= 20:30:49.197 = 20.5136658333. | |
static void | xsh_plist_set_coord1 (cpl_propertylist **plist, const double crpix1, const double crval1, const double cdelt1) |
set world coordinate system | |
static void | xsh_plist_set_coord2 (cpl_propertylist **plist, const double crpix2, const double crval2, const double cdelt2) |
set world coordinate system | |
static void | xsh_plist_set_coord3 (cpl_propertylist **plist, const int crpix3, const double crval3, const double cdelt3) |
set world coordinate system | |
static void | xsh_plist_set_cd_matrix2 (cpl_propertylist **plist, const double cd1_1, const double cd1_2, const double cd2_1, const double cd2_2) |
set world coordinate system: CD matrix | |
static void | xsh_plist_set_cd_matrix3 (cpl_propertylist **plist, const double cd1_3, const double cd2_3, const double cd3_1, const double cd3_2, const double cd3_3) |
set world coordinate system: CD matrix | |
static double | xsh_hms2deg (const double hms) |
Convert a double from hour minutes seconds to deg:. | |
xsh_change_plist_cube | |
cpl_error_code | xsh_cube_set_wcs (cpl_propertylist *plist, float cenLambda, float dispersion, int center_z, float center_x, float center_y) |
void | xsh_edge_check (const int px, const int nx, const int rad_x, int *llx, int *urx) |
check edge values (llx,urx) fit in image size (1,nx) | |
void | xsh_convert_xy_to_ws (double x_centroid, double *p_obj_cen, double *p_slit, double *p_wave, const int lly, const int nx, const int row, double *p_obj_cen_s, double *p_obj_cen_w) |
convert X-Y coordinates to Wavelengt Slit space | |
cpl_error_code | xsh_table_edges_swap_low_upp (cpl_table **tab) |
swap lower and upper edge columns | |
cpl_table * | xsh_table_edge_prepare (const char *name) |
Add to edges table columns to store LOW/CEN/UPP object positions. | |
cpl_error_code | xsh_ifu_trace_object_calibrate (const char *ifu_object_ff_name, const char *order_tab_edges_ifu_name, const char *slit_map_name, const char *wave_map_name) |
Function to calibrate object traces in IFU mode. | |
cpl_error_code | xsh_frame_check_model_cfg_is_proper_for_sci (cpl_frame *model_config_frame, cpl_frame *sci_frame, xsh_instrument *instrument) |
Check if a model configuration frame has been corrected for flexures. | |
cpl_error_code | xsh_frame_check_model_cfg_is_afc_corrected (cpl_frame *model_config_frame) |
utility to check if a frame has been corrected for flexures | |
cpl_error_code | xsh_build_ifu_cube (cpl_frame *div_frame, cpl_frame *ifu_config_frame, cpl_frame *spectral_format_frame, cpl_frame *model_config_frame, cpl_frame *wavesol_frame, xsh_instrument *instrument, cpl_frameset *frameset, cpl_parameterlist *parameters, xsh_rectify_param *rectify_par, const char *recipe_id, const char *rec_prefix, const int frame_is_object) |
Reconstruct IFU cube. |
#define PI_NUMB (3.1415926535897932384626433832795) |
Definition at line 41 of file xsh_utils_ifu.c.
Referenced by xsh_cube_set_wcs().
cpl_error_code xsh_build_ifu_cube | ( | cpl_frame * | div_frame, | |
cpl_frame * | ifu_config_frame, | |||
cpl_frame * | spectral_format_frame, | |||
cpl_frame * | model_config_frame, | |||
cpl_frame * | wavesol_frame, | |||
xsh_instrument * | instrument, | |||
cpl_frameset * | frameset, | |||
cpl_parameterlist * | parameters, | |||
xsh_rectify_param * | rectify_par, | |||
const char * | recipe_id, | |||
const char * | rec_prefix, | |||
const int | frame_is_object | |||
) |
Reconstruct IFU cube.
[in] | div_frame | input frame flat field corrected |
[in] | ifu_config_frame | IFU configuration frame |
[in] | spectral_format_frame | spectral format frame |
[in] | model_config_frame | model configuration frame |
[in] | wavesol_frame | wavelength solution frame |
[in] | instrument | instrument (arm) setting |
[in] | frameset | input frame set |
[in] | parameters | input parameter list |
[in] | rectify_par | input parameters to specify rectification |
[in] | recipe_id | input recipe id |
[in] | rec_prefix | input recipe prefix |
[in] | frame_is_object | flag to specify if input frame is object or sky |
Definition at line 1187 of file xsh_utils_ifu.c.
References xsh_instrument::arm, binx, biny, check, xsh_rectify_param::kernel_type, method, xsh_rectify_param::rectif_bin_lambda, xsh_rectify_param::rectif_bin_space, xsh_rectify_param::rectif_radius, s, x, xsh_add_product_imagelist(), xsh_add_product_table_multi(), XSH_ARM_NIR, xsh_arm_tostring(), XSH_ARM_UVB, XSH_ARM_VIS, xsh_cube_qc_trace_window(), xsh_frame_product(), xsh_free_frame(), xsh_free_image(), xsh_free_imagelist(), xsh_free_propertylist(), xsh_free_table(), xsh_free_vector(), xsh_iml_merge_avg(), xsh_model_binxy(), xsh_model_config_load_best(), xsh_model_get_xy(), xsh_msg, xsh_msg_debug, xsh_pfits_get_binx(), xsh_pfits_get_biny(), xsh_pfits_set_cdelt3(), xsh_pfits_set_crval3(), XSH_PRE_DATA_TYPE, XSH_PRE_ERRS_TYPE, XSH_PRE_QUAL_TYPE, xsh_rec_list_create(), xsh_rec_list_free(), xsh_wavesol_eval_polx(), xsh_wavesol_eval_poly(), xsh_wavesol_load(), and y.
Referenced by xsh_scired_ifu_offset(), and xsh_scired_ifu_stare().
void xsh_convert_xy_to_ws | ( | double | x_centroid, | |
double * | p_obj_cen, | |||
double * | p_slit, | |||
double * | p_wave, | |||
const int | lly, | |||
const int | nx, | |||
const int | row, | |||
double * | p_obj_cen_s, | |||
double * | p_obj_cen_w | |||
) |
convert X-Y coordinates to Wavelengt Slit space
x_centroid | centrod position on X axis | |
p_obj_cen | [IN] pointer to central object array | |
p_slit | [IN] pointer to slit array | |
p_wave | [IN] pointer to wave array | |
lly | [IN] Lower left X | |
nx | [IN] number of X points (vector size) l | |
row | [IN] detector row position(Y) | |
p_obj_cen_s | [OUT] pointer to object s position | |
p_obj_cen_w | [OUT] pointer to object s position |
Definition at line 546 of file xsh_utils_ifu.c.
References xsh_interpol().
Referenced by xsh_ifu_trace_object_calibrate().
cpl_error_code xsh_cube_set_wcs | ( | cpl_propertylist * | plist, | |
float | cenLambda, | |||
float | dispersion, | |||
int | center_z, | |||
float | center_x, | |||
float | center_y | |||
) |
Definition at line 418 of file xsh_utils_ifu.c.
References PI_NUMB, xsh_hms2deg(), xsh_pfits_get_dec(), xsh_pfits_get_pixscale(), xsh_pfits_get_posangle(), xsh_pfits_get_ra(), xsh_pfits_get_tel_targ_alpha(), xsh_pfits_get_tel_targ_delta(), xsh_plist_set_cd_matrix2(), xsh_plist_set_cd_matrix3(), xsh_plist_set_coord1(), xsh_plist_set_coord2(), xsh_plist_set_coord3(), and xsh_sess2deg().
void xsh_edge_check | ( | const int | px, | |
const int | nx, | |||
const int | rad_x, | |||
int * | llx, | |||
int * | urx | |||
) |
check edge values (llx,urx) fit in image size (1,nx)
px | [IN] point position | |
nx | [IN] x image size | |
rad_x | [IN] x radii | |
llx | [OUT] lower left X | |
urx | [OUT] upper right X |
Definition at line 514 of file xsh_utils_ifu.c.
Referenced by xsh_ifu_trace_object_calibrate().
cpl_error_code xsh_frame_check_model_cfg_is_afc_corrected | ( | cpl_frame * | model_config_frame | ) |
utility to check if a frame has been corrected for flexures
model_config_frame | input frame |
Definition at line 1143 of file xsh_utils_ifu.c.
References check, xsh_free_propertylist(), xsh_msg_error, and xsh_pfits_get_raw1catg().
Referenced by xsh_scired_ifu_stare().
cpl_error_code xsh_frame_check_model_cfg_is_proper_for_sci | ( | cpl_frame * | model_config_frame, | |
cpl_frame * | sci_frame, | |||
xsh_instrument * | instrument | |||
) |
Check if a model configuration frame has been corrected for flexures.
model_config_frame | model configuration frame | |
sci_frame | science frame | |
instrument | instrument setting |
Definition at line 1074 of file xsh_utils_ifu.c.
References check, xsh_free_propertylist(), xsh_msg_error, xsh_pfits_get_obs_id(), xsh_pfits_get_obs_targ_name(), and xsh_pfits_get_slit_value().
Referenced by xsh_scired_ifu_stare().
static double xsh_hms2deg | ( | const double | hms | ) | [static] |
Convert a double from hour minutes seconds to deg:.
hms | angle in hour-minutes-seconds |
Definition at line 319 of file xsh_utils_ifu.c.
Referenced by xsh_cube_set_wcs().
cpl_error_code xsh_ifu_trace_object_calibrate | ( | const char * | ifu_object_ff_name, | |
const char * | order_tab_edges_ifu_name, | |||
const char * | slit_map_name, | |||
const char * | wave_map_name | |||
) |
Function to calibrate object traces in IFU mode.
ifu_object_ff_name | name of input object frame (flat field corrected) | |
order_tab_edges_ifu_name | name of input edge order table | |
slit_map_name | slit map filename | |
wave_map_name | wave map filename |
Definition at line 787 of file xsh_utils_ifu.c.
References binx, biny, check, llx, lly, nx, ny, urx, ury, XSH_ARM_NIR, xsh_arm_tostring(), XSH_ARM_UNDEFINED, XSH_ARM_UVB, XSH_ARM_VIS, xsh_convert_xy_to_ws(), xsh_edge_check(), xsh_free_image(), xsh_free_propertylist(), xsh_image_fit_gaussian_max_pos_x_window(), xsh_msg, xsh_pfits_get_binx(), xsh_pfits_get_biny(), xsh_pfits_get_pcatg(), xsh_pfits_set_pcatg(), xsh_table_edge_prepare(), and xsh_table_edges_swap_low_upp().
Referenced by xsh_scired_ifu_stare().
static double xsh_interpol | ( | double | x, | |
double | x1, | |||
double | x2, | |||
double | y1, | |||
double | y2 | |||
) | [static] |
Definition at line 44 of file xsh_utils_ifu.c.
Referenced by xsh_convert_xy_to_ws().
static void xsh_plist_set_cd_matrix2 | ( | cpl_propertylist ** | plist, | |
const double | cd1_1, | |||
const double | cd1_2, | |||
const double | cd2_1, | |||
const double | cd2_2 | |||
) | [static] |
set world coordinate system: CD matrix
plist | input propertylist | |
cd1_1 | value of CD1_1 | |
cd1_2 | value of CD1_2 | |
cd2_1 | value of CD2_1 | |
cd2_2 | value of CD2_2 |
Definition at line 213 of file xsh_utils_ifu.c.
References check.
Referenced by xsh_cube_set_wcs().
static void xsh_plist_set_cd_matrix3 | ( | cpl_propertylist ** | plist, | |
const double | cd1_3, | |||
const double | cd2_3, | |||
const double | cd3_1, | |||
const double | cd3_2, | |||
const double | cd3_3 | |||
) | [static] |
set world coordinate system: CD matrix
plist | input propertylist | |
cd1_3 | value of CD1_3 | |
cd2_3 | value of CD2_3 | |
cd3_1 | value of CD3_1 | |
cd3_2 | value of CD3_2 | |
cd3_3 | value of CD3_3 |
Definition at line 264 of file xsh_utils_ifu.c.
References check.
Referenced by xsh_cube_set_wcs().
static void xsh_plist_set_coord1 | ( | cpl_propertylist ** | plist, | |
const double | crpix1, | |||
const double | crval1, | |||
const double | cdelt1 | |||
) | [static] |
set world coordinate system
plist | input propertylist | |
crpix1 | value of CRPIX1 (ref pixel axis 1 coord in pix coordinates) | |
crval1 | value of CRVAL1 (ref pixel axis 1 coord in sky coordinates) | |
cdelt1 | value of CDELT1 (ref pixel axis 1 size ) |
Definition at line 97 of file xsh_utils_ifu.c.
Referenced by xsh_cube_set_wcs().
static void xsh_plist_set_coord2 | ( | cpl_propertylist ** | plist, | |
const double | crpix2, | |||
const double | crval2, | |||
const double | cdelt2 | |||
) | [static] |
set world coordinate system
plist | input propertylist | |
crpix2 | value of CRPIX2 (ref pixel axis 2 coord in pix coordinates) | |
crval2 | value of CRVAL2 (ref pixel axis 2 coord in sky coordinates) | |
cdelt2 | value of CDELT2 (ref pixel axis 2 size ) |
Definition at line 134 of file xsh_utils_ifu.c.
Referenced by xsh_cube_set_wcs().
static void xsh_plist_set_coord3 | ( | cpl_propertylist ** | plist, | |
const int | crpix3, | |||
const double | crval3, | |||
const double | cdelt3 | |||
) | [static] |
set world coordinate system
plist | input propertylist | |
crpix3 | value of CRPIX3 (ref pixel axis 3 coord in pix coordinates) | |
crval3 | value of CRVAL3 (ref pixel axis 3 coord in sky coordinates) | |
cdelt3 | value of CDELT3 (ref pixel axis 3 size ) |
Definition at line 173 of file xsh_utils_ifu.c.
Referenced by xsh_cube_set_wcs().
static double xsh_sess2deg | ( | const double | sess | ) | [static] |
Convert a double from ssessagesimal to deg: 203049.197= 20:30:49.197 = 20.5136658333.
sess | angle in seesagesimal units (see above) |
Definition at line 365 of file xsh_utils_ifu.c.
Referenced by xsh_cube_set_wcs().
cpl_table* xsh_table_edge_prepare | ( | const char * | name | ) |
Add to edges table columns to store LOW/CEN/UPP object positions.
name | [IN] input file name |
Definition at line 633 of file xsh_utils_ifu.c.
References check.
Referenced by xsh_ifu_trace_object_calibrate().
cpl_error_code xsh_table_edges_swap_low_upp | ( | cpl_table ** | tab | ) |
swap lower and upper edge columns
tab | [INOUT] pointer to input/output table |
Definition at line 590 of file xsh_utils_ifu.c.
Referenced by xsh_ifu_trace_object_calibrate().