Loading configure.ac +30 −1 Original line number Diff line number Diff line Loading @@ -31,7 +31,7 @@ define([AC_CACHE_LOAD],) define([AC_CACHE_SAVE],) # This is your standard AstrOmatic source code... AC_INIT(SExtractor, 2.25.3, [astromatic@astromatic.net], AC_INIT(SExtractor, 2.27.0, [astromatic@astromatic.net], sextractor, [http://astromatic.net/software/sextractor]) AC_CONFIG_MACRO_DIR([m4]) AC_CONFIG_AUX_DIR(autoconf) Loading @@ -53,6 +53,7 @@ sinclude(acx_atlas.m4) sinclude(acx_openblas.m4) sinclude(acx_fftw.m4) sinclude(acx_mkl.m4) sinclude(acx_cfitsio.m4) sinclude(acx_prog_cc_optim.m4) sinclude(acx_pthread.m4) sinclude(acx_urbi_resolve_dir.m4) Loading Loading @@ -180,6 +181,24 @@ AC_ARG_WITH(openblas-incdir, [AS_HELP_STRING([--with-openblas-incdir=<OpenBLAS header dir>], [Provide an alternative path to the OpenBLAS header directory])]) # Provide special option for CFITSIO AC_MSG_CHECKING([whether CFITSIO support should be disabled (default=enabled)]) AC_ARG_ENABLE(cfitsio, [AS_HELP_STRING([--disable-cfitsio], [Disable support for compressed FITS files through the CFITSIO library (default=enabled)])], if test "$enable_cfitsio" = "no"; then AC_MSG_RESULT([yes]) else AC_MSG_RESULT([no]) fi, AC_MSG_RESULT([no])) AC_ARG_WITH(cfitsio-libdir, [AS_HELP_STRING([--with-cfitsio-libdir=<CFITSIO library path>], [Provide an alternative path to the CFITSIO library])]) AC_ARG_WITH(cfitsio-incdir, [AS_HELP_STRING([--with-cfitsio-incdir=<CFITSIO include dir>], [Provide an alternative path to the CFITSIO include directory])]) # Provide a special option for the default XSLT URL with_xsl_url="file://"$(URBI_RESOLVE_DIR([$datadir]))"/$PACKAGE_TARNAME/$PACKAGE_TARNAME.xsl" AC_ARG_WITH(xsl_url, Loading Loading @@ -305,6 +324,16 @@ if test "$enable_model_fitting" != "no"; then fi fi ########################## handle the CFITSIO library ######################## if test "$enable_cfitsio" != "no"; then ACX_CFITSIO($with_cfitsio_libdir, $with_cfitsio_incdir, [LIBS="$CFITSIO_LIBS $LIBS"] if test "$CFITSIO_WARN" != ""; then AC_MSG_WARN([$CFITSIO_WARN]) fi, AC_MSG_ERROR([$CFITSIO_ERROR Exiting.])) fi AM_CONDITIONAL(USE_MODEL, [test "$enable_model_fitting" != "no"]) # Compile with profiling option Loading doc/src/conf.py +10 −2 Original line number Diff line number Diff line Loading @@ -67,9 +67,9 @@ author = u'E. Bertin' # built documents. # # The short X.Y version. version = '2.25.3' version = '2.27.0' # The full version, including alpha/beta/rc tags. release = '2.25.3' release = '2.27.0' # The language for content autogenerated by Sphinx. Refer to documentation # for a list of supported languages. Loading @@ -81,7 +81,11 @@ language = None # There are two options for replacing |today|: either, you set today to some # non-false value, then it is used: # <<<<<<< HEAD today = 'Fri Mar 11 2022' ======= today = 'Tue Sep 06 2022' >>>>>>> cfitsio # # Else, today_fmt is used as the format for a strftime call. # Loading Loading @@ -144,7 +148,11 @@ html_theme_path = [sphinx_rtd_theme.get_html_theme_path()] # The name for this set of Sphinx documents. # "<project> v<release> documentation" by default. # <<<<<<< HEAD # html_title = u'SExtractor v2.25.3' ======= # html_title = u'SExtractor v2.27.0' >>>>>>> cfitsio # A shorter title for the navigation bar. Default is the same as html_title. # Loading m4/acx_cfitsio.m4 0 → 100644 +115 −0 Original line number Diff line number Diff line dnl dnl acx_cfitsio.m4 dnl dnl Figure out if the CFITSIO library and header files are installed. dnl dnl %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% dnl dnl This file part of: AstrOmatic software dnl dnl Copyright: (C) 2013 Emmanuel Bertin -- IAP/CNRS/UPMC dnl dnl License: GNU General Public License dnl dnl AstrOmatic software is free software: you can redistribute it and/or dnl modify it under the terms of the GNU General Public License as dnl published by the Free Software Foundation, either version 3 of the dnl License, or (at your option) any later version. dnl AstrOmatic software is distributed in the hope that it will be useful, dnl but WITHOUT ANY WARRANTY; without even the implied warranty of dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the dnl GNU General Public License for more details. dnl You should have received a copy of the GNU General Public License dnl along with AstrOmatic software. dnl If not, see <http://www.gnu.org/licenses/>. dnl dnl Last modified: 27/02/2013 dnl dnl %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% dnl dnl @synopsis ACX_CFITSIO([CFITSIO_DIR, CFITSIO_INCDIR, dnl [ACTION-IF-FOUND[, ACTION-IF-NOT-FOUND]]]) dnl This macro figures out if the CFITSIO libraries and header dnl files are installed. dnl You may wish to use these variables in your default LIBS and CFLAGS: dnl dnl LIBS="$CFITSIO_LIBS $LIBS" dnl dnl You may wish to use these variables in your default CFLAGS: dnl dnl CFLAGS="$CFLAGS $CFITSIO_CFLAGS" dnl dnl ACTION-IF-FOUND is a list of shell commands to run if CFITSIO dnl is found (HAVE_CFITSIO are defined first), and ACTION-IF-NOT-FOUND dnl is a list of commands to run it if it is not found. AC_DEFUN([ACX_CFITSIO], [ AC_REQUIRE([AC_CANONICAL_HOST]) dnl -------------------- dnl Search include files dnl -------------------- acx_cfitsio_ok=no if test x$2 = x; then AC_CHECK_HEADER(fitsio.h,[acx_cfitsio_ok=yes]) if test x$acx_cfitsio_ok = xyes; then AC_DEFINE(CFITSIO_H, "fitsio.h", [CFITSIO header filename.]) else AC_CHECK_HEADER(cfitsio/fitsio.h,[acx_cfitsio_ok=yes]) if test x$acx_cfitsio_ok = xyes; then AC_DEFINE(CFITSIO_H, "cfitsio/fitsio.h", [CFITSIO header filename.]) else CFITSIO_ERROR="CFITSIO include files not found at default location!" fi fi else AC_CHECK_HEADER($2/fitsio.h,[acx_cfitsio_ok=yes]) if test x$acx_cfitsio_ok = xyes; then AC_DEFINE_UNQUOTED(CFITSIO_H, "$2/fitsio.h", [CFITSIO header filename.]) else CFITSIO_ERROR="CFITSIO include files not found in $2!" fi fi dnl -------------------- dnl Search library files dnl -------------------- CFITSIO_LIBS="" OLIBS="$LIBS" LIBS="" if test x$acx_cfitsio_ok = xyes; then if test x$1 = x; then AC_CHECK_LIB(cfitsio, ffopen, [acx_cfitsio_ok=yes], [acx_cfitsio_ok=no]) if test x$acx_cfitsio_ok = xyes; then AC_DEFINE(HAVE_CFITSIO,1, [Define if you have the CFITSIO libraries and header files.]) CFITSIO_LIBS="-lcfitsio" else CFITSIO_ERROR="CFITSIO library files not found at usual locations!" fi else dnl ------------------------- dnl Specific libdir specified dnl ------------------------- AC_CHECK_LIB(cfitsio, ffopen, [acx_cfitsio_ok=yes], [acx_cfitsio_ok=no], [-L$1]) if test x$acx_cfitsio_ok = xyes; then AC_DEFINE(HAVE_CFITSIO,1, [Define if you have the CFITSIO libraries and header files.]) CFITSIO_LIBS="-L$1 -lcfitsio" else CFITSIO_ERROR="CFITSIO library files not found in $1!" fi fi fi LIBS="$OLIBS" if test x$acx_cfitsio_ok = xyes; then AC_SUBST(CFITSIO_LIBS) $3 else AC_SUBST(CFITSIO_ERROR) $4 fi ])dnl ACX_CFITSIO src/analyse.c +3 −4 Original line number Diff line number Diff line Loading @@ -280,8 +280,7 @@ void examineiso(picstruct *field, picstruct *dfield, objstruct *obj, emy2 /= flux2; /* variance of ym */ emxy /= flux2; /* covariance */ /*-- Handle fully correlated profile s (which cause a singularity...) */ /*-- Handle fully correlated profiles (which cause a singularity...) */ esum *= 0.08333/flux2; if (obj->singuflag && (emx2*emy2-emxy*emxy) < esum*esum) { Loading src/back.c +66 −18 Original line number Diff line number Diff line Loading @@ -7,7 +7,7 @@ * * This file part of: SExtractor * * Copyright: (C) 1993-2014 Emmanuel Bertin -- IAP/CNRS/UPMC * Copyright: (C) 1993-2020 IAP/CNRS/SorbonneU * * License: GNU General Public License * Loading @@ -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: 17/06/2014 * Last modified: 23/09/2020 * *%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/ Loading Loading @@ -52,8 +52,10 @@ void makeback(picstruct *field, picstruct *wfield, int wscale_flag) { backstruct *backmesh,*wbackmesh, *bm,*wbm; tabstruct *tab, *wtab; PIXTYPE *buf,*wbuf, *buft,*wbuft; OFF_T fcurpos,wfcurpos, wfcurpos2,fcurpos2, bufshift, jumpsize; OFF_T2 fcurpos,wfcurpos, wfcurpos2,fcurpos2, bufshift, jumpsize; OFF_T2 currentElement, wcurrentElement, currentElement2, wcurrentElement2; size_t bufsize, bufsize2, size,meshsize; int i,j,k,m,n, step, nlines, Loading @@ -65,7 +67,11 @@ void makeback(picstruct *field, picstruct *wfield, int wscale_flag) /* If the weight-map is not an external one, no stats are needed for it */ if (wfield && wfield->flags&(INTERP_FIELD|BACKRMS_FIELD)) wfield= NULL; tab = field->tab; if (wfield) wtab = wfield->tab; else wtab = NULL; /* to avoid gcc -Wall warnings */ w = field->width; bw = field->backw; bh = field->backh; Loading @@ -83,12 +89,20 @@ void makeback(picstruct *field, picstruct *wfield, int wscale_flag) wfcurpos = wfcurpos2 = 0; /* to avoid gcc -Wall warnings */ QFTELL(field->file, fcurpos, field->filename); if (wfield) #ifdef HAVE_CFITSIO currentElement = (tab->currentElement == 0) ? 1 : tab->currentElement; #endif if (wfield) { QFTELL(wfield->file, wfcurpos, wfield->filename); #ifdef HAVE_CFITSIO wcurrentElement = (wtab->currentElement == 0) ? 1 : wtab->currentElement; #endif } /* Allocate a correct amount of memory to store pixels */ bufsize = (OFF_T)w*bh; bufsize = (OFF_T2)w*bh; meshsize = (size_t)bufsize; nlines = 0; if (bufsize > (size_t)BACK_BUFSIZE) Loading @@ -96,8 +110,8 @@ void makeback(picstruct *field, picstruct *wfield, int wscale_flag) nlines = BACK_BUFSIZE/w; step = (field->backh-1)/nlines+1; bufsize = (size_t)(nlines = field->backh/step)*w; bufshift = (step/2)*(OFF_T)w; jumpsize = (step-1)*(OFF_T)w; bufshift = (step/2)*(OFF_T2)w; jumpsize = (step-1)*(OFF_T2)w; } else bufshift = jumpsize = 0; /* to avoid gcc -Wall warnings */ Loading Loading @@ -172,16 +186,23 @@ void makeback(picstruct *field, picstruct *wfield, int wscale_flag) { /*---- Image size too big, we have to skip a few data !*/ QFTELL(field->file, fcurpos2, field->filename); if (wfield) #ifdef HAVE_CFITSIO currentElement2 = (tab->currentElement == 0) ? 1 : tab->currentElement; #endif if (wfield){ QFTELL(wfield->file, wfcurpos2, wfield->filename); #ifdef HAVE_CFITSIO wcurrentElement2 = (wtab->currentElement == 0) ? 1 : wtab->currentElement; #endif } if (j == ny-1 && (n=field->height%field->backh)) { meshsize = n*(size_t)w; nlines = BACK_BUFSIZE/w; step = (n-1)/nlines+1; bufsize = (nlines = n/step)*(size_t)w; bufshift = (step/2)*(OFF_T)w; jumpsize = (step-1)*(OFF_T)w; bufshift = (step/2)*(OFF_T2)w; jumpsize = (step-1)*(OFF_T2)w; free(buf); QMALLOC(buf, PIXTYPE, bufsize); /* pixel buffer */ if (wfield) Loading @@ -192,35 +213,52 @@ void makeback(picstruct *field, picstruct *wfield, int wscale_flag) } /*---- Read and skip, read and skip, etc... */ QFSEEK(field->file, bufshift*(OFF_T)field->bytepix, SEEK_CUR, QFSEEK(field->file, bufshift*(OFF_T2)field->bytepix, SEEK_CUR, field->filename); #ifdef HAVE_CFITSIO tab->currentElement += bufshift; #endif buft = buf; for (i=nlines; i--; buft += w) { read_body(field->tab, buft, w); if (i) QFSEEK(field->file, jumpsize*(OFF_T)field->bytepix, SEEK_CUR, if (i) { QFSEEK(field->file, jumpsize*(OFF_T2)field->bytepix, SEEK_CUR, field->filename); #ifdef HAVE_CFITSIO tab->currentElement += jumpsize; #endif } } if (wfield) { /*------ Read and skip, read and skip, etc... now on the weight-map */ QFSEEK(wfield->file, bufshift*(OFF_T)wfield->bytepix, SEEK_CUR, QFSEEK(wfield->file, bufshift*(OFF_T2)wfield->bytepix, SEEK_CUR, wfield->filename); #ifdef HAVE_CFITSIO wtab->currentElement += bufshift; #endif wbuft = wbuf; for (i=nlines; i--; wbuft += w) { read_body(wfield->tab, wbuft, w); weight_to_var(wfield, wbuft, w); if (i) QFSEEK(wfield->file, jumpsize*(OFF_T)wfield->bytepix, SEEK_CUR, if (i){ QFSEEK(wfield->file, jumpsize*(OFF_T2)wfield->bytepix, SEEK_CUR, wfield->filename); #ifdef HAVE_CFITSIO wtab->currentElement += jumpsize; #endif } } } backstat(backmesh, wbackmesh, buf, wbuf, bufsize, nx, w, bw, wfield?wfield->weight_thresh:0.0); QFSEEK(field->file, fcurpos2, SEEK_SET, field->filename); #ifdef HAVE_CFITSIO tab->currentElement = currentElement2; #endif bm = backmesh; for (m=nx; m--; bm++) if (bm->mean <= -BIG) Loading @@ -230,6 +268,9 @@ void makeback(picstruct *field, picstruct *wfield, int wscale_flag) if (wfield) { QFSEEK(wfield->file, wfcurpos2, SEEK_SET, wfield->filename); #ifdef HAVE_CFITSIO wtab->currentElement = wcurrentElement2; #endif wbm = wbackmesh; for (m=nx; m--; wbm++) if (wbm->mean <= -BIG) Loading Loading @@ -284,8 +325,15 @@ void makeback(picstruct *field, picstruct *wfield, int wscale_flag) /* Go back to the original position */ QFSEEK(field->file, fcurpos, SEEK_SET, field->filename); if (wfield) #ifdef HAVE_CFITSIO tab->currentElement = currentElement; #endif if (wfield) { QFSEEK(wfield->file, wfcurpos, SEEK_SET, wfield->filename); #ifdef HAVE_CFITSIO wfield->tab->currentElement = wcurrentElement; #endif } /* Median-filter and check suitability of the background map */ NFPRINTF(OUTPUT, "Filtering background map(s)"); Loading Loading
configure.ac +30 −1 Original line number Diff line number Diff line Loading @@ -31,7 +31,7 @@ define([AC_CACHE_LOAD],) define([AC_CACHE_SAVE],) # This is your standard AstrOmatic source code... AC_INIT(SExtractor, 2.25.3, [astromatic@astromatic.net], AC_INIT(SExtractor, 2.27.0, [astromatic@astromatic.net], sextractor, [http://astromatic.net/software/sextractor]) AC_CONFIG_MACRO_DIR([m4]) AC_CONFIG_AUX_DIR(autoconf) Loading @@ -53,6 +53,7 @@ sinclude(acx_atlas.m4) sinclude(acx_openblas.m4) sinclude(acx_fftw.m4) sinclude(acx_mkl.m4) sinclude(acx_cfitsio.m4) sinclude(acx_prog_cc_optim.m4) sinclude(acx_pthread.m4) sinclude(acx_urbi_resolve_dir.m4) Loading Loading @@ -180,6 +181,24 @@ AC_ARG_WITH(openblas-incdir, [AS_HELP_STRING([--with-openblas-incdir=<OpenBLAS header dir>], [Provide an alternative path to the OpenBLAS header directory])]) # Provide special option for CFITSIO AC_MSG_CHECKING([whether CFITSIO support should be disabled (default=enabled)]) AC_ARG_ENABLE(cfitsio, [AS_HELP_STRING([--disable-cfitsio], [Disable support for compressed FITS files through the CFITSIO library (default=enabled)])], if test "$enable_cfitsio" = "no"; then AC_MSG_RESULT([yes]) else AC_MSG_RESULT([no]) fi, AC_MSG_RESULT([no])) AC_ARG_WITH(cfitsio-libdir, [AS_HELP_STRING([--with-cfitsio-libdir=<CFITSIO library path>], [Provide an alternative path to the CFITSIO library])]) AC_ARG_WITH(cfitsio-incdir, [AS_HELP_STRING([--with-cfitsio-incdir=<CFITSIO include dir>], [Provide an alternative path to the CFITSIO include directory])]) # Provide a special option for the default XSLT URL with_xsl_url="file://"$(URBI_RESOLVE_DIR([$datadir]))"/$PACKAGE_TARNAME/$PACKAGE_TARNAME.xsl" AC_ARG_WITH(xsl_url, Loading Loading @@ -305,6 +324,16 @@ if test "$enable_model_fitting" != "no"; then fi fi ########################## handle the CFITSIO library ######################## if test "$enable_cfitsio" != "no"; then ACX_CFITSIO($with_cfitsio_libdir, $with_cfitsio_incdir, [LIBS="$CFITSIO_LIBS $LIBS"] if test "$CFITSIO_WARN" != ""; then AC_MSG_WARN([$CFITSIO_WARN]) fi, AC_MSG_ERROR([$CFITSIO_ERROR Exiting.])) fi AM_CONDITIONAL(USE_MODEL, [test "$enable_model_fitting" != "no"]) # Compile with profiling option Loading
doc/src/conf.py +10 −2 Original line number Diff line number Diff line Loading @@ -67,9 +67,9 @@ author = u'E. Bertin' # built documents. # # The short X.Y version. version = '2.25.3' version = '2.27.0' # The full version, including alpha/beta/rc tags. release = '2.25.3' release = '2.27.0' # The language for content autogenerated by Sphinx. Refer to documentation # for a list of supported languages. Loading @@ -81,7 +81,11 @@ language = None # There are two options for replacing |today|: either, you set today to some # non-false value, then it is used: # <<<<<<< HEAD today = 'Fri Mar 11 2022' ======= today = 'Tue Sep 06 2022' >>>>>>> cfitsio # # Else, today_fmt is used as the format for a strftime call. # Loading Loading @@ -144,7 +148,11 @@ html_theme_path = [sphinx_rtd_theme.get_html_theme_path()] # The name for this set of Sphinx documents. # "<project> v<release> documentation" by default. # <<<<<<< HEAD # html_title = u'SExtractor v2.25.3' ======= # html_title = u'SExtractor v2.27.0' >>>>>>> cfitsio # A shorter title for the navigation bar. Default is the same as html_title. # Loading
m4/acx_cfitsio.m4 0 → 100644 +115 −0 Original line number Diff line number Diff line dnl dnl acx_cfitsio.m4 dnl dnl Figure out if the CFITSIO library and header files are installed. dnl dnl %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% dnl dnl This file part of: AstrOmatic software dnl dnl Copyright: (C) 2013 Emmanuel Bertin -- IAP/CNRS/UPMC dnl dnl License: GNU General Public License dnl dnl AstrOmatic software is free software: you can redistribute it and/or dnl modify it under the terms of the GNU General Public License as dnl published by the Free Software Foundation, either version 3 of the dnl License, or (at your option) any later version. dnl AstrOmatic software is distributed in the hope that it will be useful, dnl but WITHOUT ANY WARRANTY; without even the implied warranty of dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the dnl GNU General Public License for more details. dnl You should have received a copy of the GNU General Public License dnl along with AstrOmatic software. dnl If not, see <http://www.gnu.org/licenses/>. dnl dnl Last modified: 27/02/2013 dnl dnl %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% dnl dnl @synopsis ACX_CFITSIO([CFITSIO_DIR, CFITSIO_INCDIR, dnl [ACTION-IF-FOUND[, ACTION-IF-NOT-FOUND]]]) dnl This macro figures out if the CFITSIO libraries and header dnl files are installed. dnl You may wish to use these variables in your default LIBS and CFLAGS: dnl dnl LIBS="$CFITSIO_LIBS $LIBS" dnl dnl You may wish to use these variables in your default CFLAGS: dnl dnl CFLAGS="$CFLAGS $CFITSIO_CFLAGS" dnl dnl ACTION-IF-FOUND is a list of shell commands to run if CFITSIO dnl is found (HAVE_CFITSIO are defined first), and ACTION-IF-NOT-FOUND dnl is a list of commands to run it if it is not found. AC_DEFUN([ACX_CFITSIO], [ AC_REQUIRE([AC_CANONICAL_HOST]) dnl -------------------- dnl Search include files dnl -------------------- acx_cfitsio_ok=no if test x$2 = x; then AC_CHECK_HEADER(fitsio.h,[acx_cfitsio_ok=yes]) if test x$acx_cfitsio_ok = xyes; then AC_DEFINE(CFITSIO_H, "fitsio.h", [CFITSIO header filename.]) else AC_CHECK_HEADER(cfitsio/fitsio.h,[acx_cfitsio_ok=yes]) if test x$acx_cfitsio_ok = xyes; then AC_DEFINE(CFITSIO_H, "cfitsio/fitsio.h", [CFITSIO header filename.]) else CFITSIO_ERROR="CFITSIO include files not found at default location!" fi fi else AC_CHECK_HEADER($2/fitsio.h,[acx_cfitsio_ok=yes]) if test x$acx_cfitsio_ok = xyes; then AC_DEFINE_UNQUOTED(CFITSIO_H, "$2/fitsio.h", [CFITSIO header filename.]) else CFITSIO_ERROR="CFITSIO include files not found in $2!" fi fi dnl -------------------- dnl Search library files dnl -------------------- CFITSIO_LIBS="" OLIBS="$LIBS" LIBS="" if test x$acx_cfitsio_ok = xyes; then if test x$1 = x; then AC_CHECK_LIB(cfitsio, ffopen, [acx_cfitsio_ok=yes], [acx_cfitsio_ok=no]) if test x$acx_cfitsio_ok = xyes; then AC_DEFINE(HAVE_CFITSIO,1, [Define if you have the CFITSIO libraries and header files.]) CFITSIO_LIBS="-lcfitsio" else CFITSIO_ERROR="CFITSIO library files not found at usual locations!" fi else dnl ------------------------- dnl Specific libdir specified dnl ------------------------- AC_CHECK_LIB(cfitsio, ffopen, [acx_cfitsio_ok=yes], [acx_cfitsio_ok=no], [-L$1]) if test x$acx_cfitsio_ok = xyes; then AC_DEFINE(HAVE_CFITSIO,1, [Define if you have the CFITSIO libraries and header files.]) CFITSIO_LIBS="-L$1 -lcfitsio" else CFITSIO_ERROR="CFITSIO library files not found in $1!" fi fi fi LIBS="$OLIBS" if test x$acx_cfitsio_ok = xyes; then AC_SUBST(CFITSIO_LIBS) $3 else AC_SUBST(CFITSIO_ERROR) $4 fi ])dnl ACX_CFITSIO
src/analyse.c +3 −4 Original line number Diff line number Diff line Loading @@ -280,8 +280,7 @@ void examineiso(picstruct *field, picstruct *dfield, objstruct *obj, emy2 /= flux2; /* variance of ym */ emxy /= flux2; /* covariance */ /*-- Handle fully correlated profile s (which cause a singularity...) */ /*-- Handle fully correlated profiles (which cause a singularity...) */ esum *= 0.08333/flux2; if (obj->singuflag && (emx2*emy2-emxy*emxy) < esum*esum) { Loading
src/back.c +66 −18 Original line number Diff line number Diff line Loading @@ -7,7 +7,7 @@ * * This file part of: SExtractor * * Copyright: (C) 1993-2014 Emmanuel Bertin -- IAP/CNRS/UPMC * Copyright: (C) 1993-2020 IAP/CNRS/SorbonneU * * License: GNU General Public License * Loading @@ -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: 17/06/2014 * Last modified: 23/09/2020 * *%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/ Loading Loading @@ -52,8 +52,10 @@ void makeback(picstruct *field, picstruct *wfield, int wscale_flag) { backstruct *backmesh,*wbackmesh, *bm,*wbm; tabstruct *tab, *wtab; PIXTYPE *buf,*wbuf, *buft,*wbuft; OFF_T fcurpos,wfcurpos, wfcurpos2,fcurpos2, bufshift, jumpsize; OFF_T2 fcurpos,wfcurpos, wfcurpos2,fcurpos2, bufshift, jumpsize; OFF_T2 currentElement, wcurrentElement, currentElement2, wcurrentElement2; size_t bufsize, bufsize2, size,meshsize; int i,j,k,m,n, step, nlines, Loading @@ -65,7 +67,11 @@ void makeback(picstruct *field, picstruct *wfield, int wscale_flag) /* If the weight-map is not an external one, no stats are needed for it */ if (wfield && wfield->flags&(INTERP_FIELD|BACKRMS_FIELD)) wfield= NULL; tab = field->tab; if (wfield) wtab = wfield->tab; else wtab = NULL; /* to avoid gcc -Wall warnings */ w = field->width; bw = field->backw; bh = field->backh; Loading @@ -83,12 +89,20 @@ void makeback(picstruct *field, picstruct *wfield, int wscale_flag) wfcurpos = wfcurpos2 = 0; /* to avoid gcc -Wall warnings */ QFTELL(field->file, fcurpos, field->filename); if (wfield) #ifdef HAVE_CFITSIO currentElement = (tab->currentElement == 0) ? 1 : tab->currentElement; #endif if (wfield) { QFTELL(wfield->file, wfcurpos, wfield->filename); #ifdef HAVE_CFITSIO wcurrentElement = (wtab->currentElement == 0) ? 1 : wtab->currentElement; #endif } /* Allocate a correct amount of memory to store pixels */ bufsize = (OFF_T)w*bh; bufsize = (OFF_T2)w*bh; meshsize = (size_t)bufsize; nlines = 0; if (bufsize > (size_t)BACK_BUFSIZE) Loading @@ -96,8 +110,8 @@ void makeback(picstruct *field, picstruct *wfield, int wscale_flag) nlines = BACK_BUFSIZE/w; step = (field->backh-1)/nlines+1; bufsize = (size_t)(nlines = field->backh/step)*w; bufshift = (step/2)*(OFF_T)w; jumpsize = (step-1)*(OFF_T)w; bufshift = (step/2)*(OFF_T2)w; jumpsize = (step-1)*(OFF_T2)w; } else bufshift = jumpsize = 0; /* to avoid gcc -Wall warnings */ Loading Loading @@ -172,16 +186,23 @@ void makeback(picstruct *field, picstruct *wfield, int wscale_flag) { /*---- Image size too big, we have to skip a few data !*/ QFTELL(field->file, fcurpos2, field->filename); if (wfield) #ifdef HAVE_CFITSIO currentElement2 = (tab->currentElement == 0) ? 1 : tab->currentElement; #endif if (wfield){ QFTELL(wfield->file, wfcurpos2, wfield->filename); #ifdef HAVE_CFITSIO wcurrentElement2 = (wtab->currentElement == 0) ? 1 : wtab->currentElement; #endif } if (j == ny-1 && (n=field->height%field->backh)) { meshsize = n*(size_t)w; nlines = BACK_BUFSIZE/w; step = (n-1)/nlines+1; bufsize = (nlines = n/step)*(size_t)w; bufshift = (step/2)*(OFF_T)w; jumpsize = (step-1)*(OFF_T)w; bufshift = (step/2)*(OFF_T2)w; jumpsize = (step-1)*(OFF_T2)w; free(buf); QMALLOC(buf, PIXTYPE, bufsize); /* pixel buffer */ if (wfield) Loading @@ -192,35 +213,52 @@ void makeback(picstruct *field, picstruct *wfield, int wscale_flag) } /*---- Read and skip, read and skip, etc... */ QFSEEK(field->file, bufshift*(OFF_T)field->bytepix, SEEK_CUR, QFSEEK(field->file, bufshift*(OFF_T2)field->bytepix, SEEK_CUR, field->filename); #ifdef HAVE_CFITSIO tab->currentElement += bufshift; #endif buft = buf; for (i=nlines; i--; buft += w) { read_body(field->tab, buft, w); if (i) QFSEEK(field->file, jumpsize*(OFF_T)field->bytepix, SEEK_CUR, if (i) { QFSEEK(field->file, jumpsize*(OFF_T2)field->bytepix, SEEK_CUR, field->filename); #ifdef HAVE_CFITSIO tab->currentElement += jumpsize; #endif } } if (wfield) { /*------ Read and skip, read and skip, etc... now on the weight-map */ QFSEEK(wfield->file, bufshift*(OFF_T)wfield->bytepix, SEEK_CUR, QFSEEK(wfield->file, bufshift*(OFF_T2)wfield->bytepix, SEEK_CUR, wfield->filename); #ifdef HAVE_CFITSIO wtab->currentElement += bufshift; #endif wbuft = wbuf; for (i=nlines; i--; wbuft += w) { read_body(wfield->tab, wbuft, w); weight_to_var(wfield, wbuft, w); if (i) QFSEEK(wfield->file, jumpsize*(OFF_T)wfield->bytepix, SEEK_CUR, if (i){ QFSEEK(wfield->file, jumpsize*(OFF_T2)wfield->bytepix, SEEK_CUR, wfield->filename); #ifdef HAVE_CFITSIO wtab->currentElement += jumpsize; #endif } } } backstat(backmesh, wbackmesh, buf, wbuf, bufsize, nx, w, bw, wfield?wfield->weight_thresh:0.0); QFSEEK(field->file, fcurpos2, SEEK_SET, field->filename); #ifdef HAVE_CFITSIO tab->currentElement = currentElement2; #endif bm = backmesh; for (m=nx; m--; bm++) if (bm->mean <= -BIG) Loading @@ -230,6 +268,9 @@ void makeback(picstruct *field, picstruct *wfield, int wscale_flag) if (wfield) { QFSEEK(wfield->file, wfcurpos2, SEEK_SET, wfield->filename); #ifdef HAVE_CFITSIO wtab->currentElement = wcurrentElement2; #endif wbm = wbackmesh; for (m=nx; m--; wbm++) if (wbm->mean <= -BIG) Loading Loading @@ -284,8 +325,15 @@ void makeback(picstruct *field, picstruct *wfield, int wscale_flag) /* Go back to the original position */ QFSEEK(field->file, fcurpos, SEEK_SET, field->filename); if (wfield) #ifdef HAVE_CFITSIO tab->currentElement = currentElement; #endif if (wfield) { QFSEEK(wfield->file, wfcurpos, SEEK_SET, wfield->filename); #ifdef HAVE_CFITSIO wfield->tab->currentElement = wcurrentElement; #endif } /* Median-filter and check suitability of the background map */ NFPRINTF(OUTPUT, "Filtering background map(s)"); Loading