aboutsummaryrefslogtreecommitdiff
path: root/pkg/dataio/import/import.h
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/dataio/import/import.h
downloadiraf-osx-40e5a5811c6ffce9b0974e93cdd927cbcf60c157.tar.gz
Repatch (from linux) of OSX IRAF
Diffstat (limited to 'pkg/dataio/import/import.h')
-rw-r--r--pkg/dataio/import/import.h132
1 files changed, 132 insertions, 0 deletions
diff --git a/pkg/dataio/import/import.h b/pkg/dataio/import/import.h
new file mode 100644
index 00000000..6d80020a
--- /dev/null
+++ b/pkg/dataio/import/import.h
@@ -0,0 +1,132 @@
+# IMPORT.H - Data structure definition file for the IMPORT task.
+
+define SZ_IMPSTRUCT 40 # size of the import structure
+define SZ_EXPR (20*SZ_LINE) # max size of an expression
+define SZ_COMMENT 1024 # size of a database format comment
+define LEN_UA 20000 # minimum user header length
+define MAX_OPERANDS 1024
+
+# Input format parameters.
+define IP_INTERLEAVE Memi[$1] # type of data interleaving
+define IP_HSKIP Memi[$1+1] # bytes to skip before data
+define IP_TSKIP Memi[$1+2] # bytes to skip after data
+define IP_BSKIP Memi[$1+3] # bytes between image bands
+define IP_LSKIP Memi[$1+4] # bytes to skip at front of line
+define IP_LPAD Memi[$1+5] # bytes to skip at end of line
+define IP_SWAP Memi[$1+6] # type of byte swapping
+define IP_NPIXT Memi[$1+7] # number of pixtypes
+define IP_PIXTYPE Memi[$1+8] # pixtype ptr to operands
+define IP_NDIM Memi[$1+9] # number of input axes
+define IP_AXLEN Memi[($1+10)+$2-1] # input axis dimension
+
+# Output parameters.
+define IP_OUTPUT Memi[$1+20] # type of output generated
+define IP_OUTTYPE Memi[$1+21] # output pixel type
+define IP_NBANDS Memi[$1+22] # no. of outbands expr string
+define IP_OUTBANDS Memi[$1+23] # outbands expr string (ptr)
+define IP_IMHEADER Memi[$1+24] # file w/ header info (ptr)
+define IP_VERBOSE Memi[$1+25] # verbose output flag
+
+define IP_FORMAT Memi[$1+26] # format param
+define IP_BLTIN Memi[$1+27] # format is a 'builtin'
+define IP_FCODE Memi[$1+28] # builtin format code
+define IP_FSYM Memi[$1+29] # symtab pointer to db record
+define IP_IM Memi[$1+30] # output image pointer
+define IP_FD Memi[$1+31] # binary file pointer
+define IP_OFFSET Memi[$1+32] # binary file offset
+define IP_FLIP Memi[$1+33] # output image orientation flag
+define IP_COMPTR Memi[$1+34] # comment block pointer
+
+define IP_BUFPTR Memi[$1+35] # array of image buffers (ptr)
+define IP_NPTRS Memi[$1+36] # number of image buffer
+define IP_SZBUF Memi[$1+37] # size of image buffer (lines)
+
+define IP_CMAP Memi[$1+38] # image colormap (ptr)
+define IP_USE_CMAP Memi[$1+39] # use the image colormap?
+
+# Useful Macros
+define PTYPE Memi[IP_PIXTYPE($1)+$2-1]
+define OBANDS Memi[IP_OUTBANDS($1)+$2-1]
+define COMMENT Memc[IP_COMPTR($1)]
+define BUFFER Memi[IP_BUFPTR($1)+$2-1]
+
+
+#-----------------------------------------------------------------------------
+
+# Outbands structure
+define LEN_OUTBANDS 2
+define OB_EXPR Memi[$1] # expression string
+define OB_OP Memi[$1+1] # operand struct pointer
+define O_EXPR Memc[OB_EXPR(OBANDS($1,$2))]
+define O_OP OB_OP(OBANDS($1,$2))
+
+# Operand structure
+define SZ_TAG 15
+define LEN_OPERAND 6
+define IO_TAG Memi[$1] # operand tag name
+define IO_TYPE Memi[$1+1] # operand type
+define IO_NBYTES Memi[$1+2] # number of bytes
+define IO_NPIX Memi[$1+3] # number of pixels
+define IO_DATA Memi[$1+4] # line of pixels
+define OP_TAG Memc[IO_TAG($1)]
+
+
+# Format type flags
+define IP_NONE 1 # format derived from task params
+define IP_SENSE 2 # format divined from database
+define IP_NAME 3 # format derived from database
+define IP_BUILTIN 4 # format derived from database
+
+# Output type flags
+define IP_IMAGE 5 # generate an output image
+define IP_LIST 6 # list pixels (according to 'outbands')
+define IP_INFO 7 # print info about image format
+
+# Byte swapping flags
+define S_NONE 000B # swap nothing
+define S_ALL 001B # swap everything
+define S_I2 002B # swap short ints
+define S_I4 004B # swap long ints
+define SWAP_STR "|no|none|yes|i2|i4|"
+
+# Image flipping flags
+define FLIP_NONE 000B # don't flip the image
+define FLIP_X 001B # flip image in X
+define FLIP_Y 002B # flip image in Y
+
+# Pixtype pixel types
+define PT_BYTE 1 # byte data (no conversion)
+define PT_UINT 2 # unsigned integer
+define PT_INT 3 # signed integer
+define PT_IEEE 4 # ieee floating point
+define PT_NATIVE 5 # native floating point
+define PT_SKIP 6 # skip
+
+# Default task parameters.
+define DEF_SWAP S_NONE
+define DEF_INTERLEAVE 0
+define DEF_HSKIP 0
+define DEF_TSKIP 0
+define DEF_BSKIP 0
+define DEF_LSKIP 0
+define DEF_LPAD 0
+
+# Useful macros.
+define BAND_INTERLEAVED ((IP_NPIXT($1)==1)&&(IP_INTERLEAVE($1)==0))
+define LINE_INTERLEAVED ((IP_NPIXT($1)==1)&&(IP_INTERLEAVE($1)>1))
+define PIXEL_INTERLEAVED ((IP_NPIXT($1)>1)&&(IP_INTERLEAVE(ip)==0))
+
+# NTSC grayscale coefficients.
+define R_COEFF 0.299
+define G_COEFF 0.587
+define B_COEFF 0.114
+
+# Colormap definitions.
+define CMAP_SIZE 256 # Output colormap length
+define CMAP_MAX 255 # Maximum map value
+define CMAP Memc[$1+($2*CMAP_SIZE)+$3-1]
+
+define IP_RED 0
+define IP_GREEN 1
+define IP_BLUE 2
+