Commit 1b0fb5bd authored by Emmanuel Bertin's avatar Emmanuel Bertin
Browse files

Added one extra decimal to position measurements in pixel coordinates.

Preliminary implementation of a RESCALE_WEIGHTS configuration switch.
parent c5f7c68f
.TH SEXTRACTOR "1" "January 2011" "SExtractor 2.13.2" "User Commands" .TH SEXTRACTOR "1" "March 2011" "SExtractor 2.13.2" "User Commands"
.SH NAME .SH NAME
sex \- extract a source catalogue from an astronomical FITS image sex \- extract a source catalogue from an astronomical FITS image
.SH SYNOPSIS .SH SYNOPSIS
......
...@@ -48,7 +48,7 @@ ...@@ -48,7 +48,7 @@
Background maps are established from the images themselves; thus we need to Background maps are established from the images themselves; thus we need to
make at least one first pass through the data. make at least one first pass through the data.
*/ */
void makeback(picstruct *field, picstruct *wfield) void makeback(picstruct *field, picstruct *wfield, int wscale_flag)
{ {
backstruct *backmesh,*wbackmesh, *bm,*wbm; backstruct *backmesh,*wbackmesh, *bm,*wbm;
...@@ -294,7 +294,7 @@ void makeback(picstruct *field, picstruct *wfield) ...@@ -294,7 +294,7 @@ void makeback(picstruct *field, picstruct *wfield)
filterback(wfield); filterback(wfield);
/* Compute normalization for variance- or weight-maps*/ /* Compute normalization for variance- or weight-maps*/
if (wfield && wfield->flags&(VAR_FIELD|WEIGHT_FIELD)) if (wfield && wscale_flag && wfield->flags&(VAR_FIELD|WEIGHT_FIELD))
{ {
nr = 0; nr = 0;
QMALLOC(ratio, float, wfield->nback); QMALLOC(ratio, float, wfield->nback);
......
...@@ -7,7 +7,7 @@ ...@@ -7,7 +7,7 @@
* *
* This file part of: SExtractor * This file part of: SExtractor
* *
* Copyright: (C) 1993-2010 Emmanuel Bertin -- IAP/CNRS/UPMC * Copyright: (C) 1993-2011 Emmanuel Bertin -- IAP/CNRS/UPMC
* *
* License: GNU General Public License * License: GNU General Public License
* *
...@@ -22,7 +22,7 @@ ...@@ -22,7 +22,7 @@
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with SExtractor. If not, see <http://www.gnu.org/licenses/>. * along with SExtractor. If not, see <http://www.gnu.org/licenses/>.
* *
* Last modified: 11/10/2010 * Last modified: 09/03/2011
* *
*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/ *%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/
...@@ -33,6 +33,9 @@ ...@@ -33,6 +33,9 @@
#define QUANTIF_NMAXLEVELS 4096 /* max nb of quantif. levels */ #define QUANTIF_NMAXLEVELS 4096 /* max nb of quantif. levels */
#define QUANTIF_AMIN 4 /* min nb of "mode pixels" */ #define QUANTIF_AMIN 4 /* min nb of "mode pixels" */
#define BACK_WSCALE 1 /* Activate weight scaling */
#define BACK_NOWSCALE 0 /* No weight scaling */
/* NOTES: /* NOTES:
One must have: BACK_BUFSIZE >= MAXPICSIZE One must have: BACK_BUFSIZE >= MAXPICSIZE
0 < QUANTIF_NSIGMA <= 10 0 < QUANTIF_NSIGMA <= 10
...@@ -61,7 +64,7 @@ void backhisto(backstruct *, backstruct *, PIXTYPE *, PIXTYPE *, ...@@ -61,7 +64,7 @@ void backhisto(backstruct *, backstruct *, PIXTYPE *, PIXTYPE *,
copyback(picstruct *infield, picstruct *outfield), copyback(picstruct *infield, picstruct *outfield),
endback(picstruct *), endback(picstruct *),
filterback(picstruct *), filterback(picstruct *),
makeback(picstruct *, picstruct *), makeback(picstruct *, picstruct *, int),
subbackline(picstruct *, int, PIXTYPE *); subbackline(picstruct *, int, PIXTYPE *);
float backguess(backstruct *, float *, float *), float backguess(backstruct *, float *, float *),
......
...@@ -7,7 +7,7 @@ ...@@ -7,7 +7,7 @@
* *
* This file part of: SExtractor * This file part of: SExtractor
* *
* Copyright: (C) 1993-2010 Emmanuel Bertin -- IAP/CNRS/UPMC * Copyright: (C) 1993-2011 Emmanuel Bertin -- IAP/CNRS/UPMC
* *
* License: GNU General Public License * License: GNU General Public License
* *
...@@ -22,7 +22,7 @@ ...@@ -22,7 +22,7 @@
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with SExtractor. If not, see <http://www.gnu.org/licenses/>. * along with SExtractor. If not, see <http://www.gnu.org/licenses/>.
* *
* Last modified: 12/02/2010 * Last modified: 11/03/2011
* *
*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/ *%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/
...@@ -405,7 +405,6 @@ Finish current check-image. ...@@ -405,7 +405,6 @@ Finish current check-image.
void reendcheck(picstruct *field, checkstruct *check) void reendcheck(picstruct *field, checkstruct *check)
{ {
catstruct *cat; catstruct *cat;
char *buf;
cat = check->cat; cat = check->cat;
switch(check->type) switch(check->type)
......
...@@ -5,7 +5,7 @@ ...@@ -5,7 +5,7 @@
* *
* This file part of: AstrOmatic software * This file part of: AstrOmatic software
* *
* Copyright: (C) 2007-2010 Emmanuel Bertin -- IAP/CNRS/UPMC * Copyright: (C) 2007-2011 Emmanuel Bertin -- IAP/CNRS/UPMC
* (C) 2004 Manolis Lourakis (original version) * (C) 2004 Manolis Lourakis (original version)
* *
* Licenses: GNU General Public License * Licenses: GNU General Public License
...@@ -22,7 +22,7 @@ ...@@ -22,7 +22,7 @@
* along with AstrOmatic software. * along with AstrOmatic software.
* If not, see <http://www.gnu.org/licenses/>. * If not, see <http://www.gnu.org/licenses/>.
* *
* Last modified: 25/10/2010 * Last modified: 11/03/2011
* *
*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/ *%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/
///////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////
...@@ -861,7 +861,7 @@ OUTPUT Matrix rank. ...@@ -861,7 +861,7 @@ OUTPUT Matrix rank.
NOTES Based on algorithm described in Numerical Recipes in C, 2nd Ed.(p. 671). NOTES Based on algorithm described in Numerical Recipes in C, 2nd Ed.(p. 671).
The a and v matrices are transposed with respect to the N.R. convention. The a and v matrices are transposed with respect to the N.R. convention.
AUTHOR E. Bertin (IAP) AUTHOR E. Bertin (IAP)
VERSION 02/09/2010 VERSION 11/03/2011
***/ ***/
static int SVDINV(LM_REAL *a, LM_REAL *b, int m) static int SVDINV(LM_REAL *a, LM_REAL *b, int m)
...@@ -884,7 +884,7 @@ static int SVDINV(LM_REAL *a, LM_REAL *b, int m) ...@@ -884,7 +884,7 @@ static int SVDINV(LM_REAL *a, LM_REAL *b, int m)
thresh, wmax, tol,tanorm; thresh, wmax, tol,tanorm;
anorm = g = scale = 0.0; anorm = g = scale = 0.0;
tol = sizeof(anorm)>4? 1.0e-9 : 1.0e-6; tanorm = tol = sizeof(anorm)>4? 1.0e-9 : 1.0e-6;
rv1=(LM_REAL *)malloc(m*sizeof(LM_REAL)); rv1=(LM_REAL *)malloc(m*sizeof(LM_REAL));
tmp=(LM_REAL *)malloc(m*sizeof(LM_REAL)); tmp=(LM_REAL *)malloc(m*sizeof(LM_REAL));
......
...@@ -7,7 +7,7 @@ ...@@ -7,7 +7,7 @@
* *
* This file part of: SExtractor * This file part of: SExtractor
* *
* Copyright: (C) 1993-2010 Emmanuel Bertin -- IAP/CNRS/UPMC * Copyright: (C) 1993-2011 Emmanuel Bertin -- IAP/CNRS/UPMC
* *
* License: GNU General Public License * License: GNU General Public License
* *
...@@ -22,7 +22,7 @@ ...@@ -22,7 +22,7 @@
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with SExtractor. If not, see <http://www.gnu.org/licenses/>. * along with SExtractor. If not, see <http://www.gnu.org/licenses/>.
* *
* Last modified: 14/10/2010 * Last modified: 09/03/2011
* *
*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/ *%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/
...@@ -389,7 +389,7 @@ void makeit() ...@@ -389,7 +389,7 @@ void makeit()
/*-- Compute background maps for `standard' fields */ /*-- Compute background maps for `standard' fields */
QPRINTF(OUTPUT, dfield? "Measurement image:" QPRINTF(OUTPUT, dfield? "Measurement image:"
: "Detection+Measurement image: "); : "Detection+Measurement image: ");
makeback(field, wfield); makeback(field, wfield, prefs.wscale_flag[1]);
QPRINTF(OUTPUT, (dfield || (dwfield&&dwfield->flags^INTERP_FIELD))? "(M) " QPRINTF(OUTPUT, (dfield || (dwfield&&dwfield->flags^INTERP_FIELD))? "(M) "
"Background: %-10g RMS: %-10g / Threshold: %-10g \n" "Background: %-10g RMS: %-10g / Threshold: %-10g \n"
: "(M+D) " : "(M+D) "
...@@ -400,14 +400,15 @@ void makeit() ...@@ -400,14 +400,15 @@ void makeit()
{ {
QPRINTF(OUTPUT, "Detection image: "); QPRINTF(OUTPUT, "Detection image: ");
makeback(dfield, dwfield? dwfield makeback(dfield, dwfield? dwfield
: (prefs.weight_type[0] == WEIGHT_NONE?NULL:wfield)); : (prefs.weight_type[0] == WEIGHT_NONE?NULL:wfield),
prefs.wscale_flag[0]);
QPRINTF(OUTPUT, "(D) " QPRINTF(OUTPUT, "(D) "
"Background: %-10g RMS: %-10g / Threshold: %-10g \n", "Background: %-10g RMS: %-10g / Threshold: %-10g \n",
dfield->backmean, dfield->backsig, dfield->dthresh); dfield->backmean, dfield->backsig, dfield->dthresh);
} }
else if (dwfield && dwfield->flags^INTERP_FIELD) else if (dwfield && dwfield->flags^INTERP_FIELD)
{ {
makeback(field, dwfield); makeback(field, dwfield, BACK_WSCALE);
QPRINTF(OUTPUT, "(D) " QPRINTF(OUTPUT, "(D) "
"Background: %-10g RMS: %-10g / Threshold: %-10g \n", "Background: %-10g RMS: %-10g / Threshold: %-10g \n",
field->backmean, field->backsig, field->dthresh); field->backmean, field->backsig, field->dthresh);
......
...@@ -7,7 +7,7 @@ ...@@ -7,7 +7,7 @@
* *
* This file part of: SExtractor * This file part of: SExtractor
* *
* Copyright: (C) 2009-2010 Emmanuel Bertin -- IAP/CNRS/UPMC * Copyright: (C) 2009-2011 Emmanuel Bertin -- IAP/CNRS/UPMC
* *
* License: GNU General Public License * License: GNU General Public License
* *
...@@ -22,7 +22,7 @@ ...@@ -22,7 +22,7 @@
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with SExtractor. If not, see <http://www.gnu.org/licenses/>. * along with SExtractor. If not, see <http://www.gnu.org/licenses/>.
* *
* Last modified: 11/10/2010 * Last modified: 11/03/2011
* *
*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/ *%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/
...@@ -30,6 +30,7 @@ ...@@ -30,6 +30,7 @@
#include "config.h" #include "config.h"
#endif #endif
#include <stdlib.h>
#include <time.h> #include <time.h>
#include <sys/time.h> #include <sys/time.h>
......
...@@ -22,7 +22,7 @@ ...@@ -22,7 +22,7 @@
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with SExtractor. If not, see <http://www.gnu.org/licenses/>. * along with SExtractor. If not, see <http://www.gnu.org/licenses/>.
* *
* Last modified: 12/01/2011 * Last modified: 13/03/2011
* *
*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/ *%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/
...@@ -269,16 +269,16 @@ keystruct objkey[] = { ...@@ -269,16 +269,16 @@ keystruct objkey[] = {
"pos.eq.dec", "deg"}, "pos.eq.dec", "deg"},
{"X_IMAGE", "Object position along x", {"X_IMAGE", "Object position along x",
&outobj2.sposx, H_FLOAT, T_FLOAT, "%10.3f", "pixel", &outobj2.sposx, H_FLOAT, T_FLOAT, "%11.4f", "pixel",
"pos.cartesian.x;pos.barycenter;instr.det;meta.main", "pix"}, "pos.cartesian.x;pos.barycenter;instr.det;meta.main", "pix"},
{"Y_IMAGE", "Object position along y", {"Y_IMAGE", "Object position along y",
&outobj2.sposy, H_FLOAT, T_FLOAT, "%10.3f", "pixel", &outobj2.sposy, H_FLOAT, T_FLOAT, "%11.4f", "pixel",
"pos.cartesian.y;pos.barycenter;instr.det;meta.main", "pix"}, "pos.cartesian.y;pos.barycenter;instr.det;meta.main", "pix"},
{"X_IMAGE_DBL", "Object position along x (double precision)", {"X_IMAGE_DBL", "Object position along x (double precision)",
&outobj2.posx, H_FLOAT, T_DOUBLE, "%10.3f", "pixel", &outobj2.posx, H_FLOAT, T_DOUBLE, "%11.4f", "pixel",
"pos.cartesian.x;pos.barycenter;instr.det", "pix"}, "pos.cartesian.x;pos.barycenter;instr.det", "pix"},
{"Y_IMAGE_DBL", "Object position along y (double precision)", {"Y_IMAGE_DBL", "Object position along y (double precision)",
&outobj2.posy, H_FLOAT, T_DOUBLE, "%10.3f", "pixel", &outobj2.posy, H_FLOAT, T_DOUBLE, "%11.4f", "pixel",
"pos.cartesian.x;pos.barycenter;instr.det", "pix"}, "pos.cartesian.x;pos.barycenter;instr.det", "pix"},
{"X_FOCAL", "Barycenter position along focal-plane x axis", {"X_FOCAL", "Barycenter position along focal-plane x axis",
&outobj2.mxf, H_FLOAT, T_DOUBLE, "%18.10e", "", &outobj2.mxf, H_FLOAT, T_DOUBLE, "%18.10e", "",
...@@ -425,10 +425,10 @@ keystruct objkey[] = { ...@@ -425,10 +425,10 @@ keystruct objkey[] = {
"src.impactParam;pos.errorEllipse", "deg-2"}, "src.impactParam;pos.errorEllipse", "deg-2"},
{"ERRA_IMAGE", "RMS position error along major axis", {"ERRA_IMAGE", "RMS position error along major axis",
&outobj2.poserr_a, H_FLOAT, T_FLOAT, "%8.4f", "pixel", &outobj2.poserr_a, H_FLOAT, T_FLOAT, "%9.5f", "pixel",
"stat.stdev;stat.max;pos.errorEllipse;instr.det;meta.main", "pix"}, "stat.stdev;stat.max;pos.errorEllipse;instr.det;meta.main", "pix"},
{"ERRB_IMAGE", "RMS position error along minor axis", {"ERRB_IMAGE", "RMS position error along minor axis",
&outobj2.poserr_b, H_FLOAT, T_FLOAT, "%8.4f", "pixel", &outobj2.poserr_b, H_FLOAT, T_FLOAT, "%9.5f", "pixel",
"stat.stdev;stat.min;pos.errorEllipse;instr.det;meta.main", "pix"}, "stat.stdev;stat.min;pos.errorEllipse;instr.det;meta.main", "pix"},
{"ERRTHETA_IMAGE", "Error ellipse position angle (CCW/x)", {"ERRTHETA_IMAGE", "Error ellipse position angle (CCW/x)",
&outobj2.poserr_theta, H_FLOAT, T_FLOAT, "%6.2f", "deg", &outobj2.poserr_theta, H_FLOAT, T_FLOAT, "%6.2f", "deg",
...@@ -453,10 +453,10 @@ keystruct objkey[] = { ...@@ -453,10 +453,10 @@ keystruct objkey[] = {
"pos.posAng;pos.errorEllipse", "deg"}, "pos.posAng;pos.errorEllipse", "deg"},
{"XWIN_IMAGE", "Windowed position estimate along x", {"XWIN_IMAGE", "Windowed position estimate along x",
&outobj2.winpos_x, H_FLOAT, T_DOUBLE, "%10.3f", "pixel", &outobj2.winpos_x, H_FLOAT, T_DOUBLE, "%11.4f", "pixel",
"pos.cartesian.x;instr.det", "pix"}, "pos.cartesian.x;instr.det", "pix"},
{"YWIN_IMAGE", "Windowed position estimate along y", {"YWIN_IMAGE", "Windowed position estimate along y",
&outobj2.winpos_y, H_FLOAT, T_DOUBLE, "%10.3f", "pixel", &outobj2.winpos_y, H_FLOAT, T_DOUBLE, "%11.4f", "pixel",
"pos.cartesian.y;instr.det", "pix"}, "pos.cartesian.y;instr.det", "pix"},
{"XWIN_FOCAL", "Windowed position along focal-plane x axis", {"XWIN_FOCAL", "Windowed position along focal-plane x axis",
...@@ -599,10 +599,10 @@ keystruct objkey[] = { ...@@ -599,10 +599,10 @@ keystruct objkey[] = {
"src.impactParam;pos.errorEllipse", "deg-2"}, "src.impactParam;pos.errorEllipse", "deg-2"},
{"ERRAWIN_IMAGE", "RMS windowed pos error along major axis", {"ERRAWIN_IMAGE", "RMS windowed pos error along major axis",
&outobj2.winposerr_a, H_FLOAT, T_FLOAT, "%8.4f", "pixel", &outobj2.winposerr_a, H_FLOAT, T_FLOAT, "%9.5f", "pixel",
"stat.stdev;stat.max;pos.errorEllipse;instr.det", "pix"}, "stat.stdev;stat.max;pos.errorEllipse;instr.det", "pix"},
{"ERRBWIN_IMAGE", "RMS windowed pos error along minor axis", {"ERRBWIN_IMAGE", "RMS windowed pos error along minor axis",
&outobj2.winposerr_b, H_FLOAT, T_FLOAT, "%8.4f", "pixel", &outobj2.winposerr_b, H_FLOAT, T_FLOAT, "%9.5f", "pixel",
"stat.stdev;stat.min;pos.errorEllipse;instr.det", "pix"}, "stat.stdev;stat.min;pos.errorEllipse;instr.det", "pix"},
{"ERRTHETAWIN_IMAGE", "Windowed error ellipse pos angle (CCW/x)", {"ERRTHETAWIN_IMAGE", "Windowed error ellipse pos angle (CCW/x)",
&outobj2.winposerr_theta, H_FLOAT, T_FLOAT, "%6.2f", "deg", &outobj2.winposerr_theta, H_FLOAT, T_FLOAT, "%6.2f", "deg",
...@@ -750,10 +750,10 @@ keystruct objkey[] = { ...@@ -750,10 +750,10 @@ keystruct objkey[] = {
"phys.size.radius;instr.det", "pix", 1, &prefs.flux_radiussize}, "phys.size.radius;instr.det", "pix", 1, &prefs.flux_radiussize},
{"XPSF_IMAGE", "X coordinate from PSF-fitting", {"XPSF_IMAGE", "X coordinate from PSF-fitting",
&outobj2.x_psf, H_FLOAT, T_DOUBLE, "%10.3f", "pixel", &outobj2.x_psf, H_FLOAT, T_DOUBLE, "%11.4f", "pixel",
"pos.cartesian.x;stat.fit.param;instr.det", "pix"}, "pos.cartesian.x;stat.fit.param;instr.det", "pix"},
{"YPSF_IMAGE", "Y coordinate from PSF-fitting", {"YPSF_IMAGE", "Y coordinate from PSF-fitting",
&outobj2.y_psf, H_FLOAT, T_DOUBLE, "%10.3f", "pixel", &outobj2.y_psf, H_FLOAT, T_DOUBLE, "%11.4f", "pixel",
"pos.cartesian.y;stat.fit.param;instr.det", "pix"}, "pos.cartesian.y;stat.fit.param;instr.det", "pix"},
{"XPSF_WORLD", "PSF position along world x axis", {"XPSF_WORLD", "PSF position along world x axis",
&outobj2.xw_psf, H_FLOAT, T_DOUBLE, "%18.10e", "deg", &outobj2.xw_psf, H_FLOAT, T_DOUBLE, "%18.10e", "deg",
...@@ -842,10 +842,10 @@ keystruct objkey[] = { ...@@ -842,10 +842,10 @@ keystruct objkey[] = {
"src.impactParam;pos.errorEllipse", "deg-2"}, "src.impactParam;pos.errorEllipse", "deg-2"},
{"ERRAPSF_IMAGE", "PSF RMS position error along major axis", {"ERRAPSF_IMAGE", "PSF RMS position error along major axis",
&outobj2.poserra_psf, H_FLOAT, T_FLOAT, "%8.4f", "pixel", &outobj2.poserra_psf, H_FLOAT, T_FLOAT, "%9.5f", "pixel",
"stat.stdev;stat.max;pos.errorEllipse;instr.det", "pix"}, "stat.stdev;stat.max;pos.errorEllipse;instr.det", "pix"},
{"ERRBPSF_IMAGE", "PSF RMS position error along minor axis", {"ERRBPSF_IMAGE", "PSF RMS position error along minor axis",
&outobj2.poserrb_psf, H_FLOAT, T_FLOAT, "%8.4f", "pixel", &outobj2.poserrb_psf, H_FLOAT, T_FLOAT, "%9.5f", "pixel",
"stat.stdev;stat.min;pos.errorEllipse;instr.det", "pix"}, "stat.stdev;stat.min;pos.errorEllipse;instr.det", "pix"},
{"ERRTHETAPSF_IMAGE", "PSF error ellipse position angle (CCW/x)", {"ERRTHETAPSF_IMAGE", "PSF error ellipse position angle (CCW/x)",
&outobj2.poserrtheta_psf, H_FLOAT, T_FLOAT, "%6.2f", "deg", &outobj2.poserrtheta_psf, H_FLOAT, T_FLOAT, "%6.2f", "deg",
......
...@@ -7,7 +7,7 @@ ...@@ -7,7 +7,7 @@
* *
* This file part of: SExtractor * This file part of: SExtractor
* *
* Copyright: (C) 2007-2010 Emmanuel Bertin -- IAP/CNRS/UPMC * Copyright: (C) 2007-2011 Emmanuel Bertin -- IAP/CNRS/UPMC
* *
* License: GNU General Public License * License: GNU General Public License
* *
...@@ -22,7 +22,7 @@ ...@@ -22,7 +22,7 @@
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with SExtractor. If not, see <http://www.gnu.org/licenses/>. * along with SExtractor. If not, see <http://www.gnu.org/licenses/>.
* *
* Last modified: 18/10/2010 * Last modified: 13/03/2011
* *
*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/ *%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/
...@@ -59,7 +59,7 @@ ...@@ -59,7 +59,7 @@
{"MAGERR_MODEL", "RMS error on model-fitting magnitude", {"MAGERR_MODEL", "RMS error on model-fitting magnitude",
&outobj2.magerr_prof, H_FLOAT, T_FLOAT, "%8.4f", "mag", &outobj2.magerr_prof, H_FLOAT, T_FLOAT, "%8.4f", "mag",
"stat.error;phot.mag;stat.fit.param", "mag"}, "stat.error;phot.mag;stat.fit.param", "mag"},
/*
{"FLUXHYBRID_MODEL", "Hybrid flux from model-fitting", {"FLUXHYBRID_MODEL", "Hybrid flux from model-fitting",
&outobj2.fluxcor_prof, H_FLOAT, T_FLOAT, "%12.7g", "count", &outobj2.fluxcor_prof, H_FLOAT, T_FLOAT, "%12.7g", "count",
"phot.count;stat.fit.param", "ct"}, "phot.count;stat.fit.param", "ct"},
...@@ -72,7 +72,7 @@ ...@@ -72,7 +72,7 @@
{"MAGHYBRIDERR_MODEL", "RMS error on hybrid magnitude", {"MAGHYBRIDERR_MODEL", "RMS error on hybrid magnitude",
&outobj2.magcorerr_prof, H_FLOAT, T_FLOAT, "%8.4f", "mag", &outobj2.magcorerr_prof, H_FLOAT, T_FLOAT, "%8.4f", "mag",
"stat.error;phot.mag;stat.fit.param", "mag"}, "stat.error;phot.mag;stat.fit.param", "mag"},
*/
{"FLUX_MAX_MODEL", "Peak model flux above background", {"FLUX_MAX_MODEL", "Peak model flux above background",
&outobj2.peak_prof, H_FLOAT, T_FLOAT, "%12.7g", "count", &outobj2.peak_prof, H_FLOAT, T_FLOAT, "%12.7g", "count",
"phot.flux.sb;stat.max;stat.fit.param", "ct"}, "phot.flux.sb;stat.max;stat.fit.param", "ct"},
...@@ -93,10 +93,10 @@ ...@@ -93,10 +93,10 @@
"phot.mag.sb;stat.mean;stat.fit.param", "mag.arcsec-2"}, "phot.mag.sb;stat.mean;stat.fit.param", "mag.arcsec-2"},
{"XMODEL_IMAGE", "X coordinate from model-fitting", {"XMODEL_IMAGE", "X coordinate from model-fitting",
&outobj2.x_prof, H_FLOAT, T_DOUBLE, "%10.3f", "pixel", &outobj2.x_prof, H_FLOAT, T_DOUBLE, "%11.4f", "pixel",
"pos.cartesian.x;stat.fit.param;instr.det;meta.main", "pix"}, "pos.cartesian.x;stat.fit.param;instr.det;meta.main", "pix"},
{"YMODEL_IMAGE", "Y coordinate from model-fitting", {"YMODEL_IMAGE", "Y coordinate from model-fitting",
&outobj2.y_prof, H_FLOAT, T_DOUBLE, "%10.3f", "pixel", &outobj2.y_prof, H_FLOAT, T_DOUBLE, "%11.4f", "pixel",
"pos.cartesian.y;stat.fit.param;instr.det;meta.main", "pix"}, "pos.cartesian.y;stat.fit.param;instr.det;meta.main", "pix"},
{"XFOCAL_WORLD", "Fitted position along focal-plane x axis", {"XFOCAL_WORLD", "Fitted position along focal-plane x axis",
...@@ -173,10 +173,10 @@ ...@@ -173,10 +173,10 @@
"src.impactParam;pos.errorEllipsestat.fit.param", "deg-2"}, "src.impactParam;pos.errorEllipsestat.fit.param", "deg-2"},
{"ERRAMODEL_IMAGE", "RMS error of fitted position along major axis", {"ERRAMODEL_IMAGE", "RMS error of fitted position along major axis",
&outobj2.poserra_prof, H_FLOAT, T_FLOAT, "%8.4f", "pixel", &outobj2.poserra_prof, H_FLOAT, T_FLOAT, "%9.5f", "pixel",
"stat.stdev;stat.max;pos.errorEllipse;stat.fit.param;instr.det", "pix"}, "stat.stdev;stat.max;pos.errorEllipse;stat.fit.param;instr.det", "pix"},
{"ERRBMODEL_IMAGE", "RMS error of fitted position along minor axis", {"ERRBMODEL_IMAGE", "RMS error of fitted position along minor axis",
&outobj2.poserrb_prof, H_FLOAT, T_FLOAT, "%8.4f", "pixel", &outobj2.poserrb_prof, H_FLOAT, T_FLOAT, "%9.5f", "pixel",
"stat.stdev;stat.min;pos.errorEllipse;stat.fit.param;instr.det", "pix"}, "stat.stdev;stat.min;pos.errorEllipse;stat.fit.param;instr.det", "pix"},
{"ERRTHETAMODEL_IMAGE", "Error ellipse pos.angle of fitted position (CCW/x)", {"ERRTHETAMODEL_IMAGE", "Error ellipse pos.angle of fitted position (CCW/x)",
&outobj2.poserrtheta_prof, H_FLOAT, T_FLOAT, "%6.2f", "deg", &outobj2.poserrtheta_prof, H_FLOAT, T_FLOAT, "%6.2f", "deg",
......
...@@ -22,7 +22,7 @@ ...@@ -22,7 +22,7 @@
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with SExtractor. If not, see <http://www.gnu.org/licenses/>. * along with SExtractor. If not, see <http://www.gnu.org/licenses/>.
* *
* Last modified: 12/01/2011 * Last modified: 09/03/2011
* *
*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/ *%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/
...@@ -144,6 +144,8 @@ ...@@ -144,6 +144,8 @@
{"PSF_NAME", P_STRINGLIST, prefs.psf_name, 0,0, 0.0,0.0, {"PSF_NAME", P_STRINGLIST, prefs.psf_name, 0,0, 0.0,0.0,
{""}, 1, 2, &prefs.npsf_name}, /*?*/ {""}, 1, 2, &prefs.npsf_name}, /*?*/
{"PSF_NMAX", P_INT, &prefs.psf_npsfmax, 1, PSF_NPSFMAX}, {"PSF_NMAX", P_INT, &prefs.psf_npsfmax, 1, PSF_NPSFMAX},
{"RESCALE_WEIGHTS", P_BOOLLIST, prefs.wscale_flag, 0,0, 0.0,0.0,
{""}, 1, 2, &prefs.nwscale_flag},
{"SATUR_KEY", P_STRING, prefs.satur_key}, {"SATUR_KEY", P_STRING, prefs.satur_key},
{"SATUR_LEVEL", P_FLOAT, &prefs.satur_level, 0,0, -1e+30, 1e+30}, {"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}, {"SEEING_FWHM", P_FLOAT, &prefs.seeing_fwhm, 0,0, 0.0, 1e+10},
...@@ -212,6 +214,7 @@ char *default_prefs[] = ...@@ -212,6 +214,7 @@ char *default_prefs[] =
"*", "*",
"*WEIGHT_TYPE NONE # type of WEIGHTing: NONE, BACKGROUND,", "*WEIGHT_TYPE NONE # type of WEIGHTing: NONE, BACKGROUND,",
"* # MAP_RMS, MAP_VAR or MAP_WEIGHT", "* # MAP_RMS, MAP_VAR or MAP_WEIGHT",
"*RESCALE_WEIGHTS Y # Rescale input weights/variances (Y/N)?",
"*WEIGHT_IMAGE weight.fits # weight-map filename", "*WEIGHT_IMAGE weight.fits # weight-map filename",
"*WEIGHT_GAIN Y # modulate gain (E/ADU) with weights? (Y/N)", "*WEIGHT_GAIN Y # modulate gain (E/ADU) with weights? (Y/N)",
"*WEIGHT_THRESH # weight threshold[s] for bad pixels", "*WEIGHT_THRESH # weight threshold[s] for bad pixels",
......
...@@ -22,7 +22,7 @@ ...@@ -22,7 +22,7 @@
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with SExtractor. If not, see <http://www.gnu.org/licenses/>. * along with SExtractor. If not, see <http://www.gnu.org/licenses/>.
* *
* Last modified: 14/10/2010 * Last modified: 09/03/2011
* *
*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/ *%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/
...@@ -46,6 +46,7 @@ ...@@ -46,6 +46,7 @@
#include "define.h" #include "define.h"
#include "globals.h" #include "globals.h"
#include "back.h"
#include "prefs.h" #include "prefs.h"
#include "preflist.h" #include "preflist.h"
#include "fits/fitscat.h" #include "fits/fitscat.h"
...@@ -642,6 +643,11 @@ void useprefs() ...@@ -642,6 +643,11 @@ void useprefs()
for (i=2; --i >= prefs.nweight_thresh;) for (i=2; --i >= prefs.nweight_thresh;)
prefs.weight_thresh[i] = (prefs.weight_type[i]==WEIGHT_FROMWEIGHTMAP)? prefs.weight_thresh[i] = (prefs.weight_type[i]==WEIGHT_FROMWEIGHTMAP)?
0.0 : BIG; 0.0 : BIG;
/*-- Weight rescaling flags */
if (prefs.nwscale_flag<2)
prefs.wscale_flag[1] = (prefs.weight_type[1]==WEIGHT_FROMBACK)?
BACK_WSCALE : prefs.wscale_flag[0];
/*-- Check WEIGHT_IMAGE parameter(s) */ /*-- Check WEIGHT_IMAGE parameter(s) */
if ((!prefs.nwimage_name if ((!prefs.nwimage_name
&& ((prefs.weight_type[0]!=WEIGHT_FROMBACK && ((prefs.weight_type[0]!=WEIGHT_FROMBACK
......
...@@ -22,7 +22,7 @@ ...@@ -22,7 +22,7 @@
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with SExtractor. If not, see <http://www.gnu.org/licenses/>. * along with SExtractor. If not, see <http://www.gnu.org/licenses/>.
* *
* Last modified: 12/01/2011 * Last modified: 09/03/2011
* *
*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/ *%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/
...@@ -96,6 +96,8 @@ typedef struct ...@@ -96,6 +96,8 @@ typedef struct
int weight_flag; /* do we weight ? */ int weight_flag; /* do we weight ? */
int dweight_flag; /* detection weight? */ int dweight_flag; /* detection weight? */
int weightgain_flag; /* weight gain? */ int weightgain_flag; /* weight gain? */
int wscale_flag[2]; /* Weight rescaling */
int nwscale_flag; /* nb of params */
/*----- photometry */ /*----- photometry */
enum {CAT_NONE, ASCII, ASCII_HEAD, ASCII_SKYCAT, ASCII_VO, enum {CAT_NONE, ASCII, ASCII_HEAD, ASCII_SKYCAT, ASCII_VO,
FITS_LDAC, FITS_TPX, FITS_10} FITS_LDAC, FITS_TPX, FITS_10}
......
...@@ -22,7 +22,7 @@ ...@@ -22,7 +22,7 @@
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with SExtractor. If not, see <http://www.gnu.org/licenses/>. * along with SExtractor. If not, see <http://www.gnu.org/licenses/>.
* *
* Last modified: 24/01/2011 * Last modified: 11/03/2011
* *
*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/ *%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/
...@@ -1152,9 +1152,9 @@ int profit_minimize(profitstruct *profit, int niter) ...@@ -1152,9 +1152,9 @@ int profit_minimize(profitstruct *profit, int niter)
/* Perform fit */ /* Perform fit */
lm_opts[0] = 1.0e-3; /* Initial mu */ lm_opts[0] = 1.0e-3; /* Initial mu */
lm_opts[1] = 1.0e-8; /* ||J^T e||_inf stopping factor */ lm_opts[1] = 1.0e-6; /* ||J^T e||_inf stopping factor */
lm_opts[2] = 1.0e-8; /* |Dp||_2 stopping factor */ lm_opts[2] = 1.0e-6; /* |Dp||_2 stopping factor */
lm_opts[3] = 1.0e-8; /* ||e||_2 stopping factor */ lm_opts[3] = 1.0e-6; /* ||e||_2 stopping factor */
lm_opts[4] = 1.0e-4; /* Jacobian step */ lm_opts[4] = 1.0e-4; /* Jacobian step */
profit_boundtounbound(profit, profit->paraminit, dparam, PARAM_ALLPARAMS); profit_boundtounbound(profit, profit->paraminit, dparam, PARAM_ALLPARAMS);
...@@ -3320,7 +3320,7 @@ INPUT Profile-fitting structure, ...@@ -3320,7 +3320,7 @@ INPUT Profile-fitting structure,
OUTPUT Total (asymptotic) flux contribution. OUTPUT Total (asymptotic) flux contribution.
NOTES -. NOTES -.
AUTHOR E. Bertin (IAP) AUTHOR E. Bertin (IAP)
VERSION 24/01/2011 VERSION 11/03/2011
***/ ***/
float prof_add(profitstruct *profit, profstruct *prof, int extfluxfac_flag) float prof_add(profitstruct *profit, profstruct *prof, int extfluxfac_flag)
{ {
...@@ -3328,20 +3328,19 @@ float prof_add(profitstruct *profit, profstruct *prof, int extfluxfac_flag) ...@@ -3328,20 +3328,19 @@ float prof_add(profitstruct *profit, profstruct *prof, int extfluxfac_flag)
dx1cout,dx2cout, ddx1[36],ddx2[36]; dx1cout,dx2cout, ddx1[36],ddx2[36];
float posin[PROFIT_MAXEXTRA], posout[2], dnaxisn[2], float posin[PROFIT_MAXEXTRA], posout[2], dnaxisn[2],
*pixin, *pixin2, *pixout, *pixin, *pixin2, *pixout,
fluxfac, amp,cd11,cd12,cd21,cd22, dcd11,dcd21, dx1,dx2, fluxfac, amp,cd11,cd12,cd21,cd22, dx1,dx2,
x1,x10,x2, x1cin,x2cin, x1cout,x2cout, x1max,x2max, x1,x10,x2, x1cin,x2cin, x1cout,x2cout, x1max,x2max, x1in,x2in,
x1in,x2in, odx, ostep,
k, hinvn, x1t,x2t, ca,sa, u,umin, k, hinvn, x1t,x2t, ca,sa, u,umin,
armamp,arm2amp, armrdphidr, armrdphidrvar, posang, armamp,arm2amp, armrdphidr, armrdphidrvar, posang,
width, invwidth2, width, invwidth2,
r,r2,rmin, r2minxin,r2minxout, rmax, r2max, r,r2,rmin, r2minxin,r2minxout, rmax, r2max,
r2max1, r2max2, r2min, invr2xdif, r2max1, r2max2, r2min, invr2xdif,
val, theta, thresh, ra,rb,rao, num,num2,den, ang,angstep, val, theta, thresh, ra,rb, num,num2,den, ang,angstep,
invn, smoothfac, dr,deltar, krpinvn,dkrpinvn, rs,rs2, invn, dr, krpinvn,dkrpinvn, rs,rs2,
a11,a12,a21,a22, invdet, dca,dsa, a0,a2,a3, p1,p2, a11,a12,a21,a22, invdet, dca,dsa, a0,a2,a3, p1,p2,
krspinvn, ekrspinvn, selem; krspinvn, ekrspinvn, selem;
int npix, threshflag, int npix, threshflag,
a,d,e,i, ix1,ix2, ix1max,ix2max, ir,nang, idx1,idx2, nx2, a,d,e,i, ix1,ix2, ix1max,ix2max, nang, nx2,
npix2; npix2;
npix = profit->nmodpix; npix = profit->nmodpix;
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment