diff options
author | Joseph Hunkeler <jhunkeler@gmail.com> | 2015-07-08 20:46:52 -0400 |
---|---|---|
committer | Joseph Hunkeler <jhunkeler@gmail.com> | 2015-07-08 20:46:52 -0400 |
commit | fa080de7afc95aa1c19a6e6fc0e0708ced2eadc4 (patch) | |
tree | bdda434976bc09c864f2e4fa6f16ba1952b1e555 /noao/imred/src/doslit/sdoarcs.cl | |
download | iraf-linux-fa080de7afc95aa1c19a6e6fc0e0708ced2eadc4.tar.gz |
Initial commit
Diffstat (limited to 'noao/imred/src/doslit/sdoarcs.cl')
-rw-r--r-- | noao/imred/src/doslit/sdoarcs.cl | 101 |
1 files changed, 101 insertions, 0 deletions
diff --git a/noao/imred/src/doslit/sdoarcs.cl b/noao/imred/src/doslit/sdoarcs.cl new file mode 100644 index 00000000..19b8f3af --- /dev/null +++ b/noao/imred/src/doslit/sdoarcs.cl @@ -0,0 +1,101 @@ +# SDOARCS -- Determine dispersion relation for spectrum based on refernece arcs. + +procedure sdoarcs (spec, arcref1, reextract, logfile, batch) + +file spec +file arcref1 +bool reextract +file logfile +bool batch + +struct *fd + +begin + file temp, arc1, arc2, str1 + string imtype, mstype, reid + bool verbose1 + int i, n + + imtype = "." // envget ("imtype") + i = stridx (",", imtype) + if (i > 0) + imtype = substr (imtype, 1, i-1) + mstype = ".ms" // imtype + n = strlen (imtype) + + temp = mktemp ("tmp$iraf") + + for (j=1; j<=2; j+=1) { + + # Setup interactive/batch parameters + if (batch) { + verbose1 = no + reid = "no" + } else { + verbose1 = verbose + reidentify.answer.p_mode = "h" + reid = reidentify.answer + reidentify.answer.p_mode = "q" + if (reid == "no") + reid = "yes" + } + + # The reference spectra refer initially to the 2D image. At the + # end we will reset them to refer to the 1D spectra. + + hselect (spec, "refspec"//j, yes, > temp) + fd = temp + i = fscan (fd, arc1, str1) + fd = ""; delete (temp, verify=no) + if (nscan() < 1) + break + + # Strip possible image extension. + i = strlen (arc1) + if (i > n && substr (arc1, i-n+1, i) == imtype) + arc1 = substr (arc1, 1, i-n) + + # Set extraction output and aperture reference depending on whether + # the arcs are to be rextracted using recentered or retraced object + # apertures. + + arc2 = spec // arc1 + if (access (arc2//mstype)) + imdelete (arc2//mstype, verify=no) + delete (database//"/id"//arc2//".ms*", verify = no, >& "dev$null") + + # Extract and determine dispersion function if necessary. + if (!access (arc2//mstype)) { + if (!batch) + print ("Extract and reidentify arc spectrum ", arc1) + print ("Extract and reidentify arc spectrum ", arc1, >> logfile) + apslitproc (arc1, output=arc2//".ms", references=spec, + background="none", clean=no, weights="none", + verbose=verbose1) + delete (database//"/id"//arc2//".ms*", verify = no, + >& "dev$null") + reidentify (arcref1//".ms", arc2//".ms", interactive=reid, + section="middle line", shift=0., step=1, nsum=1, + cradius=sparams.cradius, threshold=sparams.threshold, + nlost=100, refit=sparams.refit, trace=no, override=no, + newaps=yes, addfeatures=sparams.addfeatures, + coordlist=sparams.coordlist, match=sparams.match, + maxfeatures=50, minsep=2., database=database, + plotfile=plotfile, logfiles=logfile, verbose=verbose1) + + # If not reextracting arcs based on object apertures + # then save the extracted arc to avoid doing it again. + + if (arc1 != arc2) + imdelete (arc2//".ms", verify=no) + } + + # Set the REFSPEC parameters for multispec spectrum. + if (nscan() == 1) + hedit (spec//".ms", "refspec"//j, arc2//".ms", add=yes, + verify=no, show=no, update=yes) + else + hedit (spec//".ms", "refspec"//j, arc2//".ms "//str1, + add=yes, verify=no, show=no, update=yes) + } +end |