HiRISE

HiRISE.libHiRISE
Class Instrument

java.lang.Object
  extended by HiRISE.libHiRISE.Instrument

public class Instrument
extends Object

Instrument defines constants and static functions used to characterize the MRO HiRISE instrument.

Version:
2.14
Author:
Bradford Castalia, UA/PIRL

Field Summary
static int[] BINNING_FACTORS
          Valid binning factor values.
static int[] CCD_BANDWIDTHS
          The filter wavelength bandwidth for each CCD, indexed by CPMM number.
static int[] CCD_BINNED_PIXELS
          The number of image pixels per line for each binning factor.
static int[] CCD_BY_CPMM
          CCD sensor array numbers associated with each CCD, indexed by CPMM number.
static int[] CCD_CENTER_WAVELENGTHS
          The filter center wavelength for each CCD, indexed by CPMM number.
static int CCD_CHANNEL_UNKNOWN
          Special channel number when the actual channel number is unknown.
static int CCD_CHANNELS
          The number of data channels for each CCD assembly.
static String[] CCD_FILTER_NAMES
          The filter names associated with each CCD, indexed by CPMM number.
static double[] CCD_FOCAL_PLANE_X_OFFSETS_MM
          Focal plane X offset in millimeters for each CCD, indexed by CPMM number.
static double[] CCD_FOCAL_PLANE_Y_OFFSETS_MM
          Focal plane Y offset in millimeters for each CCD, indexed by CPMM number.
static int CCD_IMAGE_SENSORS
          The number of image sensors in a single CCD channel line.
static String[] CCD_NAMES
          The identification names associated with each CCD, indexed by CPMM number.
static double CCD_PIXEL_SIZE_MM
           
static int CCD_UNKNOWN
          Special CCD number when the actual CCD/CPMM number is unknown.
static int CCDS
          Total number of CCD array assemblies.
static int[] CPMM_BY_CCD
          CPMM numbers associated with each CCD, indexed by CCD sensor array number.
static int DELTA_LINE_TIME_MAX
          Engineering_Header Delta_Line_Time maximum valid value.
static double DELTA_LINE_TIME_TICK_NANOS
          Engineering_Header Delta_Line_Time nanoseconds per tick.
static int DLL_LOCKED
          96 MHz DLL locked telemetry value.
static int DLL_NOT_LOCKED
          96 MHz DLL out of lock telemetry value.
static double EXPOSURE_SETUP_MICROS
          Exposure operation setup time.
static double HIRISE_CLOCK_SUBTICK_MICROS
          HiRISE clock microseconds per subseconds tick.
static String ID
          Class identification name with source code version and date.
static double LINE_TIME_PRE_OFFSET
          Offset for Engineering_Header Delta_Line_Time when calculating line time.
static int MASKED_LINES
          Number of binned masked lines following the reverse readout lines.
static int MAX_BYTES_PER_PIXEL
          The maximum number of bytes per pixel value.
static int MAX_IMAGE_LINES
          Image lines upper limit (exclusive).
static int[] MAX_PIXEL_VALUES
          The maximum valid pixel values, indexed by bytes per pixel.
static double MRO_CLOCK_SUBTICK_MICROS
          MRO spacecraft clock microseconds per subseconds tick.
static int NOT_APPLICABLE_NUMBER
          Special integer value when it is not applicable in context.
static String NOT_APPLICABLE_STRING
          Special text value when it is not applicable in context.
static int REVERSE_READOUT_LINES
          Number of initial unbinned reverse readout observation lines.
static int SPACECRAFT_EPOCH
          MRO spacecraft clock epoch (year).
static int SPACECRAFT_NAIF_ID
          MRO NAIF spacecraft clock identifier.
static int SSR_BYTE_BOUNDARY
          Byte boundary (byte count modulus) for the solid state recorder.
static String[] STIMULATOR_LED_NAMES
          The identification names associated with each stim lamp.
static int STIMULATOR_LEDS
          The number of stimulator LEDs.
static int STORED_LUTS
          The number of stored LUTS available.
static int[] TDI_STAGES
          Valid TDI stages values.
static int TOTAL_BINNING_FACTORS
          The number of binning factors available to each CCD.
static int TOTAL_TDI_STAGES
          The number of time delay integration (TDI) stages available to each CCD.
static int TRIM_ADDITION_LINES
          Number of scan lines after the trim lines before the first observation line.
static int UNKNOWN_NUMBER
          Special integer value when the actual value is unknown.
static String UNKNOWN_STRING
          Special text value when the actual value is unknown.
static String WAVELENGTH_UNITS
          The units of wavelength measurement for the CCD filters.
 
Constructor Summary
Instrument()
           
 
Method Summary
static int calibration_lines_minimum(int TDI, int binning)
          Gets the minimum number of calibration lines.
static int focal_plane_x_offset(int CPMM, int binning)
          Gets the focal plane X offset pixels.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

ID

public static final String ID
Class identification name with source code version and date.

See Also:
Constant Field Values

CCDS

public static final int CCDS
Total number of CCD array assemblies.

See Also:
Constant Field Values

CCD_UNKNOWN

public static final int CCD_UNKNOWN
Special CCD number when the actual CCD/CPMM number is unknown.

See Also:
Constant Field Values

CCD_NAMES

public static final String[] CCD_NAMES
The identification names associated with each CCD, indexed by CPMM number. Each CCD sensor array has been given a name that includes an abbreviation for the color filter it uses and its CCD sensor array number. N.B.: The CCD sensor array number is not the same as the CPPM number reported by the instrument; use the CCD_BY_CPMM array to map CPMM numbers to CCD sensor array numbers, and the CPMM_BY_CCD to map CCD sensor array numbers to CPMM numbers.


CCD_FILTER_NAMES

public static final String[] CCD_FILTER_NAMES
The filter names associated with each CCD, indexed by CPMM number.


CCD_BY_CPMM

public static final int[] CCD_BY_CPMM
CCD sensor array numbers associated with each CCD, indexed by CPMM number. The instrument software refers to CCDs by their CPMM number. However, due to the way the CCD sensor arrays were wired to the CPPM modules the CCD sensor array numbers are not always the same as the CPMM number. This array maps CPMM numbers to the corresponding CCD sensor array number.

See Also:
CPMM_BY_CCD

CPMM_BY_CCD

public static final int[] CPMM_BY_CCD
CPMM numbers associated with each CCD, indexed by CCD sensor array number. N.B.: All other arrays in this Instrument class are indexed by CPMM number.

See Also:
CCD_BY_CPMM

WAVELENGTH_UNITS

public static final String WAVELENGTH_UNITS
The units of wavelength measurement for the CCD filters.

See Also:
Constant Field Values

CCD_CENTER_WAVELENGTHS

public static final int[] CCD_CENTER_WAVELENGTHS
The filter center wavelength for each CCD, indexed by CPMM number. Wavelength values are measured in WAVELENGTH_UNITS.


CCD_BANDWIDTHS

public static final int[] CCD_BANDWIDTHS
The filter wavelength bandwidth for each CCD, indexed by CPMM number. Wavelength values are measured in WAVELENGTH_UNITS.


CCD_FOCAL_PLANE_X_OFFSETS_MM

public static final double[] CCD_FOCAL_PLANE_X_OFFSETS_MM
Focal plane X offset in millimeters for each CCD, indexed by CPMM number. The X offset of each CCD's first detector pixel measured in millimeters in the HiRISE focal plane assembly relative to CPMM 6 (CCD sensor array 10) left fiducial.

See Also:
CCD_FOCAL_PLANE_Y_OFFSETS_MM

CCD_FOCAL_PLANE_Y_OFFSETS_MM

public static final double[] CCD_FOCAL_PLANE_Y_OFFSETS_MM
Focal plane Y offset in millimeters for each CCD, indexed by CPMM number. The Y offset of each CCD's first detector pixel measured in millimeters in the HiRISE focal plane assembly relative to CPMM 6 (CCD sensor array 10) left fiducial.

See Also:
CCD_FOCAL_PLANE_X_OFFSETS_MM

CCD_PIXEL_SIZE_MM

public static final double CCD_PIXEL_SIZE_MM
See Also:
Constant Field Values

CCD_CHANNELS

public static final int CCD_CHANNELS
The number of data channels for each CCD assembly.

Each CCD array assembly is composed of a pair of CCD channels. Both channels act together as an image scanning unit, but each channel has its own distinct imaging sensors and pixel line data store. All instrument observation data is organized by channel.

See Also:
Constant Field Values

CCD_CHANNEL_UNKNOWN

public static final int CCD_CHANNEL_UNKNOWN
Special channel number when the actual channel number is unknown.

See Also:
Constant Field Values

CCD_IMAGE_SENSORS

public static final int CCD_IMAGE_SENSORS
The number of image sensors in a single CCD channel line.

Each CCD device of an instrument channel is an array of sensors organized a across-track lines and down-track TDI line stages. Each line contains the same number of sensors.

See Also:
Constant Field Values

MAX_BYTES_PER_PIXEL

public static final int MAX_BYTES_PER_PIXEL
The maximum number of bytes per pixel value.

See Also:
Constant Field Values

MAX_PIXEL_VALUES

public static final int[] MAX_PIXEL_VALUES
The maximum valid pixel values, indexed by bytes per pixel. Any pixel value above the maximum is invalid. The instrument is expected to guarantee that only valid pixel values are produced. This array is indexed by the number of bytes per pixel - 1. During data downlink operations from the spacecraft lost packets gaps are filled with values with all bits set. Pixels with gap values are therefore certain to be above the MAX_PIXEL_VALUES for any number of bytes per pixel.


MAX_IMAGE_LINES

public static final int MAX_IMAGE_LINES
Image lines upper limit (exclusive). Line header bytes 3-5 contain the observation line number as recorded by the instrument. The most significant bit of this field is being reserved to accommodate an additional "bad line" flag. The instrument can not generate enough observation lines to cause this reserved bit to be set by a valid line number.

See Also:
Constant Field Values

TOTAL_TDI_STAGES

public static final int TOTAL_TDI_STAGES
The number of time delay integration (TDI) stages available to each CCD.

Each CCD device of an instrument channel is an array of sensors organized a across-track lines and down-track TDI line stages. Only one line has its sensor values sampled and scanned out to the CPMM storage for further processing. The sensor values from lines preceeding (up-track) the TDI line are cascaded into the following line to accumulate down-track sensor values. Since the rate at which sensor line values cascade (the scan line time) is set at the time the observation starts to coincide with the rate at which the image scene moves across the sensor lines, the effect is to build image signal strength and improve the signal-to-noise ratio at the expense of some image blurring due to timing and alignment inaccuracies.

See Also:
TDI_STAGES, Constant Field Values

TDI_STAGES

public static final int[] TDI_STAGES
Valid TDI stages values.


TOTAL_BINNING_FACTORS

public static final int TOTAL_BINNING_FACTORS
The number of binning factors available to each CCD.

After the selected CCD sensor line has its values read out into CPMM storage the accumulated observation sensor readings may be summed - binned - by pixel groups in both the cross-track and down-track directions. Each non-overlapping pixel group is square with a size specified by the binning factor. Each square of pixels is a patch of the image observation that, as a result of binning, produces a single new pixel value.

See Also:
BINNING_FACTORS, Constant Field Values

BINNING_FACTORS

public static final int[] BINNING_FACTORS
Valid binning factor values.


CCD_BINNED_PIXELS

public static final int[] CCD_BINNED_PIXELS
The number of image pixels per line for each binning factor. Normally the number of pixels per line is the number of CCD_IMAGE_SENSORS divided by the binning factor in use. However, for the odd binning factor 3 the number of pixels per line is rounded up.


STORED_LUTS

public static final int STORED_LUTS
The number of stored LUTS available.

See Also:
Constant Field Values

STIMULATOR_LEDS

public static final int STIMULATOR_LEDS
The number of stimulator LEDs.

See Also:
Constant Field Values

STIMULATOR_LED_NAMES

public static final String[] STIMULATOR_LED_NAMES
The identification names associated with each stim lamp.


EXPOSURE_SETUP_MICROS

public static final double EXPOSURE_SETUP_MICROS
Exposure operation setup time.

See Also:
Constant Field Values

DELTA_LINE_TIME_MAX

public static final int DELTA_LINE_TIME_MAX
Engineering_Header Delta_Line_Time maximum valid value.

See Also:
Constant Field Values

DELTA_LINE_TIME_TICK_NANOS

public static final double DELTA_LINE_TIME_TICK_NANOS
Engineering_Header Delta_Line_Time nanoseconds per tick.

See Also:
Constant Field Values

LINE_TIME_PRE_OFFSET

public static final double LINE_TIME_PRE_OFFSET
Offset for Engineering_Header Delta_Line_Time when calculating line time.

See Also:
Constant Field Values

TRIM_ADDITION_LINES

public static final int TRIM_ADDITION_LINES
Number of scan lines after the trim lines before the first observation line.

See Also:
Constant Field Values

REVERSE_READOUT_LINES

public static final int REVERSE_READOUT_LINES
Number of initial unbinned reverse readout observation lines.

See Also:
Constant Field Values

MASKED_LINES

public static final int MASKED_LINES
Number of binned masked lines following the reverse readout lines.

See Also:
Constant Field Values

DLL_LOCKED

public static final int DLL_LOCKED
96 MHz DLL locked telemetry value.

See Also:
Constant Field Values

DLL_NOT_LOCKED

public static final int DLL_NOT_LOCKED
96 MHz DLL out of lock telemetry value.

See Also:
Constant Field Values

SPACECRAFT_EPOCH

public static final int SPACECRAFT_EPOCH
MRO spacecraft clock epoch (year).

See Also:
Constant Field Values

MRO_CLOCK_SUBTICK_MICROS

public static final double MRO_CLOCK_SUBTICK_MICROS
MRO spacecraft clock microseconds per subseconds tick.

See Also:
Constant Field Values

HIRISE_CLOCK_SUBTICK_MICROS

public static final double HIRISE_CLOCK_SUBTICK_MICROS
HiRISE clock microseconds per subseconds tick.

See Also:
Constant Field Values

SPACECRAFT_NAIF_ID

public static final int SPACECRAFT_NAIF_ID
MRO NAIF spacecraft clock identifier.

See Also:
Constant Field Values

SSR_BYTE_BOUNDARY

public static final int SSR_BYTE_BOUNDARY
Byte boundary (byte count modulus) for the solid state recorder.

See Also:
Constant Field Values

UNKNOWN_NUMBER

public static final int UNKNOWN_NUMBER
Special integer value when the actual value is unknown.

See Also:
Constant Field Values

NOT_APPLICABLE_NUMBER

public static final int NOT_APPLICABLE_NUMBER
Special integer value when it is not applicable in context.

See Also:
Constant Field Values

UNKNOWN_STRING

public static final String UNKNOWN_STRING
Special text value when the actual value is unknown.

See Also:
Constant Field Values

NOT_APPLICABLE_STRING

public static final String NOT_APPLICABLE_STRING
Special text value when it is not applicable in context.

See Also:
Constant Field Values
Constructor Detail

Instrument

public Instrument()
Method Detail

calibration_lines_minimum

public static int calibration_lines_minimum(int TDI,
                                            int binning)
Gets the minimum number of calibration lines.

The minimum number of calibration lines is:

REVERSE_READOUT_LINES + ceil ((MASKED_LINES + TDI) / binning)

Where the number of REVERSE_READOUT_LINES and MASKED_LINES are Instrument constants, and TDI and Binning are the Engineering Header TDI_Stages and Binning_Factor values respectively. The calculated real value is rounded up to the next line boundary; i.e. any partial line resulting from the division is entirely included as a calibration line.

N.B.: The calculated number of calibration lines is the minimum that contain data only suitable for calibration purposes, as opposed to observation image lines that contain data for the target image acquisition. However, it is possible for additional image lines to be designated as calibration lines.

Parameters:
TDI - The number of time delay integration stages.
binning - The line binning factor.
Returns:
The minimum number of calibration lines.

focal_plane_x_offset

public static int focal_plane_x_offset(int CPMM,
                                       int binning)
                                throws Out_of_Range_Exception,
                                       Invalid_Argument_Exception
Gets the focal plane X offset pixels. The X offset in pixels of the first pixel within a CCD sensor array is provided for a given CPMM number and binning mode. This is useful for determining how each CCD channel is mapped into the focal plane. Note: CCD Channel 1 is to the left, and channel 0 is to the right, of the image observation data generated by each CCD array assembly.

Parameters:
CPMM - The CPMM number for which the offset is to be calculated.
binning - The applicable binning factor.
Returns:
The pixel offset relative to CPMM 6 (CCD sensor array 10), which is at offset 0.
Throws:
Out_of_Range - If the CPMM index is invalid.
Invalid_Argument - If binning is 0. Any other binning factor is accepted.
Out_of_Range_Exception
Invalid_Argument_Exception
See Also:
CCD_CHANNELS, BINNING_FACTORS

HiRISE

Copyright (C) Arizona Board of Regents on behalf of the Planetary Image Research Laboratory, Lunar and Planetary Laboratory at the University of Arizona