Commit 3d8b32ff authored by Emmanuel Bertin's avatar Emmanuel Bertin
Browse files

Fixed scaling issue with surface brightness measurements on galaxy models...

Fixed scaling issue with surface brightness measurements on galaxy models (thanks to V. de Lapparent).
Optimized the setup of astrometric polynoms.
Removed confusing FITS header keywords from non-MEF check-images.
Pushed version number to 2.14.7.
parent 17b88c46
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
# Generated by GNU Autoconf 2.68 for sextractor 2.14.5.
# Generated by GNU Autoconf 2.68 for sextractor 2.14.7.
#
# Report bugs to <bertin@iap.fr>.
#
......@@ -714,8 +714,8 @@ MAKEFLAGS=
# Identity of this package.
PACKAGE_NAME='sextractor'
PACKAGE_TARNAME='sextractor'
PACKAGE_VERSION='2.14.5'
PACKAGE_STRING='sextractor 2.14.5'
PACKAGE_VERSION='2.14.7'
PACKAGE_STRING='sextractor 2.14.7'
PACKAGE_BUGREPORT='bertin@iap.fr'
PACKAGE_URL=''
 
......@@ -1465,7 +1465,7 @@ if test "$ac_init_help" = "long"; then
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
\`configure' configures sextractor 2.14.5 to adapt to many kinds of systems.
\`configure' configures sextractor 2.14.7 to adapt to many kinds of systems.
 
Usage: $0 [OPTION]... [VAR=VALUE]...
 
......@@ -1535,7 +1535,7 @@ fi
 
if test -n "$ac_init_help"; then
case $ac_init_help in
short | recursive ) echo "Configuration of sextractor 2.14.5:";;
short | recursive ) echo "Configuration of sextractor 2.14.7:";;
esac
cat <<\_ACEOF
 
......@@ -1668,7 +1668,7 @@ fi
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
sextractor configure 2.14.5
sextractor configure 2.14.7
generated by GNU Autoconf 2.68
 
Copyright (C) 2010 Free Software Foundation, Inc.
......@@ -2296,7 +2296,7 @@ cat >config.log <<_ACEOF
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
 
It was created by sextractor $as_me 2.14.5, which was
It was created by sextractor $as_me 2.14.7, which was
generated by GNU Autoconf 2.68. Invocation command line was
 
$ $0 $@
......@@ -2972,7 +2972,7 @@ fi
 
# Define the identity of the package.
PACKAGE='sextractor'
VERSION='2.14.5'
VERSION='2.14.7'
 
 
cat >>confdefs.h <<_ACEOF
......@@ -23325,7 +23325,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
This file was extended by sextractor $as_me 2.14.5, which was
This file was extended by sextractor $as_me 2.14.7, which was
generated by GNU Autoconf 2.68. Invocation command line was
 
CONFIG_FILES = $CONFIG_FILES
......@@ -23391,7 +23391,7 @@ _ACEOF
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\
sextractor config.status 2.14.5
sextractor config.status 2.14.7
configured by $0, generated by GNU Autoconf 2.68,
with options \\"\$ac_cs_config\\"
 
......
......@@ -22,7 +22,7 @@
# You should have received a copy of the GNU General Public License
# along with SExtractor. If not, see <http://www.gnu.org/licenses/>.
#
# Last modified: 22/08/2011
# Last modified: 06/09/2011
#
#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
......@@ -31,7 +31,7 @@ define([AC_CACHE_LOAD],)
define([AC_CACHE_SAVE],)
# This is your standard Bertin source code...
AC_INIT(sextractor, 2.14.5, [bertin@iap.fr])
AC_INIT(sextractor, 2.14.7, [bertin@iap.fr])
AC_CONFIG_SRCDIR(src/makeit.c)
AC_CONFIG_AUX_DIR(autoconf)
AM_CONFIG_HEADER(config.h)
......
.TH SEXTRACTOR "1" "August 2011" "SExtractor 2.14.5" "User Commands"
.TH SEXTRACTOR "1" "September 2011" "SExtractor 2.14.7" "User Commands"
.SH NAME
sex \- extract a source catalogue from an astronomical FITS image
.SH SYNOPSIS
......
......@@ -22,7 +22,7 @@
* You should have received a copy of the GNU General Public License
* along with SExtractor. If not, see <http://www.gnu.org/licenses/>.
*
* Last modified: 19/05/2011
* Last modified: 06/09/2011
*
*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/
......@@ -373,9 +373,9 @@ void updateparamflags()
/*| FLAG(obj2.fluxcor_prof) */;
FLAG(obj2.prof_convmx2) |= FLAG(obj2.prof_convcxx) | FLAG(obj2.prof_conva);
FLAG(obj2.fluxmean_prof) |= FLAG(obj2.mumean_prof);
FLAG(obj2.fluxeff_prof) |= FLAG(obj2.mueff_prof)
| FLAG(obj2.fluxmean_prof);
FLAG(obj2.peak_prof) |= FLAG(obj2.mumax_prof);
FLAG(obj2.fluxeff_prof) |= FLAG(obj2.mueff_prof)
| FLAG(obj2.fluxmean_prof) | FLAG(obj2.peak_prof);
FLAG(obj2.prof_arms_flux) |= FLAG(obj2.prof_arms_fluxerr)
| FLAG(obj2.prof_arms_mag)
......
......@@ -22,7 +22,7 @@
* You should have received a copy of the GNU General Public License
* along with SExtractor. If not, see <http://www.gnu.org/licenses/>.
*
* Last modified: 25/03/2011
* Last modified: 06/09/2011
*
*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/
......@@ -372,8 +372,8 @@ void reinitcheck(picstruct *field, checkstruct *check)
tab->bitpix = BP_FLOAT;
tab->bytepix = 4;
tab->bitsgn = 0;
tab->naxisn[0] = check->width = field->width;
tab->naxisn[1] = check->height = field->height;
tab->naxisn[0] = check->width;
tab->naxisn[1] = check->height;
check->npix = check->width*check->height;
QCALLOC(check->pix, PIXTYPE, check->npix);
save_head(cat, cat->tab);
......
......@@ -7,7 +7,7 @@
*
* This file part of: AstrOmatic FITS/LDAC library
*
* Copyright: (C) 1995-2010 Emmanuel Bertin -- IAP/CNRS/UPMC
* Copyright: (C) 1995-2011 Emmanuel Bertin -- IAP/CNRS/UPMC
*
* License: GNU General Public License
*
......@@ -23,7 +23,7 @@
* along with AstrOmatic software.
* If not, see <http://www.gnu.org/licenses/>.
*
* Last modified: 10/11/2010
* Last modified: 30/08/2011
*
*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/
......@@ -480,7 +480,7 @@ INPUT Table structure.
OUTPUT RETURN_OK if tab header was already primary, or RETURN_ERROR otherwise.
NOTES -.
AUTHOR E. Bertin (IAP & Leiden observatory) C. Marmo (IAP)
VERSION 11/06/2007
VERSION 30/08/2011
***/
int prim_head(tabstruct *tab)
......@@ -491,10 +491,11 @@ int prim_head(tabstruct *tab)
{
strncpy(tab->headbuf, "SIMPLE = T "
"/ This is a FITS file ", 80);
/* fitsverify 4.13 (CFITSIO V3.002) return an error
if PCOUNT and GCOUNT are in a primary header (23/05/2007)*/
removekeywordfrom_head(tab, "PCOUNT");
removekeywordfrom_head(tab, "GCOUNT");
removekeywordfrom_head(tab, "TFIELDS");
removekeywordfrom_head(tab, "EXTNAME");
*tab->extname = '\0';
return RETURN_ERROR;
}
......@@ -670,8 +671,8 @@ PURPOSE Return the size of a binary-table field from its ``TFORM''.
INPUT TFORM string (see the FITS documentation).
OUTPUT size in bytes, or RETURN_ERROR if the TFORM is unknown.
NOTES -.
AUTHOR E. Bertin (IAP)
VERSION 10/11/2010
AUTHOR E. Bertin (IAP & Leiden observatory)
VERSION 28/10/2009
***/
int tsizeof(char *str)
......@@ -679,8 +680,8 @@ int tsizeof(char *str)
int n;
char *str2;
n = strtol(str, &str2, 10);
if (str2==str)
str2 = str;
if (!(n = strtol(str, &str2, 10)))
n = 1;
switch ((int)*str2)
......
......@@ -22,7 +22,7 @@
* You should have received a copy of the GNU General Public License
* along with SExtractor. If not, see <http://www.gnu.org/licenses/>.
*
* Last modified: 25/07/2011
* Last modified: 06/09/2011
*
*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/
......@@ -166,7 +166,7 @@ OUTPUT Pointer to an allocated fit structure (containing details about the
fit).
NOTES It is a modified version of the lm_minimize() of lmfit.
AUTHOR E. Bertin (IAP)
VERSION 31/05/2011
VERSION 06/09/2011
***/
void profit_fit(profitstruct *profit,
picstruct *field, picstruct *wfield,
......@@ -537,7 +537,7 @@ profit->niter = profit_minimize(profit, PROFIT_MAXITER);
}
/* Do measurements on the rasterised model (surface brightnesses) */
if (FLAG(obj2.peak_prof))
if (FLAG(obj2.fluxeff_prof))
profit_surface(profit, obj2);
/* Background offset */
......@@ -595,7 +595,7 @@ profit->niter = profit_minimize(profit, PROFIT_MAXITER);
+ 131.0/(1148175*n*n*n); /* Ciotti & Bertin 1999 */
cn = n * prof_gamma(2.0*n) * pow(bn, -2.0*n);
obj2->prof_spheroid_peak = obj2->prof_spheroid_reff>0.0?
obj2->prof_spheroid_flux * profit->pixstep*profit->pixstep
obj2->prof_spheroid_flux
/ (2.0 * PI * cn
* obj2->prof_spheroid_reff*obj2->prof_spheroid_reff
* obj2->prof_spheroid_aspect)
......@@ -645,7 +645,7 @@ profit->niter = profit_minimize(profit, PROFIT_MAXITER);
if (FLAG(obj2.prof_disk_peak))
{
obj2->prof_disk_peak = obj2->prof_disk_scale>0.0?
obj2->prof_disk_flux * profit->pixstep*profit->pixstep
obj2->prof_disk_flux
/ (2.0 * PI * obj2->prof_disk_scale*obj2->prof_disk_scale
* obj2->prof_disk_aspect)
: 0.0;
......@@ -2643,7 +2643,7 @@ INPUT Pointer to the profile-fitting structure,
OUTPUT -.
NOTES -.
AUTHOR E. Bertin (IAP)
VERSION 24/01/2011
VERSION 06/09/2011
***/
void profit_surface(profitstruct *profit, obj2struct *obj2)
{
......@@ -2667,7 +2667,7 @@ void profit_surface(profitstruct *profit, obj2struct *obj2)
scalefac = (float)hdprofit.modnaxisn[0] / (float)profit->modnaxisn[0]
/ imsizefac;
hdprofit.pixstep = profit->pixstep / scalefac;
hdprofit.fluxfac = scalefac*scalefac;
hdprofit.fluxfac = 1.0/(hdprofit.pixstep*hdprofit.pixstep);
QCALLOC(hdprofit.modpix, float,npix*sizeof(float));
for (p=0; p<profit->nparam; p++)
......@@ -2680,56 +2680,18 @@ void profit_surface(profitstruct *profit, obj2struct *obj2)
lost += flux*profit->prof[p]->lostfluxfrac;
}
lostfluxfrac = sum > 0.0? lost / sum : 0.0;
/*
char filename[256];
checkstruct *check;
sprintf(filename, "raster_%02d.fits", the_gal);
check=initcheck(filename, CHECK_OTHER, 0);
check->width = hdprofit.modnaxisn[0];
check->height = hdprofit.modnaxisn[1];
reinitcheck(the_field, check);
memcpy(check->pix,hdprofit.modpix,check->npix*sizeof(float));
int r,t;
double ratio,ratio0,ang,ang0, x,x0,y,y0;
list = profit->paramlist;
index = profit->paramindex;
for (p=0; p<nparam; p++)
param[p] = profit->paraminit[p];
ratio0 = profit->paraminit[index[PARAM_SPHEROID_ASPECT]];
ang0 = profit->paraminit[index[PARAM_SPHEROID_POSANG]];
x0 = profit->paraminit[index[PARAM_X]];
y0 = profit->paraminit[index[PARAM_Y]];
for (r=0;r<check->height;r++)
for (t=0; t<check->width;t++)
{
//x = (r-10.0)/100.0 + x0;
//y = (t-10.0)/100.0 + y0;
ratio = ratio0*exp((r-10.0)/400.0);
ang = ang0+(t-10.0)/3.0;
for (i=0; i<PARAM_NPARAM; i++)
{
//if (list[i] && i==PARAM_X)
//param[index[i]] = x;
//if (list[i] && i==PARAM_Y)
//param[index[i]] = y;
if (list[i] && i==PARAM_SPHEROID_ASPECT)
param[index[i]] = ratio;
if (list[i] && i==PARAM_SPHEROID_POSANG)
param[index[i]] = ang;
//if (list[i] && i==PARAM_SPHEROID_REFF)
//param[index[i]] = profit->paraminit[index[i]]*sqrt(ratio0/ratio);
}
profit_residuals(profit,field,wfield, PROFIT_DYNPARAM, param,profit->resi);
*((float *)check->pix + t + r*check->width) = profit->chi2;
}
reendcheck(the_field, check);
endcheck(check);
*/
if (FLAG(obj2.fluxeff_prof))
{
/*-- Sort model pixel values */
......@@ -2775,7 +2737,7 @@ endcheck(check);
free(spix);
}
/* Compute model peak (overwrites oversampled model!!) */
/* Compute model peak */
if (FLAG(obj2.peak_prof))
{
/*-- Find position of maximum pixel in current hi-def raster */
......@@ -2789,11 +2751,6 @@ endcheck(check);
imax = i;
}
imax = npix-1 - imax;
/*-- Recompute hi-def model raster without oversampling */
/*-- and with the same flux correction factor */
memset(hdprofit.modpix,0, npix*sizeof(float));
for (p=0; p<profit->nprof; p++)
prof_add(&hdprofit, profit->prof[p], 1);
obj2->peak_prof = hdprofit.modpix[imax];
}
......
......@@ -7,7 +7,7 @@
*
* This file part of: AstrOmatic WCS library
*
* Copyright: (C) 1998-2010 Emmanuel Bertin -- IAP/CNRS/UPMC
* Copyright: (C) 1998-2011 Emmanuel Bertin -- IAP/CNRS/UPMC
*
* License: GNU General Public License
*
......@@ -23,7 +23,7 @@
* along with AstrOmatic software.
* If not, see <http://www.gnu.org/licenses/>.
*
* Last modified: 26/10/2010
* Last modified: 30/08/2011
*
*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/
......@@ -72,7 +72,7 @@ INPUT 1D array containing the group for each parameter,
OUTPUT polystruct pointer.
NOTES -.
AUTHOR E. Bertin (IAP)
VERSION 08/03/2003
VERSION 30/08/2011
***/
polystruct *poly_init(int *group, int ndim, int *degree, int ngroup)
{
......@@ -81,7 +81,7 @@ polystruct *poly_init(int *group, int ndim, int *degree, int ngroup)
char str[512];
int nd[POLY_MAXDIM];
int *groupt,
d,g,n,num,den;
d,g,n, num,den, dmax;
QCALLOC(poly, polystruct, 1);
if ((poly->ndim=ndim) > POLY_MAXDIM)
......@@ -117,15 +117,17 @@ polystruct *poly_init(int *group, int ndim, int *degree, int ngroup)
poly->ncoeff = 1;
for (g=0; g<ngroup; g++)
{
if ((d=poly->degree[g]=*(degree++))>POLY_MAXDEGREE)
if ((dmax=poly->degree[g]=*(degree++))>POLY_MAXDEGREE)
{
sprintf(str, "The degree of the polynom (%d) exceeds the maximum\n"
"allowed one (%d)", poly->degree[g], POLY_MAXDEGREE);
qerror("*Error*: ", str);
}
/*-- There are (n+d)!/(n!d!) coeffs per group, that is Prod_(i<=d) (n+i)/i */
for (num=den=1, n=nd[g]; d; num*=(n+d), den*=d--);
/*-- There are (n+d)!/(n!d!) coeffs per group = Prod_(i<=d)(n+i)/Prod_(i<=d)i */
n = nd[g];
d = dmax>n? n: dmax;
for (num=den=1; d; num*=(n+dmax--), den*=d--);
poly->ncoeff *= num/den;
}
......
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