00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef IRPLIB_SDP_SPECTRUM_H
00021 #define IRPLIB_SDP_SPECTRUM_H
00022
00023
00024
00025
00026
00027 #include <cpl.h>
00028 #include <math.h>
00029
00030 CPL_BEGIN_DECLS
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040 #ifndef NAN
00041 # ifdef IRPLIB_USE_ZERO_BY_ZERO_FOR_NAN
00042
00043 # define NAN (0.0/0.0)
00044
00045 # else
00046
00047 # include <assert.h>
00048 # include <stdint.h>
00049 # include <string.h>
00050
00051 inline static float _irplib_nan_const(void)
00052 {
00053
00054
00055
00056
00057
00058
00059
00060
00061 uint32_t i = 0xFFC00000;
00062 float f;
00063 assert(sizeof(i) == sizeof(f));
00064 memcpy(&f, &i, sizeof(f));
00065 return f;
00066 }
00067
00068 # define NAN _irplib_nan_const()
00069
00070 # endif
00071 #endif
00072
00073
00074
00075
00076
00081 typedef struct _irplib_sdp_spectrum_ irplib_sdp_spectrum;
00082
00087 typedef enum _irplib_sdp_spectrum_update_flags_ {
00088
00089 IRPLIB_COLUMN_UNIT = 1 << 1,
00090
00091
00092 IRPLIB_COLUMN_FORMAT = 1 << 2,
00093
00094
00095 IRPLIB_COLUMN_DATA = 1 << 3
00096
00097 } irplib_sdp_spectrum_update_flags;
00098
00099
00100
00101
00102
00103
00104
00105
00106
00107 irplib_sdp_spectrum * irplib_sdp_spectrum_new(void) CPL_ATTR_ALLOC;
00108
00109 irplib_sdp_spectrum *
00110 irplib_sdp_spectrum_duplicate(const irplib_sdp_spectrum *other) CPL_ATTR_ALLOC;
00111
00112 void irplib_sdp_spectrum_delete(irplib_sdp_spectrum *self);
00113
00114
00115
00116
00117
00118 cpl_boolean irplib_sdp_spectrum_equal(const irplib_sdp_spectrum *a,
00119 const irplib_sdp_spectrum *b,
00120 cpl_boolean only_intersect);
00121
00122
00123
00124
00125 cpl_size irplib_sdp_spectrum_count_obid(const irplib_sdp_spectrum *self);
00126 cpl_size irplib_sdp_spectrum_count_prov(const irplib_sdp_spectrum *self);
00127 cpl_size irplib_sdp_spectrum_count_asson(const irplib_sdp_spectrum *self);
00128 cpl_size irplib_sdp_spectrum_count_assoc(const irplib_sdp_spectrum *self);
00129 cpl_size irplib_sdp_spectrum_count_assom(const irplib_sdp_spectrum *self);
00130
00131
00132
00133
00134 cpl_error_code irplib_sdp_spectrum_copy_keyword(irplib_sdp_spectrum *self,
00135 const cpl_propertylist *plist,
00136 const char *name);
00137
00138 cpl_error_code irplib_sdp_spectrum_copy_property(irplib_sdp_spectrum *self,
00139 const cpl_property *prop);
00140
00141 cpl_error_code irplib_sdp_spectrum_copy_property_regexp(
00142 irplib_sdp_spectrum *self,
00143 const cpl_propertylist *plist,
00144 const char *regexp,
00145 int invert);
00146
00147
00148
00149
00150
00151 double irplib_sdp_spectrum_get_ra(const irplib_sdp_spectrum *self);
00152 cpl_error_code irplib_sdp_spectrum_reset_ra(irplib_sdp_spectrum *self);
00153 cpl_error_code irplib_sdp_spectrum_set_ra(irplib_sdp_spectrum *self,
00154 double value);
00155 cpl_error_code irplib_sdp_spectrum_copy_ra(irplib_sdp_spectrum *self,
00156 const cpl_propertylist *plist,
00157 const char *name);
00158
00159 double irplib_sdp_spectrum_get_dec(const irplib_sdp_spectrum *self);
00160 cpl_error_code irplib_sdp_spectrum_reset_dec(irplib_sdp_spectrum *self);
00161 cpl_error_code irplib_sdp_spectrum_set_dec(irplib_sdp_spectrum *self,
00162 double value);
00163 cpl_error_code irplib_sdp_spectrum_copy_dec(irplib_sdp_spectrum *self,
00164 const cpl_propertylist *plist,
00165 const char *name);
00166
00167 double irplib_sdp_spectrum_get_exptime(const irplib_sdp_spectrum *self);
00168 cpl_error_code irplib_sdp_spectrum_reset_exptime(irplib_sdp_spectrum *self);
00169 cpl_error_code irplib_sdp_spectrum_set_exptime(irplib_sdp_spectrum *self,
00170 double value);
00171 cpl_error_code irplib_sdp_spectrum_copy_exptime(irplib_sdp_spectrum *self,
00172 const cpl_propertylist *plist,
00173 const char *name);
00174
00175 double irplib_sdp_spectrum_get_texptime(const irplib_sdp_spectrum *self);
00176 cpl_error_code irplib_sdp_spectrum_reset_texptime(irplib_sdp_spectrum *self);
00177 cpl_error_code irplib_sdp_spectrum_set_texptime(irplib_sdp_spectrum *self,
00178 double value);
00179 cpl_error_code irplib_sdp_spectrum_copy_texptime(irplib_sdp_spectrum *self,
00180 const cpl_propertylist *plist,
00181 const char *name);
00182
00183 double irplib_sdp_spectrum_get_mjdobs(const irplib_sdp_spectrum *self);
00184 cpl_error_code irplib_sdp_spectrum_reset_mjdobs(irplib_sdp_spectrum *self);
00185 cpl_error_code irplib_sdp_spectrum_set_mjdobs(irplib_sdp_spectrum *self,
00186 double value);
00187 cpl_error_code irplib_sdp_spectrum_copy_mjdobs(irplib_sdp_spectrum *self,
00188 const cpl_propertylist *plist,
00189 const char *name);
00190
00191 const char * irplib_sdp_spectrum_get_timesys(const irplib_sdp_spectrum *self);
00192 cpl_error_code irplib_sdp_spectrum_reset_timesys(irplib_sdp_spectrum *self);
00193 cpl_error_code irplib_sdp_spectrum_set_timesys(irplib_sdp_spectrum *self,
00194 const char *value);
00195 cpl_error_code irplib_sdp_spectrum_copy_timesys(irplib_sdp_spectrum *self,
00196 const cpl_propertylist *plist,
00197 const char *name);
00198
00199 double irplib_sdp_spectrum_get_mjdend(const irplib_sdp_spectrum *self);
00200 cpl_error_code irplib_sdp_spectrum_reset_mjdend(irplib_sdp_spectrum *self);
00201 cpl_error_code irplib_sdp_spectrum_set_mjdend(irplib_sdp_spectrum *self,
00202 double value);
00203 cpl_error_code irplib_sdp_spectrum_copy_mjdend(irplib_sdp_spectrum *self,
00204 const cpl_propertylist *plist,
00205 const char *name);
00206
00207 int irplib_sdp_spectrum_get_prodlvl(const irplib_sdp_spectrum *self);
00208 cpl_error_code irplib_sdp_spectrum_reset_prodlvl(irplib_sdp_spectrum *self);
00209 cpl_error_code irplib_sdp_spectrum_set_prodlvl(irplib_sdp_spectrum *self,
00210 int value);
00211 cpl_error_code irplib_sdp_spectrum_copy_prodlvl(irplib_sdp_spectrum *self,
00212 const cpl_propertylist *plist,
00213 const char *name);
00214
00215 const char * irplib_sdp_spectrum_get_procsoft(const irplib_sdp_spectrum *self);
00216 cpl_error_code irplib_sdp_spectrum_reset_procsoft(irplib_sdp_spectrum *self);
00217 cpl_error_code irplib_sdp_spectrum_set_procsoft(irplib_sdp_spectrum *self,
00218 const char *value);
00219 cpl_error_code irplib_sdp_spectrum_copy_procsoft(irplib_sdp_spectrum *self,
00220 const cpl_propertylist *plist,
00221 const char *name);
00222
00223 const char * irplib_sdp_spectrum_get_prodcatg(const irplib_sdp_spectrum *self);
00224 cpl_error_code irplib_sdp_spectrum_reset_prodcatg(irplib_sdp_spectrum *self);
00225 cpl_error_code irplib_sdp_spectrum_set_prodcatg(irplib_sdp_spectrum *self,
00226 const char *value);
00227 cpl_error_code irplib_sdp_spectrum_copy_prodcatg(irplib_sdp_spectrum *self,
00228 const cpl_propertylist *plist,
00229 const char *name);
00230
00231 const char * irplib_sdp_spectrum_get_origin(const irplib_sdp_spectrum *self);
00232 cpl_error_code irplib_sdp_spectrum_reset_origin(irplib_sdp_spectrum *self);
00233 cpl_error_code irplib_sdp_spectrum_set_origin(irplib_sdp_spectrum *self,
00234 const char *value);
00235 cpl_error_code irplib_sdp_spectrum_copy_origin(irplib_sdp_spectrum *self,
00236 const cpl_propertylist *plist,
00237 const char *name);
00238
00239 cpl_boolean irplib_sdp_spectrum_get_extobj(const irplib_sdp_spectrum *self);
00240 cpl_error_code irplib_sdp_spectrum_reset_extobj(irplib_sdp_spectrum *self);
00241 cpl_error_code irplib_sdp_spectrum_set_extobj(irplib_sdp_spectrum *self,
00242 cpl_boolean value);
00243 cpl_error_code irplib_sdp_spectrum_copy_extobj(irplib_sdp_spectrum *self,
00244 const cpl_propertylist *plist,
00245 const char *name);
00246
00247 const char * irplib_sdp_spectrum_get_dispelem(const irplib_sdp_spectrum *self);
00248 cpl_error_code irplib_sdp_spectrum_reset_dispelem(irplib_sdp_spectrum *self);
00249 cpl_error_code irplib_sdp_spectrum_set_dispelem(irplib_sdp_spectrum *self,
00250 const char *value);
00251 cpl_error_code irplib_sdp_spectrum_copy_dispelem(irplib_sdp_spectrum *self,
00252 const cpl_propertylist *plist,
00253 const char *name);
00254
00255 const char * irplib_sdp_spectrum_get_specsys(const irplib_sdp_spectrum *self);
00256 cpl_error_code irplib_sdp_spectrum_reset_specsys(irplib_sdp_spectrum *self);
00257 cpl_error_code irplib_sdp_spectrum_set_specsys(irplib_sdp_spectrum *self,
00258 const char *value);
00259 cpl_error_code irplib_sdp_spectrum_copy_specsys(irplib_sdp_spectrum *self,
00260 const cpl_propertylist *plist,
00261 const char *name);
00262
00263 const char * irplib_sdp_spectrum_get_progid(const irplib_sdp_spectrum *self);
00264 cpl_error_code irplib_sdp_spectrum_reset_progid(irplib_sdp_spectrum *self);
00265 cpl_error_code irplib_sdp_spectrum_set_progid(irplib_sdp_spectrum *self,
00266 const char *value);
00267 cpl_error_code irplib_sdp_spectrum_copy_progid(irplib_sdp_spectrum *self,
00268 const cpl_propertylist *plist,
00269 const char *name);
00270
00271 int irplib_sdp_spectrum_get_obid(const irplib_sdp_spectrum *self,
00272 cpl_size index);
00273 cpl_error_code irplib_sdp_spectrum_reset_obid(irplib_sdp_spectrum *self,
00274 cpl_size index);
00275 cpl_error_code irplib_sdp_spectrum_set_obid(irplib_sdp_spectrum *self,
00276 cpl_size index, int value);
00277 cpl_error_code irplib_sdp_spectrum_copy_obid(irplib_sdp_spectrum *self,
00278 cpl_size index,
00279 const cpl_propertylist *plist,
00280 const char *name);
00281
00282 cpl_boolean irplib_sdp_spectrum_get_mepoch(const irplib_sdp_spectrum *self);
00283 cpl_error_code irplib_sdp_spectrum_reset_mepoch(irplib_sdp_spectrum *self);
00284 cpl_error_code irplib_sdp_spectrum_set_mepoch(irplib_sdp_spectrum *self,
00285 cpl_boolean value);
00286 cpl_error_code irplib_sdp_spectrum_copy_mepoch(irplib_sdp_spectrum *self,
00287 const cpl_propertylist *plist,
00288 const char *name);
00289
00290 const char * irplib_sdp_spectrum_get_obstech(const irplib_sdp_spectrum *self);
00291 cpl_error_code irplib_sdp_spectrum_reset_obstech(irplib_sdp_spectrum *self);
00292 cpl_error_code irplib_sdp_spectrum_set_obstech(irplib_sdp_spectrum *self,
00293 const char *value);
00294 cpl_error_code irplib_sdp_spectrum_copy_obstech(irplib_sdp_spectrum *self,
00295 const cpl_propertylist *plist,
00296 const char *name);
00297
00298 const char * irplib_sdp_spectrum_get_fluxcal(const irplib_sdp_spectrum *self);
00299 cpl_error_code irplib_sdp_spectrum_reset_fluxcal(irplib_sdp_spectrum *self);
00300 cpl_error_code irplib_sdp_spectrum_set_fluxcal(irplib_sdp_spectrum *self,
00301 const char *value);
00302 cpl_error_code irplib_sdp_spectrum_copy_fluxcal(irplib_sdp_spectrum *self,
00303 const cpl_propertylist *plist,
00304 const char *name);
00305
00306 cpl_boolean irplib_sdp_spectrum_get_contnorm(const irplib_sdp_spectrum *self);
00307 cpl_error_code irplib_sdp_spectrum_reset_contnorm(irplib_sdp_spectrum *self);
00308 cpl_error_code irplib_sdp_spectrum_set_contnorm(irplib_sdp_spectrum *self,
00309 cpl_boolean value);
00310 cpl_error_code irplib_sdp_spectrum_copy_contnorm(irplib_sdp_spectrum *self,
00311 const cpl_propertylist *plist,
00312 const char *name);
00313
00314 double irplib_sdp_spectrum_get_wavelmin(const irplib_sdp_spectrum *self);
00315 cpl_error_code irplib_sdp_spectrum_reset_wavelmin(irplib_sdp_spectrum *self);
00316 cpl_error_code irplib_sdp_spectrum_set_wavelmin(irplib_sdp_spectrum *self,
00317 double value);
00318 cpl_error_code irplib_sdp_spectrum_copy_wavelmin(irplib_sdp_spectrum *self,
00319 const cpl_propertylist *plist,
00320 const char *name);
00321
00322 double irplib_sdp_spectrum_get_wavelmax(const irplib_sdp_spectrum *self);
00323 cpl_error_code irplib_sdp_spectrum_reset_wavelmax(irplib_sdp_spectrum *self);
00324 cpl_error_code irplib_sdp_spectrum_set_wavelmax(irplib_sdp_spectrum *self,
00325 double value);
00326 cpl_error_code irplib_sdp_spectrum_copy_wavelmax(irplib_sdp_spectrum *self,
00327 const cpl_propertylist *plist,
00328 const char *name);
00329
00330 double irplib_sdp_spectrum_get_specbin(const irplib_sdp_spectrum *self);
00331 cpl_error_code irplib_sdp_spectrum_reset_specbin(irplib_sdp_spectrum *self);
00332 cpl_error_code irplib_sdp_spectrum_set_specbin(irplib_sdp_spectrum *self,
00333 double value);
00334 cpl_error_code irplib_sdp_spectrum_copy_specbin(irplib_sdp_spectrum *self,
00335 const cpl_propertylist *plist,
00336 const char *name);
00337
00338 cpl_boolean irplib_sdp_spectrum_get_totflux(const irplib_sdp_spectrum *self);
00339 cpl_error_code irplib_sdp_spectrum_reset_totflux(irplib_sdp_spectrum *self);
00340 cpl_error_code irplib_sdp_spectrum_set_totflux(irplib_sdp_spectrum *self,
00341 cpl_boolean value);
00342 cpl_error_code irplib_sdp_spectrum_copy_totflux(irplib_sdp_spectrum *self,
00343 const cpl_propertylist *plist,
00344 const char *name);
00345
00346 double irplib_sdp_spectrum_get_fluxerr(const irplib_sdp_spectrum *self);
00347 cpl_error_code irplib_sdp_spectrum_reset_fluxerr(irplib_sdp_spectrum *self);
00348 cpl_error_code irplib_sdp_spectrum_set_fluxerr(irplib_sdp_spectrum *self,
00349 double value);
00350 cpl_error_code irplib_sdp_spectrum_copy_fluxerr(irplib_sdp_spectrum *self,
00351 const cpl_propertylist *plist,
00352 const char *name);
00353
00354 const char * irplib_sdp_spectrum_get_referenc(const irplib_sdp_spectrum *self);
00355 cpl_error_code irplib_sdp_spectrum_reset_referenc(irplib_sdp_spectrum *self);
00356 cpl_error_code irplib_sdp_spectrum_set_referenc(irplib_sdp_spectrum *self,
00357 const char *value);
00358 cpl_error_code irplib_sdp_spectrum_copy_referenc(irplib_sdp_spectrum *self,
00359 const cpl_propertylist *plist,
00360 const char *name);
00361
00362 double irplib_sdp_spectrum_get_specres(const irplib_sdp_spectrum *self);
00363 cpl_error_code irplib_sdp_spectrum_reset_specres(irplib_sdp_spectrum *self);
00364 cpl_error_code irplib_sdp_spectrum_set_specres(irplib_sdp_spectrum *self,
00365 double value);
00366 cpl_error_code irplib_sdp_spectrum_copy_specres(irplib_sdp_spectrum *self,
00367 const cpl_propertylist *plist,
00368 const char *name);
00369
00370 double irplib_sdp_spectrum_get_specerr(const irplib_sdp_spectrum *self);
00371 cpl_error_code irplib_sdp_spectrum_reset_specerr(irplib_sdp_spectrum *self);
00372 cpl_error_code irplib_sdp_spectrum_set_specerr(irplib_sdp_spectrum *self,
00373 double value);
00374 cpl_error_code irplib_sdp_spectrum_copy_specerr(irplib_sdp_spectrum *self,
00375 const cpl_propertylist *plist,
00376 const char *name);
00377
00378 double irplib_sdp_spectrum_get_specsye(const irplib_sdp_spectrum *self);
00379 cpl_error_code irplib_sdp_spectrum_reset_specsye(irplib_sdp_spectrum *self);
00380 cpl_error_code irplib_sdp_spectrum_set_specsye(irplib_sdp_spectrum *self,
00381 double value);
00382 cpl_error_code irplib_sdp_spectrum_copy_specsye(irplib_sdp_spectrum *self,
00383 const cpl_propertylist *plist,
00384 const char *name);
00385
00386 int irplib_sdp_spectrum_get_lamnlin(const irplib_sdp_spectrum *self);
00387 cpl_error_code irplib_sdp_spectrum_reset_lamnlin(irplib_sdp_spectrum *self);
00388 cpl_error_code irplib_sdp_spectrum_set_lamnlin(irplib_sdp_spectrum *self,
00389 int value);
00390 cpl_error_code irplib_sdp_spectrum_copy_lamnlin(irplib_sdp_spectrum *self,
00391 const cpl_propertylist *plist,
00392 const char *name);
00393
00394 double irplib_sdp_spectrum_get_lamrms(const irplib_sdp_spectrum *self);
00395 cpl_error_code irplib_sdp_spectrum_reset_lamrms(irplib_sdp_spectrum *self);
00396 cpl_error_code irplib_sdp_spectrum_set_lamrms(irplib_sdp_spectrum *self,
00397 double value);
00398 cpl_error_code irplib_sdp_spectrum_copy_lamrms(irplib_sdp_spectrum *self,
00399 const cpl_propertylist *plist,
00400 const char *name);
00401
00402 double irplib_sdp_spectrum_get_gain(const irplib_sdp_spectrum *self);
00403 cpl_error_code irplib_sdp_spectrum_reset_gain(irplib_sdp_spectrum *self);
00404 cpl_error_code irplib_sdp_spectrum_set_gain(irplib_sdp_spectrum *self,
00405 double value);
00406 cpl_error_code irplib_sdp_spectrum_copy_gain(irplib_sdp_spectrum *self,
00407 const cpl_propertylist *plist,
00408 const char *name);
00409
00410 double irplib_sdp_spectrum_get_detron(const irplib_sdp_spectrum *self);
00411 cpl_error_code irplib_sdp_spectrum_reset_detron(irplib_sdp_spectrum *self);
00412 cpl_error_code irplib_sdp_spectrum_set_detron(irplib_sdp_spectrum *self,
00413 double value);
00414 cpl_error_code irplib_sdp_spectrum_copy_detron(irplib_sdp_spectrum *self,
00415 const cpl_propertylist *plist,
00416 const char *name);
00417
00418 double irplib_sdp_spectrum_get_effron(const irplib_sdp_spectrum *self);
00419 cpl_error_code irplib_sdp_spectrum_reset_effron(irplib_sdp_spectrum *self);
00420 cpl_error_code irplib_sdp_spectrum_set_effron(irplib_sdp_spectrum *self,
00421 double value);
00422 cpl_error_code irplib_sdp_spectrum_copy_effron(irplib_sdp_spectrum *self,
00423 const cpl_propertylist *plist,
00424 const char *name);
00425
00426 double irplib_sdp_spectrum_get_snr(const irplib_sdp_spectrum *self);
00427 cpl_error_code irplib_sdp_spectrum_reset_snr(irplib_sdp_spectrum *self);
00428 cpl_error_code irplib_sdp_spectrum_set_snr(irplib_sdp_spectrum *self,
00429 double value);
00430 cpl_error_code irplib_sdp_spectrum_copy_snr(irplib_sdp_spectrum *self,
00431 const cpl_propertylist *plist,
00432 const char *name);
00433
00434 int irplib_sdp_spectrum_get_ncombine(const irplib_sdp_spectrum *self);
00435 cpl_error_code irplib_sdp_spectrum_reset_ncombine(irplib_sdp_spectrum *self);
00436 cpl_error_code irplib_sdp_spectrum_set_ncombine(irplib_sdp_spectrum *self,
00437 int value);
00438 cpl_error_code irplib_sdp_spectrum_copy_ncombine(irplib_sdp_spectrum *self,
00439 const cpl_propertylist *plist,
00440 const char *name);
00441
00442 const char * irplib_sdp_spectrum_get_prov(const irplib_sdp_spectrum *self,
00443 cpl_size index);
00444 cpl_error_code irplib_sdp_spectrum_reset_prov(irplib_sdp_spectrum *self,
00445 cpl_size index);
00446 cpl_error_code irplib_sdp_spectrum_set_prov(irplib_sdp_spectrum *self,
00447 cpl_size index, const char *value);
00448 cpl_error_code irplib_sdp_spectrum_copy_prov(irplib_sdp_spectrum *self,
00449 cpl_size index,
00450 const cpl_propertylist *plist,
00451 const char *name);
00452 cpl_error_code irplib_sdp_spectrum_append_prov(irplib_sdp_spectrum *self,
00453 cpl_size firstindex,
00454 const cpl_frameset *frames);
00455
00456 const char * irplib_sdp_spectrum_get_asson(const irplib_sdp_spectrum *self,
00457 cpl_size index);
00458 cpl_error_code irplib_sdp_spectrum_reset_asson(irplib_sdp_spectrum *self,
00459 cpl_size index);
00460 cpl_error_code irplib_sdp_spectrum_set_asson(irplib_sdp_spectrum *self,
00461 cpl_size index, const char *value);
00462 cpl_error_code irplib_sdp_spectrum_copy_asson(irplib_sdp_spectrum *self,
00463 cpl_size index,
00464 const cpl_propertylist *plist,
00465 const char *name);
00466
00467 const char * irplib_sdp_spectrum_get_assoc(const irplib_sdp_spectrum *self,
00468 cpl_size index);
00469 cpl_error_code irplib_sdp_spectrum_reset_assoc(irplib_sdp_spectrum *self,
00470 cpl_size index);
00471 cpl_error_code irplib_sdp_spectrum_set_assoc(irplib_sdp_spectrum *self,
00472 cpl_size index, const char *value);
00473 cpl_error_code irplib_sdp_spectrum_copy_assoc(irplib_sdp_spectrum *self,
00474 cpl_size index,
00475 const cpl_propertylist *plist,
00476 const char *name);
00477
00478 const char * irplib_sdp_spectrum_get_assom(const irplib_sdp_spectrum *self,
00479 cpl_size index);
00480 cpl_error_code irplib_sdp_spectrum_reset_assom(irplib_sdp_spectrum *self,
00481 cpl_size index);
00482 cpl_error_code irplib_sdp_spectrum_set_assom(irplib_sdp_spectrum *self,
00483 cpl_size index, const char *value);
00484 cpl_error_code irplib_sdp_spectrum_copy_assom(irplib_sdp_spectrum *self,
00485 cpl_size index,
00486 const cpl_propertylist *plist,
00487 const char *name);
00488
00489 const char * irplib_sdp_spectrum_get_voclass(const irplib_sdp_spectrum *self);
00490 cpl_error_code irplib_sdp_spectrum_reset_voclass(irplib_sdp_spectrum *self);
00491 cpl_error_code irplib_sdp_spectrum_set_voclass(irplib_sdp_spectrum *self,
00492 const char *value);
00493 cpl_error_code irplib_sdp_spectrum_copy_voclass(irplib_sdp_spectrum *self,
00494 const cpl_propertylist *plist,
00495 const char *name);
00496
00497 const char * irplib_sdp_spectrum_get_vopub(const irplib_sdp_spectrum *self);
00498 cpl_error_code irplib_sdp_spectrum_reset_vopub(irplib_sdp_spectrum *self);
00499 cpl_error_code irplib_sdp_spectrum_set_vopub(irplib_sdp_spectrum *self,
00500 const char *value);
00501 cpl_error_code irplib_sdp_spectrum_copy_vopub(irplib_sdp_spectrum *self,
00502 const cpl_propertylist *plist,
00503 const char *name);
00504
00505 const char * irplib_sdp_spectrum_get_title(const irplib_sdp_spectrum *self);
00506 cpl_error_code irplib_sdp_spectrum_reset_title(irplib_sdp_spectrum *self);
00507 cpl_error_code irplib_sdp_spectrum_set_title(irplib_sdp_spectrum *self,
00508 const char *value);
00509 cpl_error_code irplib_sdp_spectrum_copy_title(irplib_sdp_spectrum *self,
00510 const cpl_propertylist *plist,
00511 const char *name);
00512
00513 const char * irplib_sdp_spectrum_get_object(const irplib_sdp_spectrum *self);
00514 cpl_error_code irplib_sdp_spectrum_reset_object(irplib_sdp_spectrum *self);
00515 cpl_error_code irplib_sdp_spectrum_set_object(irplib_sdp_spectrum *self,
00516 const char *value);
00517 cpl_error_code irplib_sdp_spectrum_copy_object(irplib_sdp_spectrum *self,
00518 const cpl_propertylist *plist,
00519 const char *name);
00520
00521 double irplib_sdp_spectrum_get_aperture(const irplib_sdp_spectrum *self);
00522 cpl_error_code irplib_sdp_spectrum_reset_aperture(irplib_sdp_spectrum *self);
00523 cpl_error_code irplib_sdp_spectrum_set_aperture(irplib_sdp_spectrum *self,
00524 double value);
00525 cpl_error_code irplib_sdp_spectrum_copy_aperture(irplib_sdp_spectrum *self,
00526 const cpl_propertylist *plist,
00527 const char *name);
00528
00529 double irplib_sdp_spectrum_get_telapse(const irplib_sdp_spectrum *self);
00530 cpl_error_code irplib_sdp_spectrum_reset_telapse(irplib_sdp_spectrum *self);
00531 cpl_error_code irplib_sdp_spectrum_set_telapse(irplib_sdp_spectrum *self,
00532 double value);
00533 cpl_error_code irplib_sdp_spectrum_copy_telapse(irplib_sdp_spectrum *self,
00534 const cpl_propertylist *plist,
00535 const char *name);
00536
00537 double irplib_sdp_spectrum_get_tmid(const irplib_sdp_spectrum *self);
00538 cpl_error_code irplib_sdp_spectrum_reset_tmid(irplib_sdp_spectrum *self);
00539 cpl_error_code irplib_sdp_spectrum_set_tmid(irplib_sdp_spectrum *self,
00540 double value);
00541 cpl_error_code irplib_sdp_spectrum_copy_tmid(irplib_sdp_spectrum *self,
00542 const cpl_propertylist *plist,
00543 const char *name);
00544
00545 double irplib_sdp_spectrum_get_specval(const irplib_sdp_spectrum *self);
00546 cpl_error_code irplib_sdp_spectrum_reset_specval(irplib_sdp_spectrum *self);
00547 cpl_error_code irplib_sdp_spectrum_set_specval(irplib_sdp_spectrum *self,
00548 double value);
00549 cpl_error_code irplib_sdp_spectrum_copy_specval(irplib_sdp_spectrum *self,
00550 const cpl_propertylist *plist,
00551 const char *name);
00552
00553 double irplib_sdp_spectrum_get_specbw(const irplib_sdp_spectrum *self);
00554 cpl_error_code irplib_sdp_spectrum_reset_specbw(irplib_sdp_spectrum *self);
00555 cpl_error_code irplib_sdp_spectrum_set_specbw(irplib_sdp_spectrum *self,
00556 double value);
00557 cpl_error_code irplib_sdp_spectrum_copy_specbw(irplib_sdp_spectrum *self,
00558 const cpl_propertylist *plist,
00559 const char *name);
00560
00561 const char * irplib_sdp_spectrum_get_extname(const irplib_sdp_spectrum *self);
00562 cpl_error_code irplib_sdp_spectrum_reset_extname(irplib_sdp_spectrum *self);
00563 cpl_error_code irplib_sdp_spectrum_set_extname(irplib_sdp_spectrum *self,
00564 const char *value);
00565 cpl_error_code irplib_sdp_spectrum_copy_extname(irplib_sdp_spectrum *self,
00566 const cpl_propertylist *plist,
00567 const char *name);
00568
00569 cpl_boolean irplib_sdp_spectrum_get_inherit(const irplib_sdp_spectrum *self);
00570 cpl_error_code irplib_sdp_spectrum_reset_inherit(irplib_sdp_spectrum *self);
00571 cpl_error_code irplib_sdp_spectrum_set_inherit(irplib_sdp_spectrum *self,
00572 cpl_boolean value);
00573 cpl_error_code irplib_sdp_spectrum_copy_inherit(irplib_sdp_spectrum *self,
00574 const cpl_propertylist *plist,
00575 const char *name);
00576
00577 cpl_size irplib_sdp_spectrum_get_nelem(const irplib_sdp_spectrum *self);
00578 cpl_error_code irplib_sdp_spectrum_reset_nelem(irplib_sdp_spectrum *self);
00579 cpl_error_code irplib_sdp_spectrum_set_nelem(irplib_sdp_spectrum *self,
00580 cpl_size value);
00581 cpl_error_code irplib_sdp_spectrum_copy_nelem(irplib_sdp_spectrum *self,
00582 const cpl_propertylist *plist,
00583 const char *name);
00584
00585 double irplib_sdp_spectrum_get_tdmin(const irplib_sdp_spectrum *self);
00586 cpl_error_code irplib_sdp_spectrum_reset_tdmin(irplib_sdp_spectrum *self);
00587 cpl_error_code irplib_sdp_spectrum_set_tdmin(irplib_sdp_spectrum *self,
00588 double value);
00589 cpl_error_code irplib_sdp_spectrum_copy_tdmin(irplib_sdp_spectrum *self,
00590 const cpl_propertylist *plist,
00591 const char *name);
00592
00593 double irplib_sdp_spectrum_get_tdmax(const irplib_sdp_spectrum *self);
00594 cpl_error_code irplib_sdp_spectrum_reset_tdmax(irplib_sdp_spectrum *self);
00595 cpl_error_code irplib_sdp_spectrum_set_tdmax(irplib_sdp_spectrum *self,
00596 double value);
00597 cpl_error_code irplib_sdp_spectrum_copy_tdmax(irplib_sdp_spectrum *self,
00598 const cpl_propertylist *plist,
00599 const char *name);
00600
00601
00602
00603
00604
00605 cpl_size irplib_sdp_spectrum_get_ncol(const irplib_sdp_spectrum *self);
00606
00607 cpl_boolean irplib_sdp_spectrum_has_column(const irplib_sdp_spectrum *self,
00608 const char* name);
00609
00610 cpl_array *
00611 irplib_sdp_spectrum_get_column_names(const irplib_sdp_spectrum *self);
00612
00613 cpl_error_code
00614 irplib_sdp_spectrum_new_column(irplib_sdp_spectrum *self, const char *name,
00615 cpl_type type);
00616
00617 cpl_error_code
00618 irplib_sdp_spectrum_add_column(irplib_sdp_spectrum *self, const char *name,
00619 cpl_type type, const char *unit,
00620 const char *format, const char *tutyp,
00621 const char *tucd, const cpl_array *data);
00622
00623 cpl_error_code
00624 irplib_sdp_spectrum_copy_column(irplib_sdp_spectrum *self,
00625 const cpl_table* table, const char *name);
00626
00627 cpl_error_code
00628 irplib_sdp_spectrum_copy_column_regexp(irplib_sdp_spectrum *self,
00629 const cpl_table* table,
00630 const char *regexp, int invert);
00631
00632 cpl_error_code
00633 irplib_sdp_spectrum_update_column(irplib_sdp_spectrum *self, const char *name,
00634 const cpl_table* table, const char *colname,
00635 int flags);
00636
00637 cpl_error_code
00638 irplib_sdp_spectrum_delete_column(irplib_sdp_spectrum *self, const char *name);
00639
00640 cpl_type irplib_sdp_spectrum_get_column_type(const irplib_sdp_spectrum *self,
00641 const char *name);
00642
00643 const char *
00644 irplib_sdp_spectrum_get_column_unit(const irplib_sdp_spectrum *self,
00645 const char *name);
00646
00647 cpl_error_code
00648 irplib_sdp_spectrum_set_column_unit(irplib_sdp_spectrum *self,
00649 const char *name, const char *unit);
00650
00651 cpl_error_code
00652 irplib_sdp_spectrum_copy_column_unit(irplib_sdp_spectrum *self,
00653 const char *name,
00654 const cpl_propertylist *plist,
00655 const char *key);
00656
00657 const char *
00658 irplib_sdp_spectrum_get_column_format(const irplib_sdp_spectrum *self,
00659 const char *name);
00660
00661 cpl_error_code
00662 irplib_sdp_spectrum_set_column_format(irplib_sdp_spectrum *self,
00663 const char *name, const char *format);
00664
00665 const char *
00666 irplib_sdp_spectrum_get_column_tutyp(const irplib_sdp_spectrum *self,
00667 const char *name);
00668
00669 cpl_error_code
00670 irplib_sdp_spectrum_set_column_tutyp(irplib_sdp_spectrum *self,
00671 const char *name, const char *tutyp);
00672
00673 cpl_error_code
00674 irplib_sdp_spectrum_copy_column_tutyp(irplib_sdp_spectrum *self,
00675 const char *name,
00676 const cpl_propertylist *plist,
00677 const char *key);
00678
00679 const char *
00680 irplib_sdp_spectrum_get_column_tucd(const irplib_sdp_spectrum *self,
00681 const char *name);
00682
00683 cpl_error_code
00684 irplib_sdp_spectrum_set_column_tucd(irplib_sdp_spectrum *self,
00685 const char *name, const char *tucd);
00686
00687 cpl_error_code
00688 irplib_sdp_spectrum_copy_column_tucd(irplib_sdp_spectrum *self,
00689 const char *name,
00690 const cpl_propertylist *plist,
00691 const char *key);
00692
00693 const char *
00694 irplib_sdp_spectrum_get_column_tcomm(const irplib_sdp_spectrum *self,
00695 const char *name);
00696
00697 cpl_error_code
00698 irplib_sdp_spectrum_set_column_tcomm(irplib_sdp_spectrum *self,
00699 const char *name, const char *tcomm);
00700
00701 cpl_error_code
00702 irplib_sdp_spectrum_copy_column_tcomm(irplib_sdp_spectrum *self,
00703 const char *name,
00704 const cpl_propertylist *plist,
00705 const char *key);
00706
00707 const cpl_array *
00708 irplib_sdp_spectrum_get_column_data(const irplib_sdp_spectrum *self,
00709 const char *name);
00710
00711 cpl_error_code
00712 irplib_sdp_spectrum_set_column_data(irplib_sdp_spectrum *self,
00713 const char *name, const cpl_array *array);
00714
00715
00716
00717
00718
00719 irplib_sdp_spectrum * irplib_sdp_spectrum_load(const char *filename);
00720
00721 cpl_error_code irplib_sdp_spectrum_save(const irplib_sdp_spectrum *self,
00722 const char *filename,
00723 const cpl_propertylist *extra_pheader,
00724 const cpl_propertylist *extra_header);
00725
00726 cpl_error_code irplib_dfs_save_spectrum(cpl_frameset * allframes,
00727 cpl_propertylist * header,
00728 const cpl_parameterlist * parlist,
00729 const cpl_frameset * usedframes,
00730 const cpl_frame * inherit,
00731 const irplib_sdp_spectrum * spectrum,
00732 const char * recipe,
00733 const cpl_propertylist * applist,
00734 const cpl_propertylist * tablelist,
00735 const char * remregexp,
00736 const char * pipe_id,
00737 const char * dict_id,
00738 const char * filename);
00739
00740
00741
00742
00743
00744 void irplib_sdp_spectrum_dump(const irplib_sdp_spectrum *self, FILE *stream);
00745
00746
00747
00748
00749
00750 # ifdef IRPLIB_USE_FITS_UPDATE_CHECKSUM
00751
00752
00753
00754
00755
00756
00757
00758
00759
00760
00761
00762
00763
00764 cpl_error_code irplib_fits_update_checksums(const char* filename);
00765
00766 # endif
00767
00768 CPL_END_DECLS
00769
00770 #endif