aboutsummaryrefslogtreecommitdiff
path: root/pkg/images/immatch/src/linmatch/rglpars.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 /pkg/images/immatch/src/linmatch/rglpars.x
downloadiraf-osx-40e5a5811c6ffce9b0974e93cdd927cbcf60c157.tar.gz
Repatch (from linux) of OSX IRAF
Diffstat (limited to 'pkg/images/immatch/src/linmatch/rglpars.x')
-rw-r--r--pkg/images/immatch/src/linmatch/rglpars.x104
1 files changed, 104 insertions, 0 deletions
diff --git a/pkg/images/immatch/src/linmatch/rglpars.x b/pkg/images/immatch/src/linmatch/rglpars.x
new file mode 100644
index 00000000..d5f66320
--- /dev/null
+++ b/pkg/images/immatch/src/linmatch/rglpars.x
@@ -0,0 +1,104 @@
+include <lexnum.h>
+include "linmatch.h"
+
+
+# RG_GLPARS -- Fetch the algorithm parameters required by the intensity scaling
+# task.
+
+procedure rg_glpars (ls)
+
+pointer ls #I pointer to iscale structure
+
+int ip, nchars
+pointer sp, str1, str2
+int clgeti(), nscan(), lexnum()
+real clgetr()
+
+begin
+ # Allocate working space.
+ call smark (sp)
+ call salloc (str1, SZ_LINE, TY_CHAR)
+ call salloc (str2, SZ_LINE, TY_CHAR)
+
+ # Initialize the linscale structure.
+ call rg_linit (ls, clgeti ("maxnregions"))
+
+ # Get the x and y shifts.
+ call rg_lsetr (ls, XSHIFT, clgetr("xshift"))
+ call rg_lsetr (ls, YSHIFT, clgetr("yshift"))
+
+ # Get the scaling algorithm parameters.
+ call clgstr ("scaling", Memc[str1], SZ_LINE)
+ call sscan (Memc[str1])
+ call gargwrd (Memc[str1], SZ_LINE)
+ call gargwrd (Memc[str2], SZ_LINE)
+ call rg_lsets (ls, BSSTRING, Memc[str1])
+ ip = 1
+ if (nscan() == 2)
+ call rg_lsets (ls, BZSTRING, Memc[str2])
+ else if (lexnum(Memc[str1], ip, nchars) == LEX_NONNUM)
+ call rg_lsets (ls, BZSTRING, Memc[str1])
+ else
+ call rg_lsets (ls, BZSTRING, "0.0")
+
+ call rg_lseti (ls, DNX, clgeti ("dnx"))
+ call rg_lseti (ls, DNY, clgeti ("dny"))
+ call rg_lseti (ls, MAXITER, clgeti ("maxiter"))
+ call rg_lsetr (ls, DATAMIN, clgetr ("datamin"))
+ call rg_lsetr (ls, DATAMAX, clgetr ("datamax"))
+ call rg_lseti (ls, NREJECT, clgeti ("nreject"))
+ call rg_lsetr (ls, LOREJECT, clgetr ("loreject"))
+ call rg_lsetr (ls, HIREJECT, clgetr ("hireject"))
+
+ call clgstr ("gain", Memc[str1], SZ_LINE)
+ call rg_lsets (ls, CCDGAIN, Memc[str1])
+ call clgstr ("readnoise", Memc[str1], SZ_LINE)
+ call rg_lsets (ls, CCDREAD, Memc[str1])
+
+ call sfree (sp)
+end
+
+
+# RG_PLPARS -- Save the intensity scaling parameters in the .par file.
+
+procedure rg_plpars (ls)
+
+pointer ls # pointer to the linscale structure
+
+pointer sp, str1, str2, str
+int rg_lstati()
+real rg_lstatr()
+
+begin
+ # Allocate working space.
+ call smark (sp)
+ call salloc (str1, SZ_LINE, TY_CHAR)
+ call salloc (str2, SZ_LINE, TY_CHAR)
+ call salloc (str, SZ_LINE, TY_CHAR)
+
+ # Set the x and y shifts parameters.
+ call clputr ("xshift", rg_lstatr (ls, XSHIFT))
+ call clputr ("yshift", rg_lstatr (ls, YSHIFT))
+
+ # Scaling algorithm parameters.
+ call rg_lstats (ls, BSSTRING, Memc[str1], SZ_LINE)
+ call rg_lstats (ls, BZSTRING, Memc[str2], SZ_LINE)
+ call sprintf (Memc[str], SZ_FNAME, "%s %s")
+ call pargstr (Memc[str1])
+ call pargstr (Memc[str2])
+ call clpstr ("scaling", Memc[str])
+ call clputi ("dnx", rg_lstati (ls, DNX))
+ call clputi ("dny", rg_lstati (ls, DNY))
+ call clputi ("maxiter", rg_lstati (ls, MAXITER))
+ call clputr ("datamin", rg_lstatr (ls, DATAMIN))
+ call clputr ("datamax", rg_lstatr (ls, DATAMAX))
+ call clputi ("nreject", rg_lstati (ls, NREJECT))
+ call clputr ("loreject", rg_lstatr (ls, LOREJECT))
+ call clputr ("hireject", rg_lstatr (ls, HIREJECT))
+ call rg_lstats (ls, CCDGAIN, Memc[str], SZ_FNAME)
+ call clpstr ("gain", Memc[str])
+ call rg_lstats (ls, CCDREAD, Memc[str], SZ_FNAME)
+ call clpstr ("readnoise", Memc[str])
+
+ call sfree (sp)
+end