aboutsummaryrefslogtreecommitdiff
path: root/noao/twodspec/apextract/apimmap.x
diff options
context:
space:
mode:
authorJoe Hunkeler <jhunkeler@gmail.com>2015-08-11 16:51:37 -0400
committerJoe Hunkeler <jhunkeler@gmail.com>2015-08-11 16:51:37 -0400
commit40e5a5811c6ffce9b0974e93cdd927cbcf60c157 (patch)
tree4464880c571602d54f6ae114729bf62a89518057 /noao/twodspec/apextract/apimmap.x
downloadiraf-osx-40e5a5811c6ffce9b0974e93cdd927cbcf60c157.tar.gz
Repatch (from linux) of OSX IRAF
Diffstat (limited to 'noao/twodspec/apextract/apimmap.x')
-rw-r--r--noao/twodspec/apextract/apimmap.x48
1 files changed, 48 insertions, 0 deletions
diff --git a/noao/twodspec/apextract/apimmap.x b/noao/twodspec/apextract/apimmap.x
new file mode 100644
index 00000000..f001dc39
--- /dev/null
+++ b/noao/twodspec/apextract/apimmap.x
@@ -0,0 +1,48 @@
+include <imhdr.h>
+
+# AP_IMMAP -- Map an input image for the APEXTRACT package.
+
+pointer procedure ap_immap (image, apaxis, dispaxis)
+
+char image[ARB] # Image to map
+int apaxis # Aperture axis
+int dispaxis # Dispersion axis
+
+pointer im, immap()
+int i, j, imgeti(), clgeti()
+errchk immap
+
+data i/0/, j/0/
+
+begin
+ im = immap (image, READ_ONLY, 0)
+ if (IM_NDIM(im) == 1) {
+ call imunmap (im)
+ call error (0, "Image must be two dimensional")
+ } else if (IM_NDIM(im) > 2) {
+ if (i == 0)
+ call eprintf (
+ "Warning: Image(s) are not two dimensional (ignoring higher dimensions)\n")
+ i = i + 1
+ } else
+ i = 0
+
+ iferr (dispaxis = imgeti (im, "dispaxis"))
+ dispaxis = clgeti ("dispaxis")
+ if (dispaxis < 1 || dispaxis > 2) {
+ apaxis = dispaxis
+ dispaxis = max (1, min (2, clgeti ("dispaxis")))
+ if (j == 0) {
+ call eprintf (
+ "WARNING: Dispersion axis %d invalid; using axis %d\n")
+ call pargi (apaxis)
+ call pargi (dispaxis)
+ }
+ j = j + 1
+ } else
+ j = 0
+
+ apaxis = mod (dispaxis, 2) + 1
+
+ return (im)
+end