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/nproto/ir/irtools.x | |
download | iraf-linux-fa080de7afc95aa1c19a6e6fc0e0708ced2eadc4.tar.gz |
Initial commit
Diffstat (limited to 'noao/nproto/ir/irtools.x')
-rw-r--r-- | noao/nproto/ir/irtools.x | 147 |
1 files changed, 147 insertions, 0 deletions
diff --git a/noao/nproto/ir/irtools.x b/noao/nproto/ir/irtools.x new file mode 100644 index 00000000..50367440 --- /dev/null +++ b/noao/nproto/ir/irtools.x @@ -0,0 +1,147 @@ +include <imhdr.h> +include "iralign.h" + +# IR_INIT -- Initialize the ir structure + +procedure ir_init (ir) + +pointer ir # pointer to the ir strucuture + +begin + call malloc (ir, LEN_IRSTRUCT, TY_STRUCT) + + IR_IC1(ir) = NULL + IR_IC2(ir) = NULL + IR_IL1(ir) = NULL + IR_IL2(ir) = NULL + IR_OC1(ir) = NULL + IR_OC2(ir) = NULL + IR_OL1(ir) = NULL + IR_OL2(ir) = NULL + IR_DELTAX(ir) = NULL + IR_DELTAY(ir) = NULL + IR_DELTAI(ir) = NULL + IR_XRSHIFTS(ir) = NULL + IR_YRSHIFTS(ir) = NULL + IR_NRSHIFTS(ir) = NULL + IR_XCSHIFTS(ir) = NULL + IR_YCSHIFTS(ir) = NULL + IR_NCSHIFTS(ir) = NULL +end + + +# IR_PARAMS -- Get the ir structure parameters + +procedure ir_params (ir, im, outim) + +pointer ir # pointer to the ir strucuture +pointer im # pointer to the input image +pointer outim # pointer to the output image + +int nimcols, nimlines +real rval +int clgeti() +real clgetr() + +begin + IR_NXRSUB(ir) = clgeti ("nxrsub") + if (IS_INDEFI(IR_NXRSUB(ir)) || IR_NXRSUB(ir) < 1 || IR_NXRSUB(ir) > + IR_NXSUB(ir)) + IR_NXRSUB(ir) = (IR_NXSUB(ir) + 1) / 2 + IR_NYRSUB(ir) = clgeti ("nyrsub") + if (IS_INDEFI(IR_NYRSUB(ir)) || IR_NYRSUB(ir) < 1 || IR_NYRSUB(ir) > + IR_NYSUB(ir)) + IR_NYRSUB(ir) = (IR_NYSUB(ir) + 1) / 2 + + IR_XREF(ir) = clgeti ("xref") + IR_YREF(ir) = clgeti ("yref") + + nimcols = clgeti ("nimcols") + if (! IS_INDEFI(nimcols) && nimcols > 0 && nimcols >= IM_LEN(im,1)) + IM_LEN(outim,1) = nimcols + nimlines = clgeti ("nimlines") + if (! IS_INDEFI(nimlines) && nimlines > 0 && nimlines >= IM_LEN(im,2)) + IM_LEN(outim,2) = nimlines + + rval = clgetr ("oval") + if (! IS_INDEFR(rval)) + IR_OVAL(ir) = rval +end + + +# IR_ARRAYS -- Setup the ir structure arrays. + +procedure ir_arrays (ir, nimages) + +pointer ir # pointer to the ir strucuture +int nimages # number of images to be mosaiced + +begin + call malloc (IR_IC1(ir), nimages, TY_INT) + call malloc (IR_IC2(ir), nimages, TY_INT) + call malloc (IR_IL1(ir), nimages, TY_INT) + call malloc (IR_IL2(ir), nimages, TY_INT) + call malloc (IR_OC1(ir), nimages, TY_INT) + call malloc (IR_OC2(ir), nimages, TY_INT) + call malloc (IR_OL1(ir), nimages, TY_INT) + call malloc (IR_OL2(ir), nimages, TY_INT) + call malloc (IR_DELTAX(ir), nimages, TY_REAL) + call malloc (IR_DELTAY(ir), nimages, TY_REAL) + call malloc (IR_DELTAI(ir), nimages, TY_REAL) + + call malloc (IR_XRSHIFTS(ir), nimages, TY_REAL) + call malloc (IR_YRSHIFTS(ir), nimages, TY_REAL) + call malloc (IR_NRSHIFTS(ir), nimages, TY_INT) + call malloc (IR_XCSHIFTS(ir), nimages, TY_REAL) + call malloc (IR_YCSHIFTS(ir), nimages, TY_REAL) + call malloc (IR_NCSHIFTS(ir), nimages, TY_INT) +end + + +# IR_FREE -- Free the ir strucuture. + +procedure ir_free (ir) + +pointer ir # pointer to the ir strucuture + +begin + if (IR_IC1(ir) != NULL) + call mfree (IR_IC1(ir), TY_INT) + if (IR_IC2(ir) != NULL) + call mfree (IR_IC2(ir), TY_INT) + if (IR_IL1(ir) != NULL) + call mfree (IR_IL1(ir), TY_INT) + if (IR_IL2(ir) != NULL) + call mfree (IR_IL2(ir), TY_INT) + if (IR_OC1(ir) != NULL) + call mfree (IR_OC1(ir), TY_INT) + if (IR_OC2(ir) != NULL) + call mfree (IR_OC2(ir), TY_INT) + if (IR_OL1(ir) != NULL) + call mfree (IR_OL1(ir), TY_INT) + if (IR_OL2(ir) != NULL) + call mfree (IR_OL2(ir), TY_INT) + + if (IR_DELTAX(ir) != NULL) + call mfree (IR_DELTAX(ir), TY_REAL) + if (IR_DELTAY(ir) != NULL) + call mfree (IR_DELTAY(ir), TY_REAL) + if (IR_DELTAI(ir) != NULL) + call mfree (IR_DELTAI(ir), TY_REAL) + + if (IR_XRSHIFTS(ir) != NULL) + call mfree (IR_XRSHIFTS(ir), TY_REAL) + if (IR_YRSHIFTS(ir) != NULL) + call mfree (IR_YRSHIFTS(ir), TY_REAL) + if (IR_NRSHIFTS(ir) != NULL) + call mfree (IR_NRSHIFTS(ir), TY_INT) + if (IR_XCSHIFTS(ir) != NULL) + call mfree (IR_XCSHIFTS(ir), TY_REAL) + if (IR_YCSHIFTS(ir) != NULL) + call mfree (IR_YCSHIFTS(ir), TY_REAL) + if (IR_NCSHIFTS(ir) != NULL) + call mfree (IR_NCSHIFTS(ir), TY_INT) + + if (ir != NULL) + call mfree (ir, TY_STRUCT) +end |