diff options
author | Joe Hunkeler <jhunkeler@gmail.com> | 2015-08-11 16:51:37 -0400 |
---|---|---|
committer | Joe Hunkeler <jhunkeler@gmail.com> | 2015-08-11 16:51:37 -0400 |
commit | 40e5a5811c6ffce9b0974e93cdd927cbcf60c157 (patch) | |
tree | 4464880c571602d54f6ae114729bf62a89518057 /noao/digiphot/daophot/substar/dprestars.x | |
download | iraf-osx-40e5a5811c6ffce9b0974e93cdd927cbcf60c157.tar.gz |
Repatch (from linux) of OSX IRAF
Diffstat (limited to 'noao/digiphot/daophot/substar/dprestars.x')
-rw-r--r-- | noao/digiphot/daophot/substar/dprestars.x | 116 |
1 files changed, 116 insertions, 0 deletions
diff --git a/noao/digiphot/daophot/substar/dprestars.x b/noao/digiphot/daophot/substar/dprestars.x new file mode 100644 index 00000000..3b317960 --- /dev/null +++ b/noao/digiphot/daophot/substar/dprestars.x @@ -0,0 +1,116 @@ +include <tbset.h> +include "../lib/daophotdef.h" +include "../lib/apseldef.h" + + +# DP_RESTARS -- Read in the IDS of the stars to be excluded, find these stars +# in the photometry list, and set their magnitudes to INDEF. + +int procedure dp_restars (dao, im, ext, text_file) + +pointer dao # pointer to the daophot structure +pointer im # the input image descriptor +int ext # the exclude list file descriptor +bool text_file # text or table file ? + +real tx, ty, rjunk +pointer apsel, sp, fields, indices, key +int i, nrow, idno, nexcl, starno +int tbpsta(), dp_apsel(), dp_exfind() + +begin + # Get some pointers. + apsel = DP_APSEL(dao) + + # Get some working space. + call smark (sp) + call salloc (fields, SZ_LINE, TY_CHAR) + call salloc (indices, 1, TY_INT) + + # Initialize the read. + if (text_file) { + call pt_kyinit (key) + Memi[indices] = DP_PAPID + call dp_gappsf (Memi[indices], Memc[fields], 1) + } else { + call dp_tptinit (ext, Memi[indices]) + nrow = tbpsta (ext, TBL_NROWS) + } + + i = 1 + nexcl = 0 + repeat { + + # Read the next star. + if (text_file) { + if (dp_apsel (key, ext, Memc[fields], Memi[indices], idno, + rjunk, rjunk, rjunk, rjunk) == EOF) + break + } else { + if (i > nrow) + break + call dp_tptread (ext, Memi[indices], idno, rjunk, rjunk, rjunk, + i) + } + + # Subtract star from the photometry list. + if (idno > 0) { + starno = dp_exfind (Memi[DP_APID(apsel)], + Memr[DP_APXCEN(apsel)], Memr[DP_APYCEN(apsel)], + Memr[DP_APMAG(apsel)], DP_APNUM(apsel), idno) + if (starno > 0) { + if (DP_VERBOSE(dao) == YES) { + call dp_wout (dao, im, Memr[DP_APXCEN(apsel)+starno-1], + Memr[DP_APYCEN(apsel)+starno-1], tx, ty, 1) + call printf ( + "EXCLUDING - Star:%5d X =%8.2f Y =%8.2f Mag =%8.2f\n") + call pargi (Memi[DP_APID(apsel)+starno-1]) + call pargr (tx) + call pargr (ty) + call pargr (Memr[DP_APMAG(apsel)+starno-1]) + } + nexcl = nexcl + 1 + } else if (DP_VERBOSE(dao) == YES) { + call printf ("EXCLUDING - Star:%5d not found\n") + call pargi (idno) + } + } + + i = i + 1 + } + + if (text_file) + call pt_kyfree (key) + call sfree (sp) + + return (nexcl) +end + + +# DP_EXFIND -- Find the star to be exclude in the photometry list. + +int procedure dp_exfind (ids, xcen, ycen, mags, nstars, idex) + +int ids[ARB] # array of stellar ids +real xcen[ARB] # array of x coordinates +real ycen[ARB] # array of y coordinates +real mags[ARB] # array of magnitudes +int nstars # number of stars in photometry list +int idex # id of star to be excluded + +int i, found + +begin + found = 0 + do i = 1, nstars { + if (ids[i] != idex) + next + found = i + break + } + + if (found > 0) + mags[i] = INDEFR + + return (found) +end |