/* * preflist.h * * Configuration keyword definitions. * *%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% * * This file part of: SExtractor * * Copyright: (C) 1993-2010 Emmanuel Bertin -- IAP/CNRS/UPMC * * License: GNU General Public License * * SExtractor is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * SExtractor is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * You should have received a copy of the GNU General Public License * along with SExtractor. If not, see . * * Last modified: 14/10/2010 * *%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/ #include "key.h" #ifndef _XML_H_ #include "xml.h" #endif #ifdef USE_THREADS #define THREADS_PREFMAX THREADS_NMAX #else #define THREADS_PREFMAX 65535 #endif /*-------------------------------- initialization ---------------------------*/ int idummy; pkeystruct key[] = { {"ANALYSIS_THRESH", P_FLOATLIST, prefs.thresh, 0,0, -BIG, BIG, {""}, 1, 2, &prefs.nthresh}, {"ASSOC_DATA", P_INTLIST, prefs.assoc_data, 0, 1000000,0.0,0.0, {""}, 1,MAXLIST, &prefs.nassoc_data}, {"ASSOC_NAME", P_STRING, prefs.assoc_name}, {"ASSOC_PARAMS", P_INTLIST, prefs.assoc_param, 1, 1000000,0.0,0.0, {""}, 2,3, &prefs.nassoc_param}, {"ASSOC_RADIUS", P_FLOAT, &prefs.assoc_radius, 0,0, 1e-10,1e+10}, {"ASSOC_TYPE", P_KEY, &prefs.assoc_type, 0,0, 0.0,0.0, {"FIRST", "NEAREST", "MEAN", "MAG_MEAN", "SUM", "MAG_SUM", "MIN", "MAX", ""}}, {"ASSOCSELEC_TYPE", P_KEY, &prefs.assocselec_type, 0,0, 0.0,0.0, {"ALL","MATCHED","-MATCHED",""}}, {"BACK_FILTERSIZE", P_INTLIST, prefs.backfsize, 1,11, 0.0,0.0, {""}, 1,2, &prefs.nbackfsize}, {"BACK_FILTTHRESH", P_FLOAT, &prefs.backfthresh, 0,0, 0.0,BIG}, {"BACKPHOTO_THICK", P_INT, &prefs.pback_size, 1, 256}, {"BACKPHOTO_TYPE", P_KEY, &prefs.pback_type, 0,0, 0.0,0.0, {"GLOBAL","LOCAL",""}}, {"BACK_SIZE", P_INTLIST, prefs.backsize, 1,2000000000, 0.0,0.0, {""}, 1,2, &prefs.nbacksize}, {"BACK_TYPE", P_KEYLIST, prefs.back_type, 0,0, 0.0,0.0, {"AUTO","MANUAL",""}, 1, 2, &prefs.nback_type}, {"BACK_VALUE", P_FLOATLIST, prefs.back_val, 0,0, -BIG,BIG, {""}, 1, 2, &prefs.nback_val}, {"CATALOG_NAME", P_STRING, prefs.cat_name}, {"CATALOG_TYPE", P_KEY, &prefs.cat_type, 0,0, 0.0,0.0, {"NONE", "ASCII","ASCII_HEAD", "ASCII_SKYCAT", "ASCII_VOTABLE", "FITS_LDAC", "FITS_TPX", "FITS_1.0",""}}, {"CHECKIMAGE_NAME", P_STRINGLIST, prefs.check_name, 0,0,0.0,0.0, {""}, 0, MAXCHECK, &prefs.ncheck_name}, {"CHECKIMAGE_TYPE", P_KEYLIST, prefs.check_type, 0,0, 0.0,0.0, {"NONE", "IDENTICAL", "BACKGROUND", "BACKGROUND_RMS", "MINIBACKGROUND", "MINIBACK_RMS", "-BACKGROUND", "FILTERED", "OBJECTS", "APERTURES", "SEGMENTATION", "ASSOC", "-OBJECTS", "PSFS", "-PSFS", "PC_CONVPROTOS", "-PC_CONVPROTOS", "PC_PROTOS", "MAP_SOM", #ifdef USE_MODEL "MODELS", "-MODELS", "SPHEROIDS", "-SPHEROIDS", "DISKS", "-DISKS", "PATTERNS", #endif "OTHER", ""}, 0, 17, &prefs.ncheck_type}, {"CLEAN", P_BOOL, &prefs.clean_flag}, {"CLEAN_PARAM", P_FLOAT, &prefs.clean_param, 0,0, 0.1,10.0}, {"DEBLEND_MINCONT", P_FLOAT, &prefs.deblend_mincont, 0,0, 0.0,1.0}, {"DEBLEND_NTHRESH", P_INT, &prefs.deblend_nthresh, 1,64}, {"DETECT_MINAREA", P_INT, &prefs.ext_minarea, 1,1000000}, {"DETECT_MAXAREA", P_INT, &prefs.ext_maxarea, 0,1000000000}, {"DETECT_THRESH", P_FLOATLIST, prefs.dthresh, 0,0, -BIG, BIG, {""}, 1, 2, &prefs.ndthresh}, {"DETECT_TYPE", P_KEY, &prefs.detect_type, 0,0, 0.0,0.0, {"CCD","PHOTO",""}}, {"FILTER", P_BOOL, &prefs.filter_flag}, {"FILTER_NAME", P_STRING, prefs.filter_name}, {"FILTER_THRESH", P_FLOATLIST, prefs.filter_thresh, 0,0,-BIG,BIG, {""}, 0, 2, &prefs.nfilter_thresh}, {"FITS_UNSIGNED", P_BOOL, &prefs.fitsunsigned_flag}, {"FLAG_IMAGE", P_STRINGLIST, prefs.fimage_name, 0,0,0.0,0.0, {""}, 0, MAXFLAG, &prefs.nfimage_name}, {"FLAG_TYPE", P_KEYLIST, prefs.flag_type, 0,0, 0.0,0.0, {"OR","AND","MIN", "MAX", "MOST",""}, 0, MAXFLAG, &idummy}, {"GAIN", P_FLOAT, &prefs.gain, 0,0, 0.0, 1e+30}, {"GAIN_KEY", P_STRING, prefs.gain_key}, {"HEADER_SUFFIX", P_STRING, prefs.head_suffix}, {"INTERP_MAXXLAG", P_INTLIST, prefs.interp_xtimeout, 1,1000000, 0.0,0.0, {""}, 1, 2, &prefs.ninterp_xtimeout}, {"INTERP_MAXYLAG", P_INTLIST, prefs.interp_ytimeout, 1,1000000, 0.0,0.0, {""}, 1, 2, &prefs.ninterp_ytimeout}, {"INTERP_TYPE", P_KEYLIST, prefs.interp_type, 0,0, 0.0,0.0, {"NONE","VAR_ONLY","ALL",""}, 1, 2, &prefs.ninterp_type}, {"MAG_GAMMA", P_FLOAT, &prefs.mag_gamma, 0,0, 1e-10,1e+30}, {"MAG_ZEROPOINT", P_FLOAT, &prefs.mag_zeropoint, 0,0, -100.0, 100.0}, {"MASK_TYPE", P_KEY, &prefs.mask_type, 0,0, 0.0,0.0, {"NONE","BLANK","CORRECT",""}}, {"MEMORY_BUFSIZE", P_INT, &prefs.mem_bufsize, 8, 65534}, {"MEMORY_OBJSTACK", P_INT, &prefs.clean_stacksize, 16,65536}, {"MEMORY_PIXSTACK", P_INT, &prefs.mem_pixstack, 1000, 10000000}, {"NTHREADS", P_INT, &prefs.nthreads, 0, THREADS_PREFMAX}, {"PARAMETERS_NAME", P_STRING, prefs.param_name}, {"PATTERN_TYPE", P_KEY, &prefs.pattern_type, 0,0, 0.0,0.0, {"RINGS-QUADPOLE", "RINGS-OCTOPOLE", "RINGS-HARMONIC", "GAUSS-LAGUERRE", ""}}, {"PHOT_APERTURES", P_FLOATLIST, prefs.apert, 0,0, 0.0,2*MAXPICSIZE, {""}, 1, MAXNAPER, &prefs.naper}, {"PHOT_AUTOPARAMS", P_FLOATLIST, prefs.autoparam, 0,0, 0.0,10.0, {""}, 2,2, &prefs.nautoparam}, {"PHOT_AUTOAPERS", P_FLOATLIST, prefs.autoaper, 0,0, 0.0,1e6, {""}, 2,2, &prefs.nautoaper}, {"PHOT_FLUXFRAC", P_FLOATLIST, prefs.flux_frac, 0,0, 1e-6, 1.0, {""}, 1, MAXNAPER, &prefs.nflux_frac}, {"PHOT_PETROPARAMS", P_FLOATLIST, prefs.petroparam, 0,0, 0.0,10.0, {""}, 2,2, &prefs.npetroparam}, {"PIXEL_SCALE", P_FLOAT, &prefs.pixel_scale, 0,0, 0.0, 1e+10}, {"PSF_NAME", P_STRINGLIST, prefs.psf_name, 0,0, 0.0,0.0, {""}, 1, 2, &prefs.npsf_name}, /*?*/ {"PSF_NMAX", P_INT, &prefs.psf_npsfmax, 1, PSF_NPSFMAX}, {"SATUR_KEY", P_STRING, prefs.satur_key}, {"SATUR_LEVEL", P_FLOAT, &prefs.satur_level, 0,0, -1e+30, 1e+30}, {"SEEING_FWHM", P_FLOAT, &prefs.seeing_fwhm, 0,0, 0.0, 1e+10}, {"SOM_NAME", P_STRING, prefs.som_name}, {"STARNNW_NAME", P_STRING, prefs.nnw_name}, {"THRESH_TYPE", P_KEYLIST, prefs.thresh_type, 0,0, 0.0,0.0, {"RELATIVE","ABSOLUTE"}, 1, 2, &prefs.nthresh_type}, {"VERBOSE_TYPE", P_KEY, &prefs.verbose_type, 0,0, 0.0,0.0, {"QUIET","NORMAL", "EXTRA_WARNINGS", "FULL",""}}, {"WEIGHT_GAIN", P_BOOL, &prefs.weightgain_flag}, {"WEIGHT_IMAGE", P_STRINGLIST, prefs.wimage_name, 0,0,0.0,0.0, {""}, 0, MAXIMAGE, &prefs.nwimage_name}, {"WEIGHT_THRESH", P_FLOATLIST, prefs.weight_thresh, 0,0, 0.0, BIG, {""}, 0, 2, &prefs.nweight_thresh}, {"WEIGHT_TYPE", P_KEYLIST, prefs.weight_type, 0,0, 0.0,0.0, {"NONE","BACKGROUND", "MAP_RMS", "MAP_VAR","MAP_WEIGHT", ""}, 0, MAXIMAGE, &prefs.nweight_type}, {"WRITE_XML", P_BOOL, &prefs.xml_flag}, {"XML_NAME", P_STRING, prefs.xml_name}, {"XSL_URL", P_STRING, prefs.xsl_name}, {""} }; char keylist[sizeof(key)/sizeof(pkeystruct)][32]; const char notokstr[] = {" \t=,;\n\r\""}; char *default_prefs[] = { "# Default configuration file for " BANNER " " MYVERSION, "# EB " DATE, "#", " ", "#-------------------------------- Catalog ------------------------------------", " ", "CATALOG_NAME test.cat # name of the output catalog", "CATALOG_TYPE ASCII_HEAD # NONE,ASCII,ASCII_HEAD, ASCII_SKYCAT,", " # ASCII_VOTABLE, FITS_1.0 or FITS_LDAC", "PARAMETERS_NAME default.param # name of the file containing catalog contents", " ", "#------------------------------- Extraction ----------------------------------", " ", "DETECT_TYPE CCD # CCD (linear) or PHOTO (with gamma correction)", "DETECT_MINAREA 5 # min. # of pixels above threshold", "*DETECT_MAXAREA 0 # max. # of pixels above threshold (0=unlimited)", "*THRESH_TYPE RELATIVE # threshold type: RELATIVE (in sigmas)", "* # or ABSOLUTE (in ADUs)", "DETECT_THRESH 1.5 # or , in mag.arcsec-2", "ANALYSIS_THRESH 1.5 # or , in mag.arcsec-2", " ", "FILTER Y # apply filter for detection (Y or N)?", "FILTER_NAME default.conv # name of the file containing the filter", "*FILTER_THRESH # Threshold[s] for retina filtering", " ", "DEBLEND_NTHRESH 32 # Number of deblending sub-thresholds", "DEBLEND_MINCONT 0.005 # Minimum contrast parameter for deblending", " ", "CLEAN Y # Clean spurious detections? (Y or N)?", "CLEAN_PARAM 1.0 # Cleaning efficiency", " ", "MASK_TYPE CORRECT # type of detection MASKing: can be one of", " # NONE, BLANK or CORRECT", " ", "*#-------------------------------- WEIGHTing ----------------------------------", "*", "*WEIGHT_TYPE NONE # type of WEIGHTing: NONE, BACKGROUND,", "* # MAP_RMS, MAP_VAR or MAP_WEIGHT", "*WEIGHT_IMAGE weight.fits # weight-map filename", "*WEIGHT_GAIN Y # modulate gain (E/ADU) with weights? (Y/N)", "*WEIGHT_THRESH # weight threshold[s] for bad pixels", "*", "*#-------------------------------- FLAGging -----------------------------------", "*", "*FLAG_IMAGE flag.fits # filename for an input FLAG-image", "*FLAG_TYPE OR # flag pixel combination: OR, AND, MIN, MAX", "* # or MOST", "*", "#------------------------------ Photometry -----------------------------------", " ", "PHOT_APERTURES 5 # MAG_APER aperture diameter(s) in pixels", "PHOT_AUTOPARAMS 2.5, 3.5 # MAG_AUTO parameters: ,", "PHOT_PETROPARAMS 2.0, 3.5 # MAG_PETRO parameters: ,", " # ", "*PHOT_AUTOAPERS 0.0,0.0 # , minimum apertures", "* # for MAG_AUTO and MAG_PETRO", "*PHOT_FLUXFRAC 0.5 # flux fraction[s] used for FLUX_RADIUS", " ", "SATUR_LEVEL 50000.0 # level (in ADUs) at which arises saturation", "SATUR_KEY SATURATE # keyword for saturation level (in ADUs)", " ", "MAG_ZEROPOINT 0.0 # magnitude zero-point", "MAG_GAMMA 4.0 # gamma of emulsion (for photographic scans)", "GAIN 0.0 # detector gain in e-/ADU", "GAIN_KEY GAIN # keyword for detector gain in e-/ADU", "PIXEL_SCALE 1.0 # size of pixel in arcsec (0=use FITS WCS info)", " ", "#------------------------- Star/Galaxy Separation ----------------------------", " ", "SEEING_FWHM 1.2 # stellar FWHM in arcsec", "STARNNW_NAME default.nnw # Neural-Network_Weight table filename", " ", "#------------------------------ Background -----------------------------------", " ", "*BACK_TYPE AUTO # AUTO or MANUAL", "*BACK_VALUE 0.0 # Default background value in MANUAL mode", "BACK_SIZE 64 # Background mesh: or ,", "BACK_FILTERSIZE 3 # Background filter: or ,", " ", "BACKPHOTO_TYPE GLOBAL # can be GLOBAL or LOCAL", "*BACKPHOTO_THICK 24 # thickness of the background LOCAL annulus", "*BACK_FILTTHRESH 0.0 # Threshold above which the background-", "* # map filter operates", " ", "#------------------------------ Check Image ----------------------------------", " ", "CHECKIMAGE_TYPE NONE # can be NONE, BACKGROUND, BACKGROUND_RMS,", " # MINIBACKGROUND, MINIBACK_RMS, -BACKGROUND,", " # FILTERED, OBJECTS, -OBJECTS, SEGMENTATION,", " # or APERTURES", "CHECKIMAGE_NAME check.fits # Filename for the check-image", " ", "#--------------------- Memory (change with caution!) -------------------------", " ", "MEMORY_OBJSTACK 3000 # number of objects in stack", "MEMORY_PIXSTACK 300000 # number of pixels in stack", "MEMORY_BUFSIZE 1024 # number of lines in buffer", " ", "*#------------------------------- ASSOCiation ---------------------------------", "*", "*ASSOC_NAME sky.list # name of the ASCII file to ASSOCiate", "*ASSOC_DATA 2,3,4 # columns of the data to replicate (0=all)", "*ASSOC_PARAMS 2,3,4 # columns of xpos,ypos[,mag]", "*ASSOC_RADIUS 2.0 # cross-matching radius (pixels)", "*ASSOC_TYPE NEAREST # ASSOCiation method: FIRST, NEAREST, MEAN,", "* # MAG_MEAN, SUM, MAG_SUM, MIN or MAX", "*ASSOCSELEC_TYPE MATCHED # ASSOC selection type: ALL, MATCHED or -MATCHED", "*", "#----------------------------- Miscellaneous ---------------------------------", " ", "VERBOSE_TYPE NORMAL # can be QUIET, NORMAL or FULL", "HEADER_SUFFIX .head # Filename extension for additional headers", "WRITE_XML N # Write XML file (Y/N)?", "XML_NAME sex.xml # Filename for XML output", "*XSL_URL " XSL_URL, "* # Filename for XSL style-sheet", #ifdef USE_THREADS "NTHREADS 0 # Number of simultaneous threads for", "* # the SMP version of " BANNER, "* # 0 = automatic", #else "*NTHREADS 1 # 1 single thread", #endif "*", "*FITS_UNSIGNED N # Treat FITS integer values as unsigned (Y/N)?", "*INTERP_MAXXLAG 16 # Max. lag along X for 0-weight interpolation", "*INTERP_MAXYLAG 16 # Max. lag along Y for 0-weight interpolation", "*INTERP_TYPE ALL # Interpolation type: NONE, VAR_ONLY or ALL", "*", "*#--------------------------- Experimental Stuff -----------------------------", "*", "*PSF_NAME default.psf # File containing the PSF model", "*PSF_NMAX 1 # Max.number of PSFs fitted simultaneously", "*PATTERN_TYPE RINGS-HARMONIC # can RINGS-QUADPOLE, RINGS-OCTOPOLE,", "* # RINGS-HARMONICS or GAUSS-LAGUERRE", "*SOM_NAME default.som # File containing Self-Organizing Map weights", "" };