/*---------------------------------------------------------------------------- File name : oddeven.c Author : N. Devillard Created on : October 2001 Description : ISAAC odd-even effect removal ---------------------------------------------------------------------------*/ /* $Id: oddeven.c,v 1.4 2002/02/26 13:48:02 ndevilla Exp $ $Author: ndevilla $ $Date: 2002/02/26 13:48:02 $ $Revision: 1.4 $ */ /*---------------------------------------------------------------------------- Includes ---------------------------------------------------------------------------*/ #include #include #include "eclipse.h" #include "isaacp_lib.h" /*---------------------------------------------------------------------------- Main code ---------------------------------------------------------------------------*/ int isaac_oddeven_main(void * dict) { dictionary * d ; char * name_i ; char * name_o ; char fullname_o[FILENAMESZ]; int force ; char * sval ; image_t * im1, * im2 ; qfits_header* fh ; d = (dictionary*)dict ; /* Get input/output file names */ if (dictionary_getint(d, "arg.n", -1)<2) { e_error("missing input file name: aborting"); return -1 ; } name_i = dictionary_get(d, "arg.1") ; name_o = dictionary_get(d, "arg.output") ; force = dictionary_getint(d, "arg.force", 0); if (name_o == NULL) { sprintf(fullname_o, "%s_12.fits", get_rootname(get_basename(name_i))) ; } else { sprintf(fullname_o, name_o); } /* Check input header */ fh = qfits_header_read(name_i); if (fh==NULL) { e_error("cannot read header from %s: aborting", name_i); return -1 ; } sval = qfits_header_getstr(fh, "OEFILT") ; if (sval!=NULL) { e_warning("file %s already processed with OEFILT %s", name_i, sval); if (!force) { e_error("nothing done -- use -f/--force to force filter"); qfits_header_destroy(fh); return -1 ; } } /* Load image */ e_comment(1, "loading [%s]", name_i); im1 = image_load(name_i); if (im1==NULL) { qfits_header_destroy(fh); return -1 ; } /* Apply odd-even filter */ im2 = image_de_oddeven(im1); image_del(im1); if (im2==NULL) { e_error("in odd-even filter: aborting"); qfits_header_destroy(fh); return -1 ; } /* Build output FITS header */ e_comment(1, "saving result as [%s]", fullname_o); qfits_header_add(fh, "OEFILT", OEFILT_VERSION, "Odd-even filter algorithm version", NULL); image_save_fits_hdrdump(im2, fullname_o, fh, BPP_DEFAULT); qfits_header_destroy(fh); image_del(im2); return 0 ; }