20#ifndef HDRL_RESAMPLE_H
21#define HDRL_RESAMPLE_H
28#include <hdrl_parameter.h>
37#define HDRL_RESAMPLE_TABLE_RA "ra"
38#define HDRL_RESAMPLE_TABLE_DEC "dec"
39#define HDRL_RESAMPLE_TABLE_LAMBDA "lambda"
40#define HDRL_RESAMPLE_TABLE_DATA "data"
41#define HDRL_RESAMPLE_TABLE_BPM "bpm"
42#define HDRL_RESAMPLE_TABLE_ERRORS "errors"
45#define HDRL_RESAMPLE_TABLE_RA_TYPE CPL_TYPE_DOUBLE
47#define HDRL_RESAMPLE_TABLE_DEC_TYPE CPL_TYPE_DOUBLE
49#define HDRL_RESAMPLE_TABLE_LAMBDA_TYPE CPL_TYPE_DOUBLE
51#define HDRL_RESAMPLE_TABLE_DATA_TYPE CPL_TYPE_DOUBLE
53#define HDRL_RESAMPLE_TABLE_BPM_TYPE CPL_TYPE_INT
55#define HDRL_RESAMPLE_TABLE_ERRORS_TYPE CPL_TYPE_DOUBLE
58 HDRL_RESAMPLE_METHOD_NEAREST = 0,
59 HDRL_RESAMPLE_METHOD_RENKA = 1,
60 HDRL_RESAMPLE_METHOD_LINEAR,
61 HDRL_RESAMPLE_METHOD_QUADRATIC,
62 HDRL_RESAMPLE_METHOD_DRIZZLE,
63 HDRL_RESAMPLE_METHOD_LANCZOS,
64 HDRL_RESAMPLE_METHOD_NONE
65} hdrl_resample_method ;
68 HDRL_RESAMPLE_OUTGRID_2D,
69 HDRL_RESAMPLE_OUTGRID_3D
70} hdrl_resample_outgrid ;
73 cpl_propertylist * header;
74 hdrl_imagelist * himlist;
75} hdrl_resample_result;
89 hdrl_parameter *method,
90 hdrl_parameter *outputgrid,
102 const double delta_dec);
106 const double delta_dec,
107 const double delta_lambda);
111 const double delta_dec,
114 const double dec_min,
115 const double dec_max,
116 const double fieldmargin);
120 const double delta_dec,
121 const double delta_lambda,
124 const double dec_min,
125 const double dec_max,
126 const double lambda_min,
127 const double lambda_max,
128 const double fieldmargin);
136 cpl_boolean use_errorweights,
137 const double critical_radius);
140 cpl_boolean use_errorweights,
141 const double pix_frac_x,
142 const double pix_frac_y,
143 const double pix_frac_lambda);
150 cpl_boolean use_errorweights);
154 cpl_boolean use_errorweights);
158 cpl_boolean use_errorweights,
159 const int kernel_size);
178#ifdef HDRL_USE_PRIVATE
183hdrl_wcs_xy_to_radec(
const cpl_wcs *wcs,
double x,
double y,
184 double *ra,
double *dec);
187hdrl_wcs_to_propertylist(
const cpl_wcs * wcs, cpl_propertylist * header,
hdrl_parameter * hdrl_resample_parameter_create_nearest(void)
Creates a resample nearest neighbor hdrl parameter object. The algorithm does not use any weighting f...
cpl_error_code hdrl_resample_parameter_method_verify(const hdrl_parameter *hp)
verify parameters have proper values
int hdrl_resample_parameter_method_check(const hdrl_parameter *hp)
check method is of proper type
hdrl_parameter * hdrl_resample_parameter_create_renka(const int loop_distance, cpl_boolean use_errorweights, const double critical_radius)
Creates a resample renka hdrl parameter object. The algorithm uses a modified Shepard-like distance w...
hdrl_parameter * hdrl_resample_parameter_create_lanczos(const int loop_distance, cpl_boolean use_errorweights, const int kernel_size)
Creates a resample Lanczos hdrl parameter object. The algorithm uses a restricted SINC distance weigh...
hdrl_parameter * hdrl_resample_parameter_create_drizzle(const int loop_distance, cpl_boolean use_errorweights, const double pix_frac_x, const double pix_frac_y, const double pix_frac_lambda)
Creates a resample drizzle hdrl parameter object. The algorithm uses a drizzle-like distance weightin...
hdrl_parameter * hdrl_resample_parameter_create_quadratic(const int loop_distance, cpl_boolean use_errorweights)
Creates a resample quadratic hdrl parameter object. The algorithm uses a quadratic inverse distance w...
hdrl_parameter * hdrl_resample_parameter_create_linear(const int loop_distance, cpl_boolean use_errorweights)
Creates a resample linear hdrl parameter object. The algorithm uses a linear inverse distance weighti...
hdrl_parameter * hdrl_resample_parameter_create_outgrid3D(const double delta_ra, const double delta_dec, const double delta_lambda)
Creates a resample_outgrid hdrl parameter object for a 3 dimensional interpolation,...
hdrl_parameter * hdrl_resample_parameter_create_outgrid3D_userdef(const double delta_ra, const double delta_dec, const double delta_lambda, const double ra_min, const double ra_max, const double dec_min, const double dec_max, const double lambda_min, const double lambda_max, const double fieldmargin)
Creates a resample_outgrid hdrl parameter object for a 3 dimensional interpolation,...
int hdrl_resample_parameter_outgrid_check(const hdrl_parameter *self)
check method is of proper type
hdrl_parameter * hdrl_resample_parameter_create_outgrid2D(const double delta_ra, const double delta_dec)
Creates a resample_outgrid hdrl parameter object for a 2 dimensional interpolation,...
hdrl_parameter * hdrl_resample_parameter_create_outgrid2D_userdef(const double delta_ra, const double delta_dec, const double ra_min, const double ra_max, const double dec_min, const double dec_max, const double fieldmargin)
Creates a resample_outgrid hdrl parameter object for a 2 dimensional interpolation,...
cpl_error_code hdrl_resample_parameter_outgrid_verify(const hdrl_parameter *hp)
verify parameters have proper values
hdrl_resample_result * hdrl_resample_compute(const cpl_table *restable, hdrl_parameter *method, hdrl_parameter *outputgrid, const cpl_wcs *wcs)
High level resampling function.
void hdrl_resample_result_delete(hdrl_resample_result *resdata)
Deallocates the memory associated to a hdrl_resample_result object.
cpl_table * hdrl_resample_image_to_table(const hdrl_image *hima, const cpl_wcs *wcs)
Convert a hdrl image into a cpl table that can be given as input to hdrl_resample_compute()
cpl_table * hdrl_resample_imagelist_to_table(const hdrl_imagelist *himlist, const cpl_wcs *wcs)
Convert a hdrl imagelist into a cpl table that can be given as input to hdrl_resample_compute().