Isis 2 Documentation
moccal Documentation
moccal - Radiometric correction of Mars Global Surveyor MOC images
moccal performs radiometric corrections to images acquired by the Mars
Global Surveyor (MGS) MOC camera. MOC has one Narrow Angle (NA)
detector and 2 Wide Angle (WA) detectors. It also has two camera
systems, A and B. The B camera system is a backup and currently has
very little or no radiometric calibration information. It is supported
to a very limited extent but is not in use at this time.
The MGS MOC NA detector has a total of 2048 pixels. The WA Red and WA
Blue detectors have a total of 3456 pixels. Images from MOC may or may
not include all pixels in the acquired image. There are special summing
modes that are utilized on-board the spacecraft to average detector
pixels to combine them into a single output pixel value. Both NA and WA
detectors can utilize crosstrack (sample) and downtrack (line) summing
modes. The value of these modes indicate the number of samples and
lines, respectively, that were summed and averaged to result in the
pixel values stored in the input file to moccal specified in the FROM
parameter. These values are stored in the ISIS labels as
CROSSTRACK_SUMMING and DOWNTRACK_SUMMING, respectively. Note that this
will reduce the number of samples in the output image by a factor of at
most the crosstrack summing mode value. The NA is restricted to modes
of 1 through 8 for both crosstrack and downtrack summing. Furthermore,
the crosstrack and downtrack modes must be the same. For both WA
detectors, crosstrack and downtrack modes range from 1 to 127. Unlike
NA, WA crosstrack and downtrack summing modes can differ. There are two
additional special WA crosstrack summing modes. These modes are
indicated by crosstrack summing mode values of 13 and 27. Both of these
modes use specially configured tables to indicate the relative detector
hardware pixels involved in computing the output pixel value. These
modes are intended to maintain approximately equal spatial resolution
from nadir to limb. Crosstrack summing mode 13 has a resolution of
7.5 km/pixel and maximum number of output pixels of 768; mode 27 has
a resolution of 3.75 km/pixel with the maximum number of output pixels
of 384. moccal recognizes both these modes and applies appropriate
measures to radiometrically correct them.
The MOC camera has the ability to acquire images of differing sizes in
both line and sample. The starting hardware detector pixel for the
acquired image is specified by the ISIS label keyword,
FIRST_LINE_SAMPLE. The first pixel in the detector is indicated by a
value of 1. (Note that in the original PDS image products this is the
EDIT_MODE_ID keyword and is 0-based. In ISIS, FIRST_LINE_SAMPLE is a
PDS standard and is 1 plus this value, a 1-based numbering scheme.)
Note that all corrections are applied relative to the actual hardware
pixel.
moccal has a number of parameters required to process MGS MOC image
data. Most of these parameters are read from an ISIS parameter defaults
file located in $ISISMGSDATA. This file has the form:
$ISISMGSDATA/moc_parameters.def.xxx
where "xxx" is a positive number.
moccal will search for the parameter file with the highest number and
load all its default needed to process MOC images. Note that the
caller may explicity provide an alternative ISIS parameter defaults
file name in the "PARMFILE" input parameter if they have their own
set of defaults that applies to MOC data. See an existing defaults
file in $ISISMGSDATA for details on how to configure this file.
The MOC response equation (without pixel-to-pixel variation terms) is as
follows:
dn = a * (r * ex + dc * ex + g) + (z - off)
where r is the average signal being generated at the focal
plane (in DN/msec at minimum gain), z is the fixed zero
offset, off is the commanded variable offset, dc is the dark
current term (in DN/msec at minimum gain), g is the gain-
dependant offset (in DN at minimum gain), a is the commanded
system gain (where minimum gain is 1 and all other gains
are > 1) and ex is the exposure time in milliseconds.
moccal computes "r" from "dn" at every pixel in the input MOC image.
Hence, the actual equation moccal implements is as follows:
r = ((dn - z + off) / a - g) / ex - dc
Note that moccal allows the user to explicitly provide some of these
variables that would override the defaults provided in MOC calibration
documents or through refinement via empirical evaluations. The "DC"
parameter if provided by the user will be substituted for "dc" in the
above equation. The "GAIN" parameter will be substituted for "g" in the
equation and "OFFSET" will be substituted for "z".
The MOC WA camera has an additional capability to change the commanded
gain state (a) and offset (off) at any time during image acquistion.
The approximate time these changes are made is provided in a file called
"wago.tab". This file can be found on all MOC CDROM products under the
"index" directory. This table, called a "WAGO" (Wide Angle Gain Offset)
table, contains one entry per line of four fields. All fields are
double quoted. The first field is the WA detector for which the gain
and offset change occurs, the second is the SCLK time of the change, the
third is the hexidecimal code of the new gain mode identifier and the
fourth is the offset mode identifier. The WA detector will be either
"RED" or "BLUE". The SCLK is the spacecraft clock count of the time at
which the command to change gain and offset was initiated. The gain
mode identifier indicates a gain value that is stored in a table of
gain values. The offset mode identifier is actually specified in
factors of 5 DN. Hence, if the commanded offset mode is "5", then "off"
in the above calibration equation is set to 25 (5 * 5 = 25). Any number
of these WAGO changes can occur during WA image acquisition. WAGO
changes are apparent as an abrupt change in brightness at a particular
line. Beware, not all changes are WAGOs as this is also a
characteristic of dropped data.
moccal gets WAGO tables from files read out of the MOC parameter
defaults file. The default WAGO configuration is to read a WAGO
index file that records WAGO table file names, the filter contained
within that table and specifies starting and ending SCLK coverage
of WAGOs in that table. Note that the files in the index can be the
same as most WAGO tables contain entries for both filters. Only those
WAGO tables are read and searched for the particular filter. There
is another keyword in the parameter file that allows the user to
explicitly provide the name of a WAGO table. This can be used instead
of or augment the existing WAGO table index. See the parameter file
for details.
moccal has gone the distance in ensuring that (1) the same WAGO table is
not read more than once, and (2) all redundant WAGOs are removed from
the resulting search. This is critical because should redundant WAGOs
occur, subsequent WAGO changes can be missed. Upon reading all WAGOs
that apply to the input (FROM) image, they are sorted by time and the
line that the WAGO occurs is computed. Only one WAGO per line is
considered and this is the first occuring WAGO in the sorted list. All
others that occur on the same line are discarded.
As the timing knowledge of the gain-offset changes is only accurate to
1/8 of a second, and the WA line rate is somewhat faster than this and
not an even multiple of 1/8 second, the line on which the brightness
discontinuity occurs may not match precisely the line computed from the
image start time, line rate, and known time of state change. In
addition, changes in highly-summed images (such as global map swaths)
may result in summed output lines having been created in the instrument
from unsummed input lines taken in different states. moccal attempts to
detect lines that exhibit this signature and corrects them using a
brightness matching algorithm. With the WA line rate at 75ms, for a
downtrack summing mode of 1, the change should occur no more than two
lines before or after the computed line of the change. moccal looks in
this window of transition lines and applies an averaging techinque to
correct them if NULLWAGO="NO". If NULLWAGO="YES", then these lines are
assigned the ISIS NULL value and can be handled later using alternative
processing techniques.
Additional pixel-to-pixel variations are corrected by a detector
coefficient file also specified in the parameter defaults file. This
file has been provided after analysis of the calibration data taken
prior to and after the launch of MGS. Certain detectors may not have
these coefficients derived and thus will not have this correction
applied. If these files do exist, they are typically taken from the
$ISISMGSDATA directory. The file is expected to contain any number of
comments indicated by a '#' as the first character in a line. The
first non-blank or uncommented line must contain the number of values
(i.e., one per line) of pixel coefficients for this detector. This
must be the exact number of pixels in the given detector, 2048 for the
MOC NA detector and 3456 for the MOC WA Red and Blue detectors. All
non-blank, uncommented lines after the detector count expects two values
per line. The first is a multiplicative value followed by an additive
value. These values are applied to the value "r" computed in the above
equation to correct for individual pixel variation. Note that some
detectors, namely WA Blue, may not have a pixel variation correction
derived. For these cases, moccal will report it and apply the
calibration equation without pixel-to-pixel variation applied. The user
may also provide pixel-to-pixel variation correction file of their own,
or when one becomes available or is modified for a given detector in the
parameter defaults file. This file must adhere to the expected format
for coefficient files as described above.
The user also has the option to request the output of moccal to be in
either units of percent reflectance (CONV="YES") or in average signal
level at the focal plane (CONV="NO") in DN/msec. moccal has a set of
default I/F (percent reflectance) factors for each detector, NA and both
WA. Should they not have this value, a W0 of 0.0 will be detected and
I/F cannot be generated. moccal will detect occurances of W0=0.0 and
report this to the user whilst functioning as if CONV="NO" irregardless
of what may have been provided by the user for CONV. Note the caller
also has the ability to specify their own value for W0 as an input
parameter to moccal. Conversion to I/F takes place after calibration
and pixel-to-pixel variation correction.
If I/F values are requested by the user, moccal requires the distance
to the sun at the time the image was acquired. This information is
provided in a file from the value of "DISTFILE" specified in the ISIS
parameter defaults file. This file is a table that contains two values
per line the first being the day of the year, the second being the
distance to the Sun from Mars in IAU.
Prior to MGS MOC mapping phases, MOC NA downtrack summing modes
greater than 1 was implemented differently in onboard camera software.
A software patch was made at some point prior to normal mission
mapping phase that would be used throughout the mapping and extended
phases for the rest of the mission. moccal applies the following
algorithm for all MOC NA images: *ALL* NA images have the exposure
times multiplied by the downtrack summing mode. All NA images prior
to mapping phases has the recoreded GAIN mode value divided by the
downtrack summing mode and a new GAIN value is looked up in the table
that is closest to this value. It is substituted in the calibration
equation for the commanded gain value (a). The critical piece of
information needed for this algorithm is the time (spacecraft clock
count or SCLK) when this patch was uploaded to the spacecraft. This
time has been determined to be just prior to the first image acquired
in the normal mapping phase. This is image m0000001.imq and its SCLK
is 607568463:128 which corresponds to April 3, 1999, 01:00:40.4405 UTC.
None of the MOC WA images are affected by this algorithm.
Programmer: Kris Becker, USGS, Flagstaff, AZ
References:
"MOC2 Calibration Report, October 1997 [SCCS 10/17/97 version 1.3]"
"Software Interface Specification, Narrow Angle and Wide Angle
Standard Data Products (September 1999 (revised for MGS)
(formatted April 7, 2000))"
| Parm | Description | Default |
|---|---|---|
| FROM | Input file name | NONE |
| TO | Output file name | NONE |
| CONV | Convert to reflectance (I/F) | "YES" |
| W0 | Omega naught | -- |
| DC | Global dark current | -- |
| GAIN | Global gain | -- |
| OFFSET | Global offset YES, or NO | -- |
| PARMFILE | Alternate parameter defaults file where to get program parameters | -- |
| NULLWAGO | For WA images that have WAGOs, NULL transition lines | "NO" |
| OTYPE | Output pixel type | 3 |
| ORANGE | Output pixel data range | -- |
| USERNOTE | User comment |
ADDITIONAL NOTES:
| Parm | Description |
|---|---|
| FROM | Specify the input file to be corrected. |
| TO | Specify the output file. The result will be the radiometrically corrected image. The output values can either be output as counts/ms or absolute radiance. The ouput file can be 8, 16, or 32 bit which is defined by the OTYPE parameter shown below. |
| CONV | Write output in reflectance (I/F) or if CONV=NO, write as counts/ms. |
| W0 | Omega naught value in DNs/millisecond for 100% lambertian reflector at 1AU sun-target distance, gain state of 1.0 and bias of 0.0. Current defaults are contained in the MOC parameter defaults file. |
| DC | Dark current at the minimum gain. Current defaults are contained in the MOC parameter defaults file. |
| GAIN | Gain dependent offset. Current defaults are contained in the MOC parameter defaults file. |
| OFFSET | Fixed zero offset. Current defaults are contained in the MOC parameter defaults file. |
| PARMFILE | Alternative MOC parameter defaults file. moccal will look for a parameter defaults file using the file search specification of "$ISISMGSDATA/moc_parameters.def.*". It will select the file where the "*" resolves to the highest positive integer value. The user can copy this file and modify it to suit. This parameter is used to provide moccal with the MOC parameter defaults explicitly overridding the aforementioned search. See one of these parameter files for details on its contents. |
| NULLWAGO | This parameter is intended for WA images only and is used strictly for WA Red or Blue images that have WAGOs. The area where these WAGOs occur may have several lines that were acquired during the WAGO change. This has been observed to cause large variations in detector response. NULLWAGO when set to "NO" detects these lines and applies an averaging technique to attempt to correct them as they do contain actual data. This technique uses the average of each line to provide a baseline for expected line averages in the WAGO line transition area. If NULLWAGO is "YES", then the data is essentially discarded and the entire line is set to the ISIS NULL value rather than the averaging algorithm applied. moccal analyzes a region of five lines, the actual line computed where the WAGO change occurs and two lines above and below the actual line for expected averages. This is the WAGO line transition zone. The lines on either side of the WAGO transition zone are used to establish estimated averages of lines in this zone. The expected average for each line in the WAGO zone is interpolated using these two endpoint averages. Any average that differs more than one and half times the interpolation delta value from the expected average is deemed a bad line. If NULLWAGO is "NO", each pixel in this line is then divided by the orignal average and then multiplied by the interpolated average. This raises or lowers the DN levels to the expected average while preserving the data in the line. Otherwise all pixels in the line are set to the ISIS NULL value. |
| OTYPE | Output pixel data type. Permitted values are:
0 - output type is same as input file pixel type
1 - 8-bit (integer with type conversion parameters)
2 - 16-bit (integer with type conversion parameters)
3 - 32-bit (floating point)
|
| ORANGE | Output pixel data range. If the output pixel type is 1 (8-bit integer with type conversion parameters) or 2 (16-bit integer with type conversion parameters), then the type conversion parameters in the output file will be set to values that allow representing the specified range of output values. Output values outside this range will be stored as the special "representation saturation" value. The ORANGE parameter is ignored if the output pixel type is 3 (32-bit floating point) since type conversion parameters are not applicable to floating point pixel values. If both ORANGE(1) and ORANGE(2) are 0.0, then the type conversion parameters in the output file will automatically be set to allow representing the same range of values as can be represented in the input file. (The user will be required to supply a specific range for ORANGE if the input pixel type is 3 (32-bit floating point) and the output pixel type is 1 (8-bit with type conversion parameters) or 2 (16-bit with type conversion parameters)). |
| USERNOTE | Comment from the user. This will be recorded in the ISIS session log file and also in the History entry that is put into the History object of the output file. |
Contact us online at the Isis Support Center: http://isisdist.wr.usgs.gov