SSC Home Page

Recipe: Bandmerging source extraction tables


SPITZER HOME - SPITZER SCIENCE - INSTRUMENTS - SCIENCE USER SUPPORT - SEARCH

Bandmerge: A How-To Example

This document provides a step-by-step guide on how to use the SSC's Bandmerge software.

Requirements:

Bandmerge software (Solaris10+/MacOSX/Linux) can be downloaded from here.

Bandmerge was designed to work on tables produced from Spitzer data by the SSC's
MOPEX/APEX software which does photometry on images.  Though not
needed for this demo, this software can be downloaded from the MOPEX site.

In addition, this demo uses a sample dataset included in the Bandmerge package.

Outline:

  1. What does Bandmerge do?
  2. Setting up Bandmerge software and the example dataset
  3. How to use Bandmerge
  4. Output from Bandmerge


I. What does Bandmerge do ?

Bandmerge merges source photometry lists from different wavelengths by matching source positions. 
It can read in source list tables for (2-7) different bands and produce a merged list.

Bandmerge was designed primarily to work on photometry tables produced from Spitzer IRAC and MIPS data by the SSC's MOPEX/APEX software.   Strictly speaking, APEX is not required, but Bandmerge does expect certain keywords and columns, and when it recognizes a Spitzer band, certain parameters are "hard-wired".   For instance, Bandmerge will label Spitzer bands with an Outband number based on Spitzer wavelength order: IRAC =1-4, MIPS=5-7.  Bandmerge has some limited ability to work on other kinds of data.  But this demo assumes you are working on Spitzer data, either IRAC or MIPS, or both.  Sample APEX tables are provided. 

There are several features that make Bandmerge more sophisticated than a simple position-matcher.  One important one is that when performing positional matching, Bandmerge takes into account positional uncertainties, and it will estimate any systematic offsets between two different bands, correct this offset, and do more accurate source-matching iteratively.

For a more general, though less sophisticated, "closest-match" position-matching tool, see the included file README_mgsa.

Bandmerge is just a "best" position-matcher.   It should work for  uncrowded fields.   Its  weakness is  close multiples.
It will try to make unique one-to-one matches.   A common failure might be  a close pair at  the shortest wavelength,
a smeared source at the next longest, and a  large blob at the longest.   Bandmerge might assign the smeared source to one of the pair, the large blob to the other.  Further analysis of close multiples is required of the user, taking fluxes into account.

Bandmerge consists of a Perl wrapper script, bandmerge.pl, which is called from the command line.  It in turn calls
C and Fortran binaries.  The Bandmerge Perl script is most easily controlled by a namelist, e.g. bandmerge.nl,  which
needs to be in the ./cdf sub-directory of the working directory.

Bandmerge will typically read in source positions in sky coordinates (RA, Dec) and project them onto a common fiducial image plane with corresponding (x,y) positions. The bandmerging is performed in the fiducial plane in (x,y), and the merged catalog with (x,y) positions is converted back to sky coordinates.  The fiducial plane can be specified by the user with an FIF.tbl ,like those generated by MOPEX, or Bandmerge can compute an FIF.tbl if the user provides a reference FITS image.

A required input file is called the band-pair registration uncertainty file.  As mentioned above, Bandmerge will try to check for offsets between bands iteratively.  It needs to start with a file, e.g. bpru.tbl, with some nominal initial guesses for the offset uncertainties.  It should be in ./cdf.

In the namelist file, you set how many iterations of this (bandmerge)-(get offsets)-(bandmerge) step you want to run.  For each iteration, a separate namelist, bmg1.nl, bmg2.nl, etc., will control Bandmerge parameters.  These namelists are in ./cdf.


II. Setting up Bandmerge software and the example dataset

First download the Bandmerge tar file from the Post-BCD Tools website (see above).  Within the downloaded package are both the software and a sample dataset.

  • Set up the environment for Bandmerge:
  • Before starting Bandmerge, we need to set some environment variables.  In the bandmerge directory, edit the first line in bandmerge.csh to your bandmerge directory; see the line highlighted in red.
    setenv MOPEX_INSTALLATION /yourpath/bandmerge
    setenv SIRTF_JAVA ${MOPEX_INSTALLATION}/java
    setenv SIRTF_BIN ${MOPEX_INSTALLATION}/bins
    setenv WRAPPER_UTILS ${MOPEX_INSTALLATION}/bins
    setenv WRAPDIR ${MOPEX_INSTALLATION}/bins
    setenv SIRTF_ANC ${MOPEX_INSTALLATION}/source
    set path = ( ${MOPEX_INSTALLATION}/bins $path )
    if ($?LD_LIBRARY_PATH) then
    setenv LD_LIBRARY_PATH ${MOPEX_INSTALLATION}/libs:${LD_LIBRARY_PATH}
    else
    setenv LD_LIBRARY_PATH ${MOPEX_INSTALLATION}/libs
    endif
    if ($?PERL_PATH) then
    else
    setenv PERL_PATH `which perl | sed "s/\(.*\)perl/\1/" `
    endif

    setenv SIRTF_QA cdf
    setenv SIRTF_CDF cdf
    setenv SIRTF_CAL cal

    Then in a Cshell type: source bandmerge.csh.

    NOTE: The bandmerge.csh file "borrows" some of the same environment variables used by MOPEX.  If you also
    use MOPEX, it's best to start a new shell to run Bandmerge and exit it when done.

    One can run the Perl script from the bandmerge directory, but it is often clearer to move to a separate "working" directory. For our example this is ./working_demo.
     
    For the demo: cd ./working_demo.

    Note the sub-directories ./data and ./cdf.  The data can be anywhere, provided a path is given.  The namelists, bandmerge_demo.nl and bmg1.nl and bmg2.nl, are in ./cdf. The initial band-pair registration uncertainty file, bpru.tbl, is there as well.  Log files for the bandmerge and getoff modules will also go into ./cdf. These log files are very useful for identifying the sources of failures. The final merged source list, newtbl.tbl, will be in the user-specified Output directory.

  • Dataset for this example:
  • In ./data are sections of images in IRAC channels 1, 3, and MIPS 24 microns from the S-COSMOS survey (PI: D. Sanders). The dataset includes images, coverage and uncertainty maps, with names like irac1.fits, irac1_cov.fits, and irac1_unc.fits.  We will choose irac1.fits to be the reference image for the fiducial plane.  There are also APEX extraction tables, e.g. irac1_extract.tbl.


    III. How to use Bandmerge

  • The input source files
      1. Bandmerge required input file format:

        Bandmerge can only take input data in IPAC table format with the first 8 required columns shown below.  Additional columns are allowed.  The Perl script does a check of the headers.  Specifically, it will count the actual number of sources in the input file, and internally add or update the keyword Total_PS_Number if it is not consistent. Similarly, keywords CDELT1,2 and NAXIS1,2 are taken from the reference FITS image header or the FIF table.  The Bandmerge namelist also has a block of parameters which maps out the instruments and channel numbers, and keywords INSTRUME and CHNLNUM are added internally as needed. 

        Aperture fluxes are usually part of an APEX run and one generally wants them in the final bandmerged table.  So Bandmerge will carry along the number of apertures given by N_Apertures.  Both the flux value for aperture n "aperture(n)" and the bad area in pixels "bad_pix(n)" will be carried along.

        An optional input column is flux signal-to-noise ratio, SNR, which Bandmerge can use to bin sources into different groups while computing statistics.
        \int Total_PS_Number = 714
        \float CDELT1 = -1.6667e-04
        \float CDELT2 = 1.6667e-04
        \int NAXIS1 = 501
        \int NAXIS2 = 501
        \char INSTRUME = IRAC
        \int CHNLNUM = 1
        \int N_Apertures = 1
        |srcid |flux |delta_flux |RA |delta_RA |Dec |delta_Dec |delta_RAD |aperture1 |bad_pix1 |
        |i |r |r |d |r |d |r |r |r |r |
        1 25.233 3.490 54.229270 0.000006 -29.835540 0.000009 -0.000002 12.610 0.0
        2 6.376 0.969 54.215940 0.000011 -29.833250 0.000016 -0.000007 4.457 0.0
      2. APEX tips for Bandmerging (not required for demo):

        The most direct way to generate input files with the appropriate format is to use the SSC's photometry extraction software APEX.  For descriptions on how to use APEX, refer to the MOPEX  page.  As described above, Bandmerge requires certain columns of data. With APEX, make sure the "select" module is allowing these columns through to the final output extract.tbl.  (If using the GUI on Mac computers, use Apple-click to toggle selected columns; for Unix systems, use Control-left mouse.)  

  • Prepare to run Bandmerge
      1. Defining the fiducial image plane

        In this test case, we do not have an FIF.tbl file, so we will have Bandmerge generate one using the IRAC channel 1 image as the master reference.  To do this, comment out the FIF_FILE_NAME and specify in the namelist:
      2. REFERENCE_FITS_FILENAME = data/irac1.fits
        #FIF_FILE_NAME = myfif.tbl  
        This will produce an output FIF.tbl in the working directory like the following:
        \char comment=fif.tbl created by make_fif in bandmerge script
        \real CRVAL1=150.092822
        \real CRVAL2=2.1826860
        \real CRPIX1=-3569.926508
        \real CRPIX2=-3450.384412
        \int NAXIS1=501
        \int NAXIS2=501
        \real CDELT1=-0.000166667
        \real CDELT2=0.000166667
        \real CROTA2=0
        \char CTYPE1=RA---TAN
        \char CTYPE2=DEC--TAN
        \char PROJTYPE=TAN
        \real EXTENT_X=0.083500167
        \real EXTENT_Y=0.083500167
      3. Band-pair registration uncertainty file:

        Bandmerge requires an initial band-pair registration uncertainty file, bpru.tbl, in ./cdf. Here Columns 1 and 2 specify the pair of bands, Columns 3, 4 and 5 are the positional shift uncertainties between two bands in X and Y and a cross term shift (XY). There is a default file typical for the Spitzer bands provided as a part of the bandmerge package. Using the default file provided should work for most users.  This file can contain the initial offset values for each pair of 7 bands, even though you might be using fewer bands.
        \char comment = Spitzer band-pair registration uncertainties
        \ Generated by getoff vsn 1.91 A60816 on Thu Jan 11 12:16:05 2007
        |seed_index|cand_index| X_sigma | Y_sigma |XY_csd |
        | int | int | real | real | real |
        1 2 0.15 0.15 0.0
        1 3 0.15 0.15 0.0
        1 4 0.15 0.15 0.0
        1 5 0.15 0.15 0.0
        1 6 2.00 2.00 0.0
        1 7 2.00 2.00 0.0
        2 3 0.15 0.15 0.0
        2 4 0.15 0.15 0.0
        2 5 0.15 0.15 0.0
        2 6 2.00 2.00 0.0
        2 7 2.00 2.00 0.0
        3 4 0.15 0.15 0.0
        3 5 0.15 0.15 0.0
        3 6 2.00 2.00 0.0
        3 7 2.00 2.00 0.0
        4 5 0.15 0.15 0.0
        4 6 2.00 2.00 0.0
        4 7 2.00 2.00 0.0
        5 6 2.00 2.00 0.0
        5 7 2.00 2.00 0.0
        6 7 2.00 2.00 0.0

        The uncertainty values will be recalculated by Bandmerge on each iteration and new bpru files written.

  • Set Bandmerge Parameters:
  • Bandmerge is controlled by a set of namelists, which are stored in the ./cdf directory. The first, e.g. bandmerge_demo.nl, controls the run. If you specify in bandmerge_demo.nl that you want to run the bandmerge-getoffset-bandmerge step iteratively 2 times, you will need another two namelists (with fixed names), bmg1.nl and bmg2.nl, also in ./cdf.

    Most of the namelist parameters should give acceptable results as is.  Arrows describe some important
    parameters.   For other data, edit the PointSourceList_Filenames, Reference file, and
    Instrument_Channel ID's.
    1. bandmerge.nl

      This namelist is required to run bandmerge.pl. It looks like the following:
      convert_sky_to_cartesian = 1   ----->  this switch converts (RA DEC) into (X Y) positions
      run_bandmerge = 1 -----> this turns on/off the bandmerge module.
      convert_cartesian_to_sky = 1 -----> this switch converts (X Y) to (RA DEC) in the final merged output.

      #input files, PointSourceList_Filename has to be sequential
      #
      PointSourceList_Filename1 = data/irac1_extract.tbl ---> you can use the absolute path if the data are not in the current path
      PointSourceList_Filename2 = data/irac3_extract.tbl
      PointSourceList_Filename3 = data/irac4_extract.tbl

      # input to define the fiducial plan
      # bandmerge perl script will look for either one of these two input parameters,
      # if both parameters are not found, bandmerge will stop.
      REFERENCE_FITS_FILENAME = data/irac1.fits ---> you can use the absolute path if the data are not in the current path
      #FIF_FILE_NAME = fif.tbl ---> this has been commented out since we are using an image as reference

      # map out the channels with Spitzer ID's
      Instrument_Channel1 = IRAC_1 -----> IRAC_1 = 3.6, IRAC_2 = 4.5, IRAC_3 = 5.8, IRAC_4 = 8.0 (microns)
      Instrument_Channel2 = IRAC_3
      Instrument_Channel3 = IRAC_4 -----> MIPS_1 = 24, MIPS_2 = 70, MIPS_3 = 160 (microns)

      Input_BPRU_Filename = bpru.tbl -----> this is the initial band pair registration uncertainty file.
      -----> It can contain more bands than actually used.

      #needed for iterations. For no iteration, set Number_of_iterations = 0
      Number_of_iterations = 2 ----> number of iteration of bandmerge-getoffset-bandmerge. Cannot be zero.
      #correction type used in iterations
      clean_type = 3 ----> value of 1 means that the derived offsets are to be applied to
      ----> the source positions, value of 2 allows updates in (X,Y)
      ----> positional variances, value of 3 allows updates in both (X,Y)
      ----> positions and uncertainties.

      #default is 's2c'
      s2c_prefix = 'cnv' ----> the prefix to the files after (RA,Dec) have been converted to (X,Y).
      OUTPUT_DIR = output_bandmerge_demo ----> give absoute path if not in the current path
      #file of merged sources
      OUTPUT_FILE_NAME = 'newtbl.tbl' ----> Note the final output file is called newtbl.tbl, the intermediate output file
      ----> is called iter1_newtbl.tbl and iter2_newtl.tbl. This file will be in the
      ----> output directory.

      # the following parameter block is for bandmerge module.
      # Most parameters can be set as the default values as shown here
      # Chi_Sq_Max can be tuned to perform more stringent matches.
      #
      &BANDMERGEIN
      Comment = 'Generic namelist file for bandmerge - default values.',
      Output_STAT_Filename = 'statfile.tbl',
      Output_DUMP_Filename_Base = 'bm_dump',
      Output_SPCMB_Filename = 'spcmbfile.bm',
      Project = 1,
      ChiSq_Denom_Min = 1.0e-06,
      Chi_Sq_Max = 24.0, -----> Maximum allowed chi-square value used to specify the match.
      Pseudo_Chi_Sq_Max = 24.0,
      LR_Scale_Fact = 2.5,
      Epsilon = -1.0e+39,
      SigMin = 0.03,
      Pseudo_Pos_SF = 1.0,
      Pseudo_Phot_SF = 0.0,
      X_Window = 20.0,
      Y_Window = 20.0,
      Status_Check_Flag = 0,
      Status_Threshold = 0,
      Dump = 0,
      Trace_PS1 = 0,
      Trace_PS2 = 0,
      Trace_PS3 = 0,
      Trace_PS4 = 0,
      Trace_PS5 = 0,
      Trace_PS6 = 0,
      Trace_PS7 = 0,
      SNR_Threshold1 = 10.0,
      SNR_Threshold2 = 10.0,
      SNR_Threshold3 = 10.0,
      SNR_Threshold4 = 10.0,
      SNR_Threshold5 = 10.0,
      SNR_Threshold6 = 10.0,
      SNR_Threshold7 = 10.0,
      #Input_Table_Column1 = 'SNR', -----> To bin by SNR, put SNR column in input files and uncomment
      SNR_Bin1 = 20.0,
      SNR_Bin2 = 50.0,
      SNR_Bin3 = 100.0,
      SNR_Bin4 = 200.0,
      SNR_Bin5 = 500.0,
      SNR_Bin6 = 1000.0,
      SNR_Bin7 = 2000.0,
      SNR_Bin8 = 5000.0,
      SNR_Bin9 = 10000.0,
      NL_print = 0,
      &END
    2. bmg1.nl and bmg2.nl --- two additional namelists for subsequent iterations 1 and 2.

      During iterations to determine band pair systematic offsets, the bandmerge script is controlled by namelists with fixed names, bmg1.nl and bmg2.nl, and so on.   In our example the only difference between these files is that the Chi_Sq_Max parameter is set to be smaller for the first pass of bandmerge than for the second pass. The reason is that in order to get reliable estimates of the systematic offsets between pair of bands, it is better to use only very good matches, thus a smaller chi square value.  After any offsets between the band pairs have been computed and applied, one can allow larger chi square values to get more matches. The two example files are shown below:

      bmg1.nl

      &BANDMERGEIN
      Project = 1,
      ChiSq_Denom_Min = 1.0e-06,
      Chi_Sq_Max = 12.0,
      Pseudo_Chi_Sq_Max = 12.0,
      Epsilon = -1.0e+39,
      SigMin = 0.03,
      Pseudo_Pos_SF = 1.0,
      Pseudo_Phot_SF = 0.0,
      LR_Scale_Fact = 2.5,
      X_Window = 20.0,
      Y_Window = 20.0,
      Status_Check_Flag = 0,
      Status_Threshold = 0,
      SNR_Threshold1 = 10.0,
      SNR_Threshold2 = 10.0,
      SNR_Threshold3 = 10.0,
      SNR_Threshold4 = 10.0,
      SNR_Threshold5 = 10.0,
      SNR_Threshold6 = 10.0,
      SNR_Threshold7 = 10.0,
      SNR_Bin1 = 20.0,
      SNR_Bin2 = 50.0,
      SNR_Bin3 = 100.0,
      SNR_Bin4 = 200.0,
      SNR_Bin5 = 500.0,
      SNR_Bin6 = 1000.0,
      SNR_Bin7 = 2000.0,
      SNR_Bin8 = 5000.0,
      SNR_Bin9 = 10000.0,
      Warning_Max = 10,
      NL_print = 1,
      &END

      bmg2.nl

      &BANDMERGEIN
      Project = 1,
      ChiSq_Denom_Min = 1.0e-06,
      Chi_Sq_Max = 24.0,
      Pseudo_Chi_Sq_Max = 24.0,
      Epsilon = -1.0e+39,
      SigMin = 0.03,
      Pseudo_Pos_SF = 1.0,
      Pseudo_Phot_SF = 0.0,
      LR_Scale_Fact = 2.5,
      X_Window = 20.0,
      Y_Window = 20.0,
      Status_Check_Flag = 0,
      Status_Threshold = 0,
      SNR_Threshold1 = 10.0,
      SNR_Threshold2 = 10.0,
      SNR_Threshold3 = 10.0,
      SNR_Threshold4 = 10.0,
      SNR_Threshold5 = 10.0,
      SNR_Threshold6 = 10.0,
      SNR_Threshold7 = 10.0,
      SNR_Bin1 = 20.0,
      SNR_Bin2 = 50.0,
      SNR_Bin3 = 100.0,
      SNR_Bin4 = 200.0,
      SNR_Bin5 = 500.0,
      SNR_Bin6 = 1000.0,
      SNR_Bin7 = 2000.0,
      SNR_Bin8 = 5000.0,
      SNR_Bin9 = 10000.0,
      Warning_Max = 10,
      NL_print = 1,
      &END


    IV. Output from Bandmerge

    In our example, we have irac1_extract.tbl, irac3_extract.tbl, irac4_extract.tbl as the input files to Bandmerge, and they are in working_demo/data. The namelist for bandmerge is ./cdf/bandmerge_demo.nl. Now we run Bandmerge, by typing (in working_demo):

    prompt% bandmerge.pl  -n bandmerge_demo.nl

    This will give screen output like:
    prompt% bandmerge.pl -n bandmerge_demo.nl
    =================================================================
    Wrapper-script bandmerge.pl, Version 1.5

    path /stage/ssc-pipe/work/set11/postbcd/irk/mopex/tst_bins
    input ref fits = irac1sci.fits
    naxes = 3246 4103
    crvals = 150.092822 2.182686
    ctypes RA---TAN DEC--TAN
    cdelts = -0.000166667 0.000166667 crota2 = 0.
    proj = TAN extents = 0.541001082 0.683834701
    Executables pathname = /stage/ssc-pipe/work/set11/postbcd/irk/mopex/tst_bins/
    Ancillary-data pathname = /stage/ssc-pipe/work/set11/postbcd/irk/mopex/source/
    -r file name = fif.tbl
    -i file name = irac1sci_extract.tbl
    -o file name = Output_1/cnv_irac1sci_extract.tbl


    /stage/ssc-pipe/work/set11/postbcd/irk/mopex/tst_bins/s2c_trans -r fif.tbl -i irac1sci_extract.tbl -o Output_1/cnv_irac1sci_extract.tbl

    Pipeline Module S2C_TRANS Version 1.8
    Processing time Tue Jul 8 09:30:17 2008

    .
    .
    .

    Pipeline Module C2S_TRANS Version 2.0
    Processing time Tue Jul 8 09:31:26 2008

    c2s_trans_parse_namelist: Information only: Namelist not specified.
    Time = 8.420 seconds
    exit code 0

    Perl system() return code = 0
    c2s_trans terminated normally.

    System Exit Code ( c2s_trans): 0

    Wrapper-script bandmerge.pl terminated normally.




    Note:  On Mac OS X and Linux systems, ignore the messages "m: command not found" near the end.  These are just some
    timing scripts that are not vital.

    After executing the Bandmerge Perl script, let us look at the output. All of the log files are stored in the ./cdf directory.  Look at these to help diagnose errors.  The science outputs are stored in the Output directory which was specified in the namelist, "output_bandmerge_demo".  These outputs are:
    1. Intermediate output files:

      In the example the intermediate source lists have a prefix given in the namelist, cnv_, for example, cnv_irac1_extract.tbl.

      Bandmerge derives any systematic offsets between pair of bands, and corrects the input positions and positional uncertainties. The corrected files are called, for example, iter1_cnv_irac1_extract.tbl, after the first iteration of bandmerge and getoff, and iter2_* for the second iteration.
    2. Merged source lists:

      The name of the merged source photometry files is determined by the user's input in the namelist. In this example, we specified newtbl.tbl in the namelist.  After the first iteration, the merged source photometry file is called iter1_newtbl.tbl. It's the final merged source list that is called newtbl.tbl.

      The final merged source list has a format like the following.  Note how Bandmerge assigns the Outband number based on Spitzer wavelength order  (IRAC 1-4, MIPS 5-7):
    3. \BANDMERGE Vsn 1.39 A50707 run on 07/08/08 at 10:09:58
      \INT NBands = 3
      \INT Total_Merged_Number = 68619
      \CHAR Infile-1 = /ssc/pbcd/lyan/test/Output_1/iter2_cnv_irac1test.tbl
      \CHAR Infile-2 = /ssc/pbcd/lyan/test/Output_1/iter2_cnv_irac3sci_extract.tbl
      \CHAR Infile-3 = /ssc/pbcd/lyan/test/Output_1/iter2_cnv_mips24sci_extract.tbl
      \INT N_Apertures-1 = 0
      \INT N_Apertures-2 = 0
      \INT N_Apertures-3 = 0
      \CHAR Sort_&_Search_Direction = Y
      \CHAR Outband-1 = Infile-1
      \CHAR Outband-3 = Infile-2
      \CHAR Outband-5 = Infile-3
      \INT IntBlank = -999
      \REAL RealBlnk = -9.9e+09
      \CHAR CharBlnk = null
      |IDNum |X |Delta_X |Y |Delta_Y |Delta_XY |CnfFlg |srcid1 |flux1 |deltflux1 |srcid3 |flux3 |deltflux3 |srcid5 |flux5 |deltflux5 |RA |Delta_RA |Dec |Delta_Dec |Delta_RAD |
      |int |real |real |real |real |real |char |int |real |real |int |real |real |int |real |real |double |double |double |double |double |
      1 1499.437 3.779e-01 1.187 3.889e-01 8.333e-02 000000 46 7.10500e+00 6.64e-02 0 -9.9e+09 -9.9e+09 0 -9.9e+09 -9.9e+09 1.50016205e+02 6.2983e-05 2.18794596e+00 6.4817e-05 1.38883608e-05
      274 2644.048 3.693e-01 18.917 5.546e-02 1.749e-02 101000 229 1.07800e+02 2.23e-01 467 4.49600e+01 4.73e-01 0 -9.9e+09 -9.9e+09 1.49825299e+02 6.1550e-05 2.19087906e+00 9.2434e-06 2.91500575e-06
      1883 1691.435 3.589e-01 113.855 1.543e-01 4.052e-02 111111 1866 1.58800e+01 7.49e-02 3577 1.12000e+01 3.67e-01 86 7.12000e+01 4.38e+00 1.49984181e+02 5.9817e-05 2.20672199e+00 2.5717e-05 6.75334704e-06


      How to check merged entries in the final merged list:

      The 7th column, CnfFlag, indicates the source matching results among the three bands.  The flag has a width of Nbands*(Nbands-1). In the above example, Source 1 has CnfFlg=000000.  The first 2 digits (00) mean the lowest-wavelength band IRAC-3.6um (Outband 1) had no matches in IRAC-5.8um (Outband 3) and MIPS 24um (Outband 5). This is why srcid3 and srcid5 are zero. For source 274, CnfFlg = 101000, where the first two digits (10) mean IRAC-3.6um got a match in IRAC-5.8um, but not in MIPS 24um , and the second two digits (10) mean that IRAC-5.8um got a match in IRAC-3.6um, but not in MIPS 24um, and the third two digits (00) mean no MIPS 24um detection.

      Extrapolating the above definition to 4 bands, if a source has CnfFlag=111111111111, the first set of (111) means that the lowest-wavelength channel has a unique match with the other 3 wavelengths, and the second set of (111) means that the second lowest-wavelength channel has a match with the first band plus the two longest bands, etc.

      To select sources with a given match, the user can either parse the CnfFlag (called CF if only 2 bands), or read in fluxes and drop the ones that are -9.9e+09.   Close multiples are difficult for Bandmerge.  The user may need to check sources for nearby companions and examine the matches, perhaps taking fluxes into account.
    1. Diagnostic files:

      Bandmerge also outputs two statistical files in the Output dir. The first one is called spcmbfile.bm (the name can be adjusted in the namelist).  It gives the number of matched sources in each band combination:
      Sp.Comb.  Count
      ======== =====
      001 50471
      010 3315
      011 11186
      100 156
      101 833
      110 359
      111 2299
      ===============
      Total: 68619
      The digits of the first column correspond to bands in descending order, with 0 for no match and 1 for a match. Here, a total of 2299 sources got matched in all three bands, and 50471 sources had only IRAC chan1 detections.

      The second diagnostic file is statfile.tbl, whose name can also be adjusted in the namelist.  This file gives some statistics about each two-band matched set in the x,y plane.  The second column indicates that no binning by SNR was done - these are statistics for the Total set.
    2. \  BANDMERGE Vsn 1.39 A50707 run on 07/08/08 at 10:09:58
      \CHAR BMG_Output_file = /ssc/pbcd/lyan/test/Output_1/newtbl.tbl
      |B-P| SNR_bin | AveDX | AveDY | StdDevX | StdDevY | ChSqX | ChSqY | ChSqXY | NSum |
      | c | char | real | real | real | real | real | real | real | int |
      1-3 Total 0.05022 -0.02733 3.54535 1.27333 0.03611 1.09304 1.12867 4728
      1-5 Total -0.01574 -0.00661 1.57775 1.77159 0.95505 0.58009 1.54111 760
      3-5 Total -0.08312 -0.02329 2.08067 1.63772 0.10594 0.64384 0.75379 585



    SPITZER HOME - SPITZER SCIENCE - INSTRUMENTS - SCIENCE USER SUPPORT - SEARCH

    Contact us
    This file was last modified on Wed Aug 13 16:27:16 2008.
    California Institute of Technology Jet Propulsion Laboratory NASA