[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[gnuastro-commits] master 1c30d220: MakeCatalog: multi-word options with
From: |
Mohammad Akhlaghi |
Subject: |
[gnuastro-commits] master 1c30d220: MakeCatalog: multi-word options with hyphen for readability |
Date: |
Sun, 5 Feb 2023 11:23:27 -0500 (EST) |
branch: master
commit 1c30d220702f84cfbae7d1f2eb4ce5f49f993edb
Author: Mohammad Akhlaghi <mohammad@akhlaghi.org>
Commit: Mohammad Akhlaghi <mohammad@akhlaghi.org>
MakeCatalog: multi-word options with hyphen for readability
Until now, almost all of MakeCatalog's options that contained more than one
word were simply stuck after each other. For example '--areaarcsec2' or
'--halfmaxarea' this was very hard to read and write; therefore increasing
the possibility of miss-typing debugging the source of the problem!
With this commit, a hyphen has been placed in the names of all such options
in MakeCatalog (the full list is available in the changed 'NEWS' file of
this commit). In the process, the following changes have also been made:
- The number of MakeCatalog's measurements have become VERY long and
having them in a single section of the book was making it increasingly
hard to navigate and find the measurement you needed. Therefore with
this commit, the "MakeCatalog measurements" section was broken into
multiple sub-sections that group the various measurements by context.
- The '--axis-ratio' and '--position-angle' options of three installed
scripts were also updated:
* astscript-radial-profile
* astscript-psf-stamp
* astscript-psf-unite
- Most short options of MakeCatalog's measurements have been removed to
avoid interfering with the alphabetical sorting of '--help'.
---
NEWS | 130 +++-
bin/mkcatalog/args.h | 384 +++++-----
bin/mkcatalog/columns.c | 170 ++---
bin/mkcatalog/ui.c | 4 +-
bin/mkcatalog/ui.h | 61 +-
bin/script/psf-select-stars.in | 4 +-
bin/script/psf-stamp.in | 16 +-
bin/script/psf-unite.in | 14 +-
bin/script/radial-profile.in | 64 +-
doc/gnuastro.texi | 1468 +++++++++++++++++++------------------
lib/box.c | 4 +-
tests/during-dev.sh | 9 +-
tests/mkcatalog/aperturephot.sh | 6 +-
tests/mkcatalog/objects-clumps.sh | 2 +-
tests/script/psf-select-stars.sh | 2 +-
15 files changed, 1268 insertions(+), 1070 deletions(-)
diff --git a/NEWS b/NEWS
index 51538220..9f0cf83b 100644
--- a/NEWS
+++ b/NEWS
@@ -58,6 +58,10 @@ See the end of the file for license conditions.
'EXTNAME' keyword in FITS).
MakeCatalog:
+ - Book: with the increasing number of possible measurements the
+ "MakeCatalog measurements" section of the Gnuastro book has been
+ broken into separate sub-section and contextually similar measurements
+ are grouped separartely there.
--sigclip-mean-sb: surface brightness (over one pixel's area in
arcsec^2) of the sigma-clipped mean of the values. This is useful in
scenarios where you want to compare surface brightness values
@@ -159,6 +163,26 @@ See the end of the file for license conditions.
** Removed features
+ MakeCatalog
+ - Removed the short option format for the following measurements
+ (columns). This was done because the short options affect the sorting
+ in the output of '--help', making it hard to find the options
+ visually. Because most measurements do not have a short format, we have
+ seen that the short format is rarely used. Only the most commonly used
+ measurements keep their short format, and only when they don't affect
+ the alphabetic sorting of the output of '--help':
+ --area (short option was 'a')
+ --axis-ratio (short option was 'Q')
+ --magnitude-error (short option was 'G')
+ --num-clumps (short option was 'c')
+ --position-angle (short option was 'p')
+ --semi-major (short option was 'A')
+ --semi-minor (short option was 'B')
+ --sn (short option was 'n')
+ --sum (short option was 'b')
+ --upperlimit-mag (short option was 'u')
+
+
** Changed features
Configuration:
@@ -173,15 +197,97 @@ See the end of the file for license conditions.
won't be needing it either.
MakeCatalog:
- --sum: new name for the old '--brightness' column. "Brightness" has a
- specific meaning in astronomy/physics and has units of
- energy/time. However, astronomical images aren't in this unit, they
- are usually in counts, or can have an arbitray units (like
- nanomaggy). The new name is derived from what this column does (sum of
- pixel values) to avoid confusions.
- --sumerr: new name for '--brightnesserr'.
- --clumpssum: new name for '--clumpbrightness'.
- --sumnoriver: new name for '--brightnessnoriver'.
+ - "Sum" used instead of "brightness"
+ --sum: new name for the old '--brightness' column. "Brightness" has a
+ specific meaning in astronomy/physics and has units of
+ energy/time. However, astronomical images aren't in this unit, they
+ are usually in counts, or can have an arbitray units (like
+ nanomaggy). The new name is derived from what this column does (sum
+ of pixel values) to avoid confusions.
+ --sum-error: new name for '--brightnesserr'.
+ --clumps-sum: new name for '--clumpbrightness'.
+ --sum-no-river: new name for '--brightnessnoriver'.
+ - Using a hyphen to help in readability and usability:
+ Old name New name
+ ======== ========
+ --areaarcsec2 --area-arcsec2
+ --areamaxv --area-max-val
+ --areaminv --area-min-val
+ --areaxy --area-xy
+ --axisratio --axis-ratio
+ --clumpsarea --clumps-area
+ --clumpsgeow1 --clumps-geo-w1
+ --clumpsgeow2 --clumps-geo-w2
+ --clumpsgeow3 --clumps-geo-w3
+ --clumpsgeox --clumps-geo-x
+ --clumpsgeoy --clumps-geo-y
+ --clumpsgeoz --clumps-geo-z
+ --clumpsmagnitude --clumps-magnitude
+ --clumpsw1 --clumps-w1
+ --clumpsw2 --clumps-w2
+ --clumpsw3 --clumps-w3
+ --clumpsx --clumps-x
+ --clumpsy --clumps-y
+ --clumpsz --clumps-z
+ --fracmax --frac-max
+ --fracmaxarea1 --frac-max1-area
+ --fracmaxarea2 --frac-max2-area
+ --fracmaxradius1 --frac-max1-radius
+ --fracmaxradius2 --frac-max2-radius
+ --fracmaxsum1 --frac-max1-sum
+ --fracmaxsum2 --frac-max2-sum
+ --geoarea --geo-area
+ --geoareaxy --geo-area-xy
+ --geoaxisratio --geo-axis-ratio
+ --geopositionangle --geo-position-angle
+ --geosemimajor --geo-semi-major
+ --geosemiminor --geo-semi-minor
+ --geow1 --geo-w1
+ --geow2 --geo-w2
+ --geow3 --geo-w3
+ --geox --geo-x
+ --geoy --geo-y
+ --geoz --geo-z
+ --halfmaxarea --half-max-area
+ --halfmaxradius --half-max-radius
+ --halfmaxsb --half-max-sb
+ --halfmaxsum --half-max-sum
+ --halfsumarea --half-sum-area
+ --halfsumradius --half-sum-radius
+ --halfsumsb --half-sum-sb
+ --hostobjid --host-obj-id
+ --idinhostobj --id-in-host-obj
+ --magnitudeerr --magnitude-error
+ --maxvx --max-val-x
+ --maxvy --max-val-y
+ --maxvz --max-val-z
+ --maxx --max-x
+ --maxy --max-y
+ --maxz --max-z
+ --minvx --min-val-x
+ --minvy --min-val-y
+ --minvz --min-val-z
+ --minx --min-x
+ --miny --min-y
+ --minz --min-z
+ --numclumps --num-clumps
+ --objid --obj-id
+ --positionangle --position-angle
+ --riverave --river-mean
+ --rivernum --river-number
+ --sberror --sb-error
+ --semimajor --semi-major
+ --semiminor --semi-minor
+ --sigclip-mean-sb-err --sigclip-mean-sb-delta
+ --skystd --sky-std
+ --surfacebrightness --sb
+ --upperlimitmag --upperlimit-mag
+ --upperlimitonesigma --upperlimit-onesigma
+ --upperlimitquantile --upperlimit-quantile
+ --upperlimitsb --upperlimit-sb
+ --upperlimitsigma --upperlimit-sigma
+ --upperlimitskew --upperlimit-skew
+ --weightarea --weight-area
MakeNoise:
--bgnotmag: new name for the old '--bgisbrightness' option. See the
@@ -208,6 +314,12 @@ See the end of the file for license conditions.
astscript-psf-select-stars:
- Now uses the Gaia DR3 dataset by default (until now it was using eDR3).
+ astscript-psf-stamp:
+ astscript-psf-unite:
+ astscript-radial-profile:
+ --axis-ratio: new name for old '--axisratio'
+ --position-angle: new name for old '--positionangle'
+
Library:
- gal_blank_remove_rows: new 'onlydim0' argument to ignore vector columns
when checking for blanks.
diff --git a/bin/mkcatalog/args.h b/bin/mkcatalog/args.h
index 37275bdb..1db8293a 100644
--- a/bin/mkcatalog/args.h
+++ b/bin/mkcatalog/args.h
@@ -414,11 +414,11 @@ struct argp_option program_options[] =
UI_GROUP_OTHERSETTINGS
},
{
- "fracmax",
+ "frac-max",
UI_KEY_FRACMAX,
"FLT[,FLT]",
0,
- "Fraction(s) in --fracmaxarea1 or --fracmaxarea2.",
+ "Fraction(s) in --frac-max* options.",
UI_GROUP_OTHERSETTINGS,
&p->fracmax,
GAL_TYPE_STRING,
@@ -432,7 +432,7 @@ struct argp_option program_options[] =
UI_KEY_SPATIALRESOLUTION,
"FLT",
0,
- "Spatial resolution (for surface brightness error).",
+ "Spatial resolution (for surf. brightness err).",
UI_GROUP_OTHERSETTINGS,
&p->spatialresolution,
GAL_TYPE_FLOAT32,
@@ -467,7 +467,7 @@ struct argp_option program_options[] =
ui_column_codes_ll
},
{
- "objid",
+ "obj-id",
UI_KEY_OBJID,
0,
0,
@@ -481,7 +481,7 @@ struct argp_option program_options[] =
ui_column_codes_ll
},
{
- "hostobjid",
+ "host-obj-id",
UI_KEY_HOSTOBJID,
0,
0,
@@ -495,7 +495,7 @@ struct argp_option program_options[] =
ui_column_codes_ll
},
{
- "idinhostobj",
+ "id-in-host-obj",
UI_KEY_IDINHOSTOBJ,
0,
0,
@@ -516,7 +516,7 @@ struct argp_option program_options[] =
/* Position related columns (pixel). */
{
0, 0, 0, 0,
- "Positional columns (pixel)",
+ "Positional (pixel/image) measurements",
UI_GROUP_COLUMNS_POSITION_PIXEL
},
{
@@ -562,7 +562,7 @@ struct argp_option program_options[] =
ui_column_codes_ll
},
{
- "geox",
+ "geo-x",
UI_KEY_GEOX,
0,
0,
@@ -576,7 +576,7 @@ struct argp_option program_options[] =
ui_column_codes_ll
},
{
- "geoy",
+ "geo-y",
UI_KEY_GEOY,
0,
0,
@@ -590,7 +590,7 @@ struct argp_option program_options[] =
ui_column_codes_ll
},
{
- "geoz",
+ "geo-z",
UI_KEY_GEOZ,
0,
0,
@@ -604,11 +604,11 @@ struct argp_option program_options[] =
ui_column_codes_ll
},
{
- "minvx",
- UI_KEY_MINVX,
+ "min-val-x",
+ UI_KEY_MINVALX,
0,
0,
- "Minimum value's X axis position",
+ "Minimum value's X axis position.",
UI_GROUP_COLUMNS_POSITION_PIXEL,
0,
GAL_TYPE_INVALID,
@@ -618,11 +618,11 @@ struct argp_option program_options[] =
ui_column_codes_ll
},
{
- "maxvx",
- UI_KEY_MAXVX,
+ "max-val-x",
+ UI_KEY_MAXVALX,
0,
0,
- "Maximum value's X axis position",
+ "Maximum value's X axis position.",
UI_GROUP_COLUMNS_POSITION_PIXEL,
0,
GAL_TYPE_INVALID,
@@ -632,11 +632,11 @@ struct argp_option program_options[] =
ui_column_codes_ll
},
{
- "minvy",
- UI_KEY_MINVY,
+ "min-val-y",
+ UI_KEY_MINVALY,
0,
0,
- "Minimum value's Y axis position",
+ "Minimum value's Y axis position.",
UI_GROUP_COLUMNS_POSITION_PIXEL,
0,
GAL_TYPE_INVALID,
@@ -646,11 +646,11 @@ struct argp_option program_options[] =
ui_column_codes_ll
},
{
- "maxvy",
- UI_KEY_MAXVY,
+ "max-val-y",
+ UI_KEY_MAXVALY,
0,
0,
- "Maximum value's Y axis position",
+ "Maximum value's Y axis position.",
UI_GROUP_COLUMNS_POSITION_PIXEL,
0,
GAL_TYPE_INVALID,
@@ -660,11 +660,11 @@ struct argp_option program_options[] =
ui_column_codes_ll
},
{
- "minvz",
- UI_KEY_MINVZ,
+ "min-val-z",
+ UI_KEY_MINVALZ,
0,
0,
- "Minimum value's Z axis position",
+ "Minimum value's Z axis position.",
UI_GROUP_COLUMNS_POSITION_PIXEL,
0,
GAL_TYPE_INVALID,
@@ -674,8 +674,8 @@ struct argp_option program_options[] =
ui_column_codes_ll
},
{
- "maxvz",
- UI_KEY_MAXVZ,
+ "max-val-z",
+ UI_KEY_MAXVALZ,
0,
0,
"Maximum value's Z axis position",
@@ -688,7 +688,7 @@ struct argp_option program_options[] =
ui_column_codes_ll
},
{
- "minx",
+ "min-x",
UI_KEY_MINX,
0,
0,
@@ -702,7 +702,7 @@ struct argp_option program_options[] =
ui_column_codes_ll
},
{
- "maxx",
+ "max-x",
UI_KEY_MAXX,
0,
0,
@@ -716,7 +716,7 @@ struct argp_option program_options[] =
ui_column_codes_ll
},
{
- "miny",
+ "min-y",
UI_KEY_MINY,
0,
0,
@@ -730,7 +730,7 @@ struct argp_option program_options[] =
ui_column_codes_ll
},
{
- "maxy",
+ "max-y",
UI_KEY_MAXY,
0,
0,
@@ -744,7 +744,7 @@ struct argp_option program_options[] =
ui_column_codes_ll
},
{
- "minz",
+ "min-z",
UI_KEY_MINZ,
0,
0,
@@ -758,7 +758,7 @@ struct argp_option program_options[] =
ui_column_codes_ll
},
{
- "maxz",
+ "max-z",
UI_KEY_MAXZ,
0,
0,
@@ -772,7 +772,7 @@ struct argp_option program_options[] =
ui_column_codes_ll
},
{
- "clumpsx",
+ "clumps-x",
UI_KEY_CLUMPSX,
0,
0,
@@ -786,7 +786,7 @@ struct argp_option program_options[] =
ui_column_codes_ll
},
{
- "clumpsy",
+ "clumps-y",
UI_KEY_CLUMPSY,
0,
0,
@@ -800,7 +800,7 @@ struct argp_option program_options[] =
ui_column_codes_ll
},
{
- "clumpsz",
+ "clumps-z",
UI_KEY_CLUMPSZ,
0,
0,
@@ -814,7 +814,7 @@ struct argp_option program_options[] =
ui_column_codes_ll
},
{
- "clumpsgeox",
+ "clumps-geo-x",
UI_KEY_CLUMPSGEOX,
0,
0,
@@ -828,7 +828,7 @@ struct argp_option program_options[] =
ui_column_codes_ll
},
{
- "clumpsgeoy",
+ "clumps-geo-y",
UI_KEY_CLUMPSGEOY,
0,
0,
@@ -842,7 +842,7 @@ struct argp_option program_options[] =
ui_column_codes_ll
},
{
- "clumpsgeoz",
+ "clumps-geo-z",
UI_KEY_CLUMPSGEOZ,
0,
0,
@@ -863,7 +863,7 @@ struct argp_option program_options[] =
/* Position related columns (WCS). */
{
0, 0, 0, 0,
- "Positional columns (WCS)",
+ "Positional (WCS) measurements",
UI_GROUP_COLUMNS_POSITION_WCS
},
{
@@ -937,7 +937,7 @@ struct argp_option program_options[] =
ui_column_codes_ll
},
{
- "geow1",
+ "geo-w1",
UI_KEY_GEOW1,
0,
0,
@@ -951,7 +951,7 @@ struct argp_option program_options[] =
ui_column_codes_ll
},
{
- "geow2",
+ "geo-w2",
UI_KEY_GEOW2,
0,
0,
@@ -965,7 +965,7 @@ struct argp_option program_options[] =
ui_column_codes_ll
},
{
- "geow3",
+ "geo-w3",
UI_KEY_GEOW2,
0,
0,
@@ -979,7 +979,7 @@ struct argp_option program_options[] =
ui_column_codes_ll
},
{
- "clumpsw1",
+ "clumps-w1",
UI_KEY_CLUMPSW1,
0,
0,
@@ -993,7 +993,7 @@ struct argp_option program_options[] =
ui_column_codes_ll
},
{
- "clumpsw2",
+ "clumps-w2",
UI_KEY_CLUMPSW2,
0,
0,
@@ -1007,7 +1007,7 @@ struct argp_option program_options[] =
ui_column_codes_ll
},
{
- "clumpsw3",
+ "clumps-w3",
UI_KEY_CLUMPSW3,
0,
0,
@@ -1021,7 +1021,7 @@ struct argp_option program_options[] =
ui_column_codes_ll
},
{
- "clumpsgeow1",
+ "clumps-geo-w1",
UI_KEY_CLUMPSGEOW1,
0,
0,
@@ -1035,7 +1035,7 @@ struct argp_option program_options[] =
ui_column_codes_ll
},
{
- "clumpsgeow2",
+ "clumps-geo-w2",
UI_KEY_CLUMPSGEOW2,
0,
0,
@@ -1049,7 +1049,7 @@ struct argp_option program_options[] =
ui_column_codes_ll
},
{
- "clumpsgeow3",
+ "clumps-geo-w3",
UI_KEY_CLUMPSGEOW3,
0,
0,
@@ -1070,7 +1070,7 @@ struct argp_option program_options[] =
/* Brightness/pixel-value related columns. */
{
0, 0, 0, 0,
- "Brightness/magnitude (only using pixel value/error) related columns",
+ "Brightness/magnitude (only using pixel value/error) measurements",
UI_GROUP_COLUMNS_BRIGHTNESS
},
{
@@ -1088,8 +1088,8 @@ struct argp_option program_options[] =
ui_column_codes_ll
},
{
- "sumerr",
- UI_KEY_SUMERR,
+ "sum-error",
+ UI_KEY_SUMERROR,
0,
0,
"Error (1-sigma) in measuring sum.",
@@ -1102,7 +1102,7 @@ struct argp_option program_options[] =
ui_column_codes_ll
},
{
- "clumpssum",
+ "clumps-sum",
UI_KEY_CLUMPSSUM,
0,
0,
@@ -1116,7 +1116,7 @@ struct argp_option program_options[] =
ui_column_codes_ll
},
{
- "sumnoriver",
+ "sum-no-river",
UI_KEY_SUMNORIVER,
0,
0,
@@ -1200,8 +1200,8 @@ struct argp_option program_options[] =
ui_column_codes_ll
},
{
- "magnitudeerr",
- UI_KEY_MAGNITUDEERR,
+ "magnitude-error",
+ UI_KEY_MAGNITUDEERROR,
0,
0,
"Magnitude error of objects or clumps.",
@@ -1214,7 +1214,7 @@ struct argp_option program_options[] =
ui_column_codes_ll
},
{
- "clumpsmagnitude",
+ "clumps-magnitude",
UI_KEY_CLUMPSMAGNITUDE,
0,
0,
@@ -1242,7 +1242,7 @@ struct argp_option program_options[] =
ui_column_codes_ll
},
{
- "upperlimitmag",
+ "upperlimit-mag",
UI_KEY_UPPERLIMITMAG,
0,
0,
@@ -1256,7 +1256,7 @@ struct argp_option program_options[] =
ui_column_codes_ll
},
{
- "upperlimitonesigma",
+ "upperlimit-onesigma",
UI_KEY_UPPERLIMITONESIGMA,
0,
0,
@@ -1270,7 +1270,7 @@ struct argp_option program_options[] =
ui_column_codes_ll
},
{
- "upperlimitsigma",
+ "upperlimit-sigma",
UI_KEY_UPPERLIMITSIGMA,
0,
0,
@@ -1284,7 +1284,7 @@ struct argp_option program_options[] =
ui_column_codes_ll
},
{
- "upperlimitquantile",
+ "upperlimit-quantile",
UI_KEY_UPPERLIMITQUANTILE,
0,
0,
@@ -1298,7 +1298,7 @@ struct argp_option program_options[] =
ui_column_codes_ll
},
{
- "upperlimitskew",
+ "upperlimit-skew",
UI_KEY_UPPERLIMITSKEW,
0,
0,
@@ -1312,11 +1312,11 @@ struct argp_option program_options[] =
ui_column_codes_ll
},
{
- "riverave",
- UI_KEY_RIVERAVE,
+ "river-mean",
+ UI_KEY_RIVERMEAN,
0,
0,
- "Average river value surrounding a clump.",
+ "Mean river value surrounding a clump.",
UI_GROUP_COLUMNS_BRIGHTNESS,
0,
GAL_TYPE_INVALID,
@@ -1326,7 +1326,7 @@ struct argp_option program_options[] =
ui_column_codes_ll
},
{
- "rivernum",
+ "river-num",
UI_KEY_RIVERNUM,
0,
0,
@@ -1368,7 +1368,7 @@ struct argp_option program_options[] =
ui_column_codes_ll
},
{
- "skystd",
+ "sky-std",
UI_KEY_SKYSTD,
0,
0,
@@ -1441,15 +1441,16 @@ struct argp_option program_options[] =
+
/* Brightness/pixel-value related columns. */
{
0, 0, 0, 0,
- "Surface brightness related columns (all: mag/arcsec^2)",
+ "Surface brightness measurements (all: mag/arcsec^2)",
UI_GROUP_COLUMNS_SURFACEBRIGHTNESS
},
{
- "surfacebrightness",
- UI_KEY_SURFACEBRIGHTNESS,
+ "sb",
+ UI_KEY_SB,
0,
0,
"Surface brightness.",
@@ -1462,11 +1463,11 @@ struct argp_option program_options[] =
ui_column_codes_ll
},
{
- "sberror",
+ "sb-error",
UI_KEY_SBERROR,
0,
0,
- "Surface brightness error.",
+ "Surface brightness error from STD/VAR image.",
UI_GROUP_COLUMNS_SURFACEBRIGHTNESS,
0,
GAL_TYPE_INVALID,
@@ -1476,7 +1477,7 @@ struct argp_option program_options[] =
ui_column_codes_ll
},
{
- "upperlimitsb",
+ "upperlimit-sb",
UI_KEY_UPPERLIMITSB,
0,
0,
@@ -1504,11 +1505,11 @@ struct argp_option program_options[] =
ui_column_codes_ll
},
{
- "sigclip-mean-sb-err",
- UI_KEY_SIGCLIPMEANSBERR,
+ "sigclip-mean-sb-delta",
+ UI_KEY_SIGCLIPMEANSBDELTA,
0,
0,
- "Error in SB of sigclip-mean (1 pix area).",
+ "sigclip-mean-sb delta from sigclip'd STD.",
UI_GROUP_COLUMNS_SURFACEBRIGHTNESS,
0,
GAL_TYPE_INVALID,
@@ -1531,7 +1532,34 @@ struct argp_option program_options[] =
GAL_OPTIONS_NOT_SET,
ui_column_codes_ll
},
-
+ {
+ "half-sum-sb",
+ UI_KEY_HALFSUMSB,
+ 0,
+ 0,
+ "Surface brightness within --halfsumarea.",
+ UI_GROUP_COLUMNS_SURFACEBRIGHTNESS,
+ 0,
+ GAL_TYPE_INVALID,
+ GAL_OPTIONS_RANGE_ANY,
+ GAL_OPTIONS_NOT_MANDATORY,
+ GAL_OPTIONS_NOT_SET,
+ ui_column_codes_ll
+ },
+ {
+ "half-max-sb",
+ UI_KEY_HALFMAXSB,
+ 0,
+ 0,
+ "Surface brightness within half the maximum.",
+ UI_GROUP_COLUMNS_SURFACEBRIGHTNESS,
+ 0,
+ GAL_TYPE_INVALID,
+ GAL_OPTIONS_RANGE_ANY,
+ GAL_OPTIONS_NOT_MANDATORY,
+ GAL_OPTIONS_NOT_SET,
+ ui_column_codes_ll
+ },
@@ -1540,11 +1568,11 @@ struct argp_option program_options[] =
/* Morphology/shape related columns. */
{
0, 0, 0, 0,
- "Morphology/shape related columns",
+ "Morphology/shape (non-parametric) measurements",
UI_GROUP_COLUMNS_MORPHOLOGY
},
{
- "numclumps",
+ "num-clumps",
UI_KEY_NUMCLUMPS,
0,
0,
@@ -1572,7 +1600,7 @@ struct argp_option program_options[] =
ui_column_codes_ll
},
{
- "areaarcsec2",
+ "area-arcsec2",
UI_KEY_AREAARCSEC2,
0,
0,
@@ -1586,11 +1614,11 @@ struct argp_option program_options[] =
ui_column_codes_ll
},
{
- "areaminv",
- UI_KEY_MINVNUM,
+ "area-min-val",
+ UI_KEY_MINVALNUM,
0,
0,
- "Number of pixels with minimum value.",
+ "Number of pixels used in '--min-val-*'.",
UI_GROUP_COLUMNS_POSITION_PIXEL,
0,
GAL_TYPE_INVALID,
@@ -1600,11 +1628,11 @@ struct argp_option program_options[] =
ui_column_codes_ll
},
{
- "areamaxv",
- UI_KEY_MAXVNUM,
+ "area-max-val",
+ UI_KEY_MAXVALNUM,
0,
0,
- "Number of pixels with maximum value.",
+ "Number of pixels used in '--max-val-*'.",
UI_GROUP_COLUMNS_POSITION_PIXEL,
0,
GAL_TYPE_INVALID,
@@ -1614,7 +1642,7 @@ struct argp_option program_options[] =
ui_column_codes_ll
},
{
- "areaxy",
+ "area-xy",
UI_KEY_AREAXY,
0,
0,
@@ -1628,7 +1656,7 @@ struct argp_option program_options[] =
ui_column_codes_ll
},
{
- "clumpsarea",
+ "clumps-area",
UI_KEY_CLUMPSAREA,
0,
0,
@@ -1642,7 +1670,7 @@ struct argp_option program_options[] =
ui_column_codes_ll
},
{
- "weightarea",
+ "weight-area",
UI_KEY_WEIGHTAREA,
0,
0,
@@ -1656,7 +1684,7 @@ struct argp_option program_options[] =
ui_column_codes_ll
},
{
- "geoarea",
+ "geo-area",
UI_KEY_GEOAREA,
0,
0,
@@ -1670,11 +1698,11 @@ struct argp_option program_options[] =
ui_column_codes_ll
},
{
- "geoareaxy",
+ "geo-area-xy",
UI_KEY_GEOAREAXY,
0,
0,
- "Projected geoarea in first two dimensions.",
+ "Projected geo-area in first two dimensions.",
UI_GROUP_COLUMNS_MORPHOLOGY,
0,
GAL_TYPE_INVALID,
@@ -1684,11 +1712,11 @@ struct argp_option program_options[] =
ui_column_codes_ll
},
{
- "semimajor",
- UI_KEY_SEMIMAJOR,
+ "fwhm",
+ UI_KEY_FWHM,
0,
0,
- "RMS along major axis (in pixels).",
+ "Full width at half max (non-parametric).",
UI_GROUP_COLUMNS_MORPHOLOGY,
0,
GAL_TYPE_INVALID,
@@ -1698,11 +1726,11 @@ struct argp_option program_options[] =
ui_column_codes_ll
},
{
- "semiminor",
- UI_KEY_SEMIMINOR,
+ "half-max-area",
+ UI_KEY_HALFMAXAREA,
0,
0,
- "RMS along minor axis (in pixels).",
+ "No. pixels valued above half the max.",
UI_GROUP_COLUMNS_MORPHOLOGY,
0,
GAL_TYPE_INVALID,
@@ -1712,11 +1740,11 @@ struct argp_option program_options[] =
ui_column_codes_ll
},
{
- "axisratio",
- UI_KEY_AXISRATIO,
+ "half-max-radius",
+ UI_KEY_HALFMAXRADIUS,
0,
0,
- "Flux weighted axis ratio.",
+ "Radius at half the maximum (non-parametric).",
UI_GROUP_COLUMNS_MORPHOLOGY,
0,
GAL_TYPE_INVALID,
@@ -1726,11 +1754,11 @@ struct argp_option program_options[] =
ui_column_codes_ll
},
{
- "positionangle",
- UI_KEY_POSITIONANGLE,
+ "half-max-sum",
+ UI_KEY_HALFMAXSUM,
0,
0,
- "Flux weighted position angle.",
+ "Sum of pixels above half the maximum.",
UI_GROUP_COLUMNS_MORPHOLOGY,
0,
GAL_TYPE_INVALID,
@@ -1740,11 +1768,11 @@ struct argp_option program_options[] =
ui_column_codes_ll
},
{
- "geosemimajor",
- UI_KEY_GEOSEMIMAJOR,
+ "half-sum-area",
+ UI_KEY_HALFSUMAREA,
0,
0,
- "RMS along major axis (ignoring value).",
+ "Area containing half of --brightness.",
UI_GROUP_COLUMNS_MORPHOLOGY,
0,
GAL_TYPE_INVALID,
@@ -1754,11 +1782,11 @@ struct argp_option program_options[] =
ui_column_codes_ll
},
{
- "geosemiminor",
- UI_KEY_GEOSEMIMINOR,
+ "half-sum-radius",
+ UI_KEY_HALFSUMRADIUS,
0,
0,
- "RMS along minor axis (ignoring value).",
+ "Radius calculated from --halfsumarea.",
UI_GROUP_COLUMNS_MORPHOLOGY,
0,
GAL_TYPE_INVALID,
@@ -1768,11 +1796,11 @@ struct argp_option program_options[] =
ui_column_codes_ll
},
{
- "geoaxisratio",
- UI_KEY_GEOAXISRATIO,
+ "frac-max1-sum",
+ UI_KEY_FRACMAX1SUM,
0,
0,
- "Geometric axis ratio.",
+ "Sum of pixels brighter than 1st frac. of max.",
UI_GROUP_COLUMNS_MORPHOLOGY,
0,
GAL_TYPE_INVALID,
@@ -1782,25 +1810,11 @@ struct argp_option program_options[] =
ui_column_codes_ll
},
{
- "geopositionangle",
- UI_KEY_GEOPOSITIONANGLE,
- 0,
+ "frac-max2-sum",
+ UI_KEY_FRACMAX2SUM,
0,
- "Geometric position angle.",
- UI_GROUP_COLUMNS_MORPHOLOGY,
0,
- GAL_TYPE_INVALID,
- GAL_OPTIONS_RANGE_ANY,
- GAL_OPTIONS_NOT_MANDATORY,
- GAL_OPTIONS_NOT_SET,
- ui_column_codes_ll
- },
- {
- "fwhm",
- UI_KEY_FWHM,
- 0,
- 0,
- "Full width at half max (non-parametric).",
+ "Sum of pixels brighter than 2nd frac. of max.",
UI_GROUP_COLUMNS_MORPHOLOGY,
0,
GAL_TYPE_INVALID,
@@ -1810,11 +1824,11 @@ struct argp_option program_options[] =
ui_column_codes_ll
},
{
- "halfmaxarea",
- UI_KEY_HALFMAXAREA,
+ "frac-max1-area",
+ UI_KEY_FRACMAX1AREA,
0,
0,
- "No. pixels valued above half the max.",
+ "Area containing 1st fraction of maximum.",
UI_GROUP_COLUMNS_MORPHOLOGY,
0,
GAL_TYPE_INVALID,
@@ -1824,11 +1838,11 @@ struct argp_option program_options[] =
ui_column_codes_ll
},
{
- "halfmaxradius",
- UI_KEY_HALFMAXRADIUS,
+ "frac-max2-area",
+ UI_KEY_FRACMAX2AREA,
0,
0,
- "Radius at half the maximum (non-parametric).",
+ "Area containing 2nd fraction of maximum.",
UI_GROUP_COLUMNS_MORPHOLOGY,
0,
GAL_TYPE_INVALID,
@@ -1838,11 +1852,11 @@ struct argp_option program_options[] =
ui_column_codes_ll
},
{
- "halfmaxsum",
- UI_KEY_HALFMAXSUM,
+ "frac-max1-radius",
+ UI_KEY_FRACMAX1RADIUS,
0,
0,
- "Sum of pixels above half the maximum.",
+ "Radius calculated from --fracmaxarea1.",
UI_GROUP_COLUMNS_MORPHOLOGY,
0,
GAL_TYPE_INVALID,
@@ -1852,11 +1866,11 @@ struct argp_option program_options[] =
ui_column_codes_ll
},
{
- "halfmaxsb",
- UI_KEY_HALFMAXSB,
+ "frac-max2-radius",
+ UI_KEY_FRACMAX2RADIUS,
0,
0,
- "Surface brightness within half the maximum.",
+ "Radius calculated from --fracmaxarea2.",
UI_GROUP_COLUMNS_MORPHOLOGY,
0,
GAL_TYPE_INVALID,
@@ -1865,27 +1879,24 @@ struct argp_option program_options[] =
GAL_OPTIONS_NOT_SET,
ui_column_codes_ll
},
+
+
+
+
+
+ /* Elliptical measurements columns. */
{
- "halfsumarea",
- UI_KEY_HALFSUMAREA,
- 0,
- 0,
- "Area containing half of --brightness.",
- UI_GROUP_COLUMNS_MORPHOLOGY,
- 0,
- GAL_TYPE_INVALID,
- GAL_OPTIONS_RANGE_ANY,
- GAL_OPTIONS_NOT_MANDATORY,
- GAL_OPTIONS_NOT_SET,
- ui_column_codes_ll
+ 0, 0, 0, 0,
+ "Morphology/shape (elliptical) measurements",
+ UI_GROUP_COLUMNS_ELLIPTICAL
},
{
- "halfsumsb",
- UI_KEY_HALFSUMSB,
+ "semi-major",
+ UI_KEY_SEMIMAJOR,
0,
0,
- "Surface brightness within --halfsumarea.",
- UI_GROUP_COLUMNS_MORPHOLOGY,
+ "RMS along major axis (in pixels).",
+ UI_GROUP_COLUMNS_ELLIPTICAL,
0,
GAL_TYPE_INVALID,
GAL_OPTIONS_RANGE_ANY,
@@ -1894,12 +1905,12 @@ struct argp_option program_options[] =
ui_column_codes_ll
},
{
- "halfsumradius",
- UI_KEY_HALFSUMRADIUS,
+ "semi-minor",
+ UI_KEY_SEMIMINOR,
0,
0,
- "Radius calculated from --halfsumarea.",
- UI_GROUP_COLUMNS_MORPHOLOGY,
+ "RMS along minor axis (in pixels).",
+ UI_GROUP_COLUMNS_ELLIPTICAL,
0,
GAL_TYPE_INVALID,
GAL_OPTIONS_RANGE_ANY,
@@ -1908,12 +1919,12 @@ struct argp_option program_options[] =
ui_column_codes_ll
},
{
- "fracmaxsum1",
- UI_KEY_FRACMAXSUM1,
+ "axis-ratio",
+ UI_KEY_AXISRATIO,
0,
0,
- "Sum of pixels brighter than 1st frac. of max.",
- UI_GROUP_COLUMNS_MORPHOLOGY,
+ "Flux weighted axis ratio.",
+ UI_GROUP_COLUMNS_ELLIPTICAL,
0,
GAL_TYPE_INVALID,
GAL_OPTIONS_RANGE_ANY,
@@ -1922,12 +1933,12 @@ struct argp_option program_options[] =
ui_column_codes_ll
},
{
- "fracmaxsum2",
- UI_KEY_FRACMAXSUM2,
+ "position-angle",
+ UI_KEY_POSITIONANGLE,
0,
0,
- "Sum of pixels brighter than 2nd frac. of max.",
- UI_GROUP_COLUMNS_MORPHOLOGY,
+ "Flux weighted position angle.",
+ UI_GROUP_COLUMNS_ELLIPTICAL,
0,
GAL_TYPE_INVALID,
GAL_OPTIONS_RANGE_ANY,
@@ -1936,12 +1947,12 @@ struct argp_option program_options[] =
ui_column_codes_ll
},
{
- "fracmaxarea1",
- UI_KEY_FRACMAXAREA1,
+ "geo-semi-major",
+ UI_KEY_GEOSEMIMAJOR,
0,
0,
- "Area containing 1st fraction of maximum.",
- UI_GROUP_COLUMNS_MORPHOLOGY,
+ "Geometric RMS along major axis (ignoring value).",
+ UI_GROUP_COLUMNS_ELLIPTICAL,
0,
GAL_TYPE_INVALID,
GAL_OPTIONS_RANGE_ANY,
@@ -1950,12 +1961,12 @@ struct argp_option program_options[] =
ui_column_codes_ll
},
{
- "fracmaxarea2",
- UI_KEY_FRACMAXAREA2,
+ "geo-semi-minor",
+ UI_KEY_GEOSEMIMINOR,
0,
0,
- "Area containing 2nd fraction of maximum.",
- UI_GROUP_COLUMNS_MORPHOLOGY,
+ "Geometric RMS along minor axis (ignoring value).",
+ UI_GROUP_COLUMNS_ELLIPTICAL,
0,
GAL_TYPE_INVALID,
GAL_OPTIONS_RANGE_ANY,
@@ -1964,12 +1975,12 @@ struct argp_option program_options[] =
ui_column_codes_ll
},
{
- "fracmaxradius1",
- UI_KEY_FRACMAXRADIUS1,
+ "geo-axis-ratio",
+ UI_KEY_GEOAXISRATIO,
0,
0,
- "Radius calculated from --fracmaxarea1.",
- UI_GROUP_COLUMNS_MORPHOLOGY,
+ "Geometric (ignoring values, only lab) axis ratio.",
+ UI_GROUP_COLUMNS_ELLIPTICAL,
0,
GAL_TYPE_INVALID,
GAL_OPTIONS_RANGE_ANY,
@@ -1978,12 +1989,12 @@ struct argp_option program_options[] =
ui_column_codes_ll
},
{
- "fracmaxradius2",
- UI_KEY_FRACMAXRADIUS2,
+ "geo-position-angle",
+ UI_KEY_GEOPOSITIONANGLE,
0,
0,
- "Radius calculated from --fracmaxarea2.",
- UI_GROUP_COLUMNS_MORPHOLOGY,
+ "Geometric (ignoring values, only lab) pos. angle.",
+ UI_GROUP_COLUMNS_ELLIPTICAL,
0,
GAL_TYPE_INVALID,
GAL_OPTIONS_RANGE_ANY,
@@ -1995,7 +2006,6 @@ struct argp_option program_options[] =
-
{0}
};
diff --git a/bin/mkcatalog/columns.c b/bin/mkcatalog/columns.c
index 1f39902c..4758ad33 100644
--- a/bin/mkcatalog/columns.c
+++ b/bin/mkcatalog/columns.c
@@ -204,6 +204,7 @@ columns_wcs_preparation(struct mkcatalogparams *p)
switch(colcode->v)
{
/* High-level. */
+ case UI_KEY_SB:
case UI_KEY_RA:
case UI_KEY_DEC:
case UI_KEY_SBERROR:
@@ -212,8 +213,7 @@ columns_wcs_preparation(struct mkcatalogparams *p)
case UI_KEY_AREAARCSEC2:
case UI_KEY_SIGCLIPSTDSB:
case UI_KEY_SIGCLIPMEANSB:
- case UI_KEY_SIGCLIPMEANSBERR:
- case UI_KEY_SURFACEBRIGHTNESS:
+ case UI_KEY_SIGCLIPMEANSBDELTA:
/* Low-level. */
case UI_KEY_W1:
@@ -260,6 +260,7 @@ columns_wcs_preparation(struct mkcatalogparams *p)
break;
/* Calculate the pixel area if necessary. */
+ case UI_KEY_SB:
case UI_KEY_SBERROR:
case UI_KEY_HALFMAXSB:
case UI_KEY_HALFSUMSB:
@@ -267,8 +268,7 @@ columns_wcs_preparation(struct mkcatalogparams *p)
case UI_KEY_UPPERLIMITSB:
case UI_KEY_SIGCLIPSTDSB:
case UI_KEY_SIGCLIPMEANSB:
- case UI_KEY_SIGCLIPMEANSBERR:
- case UI_KEY_SURFACEBRIGHTNESS:
+ case UI_KEY_SIGCLIPMEANSBDELTA:
pixscale=gal_wcs_pixel_scale(p->objects->wcs);
p->pixelarcsecsq=pixscale[0]*pixscale[1]*3600.0f*3600.0f;
free(pixscale);
@@ -303,7 +303,7 @@ columns_sanity_check(struct mkcatalogparams *p)
case UI_KEY_SIGCLIPMEANSB:
case UI_KEY_SIGCLIPNUMBER:
case UI_KEY_SIGCLIPMEDIAN:
- case UI_KEY_SIGCLIPMEANSBERR:
+ case UI_KEY_SIGCLIPMEANSBDELTA:
if(isnan(p->sigmaclip[0]) || isnan(p->sigmaclip[1]))
error(EXIT_FAILURE, 0, "no sigma-clip defined! When any of the "
"sigma-clipping columns are requested, it is necessary to "
@@ -349,8 +349,8 @@ columns_sanity_check(struct mkcatalogparams *p)
case UI_KEY_GEOSEMIMINOR:
case UI_KEY_GEOAXISRATIO:
case UI_KEY_HALFSUMRADIUS:
- case UI_KEY_FRACMAXRADIUS1:
- case UI_KEY_FRACMAXRADIUS2:
+ case UI_KEY_FRACMAX1RADIUS:
+ case UI_KEY_FRACMAX2RADIUS:
case UI_KEY_GEOPOSITIONANGLE:
error(EXIT_FAILURE, 0, "columns requiring second moment "
"calculations (like semi-major, semi-minor, axis ratio "
@@ -483,7 +483,7 @@ columns_define_alloc(struct mkcatalogparams *p)
oiflag[ OCOL_NUM ] = ciflag[ CCOL_NUM ] = 1;
break;
- case UI_KEY_SURFACEBRIGHTNESS:
+ case UI_KEY_SB:
name = "SURFACE_BRIGHTNESS";
unit = "mag/arcsec^2";
ocomment = "Surface brightness (magnitude of
brightness/area).";
@@ -753,8 +753,8 @@ columns_define_alloc(struct mkcatalogparams *p)
disp_precision = 3;
oiflag[ OCOL_C_GZ ] = 1;
- case UI_KEY_MINVX:
- name = "MIN_V_X";
+ case UI_KEY_MINVALX:
+ name = "MIN_VAL_X";
unit = "pixel";
ocomment = "Minimum value X pixel position.";
ccomment = ocomment;
@@ -767,8 +767,8 @@ columns_define_alloc(struct mkcatalogparams *p)
oiflag[ OCOL_MINVNUM ] = ciflag[ CCOL_MINVNUM ] = 1;
break;
- case UI_KEY_MAXVX:
- name = "MAX_V_X";
+ case UI_KEY_MAXVALX:
+ name = "MAX_VAL_X";
unit = "pixel";
ocomment = "Maximum value X pixel position.";
ccomment = ocomment;
@@ -781,8 +781,8 @@ columns_define_alloc(struct mkcatalogparams *p)
oiflag[ OCOL_MAXVNUM ] = ciflag[ CCOL_MAXVNUM ] = 1;
break;
- case UI_KEY_MINVY:
- name = "MIN_V_Y";
+ case UI_KEY_MINVALY:
+ name = "MIN_VAL_Y";
unit = "pixel";
ocomment = "Minimum value Y pixel position.";
ccomment = ocomment;
@@ -795,8 +795,8 @@ columns_define_alloc(struct mkcatalogparams *p)
oiflag[ OCOL_MINVNUM ] = ciflag[ CCOL_MINVNUM ] = 1;
break;
- case UI_KEY_MAXVY:
- name = "MAX_V_Y";
+ case UI_KEY_MAXVALY:
+ name = "MAX_VAL_Y";
unit = "pixel";
ocomment = "Maximum value Y pixel position.";
ccomment = ocomment;
@@ -809,8 +809,8 @@ columns_define_alloc(struct mkcatalogparams *p)
oiflag[ OCOL_MAXVNUM ] = ciflag[ CCOL_MAXVNUM ] = 1;
break;
- case UI_KEY_MINVZ:
- name = "MIN_V_Z";
+ case UI_KEY_MINVALZ:
+ name = "MIN_VAL_Z";
unit = "pixel";
ocomment = "Minimum value Z pixel position.";
ccomment = ocomment;
@@ -823,8 +823,8 @@ columns_define_alloc(struct mkcatalogparams *p)
oiflag[ OCOL_MINVNUM ] = ciflag[ CCOL_MINVNUM ] = 1;
break;
- case UI_KEY_MAXVZ:
- name = "MAX_V_Z";
+ case UI_KEY_MAXVALZ:
+ name = "MAX_VAL_Z";
unit = "pixel";
ocomment = "Maximum value Z pixel position.";
ccomment = ocomment;
@@ -837,8 +837,8 @@ columns_define_alloc(struct mkcatalogparams *p)
oiflag[ OCOL_MAXVNUM ] = ciflag[ CCOL_MAXVNUM ] = 1;
break;
- case UI_KEY_MINVNUM:
- name = "MIN_V_NUM";
+ case UI_KEY_MINVALNUM:
+ name = "MIN_VAL_NUM";
unit = "counter";
ocomment = "Number of pixels with the minimum value.";
ccomment = ocomment;
@@ -850,8 +850,8 @@ columns_define_alloc(struct mkcatalogparams *p)
oiflag[ OCOL_MINVNUM ] = ciflag[ CCOL_MINVNUM ] = 1;
break;
- case UI_KEY_MAXVNUM:
- name = "MAX_V_NUM";
+ case UI_KEY_MAXVALNUM:
+ name = "MAX_VAL_NUM";
unit = "counter";
ocomment = "Number of pixels with the maximum value..";
ccomment = ocomment;
@@ -1210,7 +1210,7 @@ columns_define_alloc(struct mkcatalogparams *p)
ciflag[ CCOL_RIV_SUM ] = 1;
break;
- case UI_KEY_SUMERR:
+ case UI_KEY_SUMERROR:
name = "SUM_ERROR";
unit = MKCATALOG_NO_UNIT;
ocomment = "Error (1-sigma) in measuring sum.";
@@ -1397,7 +1397,7 @@ columns_define_alloc(struct mkcatalogparams *p)
ciflag[ CCOL_RIV_SUM ] = 1;
break;
- case UI_KEY_SIGCLIPMEANSBERR:
+ case UI_KEY_SIGCLIPMEANSBDELTA:
name = "SIGCLIP-MEAN-SB-ERR";
unit = "mag/arcsec^2";
ocomment = "Error in SB (over one pixel) of "
@@ -1451,7 +1451,7 @@ columns_define_alloc(struct mkcatalogparams *p)
ciflag[ CCOL_RIV_NUM ] = 1;
break;
- case UI_KEY_MAGNITUDEERR:
+ case UI_KEY_MAGNITUDEERROR:
name = "MAGNITUDE_ERROR";
unit = "log";
ocomment = "Error in measuring magnitude.";
@@ -1589,8 +1589,8 @@ columns_define_alloc(struct mkcatalogparams *p)
oiflag[ OCOL_UPPERLIMIT_SKEW ] = oiflag[ CCOL_UPPERLIMIT_SKEW ] = 1;
break;
- case UI_KEY_RIVERAVE:
- name = "RIVER_AVE";
+ case UI_KEY_RIVERMEAN:
+ name = "RIVER_MEAN";
unit = MKCATALOG_NO_UNIT;
ocomment = NULL;
ccomment = "Average river value surrounding this clump.";
@@ -1904,11 +1904,11 @@ columns_define_alloc(struct mkcatalogparams *p)
oiflag[ OCOL_HALFSUMNUM ] = ciflag[ CCOL_HALFSUMNUM ] = 1;
break;
- case UI_KEY_FRACMAXSUM1:
- case UI_KEY_FRACMAXSUM2:
- name = ( colcode->v==UI_KEY_FRACMAXSUM1
- ? "FRAC_MAX_SUM_1"
- : "FRAC_MAX_SUM_2" );
+ case UI_KEY_FRACMAX1SUM:
+ case UI_KEY_FRACMAX2SUM:
+ name = ( colcode->v==UI_KEY_FRACMAX1SUM
+ ? "FRAC_MAX1_SUM"
+ : "FRAC_MAX1_SUM" );
unit = MKCATALOG_NO_UNIT;
otype = GAL_TYPE_FLOAT32;
ctype = GAL_TYPE_FLOAT32;
@@ -1917,7 +1917,7 @@ columns_define_alloc(struct mkcatalogparams *p)
disp_precision = 0;
oiflag[ OCOL_NUM ] = ciflag[ CCOL_NUM ] = 1;
oiflag[ OCOL_SUM ] = ciflag[ CCOL_SUM ] = 1;
- if(colcode->v==UI_KEY_FRACMAXSUM1)
+ if(colcode->v==UI_KEY_FRACMAX1SUM)
{
ocomment = "Sum of pixels brighter than 1st fraction of
maximum.";
oiflag[ OCOL_FRACMAX1SUM ] = ciflag[ CCOL_FRACMAX1SUM ] = 1;
@@ -1930,11 +1930,11 @@ columns_define_alloc(struct mkcatalogparams *p)
ccomment = ocomment;
break;
- case UI_KEY_FRACMAXAREA1:
- case UI_KEY_FRACMAXAREA2:
- name = ( colcode->v==UI_KEY_FRACMAXAREA1
- ? "FRAC_MAX_AREA_1"
- : "FRAC_MAX_AREA_2" );
+ case UI_KEY_FRACMAX1AREA:
+ case UI_KEY_FRACMAX2AREA:
+ name = ( colcode->v==UI_KEY_FRACMAX1AREA
+ ? "FRAC_MAX1_AREA"
+ : "FRAC_MAX2_AREA" );
unit = "counter";
ocomment = "Number of pixels brighter than given fraction of
maximum value.";
ccomment = ocomment;
@@ -1945,7 +1945,7 @@ columns_define_alloc(struct mkcatalogparams *p)
disp_precision = 0;
oiflag[ OCOL_NUM ] = ciflag[ CCOL_NUM ] = 1;
oiflag[ OCOL_SUM ] = ciflag[ CCOL_SUM ] = 1;
- if(colcode->v==UI_KEY_FRACMAXAREA1)
+ if(colcode->v==UI_KEY_FRACMAX1AREA)
oiflag[ OCOL_FRACMAX1NUM ] = ciflag[ CCOL_FRACMAX1NUM ] = 1;
else
oiflag[ OCOL_FRACMAX2NUM ] = ciflag[ CCOL_FRACMAX2NUM ] = 1;
@@ -1954,8 +1954,8 @@ columns_define_alloc(struct mkcatalogparams *p)
case UI_KEY_FWHM:
case UI_KEY_HALFMAXRADIUS:
case UI_KEY_HALFSUMRADIUS:
- case UI_KEY_FRACMAXRADIUS1:
- case UI_KEY_FRACMAXRADIUS2:
+ case UI_KEY_FRACMAX1RADIUS:
+ case UI_KEY_FRACMAX2RADIUS:
unit = "pixels";
otype = GAL_TYPE_FLOAT32;
ctype = GAL_TYPE_FLOAT32;
@@ -1993,12 +1993,12 @@ columns_define_alloc(struct mkcatalogparams *p)
oiflag[ OCOL_HALFSUMNUM ] = ciflag[ CCOL_HALFSUMNUM ] = 1;
ocomment = "Radius at half of total sum (accounting for
ellipticity).";
break;
- case UI_KEY_FRACMAXRADIUS1:
+ case UI_KEY_FRACMAX1RADIUS:
name="FRAC_MAX_RADIUS_1";
oiflag[ OCOL_FRACMAX1NUM ] = ciflag[ CCOL_FRACMAX1NUM ] = 1;
ocomment = "Radius derived from area of 1st fraction of
maximum.";
break;
- case UI_KEY_FRACMAXRADIUS2:
+ case UI_KEY_FRACMAX2RADIUS:
name="FRAC_MAX_RADIUS_2";
oiflag[ OCOL_FRACMAX2NUM ] = ciflag[ CCOL_FRACMAX2NUM ] = 1;
ocomment = "Radius derived from area of 2nd fraction of
maximum.";
@@ -2439,7 +2439,7 @@ columns_fill(struct mkcatalog_passparams *pp)
((float *)colarr)[oind] = oi[OCOL_NUM]*p->pixelarcsecsq;
break;
- case UI_KEY_SURFACEBRIGHTNESS:
+ case UI_KEY_SB:
((float *)colarr)[oind] = MKC_SB(oi[OCOL_SUM], oi[OCOL_NUM]);
break;
@@ -2524,35 +2524,35 @@ columns_fill(struct mkcatalog_passparams *pp)
oi[OCOL_C_NUMALL] );
break;
- case UI_KEY_MINVX:
+ case UI_KEY_MINVALX:
((float *)colarr)[oind] = MKC_RATIO( oi[OCOL_MINVX],
oi[OCOL_MINVNUM] );
break;
- case UI_KEY_MAXVX:
+ case UI_KEY_MAXVALX:
((float *)colarr)[oind] = MKC_RATIO( oi[OCOL_MAXVX],
oi[OCOL_MAXVNUM] );
break;
- case UI_KEY_MINVY:
+ case UI_KEY_MINVALY:
((float *)colarr)[oind] = MKC_RATIO( oi[OCOL_MINVY],
oi[OCOL_MINVNUM] );
break;
- case UI_KEY_MAXVY:
+ case UI_KEY_MAXVALY:
((float *)colarr)[oind] = MKC_RATIO( oi[OCOL_MAXVY],
oi[OCOL_MAXVNUM] );
break;
- case UI_KEY_MINVZ:
+ case UI_KEY_MINVALZ:
((float *)colarr)[oind] = MKC_RATIO( oi[OCOL_MINVZ],
oi[OCOL_MINVNUM] );
break;
- case UI_KEY_MAXVZ:
+ case UI_KEY_MAXVALZ:
((float *)colarr)[oind] = MKC_RATIO( oi[OCOL_MAXVZ],
oi[OCOL_MAXVNUM] );
break;
- case UI_KEY_MINVNUM:
+ case UI_KEY_MINVALNUM:
((uint32_t *)colarr)[oind] = oi[OCOL_MINVNUM];
break;
- case UI_KEY_MAXVNUM:
+ case UI_KEY_MAXVALNUM:
((uint32_t *)colarr)[oind] = oi[OCOL_MAXVNUM];
break;
@@ -2613,7 +2613,7 @@ columns_fill(struct mkcatalog_passparams *pp)
: NAN );
break;
- case UI_KEY_SUMERR:
+ case UI_KEY_SUMERROR:
((float *)colarr)[oind] = columns_sum_error(p, oi, 0);
break;
@@ -2665,7 +2665,7 @@ columns_fill(struct mkcatalog_passparams *pp)
((float *)colarr)[oind] = MKC_SB(oi[ OCOL_SIGCLIPMEAN ], 1);
break;
- case UI_KEY_SIGCLIPMEANSBERR:
+ case UI_KEY_SIGCLIPMEANSBDELTA:
((float *)colarr)[oind] = SCLIP_SBERR(oi[ OCOL_SIGCLIPMEAN ],
oi[ OCOL_SIGCLIPSTD ]);
break;
@@ -2680,7 +2680,7 @@ columns_fill(struct mkcatalog_passparams *pp)
: NAN );
break;
- case UI_KEY_MAGNITUDEERR:
+ case UI_KEY_MAGNITUDEERROR:
((float *)colarr)[oind] = MAG_ERROR(p, oi, 0);
break;
@@ -2785,19 +2785,19 @@ columns_fill(struct mkcatalog_passparams *pp)
oi[OCOL_HALFMAXNUM] );
break;
- case UI_KEY_FRACMAXSUM1:
+ case UI_KEY_FRACMAX1SUM:
((float *)colarr)[oind] = oi[OCOL_FRACMAX1SUM];
break;
- case UI_KEY_FRACMAXSUM2:
+ case UI_KEY_FRACMAX2SUM:
((float *)colarr)[oind] = oi[OCOL_FRACMAX2SUM];
break;
- case UI_KEY_FRACMAXAREA1:
+ case UI_KEY_FRACMAX1AREA:
((int32_t *)colarr)[oind] = oi[OCOL_FRACMAX1NUM];
break;
- case UI_KEY_FRACMAXAREA2:
+ case UI_KEY_FRACMAX2AREA:
((int32_t *)colarr)[oind] = oi[OCOL_FRACMAX2NUM];
break;
@@ -2809,8 +2809,8 @@ columns_fill(struct mkcatalog_passparams *pp)
case UI_KEY_FWHM:
case UI_KEY_HALFMAXRADIUS:
case UI_KEY_HALFSUMRADIUS:
- case UI_KEY_FRACMAXRADIUS1:
- case UI_KEY_FRACMAXRADIUS2:
+ case UI_KEY_FRACMAX1RADIUS:
+ case UI_KEY_FRACMAX2RADIUS:
/* First derive the axis ratio (as 'tmp'), then set the index to
use and calculate the radius from the area and axis ratio. */
tmp = ( columns_second_order(pp, oi, UI_KEY_SEMIMINOR, 0)
@@ -2820,8 +2820,8 @@ columns_fill(struct mkcatalog_passparams *pp)
case UI_KEY_FWHM: tmpind=OCOL_HALFMAXNUM; break;
case UI_KEY_HALFMAXRADIUS: tmpind=OCOL_HALFMAXNUM; break;
case UI_KEY_HALFSUMRADIUS: tmpind=OCOL_HALFSUMNUM; break;
- case UI_KEY_FRACMAXRADIUS1: tmpind=OCOL_FRACMAX1NUM; break;
- case UI_KEY_FRACMAXRADIUS2: tmpind=OCOL_FRACMAX2NUM; break;
+ case UI_KEY_FRACMAX1RADIUS: tmpind=OCOL_FRACMAX1NUM; break;
+ case UI_KEY_FRACMAX2RADIUS: tmpind=OCOL_FRACMAX2NUM; break;
}
tmp = sqrt( oi[tmpind]/(tmp*M_PI) );
if(key==UI_KEY_FWHM)
@@ -2872,7 +2872,7 @@ columns_fill(struct mkcatalog_passparams *pp)
((float *)colarr)[cind]=ci[CCOL_NUM]*p->pixelarcsecsq;
break;
- case UI_KEY_SURFACEBRIGHTNESS:
+ case UI_KEY_SB:
((float *)colarr)[cind]=MKC_SB(ci[CCOL_SUM], ci[CCOL_NUM]);
break;
@@ -2926,35 +2926,35 @@ columns_fill(struct mkcatalog_passparams *pp)
ci[CCOL_NUMALL] );
break;
- case UI_KEY_MINVX:
+ case UI_KEY_MINVALX:
((float *)colarr)[cind] = MKC_RATIO( ci[CCOL_MINVX],
ci[CCOL_MINVNUM] );
break;
- case UI_KEY_MAXVX:
+ case UI_KEY_MAXVALX:
((float *)colarr)[cind] = MKC_RATIO( ci[CCOL_MAXVX],
ci[CCOL_MAXVNUM] );
break;
- case UI_KEY_MINVY:
+ case UI_KEY_MINVALY:
((float *)colarr)[cind] = MKC_RATIO( ci[CCOL_MINVY],
ci[CCOL_MINVNUM] );
break;
- case UI_KEY_MAXVY:
+ case UI_KEY_MAXVALY:
((float *)colarr)[cind] = MKC_RATIO( ci[CCOL_MAXVY],
ci[CCOL_MAXVNUM] );
break;
- case UI_KEY_MINVZ:
+ case UI_KEY_MINVALZ:
((float *)colarr)[cind] = MKC_RATIO( ci[CCOL_MINVZ],
ci[CCOL_MINVNUM] );
break;
- case UI_KEY_MAXVZ:
+ case UI_KEY_MAXVALZ:
((float *)colarr)[cind] = MKC_RATIO( ci[CCOL_MAXVZ],
ci[CCOL_MAXVNUM] );
break;
- case UI_KEY_MINVNUM:
+ case UI_KEY_MINVALNUM:
((uint32_t *)colarr)[cind] = ci[CCOL_MINVNUM];
break;
- case UI_KEY_MAXVNUM:
+ case UI_KEY_MAXVALNUM:
((uint32_t *)colarr)[cind] = ci[CCOL_MAXVNUM];
break;
@@ -2990,7 +2990,7 @@ columns_fill(struct mkcatalog_passparams *pp)
((float *)colarr)[cind] = columns_clump_sum(ci);
break;
- case UI_KEY_SUMERR:
+ case UI_KEY_SUMERROR:
((float *)colarr)[cind] = columns_sum_error(p, ci, 1);
break;
@@ -3050,7 +3050,7 @@ columns_fill(struct mkcatalog_passparams *pp)
((float *)colarr)[cind] = MKC_MAG(ci[ CCOL_SUM ]-tmp);
break;
- case UI_KEY_MAGNITUDEERR:
+ case UI_KEY_MAGNITUDEERROR:
((float *)colarr)[cind] = MAG_ERROR(p, ci, 1);
break;
@@ -3084,7 +3084,7 @@ columns_fill(struct mkcatalog_passparams *pp)
((float *)colarr)[cind] = ci[ CCOL_UPPERLIMIT_SKEW ];
break;
- case UI_KEY_RIVERAVE:
+ case UI_KEY_RIVERMEAN:
((float *)colarr)[cind] = ( ci[ CCOL_RIV_NUM]
? ci[ CCOL_RIV_SUM ]/ci[ CCOL_RIV_NUM]
: NAN );
@@ -3161,19 +3161,19 @@ columns_fill(struct mkcatalog_passparams *pp)
ci[CCOL_HALFMAXNUM] );
break;
- case UI_KEY_FRACMAXSUM1:
+ case UI_KEY_FRACMAX1SUM:
((int32_t *)colarr)[cind] = ci[CCOL_FRACMAX1SUM];
break;
- case UI_KEY_FRACMAXSUM2:
+ case UI_KEY_FRACMAX2SUM:
((int32_t *)colarr)[cind] = ci[CCOL_FRACMAX2SUM];
break;
- case UI_KEY_FRACMAXAREA1:
+ case UI_KEY_FRACMAX1AREA:
((int32_t *)colarr)[cind] = ci[CCOL_FRACMAX1NUM];
break;
- case UI_KEY_FRACMAXAREA2:
+ case UI_KEY_FRACMAX2AREA:
((int32_t *)colarr)[cind] = ci[CCOL_FRACMAX2NUM];
break;
@@ -3185,8 +3185,8 @@ columns_fill(struct mkcatalog_passparams *pp)
case UI_KEY_FWHM:
case UI_KEY_HALFMAXRADIUS:
case UI_KEY_HALFSUMRADIUS:
- case UI_KEY_FRACMAXRADIUS1:
- case UI_KEY_FRACMAXRADIUS2:
+ case UI_KEY_FRACMAX1RADIUS:
+ case UI_KEY_FRACMAX2RADIUS:
tmp = ( columns_second_order( pp, ci, UI_KEY_SEMIMINOR, 1)
/ columns_second_order(pp, ci, UI_KEY_SEMIMAJOR, 1) );
switch(key)
@@ -3194,8 +3194,8 @@ columns_fill(struct mkcatalog_passparams *pp)
case UI_KEY_FWHM: tmpind=CCOL_HALFMAXNUM; break;
case UI_KEY_HALFMAXRADIUS: tmpind=CCOL_HALFMAXNUM; break;
case UI_KEY_HALFSUMRADIUS: tmpind=CCOL_HALFSUMNUM; break;
- case UI_KEY_FRACMAXRADIUS1: tmpind=CCOL_FRACMAX1NUM; break;
- case UI_KEY_FRACMAXRADIUS2: tmpind=CCOL_FRACMAX2NUM; break;
+ case UI_KEY_FRACMAX1RADIUS: tmpind=CCOL_FRACMAX1NUM; break;
+ case UI_KEY_FRACMAX2RADIUS: tmpind=CCOL_FRACMAX2NUM; break;
}
tmp = sqrt( ci[tmpind]/(tmp*M_PI) );
if(key==UI_KEY_FWHM)
diff --git a/bin/mkcatalog/ui.c b/bin/mkcatalog/ui.c
index 53526c2b..dbba00dc 100644
--- a/bin/mkcatalog/ui.c
+++ b/bin/mkcatalog/ui.c
@@ -418,7 +418,7 @@ ui_read_check_only_options(struct mkcatalogparams *p)
/* Make sure that '--fracmax' is given if necessary and that the fracsum
values are less than one. */
for(colcode=p->columnids; colcode!=NULL; colcode=colcode->next)
- if( (colcode->v==UI_KEY_FRACMAXAREA1 || colcode->v==UI_KEY_FRACMAXAREA2)
+ if( (colcode->v==UI_KEY_FRACMAX1AREA || colcode->v==UI_KEY_FRACMAX2AREA)
&& p->fracmax==NULL )
error(EXIT_FAILURE, 0, "please specify your required fractions for "
"'--fracmaxarea' using the '--fracmax' option (for example "
@@ -440,7 +440,7 @@ ui_read_check_only_options(struct mkcatalogparams *p)
/* If a second fracum column is necessary, make sure two values are
given to --fracmax. */
for(colcode=p->columnids; colcode!=NULL; colcode=colcode->next)
- if(colcode->v==UI_KEY_FRACMAXAREA2 && p->fracmax->size==1)
+ if(colcode->v==UI_KEY_FRACMAX2AREA && p->fracmax->size==1)
error(EXIT_FAILURE, 0, "only one value given to '--fracmax', "
"but '--fracmaxarea2' was requested! You need to give "
"the requested fraction as a second value to '--fracmax', "
diff --git a/bin/mkcatalog/ui.h b/bin/mkcatalog/ui.h
index 81acbde5..5028db01 100644
--- a/bin/mkcatalog/ui.h
+++ b/bin/mkcatalog/ui.h
@@ -41,6 +41,7 @@ enum program_args_groups
UI_GROUP_COLUMNS_BRIGHTNESS,
UI_GROUP_COLUMNS_SURFACEBRIGHTNESS,
UI_GROUP_COLUMNS_MORPHOLOGY,
+ UI_GROUP_COLUMNS_ELLIPTICAL,
};
@@ -49,8 +50,8 @@ enum program_args_groups
/* Available letters for short options:
- f g k w x y z
- E H J L O R W X Y
+ a b c f g k n u w x y z
+ A B E G H J L O Q R W X Y
*/
enum option_keys_enum
{
@@ -64,22 +65,12 @@ enum option_keys_enum
UI_KEY_IDS = 'i', /* Catalog columns. */
UI_KEY_HOSTOBJID = 'j',
- UI_KEY_NUMCLUMPS = 'c',
- UI_KEY_AREA = 'a',
UI_KEY_X = 'x',
UI_KEY_Y = 'y',
UI_KEY_Z = 'z',
UI_KEY_RA = 'r',
UI_KEY_DEC = 'd',
- UI_KEY_SUM = 'b',
UI_KEY_MAGNITUDE = 'm',
- UI_KEY_MAGNITUDEERR = 'G',
- UI_KEY_UPPERLIMITMAG = 'u',
- UI_KEY_SN = 'n',
- UI_KEY_SEMIMAJOR = 'A',
- UI_KEY_SEMIMINOR = 'B',
- UI_KEY_AXISRATIO = 'Q',
- UI_KEY_POSITIONANGLE = 'p',
/* Only with long version (start with a value 1000, the rest will be set
automatically). */
@@ -110,10 +101,12 @@ enum option_keys_enum
UI_KEY_OBJID, /* Catalog columns. */
UI_KEY_IDINHOSTOBJ,
+ UI_KEY_AREA,
UI_KEY_AREAARCSEC2,
- UI_KEY_SURFACEBRIGHTNESS,
+ UI_KEY_SB,
UI_KEY_SBERROR,
UI_KEY_AREAXY,
+ UI_KEY_NUMCLUMPS,
UI_KEY_CLUMPSAREA,
UI_KEY_WEIGHTAREA,
UI_KEY_GEOAREA,
@@ -121,14 +114,14 @@ enum option_keys_enum
UI_KEY_GEOX,
UI_KEY_GEOY,
UI_KEY_GEOZ,
- UI_KEY_MINVX,
- UI_KEY_MAXVX,
- UI_KEY_MINVY,
- UI_KEY_MAXVY,
- UI_KEY_MINVZ,
- UI_KEY_MAXVZ,
- UI_KEY_MINVNUM,
- UI_KEY_MAXVNUM,
+ UI_KEY_MINVALX,
+ UI_KEY_MAXVALX,
+ UI_KEY_MINVALY,
+ UI_KEY_MAXVALY,
+ UI_KEY_MINVALZ,
+ UI_KEY_MAXVALZ,
+ UI_KEY_MINVALNUM,
+ UI_KEY_MAXVALNUM,
UI_KEY_CLUMPSX,
UI_KEY_CLUMPSY,
UI_KEY_CLUMPSZ,
@@ -153,21 +146,25 @@ enum option_keys_enum
UI_KEY_CLUMPSGEOW1,
UI_KEY_CLUMPSGEOW2,
UI_KEY_CLUMPSGEOW3,
- UI_KEY_SUMERR,
+ UI_KEY_SUM,
+ UI_KEY_SUMERROR,
UI_KEY_CLUMPSSUM,
UI_KEY_SUMNORIVER,
UI_KEY_STD,
UI_KEY_MEAN,
UI_KEY_MEDIAN,
UI_KEY_MAXIMUM,
+ UI_KEY_MAGNITUDEERROR,
+ UI_KEY_SN,
UI_KEY_CLUMPSMAGNITUDE,
UI_KEY_UPPERLIMIT,
UI_KEY_UPPERLIMITSB,
+ UI_KEY_UPPERLIMITMAG,
UI_KEY_UPPERLIMITONESIGMA,
UI_KEY_UPPERLIMITSIGMA,
UI_KEY_UPPERLIMITQUANTILE,
UI_KEY_UPPERLIMITSKEW,
- UI_KEY_RIVERAVE,
+ UI_KEY_RIVERMEAN,
UI_KEY_RIVERNUM,
UI_KEY_SKY,
UI_KEY_SKYSTD,
@@ -176,8 +173,12 @@ enum option_keys_enum
UI_KEY_SIGCLIPMEAN,
UI_KEY_SIGCLIPSTD,
UI_KEY_SIGCLIPMEANSB,
- UI_KEY_SIGCLIPMEANSBERR,
+ UI_KEY_SIGCLIPMEANSBDELTA,
UI_KEY_SIGCLIPSTDSB,
+ UI_KEY_SEMIMAJOR,
+ UI_KEY_SEMIMINOR,
+ UI_KEY_POSITIONANGLE,
+ UI_KEY_AXISRATIO,
UI_KEY_GEOSEMIMAJOR,
UI_KEY_GEOSEMIMINOR,
UI_KEY_GEOAXISRATIO,
@@ -190,12 +191,12 @@ enum option_keys_enum
UI_KEY_HALFSUMAREA,
UI_KEY_HALFSUMSB,
UI_KEY_HALFSUMRADIUS,
- UI_KEY_FRACMAXSUM1,
- UI_KEY_FRACMAXSUM2,
- UI_KEY_FRACMAXAREA1,
- UI_KEY_FRACMAXAREA2,
- UI_KEY_FRACMAXRADIUS1,
- UI_KEY_FRACMAXRADIUS2,
+ UI_KEY_FRACMAX1SUM,
+ UI_KEY_FRACMAX2SUM,
+ UI_KEY_FRACMAX1AREA,
+ UI_KEY_FRACMAX2AREA,
+ UI_KEY_FRACMAX1RADIUS,
+ UI_KEY_FRACMAX2RADIUS,
};
diff --git a/bin/script/psf-select-stars.in b/bin/script/psf-select-stars.in
index e9c90668..c9491987 100644
--- a/bin/script/psf-select-stars.in
+++ b/bin/script/psf-select-stars.in
@@ -675,8 +675,8 @@ else
qmatch=$tmpdir/axisratio-match.fits
# Measure axis ratios
- astmkcatalog $segmented --ids --ra --dec --axisratio \
- --positionangle --fwhm --clumpscat \
+ astmkcatalog $segmented --ids --ra --dec --axis-ratio \
+ --position-angle --fwhm --clumpscat \
--output=$qraw $quiet
# Match with downloaded catalog
diff --git a/bin/script/psf-stamp.in b/bin/script/psf-stamp.in
index a456a9b0..a2e629ba 100644
--- a/bin/script/psf-stamp.in
+++ b/bin/script/psf-stamp.in
@@ -108,8 +108,8 @@ $scriptname options:
-S, --segment=STR Output of Segment (with OBJECTS and CLUMPS).
-N, --normop=STR Operator for computing the normalization value
(mean, sigclip-mean, etc.).
- -Q, --axisratio=FLT Axis ratio for ellipse maskprofile (A/B).
- -p, --positionangle=FLT Position angle for ellipse mask profile.
+ -Q, --axis-ratio=FLT Axis ratio for ellipse maskprofile (A/B).
+ -p, --position-angle=FLT Position angle for ellipse mask profile.
-s, --sigmaclip=FLT,FLT Sigma-clip multiple and tolerance.
-d, --nocentering Don't warp the center coord to central pixel.
@@ -318,11 +318,11 @@ do
-s|--sigmaclip) sigmaclip="$2";
check_v "$1" "$sigmaclip"; shift;shift;;
-s=*|--sigmaclip=*) sigmaclip="${1#*=}";
check_v "$1" "$sigmaclip"; shift;;
-s*) sigmaclip=$(echo "$1" | sed -e's/-s//');
check_v "$1" "$sigmaclip"; shift;;
- -Q|--axisratio) axisratio="$2";
check_v "$1" "$axisratio"; shift;shift;;
- -Q=*|--axisratio=*) axisratio="${1#*=}";
check_v "$1" "$axisratio"; shift;;
+ -Q|--axis-ratio) axisratio="$2";
check_v "$1" "$axisratio"; shift;shift;;
+ -Q=*|--axis-ratio=*) axisratio="${1#*=}";
check_v "$1" "$axisratio"; shift;;
-Q*) axisratio=$(echo "$1" | sed -e's/-Q//');
check_v "$1" "$axisratio"; shift;;
- -p|--positionangle) positionangle="$2";
check_v "$1" "$positionangle"; shift;shift;;
- -p=*|--positionangle=*) positionangle="${1#*=}";
check_v "$1" "$positionangle"; shift;;
+ -p|--position-angle) positionangle="$2";
check_v "$1" "$positionangle"; shift;shift;;
+ -p=*|--position-angle=*) positionangle="${1#*=}";
check_v "$1" "$positionangle"; shift;;
-p*) positionangle=$(echo "$1" | sed
-e's/-p//'); check_v "$1" "$positionangle"; shift;;
@@ -822,9 +822,9 @@ if [ x"$normradiusmin" != x -a x"$normradiusmax" != x
]; then
fi
astscript-radial-profile $centermsk --hdu=1 --rmax=$maxr \
--measure=$normop $finalsigmaclip \
- --positionangle=$positionangle \
+ --position-angle=$positionangle \
--tmpdir=$tmpdir --keeptmp \
- --axisratio=$axisratio \
+ --axis-ratio=$axisratio \
--output=$radialprofile $quiet
# The normalization value is computed from the radial profile in between
diff --git a/bin/script/psf-unite.in b/bin/script/psf-unite.in
index e3f6f822..c2726e89 100644
--- a/bin/script/psf-unite.in
+++ b/bin/script/psf-unite.in
@@ -91,8 +91,8 @@ $scriptname options:
-I, --innerhdu=STR HDU/extension of the inner PSF image.
-r, --radius=FLT Radius at which the junction is done (in pixels).
-s, --scale=FLT Factor by which the inner PSF is multiplied.
- -Q, --axisratio=FLT Axis ratio for ellipse maskprofile (A/B).
- -p, --positionangle=FLT Position angle for ellipse mask profile.
+ -Q, --axis-ratio=FLT Axis ratio for ellipse maskprofile (A/B).
+ -p, --position-angle=FLT Position angle for ellipse mask profile.
Output:
-o, --output Output table with the radial profile.
@@ -281,12 +281,12 @@ do
-s|--scale) scale="$2";
check_v "$1" "$scale"; shift;shift;;
-s=*|--scale=*) scale="${1#*=}";
check_v "$1" "$scale"; shift;;
-s*) scale=$(echo "$1" | sed -e's/-f//');
check_v "$1" "$scale"; shift;;
- -Q|--axisratio) axisratio="$2";
check_v "$1" "$axisratio"; shift;shift;;
- -Q=*|--axisratio=*) axisratio="${1#*=}";
check_v "$1" "$axisratio"; shift;;
+ -Q|--axis-ratio) axisratio="$2";
check_v "$1" "$axisratio"; shift;shift;;
+ -Q=*|--axis-ratio=*) axisratio="${1#*=}";
check_v "$1" "$axisratio"; shift;;
-Q*) axisratio=$(echo "$1" | sed -e's/-Q//');
check_v "$1" "$axisratio"; shift;;
- -p|--positionangle) positionangle="$2";
check_v "$1" "$positionangle"; shift;shift;;
- -p=*|--positionangle=*) positionangle="${1#*=}";
check_v "$1" "$positionangle"; shift;;
- -p*) positionangle=$(echo "$1" | sed -e's/-p//');
check_v "$1" "$positionangle"; shift;;
+ -p|--position-angle) positionangle="$2";
check_v "$1" "$positionangle"; shift;shift;;
+ -p=*|--position-angle=*) positionangle="${1#*=}";
check_v "$1" "$positionangle"; shift;;
+ -p*) positionangle=$(echo "$1" | sed -e's/-p//');
check_v "$1" "$positionangle"; shift;;
# Output parameters
-k|--keeptmp) keeptmp=1; shift;;
diff --git a/bin/script/radial-profile.in b/bin/script/radial-profile.in
index 70c9fec0..e3edfee0 100644
--- a/bin/script/radial-profile.in
+++ b/bin/script/radial-profile.in
@@ -106,34 +106,34 @@ experienced Gnuastro users and developers. For more
information, please run:
$scriptname options:
Input:
- -h, --hdu=STR HDU/extension of all input FITS files.
- -O, --mode=STR Coordinate mode: img or wcs.
- -c, --center=FLT,FLT Coordinate of the center along 2 axes.
- -R, --rmax=FLT Maximum radius for the radial profile (in pixels).
- -Q, --axisratio=FLT Axis ratio for ellipse profiles (A/B).
- -a, --azimuth=FLT,FLT Azimuthal angles range (from the major axis).
- -p, --positionangle=FLT Position angle for ellipse profiles.
- -s, --sigmaclip=FLT,FLT Sigma-clip multiple and tolerance.
- -z, --zeropoint=FLT Zeropoint magnitude of input dataset.
- -Z, --zeroisnotblank 0.0 in float or double images are not blank.
+ -h, --hdu=STR HDU/extension of all input FITS files.
+ -O, --mode=STR Coordinate mode: img or wcs.
+ -c, --center=FLT,FLT Coordinate of the center along 2 axes.
+ -R, --rmax=FLT Maximum radius for the radial profile (in pixels).
+ -Q, --axis-ratio=FLT Axis ratio for ellipse profiles (A/B).
+ -a, --azimuth=FLT,FLT Azimuthal angles range (from the major axis).
+ -p, --position-angle=FLT Position angle for ellipse profiles.
+ -s, --sigmaclip=FLT,FLT Sigma-clip multiple and tolerance.
+ -z, --zeropoint=FLT Zeropoint magnitude of input dataset.
+ -Z, --zeroisnotblank 0.0 in float or double images are not blank.
Output:
- -o, --output Output table with the radial profile.
- -t, --tmpdir Directory to keep temporary files.
- -k, --keeptmp Keep temporal/auxiliar files.
- -m, --measure=STR Measurement operator (mean, sigclip-mean, etc.).
- -P, --precision=INT Number of digits after the decimal point for radius.
- -v, --oversample=INT Oversample for higher resolution radial profile.
- -u, --undersample=INT Undersample for lower resolution radial profile.
- -i, --instd=FLT/STR Sky standard deviation per pixel, as a single
- number or as the filename.
- -d, --stdhdu=STR HDU/extension of the sky standard deviation image.
+ -o, --output Output table with the radial profile.
+ -t, --tmpdir Directory to keep temporary files.
+ -k, --keeptmp Keep temporal/auxiliar files.
+ -m, --measure=STR Measurement operator (mean, sigclip-mean, etc.).
+ -P, --precision=INT Number of digits after the decimal point for radius.
+ -v, --oversample=INT Oversample for higher resolution radial profile.
+ -u, --undersample=INT Undersample for lower resolution radial profile.
+ -i, --instd=FLT/STR Sky standard deviation per pixel, as a single
+ number or as the filename.
+ -d, --stdhdu=STR HDU/extension of the sky standard deviation image.
Operating mode:
- -?, --help Print this help list.
- --cite BibTeX citation for this program.
- -q, --quiet Don't print any extra information in stdout.
- -V, --version Print program version.
+ -?, --help Print this help list.
+ --cite BibTeX citation for this program.
+ -q, --quiet Don't print any extra information in stdout.
+ -V, --version Print program version.
Mandatory or optional arguments to long options are also mandatory or optional
for any corresponding short options.
@@ -229,15 +229,15 @@ do
-R|--rmax) rmax="$2"; check_v
"$1" "$rmax"; shift;shift;;
-R=*|--rmax=*) rmax="${1#*=}"; check_v
"$1" "$rmax"; shift;;
-R*) rmax=$(echo "$1" | sed -e's/-R//'); check_v
"$1" "$rmax"; shift;;
- -Q|--axisratio) axisratio="$2"; check_v
"$1" "$axisratio"; shift;shift;;
- -Q=*|--axisratio=*) axisratio="${1#*=}"; check_v
"$1" "$axisratio"; shift;;
- -Q*) axisratio=$(echo "$1" | sed -e's/-Q//'); check_v
"$1" "$axisratio"; shift;;
+ -Q|--axis-ratio) axisratio="$2";
check_v "$1" "$axisratio"; shift;shift;;
+ -Q=*|--axis-ratio=*) axisratio="${1#*=}";
check_v "$1" "$axisratio"; shift;;
+ -Q*) axisratio=$(echo "$1" | sed -e's/-Q//');
check_v "$1" "$axisratio"; shift;;
-a|--azimuth) azimuth="$2";
check_v "$1" "$azimuth"; shift;shift;;
-a=*|--azimuth=*) azimuth="${1#*=}";
check_v "$1" "$azimuth"; shift;;
-a*) azimuth=$(echo "$1" | sed -e's/-a//');
check_v "$1" "$azimuth"; shift;;
- -p|--positionangle) positionangle="$2"; check_v
"$1" "$positionangle"; shift;shift;;
- -p=*|--positionangle=*) positionangle="${1#*=}"; check_v
"$1" "$positionangle"; shift;;
- -p*) positionangle=$(echo "$1" | sed -e's/-p//');
check_v "$1" "$positionangle"; shift;;
+ -p|--position-angle) positionangle="$2";
check_v "$1" "$positionangle"; shift;shift;;
+ -p=*|--position-angle=*) positionangle="${1#*=}";
check_v "$1" "$positionangle"; shift;;
+ -p*) positionangle=$(echo "$1" | sed -e's/-p//');
check_v "$1" "$positionangle"; shift;;
-s|--sigmaclip) sigmaclip="$2"; check_v
"$1" "$sigmaclip"; shift;shift;;
-s=*|--sigmaclip=*) sigmaclip="${1#*=}"; check_v
"$1" "$sigmaclip"; shift;;
-s*) sigmaclip=$(echo "$1" | sed -e's/-s//'); check_v
"$1" "$sigmaclip"; shift;;
@@ -759,10 +759,10 @@ fi
# We tested this by making a mock profile and adding different noise
# realizations (just changing the random number generator seed). The
# radial profiles of each noise realization were then measured and their
-# scatter was compared with the '--sberror' column of MakeCatalog when
+# scatter was compared with the '--sb-error' column of MakeCatalog when
# given to this radial profile script. We saw that without
# '--spatialresolution=0.0', the measured errors were overestimated in
-# the center, but after adding this, the '--sberror' column was nicely
+# the center, but after adding this, the '--sb-error' column was nicely
# consistent with the scatter in the mock profiles at central radii.
cat=$tmpdir/catalog.fits
astmkcatalog $apertures --hdu=1 --valuesfile=$values --valueshdu=1 --ids \
diff --git a/doc/gnuastro.texi b/doc/gnuastro.texi
index 86ab669a..f57d830a 100644
--- a/doc/gnuastro.texi
+++ b/doc/gnuastro.texi
@@ -632,6 +632,7 @@ MakeCatalog
* Quantifying measurement limits:: For comparing different catalogs.
* Measuring elliptical parameters:: Estimating elliptical parameters.
* Adding new columns to MakeCatalog:: How to add new columns.
+* MakeCatalog measurements:: List of all the measurements/columns by
MakeCatalog.
* Invoking astmkcatalog:: Options and arguments to MakeCatalog.
Quantifying measurement limits
@@ -644,11 +645,21 @@ Quantifying measurement limits
* Surface brightness limit of image:: Extrapolate per-pixel noise-level to
standard units.
* Upper limit magnitude of image:: Measure the noise-level for a certain
aperture.
+MakeCatalog measurements
+
+* Identifier columns:: Identifying labels of each row (object/clumps).
+* Position measurements in pixels:: Containing image/pixel (X/Y) measurements.
+* Position measurements in WCS:: Containing WCS (for example RA/Dec)
measurements.
+* Brightness measurements:: Using pixel values of each label.
+* Surface brightness measurements:: Various ways to measure surface
brightness.
+* Morphology measurements nonparametric:: Non-parametric morphology.
+* Morphology measurements elliptical:: Elliptical morphology measurements.
+* Spectra measurement in a cube:: How to get the value of a label across all
slices.
+
Invoking MakeCatalog
* MakeCatalog inputs and basic settings:: Input files and basic settings.
* Upper-limit settings:: Settings for upper-limit measurements.
-* MakeCatalog measurements:: Available measurements in MakeCatalog.
* MakeCatalog output:: File names of MakeCatalog's output table.
Match
@@ -3448,7 +3459,7 @@ For example, with the command below, let's generate a new
catalog of the F160W f
@example
$ astmkcatalog seg/xdf-f160w.fits --ids --ra --dec --magnitude --sn \
--zeropoint=25.94 --clumpscat --upnsigma=3 \
- --upperlimitmag --upperlimitsigma \
+ --upperlimit-mag --upperlimit-sigma \
--output=xdf-f160w.fits
@end example
@@ -3518,7 +3529,7 @@ For example, in the Legacy
Survey@footnote{@url{https://www.legacysurvey.org/dr9
As mentioned above, an important caveat in this simple calculation is that we
should only be looking at point-like objects, not simply everything.
This is because the shape or radial slope of the profile has an important
effect on this measurement: at the same total magnitude, a sharper object will
have a higher S/N.
To be more precise, we should first perform star-galaxy separation, then do
this only for the objects that are classified as stars.
-A crude, first-order, method is to use the @option{--axisratio} option so
MakeCatalog also measures the axis ratio, then call Table with
@option{--range=upperlimit_sigma,,4.8:5.2} and
@option{--range=axis_ratio,0.95:1} (in one command).
+A crude, first-order, method is to use the @option{--axis-ratio} option so
MakeCatalog also measures the axis ratio, then call Table with
@option{--range=upperlimit_sigma,,4.8:5.2} and
@option{--range=axis_ratio,0.95:1} (in one command).
Please do this for yourself as an exercise to see the difference with the
result above.
@noindent
@@ -4597,8 +4608,8 @@ Please see in @ref{Drawing with vector graphics} for the
full list of columns/fe
@noindent
@strong{Drawing ellipses:} With the commands below, you can measure the
elliptical properties of the objects and visualized them in a ready-to-publish
PDF (we will only show the ellipses of the largest clumps):
@example
-$ astmkcatalog ../seg/xdf-f160w.fits --ra --dec --semimajor \
- --axisratio --positionangle --clumpscat \
+$ astmkcatalog ../seg/xdf-f160w.fits --ra --dec --semi-major \
+ --axis-ratio --position-angle --clumpscat \
--output=ellipseinfo.fits
$ asttable ellipseinfo.fits -hCLUMPS | awk '@{print 4@}' > params.txt
$ asttable ellipseinfo.fits -hCLUMPS --catcolumnfile=params.txt \
@@ -5713,13 +5724,13 @@ astmkcatalog lab.fits -h1 --zeropoint=$zeropoint
-osbl.fits \
--valuesfile=r_detected.fits --valueshdu=INPUT-NO-SKY \
--upmaskfile=r_detected.fits --upmaskhdu=DETECTIONS \
--upnsigma=3 --checkuplim=1 --upnum=1000 \
- --ids --upperlimitsb
+ --ids --upperlimit-sb
@end example
The @file{sbl.fits} catalog now contains the upper-limit surface brightness
for a circle with an area of 25 arcsec@mymath{^2}.
You can check the value with the command below, but the great thing is that
now you have both of the surface brightness limiting magnitude in the headers
discussed above, and the upper-limit surface brightness within the table.
You can also add more profiles with different shapes and sizes if necessary.
-Of course, you can also use @option{--upperlimitsb} in your actual science
objects and clumps to get an object-specific or clump-specific value.
+Of course, you can also use @option{--upperlimit-sb} in your actual science
objects and clumps to get an object-specific or clump-specific value.
@example
$ asttable sbl.fits -cUPPERLIMIT_SB
@@ -5747,7 +5758,7 @@ astmkcatalog lab.fits -h1 --zeropoint=$zeropoint
-osbl.fits \
--valuesfile=r_detected.fits --valueshdu=INPUT-NO-SKY \
--upmaskfile=r_detected.fits --upmaskhdu=DETECTIONS \
--upnsigma=3 --checkuplim=1 --upnum=1000 \
- --ids --upperlimitsb --envseed
+ --ids --upperlimit-sb --envseed
@end example
But where do all the random apertures of the upper-limit measurement fall on
the image?
@@ -5797,7 +5808,7 @@ We will first run MakeCatalog to find the area of all the
labels, then we will u
@example
# Run MakeCatalog to find the area of each label.
-$ astmkcatalog labeled.fits --ids --geoarea -h1 -ocat.fits
+$ astmkcatalog labeled.fits --ids --geo-area -h1 -ocat.fits
## Sort the table by the area column.
$ asttable cat.fits --sort=AREA_FULL
@@ -5879,8 +5890,7 @@ Fortunately doing this is very easy with Gnuastro's
MakeCatalog:
@example
$ astmkcatalog edge.fits -h1 --valuesfile=r_detected.fits \
- --zeropoint=22.5 --ids --surfacebrightness --sn \
- --magnitude
+ --zeropoint=22.5 --ids --sb --sn --magnitude
$ asttable edge_cat.fits
1 25.6971 55.2406 15.8994
@end example
@@ -6438,11 +6448,11 @@ $ rm label/67510-masked-sat.fits label/67510-nc.fits \
@noindent
You can now simply run MakeCatalog on this image and be sure that saturated
pixels will not affect the measurements.
-As one example, you can use MakeCatalog to find the clumps containing
saturated pixels: recall that the @option{--area} column only calculates the
area of non-blank pixels, while @option{--geoarea} calculates the area of the
label (independent of their blank-ness in the values image):
+As one example, you can use MakeCatalog to find the clumps containing
saturated pixels: recall that the @option{--area} column only calculates the
area of non-blank pixels, while @option{--geo-area} calculates the area of the
label (independent of their blank-ness in the values image):
@example
-$ astmkcatalog label/67510-seg.fits --ids --ra --dec --area --geoarea \
- --clumpscat --output=cat.fits
+$ astmkcatalog label/67510-seg.fits --ids --ra --dec --area \
+ --geo-area --clumpscat --output=cat.fits
@end example
The information of the clumps that have been affected by saturation can easily
be found by selecting those with a differing value in the @code{AREA} and
@code{AREA_FULL} columns:
@@ -24338,6 +24348,7 @@ For those who feel MakeCatalog's existing
measurements/columns are not enough an
* Quantifying measurement limits:: For comparing different catalogs.
* Measuring elliptical parameters:: Estimating elliptical parameters.
* Adding new columns to MakeCatalog:: How to add new columns.
+* MakeCatalog measurements:: List of all the measurements/columns by
MakeCatalog.
* Invoking astmkcatalog:: Options and arguments to MakeCatalog.
@end menu
@@ -24932,7 +24943,7 @@ When the object cannot be represented as an ellipse,
this interpretation breaks
-@node Adding new columns to MakeCatalog, Invoking astmkcatalog, Measuring
elliptical parameters, MakeCatalog
+@node Adding new columns to MakeCatalog, MakeCatalog measurements, Measuring
elliptical parameters, MakeCatalog
@subsection Adding new columns to MakeCatalog
MakeCatalog is designed to allow easy addition of different measurements over
a labeled image (see @url{https://arxiv.org/abs/1611.06387v1, Akhlaghi [2016]}).
@@ -24999,511 +25010,266 @@ Update this manual and add a description for the
new column.
+@node MakeCatalog measurements, Invoking astmkcatalog, Adding new columns to
MakeCatalog, MakeCatalog
+@subsection MakeCatalog measurements
-@node Invoking astmkcatalog, , Adding new columns to MakeCatalog, MakeCatalog
-@subsection Invoking MakeCatalog
+MakeCatalog's output measurements/columns can be specified using command-line
options (@ref{Options}).
+The current measurements in MakeCatalog are those which only produce one final
value for each label (for example, its magnitude: a single number).
+All the different label's measurements can be written as one column in a final
table/catalog that contains other columns for other similar single-number
measurements.
-MakeCatalog will do measurements and produce a catalog from a labeled dataset
and optional values dataset(s).
-The executable name is @file{astmkcatalog} with the following general template
+In this case, all the different label's measurements can be written as one
column in a final table/catalog that contains other columns for other similar
single-number measurements.
+The majority of this section is devoted to MakeCatalog's single-valued
measurements.
+However, MakeCatalog can also do measurements that produce more than one value
for each label.
+Currently the only such measurement is generation of spectra from 3D cubes
with the @option{--spectrum} option and it is discussed in the end of this
section.
-@example
-$ astmkcatalog [OPTION ...] InputImage.fits
-@end example
+Command-line options are used to identify which measurements you want in the
final catalog(s) and in what order.
+If any of the options below is called on the command-line or in any of the
configuration files, it will be included as a column in the output catalog.
+The order of the columns is in the same order as the options were seen by
MakeCatalog (see @ref{Configuration file precedence}).
+Some of the columns apply to both ``objects'' and ``clumps'' and some are
particular to only one of them (for the definition of ``objects'' and
``clumps'', see @ref{Segment}).
+Columns/options that are unique to one catalog (only objects, or only clumps),
are explicitly marked with [Objects] or [Clumps] to specify the catalog they
will be placed in.
-@noindent
-One line examples:
+@menu
+* Identifier columns:: Identifying labels of each row (object/clumps).
+* Position measurements in pixels:: Containing image/pixel (X/Y) measurements.
+* Position measurements in WCS:: Containing WCS (for example RA/Dec)
measurements.
+* Brightness measurements:: Using pixel values of each label.
+* Surface brightness measurements:: Various ways to measure surface
brightness.
+* Morphology measurements nonparametric:: Non-parametric morphology.
+* Morphology measurements elliptical:: Elliptical morphology measurements.
+* Spectra measurement in a cube:: How to get the value of a label across all
slices.
+@end menu
-@example
-## Create catalog with RA, Dec, Magnitude and Magnitude error,
-## from Segment's output:
-$ astmkcatalog --ra --dec --magnitude --magnitudeerr seg-out.fits
+@node Identifier columns, Position measurements in pixels, MakeCatalog
measurements, MakeCatalog measurements
+@subsubsection Identifier columns
-## Same catalog as above (using short options):
-$ asmkcatalog -rdmG seg-out.fits
+The identifier of each row (group of measurements) is usually the first thing
you will be requesting from MakeCatalog.
+Without the identifier, it is not clear which measurement corresponds to which
label for the input.
-## Write the catalog to a text table:
-$ astmkcatalog -mpQ seg-out.fits --output=cat.txt
+Since MakeCatalog can also optionally take sub-structure label (clumps; see
@ref{Segment}), there are various identifiers in general that are listed below.
+The most generic (and shortest and easiest to type!) is the @option{--ids}
option which can be used in object-only or object-clump catalogs.
-## Output columns specified in `columns.conf':
-$ astmkcatalog --config=columns.conf seg-out.fits
+@table @option
+@item --i
+@itemx --ids
+This is a unique option which can add multiple columns to the final catalog(s).
+Calling this option will put the object IDs (@option{--obj-id}) in the objects
catalog and host-object-ID (@option{--host-obj-id}) and ID-in-host-object
(@option{--id-in-host-obj}) into the clumps catalog.
+Hence if only object catalogs are required, it has the same effect as
@option{--obj-id}.
-## Use object and clump labels from a K-band image, but pixel values
-## from an i-band image.
-$ astmkcatalog K_segmented.fits --hdu=DETECTIONS --clumpscat \
- --clumpsfile=K_segmented.fits --clumpshdu=CLUMPS \
- --valuesfile=i_band.fits
-@end example
+@item --obj-id
+[Objects] ID of this object.
-@cindex Gaussian
-@noindent
-If MakeCatalog is to do processing (not printing help or option values), an
input labeled image should be provided.
-The options described in this section are those that are particular to
MakeProfiles.
-For operations that MakeProfiles shares with other programs (mainly involving
input/output or general processing steps), see @ref{Common options}.
-Also see @ref{Common program behavior} for some general characteristics of all
Gnuastro programs including MakeCatalog.
+@item -j
+@itemx --host-obj-id
+[Clumps] The ID of the object which hosts this clump.
-The various measurements/columns of MakeCatalog are requested as options,
either on the command-line or in configuration files, see @ref{Configuration
files}.
-The full list of available columns is available in @ref{MakeCatalog
measurements}.
-Depending on the requested columns, MakeCatalog needs more than one input
dataset, for more details, please see @ref{MakeCatalog inputs and basic
settings}.
-The upper-limit measurements in particular need several configuration options
which are thoroughly discussed in @ref{Upper-limit settings}.
-Finally, in @ref{MakeCatalog output} the output file(s) created by MakeCatalog
are discussed.
+@item --id-in-host-obj
+[Clumps] The ID of this clump in its host object.
+@end table
-@menu
-* MakeCatalog inputs and basic settings:: Input files and basic settings.
-* Upper-limit settings:: Settings for upper-limit measurements.
-* MakeCatalog measurements:: Available measurements in MakeCatalog.
-* MakeCatalog output:: File names of MakeCatalog's output table.
-@end menu
+@node Position measurements in pixels, Position measurements in WCS,
Identifier columns, MakeCatalog measurements
+@subsubsection Position measurements in pixels
-@node MakeCatalog inputs and basic settings, Upper-limit settings, Invoking
astmkcatalog, Invoking astmkcatalog
-@subsubsection MakeCatalog inputs and basic settings
+The position of a labeled region within your input dataset (in its own units)
can be measured with the options in this section.
+By ``in its own units'' we mean pixels in a 2D image or voxels in a 3D cube.
+For example if the flux-weighted center of a label lies 123 pixels on the
horizontal and 456 pixels on the vertical, the @option{--x} and @option{--y}
options will put a value of 123 and 456 in their respective columns.
+As you see below, there are various ways to define the ``position'' of an
object, so read the differences carefully to choose the one that corresponds
best to your usage.
-MakeCatalog works by using a localized/labeled dataset (see @ref{MakeCatalog}).
-This dataset maps/labels pixels to a specific target (row number in the final
catalog) and is thus the only necessary input dataset to produce a minimal
catalog in any situation.
-Because it only has labels/counters, it must have an integer type (see
@ref{Numeric data types}), see below if your labels are in a floating point
container.
-When the requested measurements only need this dataset (for example,
@option{--geox}, @option{--geoy}, or @option{--geoarea}), MakeCatalog will not
read any more datasets.
+@table @option
+@item -x
+@itemx --x
+The flux weighted center of all objects and clumps along the first FITS axis
(horizontal when viewed in SAO DS9), see @mymath{\overline{x}} in
@ref{Measuring elliptical parameters}.
+The weight has to have a positive value (pixel value larger than the Sky
value) to be meaningful! Specially when doing matched photometry, this might
not happen: no pixel value might be above the Sky value.
+For such detections, the geometric center will be reported in this column (see
@option{--geo-x}).
+You can use @option{--weight-area} to see which was used.
-Low-level measurements that only use the labeled image are rarely sufficient
for any high-level science case.
-Therefore necessary input datasets depend on the requested columns in each run.
-For example, let's assume you want the brightness/magnitude and
signal-to-noise ratio of your labeled regions.
-For these columns, you will also need to provide an extra dataset containing
values for every pixel of the labeled input (to measure magnitude) and another
for the Sky standard deviation (to measure error).
-All such auxiliary input files have to have the same size (number of pixels in
each dimension) as the input labeled image.
-Their numeric data type is irrelevant (they will be converted to 32-bit
floating point internally).
-For the full list of available measurements, see @ref{MakeCatalog
measurements}.
+@item -y
+@itemx --y
+The flux weighted center of all objects and clumps along the second FITS axis
(vertical when viewed in SAO DS9).
+See @option{--x}.
-The ``values'' dataset is used for measurements like brightness/magnitude, or
flux-weighted positions.
-If it is a real image, by default it is assumed to be already Sky-subtracted
prior to running MakeCatalog.
-If it is not, you use the @option{--subtractsky} option to, so MakeCatalog
reads and subtracts the Sky dataset before any processing.
-To obtain the Sky value, you can use the @option{--sky} option of
@ref{Statistics}, but the best recommended method is @ref{NoiseChisel}, see
@ref{Sky value}.
+@item -z
+@itemx --z
+The flux weighted center of all objects and clumps along the third FITS
+axis. See @option{--x}.
-MakeCatalog can also do measurements on sub-structures of detections.
-In other words, it can produce two catalogs.
-Following the nomenclature of Segment (see @ref{Segment}), the main labeled
input dataset is known as ``object'' labels and the (optional) sub-structure
input dataset is known as ``clumps''.
-If MakeCatalog is run with the @option{--clumpscat} option, it will also need
a labeled image containing clumps, similar to what Segment produces (see
@ref{Segment output}).
-Since clumps are defined within detected regions (they exist over signal, not
noise), MakeCatalog uses their boundaries to subtract the level of signal under
them.
+@item --geo-x
+The geometric center of all objects and clumps along the first FITS axis axis.
+The geometric center is the average pixel positions irrespective of their
pixel values.
-There are separate options to explicitly request a file name and HDU/extension
for each of the required input datasets as fully described below (with the
@option{--*file} format).
-When each dataset is in a separate file, these options are necessary.
-However, one great advantage of the FITS file format (that is heavily used in
astronomy) is that it allows the storage of multiple datasets in one file.
-So in most situations (for example, if you are using the outputs of
@ref{NoiseChisel} or @ref{Segment}), all the necessary input datasets can be in
one file.
+@item --geo-y
+The geometric center of all objects and clumps along the second FITS axis
axis, see @option{--geo-x}.
-When none of the @option{--*file} options are given, MakeCatalog will assume
the necessary input datasets are in the file given as its argument (without any
option).
-When the Sky or Sky standard deviation datasets are necessary and the only
@option{--*file} option called is @option{--valuesfile}, MakeCatalog will
search for these datasets (with the default/given HDUs) in the file given to
@option{--valuesfile} (before looking into the main argument file).
+@item --geo-z
+The geometric center of all objects and clumps along the third FITS axis axis,
see @option{--geo-x}.
-When the clumps image (necessary with the @option{--clumpscat} option) is
used, MakeCatalog looks into the (possibly existing) @code{NUMLABS} keyword for
the total number of clumps in the image (irrespective of how many objects there
are).
-If it is not present, it will count them and possibly re-label the clumps so
the clump labels always start with 1 and finish with the total number of clumps
in each object.
-The re-labeled clumps image will be stored with the @file{-clumps-relab.fits}
suffix.
-This can slightly slow-down the run.
+@item --min-val-x
+Position of pixel with minimum value in objects and clumps, along the first
FITS axis.
-Note that @code{NUMLABS} is automatically written by Segment in its outputs,
so if you are feeding Segment's clump labels, you can benefit from the improved
speed.
-Otherwise, if you are creating the clumps label dataset manually, it may be
good to include the @code{NUMLABS} keyword in its header and also be sure that
there is no gap in the clump labels.
-For example, if an object has three clumps, they are labeled as 1, 2, 3.
-If they are labeled as 1, 3, 4, or any other combination of three positive
integers that are not an increment of the previous, you might get unknown
behavior.
+@item --max-val-x
+Position of pixel with maximum value in objects and clumps, along the first
FITS axis.
-It may happen that your labeled objects image was created with a program that
only outputs floating point files.
-However, you know it only has integer valued pixels that are stored in a
floating point container.
-In such cases, you can use Gnuastro's Arithmetic program (see
@ref{Arithmetic}) to change the numerical data type of the image
(@file{float.fits}) to an integer type image (@file{int.fits}) with a command
like below:
+@item --min-val-y
+Position of pixel with minimum value in objects and clumps, along the first
FITS axis.
-@example
-@command{$ astarithmetic float.fits int32 --output=int.fits}
-@end example
+@item --max-val-y
+Position of pixel with maximum value in objects and clumps, along the first
FITS axis.
-To summarize: if the input file to MakeCatalog is the default/full output of
Segment (see @ref{Segment output}) you do not have to worry about any of the
@option{--*file} options below.
-You can just give Segment's output file to MakeCatalog as described in
@ref{Invoking astmkcatalog}.
-To feed NoiseChisel's output into MakeCatalog, just change the labeled
dataset's header (with @option{--hdu=DETECTIONS}).
-The full list of input dataset options and general setting options are
described below.
+@item --min-val-z
+Position of pixel with minimum value in objects and clumps, along the first
FITS axis.
-@table @option
+@item --max-val-z
+Position of pixel with maximum value in objects and clumps, along the first
FITS axis.
-@item -l FITS
-@itemx --clumpsfile=FITS
-The FITS file containing the labeled clumps dataset when @option{--clumpscat}
is called (see @ref{MakeCatalog output}).
-When @option{--clumpscat} is called, but this option is not, MakeCatalog will
look into the main input file (given as an argument) for the required
extension/HDU (value to @option{--clumpshdu}).
+@item --min-x
+The minimum position of all objects and clumps along the first FITS axis.
-@item --clumpshdu=STR
-The HDU/extension of the clump labels dataset.
-Only pixels with values above zero will be considered.
-The clump labels dataset has to be an integer data type (see @ref{Numeric data
types}) and only pixels with a value larger than zero will be used.
-See @ref{Segment output} for a description of the expected format.
+@item --max-x
+The maximum position of all objects and clumps along the first FITS axis.
-@item -v FITS
-@itemx --valuesfile=FITS
-The file name of the (sky-subtracted) values dataset.
-When any of the columns need values to associate with the input labels (for
example, to measure the sum of pixel values or magnitude of a galaxy, see
@ref{Brightness flux magnitude}), MakeCatalog will look into a ``values'' for
the respective pixel values.
-In most common processing, this is the actual astronomical image that the
labels were defined, or detected, over.
-The HDU/extension of this dataset in the given file can be specified with
@option{--valueshdu}.
-If this option is not called, MakeCatalog will look for the given extension in
the main input file.
+@item --min-y
+The minimum position of all objects and clumps along the second FITS axis.
-@item --valueshdu=STR/INT
-The name or number (counting from zero) of the extension containing the
``values'' dataset, see the descriptions above and those in
@option{--valuesfile} for more.
+@item --max-y
+The maximum position of all objects and clumps along the second FITS axis.
-@item -s FITS/FLT
-@itemx --insky=FITS/FLT
-Sky value as a single number, or the file name containing a dataset (different
values per pixel or tile).
-The Sky dataset is only necessary when @option{--subtractsky} is called or
when a column directly related to the Sky value is requested (currently
@option{--sky}).
-This dataset may be a tessellation, with one element per tile (see
@option{--oneelempertile} of NoiseChisel's @ref{Processing options}).
+@item --min-z
+The minimum position of all objects and clumps along the third FITS axis.
-When the Sky dataset is necessary but this option is not called, MakeCatalog
will assume it is an HDU/extension (specified by @option{--skyhdu}) in one of
the already given files.
-First it will look for it in the @option{--valuesfile} (if it is given) and
then the main input file (given as an argument).
+@item --max-z
+The maximum position of all objects and clumps along the third FITS axis.
-By default the values dataset is assumed to be already Sky subtracted, so
-this dataset is not necessary for many of the columns.
+@item --clumps-x
+[Objects] The flux weighted center of all the clumps in this object along the
first FITS axis.
+See @option{--x}.
-@item --skyhdu=STR
-HDU/extension of the Sky dataset, see @option{--skyfile}.
+@item --clumps-y
+[Objects] The flux weighted center of all the clumps in this object along the
second FITS axis.
+See @option{--x}.
-@item --subtractsky
-Subtract the sky value or dataset from the values file prior to any
-processing.
+@item --clumps-z
+[Objects] The flux weighted center of all the clumps in this object along the
third FITS axis.
+See @option{--x}.
-@item -t STR/FLT
-@itemx --instd=STR/FLT
-Sky standard deviation value as a single number, or the file name containing a
dataset (different values per pixel or tile).
-With the @option{--variance} option you can tell MakeCatalog to interpret this
value/dataset as a variance image, not standard deviation.
+@item --clumps-geo-x
+[Objects] The geometric center of all the clumps in this object along the
first FITS axis.
+See @option{--geo-x}.
-@strong{Important note:} This must only be the SKY standard deviation or
variance (not including the signal's contribution to the error).
-In other words, the final standard deviation of a pixel depends on how much
signal there is in it.
-MakeCatalog will find the amount of signal within each pixel (while
subtracting the Sky, if @option{--subtractsky} is called) and account for the
extra error due to it's value (signal).
-Therefore if the input standard deviation (or variance) image also contains
the contribution of signal to the error, then the final error measurements will
be over-estimated.
+@item --clumps-geo-y
+[Objects] The geometric center of all the clumps in this object along the
second FITS axis.
+See @option{--geo-x}.
-@item --stdhdu=STR
-The HDU of the Sky value standard deviation image.
+@item --clumps-geo-z
+[Objects] The geometric center of all the clumps in this object along
+the third FITS axis. See @option{--geo-z}.
+@end table
-@item --variance
-The dataset given to @option{--instd} (and @option{--stdhdu} has the Sky
variance of every pixel, not the Sky standard deviation.
+@node Position measurements in WCS, Brightness measurements, Position
measurements in pixels, MakeCatalog measurements
+@subsubsection Position measurements in WCS
-@item --forcereadstd
-Read the input STD image even if it is not required by any of the requested
columns.
-This is because some of the output catalog's metadata may need it, for
example, to calculate the dataset's surface brightness limit (see
@ref{Quantifying measurement limits}, configured with @option{--sfmagarea} and
@option{--sfmagnsigma} in @ref{MakeCatalog output}).
+The position of a labeled region within your input dataset (in the World
Coordinate System, or WCS) can be measured with the options in this section.
+As you see below, there are various ways to define the ``position'' of an
object, so read the differences carefully to choose the one that corresponds
best to your usage.
-Furthermore, if the input STD image does not have the @code{MEDSTD} keyword
(that is meant to contain the representative standard deviation of the full
image), with this option, the median will be calculated and used for the
surface brightness limit.
+The most common WCS coordiantes are Right Ascension (RA) and Declination in an
equatorial system.
+Therefore, to simplify their usage, we have special @option{--ra} and
@option{--dec} options.
+However, the WCS of datasets are in Galactic coordinates, so to be generic,
you can use the @option{--w1}, @option{--w2} or @option{--w3} (if you have a 3D
cube) options.
+In case your dataset's WCS is not in your desired system (for example it is
Galactic, but you want equatorial 2000), you can use the @option{--wcscoordsys}
option of Gnuastro's Fits program on the labeled image before running
MakeCatalog (see @ref{Keyword inspection and manipulation}).
-@item -z FLT
-@itemx --zeropoint=FLT
-The zero point magnitude for the input image, see @ref{Brightness flux
magnitude}.
+@table @option
+@item -r
+@itemx --ra
+Flux weighted right ascension of all objects or clumps, see @option{--x}.
+This is just an alias for one of the lower-level @option{--w1} or
@option{--w2} options.
+Using the FITS WCS keywords (@code{CTYPE}), MakeCatalog will determine which
axis corresponds to the right ascension.
+If no @code{CTYPE} keywords start with @code{RA}, an error will be printed
when requesting this column and MakeCatalog will abort.
-@item --sigmaclip FLT,FLT
-The sigma-clipping parameters when any of the sigma-clipping related columns
are requested (for example, @option{--sigclip-median} or
@option{--sigclip-number}).
+@item -d
+@itemx --dec
+Flux weighted declination of all objects or clumps, see @option{--x}.
+This is just an alias for one of the lower-level @option{--w1} or
@option{--w2} options.
+Using the FITS WCS keywords (@code{CTYPE}), MakeCatalog will determine which
axis corresponds to the declination.
+If no @code{CTYPE} keywords start with @code{DEC}, an error will be printed
when requesting this column and MakeCatalog will abort.
-This option takes two values: the first is the multiple of @mymath{\sigma},
and the second is the termination criteria.
-If the latter is larger than 1, it is read as an integer number and will be
the number of times to clip.
-If it is smaller than 1, it is interpreted as the tolerance level to stop
clipping.
-See @ref{Sigma clipping} for a complete explanation.
+@item --w1
+Flux weighted first WCS axis of all objects or clumps, see @option{--x}.
+The first WCS axis is commonly used as right ascension in images.
-@item --fracmax=FLT[,FLT]
-The fractions (one or two) of maximum value in objects or clumps to be used in
the related columns, for example, @option{--fracmaxarea1},
@option{--fracmaxsum1} or @option{--fracmaxradius1}, see @ref{MakeCatalog
measurements}.
-For the maximum value, see the description of @option{--maximum} column below.
-The value(s) of this option must be larger than 0 and smaller than 1 (they are
a fraction).
-When only @option{--fracmaxarea1} or @option{--fracmaxsum1} is requested, one
value must be given to this option, but if @option{--fracmaxarea2} or
@option{--fracmaxsum2} are also requested, two values must be given to this
option.
-The values can be written as simple floating point numbers, or as fractions,
for example, @code{0.25,0.75} and @code{0.25,3/4} are the same.
+@item --w2
+Flux weighted second WCS axis of all objects or clumps, see @option{--x}.
+The second WCS axis is commonly used as declination in images.
-@item --spatialresolution=FLT
-The error in measuring spatial properties (for example, the area) in units of
pixels.
-You can think of this as the FWHM of the dataset's PSF and is used in
measurements like the error in surface brightness (@option{--sberror}, see
@ref{MakeCatalog measurements}).
-Ideally, images are taken in the optimal Nyquist sampling @ref{Sampling
theorem}, so the default value for this option is 2.
-But in practice real images my be over-sampled (usually ground-based images,
where you will need to increase the default value) or undersampled (some
space-based images, where you will need to decrease the default value).
-@end table
+@item --w3
+Flux weighted third WCS axis of all objects or clumps, see
+@option{--x}. The third WCS axis is commonly used as wavelength in integral
+field unit data cubes.
+@item --geo-w1
+Geometric center in first WCS axis of all objects or clumps, see
@option{--geo-x}.
+The first WCS axis is commonly used as right ascension in images.
+@item --geo-w2
+Geometric center in second WCS axis of all objects or clumps, see
@option{--geo-x}.
+The second WCS axis is commonly used as declination in images.
+@item --geo-w3
+Geometric center in third WCS axis of all objects or clumps, see
+@option{--geo-x}. The third WCS axis is commonly used as wavelength in
+integral field unit data cubes.
+@item --clumps-w1
+[Objects] Flux weighted center in first WCS axis of all clumps in this object,
see @option{--x}.
+The first WCS axis is commonly used as right ascension in images.
-@node Upper-limit settings, MakeCatalog measurements, MakeCatalog inputs and
basic settings, Invoking astmkcatalog
-@subsubsection Upper-limit settings
+@item --clumps-w2
+[Objects] Flux weighted declination of all clumps in this object, see
@option{--x}.
+The second WCS axis is commonly used as declination in images.
-The upper-limit magnitude was discussed in @ref{Quantifying measurement
limits}.
-Unlike other measured values/columns in MakeCatalog, the upper limit magnitude
needs several extra parameters which are discussed here.
-All the options specific to the upper-limit measurements start with
@option{up} for ``upper-limit''.
-The only exception is @option{--envseed} that is also present in other
programs and is general for any job requiring random number generation in
Gnuastro (see @ref{Generating random numbers}).
+@item --clumps-w3
+[Objects] Flux weighted center in third WCS axis of all clumps in this object,
see @option{--x}.
+The third WCS axis is commonly used as wavelength in integral field unit data
cubes.
-@cindex Reproducibility
-One very important consideration in Gnuastro is reproducibility.
-Therefore, the values to all of these parameters along with others (like the
random number generator type and seed) are also reported in the comments of the
final catalog when the upper limit magnitude column is desired.
-The random seed that is used to define the random positions for each object or
clump is unique and set based on the (optionally) given seed, the total number
of objects and clumps and also the labels of the clumps and objects.
-So with identical inputs, an identical upper-limit magnitude will be found.
-However, even if the seed is identical, when the ordering of the object/clump
labels differs between different runs, the result of upper-limit measurements
will not be identical.
+@item --clumps-geo-w1
+[Objects] Geometric center right ascension of all clumps in this object, see
@option{--geo-x}.
+The first WCS axis is commonly used as right ascension in images.
-MakeCatalog will randomly place the object/clump footprint over the dataset.
-When the randomly placed footprint does not fall on any object or masked
region (see @option{--upmaskfile}) it will be used in the final distribution.
-Otherwise that particular random position will be ignored and another random
position will be generated.
-Finally, when the distribution has the desired number of successfully measured
random samples (@option{--upnum}) the distribution's properties will be
measured and placed in the catalog.
-
-When the profile is very large or the image is significantly covered by
detections, it might not be possible to find the desired number of samplings in
a reasonable time.
-MakeProfiles will continue searching until it is unable to find a successful
position (since the last successful measurement@footnote{The counting of failed
positions restarts on every successful measurement.}), for a large multiple of
@option{--upnum} (currently@footnote{In Gnuastro's source, this constant number
is defined as the @code{MKCATALOG_UPPERLIMIT_MAXFAILS_MULTIP} macro in
@file{bin/mkcatalog/main.h}, see @ref{Downloading the source}.} this is 10).
-If @option{--upnum} successful samples cannot be found until this limit is
reached, MakeCatalog will set the upper-limit magnitude for that object to NaN
(blank).
-
-MakeCatalog will also print a warning if the range of positions available for
the labeled region is smaller than double the size of the region.
-In such cases, the limited range of random positions can artificially decrease
the standard deviation of the final distribution.
-If your dataset can allow it (it is large enough), it is recommended to use a
larger range if you see such warnings.
-
-@table @option
-
-@item --upmaskfile=FITS
-File name of mask image to use for upper-limit calculation.
-In some cases (especially when doing matched photometry), the object labels
specified in the main input and mask image might not be adequate.
-In other words they do not necessarily have to cover @emph{all} detected
objects: the user might have selected only a few of the objects in their
labeled image.
-This option can be used to ignore regions in the image in these situations
when estimating the upper-limit magnitude.
-All the non-zero pixels of the image specified by this option (in the
@option{--upmaskhdu} extension) will be ignored in the upper-limit magnitude
measurements.
-
-For example, when you are using labels from another image, you can give
NoiseChisel's objects image output for this image as the value to this option.
-In this way, you can be sure that regions with data do not harm your
distribution.
-See @ref{Quantifying measurement limits} for more on the upper limit magnitude.
-
-@item --upmaskhdu=STR
-The extension in the file specified by @option{--upmask}.
-
-@item --upnum=INT
-The number of random samples to take for all the objects.
-A larger value to this option will give a more accurate result
(asymptotically), but it will also slow down the process.
-When a randomly positioned sample overlaps with a detected/masked pixel it is
not counted and another random position is found until the object completely
lies over an undetected region.
-So you can be sure that for each object, this many samples over undetected
objects are made.
-See the upper limit magnitude discussion in @ref{Quantifying measurement
limits} for more.
-
-@item --uprange=INT,INT
-The range/width of the region (in pixels) to do random sampling along each
dimension of the input image around each object's position.
-This is not a mandatory option and if not given (or given a value of zero in a
dimension), the full possible range of the dataset along that dimension will be
used.
-This is useful when the noise properties of the dataset vary gradually.
-In such cases, using the full range of the input dataset is going to bias the
result.
-However, note that decreasing the range of available positions too much will
also artificially decrease the standard deviation of the final distribution
(and thus bias the upper-limit measurement).
-
-@item --envseed
-@cindex Seed, Random number generator
-@cindex Random number generator, Seed
-Read the random number generator type and seed value from the environment (see
@ref{Generating random numbers}).
-Random numbers are used in calculating the random positions of different
samples of each object.
-
-@item --upsigmaclip=FLT,FLT
-The raw distribution of random values will not be used to find the upper-limit
magnitude, it will first be @mymath{\sigma}-clipped (see @ref{Sigma clipping})
to avoid outliers in the distribution (mainly the faint undetected wings of
bright/large objects in the image).
-This option takes two values: the first is the multiple of @mymath{\sigma},
and the second is the termination criteria.
-If the latter is larger than 1, it is read as an integer number and will be
the number of times to clip.
-If it is smaller than 1, it is interpreted as the tolerance level to stop
clipping. See @ref{Sigma clipping} for a complete explanation.
-
-@item --upnsigma=FLT
-The multiple of the final (@mymath{\sigma}-clipped) standard deviation (or
@mymath{\sigma}) used to measure the upper-limit sum or magnitude.
-
-@item --checkuplim=INT[,INT]
-Print a table of positions and measured values for all the full random
distribution used for one particular object or clump.
-If only one integer is given to this option, it is interpreted to be an
object's label.
-If two values are given, the first is the object label and the second is the
ID of requested clump within it.
-
-The output is a table with three columns (its type is determined with the
@option{--tableformat} option, see @ref{Input output options}).
-The first two columns are the position of the first pixel in each random
sampling of this particular object/clump.
-The third column is the measured flux over that region.
-If the region overlapped with a detection or masked pixel, then its measured
value will be a NaN (not-a-number).
-The total number of rows is thus unknown, but you can be sure that the number
of rows with non-NaN measurements is the number given to the @option{--upnum}
option.
-
-@end table
-
-
-@node MakeCatalog measurements, MakeCatalog output, Upper-limit settings,
Invoking astmkcatalog
-@subsubsection MakeCatalog measurements
-
-The final group of options particular to MakeCatalog are those that specify
which measurements/columns should be written into the final output table.
-The current measurements in MakeCatalog are those which only produce one final
value for each label (for example, its magnitude: a single number).
-All the different label's measurements can be written as one column in a final
table/catalog that contains other columns for other similar single-number
measurements.
-
-In this case, all the different label's measurements can be written as one
column in a final table/catalog that contains other columns for other similar
single-number measurements.
-The majority of this section is devoted to MakeCatalog's single-valued
measurements.
-However, MakeCatalog can also do measurements that produce more than one value
for each label.
-Currently the only such measurement is generation of spectra from 3D cubes
with the @option{--spectrum} option and it is discussed in the end of this
section.
-
-Command-line options are used to identify which measurements you want in the
final catalog(s) and in what order.
-If any of the options below is called on the command-line or in any of the
configuration files, it will be included as a column in the output catalog.
-The order of the columns is in the same order as the options were seen by
MakeCatalog (see @ref{Configuration file precedence}).
-Some of the columns apply to both ``objects'' and ``clumps'' and some are
particular to only one of them (for the definition of ``objects'' and
``clumps'', see @ref{Segment}).
-Columns/options that are unique to one catalog (only objects, or only clumps),
are explicitly marked with [Objects] or [Clumps] to specify the catalog they
will be placed in.
-
-@table @option
-
-@item --i
-@itemx --ids
-This is a unique option which can add multiple columns to the final catalog(s).
-Calling this option will put the object IDs (@option{--objid}) in the objects
catalog and host-object-ID (@option{--hostobjid}) and ID-in-host-object
(@option{--idinhostobj}) into the clumps catalog.
-Hence if only object catalogs are required, it has the same effect as
@option{--objid}.
-
-@item --objid
-[Objects] ID of this object.
-
-@item -j
-@itemx --hostobjid
-[Clumps] The ID of the object which hosts this clump.
-
-@item --idinhostobj
-[Clumps] The ID of this clump in its host object.
-
-@item -x
-@itemx --x
-The flux weighted center of all objects and clumps along the first FITS axis
(horizontal when viewed in SAO DS9), see @mymath{\overline{x}} in
@ref{Measuring elliptical parameters}.
-The weight has to have a positive value (pixel value larger than the Sky
value) to be meaningful! Specially when doing matched photometry, this might
not happen: no pixel value might be above the Sky value.
-For such detections, the geometric center will be reported in this column (see
@option{--geox}).
-You can use @option{--weightarea} to see which was used.
-
-@item -y
-@itemx --y
-The flux weighted center of all objects and clumps along the second FITS axis
(vertical when viewed in SAO DS9).
-See @option{--x}.
-
-@item -z
-@itemx --z
-The flux weighted center of all objects and clumps along the third FITS
-axis. See @option{--x}.
-
-@item --geox
-The geometric center of all objects and clumps along the first FITS axis axis.
-The geometric center is the average pixel positions irrespective of their
pixel values.
-
-@item --geoy
-The geometric center of all objects and clumps along the second FITS axis
axis, see @option{--geox}.
-
-@item --geoz
-The geometric center of all objects and clumps along the third FITS axis axis,
see @option{--geox}.
-
-@item --minvx
-Position of pixel with minimum value in objects and clumps, along the first
FITS axis.
-
-@item --maxvx
-Position of pixel with maximum value in objects and clumps, along the first
FITS axis.
-
-@item --minvy
-Position of pixel with minimum value in objects and clumps, along the first
FITS axis.
-
-@item --maxvy
-Position of pixel with maximum value in objects and clumps, along the first
FITS axis.
-
-@item --minvz
-Position of pixel with minimum value in objects and clumps, along the first
FITS axis.
-
-@item --maxvz
-Position of pixel with maximum value in objects and clumps, along the first
FITS axis.
-
-@item --minx
-The minimum position of all objects and clumps along the first FITS axis.
-
-@item --maxx
-The maximum position of all objects and clumps along the first FITS axis.
-
-@item --miny
-The minimum position of all objects and clumps along the second FITS axis.
-
-@item --maxy
-The maximum position of all objects and clumps along the second FITS axis.
-
-@item --minz
-The minimum position of all objects and clumps along the third FITS axis.
-
-@item --maxz
-The maximum position of all objects and clumps along the third FITS axis.
-
-@item --clumpsx
-[Objects] The flux weighted center of all the clumps in this object along the
first FITS axis.
-See @option{--x}.
-
-@item --clumpsy
-[Objects] The flux weighted center of all the clumps in this object along the
second FITS axis.
-See @option{--x}.
-
-@item --clumpsz
-[Objects] The flux weighted center of all the clumps in this object along the
third FITS axis.
-See @option{--x}.
-
-@item --clumpsgeox
-[Objects] The geometric center of all the clumps in this object along the
first FITS axis.
-See @option{--geox}.
-
-@item --clumpsgeoy
-[Objects] The geometric center of all the clumps in this object along the
second FITS axis.
-See @option{--geox}.
-
-@item --clumpsgeoz
-[Objects] The geometric center of all the clumps in this object along
-the third FITS axis. See @option{--geoz}.
-
-@item -r
-@itemx --ra
-Flux weighted right ascension of all objects or clumps, see @option{--x}.
-This is just an alias for one of the lower-level @option{--w1} or
@option{--w2} options.
-Using the FITS WCS keywords (@code{CTYPE}), MakeCatalog will determine which
axis corresponds to the right ascension.
-If no @code{CTYPE} keywords start with @code{RA}, an error will be printed
when requesting this column and MakeCatalog will abort.
-
-@item -d
-@itemx --dec
-Flux weighted declination of all objects or clumps, see @option{--x}.
-This is just an alias for one of the lower-level @option{--w1} or
@option{--w2} options.
-Using the FITS WCS keywords (@code{CTYPE}), MakeCatalog will determine which
axis corresponds to the declination.
-If no @code{CTYPE} keywords start with @code{DEC}, an error will be printed
when requesting this column and MakeCatalog will abort.
-
-@item --w1
-Flux weighted first WCS axis of all objects or clumps, see @option{--x}.
-The first WCS axis is commonly used as right ascension in images.
-
-@item --w2
-Flux weighted second WCS axis of all objects or clumps, see @option{--x}.
-The second WCS axis is commonly used as declination in images.
-
-@item --w3
-Flux weighted third WCS axis of all objects or clumps, see
-@option{--x}. The third WCS axis is commonly used as wavelength in integral
-field unit data cubes.
-
-@item --geow1
-Geometric center in first WCS axis of all objects or clumps, see
@option{--geox}.
-The first WCS axis is commonly used as right ascension in images.
-
-@item --geow2
-Geometric center in second WCS axis of all objects or clumps, see
@option{--geox}.
-The second WCS axis is commonly used as declination in images.
-
-@item --geow3
-Geometric center in third WCS axis of all objects or clumps, see
-@option{--geox}. The third WCS axis is commonly used as wavelength in
-integral field unit data cubes.
-
-@item --clumpsw1
-[Objects] Flux weighted center in first WCS axis of all clumps in this object,
see @option{--x}.
-The first WCS axis is commonly used as right ascension in images.
-
-@item --clumpsw2
-[Objects] Flux weighted declination of all clumps in this object, see
@option{--x}.
+@item --clumps-geo-w2
+[Objects] Geometric center declination of all clumps in this object, see
@option{--geo-x}.
The second WCS axis is commonly used as declination in images.
-@item --clumpsw3
-[Objects] Flux weighted center in third WCS axis of all clumps in this object,
see @option{--x}.
+@item --clumps-geo-w3
+[Objects] Geometric center in third WCS axis of all clumps in this object, see
@option{--geo-x}.
The third WCS axis is commonly used as wavelength in integral field unit data
cubes.
+@end table
-@item --clumpsgeow1
-[Objects] Geometric center right ascension of all clumps in this object, see
@option{--geox}.
-The first WCS axis is commonly used as right ascension in images.
-
-@item --clumpsgeow2
-[Objects] Geometric center declination of all clumps in this object, see
@option{--geox}.
-The second WCS axis is commonly used as declination in images.
+@node Brightness measurements, Surface brightness measurements, Position
measurements in WCS, MakeCatalog measurements
+@subsubsection Brightness measurements
-@item --clumpsgeow3
-[Objects] Geometric center in third WCS axis of all clumps in this object,
-see @option{--geox}. The third WCS axis is commonly used as wavelength in
-integral field unit data cubes.
+Within an image, pixels have both a position and a value.
+In the sections above all the measurements involved position (see
@ref{Position measurements in pixels} or @ref{Position measurements in WCS}).
+The measurements in this section only deal with pixel values and ignore the
pixel positions completely.
+In other words, for the options of this section each labeled region within the
input is just a group of values (and their associated error values if
necessary), and they let you do various types of measurements on the resulting
distribution of values.
-@item -b
-@itemx --sum
+@table @option
+@item --sum
The sum of all pixel values associated to this label (object or clump).
Note that if a sky value or image has been given, it will be subtracted before
any column measurement.
-For clumps, the ambient values (average of river pixels around the clump,
multiplied by the area of the clump) is subtracted, see @option{--riverave}.
-So the sum of all the clump-sums in the clump catalog of one object will be
smaller than the @option{--clumpssum} column of the objects catalog.
+For clumps, the ambient values (average of river pixels around the clump,
multiplied by the area of the clump) is subtracted, see @option{--river-mean}.
+So the sum of all the clump-sums in the clump catalog of one object will be
smaller than the @option{--clumps-sum} column of the objects catalog.
If no usable pixels are present over the clump or object (for example, they
are all blank), the returned value will be NaN (note that zero is meaningful).
-@item --sumerr
+@item --sum-error
The (@mymath{1\sigma}) error in measuring the sum of values of a label
(objects or clumps).
The returned value will be NaN when the label covers only NaN pixels in the
values image, or a pixel is NaN in the @option{--instd} image, but non-NaN in
the values image.
The latter situation usually happens when there is a bug in the previous steps
of your analysis, and is important because those pixels with a NaN in the
@option{--instd} image may contribute significantly to the final error.
If you want to ignore those pixels in the error measurement, set them to zero
(which is a meaningful number in such scenarios).
-@item --clumpssum
+@item --clumps-sum
[Objects] The total sum of the clumps within an object.
This is simply the sum of the pixels associated with clumps in the object.
If no usable pixels are present over the clump or object (for example, they
are all blank), the stored value will be NaN (note that zero is meaningful).
-@item --sumnoriver
+@item --sum-no-river
[Clumps] The sum of Sky (not river) subtracted clump pixel values.
By definition, for the clumps, the average value of the rivers surrounding it
are subtracted from it for a first order accounting for contamination by
neighbors.
@@ -25544,35 +25310,11 @@ For more on sigma-clipping and how to define it, see
@option{--sigclip-number}.
The sigma-clipped standard deviation of the object of clump's pixel
distribution.
For more on sigma-clipping and how to define it, see @option{--sigclip-number}.
-@item --sigclip-mean-sb
-Surface brightness (over 1 pixel's area in arcsec@mymath{^2}) of the
sigma-clipped mean value of the pixel values distribution associated to each
label (object or clump).
-This is useful in scenarios where your labels have approximately
@emph{constant} surface brightness values @emph{after} after removing outliers:
for example in a radial profile, see @ref{Invoking astscript-radial-profile}).
-
-In other scenarios it should be used with extreme care.
-For example over the full area of a galaxy/star the pixel distribution is not
constant (or symmetric after adding noise), their pixel distributions are
inherently skewed (with fewer pixels in the center, having a very large value
and many pixels in the outer parts having lower values).
-Therefore, sigma-clipping is not meaningful for such objects!
-For more on the definition of the surface brightness, see @ref{Brightness flux
magnitude}, for more on sigma-clipping, see @ref{Sigma clipping}.
-
-The error in this magnitude can be retrieved from the
@option{--sigclip-mean-sb-error} column described below, and you can use the
@option{--sigclip-std-sb} column to find when the magnitude has become
noise-dominated (signal-to-noise ratio is roughly 1).
-See the description of these two options for more.
-
-@item --sigclip-mean-sb-err
-Error in the @option{--sigclip-mean-sb}.
-This is calculated using the equation in @ref{Surface brightness error of each
detection}, where @mymath{\Delta{A}=0} (since sigma-clip is calculated per
pixel and there is no error in a single pixel).
-Within the equation to derive @mymath{\Delta{M}} (the error in magnitude,
derived in @ref{Magnitude measurement error of each detection}), the
signal-to-noise ratio is defined by dividing the sigma-clipped mean by the
sigma-clipped standard deviation.
-
-@item --sigclip-std-sb
-The surface brightness of the sigma-clipped standard deviation.
-This can be used to find the reliable (@mymath{1\sigma}) surface brightness
for that label.
-In other words, if @option{--sigclip-mean-sb} is fainter than the value of
this column, you know that noise is becoming significant.
-However, as described in @option{--sigclip-mean-sb}, the sigma-clipped
measurements of MakeCatalog should only be used in certain situations like
radial profiles, see the description there for more.
-
@item -m
@itemx --magnitude
The magnitude of clumps or objects, see @option{--sum}.
-@item -e
-@itemx --magnitudeerr
+@item --magnitude-error
The magnitude error of clumps or objects.
The magnitude error is calculated from the signal-to-noise ratio (see
@option{--sn} and @ref{Quantifying measurement limits}).
Note that until now this error assumes uncorrelated pixel values and also does
not include the error in estimating the aperture (or error in generating the
labeled image).
@@ -25584,9 +25326,8 @@ The returned value will be NaN when the label covers
only NaN pixels in the valu
The latter situation usually happens when there is a bug in the previous steps
of your analysis, and is important because those pixels with a NaN in the
@option{--instd} image may contribute significantly to the final error.
If you want to ignore those pixels in the error measurement, set them to zero
(which is a meaningful number in such scenarios).
-
-@item --clumpsmagnitude
-[Objects] The magnitude of all clumps in this object, see @option{--clumpssum}.
+@item --clumps-magnitude
+[Objects] The magnitude of all clumps in this object, see
@option{--clumps-sum}.
@item --upperlimit
The upper limit value (in units of the input image) for this object or clump.
@@ -25594,38 +25335,34 @@ This is the sigma-clipped standard deviation of the
random distribution, multipl
See @ref{Quantifying measurement limits} and @ref{Upper-limit settings} for a
complete explanation.
This is very important for the fainter and smaller objects in the image where
the measured magnitudes are not reliable.
-@item --upperlimitmag
+@item --upperlimit-mag
The upper limit magnitude for this object or clump.
See @ref{Quantifying measurement limits} and @ref{Upper-limit settings} for a
complete explanation.
This is very important for the fainter and smaller objects in the image where
the measured magnitudes are not reliable.
-@item --upperlimitsb
-The upper-limit surface brightness (in units of mag/arcsec@mymath{^2}) of this
labeled region (object or clump).
-This is just a simple wrapper over lower-level columns: setting B and A as the
value in the columns @option{--upperlimit} and @option{--areaarcsec2}, we fill
this column by simply use the surface brightness equation of @ref{Brightness
flux magnitude}.
-
-@item --upperlimitonesigma
+@item --upperlimit-onesigma
The @mymath{1\sigma} upper limit value (in units of the input image) for this
object or clump.
See @ref{Quantifying measurement limits} and @ref{Upper-limit settings} for a
complete explanation.
When @option{--upnsigma=1}, this column's values will be the same as
@option{--upperlimit}.
-@item --upperlimitsigma
+@item --upperlimit-sigma
The position of the label's sum measured within the distribution of randomly
placed upperlimit measurements in units of the distribution's @mymath{\sigma}
or standard deviation.
See @ref{Quantifying measurement limits} and @ref{Upper-limit settings} for a
complete explanation.
-@item --upperlimitquantile
+@item --upperlimit-quantile
The position of the label's sum within the distribution of randomly placed
upperlimit measurements as a quantile (value between 0 or 1).
See @ref{Quantifying measurement limits} and @ref{Upper-limit settings} for a
complete explanation.
If the object is brighter than the brightest randomly placed profile, a value
of @code{inf} is returned.
If it is less than the minimum, a value of @code{-inf} is reported.
-@item --upperlimitskew
+@item --upperlimit-skew
@cindex Skewness
This column contains the non-parametric skew of the @mymath{\sigma}-clipped
random distribution that was used to estimate the upper-limit magnitude.
Taking @mymath{\mu} as the mean, @mymath{\nu} as the median and
@mymath{\sigma} as the standard deviation, the traditional definition of
skewness is defined as: @mymath{(\mu-\nu)/\sigma}.
This can be a good measure to see how much you can trust the random
measurements, or in other words, how accurately the regions with signal have
been masked/detected. If the skewness is strong (and to the positive), then you
can tell that you have a lot of undetected signal in the dataset, and therefore
that the upper-limit measurement (and other measurements) are not reliable.
-@item --riverave
+@item --river-mean
[Clumps] The average of the river pixel values around this clump.
River pixels were defined in Akhlaghi and Ichikawa 2015.
In short they are the pixels immediately outside of the clumps.
@@ -25634,251 +25371,590 @@ It can generally also be used as a scale to gauge
the base (ambient) flux surrou
In case there was no river pixels, then this column will have the value of the
Sky under the clump.
So note that this value is @emph{not} sky subtracted.
-@item --rivernum
+@item --river-num
[Clumps] The number of river pixels around this clump, see
-@option{--riverave}.
+@option{--river-mean}.
+
+@item --sn
+The Signal to noise ratio (S/N) of all clumps or objects.
+See Akhlaghi and Ichikawa (2015) for the exact equations used.
+
+The returned value will be NaN when the label covers only NaN pixels in the
values image, or a pixel is NaN in the @option{--instd} image, but non-NaN in
the values image.
+The latter situation usually happens when there is a bug in the previous steps
of your analysis, and is important because those pixels with a NaN in the
@option{--instd} image may contribute significantly to the final error.
+If you want to ignore those pixels in the error measurement, set them to zero
(which is a meaningful number).
+
+@item --sky
+The sky flux (per pixel) value under this object or clump.
+This is actually the mean value of all the pixels in the sky image that lie on
the same position as the object or clump.
+
+@item --sky-std
+The sky value standard deviation (per pixel) for this clump or object.
+This is the square root of the mean variance under the object, or the root
mean square.
+@end table
+
+@node Surface brightness measurements, Morphology measurements nonparametric,
Brightness measurements, MakeCatalog measurements
+@subsubsection Surface brightness measurements
+
+In astronomy, Surface brightness is most commonly measured in units of
magnitudes per arcsec@mymath{^2} (for the formal definition, see
@ref{Brightness flux magnitude}).
+Therefore it involves both the values of the pixels within each input label
(or output row) and their position.
+
+@table @option
+@item --sb
+The surface brightness (in units of mag/arcsec@mymath{^2}) of the labeled
region (objects or clumps).
+For more on the definition of the surface brightness, see @ref{Brightness flux
magnitude}.
+
+@item --sb-error
+Error in measuring the surface brightness (the @option{--sb} column).
+This column will use the value given to @option{--spatialresolution} in the
processing (in pixels).
+For more on @option{--spatialresolution}, see @ref{MakeCatalog inputs and
basic settings} and for the equation used to derive the surface brightness
error, see @ref{Surface brightness error of each detection}.
+
+@item --upperlimit-sb
+The upper-limit surface brightness (in units of mag/arcsec@mymath{^2}) of this
labeled region (object or clump).
+In other words, this option measures the surface brightness of noise within
the footprint of each input label.
+
+This is just a simple wrapper over lower-level columns: setting B and A as the
value in the columns @option{--upperlimit} and @option{--area-arcsec2}, we fill
this column by simply use the surface brightness equation of @ref{Brightness
flux magnitude}.
+
+@item --half-sum-sb
+Surface brightness (in units of mag/arcsec@mymath{^2}) within the area that
contains half the total sum of the label's pixels (object or clump).
+This is useful as a measure of the sharpness of an astronomical object: for
example a star will have very few pixels at half the maximum, so its
@option{--half-sum-sb} will be much brighter than a galaxy at the same
magnitude.
+Also consider @option{--half-max-sb} below.
+
+This column just plugs in the values of half the value of the @option{--sum}
column and the @option{--half-sum-area} column, into the surface brightness
equation.
+Therefore please see the description in @option{--half-sum-area} to understand
the systematics of this column and potential biases (see @ref{Morphology
measurements nonparametric}).
+
+@item --half-max-sb
+The surface brightness (in units of mag/arcsec@mymath{^2}) within the region
that contains half the maximum value of the labeled region.
+Like @option{--half-sum-sb} this option this is a good way to identify the
``central'' surface brightness of an object.
+To know when this measurement is reasonable, see the description of
@option{--fwhm} in @ref{Morphology measurements nonparametric}.
+
+@item --sigclip-mean-sb
+Surface brightness (over 1 pixel's area in arcsec@mymath{^2}) of the
sigma-clipped mean value of the pixel values distribution associated to each
label (object or clump).
+This is useful in scenarios where your labels have approximately
@emph{constant} surface brightness values @emph{after} after removing outliers:
for example in a radial profile, see @ref{Invoking astscript-radial-profile}).
+
+In other scenarios it should be used with extreme care.
+For example over the full area of a galaxy/star the pixel distribution is not
constant (or symmetric after adding noise), their pixel distributions are
inherently skewed (with fewer pixels in the center, having a very large value
and many pixels in the outer parts having lower values).
+Therefore, sigma-clipping is not meaningful for such objects!
+For more on the definition of the surface brightness, see @ref{Brightness flux
magnitude}, for more on sigma-clipping, see @ref{Sigma clipping}.
+
+The error in this magnitude can be retrieved from the
@option{--sigclip-mean-sb-delta} column described below, and you can use the
@option{--sigclip-std-sb} column to find when the magnitude has become
noise-dominated (signal-to-noise ratio is roughly 1).
+See the description of these two options for more.
+
+@item --sigclip-mean-sb-delta
+Scatter in the @option{--sigclip-mean-sb} without using the standard deviation
of each pixel (that is given by @option{--instd} in @ref{MakeCatalog inputs and
basic settings}).
+The scatter here is measured from the values of the label themselves.
+This measurement is therefore most meaningful when you expect the flux across
one label to be constant (as in a radial profile for example).
+
+This is calculated using the equation in @ref{Surface brightness error of each
detection}, where @mymath{\Delta{A}=0} (since sigma-clip is calculated per
pixel and there is no error in a single pixel).
+Within the equation to derive @mymath{\Delta{M}} (the error in magnitude,
derived in @ref{Magnitude measurement error of each detection}), the
signal-to-noise ratio is defined by dividing the sigma-clipped mean by the
sigma-clipped standard deviation.
+
+@item --sigclip-std-sb
+The surface brightness of the sigma-clipped standard deviation of all the
pixels with the same label.
+For labels that are expected to have the same value in all their pixels (for
example each annulus of a radial profile) this can be used to find the reliable
(@mymath{1\sigma}) surface brightness for that label.
+In other words, if @option{--sigclip-mean-sb} is fainter than the value of
this column, you know that noise is becoming significant.
+However, as described in @option{--sigclip-mean-sb}, the sigma-clipped
measurements of MakeCatalog should only be used in certain situations like
radial profiles, see the description there for more.
+@end table
+
+@node Morphology measurements nonparametric, Morphology measurements
elliptical, Surface brightness measurements, MakeCatalog measurements
+@subsubsection Morphology measurements (non-parametric)
+
+Morphology defined as a way to quantify the ``shape'' of an object in your
input image.
+This includes both the position and value of the pixels within your input
labels.
+There are many ways to define the morphology of an object.
+In this section, we will review the available non-parametric measures of
morphology.
+By non-parametric, we mean that no functional shape is assumed for the
measurement.
+
+In @ref{Morphology measurements elliptical} you can see some parametric
elliptical measurements (which are only valid when the object is actually an
ellipse).
+
+@table @option
+@item --num-clumps
+[Objects] The number of clumps in this object.
+
+@item --area
+The raw area (number of pixels/voxels) in any clump or object independent of
what pixel it lies over (if it is NaN/blank or unused for example).
+
+@item --arcsec2-area
+The used (non-blank in values image) area of the labeled region in units of
arc-seconds squared.
+This column is just the value of the @option{--area} column, multiplied by the
area of each pixel in the input image (in units of arcsec^2).
+Similar to the @option{--ra} or @option{--dec} columns, for this option to
work, the objects extension used has to have a WCS structure.
+
+@item --area-min-val
+The number of pixels that are equal to the minimum value of the labeled region
(clump or object).
+
+@item --area-max-val
+The number of pixels that are equal to the maximum value of the labeled region
(clump or object).
+
+@item --area-xy
+@cindex IFU: Integral Field Unit
+@cindex Integral Field Unit
+Similar to @option{--area}, when the clump or object is projected onto the
first two dimensions.
+This is only available for 3-dimensional datasets.
+When working with Integral Field Unit (IFU) datasets, this projection onto the
first two dimensions would be a narrow-band image.
+
+@item --fwhm
+@cindex FWHM
+The full width at half maximum (in units of pixels, along the semi-major axis)
of the labeled region (object or clump).
+The maximum value is estimated from the mean of the top-three pixels with the
highest values, see the description under @option{--maximum}.
+The number of pixels that have half the value of that maximum are then found
(value in the @option{--half-max-area} column) and a radius is estimated from
the area.
+See the description under @option{--half-sum-radius} for more on converting
area to radius along major axis.
+
+Because of its non-parametric nature, this column is most reliable on clumps
and should only be used in objects with great caution.
+This is because objects can have more than one clump (peak with true signal)
and multiple peaks are not treated separately in objects, so the result of this
column will be biased.
+
+Also, because of its non-parametric nature, this FWHM it does not account for
the PSF, and it will be strongly affected by noise if the object is
faint/diffuse
+So when half the maximum value (which can be requested using the
@option{--maximum} column) is too close to the local noise level (which can be
requested using the @option{--sky-std} column), the value returned in this
column is meaningless (its just noise peaks which are randomly distributed over
the area).
+You can therefore use the @option{--maximum} and @option{--sky-std} columns to
remove, or flag, unreliable FWHMs.
+For example, if a labeled region's maximum is less than 2 times the sky
standard deviation, the value will certainly be unreliable (half of that is
@mymath{1\sigma}!).
+For a more reliable value, this fraction should be around 4 (so half the
maximum is 2@mymath{\sigma}).
+
+@item --half-max-area
+The number of pixels with values larger than half the maximum flux within the
labeled region.
+This option is used to estimate @option{--fwhm}, so please read the notes
there for the caveats and necessary precautions.
+
+@item --half-max-radius
+The radius of region containing half the maximum flux within the labeled
region.
+This is just half the value reported by @option{--fwhm}.
+
+@item --half-max-sum
+The sum of the pixel values containing half the maximum flux within the
labeled region (or those that are counted in @option{--halfmaxarea}).
+This option uses the pixels within @option{--fwhm}, so please read the notes
there for the caveats and necessary precautions.
+
+@item --half-sum-area
+The number of pixels that contain half the object or clump's total sum of
pixels (half the value in the @option{--sum} column).
+To count this area, all the non-blank values associated with the given label
(object or clump) will be sorted and summed in order (starting from the
maximum), until the sum becomes larger than half the total sum of the label's
pixels.
+
+This option is thus good for clumps (which are defined to have a single peak
in their morphology), but for objects you should be careful: if the object
includes multiple peaks/clumps at roughly the same level, then the area
reported by this option will be distributed over all the peaks.
+
+@item --half-sum-radius
+Radius (in units of pixels) derived from the area that contains half the total
sum of the label's pixels (value reported by @option{--halfsumarea}).
+If the area is @mymath{A_h} and the axis ratio is @mymath{q}, then the value
returned in this column is @mymath{\sqrt{A_h/({\pi}q)}}.
+This option is a good measure of the concentration of the @emph{observed}
(after PSF convolution and noisy) object or clump,
+But as described below it underestimates the effective radius.
+Also, it should be used in caution with objects that may have multiple clumps.
+It is most reliable with clumps or objects that have one or zero clumps, see
the note under @option{--halfsumarea}.
+
+@cindex Ellipse area
+@cindex Area, ellipse
+Recall that in general, for an ellipse with semi-major axis @mymath{a},
semi-minor axis @mymath{b}, and axis ratio @mymath{q=b/a} the area (@mymath{A})
is @mymath{A={\pi}ab={\pi}qa^2}.
+For a circle (where @mymath{q=1}), this simplifies to the familiar
@mymath{A={\pi}a^2}.
+
+@cindex S@'ersic profile
+@cindex Effective radius
+This option should not be confused with the @emph{effective radius} for
S@'ersic profiles, commonly written as @mymath{r_e}.
+For more on the S@'ersic profile and @mymath{r_e}, please see @ref{Galaxies}.
+Therefore, when @mymath{r_e} is meaningful for the target (the target is
elliptically symmetric and can be parameterized as a S@'ersic profile),
@mymath{r_e} should be derived from fitting the profile with a S@'ersic
function which has been convolved with the PSF.
+But from the equation above, you see that this radius is derived from the raw
image's labeled values (after convolution, with no parametric profile), so this
column's value will generally be (much) smaller than @mymath{r_e}, depending on
the PSF, depth of the dataset, the morphology, or if a fraction of the profile
falls on the edge of the image.
+
+In other words, this option can only be interpreted as an effective radius if
there is no noise and no PSF and the profile within the image extends to
infinity (or a very large multiple of the effective radius) and it not near the
edge of the image.
+
+@item --frac-max1-area
+@itemx --frac-max2-area
+Number of pixels brighter than the given fraction(s) of the maximum pixel
value.
+For the maximum value, see the description of @option{--maximum} column.
+The fraction(s) are given through the @option{--frac-max} option (that can
take two values) and is described in @ref{MakeCatalog inputs and basic
settings}.
+Recall that in @option{--halfmaxarea}, the fraction is fixed to 0.5.
+Hence, added with these two columns, you can sample three parts of the profile
area.
+
+@item --frac-max1-sum
+@itemx --frac-max2-sum
+Sum of pixels brighter than the given fraction(s) of the maximum pixel value.
+For the maximum value, see the description of @option{--maximum} column below.
+The fraction(s) are given through the @option{--frac-max} option (that can
take two values) and is described in @ref{MakeCatalog inputs and basic
settings}.
+Recall that in @option{--halfmaxsum}, the fraction is fixed to 0.5.
+Hence, added with these two columns, you can sample three parts of the
profile's sum of pixels.
+
+@item --frac-max1-radius
+@itemx --frac-max2-radius
+Radius (in units of pixels) derived from the area that contains the given
fractions of the maximum valued pixel(s) of the label's pixels (value reported
by @option{--frac-max1-area} or @option{--frac-max2-area}).
+For the maximum value, see the description of @option{--maximum} column below.
+The fractions are given through the @option{--frac-max} option (that can take
two values) and is described in @ref{MakeCatalog inputs and basic settings}.
+Recall that in @option{--fwhm}, the fraction is fixed to 0.5.
+Hence, added with these two columns, you can sample three parts of the
profile's radius.
+
+@item --clumps-area
+[Objects] The total area of all the clumps in this object.
+
+@item --weight-area
+The area (number of pixels) used in the flux weighted position calculations.
+
+@item --geo-area
+The area of all the pixels labeled with an object or clump.
+Note that unlike @option{--area}, pixel values are completely ignored in this
column.
+For example, if a pixel value is blank, it will not be counted in
@option{--area}, but will be counted here.
+
+@item --geo-area-xy
+Similar to @option{--geo-area}, when the clump or object is projected onto the
first two dimensions.
+This is only available for 3-dimensional datasets.
+When working with Integral Field Unit (IFU) datasets, this projection onto the
first two dimensions would be a narrow-band image.
+@end table
+
+@node Morphology measurements elliptical, Spectra measurement in a cube,
Morphology measurements nonparametric, MakeCatalog measurements
+@subsubsection Morphology measurements (elliptical)
+
+When your target objects are sufficiently ellipse-like, you can use the
measurements below to quantify the various parameters of the ellipse.
+For details of how the elliptical parameters are measured, see @ref{Measuring
elliptical parameters}.
+For non-parametric morphological measurements, see @ref{Morphology
measurements nonparametric}.
+The measures that start with @option{--geo-*} ignore the pixel values and just
do the measurements on the label's ``geometric'' shape.
+
+@table @option
+@item --semi-major
+The pixel-value weighted root mean square (RMS) along the semi-major axis of
the profile (assuming it is an ellipse) in units of pixels.
+
+@item --semi-minor
+The pixel-value weighted root mean square (RMS) along the semi-minor axis of
the profile (assuming it is an ellipse) in units of pixels.
+
+@item --axis-ratio
+The pixel-value weighted axis ratio (semi-minor/semi-major) of the object or
clump.
+
+@item --position-angle
+The pixel-value weighted angle of the semi-major axis with the first FITS axis
in degrees.
+
+@item --geo-semi-major
+The geometric (ignoring pixel values) root mean square (RMS) along the
semi-major axis of the profile, assuming it is an ellipse, in units of pixels.
+
+@item --geo-semi-minor
+The geometric (ignoring pixel values) root mean square (RMS) along the
semi-minor axis of the profile, assuming it is an ellipse, in units of pixels.
+
+@item --geo-axis-ratio
+The geometric (ignoring pixel values) axis ratio of the profile, assuming it
is an ellipse.
+
+@item --geo-position-angle
+The geometric (ignoring pixel values) angle of the semi-major axis with the
first FITS axis in degrees.
+@end table
+
+@node Spectra measurement in a cube, , Morphology measurements elliptical,
MakeCatalog measurements
+@subsubsection Spectra measurement in a cube
+
+@cindex 3D data-cubes
+@cindex Cubes (3D data)
+@cindex IFU: Integral Field Unit
+@cindex Integral field unit (IFU)
+@cindex Spectrum (of astronomical source)
+MakeCatalog can also do multi-valued measurements per label.
+Currently the only such measurement is the creation of spectra from 3D data
cubes as discussed below:
+
+@table @option
+@item --spectrum
+Generate a spectrum (measurement along the first two FITS dimensions) for each
label when the input dataset is a 3D data cube.
+With this option, a seprate table/spectrum will be generated for every label.
+If the output is a FITS file, each label's spectrum will be written into an
extension of that file with a standard name of @code{SPECTRUM_NN} (the label
will be replaced with @code{NN}).
+If the output is a plain text file, each label's spectrum will be written into
a separate file with the suffix @file{spec-NN.txt}.
+See @ref{MakeCatalog output} for more on specifying MakeCatalog's output file.
+
+The spectra will contain one row for every slice (third FITS dimension) of the
cube.
+Since the physical nature of the third dimension is different, two types of
spectra (along with their errors) are measured:
+1) Sum of values in each slice that only have the requested label.
+2) Sum of values on the 2D projection of the whole label (the area of this
projection can be requested with the @option{--area-xy} column above).
+
+Labels can overlap when they are projected onto the first two FITS dimensions
(the spatial domain).
+To help separate them, MakeCatalog does a third measurement on each slice: the
area, sum of values and error of all pixels that belong to other labels but
overlap with the 2D projection.
+This can be used to see how reliable the emission line measurement is (on the
projected spectra) and also if multiple lines (labeled regions) belong to the
same physical object.
+@end table
+
+
+
+
+
+@node Invoking astmkcatalog, , MakeCatalog measurements, MakeCatalog
+@subsection Invoking MakeCatalog
+
+MakeCatalog will do measurements and produce a catalog from a labeled dataset
and optional values dataset(s).
+The executable name is @file{astmkcatalog} with the following general template
+
+@example
+$ astmkcatalog [OPTION ...] InputImage.fits
+@end example
+
+@noindent
+One line examples:
+
+@example
+## Create catalog with RA, Dec, Magnitude and Magnitude error,
+## from Segment's output:
+$ astmkcatalog --ra --dec --magnitude --magnitude-error seg-out.fits
+
+## Same catalog as above (using short options):
+$ asmkcatalog -rdmG seg-out.fits
+
+## Write the catalog to a text table:
+$ astmkcatalog -mpQ seg-out.fits --output=cat.txt
+
+## Output columns specified in `columns.conf':
+$ astmkcatalog --config=columns.conf seg-out.fits
+
+## Use object and clump labels from a K-band image, but pixel values
+## from an i-band image.
+$ astmkcatalog K_segmented.fits --hdu=DETECTIONS --clumpscat \
+ --clumpsfile=K_segmented.fits --clumpshdu=CLUMPS \
+ --valuesfile=i_band.fits
+@end example
+
+@cindex Gaussian
+@noindent
+If MakeCatalog is to do processing (not printing help or option values), an
input labeled image should be provided.
+The options described in this section are those that are particular to
MakeProfiles.
+For operations that MakeProfiles shares with other programs (mainly involving
input/output or general processing steps), see @ref{Common options}.
+Also see @ref{Common program behavior} for some general characteristics of all
Gnuastro programs including MakeCatalog.
+
+The various measurements/columns of MakeCatalog are requested as options,
either on the command-line or in configuration files, see @ref{Configuration
files}.
+The full list of available columns is available in @ref{MakeCatalog
measurements}.
+Depending on the requested columns, MakeCatalog needs more than one input
dataset, for more details, please see @ref{MakeCatalog inputs and basic
settings}.
+The upper-limit measurements in particular need several configuration options
which are thoroughly discussed in @ref{Upper-limit settings}.
+Finally, in @ref{MakeCatalog output} the output file(s) created by MakeCatalog
are discussed.
+
+@menu
+* MakeCatalog inputs and basic settings:: Input files and basic settings.
+* Upper-limit settings:: Settings for upper-limit measurements.
+* MakeCatalog output:: File names of MakeCatalog's output table.
+@end menu
+
+@node MakeCatalog inputs and basic settings, Upper-limit settings, Invoking
astmkcatalog, Invoking astmkcatalog
+@subsubsection MakeCatalog inputs and basic settings
+
+MakeCatalog works by using a localized/labeled dataset (see @ref{MakeCatalog}).
+This dataset maps/labels pixels to a specific target (row number in the final
catalog) and is thus the only necessary input dataset to produce a minimal
catalog in any situation.
+Because it only has labels/counters, it must have an integer type (see
@ref{Numeric data types}), see below if your labels are in a floating point
container.
+When the requested measurements only need this dataset (for example,
@option{--geo-x}, @option{--geo-y}, or @option{--geo-area}), MakeCatalog will
not read any more datasets.
+
+Low-level measurements that only use the labeled image are rarely sufficient
for any high-level science case.
+Therefore necessary input datasets depend on the requested columns in each run.
+For example, let's assume you want the brightness/magnitude and
signal-to-noise ratio of your labeled regions.
+For these columns, you will also need to provide an extra dataset containing
values for every pixel of the labeled input (to measure magnitude) and another
for the Sky standard deviation (to measure error).
+All such auxiliary input files have to have the same size (number of pixels in
each dimension) as the input labeled image.
+Their numeric data type is irrelevant (they will be converted to 32-bit
floating point internally).
+For the full list of available measurements, see @ref{MakeCatalog
measurements}.
+
+The ``values'' dataset is used for measurements like brightness/magnitude, or
flux-weighted positions.
+If it is a real image, by default it is assumed to be already Sky-subtracted
prior to running MakeCatalog.
+If it is not, you use the @option{--subtractsky} option to, so MakeCatalog
reads and subtracts the Sky dataset before any processing.
+To obtain the Sky value, you can use the @option{--sky} option of
@ref{Statistics}, but the best recommended method is @ref{NoiseChisel}, see
@ref{Sky value}.
+
+MakeCatalog can also do measurements on sub-structures of detections.
+In other words, it can produce two catalogs.
+Following the nomenclature of Segment (see @ref{Segment}), the main labeled
input dataset is known as ``object'' labels and the (optional) sub-structure
input dataset is known as ``clumps''.
+If MakeCatalog is run with the @option{--clumpscat} option, it will also need
a labeled image containing clumps, similar to what Segment produces (see
@ref{Segment output}).
+Since clumps are defined within detected regions (they exist over signal, not
noise), MakeCatalog uses their boundaries to subtract the level of signal under
them.
+
+There are separate options to explicitly request a file name and HDU/extension
for each of the required input datasets as fully described below (with the
@option{--*file} format).
+When each dataset is in a separate file, these options are necessary.
+However, one great advantage of the FITS file format (that is heavily used in
astronomy) is that it allows the storage of multiple datasets in one file.
+So in most situations (for example, if you are using the outputs of
@ref{NoiseChisel} or @ref{Segment}), all the necessary input datasets can be in
one file.
+
+When none of the @option{--*file} options are given, MakeCatalog will assume
the necessary input datasets are in the file given as its argument (without any
option).
+When the Sky or Sky standard deviation datasets are necessary and the only
@option{--*file} option called is @option{--valuesfile}, MakeCatalog will
search for these datasets (with the default/given HDUs) in the file given to
@option{--valuesfile} (before looking into the main argument file).
+
+When the clumps image (necessary with the @option{--clumpscat} option) is
used, MakeCatalog looks into the (possibly existing) @code{NUMLABS} keyword for
the total number of clumps in the image (irrespective of how many objects there
are).
+If it is not present, it will count them and possibly re-label the clumps so
the clump labels always start with 1 and finish with the total number of clumps
in each object.
+The re-labeled clumps image will be stored with the @file{-clumps-relab.fits}
suffix.
+This can slightly slow-down the run.
+
+Note that @code{NUMLABS} is automatically written by Segment in its outputs,
so if you are feeding Segment's clump labels, you can benefit from the improved
speed.
+Otherwise, if you are creating the clumps label dataset manually, it may be
good to include the @code{NUMLABS} keyword in its header and also be sure that
there is no gap in the clump labels.
+For example, if an object has three clumps, they are labeled as 1, 2, 3.
+If they are labeled as 1, 3, 4, or any other combination of three positive
integers that are not an increment of the previous, you might get unknown
behavior.
+
+It may happen that your labeled objects image was created with a program that
only outputs floating point files.
+However, you know it only has integer valued pixels that are stored in a
floating point container.
+In such cases, you can use Gnuastro's Arithmetic program (see
@ref{Arithmetic}) to change the numerical data type of the image
(@file{float.fits}) to an integer type image (@file{int.fits}) with a command
like below:
-@item -n
-@itemx --sn
-The Signal to noise ratio (S/N) of all clumps or objects.
-See Akhlaghi and Ichikawa (2015) for the exact equations used.
+@example
+@command{$ astarithmetic float.fits int32 --output=int.fits}
+@end example
-The returned value will be NaN when the label covers only NaN pixels in the
values image, or a pixel is NaN in the @option{--instd} image, but non-NaN in
the values image.
-The latter situation usually happens when there is a bug in the previous steps
of your analysis, and is important because those pixels with a NaN in the
@option{--instd} image may contribute significantly to the final error.
-If you want to ignore those pixels in the error measurement, set them to zero
(which is a meaningful number).
+To summarize: if the input file to MakeCatalog is the default/full output of
Segment (see @ref{Segment output}) you do not have to worry about any of the
@option{--*file} options below.
+You can just give Segment's output file to MakeCatalog as described in
@ref{Invoking astmkcatalog}.
+To feed NoiseChisel's output into MakeCatalog, just change the labeled
dataset's header (with @option{--hdu=DETECTIONS}).
+The full list of input dataset options and general setting options are
described below.
-@item --sky
-The sky flux (per pixel) value under this object or clump.
-This is actually the mean value of all the pixels in the sky image that lie on
the same position as the object or clump.
+@table @option
-@item --skystd
-The sky value standard deviation (per pixel) for this clump or object.
-This is the square root of the mean variance under the object, or the root
mean square.
+@item -l FITS
+@itemx --clumpsfile=FITS
+The FITS file containing the labeled clumps dataset when @option{--clumpscat}
is called (see @ref{MakeCatalog output}).
+When @option{--clumpscat} is called, but this option is not, MakeCatalog will
look into the main input file (given as an argument) for the required
extension/HDU (value to @option{--clumpshdu}).
-@item -C
-@itemx --numclumps
-[Objects] The number of clumps in this object.
+@item --clumpshdu=STR
+The HDU/extension of the clump labels dataset.
+Only pixels with values above zero will be considered.
+The clump labels dataset has to be an integer data type (see @ref{Numeric data
types}) and only pixels with a value larger than zero will be used.
+See @ref{Segment output} for a description of the expected format.
-@item -a
-@itemx --area
-The raw area (number of pixels/voxels) in any clump or object independent of
what pixel it lies over (if it is NaN/blank or unused for example).
+@item -v FITS
+@itemx --valuesfile=FITS
+The file name of the (sky-subtracted) values dataset.
+When any of the columns need values to associate with the input labels (for
example, to measure the sum of pixel values or magnitude of a galaxy, see
@ref{Brightness flux magnitude}), MakeCatalog will look into a ``values'' for
the respective pixel values.
+In most common processing, this is the actual astronomical image that the
labels were defined, or detected, over.
+The HDU/extension of this dataset in the given file can be specified with
@option{--valueshdu}.
+If this option is not called, MakeCatalog will look for the given extension in
the main input file.
-@item --areaarcsec2
-The used (non-blank in values image) area of the labeled region in units of
arc-seconds squared.
-This column is just the value of the @option{--area} column, multiplied by the
area of each pixel in the input image (in units of arcsec^2).
-Similar to the @option{--ra} or @option{--dec} columns, for this option to
work, the objects extension used has to have a WCS structure.
+@item --valueshdu=STR/INT
+The name or number (counting from zero) of the extension containing the
``values'' dataset, see the descriptions above and those in
@option{--valuesfile} for more.
-@item --areaminv
-The number of pixels that are equal to the minimum value of the labeled region
(clump or object).
+@item -s FITS/FLT
+@itemx --insky=FITS/FLT
+Sky value as a single number, or the file name containing a dataset (different
values per pixel or tile).
+The Sky dataset is only necessary when @option{--subtractsky} is called or
when a column directly related to the Sky value is requested (currently
@option{--sky}).
+This dataset may be a tessellation, with one element per tile (see
@option{--oneelempertile} of NoiseChisel's @ref{Processing options}).
-@item --areamaxv
-The number of pixels that are equal to the maximum value of the labeled region
(clump or object).
+When the Sky dataset is necessary but this option is not called, MakeCatalog
will assume it is an HDU/extension (specified by @option{--skyhdu}) in one of
the already given files.
+First it will look for it in the @option{--valuesfile} (if it is given) and
then the main input file (given as an argument).
-@item --surfacebrightness
-The surface brightness (in units of mag/arcsec@mymath{^2}) of the labeled
region (objects or clumps).
-For more on the definition of the surface brightness, see @ref{Brightness flux
magnitude}.
+By default the values dataset is assumed to be already Sky subtracted, so
+this dataset is not necessary for many of the columns.
-@item --sberror
-Error in measuring the surface brightness (the @option{--surfacebrightness}
column).
-This column will use the value given to @option{--spatialresolution} in the
processing (in pixels).
-For more on @option{--spatialresolution}, see @ref{MakeCatalog inputs and
basic settings} and for the equation used to derive the surface brightness
error, see @ref{Surface brightness error of each detection}.
+@item --skyhdu=STR
+HDU/extension of the Sky dataset, see @option{--skyfile}.
-@item --areaxy
-@cindex IFU: Integral Field Unit
-@cindex Integral Field Unit
-Similar to @option{--area}, when the clump or object is projected onto the
first two dimensions.
-This is only available for 3-dimensional datasets.
-When working with Integral Field Unit (IFU) datasets, this projection onto the
first two dimensions would be a narrow-band image.
+@item --subtractsky
+Subtract the sky value or dataset from the values file prior to any
+processing.
-@item --fwhm
-@cindex FWHM
-The full width at half maximum (in units of pixels, along the semi-major axis)
of the labeled region (object or clump).
-The maximum value is estimated from the mean of the top-three pixels with the
highest values, see the description under @option{--maximum}.
-The number of pixels that have half the value of that maximum are then found
(value in the @option{--halfmaxarea} column) and a radius is estimated from the
area.
-See the description under @option{--halfsumradius} for more on converting area
to radius along major axis.
+@item -t STR/FLT
+@itemx --instd=STR/FLT
+Sky standard deviation value as a single number, or the file name containing a
dataset (different values per pixel or tile).
+With the @option{--variance} option you can tell MakeCatalog to interpret this
value/dataset as a variance image, not standard deviation.
-Because of its non-parametric nature, this column is most reliable on clumps
and should only be used in objects with great caution.
-This is because objects can have more than one clump (peak with true signal)
and multiple peaks are not treated separately in objects, so the result of this
column will be biased.
+@strong{Important note:} This must only be the SKY standard deviation or
variance (not including the signal's contribution to the error).
+In other words, the final standard deviation of a pixel depends on how much
signal there is in it.
+MakeCatalog will find the amount of signal within each pixel (while
subtracting the Sky, if @option{--subtractsky} is called) and account for the
extra error due to it's value (signal).
+Therefore if the input standard deviation (or variance) image also contains
the contribution of signal to the error, then the final error measurements will
be over-estimated.
-Also, because of its non-parametric nature, this FWHM it does not account for
the PSF, and it will be strongly affected by noise if the object is
faint/diffuse
-So when half the maximum value (which can be requested using the
@option{--maximum} column) is too close to the local noise level (which can be
requested using the @option{--skystd} column), the value returned in this
column is meaningless (its just noise peaks which are randomly distributed over
the area).
-You can therefore use the @option{--maximum} and @option{--skystd} columns to
remove, or flag, unreliable FWHMs.
-For example, if a labeled region's maximum is less than 2 times the sky
standard deviation, the value will certainly be unreliable (half of that is
@mymath{1\sigma}!).
-For a more reliable value, this fraction should be around 4 (so half the
maximum is 2@mymath{\sigma}).
+@item --stdhdu=STR
+The HDU of the Sky value standard deviation image.
-@item --halfmaxarea
-The number of pixels with values larger than half the maximum flux within the
labeled region.
-This option is used to estimate @option{--fwhm}, so please read the notes
there for the caveats and necessary precautions.
+@item --variance
+The dataset given to @option{--instd} (and @option{--stdhdu} has the Sky
variance of every pixel, not the Sky standard deviation.
-@item --halfmaxradius
-The radius of region containing half the maximum flux within the labeled
region.
-This is just half the value reported by @option{--fwhm}.
+@item --forcereadstd
+Read the input STD image even if it is not required by any of the requested
columns.
+This is because some of the output catalog's metadata may need it, for
example, to calculate the dataset's surface brightness limit (see
@ref{Quantifying measurement limits}, configured with @option{--sfmagarea} and
@option{--sfmagnsigma} in @ref{MakeCatalog output}).
-@item --halfmaxsum
-The sum of the pixel values containing half the maximum flux within the
labeled region (or those that are counted in @option{--halfmaxarea}).
-This option uses the pixels within @option{--fwhm}, so please read the notes
there for the caveats and necessary precautions.
+Furthermore, if the input STD image does not have the @code{MEDSTD} keyword
(that is meant to contain the representative standard deviation of the full
image), with this option, the median will be calculated and used for the
surface brightness limit.
-@item --halfmaxsb
-The surface brightness (in units of mag/arcsec@mymath{^2}) within the region
that contains half the maximum value of the labeled region.
-For more on the definition of the surface brightness, see @ref{Brightness flux
magnitude}.
+@item -z FLT
+@itemx --zeropoint=FLT
+The zero point magnitude for the input image, see @ref{Brightness flux
magnitude}.
-@item --halfsumarea
-The number of pixels that contain half the object or clump's total sum of
pixels (half the value in the @option{--sum} column).
-To count this area, all the non-blank values associated with the given label
(object or clump) will be sorted and summed in order (starting from the
maximum), until the sum becomes larger than half the total sum of the label's
pixels.
+@item --sigmaclip FLT,FLT
+The sigma-clipping parameters when any of the sigma-clipping related columns
are requested (for example, @option{--sigclip-median} or
@option{--sigclip-number}).
-This option is thus good for clumps (which are defined to have a single peak
in their morphology), but for objects you should be careful: if the object
includes multiple peaks/clumps at roughly the same level, then the area
reported by this option will be distributed over all the peaks.
+This option takes two values: the first is the multiple of @mymath{\sigma},
and the second is the termination criteria.
+If the latter is larger than 1, it is read as an integer number and will be
the number of times to clip.
+If it is smaller than 1, it is interpreted as the tolerance level to stop
clipping.
+See @ref{Sigma clipping} for a complete explanation.
-@item --halfsumsb
-Surface brightness (in units of mag/arcsec@mymath{^2}) within the area that
contains half the total sum of the label's pixels (object or clump).
-For more on the definition of the surface brightness, see @ref{Brightness flux
magnitude}.
+@item --frac-max=FLT[,FLT]
+The fractions (one or two) of maximum value in objects or clumps to be used in
the related columns, for example, @option{--frac-max1-area},
@option{--frac-max1-sum} or @option{--frac-max1-radius}, see @ref{MakeCatalog
measurements}.
+For the maximum value, see the description of @option{--maximum} column below.
+The value(s) of this option must be larger than 0 and smaller than 1 (they are
a fraction).
+When only @option{--frac-max1-area} or @option{--frac-max1-sum} is requested,
one value must be given to this option, but if @option{--frac-max2-area} or
@option{--frac-max2-sum} are also requested, two values must be given to this
option.
+The values can be written as simple floating point numbers, or as fractions,
for example, @code{0.25,0.75} and @code{0.25,3/4} are the same.
-This column just plugs in the values of half the value of the @option{--sum}
column and the @option{--halfsumarea} column, into the surface brightness
equation.
-Therefore please see the description in @option{--halfsumarea} to understand
the systematics of this column and potential biases.
+@item --spatialresolution=FLT
+The error in measuring spatial properties (for example, the area) in units of
pixels.
+You can think of this as the FWHM of the dataset's PSF and is used in
measurements like the error in surface brightness (@option{--sb-error}, see
@ref{MakeCatalog measurements}).
+Ideally, images are taken in the optimal Nyquist sampling @ref{Sampling
theorem}, so the default value for this option is 2.
+But in practice real images my be over-sampled (usually ground-based images,
where you will need to increase the default value) or undersampled (some
space-based images, where you will need to decrease the default value).
-@item --halfsumradius
-Radius (in units of pixels) derived from the area that contains half the total
sum of the label's pixels (value reported by @option{--halfsumarea}).
-If the area is @mymath{A_h} and the axis ratio is @mymath{q}, then the value
returned in this column is @mymath{\sqrt{A_h/({\pi}q)}}.
-This option is a good measure of the concentration of the @emph{observed}
(after PSF convolution and noisy) object or clump,
-But as described below it underestimates the effective radius.
-Also, it should be used in caution with objects that may have multiple clumps.
-It is most reliable with clumps or objects that have one or zero clumps, see
the note under @option{--halfsumarea}.
+@item --inbetweenints
+Output will contain one row for all integers between 1 and the largest label
in the input (irrespective of their existance in the input image).
+By default, MakeCatalog's output will only contain rows with integers that
actually corresponded to at least one pixel in the input dataset.
-@cindex Ellipse area
-@cindex Area, ellipse
-Recall that in general, for an ellipse with semi-major axis @mymath{a},
semi-minor axis @mymath{b}, and axis ratio @mymath{q=b/a} the area (@mymath{A})
is @mymath{A={\pi}ab={\pi}qa^2}.
-For a circle (where @mymath{q=1}), this simplifies to the familiar
@mymath{A={\pi}a^2}.
+For example, if the input's only labeled pixel values are 11 and 13,
MakeCatalog's default output will only have two rows.
+If you use this option, it will have 13 rows and all the columns corresponding
to integer identifiers that did not correspond to any pixel will be 0 or NaN
(depending on context).
+@end table
-@cindex S@'ersic profile
-@cindex Effective radius
-This option should not be confused with the @emph{effective radius} for
S@'ersic profiles, commonly written as @mymath{r_e}.
-For more on the S@'ersic profile and @mymath{r_e}, please see @ref{Galaxies}.
-Therefore, when @mymath{r_e} is meaningful for the target (the target is
elliptically symmetric and can be parameterized as a S@'ersic profile),
@mymath{r_e} should be derived from fitting the profile with a S@'ersic
function which has been convolved with the PSF.
-But from the equation above, you see that this radius is derived from the raw
image's labeled values (after convolution, with no parametric profile), so this
column's value will generally be (much) smaller than @mymath{r_e}, depending on
the PSF, depth of the dataset, the morphology, or if a fraction of the profile
falls on the edge of the image.
-In other words, this option can only be interpreted as an effective radius if
there is no noise and no PSF and the profile within the image extends to
infinity (or a very large multiple of the effective radius) and it not near the
edge of the image.
-@item --fracmaxarea1
-@itemx --fracmaxarea2
-Number of pixels brighter than the given fraction(s) of the maximum pixel
value.
-For the maximum value, see the description of @option{--maximum} column.
-The fraction(s) are given through the @option{--fracmax} option (that can take
two values) and is described in @ref{MakeCatalog inputs and basic settings}.
-Recall that in @option{--halfmaxarea}, the fraction is fixed to 0.5.
-Hence, added with these two columns, you can sample three parts of the profile
area.
-@item --fracmaxsum1
-@itemx --fracmaxsum2
-Sum of pixels brighter than the given fraction(s) of the maximum pixel value.
-For the maximum value, see the description of @option{--maximum} column below.
-The fraction(s) are given through the @option{--fracmax} option (that can take
two values) and is described in @ref{MakeCatalog inputs and basic settings}.
-Recall that in @option{--halfmaxsum}, the fraction is fixed to 0.5.
-Hence, added with these two columns, you can sample three parts of the
profile's sum of pixels.
-@item --fracmaxradius1
-@itemx --fracmaxradius2
-Radius (in units of pixels) derived from the area that contains the given
fractions of the maximum valued pixel(s) of the label's pixels (value reported
by @option{--fracmaxarea1} or @option{--fracmaxarea2}).
-For the maximum value, see the description of @option{--maximum} column below.
-The fractions are given through the @option{--fracmax} option (that can take
two values) and is described in @ref{MakeCatalog inputs and basic settings}.
-Recall that in @option{--fwhm}, the fraction is fixed to 0.5.
-Hence, added with these two columns, you can sample three parts of the
profile's radius.
+@node Upper-limit settings, MakeCatalog output, MakeCatalog inputs and basic
settings, Invoking astmkcatalog
+@subsubsection Upper-limit settings
-@item --clumpsarea
-[Objects] The total area of all the clumps in this object.
+The upper-limit magnitude was discussed in @ref{Quantifying measurement
limits}.
+Unlike other measured values/columns in MakeCatalog, the upper limit magnitude
needs several extra parameters which are discussed here.
+All the options specific to the upper-limit measurements start with
@option{up} for ``upper-limit''.
+The only exception is @option{--envseed} that is also present in other
programs and is general for any job requiring random number generation in
Gnuastro (see @ref{Generating random numbers}).
-@item --weightarea
-The area (number of pixels) used in the flux weighted position calculations.
+@cindex Reproducibility
+One very important consideration in Gnuastro is reproducibility.
+Therefore, the values to all of these parameters along with others (like the
random number generator type and seed) are also reported in the comments of the
final catalog when the upper limit magnitude column is desired.
+The random seed that is used to define the random positions for each object or
clump is unique and set based on the (optionally) given seed, the total number
of objects and clumps and also the labels of the clumps and objects.
+So with identical inputs, an identical upper-limit magnitude will be found.
+However, even if the seed is identical, when the ordering of the object/clump
labels differs between different runs, the result of upper-limit measurements
will not be identical.
-@item --geoarea
-The area of all the pixels labeled with an object or clump.
-Note that unlike @option{--area}, pixel values are completely ignored in this
column.
-For example, if a pixel value is blank, it will not be counted in
@option{--area}, but will be counted here.
+MakeCatalog will randomly place the object/clump footprint over the dataset.
+When the randomly placed footprint does not fall on any object or masked
region (see @option{--upmaskfile}) it will be used in the final distribution.
+Otherwise that particular random position will be ignored and another random
position will be generated.
+Finally, when the distribution has the desired number of successfully measured
random samples (@option{--upnum}) the distribution's properties will be
measured and placed in the catalog.
-@item --geoareaxy
-Similar to @option{--geoarea}, when the clump or object is projected onto the
first two dimensions.
-This is only available for 3-dimensional datasets.
-When working with Integral Field Unit (IFU) datasets, this projection onto the
first two dimensions would be a narrow-band image.
+When the profile is very large or the image is significantly covered by
detections, it might not be possible to find the desired number of samplings in
a reasonable time.
+MakeProfiles will continue searching until it is unable to find a successful
position (since the last successful measurement@footnote{The counting of failed
positions restarts on every successful measurement.}), for a large multiple of
@option{--upnum} (currently@footnote{In Gnuastro's source, this constant number
is defined as the @code{MKCATALOG_UPPERLIMIT_MAXFAILS_MULTIP} macro in
@file{bin/mkcatalog/main.h}, see @ref{Downloading the source}.} this is 10).
+If @option{--upnum} successful samples cannot be found until this limit is
reached, MakeCatalog will set the upper-limit magnitude for that object to NaN
(blank).
-@item -A
-@itemx --semimajor
-The pixel-value weighted root mean square (RMS) along the semi-major axis of
the profile (assuming it is an ellipse) in units of pixels.
-See @ref{Measuring elliptical parameters}.
+MakeCatalog will also print a warning if the range of positions available for
the labeled region is smaller than double the size of the region.
+In such cases, the limited range of random positions can artificially decrease
the standard deviation of the final distribution.
+If your dataset can allow it (it is large enough), it is recommended to use a
larger range if you see such warnings.
-@item -B
-@itemx --semiminor
-The pixel-value weighted root mean square (RMS) along the semi-minor axis of
the profile (assuming it is an ellipse) in units of pixels.
-See @ref{Measuring elliptical parameters}.
+@table @option
-@item --axisratio
-The pixel-value weighted axis ratio (semi-minor/semi-major) of the object or
clump.
+@item --upmaskfile=FITS
+File name of mask image to use for upper-limit calculation.
+In some cases (especially when doing matched photometry), the object labels
specified in the main input and mask image might not be adequate.
+In other words they do not necessarily have to cover @emph{all} detected
objects: the user might have selected only a few of the objects in their
labeled image.
+This option can be used to ignore regions in the image in these situations
when estimating the upper-limit magnitude.
+All the non-zero pixels of the image specified by this option (in the
@option{--upmaskhdu} extension) will be ignored in the upper-limit magnitude
measurements.
-@item -p
-@itemx --positionangle
-The pixel-value weighted angle of the semi-major axis with the first FITS
-axis in degrees.
-See @ref{Measuring elliptical parameters}.
+For example, when you are using labels from another image, you can give
NoiseChisel's objects image output for this image as the value to this option.
+In this way, you can be sure that regions with data do not harm your
distribution.
+See @ref{Quantifying measurement limits} for more on the upper limit magnitude.
-@item --geosemimajor
-The geometric (ignoring pixel values) root mean square (RMS) along the
semi-major axis of the profile, assuming it is an ellipse, in units of pixels.
+@item --upmaskhdu=STR
+The extension in the file specified by @option{--upmask}.
-@item --geosemiminor
-The geometric (ignoring pixel values) root mean square (RMS) along the
semi-minor axis of the profile, assuming it is an ellipse, in units of pixels.
+@item --upnum=INT
+The number of random samples to take for all the objects.
+A larger value to this option will give a more accurate result
(asymptotically), but it will also slow down the process.
+When a randomly positioned sample overlaps with a detected/masked pixel it is
not counted and another random position is found until the object completely
lies over an undetected region.
+So you can be sure that for each object, this many samples over undetected
objects are made.
+See the upper limit magnitude discussion in @ref{Quantifying measurement
limits} for more.
-@item --geoaxisratio
-The geometric (ignoring pixel values) axis ratio of the profile, assuming
-it is an ellipse.
+@item --uprange=INT,INT
+The range/width of the region (in pixels) to do random sampling along each
dimension of the input image around each object's position.
+This is not a mandatory option and if not given (or given a value of zero in a
dimension), the full possible range of the dataset along that dimension will be
used.
+This is useful when the noise properties of the dataset vary gradually.
+In such cases, using the full range of the input dataset is going to bias the
result.
+However, note that decreasing the range of available positions too much will
also artificially decrease the standard deviation of the final distribution
(and thus bias the upper-limit measurement).
-@item --geopositionangle
-The geometric (ignoring pixel values) angle of the semi-major axis with the
first FITS axis in degrees.
+@item --envseed
+@cindex Seed, Random number generator
+@cindex Random number generator, Seed
+Read the random number generator type and seed value from the environment (see
@ref{Generating random numbers}).
+Random numbers are used in calculating the random positions of different
samples of each object.
-@end table
+@item --upsigmaclip=FLT,FLT
+The raw distribution of random values will not be used to find the upper-limit
magnitude, it will first be @mymath{\sigma}-clipped (see @ref{Sigma clipping})
to avoid outliers in the distribution (mainly the faint undetected wings of
bright/large objects in the image).
+This option takes two values: the first is the multiple of @mymath{\sigma},
and the second is the termination criteria.
+If the latter is larger than 1, it is read as an integer number and will be
the number of times to clip.
+If it is smaller than 1, it is interpreted as the tolerance level to stop
clipping. See @ref{Sigma clipping} for a complete explanation.
-@cindex 3D data-cubes
-@cindex Cubes (3D data)
-@cindex IFU: Integral Field Unit
-@cindex Integral field unit (IFU)
-@cindex Spectrum (of astronomical source)
-Above, all of MakeCatalog's single-valued measurements were listed. As
-mentioned in the start of this section, MakeCatalog can also do
-multi-valued measurements per label. Currently the only such measurement is
-the creation of spectra from 3D data cubes as discussed below:
+@item --upnsigma=FLT
+The multiple of the final (@mymath{\sigma}-clipped) standard deviation (or
@mymath{\sigma}) used to measure the upper-limit sum or magnitude.
-@table @option
-@item --spectrum
-Generate a spectrum (measurement along the first two FITS dimensions) for
-each label when the input dataset is a 3D data cube. With this option, a
-seprate table/spectrum will be generated for every label. If the output is
-a FITS file, each label's spectrum will be written into an extension of
-that file with a standard name of @code{SPECTRUM_NN} (the label will be
-replaced with @code{NN}). If the output is a plain text file, each label's
-spectrum will be written into a separate file with the suffix
-@file{spec-NN.txt}. See @ref{MakeCatalog output} for more on specifying
-MakeCatalog's output file.
-
-The spectra will contain one row for every slice (third FITS dimension) of
-the cube. Since the physical nature of the third dimension is different,
-two types of spectra (along with their errors) are measured: 1) Sum of
-values in each slice that only have the requested label. 2) Sum of values
-on the 2D projection of the whole label (the area of this projection can be
-requested with the @option{--areaxy} column above).
-
-Labels can overlap when they are projected onto the first two FITS
-dimensions (the spatial domain). To help separate them, MakeCatalog does a
-third measurement on each slice: the area, sum of values and error of all
-pixels that belong to other labels but overlap with the 2D projection. This
-can be used to see how reliable the emission line measurement is (on the
-projected spectra) and also if multiple lines (labeled regions) belong to
-the same physical object.
+@item --checkuplim=INT[,INT]
+Print a table of positions and measured values for all the full random
distribution used for one particular object or clump.
+If only one integer is given to this option, it is interpreted to be an
object's label.
+If two values are given, the first is the object label and the second is the
ID of requested clump within it.
-@item --inbetweenints
-Output will contain one row for all integers between 1 and the largest label
in the input (irrespective of their existance in the input image).
-By default, MakeCatalog's output will only contain rows with integers that
actually corresponded to at least one pixel in the input dataset.
+The output is a table with three columns (its type is determined with the
@option{--tableformat} option, see @ref{Input output options}).
+The first two columns are the position of the first pixel in each random
sampling of this particular object/clump.
+The third column is the measured flux over that region.
+If the region overlapped with a detection or masked pixel, then its measured
value will be a NaN (not-a-number).
+The total number of rows is thus unknown, but you can be sure that the number
of rows with non-NaN measurements is the number given to the @option{--upnum}
option.
-For example, if the input's only labeled pixel values are 11 and 13,
MakeCatalog's default output will only have two rows.
-If you use this option, it will have 13 rows and all the columns corresponding
to integer identifiers that did not correspond to any pixel will be 0 or NaN
(depending on context).
@end table
-
-@node MakeCatalog output, , MakeCatalog measurements, Invoking astmkcatalog
+@node MakeCatalog output, , Upper-limit settings, Invoking astmkcatalog
@subsubsection MakeCatalog output
After it has completed all the requested measurements (see @ref{MakeCatalog
measurements}), MakeCatalog will store its measurements in table(s).
If an output filename is given (see @option{--output} in @ref{Input output
options}), the format of the table will be deduced from the name.
@@ -25900,7 +25976,7 @@ For more, see the description of @option{--spectrum} in
@ref{MakeCatalog measure
@cindex Limit, Surface brightness
When possible, MakeCatalog will also measure the full input's noise level
(also known as surface brightness limit, see @ref{Quantifying measurement
limits}).
Since these measurements are related to the noise and not any particular
labeled object, they are stored as keywords in the output table.
-Furthermore, they are only possible when a standard deviation image has been
loaded (done automatically for any column measurement that involves noise, for
example, @option{--sn}, @option{--magnitudeerr} or @option{--skystd}).
+Furthermore, they are only possible when a standard deviation image has been
loaded (done automatically for any column measurement that involves noise, for
example, @option{--sn}, @option{--magnitude-error} or @option{--sky-std}).
But if you just want the surface brightness limit and no noise-related column,
you can use @option{--forcereadstd}.
All these keywords start with @code{SBL} (for ``surface brightness limit'')
and are described below:
@@ -28887,8 +28963,8 @@ $ astscript-radial-profile image.fits --center=44,37
--rmax=100 \
## Name the output table as `radial-profile.fits'
$ astscript-radial-profile image.fits --mode=wcs \
--center=20.53751695,0.9454292263 \
- --rmax=88 --axisratio=0.32 \
- --positionangle=148 -oradial-profile.fits
+ --rmax=88 --axis-ratio=0.32 \
+ --position-angle=148 -oradial-profile.fits
## Generate the radial profile centered at RA=40.062675270971,
## DEC=-8.1511992735126, up to a radial distance of 20 pixels,
@@ -28937,7 +29013,7 @@ To do this, use @option{--keeptmp} to keep the
temporary files, and compare @fil
@cartouche
@noindent
@strong{Finding properties of your elliptical target: } you want to measure
the radial profile of a galaxy, but do not know its exact location, position
angle or axis ratio.
-To obtain these values, you can use @ref{NoiseChisel} to detect signal in the
image, feed it to @ref{Segment} to do basic segmentation, then use
@ref{MakeCatalog} to measure the center (@option{--x} and @option{--y} in
MakeCatalog), axis ratio (@option{--axisratio}) and position angle
(@option{--positionangle}).
+To obtain these values, you can use @ref{NoiseChisel} to detect signal in the
image, feed it to @ref{Segment} to do basic segmentation, then use
@ref{MakeCatalog} to measure the center (@option{--x} and @option{--y} in
MakeCatalog), axis ratio (@option{--axis-ratio}) and position angle
(@option{--position-angle}).
@end cartouche
@cartouche
@@ -29054,21 +29130,21 @@ For example, if a radial profile computed by default
has 100 different radii (ap
This option is good to measure over a larger number of pixels to improve the
measurement.
@item -Q FLT
-@itemx --axisratio=FLT
+@itemx --axis-ratio=FLT
The axis ratio of the apertures (minor axis divided by the major axis in a 2D
ellipse).
By default (when this option is not given), the radial profile will be
circular (axis ratio of 1).
This parameter is used as the option @option{--qcol} in the generation of the
apertures with @command{astmkprof}.
@item -p FLT
-@itemx --positionangle=FLT
+@itemx --position-angle=FLT
The position angle (in degrees) of the profiles relative to the first FITS
axis (horizontal when viewed in SAO DS9).
-By default, it is @option{--positionangle=0}, which means that the semi-major
axis of the profiles will be parallel to the first FITS axis.
+By default, it is @option{--position-angle=0}, which means that the semi-major
axis of the profiles will be parallel to the first FITS axis.
@item -a FLT,FLT
@itemx --azimuth=FLT,FLT
@cindex Wedge (radial profile)
@cindex Azimuthal range (radial profile)
-Limit the profile to the given azimuthal angle range (two numbers given to
this option, in degrees, from 0 to 360) from the major axis (defined by
@option{--positionangle}).
+Limit the profile to the given azimuthal angle range (two numbers given to
this option, in degrees, from 0 to 360) from the major axis (defined by
@option{--position-angle}).
The radial profile will therefore be created on a wedge-like shape, not the
full circle/ellipse.
The pixel containing the center of the profile will always be included in the
profile (because it contains all azimuthal angles!).
@@ -29083,8 +29159,8 @@ For example, see the commands below (based on your
target object, just change th
@example
## Generate the radial profile
$ astscript-radial-profile image.fits --center=1.234,6.789 \
- --mode=wcs --rmax=50 --positionangle=20 \
- --axisratio=0.8 --azimuth=95,150 --keeptmp \
+ --mode=wcs --rmax=50 --position-angle=20 \
+ --axis-ratio=0.8 --azimuth=95,150 --keeptmp \
--tmpdir=radial-tmp
## Visually check the values and apertures used.
@@ -29878,15 +29954,15 @@ The final normalization value is saved into the
header of the output image with
If no normalization is done, then the value is set to @code{1.0}.
@item -Q FLT
-@itemx --axisratio=FLT
+@itemx --axis-ratio=FLT
The axis ratio of the radial profiles for computing the normalization value.
By default (when this option is not given), the radial profile will be
circular (axis ratio of 1).
This parameter is used directly in the @file{astscript-radial-profile} script.
@item -p FLT
-@itemx --positionangle=FLT
+@itemx --position-angle=FLT
The position angle (in degrees) of the profiles relative to the first FITS
axis (horizontal when viewed in SAO DS9).
-By default, it is @option{--positionangle=0}, which means that the semi-major
axis of the profiles will be parallel to the first FITS axis.
+By default, it is @option{--position-angle=0}, which means that the semi-major
axis of the profiles will be parallel to the first FITS axis.
This parameter is used directly in the @file{astscript-radial-profile} script.
@item -s FLT,FLT
@@ -29941,8 +30017,8 @@ $ astscript-psf-unite outer.fits \
## ellipse (instead of a circle).
$ astscript-psf-unite outer.fits \
--core=inner.fits --scale=3 \
- --radius=25 --axisratio=0.5 \
- --positionangle=40 --output=joined.fits
+ --radius=25 --axis-ratio=0.5 \
+ --position-angle=40 --output=joined.fits
@end example
@@ -29984,7 +30060,7 @@ We recommend doing that tutorial before starting to
work on your own datasets.
@itemx --radius=FLT
Radius (in pixels) at which the junction of the images is done.
All pixels in the outer image within this radius (from its center) will be
replaced with the pixels of the inner image (that has been scaled).
-By default, a circle is assumed for the shape of the inner region, but this
can be tweaked with @option{--axisratio} and @option{--positionangle} (see
below).
+By default, a circle is assumed for the shape of the inner region, but this
can be tweaked with @option{--axis-ratio} and @option{--position-angle} (see
below).
@item -Q FLT
@itemx --axisratio=FLT
@@ -29997,9 +30073,9 @@ even if the PSF is non-circular, the inner and outer
parts will both have the sa
So if the scale factor is chosen accurately, using a circle to select which
pixels from the inner image to use in the outer image will be irrelevant.
@item -p FLT
-@itemx --positionangle=FLT
+@itemx --position-angle=FLT
Position angle of the ellipse (in degrees) to define which central pixels of
the outer image to replace with the scaled inner image.
-Similar to @option{--axisratio} (see above).
+Similar to @option{--axis-ratio} (see above).
@item -t
@itemx --tmpdir
diff --git a/lib/box.c b/lib/box.c
index 3de7c6cf..3412f1ea 100644
--- a/lib/box.c
+++ b/lib/box.c
@@ -389,11 +389,11 @@ gal_box_border_rotate_around_center(long *fpixel, long
*lpixel,
*/
/* Update the first and last points. */
- minx=bl[0]; maxx=bl[0];
+ minx=bl[0]; maxx=bl[0];
if(br[0]<minx) {minx=br[0];} if(br[0]>maxx) {maxx=br[0];}
if(tl[0]<minx) {minx=tl[0];} if(tl[0]>maxx) {maxx=tl[0];}
if(tr[0]<minx) {minx=tr[0];} if(tr[0]>maxx) {maxx=tr[0];}
- miny=bl[1]; maxy=bl[1];
+ miny=bl[1]; maxy=bl[1];
if(br[1]<miny) {miny=br[1];} if(br[1]>maxy) {maxy=br[1];}
if(tl[1]<miny) {miny=tl[1];} if(tl[1]>maxy) {maxy=tl[1];}
if(tr[1]<miny) {miny=tr[1];} if(tr[1]>maxy) {maxy=tr[1];}
diff --git a/tests/during-dev.sh b/tests/during-dev.sh
index 68dc988d..0ddcd230 100755
--- a/tests/during-dev.sh
+++ b/tests/during-dev.sh
@@ -71,7 +71,7 @@
# space characters in them, quote the full value
numjobs=8
builddir=build
-outdir=~/tmp
+outdir=
@@ -82,9 +82,9 @@ outdir=~/tmp
# script, and once for the utility. In such cases it might be easier to
# just add the argument/option to the final script that runs the utility
# rather than these variables.
-utilname=table
-arguments=vec.fits
-options="-YO --transpose"
+utilname=
+arguments=
+options=
# RUN THE PROCEDURES
@@ -195,7 +195,6 @@ if make -j$numjobs -C "$builddir"; then
# Run the built utility with the given arguments and options.
"$utility" $arguments $options $extraopts
- #"$utility" table.fits
# Clean up.
rm -rf .gnuastro
diff --git a/tests/mkcatalog/aperturephot.sh b/tests/mkcatalog/aperturephot.sh
index c3d5f2ce..d6f5d819 100755
--- a/tests/mkcatalog/aperturephot.sh
+++ b/tests/mkcatalog/aperturephot.sh
@@ -56,6 +56,6 @@ if [ ! -f $objimg ]; then echo "$objimg does not exist";
exit 77; fi
# 'check_with_program' can be something like Valgrind or an empty
# string. Such programs will execute the command if present and help in
# debugging when the developer doesn't have access to the user's system.
-$check_with_program $execname $objimg --hdu=1 --valuesfile=$img \
- --output=aperturephot.fits \
- --objid --x --y --ra --dec --magnitude --sn
+$check_with_program $execname $objimg --hdu=1 --valuesfile=$img \
+ --output=aperturephot.fits \
+ --obj-id --x --y --ra --dec --magnitude --sn
diff --git a/tests/mkcatalog/objects-clumps.sh
b/tests/mkcatalog/objects-clumps.sh
index a971222a..aa713d39 100755
--- a/tests/mkcatalog/objects-clumps.sh
+++ b/tests/mkcatalog/objects-clumps.sh
@@ -55,5 +55,5 @@ if [ ! -f $img ]; then echo "$img does not exist.";
exit 77; fi
# string. Such programs will execute the command if present and help in
# debugging when the developer doesn't have access to the user's system.
$check_with_program $execname $img --x --y --ra --dec --magnitude \
- --upperlimitmag --sn --tableformat=txt \
+ --upperlimit-mag --sn --tableformat=txt \
--clumpscat --output=objects-clumps.txt
diff --git a/tests/script/psf-select-stars.sh b/tests/script/psf-select-stars.sh
index cb3723d7..e89add9b 100755
--- a/tests/script/psf-select-stars.sh
+++ b/tests/script/psf-select-stars.sh
@@ -70,7 +70,7 @@ export PATH="$progbdir:$PATH"
# Create a catalog with appropiate parameters
$check_with_program astmkcatalog $fits2name \
--ra --dec --magnitude \
- --axisratio --output=$fits3name
+ --axis-ratio --output=$fits3name
# Test the script: selecting good stars
$check_with_program $execname $fits1name --hdu=1 \
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [gnuastro-commits] master 1c30d220: MakeCatalog: multi-word options with hyphen for readability,
Mohammad Akhlaghi <=