HiRISE

HiRISE.HiPlan.HiCat
Class Observation_Record

java.lang.Object
  extended by HiRISE.HiPlan.HiCat.Observation_Record
All Implemented Interfaces:
CCD_Fields, Observation_Fields, Cloneable

public class Observation_Record
extends Object
implements CCD_Fields, Cloneable, Observation_Fields

An object that encapsulates the database parameters used in the planning and creation of a HiRISE observation.

A HiRISE observation consists of two groups of parameters: observation parameters, which apply to the observation as a whole, and CCD parameters, which apply only to individual CCDs. An observation record can have only one set of observation parameters, but it may have between 1 and 14 sets of CCD parameters. The Observation_Record object maintains two vectors for these data, one for the observation parameters and one for the CCD parameters. Each of these vectors is similar to that returned by the Database.Query(java.lang.String, int) method of the Database class, in that they are vectors of vectors of strings, organized such that the first vector in each is a list of field names for the remaining vectors, a "header" vector.

This class is designed primarily to be the data object for the Observation_Record_Broker class.

Many of the fields in this record are defined by the PTF software interface specification; the PTF_Record itself has more information about those fields.

Version:
2.79
Author:
Christian Schaller - UA/PIRL
See Also:
"Payload Target File and Integrated Payload Target File Software Interface Specification (JPL MRO SEQ032)"

Nested Class Summary
static class Observation_Record.ElectraMergeData
          A structure containing the data resulting from an MTT-driven merge between an ELECTRA observation and a HiRISE observation.
static class Observation_Record.SimplifiedObservation
           
static class Observation_Record.Stability
           
 
Field Summary
static double COLD_SETUP_DURATION
          The portion of the setup duration that takes place prior to the CPMM_PWR command.
static double DEFAULT_OBSERVATION_DURATION
          The default value for observation duration.
static double DEFAULT_SETUP_DURATION
          The default value for setup duration.
static double DURATION_PADDING
          A padding added to the minimum observation duration calculation.
static double EXPOSURE_TIMING_PAD
          The time between the issuance of the HIR_EXPOSE_TIME command and the exposure start time value therein.
static double FLIGHT_SOFTWARE_READOUT_PAD
          The flight software padding in seconds between end of imaging and start of readout.
static String ID
          Class identification name with source code version and date.
static Date INVALID_DATE
          The oldest date.
static double MIN_DELAY_FUDGE_FACTOR
          A fudge factor for the minimum delay-by duration.
 
Fields inherited from interface HiRISE.HiPlan.HiCat.CCD_Fields
BINNING, CCD_NAME, CPMM_RAW_DATA_VOLUME_BYTES, IMAGE_LINES, IMAGE_MEAN, LOOKUP_TABLE_K_VALUE, LOOKUP_TABLE_MAXIMUM, LOOKUP_TABLE_MEDIAN, LOOKUP_TABLE_MINIMUM, LOOKUP_TABLE_NUMBER, LOOKUP_TABLE_TYPE, LUT_TYPE_LINEAR, LUT_TYPE_NONE, LUT_TYPE_SQUARE_ROOT, LUT_TYPE_STORED, PLANNED_CCD_PARAMETERS_TABLE, PLANNED_OBSERVATIONS_ID, PLANNED_SNR, TDI, TRIM_LINES
 
Fields inherited from interface HiRISE.HiPlan.HiCat.Observation_Fields
ALTITUDE, ANCILLARY_DATA, ASCENDING_PASS, CALIBRATION, CENTER_LONGITUDE, CENTER_PLANETOCENTRIC_LATITUDE, CENTER_PLANETOGRAPHIC_LATITUDE, COMMAND_FILE_ASP_RECEIPT_TIME, COMMAND_FILE_DOM_RECEIPT_TIME, COMMAND_FILE_GENERATION_TIME, COMMAND_FILE_MRO_UPLINK_TIME, COMMAND_FILE_PATHNAME, COMMANDER, COMMENT, COMPLETE, CONTRAST_RATIO, COORDINATED_TRACK_HISTORY, COORDINATION, CPMM_00_ON, CPMM_01_ON, CPMM_02_ON, CPMM_03_ON, CPMM_04_ON, CPMM_05_ON, CPMM_06_ON, CPMM_07_ON, CPMM_08_ON, CPMM_09_ON, CPMM_10_ON, CPMM_11_ON, CPMM_12_ON, CPMM_13_ON, CPMM_POWER_FIELDS, CRC_CHECK, CRISM_COORDINATION, CTX_COORDINATION, DEFAULT_FELICS_COMPRESSION_RATIO, DEFUNCT, DEIMOS, DELAY_BY, DESCENDING_PASS, DUST, END_PLANETOCENTRIC_LATITUDE, END_PLANETOGRAPHIC_LATITUDE, ESTIMATED_EMISSION_ANGLE, ESTIMATED_INCIDENCE_ANGLE, ESTIMATED_PHASE_ANGLE, ESTIMATED_RECEIVE_TIME, ESTIMATED_ROLL_ANGLE, EXECUTED, FELICS_COMPRESSION_FLAG, FELICS_COMPRESSION_RATIO, FOOTPRINT_PLANETOCENTRIC_VERTICES, FOOTPRINT_PLANETOGRAPHIC_VERTICES, FROST_ALBEDO, FROST_COVER, HELIOCENTRIC_DISTANCE, HIGH_STABILITY, HIGH_STABILITY_LARGE_ROLL, HIGH_STABILITY_NADIR, HIGH_STABILITY_SMALL_ROLL, HISTORY, ICE, IMAGE_WIDTH, INCOMPLETE, INSTRUMENT_SET, KA_BAND_PLAYBACK, KEEP_STIM_LAMPS_ON_FLAG, KEY_ID, LAST_UPDATE, LSUBS, LUNA, LUT_SELECTOR_BG_FUDGE_FACTOR, LUT_SELECTOR_IR_FUDGE_FACTOR, LUT_SELECTOR_RED_FUDGE_FACTOR, MANUAL_DELAY_BY_FLAG, MARS, MINIMUM_SETUP_DURATIONS, MOON, NO, NOOP, NOPROC, NORMAL_STABILITY, NORMAL_STABILITY_LARGE_ROLL, NORMAL_STABILITY_NADIR, NORMAL_STABILITY_SMALL_ROLL, NOTES, OBSERVATION_DURATION, OBSERVATION_ID, OBSERVATION_TYPE, OFF, OFFSET_CENTER_ALTITUDE, OFFSET_CENTER_LONGITUDE, OFFSET_CENTER_PLANETOCENTRIC_LATITUDE, OFFSET_CENTER_PLANETOGRAPHIC_LATITUDE, ON, OPTICAL_DEPTH, ORBIT_ALTERNATIVES, ORBIT_NUMBER, ORBIT_PASS, OTHER_COORDINATION, PHOBOS, PI_APPROVAL_TO_RELEASE_FLAG, PLANNED, PLANNED_OBSERVATIONS_TABLE, PLANNER, PLAYBACK_MODE, PREDICT_TIME, RAW_DATA_VOLUME_BYTES, RELATIONAL_DATA, RELATIVE_TIMED_SEQUENCE_FLAG, REQUEST_CATEGORY, REQUEST_PRIORITY, REQUESTED, SCAN_EXPOSURE_DURATION, SCATTERING_SOURCE, SCATTERING_SOURCES, SCMF, SEQUENCE_ID, SETUP_DURATION, SKY, SPARE_3, STABILITY, STARS, START_PLANETOCENTRIC_LATITUDE, START_PLANETOGRAPHIC_LATITUDE, STATUS, STATUSES, STIMULATION_LAMP_BLG_ON, STIMULATION_LAMP_NIR_ON, STIMULATION_LAMP_POWER_FIELDS, STIMULATION_LAMP_RED_ON, SUCCESS_ACQUIRED_TIME, SURFACE_ROUGHNESS, SURFACE_TYPE, TARGET_NAME, TARGET_NAMES, X_BAND_PLAYBACK, YES
 
Constructor Summary
Observation_Record(String observation_id)
          Creates an Observation_Record with the specified observation identification.
Observation_Record(String observation_id, Vector observation_parameters)
          Creates an Observation_Record with the specified observation identification and observation parameters.
Observation_Record(String observation_id, Vector observation_parameters, Vector cpmm_parameters)
          Creates an Observation_Record with the specified observation identification, observation parameters vector, and CCD parameters vector.
 
Method Summary
 int active_cpmm_count()
          Returns the number of CCDs that are participating ("active") in this observation.
 void add_cpmm(String ccd)
          Adds a new, named CCD set to the CCD records.
 Vector all_cpmm_parameters()
          Gets the vector of vectors describing all CCDs for this observation.
 void all_cpmm_parameters(Vector cpmm_parameters)
          Sets the vector of vectors describing all CCDs for this observation.
 Double altitude()
           
 void altitude(Double altitude)
           
 String ancillary_data()
          Gets this observation's ancillary data.
 void ancillary_data(String ancillary_data)
          Sets this observation's ancillary data.
 void appendHistory(String message, String operator)
          Appends a message to the observation record's history.
 boolean blu_stim_power()
           
 void blu_stim_power(boolean enable)
           
 Integer ccd_binning(String ccd)
          Gets the xxx value for the indicated CCD.
 void ccd_binning(String ccd, int binning)
          Sets the xxx value for the indicated CCD.
 void ccd_binning(String ccd, Integer binning)
          Sets the xxx value for the indicated CCD.
static long ccd_data_volume_bytes(int image_lines, int tdi, int binning, boolean is_lut_compressed)
          Computes the data volume in bytes for a HiRISE CCD.
 long ccd_data_volume_bytes(String ccd)
          Computes the total data volume in bytes for a named CCD.
 Integer ccd_image_lines(String ccd)
          Gets the xxx value for the indicated CCD.
 void ccd_image_lines(String ccd, int image_lines)
          Sets the xxx value for the indicated CCD.
 void ccd_image_lines(String ccd, Integer image_lines)
          Sets the xxx value for the indicated CCD.
 Double ccd_image_mean(String ccd)
          Gets the xxx value for the indicated CCD.
 void ccd_image_mean(String ccd, double image_mean)
          Sets the xxx value for the indicated CCD.
 void ccd_image_mean(String ccd, Double image_mean)
          Sets the xxx value for the indicated CCD.
 String ccd_last_update(String ccd)
          Gets the xxx value for the indicated CCD.
 Integer ccd_lut_k_value(String ccd)
          Gets the xxx value for the indicated CCD.
 void ccd_lut_k_value(String ccd, int lut_k_value)
          Sets the xxx value for the indicated CCD.
 void ccd_lut_k_value(String ccd, Integer lut_k_value)
          Sets the xxx value for the indicated CCD.
 Integer ccd_lut_maximum(String ccd)
          Gets the xxx value for the indicated CCD.
 void ccd_lut_maximum(String ccd, int lut_maximum)
          Sets the xxx value for the indicated CCD.
 void ccd_lut_maximum(String ccd, Integer lut_maximum)
          Sets the xxx value for the indicated CCD.
 Integer ccd_lut_median(String ccd)
          Gets the xxx value for the indicated CCD.
 void ccd_lut_median(String ccd, int lut_median)
          Sets the xxx value for the indicated CCD.
 void ccd_lut_median(String ccd, Integer lut_median)
          Sets the xxx value for the indicated CCD.
 Integer ccd_lut_minimum(String ccd)
          Gets the xxx value for the indicated CCD.
 void ccd_lut_minimum(String ccd, int lut_minimum)
          Sets the xxx value for the indicated CCD.
 void ccd_lut_minimum(String ccd, Integer lut_minimum)
          Sets the xxx value for the indicated CCD.
 Integer ccd_lut_number(String ccd)
          Gets the xxx value for the indicated CCD.
 void ccd_lut_number(String ccd, int lut_number)
          Sets the xxx value for the indicated CCD.
 void ccd_lut_number(String ccd, Integer lut_number)
          Sets the xxx value for the indicated CCD.
 String ccd_lut_type(String ccd)
          Gets the xxx value for the indicated CCD.
 boolean ccd_lut_type(String ccd, String lut_type)
          Sets the xxx value for the indicated CCD.
static String ccd_name_to_cpmm_power(String ccd)
          Gets the name of a CPMM power field given a CCD name.
static Vector ccd_parameter_fields()
          Gets the static set of field names from the Planned_CCD_Parameters table.
 Integer ccd_planned_observations_id(String ccd)
          Gets the xxx value for the indicated CCD.
 void ccd_planned_observations_id(String ccd, Integer planned_observations_id)
          Sets the xxx value for the indicated CCD.
 Double ccd_planned_snr(String ccd)
          Gets the xxx value for the indicated CCD.
 void ccd_planned_snr(String ccd, double planned_snr)
          Sets the xxx value for the indicated CCD.
 void ccd_planned_snr(String ccd, Double planned_snr)
          Sets the xxx value for the indicated CCD.
 Integer ccd_tdi(String ccd)
          Gets the xxx value for the indicated CCD.
 void ccd_tdi(String ccd, int tdi)
          Sets the xxx value for the indicated CCD.
 void ccd_tdi(String ccd, Integer tdi)
          Sets the xxx value for the indicated CCD.
 Integer ccd_trim_lines(String ccd)
          Gets the xxx value for the indicated CCD.
 void ccd_trim_lines(String ccd, int trim_lines)
          Sets the xxx value for the indicated CCD.
 void ccd_trim_lines(String ccd, Integer trim_lines)
          Sets the xxx value for the indicated CCD.
 Double center_longitude()
          Gets the center longitude of the observation.
 void center_longitude(Double longitude)
          Sets the center longitude of the observation.
 Double center_planetocentric_latitude()
          Gets the center planetocentric latitude of the observation.
 void center_planetocentric_latitude(Double planetocentric_latitude)
          Sets the center planetocentric latitude of the observation.
 Double center_planetographic_latitude()
          Gets the center planetographic latitude of the observation.
 void center_planetographic_latitude(Double planetographic_latitude)
          Sets the center planetographic latitude of the observation.
 void clean_cpmm(String ccd)
          Replaces null values in the CCD record with default values.
 void clean_observation()
          Replaces null values in certain observation fields with reasonable default values.
 Object clone()
          Returns a clone of this observation.
 Date command_file_asp_receipt_time()
           
 void command_file_asp_receipt_time(Date command_file_asp_receipt_time)
           
 Date command_file_dom_receipt_time()
           
 void command_file_dom_receipt_time(Date command_file_dom_receipt_time)
           
 Date command_file_generation_time()
           
 void command_file_generation_time(Date command_file_generation_time)
           
 Date command_file_mro_uplink_time()
           
 void command_file_mro_uplink_time(Date command_file_mro_uplink_time)
           
 String command_file_pathname()
          Gets this observation's command file pathname.
 void command_file_pathname(String command_file_pathname)
          Sets this observation's command file pathname.
 String commander()
          Gets the name of the operator who commanded this observation.
 void commander(String commander)
          Sets the name of the operator who commanded this observation.
 String comment()
          Gets the observation's comment text.
 void comment(String comment)
          Sets the observation's comment text.
 Double contrast_ratio()
           
 void contrast_ratio(Double contrast_ratio)
           
 String coordinated_track_history()
          Gets the observation's coordinated track history text.
 void coordinated_track_history(String coordinated_track_history)
          Sets the observation's coordinated track history text.
static int cpmm_field_index(String field_name)
          Returns the index of a named field from the CCD parameter set.
 String cpmm_parameter(String ccd, String field_name)
          Returns the value of a named field from the CCD parameters of this Observation_Record.
 void cpmm_parameter(String ccd, String field_name, String field_value)
          Alters the value of a named field from the CCD parameters of this Observation_Record.
 Vector cpmm_parameters(String ccd)
          Gets the parameters for a specified CCD.
 void cpmm_parameters(String ccd, Vector parameters)
          Sets the parameters for a specified CCD.
 Date cpmm_power_start_time()
          Deprecated. use getCpmmPowerStartTime() instead.
static String cpmm_power_to_ccd_name(String cpmm_power)
          Gets the name of a CCD given a CPMM power field.
 boolean cpmm_power(int cpmm)
           
 void cpmm_power(int cpmm, boolean enable)
           
 boolean cpmm_power(String ccd)
           
 void cpmm_power(String ccd, boolean enable)
           
 Double cpmm_powered_on_duration()
          Deprecated. use getCpmmPoweredOnDuration() instead.
 double data_volume_megabits()
          Gets the estimated data volume in megabits for this observation.
 Double delay_by()
           
 void delay_by(Double delay_by)
           
 Double elevation()
           
 void elevation(Double elevation)
           
static Vector empty_ccd_parameters_record()
          Gets an empty CCD parameter record.
static Vector empty_observation_parameters_record()
          Gets an empty observation parameter record.
 Double end_planetocentric_latitude()
          Gets the ending planetocentric latitude of the observation.
 void end_planetocentric_latitude(Double planetocentric_latitude)
          Sets the ending planetocentric latitude of the observation.
 Double end_planetographic_latitude()
          Gets the ending planetographic latitude of the observation.
 void end_planetographic_latitude(Double planetographic_latitude)
          Sets the ending planetographic latitude of the observation.
 boolean equals(Object object)
          Indicates whether some other object is equal to this observation.
 Double estimated_emission_angle()
           
 void estimated_emission_angle(Double estimated_emission_angle)
           
 Double estimated_incidence_angle()
           
 void estimated_incidence_angle(Double estimated_incidence_angle)
           
 Double estimated_phase_angle()
           
 void estimated_phase_angle(Double estimated_phase_angle)
           
 Date estimated_receive_time()
           
 void estimated_receive_time(Date estimated_receive_time)
           
 Double estimated_roll_angle()
           
 void estimated_roll_angle(Double estimated_roll_angle)
           
 boolean felics_compression_flag()
          Gets the FELICS compression flag.
 void felics_compression_flag(boolean enable)
          Sets the FELICS compression flag.
 Double felics_compression_ratio()
           
 void felics_compression_ratio(Double felics_compression_ratio)
           
 List<Point2D> footprint_planetocentric_vertices()
           
 void footprint_planetocentric_vertices(List<Point2D> planetocentric_vertices)
           
 List<Point2D> footprint_planetographic_vertices()
           
 void footprint_planetographic_vertices(List<Point2D> planetographic_vertices)
           
 Double frost_albedo()
           
 void frost_albedo(Double frost_albedo)
           
 Double frost_cover()
           
 void frost_cover(Double frost_cover)
           
 double getAutoDelayDuration()
           
 double getCpmmExposureDuration(int cpmm)
          Gets the exposure duration of a CPMM.
 double getCpmmFlightSoftwareDuration(int cpmm)
          Gets the exposure duration for a particular CPMM using the HiRISE flight software algorithm.
 double getCpmmImageDuration(int cpmm)
          Gets the image duration of a CPMM.
 double getCpmmPaddedImageDuration(int cpmm)
          Gets the image duration of a CPMM with padding added for centering purposes.
 Double getCpmmPoweredOnDuration()
          Gets the duration for which the CPMMs are powered on and generating heat during this observation.
 Date getCpmmPowerStartTime()
          Gets the time at which the CPMMs are turned on and begin generating heat.
 double getExposureDuration()
          Gets the exposure duration for this observation.
static String getHistoryMessageText(String historyLine)
          Gets the message text from a line of observation history.
 double getImageDuration()
          Gets the image duration for this observation.
 double getMaxDelayDuration()
          Gets the maximum delay duration for this observation.
 double getMinDelayDuration()
          Gets the minimum delay duration for this observation.
 double getMinObservationDuration()
          Gets the minimum observation duration for this observation.
 double getPaddedImageDuration()
          Gets the padded image duration for this observation.
 double getReadoutDuration()
          Gets the readout duration in seconds.
 double getReadoutStart()
          Gets the readout start time relative to the start of exposure.
 double getReadoutStartOffset()
          Gets the offset in time between the end of imaging and the start of readout.
 double getTimingOffset()
          Gets the RED5 timing offset for this observation.
 Double heliocentric_distance()
           
 void heliocentric_distance(Double heliocentric_distance)
           
 String history()
           
 void history(String history)
           
 String instrument_set()
          Gets this observation's instrument set.
 void instrument_set(String instrument_set)
          Sets this observation's instrument set.
 boolean is_non_data()
          Deprecated. use isNonData() instead.
 boolean isEarlyReadout()
          Indicates whether this observation's readout starts early.
 boolean isElectraMerge()
          Returns whether this observation is the result of an MTT HiRISE/ELECTRA merge operation.
 boolean isElectraRideAlong()
          Returns whether this observation is a ride-along on an ELECTRA observation.
 boolean isNonData()
          Returns whether this observation does not produce data.
 boolean isSharadRideAlong()
          Returns whether this observation is a ride-along on a SHARAD observation.
 boolean isTruncatedExposure()
          Indicates whether this observation's exposure is truncated by readout.
 boolean isZeroDelayAllowed()
           
 boolean keep_stim_lamps_on_flag()
          Gets the "keep stim lamps on" flag.
 void keep_stim_lamps_on_flag(boolean enable)
          Sets the "keep stim lamps on" flag.
 Integer key_id()
          Gets the observation's key ID.
 void key_id(Integer key_id)
          Sets the observation's key ID.
 Double l_sub_s()
           
 void l_sub_s(Double l_sub_s)
           
 String last_update_formatted()
          Gets the last time this observation record was updated.
 String last_update()
          Gets the last time this observation record was updated.
static int line_data_volume_bytes(int binning, boolean is_lut_compressed)
          Computes the data volume in bytes for a single line of HiRISE data, for a single channel.
 Double line_time()
           
 void line_time(Double line_time)
           
 Integer lut_selector_bg_fudge_factor()
           
 void lut_selector_bg_fudge_factor(Integer fudgeFactor)
           
 Integer lut_selector_ir_fudge_factor()
           
 void lut_selector_ir_fudge_factor(Integer fudgeFactor)
           
 Integer lut_selector_red_fudge_factor()
           
 void lut_selector_red_fudge_factor(Integer fudgeFactor)
           
static String makeHistoryMessage(String message, String operator)
          Creates a formatted string suitable for adding to the observation record history.
 boolean manual_delay_by_flag()
          Gets the manual delay-by flag.
 void manual_delay_by_flag(boolean enable)
          Sets the manual delay-by flag.
 boolean nir_stim_power()
           
 void nir_stim_power(boolean enable)
           
 String notes()
           
 void notes(String notes)
           
 Double observation_duration()
           
 void observation_duration(Double observation_duration)
           
 String observation_id()
          Gets the unqiue identifier for this Observation_Record.
 void observation_id(String the_observation_id)
          Sets the unqiue identifier for this Observation_Record.
 String observation_mode()
          Gets the observation mode for ths observation.
static Vector observation_parameter_fields()
          Gets the static set of field names from the Planned_Observations table.
 String observation_parameter(String field_name)
          Returns the value of a named field from the observation parameters of this Observation_Record.
 void observation_parameter(String field_name, String field_value)
          Alters the value of a named field from the observation parameters of this Observation_Record.
 Vector observation_parameters()
          Gets the set of observation parameters.
 void observation_parameters(Vector observation_parameters)
          Sets the set of observation parameters.
 Integer observation_type()
          Gets this observation's type.
 void observation_type(Integer observation_type)
          Sets this observation's type.
 Double offset_center_altitude()
           
 void offset_center_altitude(Double altitude)
           
 Double offset_center_longitude()
           
 void offset_center_longitude(Double longitude)
           
 Double offset_center_planetocentric_latitude()
           
 void offset_center_planetocentric_latitude(Double planetocentric_latitude)
           
 Double offset_center_planetographic_latitude()
           
 void offset_center_planetographic_latitude(Double planetographic_latitude)
           
 Double optical_depth()
           
 void optical_depth(Double optical_depth)
           
 String orbit_alternatives()
          Gets this observation's orbit alternatives.
 void orbit_alternatives(String orbit_alternatives)
          Sets this observation's orbit alternatives.
 Integer orbit_number()
          Gets this observation's orbit number.
 void orbit_number(Integer orbit_number)
          Sets this observation's orbit number.
 String orbit_pass()
          Gets this observation's orbit pass.
 boolean orbit_pass(String orbit_pass)
          Sets this observation's orbit pass.
 Parameter parameter()
          Gets the observation record as a PVL parameter.
 boolean pi_approval_to_release_flag()
          Gets the flag indicating Principal Investigator approval is required to release the observation data products to the public.
 void pi_approval_to_release_flag(boolean enable)
          Sets the flag indicating Principal Investigator approval is required to release the observation data products to the public.
 String planner()
          Gets the name of the operator who planned this observation.
 void planner(String planner)
          Sets the name of the operator who planned this observation.
 String playback_mode()
          Gets the observation's playback mode.
 boolean playback_mode(String playback_mode)
          Sets the observation's playback mode.
 Date predict_time()
          Gets the observation's predict time.
 void predict_time(Date predict_time)
          Sets the observation's predict time.
 PTF_Record ptf_record()
          Gets the information in this observation record as a PTF record.
 void ptf_record(PTF_Record ptf_record, boolean ptf_dominates)
          Merges information from a PTF record into this observation record.
 long raw_data_volume_bytes()
          Computes the total estimated data volume in bytes for this observation.
 double readout_duration()
          Deprecated. use getReadoutDuration() instead.
 boolean red_stim_power()
           
 void red_stim_power(boolean enable)
           
 String relational_data()
          Gets this observation's relational data.
 void relational_data(String relational_data)
          Sets this observation's relational data.
 boolean relative_timed_sequence_flag()
           
 void relative_timed_sequence_flag(boolean enable)
           
 int remove_cpmm(String ccd)
          Removes a named CCD set from the CCD records.
 String request_category()
          Gets this observation's request category.
 void request_category(String request_category)
          Sets this observation's request category.
 Integer request_priority()
          Gets this observation's request priority.
 void request_priority(Integer request_priority)
          Sets this observation's request priority.
 Model.Scattering_Source scattering_source()
          Gets the HIPHOP scattering source.
 void scattering_source(Model.Scattering_Source scattering_source)
          Sets the HIPHOP scattering source.
 boolean scattering_source(String scattering_source)
          Sets the HIPHOP scattering source.
 String scmf()
          Gets this observation SCMF name.
 void scmf(String scmf)
          Sets this observation's SCMF name.
 void setPlannedGeometry(Planned_Geometry geometry)
          Sets the observation's planned geometry fields.
 Double setup_duration()
           
 void setup_duration(Double setup_duration)
           
 Integer spare_3()
           
 void spare_3(Integer spare_3)
           
 String stability()
          Gets this observation's stability text.
 boolean stability(String stability)
          Sets this observation's stability.
 Double start_planetocentric_latitude()
          Gets the starting planetocentric latitude of the observation.
 void start_planetocentric_latitude(Double planetocentric_latitude)
          Sets the starting planetocentric latitude of the observation.
 Double start_planetographic_latitude()
          Gets the starting planetographic latitude of the observation.
 void start_planetographic_latitude(Double planetographic_latitude)
          Sets the starting planetographic latitude of the observation.
 String status()
          Gets this observation's status.
 boolean status(String status)
          Sets this observation's status.
 boolean stim_power(int stim)
           
 void stim_power(int stim, boolean enable)
           
 Date success_acquired_time()
           
 void success_acquired_time(Date success_acquired_time)
           
 Double surface_roughness()
           
 void surface_roughness(Double surface_roughness)
           
 Double surface_type()
           
 void surface_type(Double surface_type)
           
 String target_name()
          Gets this observation's target name.
 boolean target_name(String target_name)
          Sets this observation's target name.
 
Methods inherited from class java.lang.Object
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

DEFAULT_SETUP_DURATION

public static final double DEFAULT_SETUP_DURATION
The default value for setup duration.

See Also:
Constant Field Values

DEFAULT_OBSERVATION_DURATION

public static final double DEFAULT_OBSERVATION_DURATION
The default value for observation duration.

See Also:
Constant Field Values

COLD_SETUP_DURATION

public static final double COLD_SETUP_DURATION
The portion of the setup duration that takes place prior to the CPMM_PWR command. During this time, the CPMMs are off or "cold." This duration is in seconds.

See Also:
Constant Field Values

EXPOSURE_TIMING_PAD

public static final double EXPOSURE_TIMING_PAD
The time between the issuance of the HIR_EXPOSE_TIME command and the exposure start time value therein. This padding (in seconds) is required by MRO flight rule 1301-E-HIRISE "Commnding Constraints Prior to Exposure" and 1310-E-HIRISE "ITL Instrument Setup Duration Parameter Constraints."

This padding is included in the setup_duration() value for absolute-timed sequences, such as the ITL. For relative-timed sequences, such as the annealing efforts of late 2010, the HiRISE observation block is spawned with an exposure time in the past, triggering an immediate exposure when the HIR_EXPOSE_TIME command is issued. This mode of operation removes the EXPOSURE_TIMING_PAD from the observation timeline reducing the total powered-on duration and violating the aforementioned flight rules. This violation is allowed.

See Also:
Constant Field Values

INVALID_DATE

public static final Date INVALID_DATE
The oldest date. This value is returned when a date method finds text in an unexpected format in the database record.


MIN_DELAY_FUDGE_FACTOR

public static final double MIN_DELAY_FUDGE_FACTOR
A fudge factor for the minimum delay-by duration.

See Also:
getMinDelayDuration(), Constant Field Values

DURATION_PADDING

public static final double DURATION_PADDING
A padding added to the minimum observation duration calculation. The padding units are seconds.

See Also:
getMinObservationDuration(), Constant Field Values

FLIGHT_SOFTWARE_READOUT_PAD

public static final double FLIGHT_SOFTWARE_READOUT_PAD
The flight software padding in seconds between end of imaging and start of readout.

See Also:
getReadoutStart(), Constant Field Values
Constructor Detail

Observation_Record

public Observation_Record(String observation_id,
                          Vector observation_parameters,
                          Vector cpmm_parameters)
Creates an Observation_Record with the specified observation identification, observation parameters vector, and CCD parameters vector.

Each of the two vectors must be a vector of vectors, such that the first element is a vector of field names and the remaining elements are the field values, as per the results of a Database Database.Query(java.lang.String, int). To ensure the correct functioning of the Observation_Record methods, the field name row for the observation parameters vector should be a clone of observation_parameter_fields() and the field name row for the CCD parameters vector should be a clone of ccd_parameter_fields(). Furthermore, the observation parameters vector should contain only two vectors (including the field names vector) and the CCD parameters vector should contain at least one vector (the field names vector) plus as many additional vectors as the observation has active CCDs. These requirements are not programmatically enforced by the Observation_Record class as of this release.

If the_observation_parameters is null, a new set of observation parameters will be created for this Observation_Record. The first vector in the set will be the correct observation_parameter_fields() vector. The second data values vector will contain all null values, except for the Observation_Fields.OBSERVATION_ID field.

If the_cpmm_parameters is null, a new, empty set of CCD parameters will be created for this Observation_Record, with the correct ccd_parameter_fields() field name vector as the only element.

In any case, the observation ID of the Observation_Record is set to the_observation_id.

The observation's data volume (and the data volume for each active CCD) is calculated when this Observation_Record is created. This calculation ensures that the data volume estimate is correct, in case that held in the database is not.

Parameters:
observation_id - the unique identifier for the new Observation_Record; it is not required to be a formal Observation_ID.
observation_parameters - the set of observation parameters for the new Observation_Record.
cpmm_parameters - the set of CCD parameters for the new Observation_Record.

Observation_Record

public Observation_Record(String observation_id,
                          Vector observation_parameters)
Creates an Observation_Record with the specified observation identification and observation parameters. A default, empty set of CCD parameters is used.

Parameters:
observation_id - the unique identifier for the new Observation_Record; it is not required to be a formal Observation_ID.
observation_parameters - the set of observation parameters for the new Observation_Record.

Observation_Record

public Observation_Record(String observation_id)
Creates an Observation_Record with the specified observation identification. A default set of parameters is used for the observation parameters, and a default, empty set of parameters is used for the CCD parameters.

Parameters:
observation_id - the unique identifier for the new Observation_Record; it is not required to be a formal Observation_ID.
Method Detail

observation_id

public String observation_id()
Gets the unqiue identifier for this Observation_Record.

Returns:
this Observation_Record's unqiue identifier.

observation_id

public void observation_id(String the_observation_id)
Sets the unqiue identifier for this Observation_Record. The identifier need not be a formal Observation_ID, but it must be unique if it is to be used with the HiRISE database system, HiCat.

Parameters:
the_observation_id - the new unique identifier for this Observation_Record.

comment

public String comment()
Gets the observation's comment text.

Returns:
the comment text, which may be null.

comment

public void comment(String comment)
Sets the observation's comment text.

Parameters:
comment - the comment text, which may be null.

notes

public String notes()

notes

public void notes(String notes)

history

public String history()

history

public void history(String history)

appendHistory

public void appendHistory(String message,
                          String operator)
Appends a message to the observation record's history. The message is assumed to be a single line, and it is formatted via makeHistoryMessage(String,String).

Parameters:
message - a message to append to the observation's history. If null or the empty string (or just whitespace), nothing is appended.
operator - the name of the person responsible for the action that generated the message; may be null, in which case the system user name property is used.

makeHistoryMessage

public static String makeHistoryMessage(String message,
                                        String operator)
Creates a formatted string suitable for adding to the observation record history. The message argument, assumed to be a single line, is formatted like so:
%21s %15s %s

such that the first piece of text is the current date, UTC, in the standard JPL-style date format (Utilities.getDoyFormat()). The second element is the user name, truncated to 15 characters if longer. The final element is the message argument, coerced into a single line by replacing all whitespace characters with single spaces. Leading and trailing whitespace is trimmed.

Parameters:
message - a message to format as above. If null or the empty string (or just whitespace), a null string is returned.
operator - the name of the person responsible for the action that generated the message; may be null, in which case the system user name property is used.
Returns:
the formatted message.

getHistoryMessageText

public static String getHistoryMessageText(String historyLine)
Gets the message text from a line of observation history. The line is assumed to be formatted as per the makeHistoryMessage(String,String) method; this return value is that method's message parameter.

No attempt is made to strip a line ending from the input text.

Parameters:
historyLine - a line of text presumed to have been produced by the makeHistoryMessage(String,String) method.
Returns:
the message text, or null the line is not from a history text block.

coordinated_track_history

public String coordinated_track_history()
Gets the observation's coordinated track history text.

Returns:
the coordinated track history text, which may be null.

coordinated_track_history

public void coordinated_track_history(String coordinated_track_history)
Sets the observation's coordinated track history text.

Parameters:
coordinated_track_history - the coordinated track history text, which may be null.

planner

public String planner()
Gets the name of the operator who planned this observation.

Returns:
the planner's name.

planner

public void planner(String planner)
Sets the name of the operator who planned this observation.

Parameters:
planner - the planner's name.

commander

public String commander()
Gets the name of the operator who commanded this observation.

Returns:
the commander's name.

commander

public void commander(String commander)
Sets the name of the operator who commanded this observation.

Parameters:
commander - the commander's name.

last_update

public String last_update()
Gets the last time this observation record was updated. This time stamp is returned formatted as per the database, e.g., 20061206160205 for December 6, 2006, 4:02:05 PM.

Note: There is no corresponding method to set this time; this field is managed by the database itself.

Returns:
the last update time in the default database format.
See Also:
last_update_formatted()

last_update_formatted

public String last_update_formatted()
Gets the last time this observation record was updated. This method formats the time stamp in a more user-friendly manner, namely as the DateFormat.FULL style of the DateFormat class for both date and time.

Returns:
the last update time in a user-friendly format.
See Also:
last_update()

request_category

public String request_category()
Gets this observation's request category.

Returns:
the request category, which may be null.

request_category

public void request_category(String request_category)
Sets this observation's request category.

Parameters:
request_category - the new request category, which may be null.

ancillary_data

public String ancillary_data()
Gets this observation's ancillary data. For HiRISE, this value is the stereo code.

Returns:
the ancillary data (stereo code), which may be null.

ancillary_data

public void ancillary_data(String ancillary_data)
Sets this observation's ancillary data. For HiRISE, this value is the stereo code.

Parameters:
ancillary_data - the new ancillary data (stereo code), which may be null.

orbit_alternatives

public String orbit_alternatives()
Gets this observation's orbit alternatives. The set of alternate orbits is a space-delimited list of orbit number/orbit pass combinations.

Returns:
the orbit alternatives, which may be null.

orbit_alternatives

public void orbit_alternatives(String orbit_alternatives)
Sets this observation's orbit alternatives. The set of alternate orbits is a space-delimited list of orbit number/orbit pass combinations. Note, however, that this method makes no attempt to guarantee that the input parameter is a valid list orbit alternatives.

Parameters:
orbit_alternatives - the new list of alternative orbits.

instrument_set

public String instrument_set()
Gets this observation's instrument set. The instrument set is a collection of one to six characters indicating which instruments are participating in a coordinated observation. The driving observation is the first character; note that only the driving observation's record has more than one character.

Returns:
the instrument set, which may be null.

instrument_set

public void instrument_set(String instrument_set)
Sets this observation's instrument set. The instrument set is a collection of one to six characters indicating which instruments are participating in a coordinated observation. The driving observation is the first character; note that only the driving observation's record has more than one character. Note, however, that this method makes no attempt to guarantee the input parameter is valid.

Parameters:
instrument_set - the new instrument set.

relational_data

public String relational_data()
Gets this observation's relational data. The relational data are mapped into the PTF_Record's spare 4 field. The HiRISE team uses these data to relate one observation to another.

Returns:
the relational data, which may be null.

relational_data

public void relational_data(String relational_data)
Sets this observation's relational data. The relational data are mapped into the PTF_Record's spare 4 field. The HiRISE team uses these data to relate one observation to another.

Parameters:
relational_data - the new relational data.

command_file_pathname

public String command_file_pathname()
Gets this observation's command file pathname. This pathname is set by HiCommand when the command file is generated.

Returns:
the command file pathname, which may be null.

command_file_pathname

public void command_file_pathname(String command_file_pathname)
Sets this observation's command file pathname. This pathname is set by HiCommand when the command file is generated.

Parameters:
command_file_pathname - the new command file pathname.

scmf

public String scmf()
Gets this observation SCMF name. The SCMF name is set by the HiCommand system's DOM notification processor.

Returns:
the SCMF name, which may be null.

scmf

public void scmf(String scmf)
Sets this observation's SCMF name. The SCMF name is set by the HiCommand system's DOM notification processor.

Parameters:
scmf - the new SCMF name, which may be null.

orbit_pass

public String orbit_pass()
Gets this observation's orbit pass. The orbit pass is Observation_Fields.ASCENDING_PASS for the ascending pass and Observation_Fields.DESCENDING_PASS for the descending pass.

Returns:
the orbit pass, which may be null.

orbit_pass

public boolean orbit_pass(String orbit_pass)
Sets this observation's orbit pass. The orbit pass is Observation_Fields.ASCENDING_PASS for the ascending pass and Observation_Fields.DESCENDING_PASS for the descending pass. The pass must be one of these values, or null, or this method does nothing.

Parameters:
orbit_pass - the new orbit pass.
Returns:
true if the orbit pass value was valid; false otherwise.

playback_mode

public String playback_mode()
Gets the observation's playback mode. Playback mode is Observation_Fields.X_BAND_PLAYBACK, Observation_Fields.KA_BAND_PLAYBACK, or null.

Returns:
the playback mode.

playback_mode

public boolean playback_mode(String playback_mode)
Sets the observation's playback mode. Valid values are Observation_Fields.X_BAND_PLAYBACK and Observation_Fields.KA_BAND_PLAYBACK. null is also permitted. If playback_mode isn't valid, this method does nothing and returns false; otherwise it returns true.

Parameters:
playback_mode - the new playback mode.
Returns:
true if the playback mode was valid; false otherwise.

status

public String status()
Gets this observation's status. The status is one of the values in the Observation_Fields.STATUSES array or null.

Returns:
the status, which may null.

status

public boolean status(String status)
Sets this observation's status. The valid values for status are Observation_Fields.STATUSES or null. If status is not valid, this method does nothing and returns false; otherwise it returns true.

Parameters:
status - the new status.
Returns:
true if the status was valid; false otherwise.

target_name

public String target_name()
Gets this observation's target name. The target name is one of the values in the Observation_Fields.TARGET_NAMES array or null.

Returns:
the target name, which may be null.

target_name

public boolean target_name(String target_name)
Sets this observation's target name. Valid values for target_name or null. If target_name is not valid, this method does nothing and returns false; otherwise it returns true.

Parameters:
target_name - the new target name.
Returns:
true if the target name was valid; false otherwise.

stability

public String stability()
Gets this observation's stability text.


stability

public boolean stability(String stability)
Sets this observation's stability. It may be set to either Observation_Fields.NORMAL_STABILITY or Observation_Fields.HIGH_STABILITY, in which case the method returns true; if any other value is used, the method does nothing and returns false.

An observation's observation_type() and stability are strongly related such that changing stability will change the observation type.

Parameters:
stability - the new stability.
Returns:
true if stability was valid; false if not.

scattering_source

public Model.Scattering_Source scattering_source()
Gets the HIPHOP scattering source. The scattering source is Model.Scattering_Source.DUST, Model.Scattering_Source.ICE, or null. Model.Scattering_Source.DUST corresponds to the database value Observation_Fields.DUST. Model.Scattering_Source.ICE corresponds to the database value Observation_Fields.ICE.

Note: If the database somehow contains a value not allowed (i.e., a value other than Observation_Fields.DUST, Observation_Fields.ICE, or null), this method returns null.

Returns:
the scattering source.

scattering_source

public void scattering_source(Model.Scattering_Source scattering_source)
Sets the HIPHOP scattering source. The scattering source is Model.Scattering_Source.DUST, Model.Scattering_Source.ICE, or null. Model.Scattering_Source.DUST corresponds to the database value Observation_Fields.DUST. Model.Scattering_Source.ICE corresponds to the database value Observation_Fields.ICE.

Parameters:
scattering_source - the new scattering source.

scattering_source

public boolean scattering_source(String scattering_source)
Sets the HIPHOP scattering source. The scattering source is Observation_Fields.DUST, Observation_Fields.ICE, or null. The database value Observation_Fields.DUST corresponds to Model.Scattering_Source.DUST. The database value Observation_Fields.ICE corresponds to Model.Scattering_Source.ICE.

If scattering_source isn't valid, this method does nothing and returns false; otherwise it returns true.

Parameters:
scattering_source - the new scattering source.
Returns:
true if the scattering source was valid; false otherwise.

orbit_number

public Integer orbit_number()
Gets this observation's orbit number.

Returns:
the orbit number, which may be null.

orbit_number

public void orbit_number(Integer orbit_number)
Sets this observation's orbit number.

Parameters:
orbit_number - the new orbit number, which may be null.

observation_type

public Integer observation_type()
Gets this observation's type.

Returns:
the observation's type code.

observation_type

public void observation_type(Integer observation_type)
Sets this observation's type.

An observation's type and stability() are strong related such that changing the type may change the stability.

Parameters:
observation_type - the new observation type.

request_priority

public Integer request_priority()
Gets this observation's request priority.

Returns:
the observation's request priority.

request_priority

public void request_priority(Integer request_priority)
Sets this observation's request priority.

Parameters:
request_priority - the new request priority.

key_id

public Integer key_id()
Gets the observation's key ID. This ID is the primary key used to identify the observation record in the database; it is not the observation ID.

Returns:
the key ID.

key_id

public void key_id(Integer key_id)
Sets the observation's key ID. This ID is the primary key used to identify the observation record in the database; it is not the observation ID.

Parameters:
key_id - the new key ID.

spare_3

public Integer spare_3()

spare_3

public void spare_3(Integer spare_3)

lut_selector_red_fudge_factor

public Integer lut_selector_red_fudge_factor()

lut_selector_red_fudge_factor

public void lut_selector_red_fudge_factor(Integer fudgeFactor)

lut_selector_ir_fudge_factor

public Integer lut_selector_ir_fudge_factor()

lut_selector_ir_fudge_factor

public void lut_selector_ir_fudge_factor(Integer fudgeFactor)

lut_selector_bg_fudge_factor

public Integer lut_selector_bg_fudge_factor()

lut_selector_bg_fudge_factor

public void lut_selector_bg_fudge_factor(Integer fudgeFactor)

estimated_roll_angle

public Double estimated_roll_angle()

estimated_roll_angle

public void estimated_roll_angle(Double estimated_roll_angle)

elevation

public Double elevation()

elevation

public void elevation(Double elevation)

altitude

public Double altitude()

altitude

public void altitude(Double altitude)

offset_center_altitude

public Double offset_center_altitude()

offset_center_altitude

public void offset_center_altitude(Double altitude)

estimated_phase_angle

public Double estimated_phase_angle()

estimated_phase_angle

public void estimated_phase_angle(Double estimated_phase_angle)

estimated_emission_angle

public Double estimated_emission_angle()

estimated_emission_angle

public void estimated_emission_angle(Double estimated_emission_angle)

estimated_incidence_angle

public Double estimated_incidence_angle()

estimated_incidence_angle

public void estimated_incidence_angle(Double estimated_incidence_angle)

l_sub_s

public Double l_sub_s()

l_sub_s

public void l_sub_s(Double l_sub_s)

heliocentric_distance

public Double heliocentric_distance()

heliocentric_distance

public void heliocentric_distance(Double heliocentric_distance)

line_time

public Double line_time()

line_time

public void line_time(Double line_time)

setup_duration

public Double setup_duration()

setup_duration

public void setup_duration(Double setup_duration)

observation_duration

public Double observation_duration()

observation_duration

public void observation_duration(Double observation_duration)

delay_by

public Double delay_by()

delay_by

public void delay_by(Double delay_by)

felics_compression_ratio

public Double felics_compression_ratio()

felics_compression_ratio

public void felics_compression_ratio(Double felics_compression_ratio)

contrast_ratio

public Double contrast_ratio()

contrast_ratio

public void contrast_ratio(Double contrast_ratio)

optical_depth

public Double optical_depth()

optical_depth

public void optical_depth(Double optical_depth)

surface_roughness

public Double surface_roughness()

surface_roughness

public void surface_roughness(Double surface_roughness)

frost_cover

public Double frost_cover()

frost_cover

public void frost_cover(Double frost_cover)

frost_albedo

public Double frost_albedo()

frost_albedo

public void frost_albedo(Double frost_albedo)

surface_type

public Double surface_type()

surface_type

public void surface_type(Double surface_type)

predict_time

public Date predict_time()
Gets the observation's predict time. This is the time at which the center of the observation is predicted to be observed.

Because the Observation_Fields.PREDICT_TIME field is not a DATETIME field, but rather a VARCHAR field, it is possible its contents are not a valid text date. If so, this method returns INVALID_DATE.

Returns:
the predict time; may be null.

predict_time

public void predict_time(Date predict_time)
Sets the observation's predict time. This is the time at which the center of the observation is predicted to be observed.

Parameters:
predict_time - the predict time; may be null.

estimated_receive_time

public Date estimated_receive_time()

estimated_receive_time

public void estimated_receive_time(Date estimated_receive_time)

command_file_generation_time

public Date command_file_generation_time()

command_file_generation_time

public void command_file_generation_time(Date command_file_generation_time)

command_file_asp_receipt_time

public Date command_file_asp_receipt_time()

command_file_asp_receipt_time

public void command_file_asp_receipt_time(Date command_file_asp_receipt_time)

command_file_dom_receipt_time

public Date command_file_dom_receipt_time()

command_file_dom_receipt_time

public void command_file_dom_receipt_time(Date command_file_dom_receipt_time)

command_file_mro_uplink_time

public Date command_file_mro_uplink_time()

command_file_mro_uplink_time

public void command_file_mro_uplink_time(Date command_file_mro_uplink_time)

success_acquired_time

public Date success_acquired_time()

success_acquired_time

public void success_acquired_time(Date success_acquired_time)

manual_delay_by_flag

public boolean manual_delay_by_flag()
Gets the manual delay-by flag. If true, the observation's delay time will not be calculated automatically.

Note: The manual calculation of the delay time may introduce errors into the automated processing of the resulting observation files by the HiRISE ground data system. This flag must be used with care.

Returns:
the flag indicating whether delay time is to be calculated manually.

manual_delay_by_flag

public void manual_delay_by_flag(boolean enable)
Sets the manual delay-by flag. If true, the observation's delay time will not be calculated automatically.

Note: The manual calculation of the delay time may introduce errors into the automated processing of the resulting observation files by the HiRISE ground data system. This flag must be used with care.

Parameters:
enable - whether to enable this flag or not.

relative_timed_sequence_flag

public boolean relative_timed_sequence_flag()

relative_timed_sequence_flag

public void relative_timed_sequence_flag(boolean enable)

felics_compression_flag

public boolean felics_compression_flag()
Gets the FELICS compression flag. If true, FELICS compression will be used on the observation.

Note: FELICS compression can only be used if every CCD participating in the observation is LUT-compressed.

Returns:
the flag indicating whether FELICS compression is to be used for the observation.

felics_compression_flag

public void felics_compression_flag(boolean enable)
Sets the FELICS compression flag. If true, FELICS compression will be used on the observation.

Note: FELICS compression can only be used if every CCD participating in the observation is LUT-compressed. At present, setting this flag does not check that the necessary conditions are met. It is up to the user, such as HiPlan or HiCommand, to ensure that these conditions are met.

Parameters:
enable - whether to enable this flag or not.

keep_stim_lamps_on_flag

public boolean keep_stim_lamps_on_flag()
Gets the "keep stim lamps on" flag. If true, the stimulation lamps will be left on after the observation is completed.

This flag is relatively safe, because every HiRISE observation block starts with the automatic deactivation of the stim lamps if they are not to be used in the observation. Thus, if the lamps were accidentally left on at the end of this observation, they will still be shut off at the start of the next. Thus, two actions are required to keep the lamps on: this observation must leave them on, and the next observation must explicitly use them.

Returns:
the flag indicating the stimulation lamps should be left on at the end of the observation.

keep_stim_lamps_on_flag

public void keep_stim_lamps_on_flag(boolean enable)
Sets the "keep stim lamps on" flag. If true, the stimulation lamps will be left on after the observation is completed.

This flag is relatively safe, because every HiRISE observation block starts with the automatic deactivation of the stim lamps if they are not to be used in the observation. Thus, if the lamps were accidentally left on at the end of this observation, they will still be shut off at the start of the next. Thus, two actions are required to keep the lamps on: this observation must leave them on, and the next observation must explicitly use them.

Parameters:
enable - whether to enable this flag or not.

pi_approval_to_release_flag

public boolean pi_approval_to_release_flag()
Gets the flag indicating Principal Investigator approval is required to release the observation data products to the public. If true, the data products must not be released without the PI's approval.

Returns:
the flag indicating PI approval is required to release the data products from this observation.

pi_approval_to_release_flag

public void pi_approval_to_release_flag(boolean enable)
Sets the flag indicating Principal Investigator approval is required to release the observation data products to the public. If true, the data products must not be released without the PI's approval.

Parameters:
enable - whether to enable this flag or not.

cpmm_power

public boolean cpmm_power(String ccd)
                   throws Invalid_Argument_Exception
Throws:
Invalid_Argument_Exception

cpmm_power

public void cpmm_power(String ccd,
                       boolean enable)
                throws Invalid_Argument_Exception
Throws:
Invalid_Argument_Exception

cpmm_power

public boolean cpmm_power(int cpmm)
                   throws Out_of_Range_Exception
Throws:
Out_of_Range_Exception

cpmm_power

public void cpmm_power(int cpmm,
                       boolean enable)
                throws Out_of_Range_Exception
Throws:
Out_of_Range_Exception

stim_power

public boolean stim_power(int stim)
                   throws Out_of_Range_Exception
Parameters:
stim - 0 for RED, 1 for BLU, 2 for NIR.
Throws:
Out_of_Range_Exception

stim_power

public void stim_power(int stim,
                       boolean enable)
                throws Out_of_Range_Exception
Parameters:
stim - 0 for RED, 1 for BLU, 2 for NIR.
Throws:
Out_of_Range_Exception

red_stim_power

public boolean red_stim_power()

red_stim_power

public void red_stim_power(boolean enable)

blu_stim_power

public boolean blu_stim_power()

blu_stim_power

public void blu_stim_power(boolean enable)

nir_stim_power

public boolean nir_stim_power()

nir_stim_power

public void nir_stim_power(boolean enable)

center_planetocentric_latitude

public Double center_planetocentric_latitude()
Gets the center planetocentric latitude of the observation.

The latitude may be null. This situation arises for any observation that is not targeted at Mars.

Note: This latitude is not necessarily the center of the actual observation. It is really the center of the target swath in which the observation is located. If the observation's delay time is calculated automatically, this value will be the center of the observation. If the delay time is calculated manually, it may not be so.

Returns:
the center planetocentric latitude or null if there is none.
See Also:
manual_delay_by_flag()

center_planetocentric_latitude

public void center_planetocentric_latitude(Double planetocentric_latitude)
Sets the center planetocentric latitude of the observation.

The latitude may be null. This situation arises for any observation that is not targeted at Mars.

It is not necessary to set both the planetocentric and planetographic latitudes of an observation. Because the two are mathematically related, changing one will perforce change the other.

Note: This latitude is not necessarily the center of the actual observation. It is really the center of the target swath in which the observation is located. If the observation's delay time is calculated automatically, this value will be the center of the observation. If the delay time is calculated manually, it may not be so.

Parameters:
planetocentric_latitude - the center planetocentric latitude, which may be null.
See Also:
manual_delay_by_flag()

center_planetographic_latitude

public Double center_planetographic_latitude()
Gets the center planetographic latitude of the observation.

The latitude may be null. This situation arises for any observation that is not targeted at Mars.

Note: This latitude is not necessarily the center of the actual observation. It is really the center of the target swath in which the observation is located. If the observation's delay time is calculated automatically, this value will be the center of the observation. If the delay time is calculated manually, it may not be so.

Returns:
the center planetographic latitude or null if there is none.
See Also:
manual_delay_by_flag()

center_planetographic_latitude

public void center_planetographic_latitude(Double planetographic_latitude)
Sets the center planetographic latitude of the observation.

The latitude may be null. This situation arises for any observation that is not targeted at Mars.

It is not necessary to set both the planetocentric and planetographic latitudes of an observation. Because the two are mathematically related, changing one will perforce change the other.

Note: This latitude is not necessarily the center of the actual observation. It is really the center of the target swath in which the observation is located. If the observation's delay time is calculated automatically, this value will be the center of the observation. If the delay time is calculated manually, it may not be so.

Parameters:
planetographic_latitude - the center planetographic latitude, which may be null.
See Also:
manual_delay_by_flag()

center_longitude

public Double center_longitude()
Gets the center longitude of the observation.

The longitude may be null. This situation arises for any observation that is not targeted at Mars.

Note: This longitude is not necessarily the center of the actual observation. It is really the center of the target swath in which the observation is located. If the observation's delay time is calculated automatically, this value will be the center of the observation. If the delay time is calculated manually, it may not be so.

Returns:
the center longitude or null if there is none.
See Also:
manual_delay_by_flag()

center_longitude

public void center_longitude(Double longitude)
Sets the center longitude of the observation.

Note: This longitude is not necessarily the center of the actual observation. It is really the center of the target swath in which the observation is located. If the observation's delay time is calculated automatically, this value will be the center of the observation. If the delay time is calculated manually, it may not be so.

Parameters:
longitude - the center longitude, which may be null.
See Also:
manual_delay_by_flag()

offset_center_planetocentric_latitude

public Double offset_center_planetocentric_latitude()

offset_center_planetocentric_latitude

public void offset_center_planetocentric_latitude(Double planetocentric_latitude)

offset_center_planetographic_latitude

public Double offset_center_planetographic_latitude()

offset_center_planetographic_latitude

public void offset_center_planetographic_latitude(Double planetographic_latitude)

offset_center_longitude

public Double offset_center_longitude()

offset_center_longitude

public void offset_center_longitude(Double longitude)

start_planetocentric_latitude

public Double start_planetocentric_latitude()
Gets the starting planetocentric latitude of the observation.

The latitude may be null. This situation arises for any observation that is not targeted at Mars.

Note: This latitude is not necessarily the start of the actual observation. It is really the start of the target swath in which the observation is located.

Returns:
the starting planetocentric latitude or null if there is none.

start_planetocentric_latitude

public void start_planetocentric_latitude(Double planetocentric_latitude)
Sets the starting planetocentric latitude of the observation.

The latitude may be null. This situation arises for any observation that is not targeted at Mars.

It is not necessary to set both the planetocentric and planetographic latitudes of an observation. Because the two are mathematically related, changing one will perforce change the other.

Note: This latitude is not necessarily the start of the actual observation. It is really the start of the target swath in which the observation is located.

Parameters:
planetocentric_latitude - the starting planetocentric latitude, which may be null.

start_planetographic_latitude

public Double start_planetographic_latitude()
Gets the starting planetographic latitude of the observation.

The latitude may be null. This situation arises for any observation that is not targeted at Mars.

Note: This latitude is not necessarily the start of the actual observation. It is really the start of the target swath in which the observation is located.

Returns:
the starting planetographic latitude or null if there is none.

start_planetographic_latitude

public void start_planetographic_latitude(Double planetographic_latitude)
Sets the starting planetographic latitude of the observation.

The latitude may be null. This situation arises for any observation that is not targeted at Mars.

It is not necessary to set both the planetocentric and planetographic latitudes of an observation. Because the two are mathematically related, changing one will perforce change the other.

Note: This latitude is not necessarily the start of the actual observation. It is really the start of the target swath in which the observation is located.

Parameters:
planetographic_latitude - the starting planetographic latitude, which may be null.

end_planetocentric_latitude

public Double end_planetocentric_latitude()
Gets the ending planetocentric latitude of the observation.

The latitude may be null. This situation arises for any observation that is not targeted at Mars.

Note: This latitude is not necessarily the end of the actual observation. It is really the end of the target swath in which the observation is located.

Returns:
the ending planetocentric latitude or null if there is none.

end_planetocentric_latitude

public void end_planetocentric_latitude(Double planetocentric_latitude)
Sets the ending planetocentric latitude of the observation.

The latitude may be null. This situation arises for any observation that is not targeted at Mars.

It is not necessary to set both the planetocentric and planetographic latitudes of an observation. Because the two are mathematically related, changing one will perforce change the other.

Note: This latitude is not necessarily the end of the actual observation. It is really the end of the target swath in which the observation is located.

Parameters:
planetocentric_latitude - the ending planetocentric latitude, which may be null.

end_planetographic_latitude

public Double end_planetographic_latitude()
Gets the ending planetographic latitude of the observation.

The latitude may be null. This situation arises for any observation that is not targeted at Mars.

Note: This latitude is not necessarily the end of the actual observation. It is really the end of the target swath in which the observation is located.

Returns:
the ending planetographic latitude or null if there is none.

end_planetographic_latitude

public void end_planetographic_latitude(Double planetographic_latitude)
Sets the ending planetographic latitude of the observation.

The latitude may be null. This situation arises for any observation that is not targeted at Mars.

It is not necessary to set both the planetocentric and planetographic latitudes of an observation. Because the two are mathematically related, changing one will perforce change the other.

Note: This latitude is not necessarily the end of the actual observation. It is really the end of the target swath in which the observation is located.

Parameters:
planetographic_latitude - the ending planetographic latitude, which may be null.

footprint_planetocentric_vertices

public List<Point2D> footprint_planetocentric_vertices()

footprint_planetocentric_vertices

public void footprint_planetocentric_vertices(List<Point2D> planetocentric_vertices)

footprint_planetographic_vertices

public List<Point2D> footprint_planetographic_vertices()

footprint_planetographic_vertices

public void footprint_planetographic_vertices(List<Point2D> planetographic_vertices)

observation_mode

public String observation_mode()
Gets the observation mode for ths observation. The mode is a derived value, derived from the on/off status of the NIR ("I"), RED ("R"), and BG ("B") CCDs; if any one member of a given category is on, the category is represented in the mode value, e.g., "IRB" if all three categories are on.

This parameter is not stored in the database, but it is reflected in the HiRISE PTF record.

Returns:
the observation mode text.
See Also:
"Payload Target File and Integrated Payload Target File Software Interface Specification (JPL MRO SEQ032)"

ccd_planned_observations_id

public Integer ccd_planned_observations_id(String ccd)
Gets the xxx value for the indicated CCD. If the CCD name is not a valid HiRISE CCD name, null is returned.

Parameters:
ccd - the name of the CCD in question.
Returns:
xxx.

ccd_planned_observations_id

public void ccd_planned_observations_id(String ccd,
                                        Integer planned_observations_id)
Sets the xxx value for the indicated CCD. If the CCD name is not a valid HiRISE CCD name, no action is performed.

Parameters:
ccd - the name of the CCD in question.
planned_observations_id - the new value for xxx; may be null.

ccd_binning

public Integer ccd_binning(String ccd)
Gets the xxx value for the indicated CCD. If the CCD name is not a valid HiRISE CCD name, null is returned.

Parameters:
ccd - the name of the CCD in question.
Returns:
xxx.

ccd_binning

public void ccd_binning(String ccd,
                        Integer binning)
Sets the xxx value for the indicated CCD. If the CCD name is not a valid HiRISE CCD name, no action is performed.

Parameters:
ccd - the name of the CCD in question.
binning - the new value for xxx; may be null.

ccd_binning

public void ccd_binning(String ccd,
                        int binning)
Sets the xxx value for the indicated CCD. If the CCD name is not a valid HiRISE CCD name, no action is performed.

Parameters:
ccd - the name of the CCD in question.
binning - the new value for xxx.
See Also:
Integer.valueOf(java.lang.String, int)

ccd_tdi

public Integer ccd_tdi(String ccd)
Gets the xxx value for the indicated CCD. If the CCD name is not a valid HiRISE CCD name, null is returned.

Parameters:
ccd - the name of the CCD in question.
Returns:
xxx.

ccd_tdi

public void ccd_tdi(String ccd,
                    Integer tdi)
Sets the xxx value for the indicated CCD. If the CCD name is not a valid HiRISE CCD name, no action is performed.

Parameters:
ccd - the name of the CCD in question.
tdi - the new value for xxx; may be null.

ccd_tdi

public void ccd_tdi(String ccd,
                    int tdi)
Sets the xxx value for the indicated CCD. If the CCD name is not a valid HiRISE CCD name, no action is performed.

Parameters:
ccd - the name of the CCD in question.
tdi - the new value for xxx.
See Also:
Integer.valueOf(java.lang.String, int)

ccd_image_lines

public Integer ccd_image_lines(String ccd)
Gets the xxx value for the indicated CCD. If the CCD name is not a valid HiRISE CCD name, null is returned.

Parameters:
ccd - the name of the CCD in question.
Returns:
xxx.

ccd_image_lines

public void ccd_image_lines(String ccd,
                            Integer image_lines)
Sets the xxx value for the indicated CCD. If the CCD name is not a valid HiRISE CCD name, no action is performed.

Parameters:
ccd - the name of the CCD in question.
image_lines - the new value for xxx; may be null.

ccd_image_lines

public void ccd_image_lines(String ccd,
                            int image_lines)
Sets the xxx value for the indicated CCD. If the CCD name is not a valid HiRISE CCD name, no action is performed.

Parameters:
ccd - the name of the CCD in question.
image_lines - the new value for xxx.
See Also:
Integer.valueOf(java.lang.String, int)

ccd_trim_lines

public Integer ccd_trim_lines(String ccd)
Gets the xxx value for the indicated CCD. If the CCD name is not a valid HiRISE CCD name, null is returned.

Parameters:
ccd - the name of the CCD in question.
Returns:
xxx.

ccd_trim_lines

public void ccd_trim_lines(String ccd,
                           Integer trim_lines)
Sets the xxx value for the indicated CCD. If the CCD name is not a valid HiRISE CCD name, no action is performed.

Parameters:
ccd - the name of the CCD in question.
trim_lines - the new value for xxx; may be null.

ccd_trim_lines

public void ccd_trim_lines(String ccd,
                           int trim_lines)
Sets the xxx value for the indicated CCD. If the CCD name is not a valid HiRISE CCD name, no action is performed.

Parameters:
ccd - the name of the CCD in question.
trim_lines - the new value for xxx.
See Also:
Integer.valueOf(java.lang.String, int)

ccd_lut_type

public String ccd_lut_type(String ccd)
Gets the xxx value for the indicated CCD. If the CCD name is not a valid HiRISE CCD name, null is returned.

Parameters:
ccd - the name of the CCD in question.
Returns:
xxx.

ccd_lut_type

public boolean ccd_lut_type(String ccd,
                            String lut_type)
Sets the xxx value for the indicated CCD. If the CCD name is not a valid HiRISE CCD name, no action is performed.

Parameters:
ccd - the name of the CCD in question.
lut_type - the new value for xxx; may be null.
Returns:
true if the LUT type is not valid; false otherwise.

ccd_lut_minimum

public Integer ccd_lut_minimum(String ccd)
Gets the xxx value for the indicated CCD. If the CCD name is not a valid HiRISE CCD name, null is returned.

Parameters:
ccd - the name of the CCD in question.
Returns:
xxx.

ccd_lut_minimum

public void ccd_lut_minimum(String ccd,
                            Integer lut_minimum)
Sets the xxx value for the indicated CCD. If the CCD name is not a valid HiRISE CCD name, no action is performed.

Parameters:
ccd - the name of the CCD in question.
lut_minimum - the new value for xxx; may be null.

ccd_lut_minimum

public void ccd_lut_minimum(String ccd,
                            int lut_minimum)
Sets the xxx value for the indicated CCD. If the CCD name is not a valid HiRISE CCD name, no action is performed.

Parameters:
ccd - the name of the CCD in question.
lut_minimum - the new value for xxx.
See Also:
Integer.valueOf(java.lang.String, int)

ccd_lut_maximum

public Integer ccd_lut_maximum(String ccd)
Gets the xxx value for the indicated CCD. If the CCD name is not a valid HiRISE CCD name, null is returned.

Parameters:
ccd - the name of the CCD in question.
Returns:
xxx.

ccd_lut_maximum

public void ccd_lut_maximum(String ccd,
                            Integer lut_maximum)
Sets the xxx value for the indicated CCD. If the CCD name is not a valid HiRISE CCD name, no action is performed.

Parameters:
ccd - the name of the CCD in question.
lut_maximum - the new value for xxx; may be null.

ccd_lut_maximum

public void ccd_lut_maximum(String ccd,
                            int lut_maximum)
Sets the xxx value for the indicated CCD. If the CCD name is not a valid HiRISE CCD name, no action is performed.

Parameters:
ccd - the name of the CCD in question.
lut_maximum - the new value for xxx.
See Also:
Integer.valueOf(java.lang.String, int)

ccd_lut_median

public Integer ccd_lut_median(String ccd)
Gets the xxx value for the indicated CCD. If the CCD name is not a valid HiRISE CCD name, null is returned.

Parameters:
ccd - the name of the CCD in question.
Returns:
xxx.

ccd_lut_median

public void ccd_lut_median(String ccd,
                           Integer lut_median)
Sets the xxx value for the indicated CCD. If the CCD name is not a valid HiRISE CCD name, no action is performed.

Parameters:
ccd - the name of the CCD in question.
lut_median - the new value for xxx; may be null.

ccd_lut_median

public void ccd_lut_median(String ccd,
                           int lut_median)
Sets the xxx value for the indicated CCD. If the CCD name is not a valid HiRISE CCD name, no action is performed.

Parameters:
ccd - the name of the CCD in question.
lut_median - the new value for xxx.
See Also:
Integer.valueOf(java.lang.String, int)

ccd_lut_k_value

public Integer ccd_lut_k_value(String ccd)
Gets the xxx value for the indicated CCD. If the CCD name is not a valid HiRISE CCD name, null is returned.

Parameters:
ccd - the name of the CCD in question.
Returns:
xxx.

ccd_lut_k_value

public void ccd_lut_k_value(String ccd,
                            Integer lut_k_value)
Sets the xxx value for the indicated CCD. If the CCD name is not a valid HiRISE CCD name, no action is performed.

Parameters:
ccd - the name of the CCD in question.
lut_k_value - the new value for xxx; may be null.

ccd_lut_k_value

public void ccd_lut_k_value(String ccd,
                            int lut_k_value)
Sets the xxx value for the indicated CCD. If the CCD name is not a valid HiRISE CCD name, no action is performed.

Parameters:
ccd - the name of the CCD in question.
lut_k_value - the new value for xxx.
See Also:
Integer.valueOf(java.lang.String, int)

ccd_lut_number

public Integer ccd_lut_number(String ccd)
Gets the xxx value for the indicated CCD. If the CCD name is not a valid HiRISE CCD name, null is returned.

Parameters:
ccd - the name of the CCD in question.
Returns:
xxx.

ccd_lut_number

public void ccd_lut_number(String ccd,
                           Integer lut_number)
Sets the xxx value for the indicated CCD. If the CCD name is not a valid HiRISE CCD name, no action is performed.

Parameters:
ccd - the name of the CCD in question.
lut_number - the new value for xxx; may be null.

ccd_lut_number

public void ccd_lut_number(String ccd,
                           int lut_number)
Sets the xxx value for the indicated CCD. If the CCD name is not a valid HiRISE CCD name, no action is performed.

Parameters:
ccd - the name of the CCD in question.
lut_number - the new value for xxx.
See Also:
Integer.valueOf(java.lang.String, int)

ccd_image_mean

public Double ccd_image_mean(String ccd)
Gets the xxx value for the indicated CCD. If the CCD name is not a valid HiRISE CCD name, null is returned.

Parameters:
ccd - the name of the CCD in question.
Returns:
xxx.

ccd_image_mean

public void ccd_image_mean(String ccd,
                           Double image_mean)
Sets the xxx value for the indicated CCD. If the CCD name is not a valid HiRISE CCD name, no action is performed.

Parameters:
ccd - the name of the CCD in question.
image_mean - the new value for xxx; may be null.

ccd_image_mean

public void ccd_image_mean(String ccd,
                           double image_mean)
Sets the xxx value for the indicated CCD. If the CCD name is not a valid HiRISE CCD name, no action is performed.

Parameters:
ccd - the name of the CCD in question.
image_mean - the new value for xxx.
See Also:
Double.valueOf(java.lang.String)

ccd_planned_snr

public Double ccd_planned_snr(String ccd)
Gets the xxx value for the indicated CCD. If the CCD name is not a valid HiRISE CCD name, null is returned.

Parameters:
ccd - the name of the CCD in question.
Returns:
xxx.

ccd_planned_snr

public void ccd_planned_snr(String ccd,
                            Double planned_snr)
Sets the xxx value for the indicated CCD. If the CCD name is not a valid HiRISE CCD name, no action is performed.

Parameters:
ccd - the name of the CCD in question.
planned_snr - the new value for xxx; may be null.

ccd_planned_snr

public void ccd_planned_snr(String ccd,
                            double planned_snr)
Sets the xxx value for the indicated CCD. If the CCD name is not a valid HiRISE CCD name, no action is performed.

Parameters:
ccd - the name of the CCD in question.
planned_snr - the new value for xxx.
See Also:
Double.valueOf(java.lang.String)

ccd_last_update

public String ccd_last_update(String ccd)
Gets the xxx value for the indicated CCD. If the CCD name is not a valid HiRISE CCD name, null is returned.

Parameters:
ccd - the name of the CCD in question.
Returns:
xxx.

observation_parameters

public Vector observation_parameters()
Gets the set of observation parameters.

WARNING If this observation record's FELICS compression is enabled and its compression ratio is null, invoking this method will set the ratio to Observation_Fields.DEFAULT_FELICS_COMPRESSION_RATIO.

Returns:
the set of observation parameters for this observation.

observation_parameters

public void observation_parameters(Vector observation_parameters)
Sets the set of observation parameters.

Parameters:
observation_parameters - the set of observation parameters for this observation.

all_cpmm_parameters

public Vector all_cpmm_parameters()
Gets the vector of vectors describing all CCDs for this observation.

Returns:
a vector of vectors containing this Observation_Record's CCD parameters.

all_cpmm_parameters

public void all_cpmm_parameters(Vector cpmm_parameters)
Sets the vector of vectors describing all CCDs for this observation.

Parameters:
cpmm_parameters - the vector of vectors of CCD parameters for this observation.

cpmm_parameters

public Vector cpmm_parameters(String ccd)
                       throws Observation_Record_Exception
Gets the parameters for a specified CCD. This method returns a clone of the vector, not the original vector. The returned vector is a vector of string values for the parameters; it does not include a vector of field names.

Valid CCD names are found in the CCD_NAMES array.

Parameters:
ccd - the name of the CCD of interest.
Returns:
a new vector containing the parameters for the named CCD or null if the named CCD is not contained in the set.
Throws:
Observation_Record_Exception - if ccd is not a valid CCD name.

cpmm_parameters

public void cpmm_parameters(String ccd,
                            Vector parameters)
                     throws Observation_Record_Exception
Sets the parameters for a specified CCD. If the CCD already exists in the Observation_Record, it will be replaced. If it does not exist, it will be added. The parameters vector is assumed to be in the same format as the Observation_Record's CCD parameter vectors. It must be a vector of strings. A rudimentary check is performed to ensure that it is at least the same size as ccd_parameter_fields(), but no other safety measure is taken as of this release, due to the amorphous nature of a vector.

This method sets the parameters using a clone of the vector, not the original vector.

Valid CCD names are found in the CCD_NAMES array.

Parameters:
ccd - the name of the CCD of interest.
parameters - the set of parameters for the target CCD record.
Throws:
Observation_Record_Exception - if the ccd is not a valid CCD name or if the size of parameters is not the same as the size of the ccd_parameter_fields() vector.

observation_parameter

public String observation_parameter(String field_name)
                             throws Observation_Record_Exception
Returns the value of a named field from the observation parameters of this Observation_Record. If no value for the name can be found, a null is returned.

Leading and trailing whitespace is stripped from the returned text.

WARNING If this observation record's FELICS compression is enabled and its compression ratio is null, invoking this method will set the ratio to Observation_Fields.DEFAULT_FELICS_COMPRESSION_RATIO.

Parameters:
field_name - the name of the observation parameter field from which to retrieve the value. The field names are defined by the constants of this class.
Returns:
the value of the named field; if the field is not found in the observation parameters, a null is returned instead.
Throws:
Observation_Record_Exception - if field_name is not in the set of observation_parameter_fields().

observation_parameter

public void observation_parameter(String field_name,
                                  String field_value)
                           throws Observation_Record_Exception
Alters the value of a named field from the observation parameters of this Observation_Record.

Leading and trailing whitespace is stripped from the input field text.

Parameters:
field_name - the name of the observation parameter field to be altered. The field names are defined by Observation_Fields.
field_value - the new value of the observation parameter field to be altered.
Throws:
Observation_Record_Exception - if field_name is not in the set of ().

cpmm_parameter

public String cpmm_parameter(String ccd,
                             String field_name)
                      throws Observation_Record_Exception
Returns the value of a named field from the CCD parameters of this Observation_Record. Only a single value is returned, for a named CCD. If no value is found, a null is returned.

Valid CCD names are found in the CCD_NAMES array.

Leading and trailing whitespace is stripped from the returned text.

Parameters:
ccd - the name of the CCD of interest.
field_name - the name of the CCD parameter field from which to retrieve the value. The field names are defined by CCD_Fields.
Returns:
the value of the named field for the named CCD; if the field is not found or if the named CCD is not contained within the CCD parameters, a null is returned instead.
Throws:
Observation_Record_Exception - if field_name is not in the set of () or if ccd is not in the set of Instrument.CCD_NAMES.

cpmm_parameter

public void cpmm_parameter(String ccd,
                           String field_name,
                           String field_value)
                    throws Observation_Record_Exception
Alters the value of a named field from the CCD parameters of this Observation_Record. Only a single value is altered, for a named CCD. If the named CCD does not exist within the set of CCDs, a new CCD record will be added for it, and the the named field will be set to the specified value.

The CCD_Fields.CCD_NAME field cannot be altered with this method; attempts to do so will throw an Observation_Record_Exception.

Valid CCD names are found in the CCD_NAMES array.

Leading and trailing whitespace is stripped from the input field text.

Parameters:
ccd - the name of the CCD of interest.
field_name - the name of the CCD parameter field that will be updated by this method. The field names are defined by the constants of this class.
field_value - the value to which to set the field.
Throws:
Observation_Record_Exception - if field_name is not in the set of () or if ccd is not in the set of Instrument.CCD_NAMES. Also thrown if field_name is CCD_Fields.CCD_NAME.

clone

public Object clone()
Returns a clone of this observation.

Overrides:
clone in class Object
Returns:
a clone of this observation.

equals

public boolean equals(Object object)
Indicates whether some other object is equal to this observation. This method returns true if and only if the following are true:
  1. the given object is also an Observation_Record, and
  2. each observation has the same value for each field.

If any of these is false, this method returns false.

Note that this class does not override the Object.hashCode() method as of this release, so it is in violation of the Object.hashCode() contract that states that equal objects must have equal hash codes.

Overrides:
equals in class Object
Parameters:
object - the reference object with which to compare.
Returns:
true if this object is the same as the object argument (see above); false otherwise.

add_cpmm

public void add_cpmm(String ccd)
              throws Observation_Record_Exception
Adds a new, named CCD set to the CCD records. The added record contains default values for each of its fields, with the exceptions of the CCD name and the CCD_Fields.PLANNED_OBSERVATIONS_ID. When a CCD record is added, its corresponding power-on field in the observation parameters is set to Observation_Fields.ON.

Parameters:
ccd - the name of the CCD for the record to be added.
Throws:
Observation_Record_Exception - if ccd is not in the set of Instrument.CCD_NAMES or if the CCD already exists in the Observation_Record.
See Also:
clean_cpmm(java.lang.String)

remove_cpmm

public int remove_cpmm(String ccd)
                throws Observation_Record_Exception
Removes a named CCD set from the CCD records. When a CCD is removed, its corresponding power-on field in the observation parameters is set to Observation_Fields.OFF. If the CCD is not in the set of CCD records, this method does nothing and returns 0.

Parameters:
ccd - the name of the CCD for the record to be removed.
Returns:
the number of CCD records removed.
Throws:
Observation_Record_Exception - if ccd is not in the set of Instrument.CCD_NAMES.

clean_cpmm

public void clean_cpmm(String ccd)
                throws Observation_Record_Exception
Replaces null values in the CCD record with default values. This method ensures that there are no nulls in the CCD record. The CCD_Fields.PLANNED_OBSERVATIONS_ID field is an exception. It is not set to a default value if it is null, because the Observation_Record_Broker class entirely manages that field. If no CCD record with the specified CCD name exists in the Observation_Record, this method does nothing.

Parameter Default Value
CCD_Fields.BINNING Instrument.BINNING_FACTORS[0]
CCD_Fields.TDI Instrument.TDI_STAGES[0]
CCD_Fields.IMAGE_LINES 0
CCD_Fields.TRIM_LINES Trim_Values.getTrim(String)
CCD_Fields.LOOKUP_TABLE_TYPE Instrument.NOT_APPLICABLE_NUMBER
CCD_Fields.LOOKUP_TABLE_MINIMUM Instrument.NOT_APPLICABLE_NUMBER
CCD_Fields.LOOKUP_TABLE_MAXIMUM Instrument.NOT_APPLICABLE_NUMBER
CCD_Fields.LOOKUP_TABLE_MEDIAN Instrument.NOT_APPLICABLE_NUMBER
CCD_Fields.LOOKUP_TABLE_K_VALUE Instrument.NOT_APPLICABLE_NUMBER
CCD_Fields.LOOKUP_TABLE_NUMBER Instrument.NOT_APPLICABLE_NUMBER
CCD_Fields.CPMM_RAW_DATA_VOLUME_BYTES 0
CCD_Fields.PLANNED_SNR 0

Parameters:
ccd - the name for the CCD for the record to be cleaned.
Throws:
Observation_Record_Exception - if ccd is not in the set of Instrument.CCD_NAMES.

clean_observation

public void clean_observation()
Replaces null values in certain observation fields with reasonable default values. Only the parameters in the table below are replaced, and only if they are null; these are the database fields that are flagged as NOT NULL, plus the Observation_Fields.PLAYBACK_MODE field.

Parameter Default Value
Observation_Fields.PLANNER (empty string)
Observation_Fields.COMMANDER (empty string)
Observation_Fields.CPMM_00_ON Observation_Fields.OFF
... Observation_Fields.OFF
Observation_Fields.CPMM_13_ON Observation_Fields.OFF
Observation_Fields.MANUAL_DELAY_BY_FLAG Observation_Fields.NO
Observation_Fields.STIMULATION_LAMP_RED_ON Observation_Fields.OFF
Observation_Fields.STIMULATION_LAMP_NIR_ON Observation_Fields.OFF
Observation_Fields.STIMULATION_LAMP_BLG_ON Observation_Fields.OFF
Observation_Fields.KEEP_STIM_LAMPS_ON_FLAG Observation_Fields.NO
Observation_Fields.PI_APPROVAL_TO_RELEASE_FLAG Observation_Fields.NO


ptf_record

public PTF_Record ptf_record()
Gets the information in this observation record as a PTF record.

Returns:
the PTF record form of this observation record.
See Also:
PTF_Record.PTF_Record(Observation_Record)

ptf_record

public void ptf_record(PTF_Record ptf_record,
                       boolean ptf_dominates)
Merges information from a PTF record into this observation record. Some fields are conditionally merged, depending on the value of the input ptf_dominates boolean. These fields are the observation duration, the setup duration, the comment, and the coordinated track history. If ptf_dominates is true, they will be taken from the PTF. If it is false, the observation record's values will be used instead.


parameter

public Parameter parameter()
Gets the observation record as a PVL parameter.

Returns:
a parameter representing the observation record.

active_cpmm_count

public int active_cpmm_count()
Returns the number of CCDs that are participating ("active") in this observation. A CCD is considered active if and only if the value in its corresponding CPMM_NN_ON (e.g. Observation_Fields.CPMM_00_ON) has the value indicated by Observation_Fields.ON.

Returns:
the number of active CCDs for this observation.

isNonData

public boolean isNonData()
Returns whether this observation does not produce data. An observation produces no data if its Observation_Fields.TARGET_NAME is Observation_Fields.NOOP or Observation_Fields.CRC_CHECK or if its Observation_Fields.STATUS is Observation_Fields.DEFUNCT. If so, this method returns true; otherwise it returns false.

Returns:
true if the observation produces no data; false otherwise.

isElectraMerge

public boolean isElectraMerge()
Returns whether this observation is the result of an MTT HiRISE/ELECTRA merge operation. An observation is such an observation if its comment() field ends with an ELECTRA merge notation.

Returns:
true if this observation is the result of an ELECTRA merge operation; false if otherwise.

isElectraRideAlong

public boolean isElectraRideAlong()
Returns whether this observation is a ride-along on an ELECTRA observation. A ride-along is indicated by the presences of E_ at the start of the first token in the coordinated_track_history() field.

Returns:
true if this observation is a ride-along on an ELECTRA observation; false otherwise.

isSharadRideAlong

public boolean isSharadRideAlong()
Returns whether this observation is a ride-along on a SHARAD observation. A ride-along is indicated by the presences of S_ at the start of the first token in the coordinated_track_history() field.

Returns:
true if this observation is a ride-along on a SHARAD observation; false otherwise.

setPlannedGeometry

public void setPlannedGeometry(Planned_Geometry geometry)
Sets the observation's planned geometry fields.

Parameters:
geometry - the planned geometry data; may be null, in which case the fields are not updated.

getAutoDelayDuration

public double getAutoDelayDuration()

getMinDelayDuration

public double getMinDelayDuration()
Gets the minimum delay duration for this observation. The minimum delay duration is currently equal to the RED5 timing offset in seconds. (Non-Mars targets allow for the special value of 0.0 seconds, but the minimum is otherwise still the RED5 timing offset.)

A small fudge factor is applied to the minimum delay duration, increasing its value slightly to avoid rounding problems when the timing offset is applied.

Returns:
the minimum delay duration in seconds.

isZeroDelayAllowed

public boolean isZeroDelayAllowed()

getMaxDelayDuration

public double getMaxDelayDuration()
Gets the maximum delay duration for this observation. This value is computed to ensure the entire exposure takes place within the allotted time (the PTF observation duration); it is the PTF observation duration minus the observation's exposure duration plus the RED5 timing offset.

If the observation duration field is null, this method returns 0.0. Note also that if the observation duration is defined and is less than the exposure duration, a negative value is returned.

Returns:
the maximum delay duration in seconds.

getMinObservationDuration

public double getMinObservationDuration()
Gets the minimum observation duration for this observation. The minimum observation duration must allow for the entire exposure duration, starting as indicated by the HiRISE EXPOSE_TIME command and ending with the last image line.

The ceiling function is applied to the exposure duration, and an additional 3 seconds is added.

Returns:
the minimum observation duration, in seconds, with some padding.

getTimingOffset

public double getTimingOffset()
Gets the RED5 timing offset for this observation. HiRISE command timing starts with BG13 (with an offset of 0 lines, by definition), but the camera pointing is centered on RED5 (with an offset of 1214 lines).

The timing offset is just the RED5 offset multiplied by the current line time. This offset must be subtracted from all timing calculations. For example, if a 60,000-line observation is centered at time Tp, the timing must start at

Tp - 30,000t - offsetRED5t

where t is the line time and offsetRED5t is the return value of this method.

If the line time has not yet been set for this observation (null), or if the line time is less than the minimum (Instrument.LINE_TIME_PRE_OFFSET), this method returns 0.

Returns:
the RED5 timing offset in microseconds. If the line time is null or less than the minimum line time, 0 is returned.

getExposureDuration

public double getExposureDuration()
Gets the exposure duration for this observation. It is the duration between the start of the exposure as commanded by the EXPOSE_TIME command and the last acquired image line of the set of active CCDs. That is, the exposure duration is the largest of the following calculation for each active CCD:
( Li + Lc + Lt/b + La ) * b * t

where Li is the number of binned image lines, Lc is the number of calibration lines, Lt is the number of trim lines, La is the number of trim addition (reverse clock) lines (180), b is the binning, and t is the line time in seconds.

The observation's PTF observation_duration() must be at least this long.

Returns:
the exposure duration in seconds.

getPaddedImageDuration

public double getPaddedImageDuration()
Gets the padded image duration for this observation. The padded image duration for each CCD is the time required to expose its image lines and its calibration lines, along with its reverse clock lines. The calibration lines and reverse clock lines are added twice:
( Li + 2.0Lc + 2.0La ) * b * t

where Li is the number of binned image lines, Lc is the number of calibration lines, La is the number of trim addition (reverse clock) lines (180), b is the binning, and t is the line time in seconds.

This duration is evaluated for each active CCD, and the largest of these is returned. The doubling of the calibration and reverse clock lines allows this quantity to be used in centering the imaging within the observation's PTF observation_duration().

Returns:
the padded image duration in seconds.

getImageDuration

public double getImageDuration()
Gets the image duration for this observation. The image duration for each CCD is the time required to expose its image lines; this method returns the largest such value from amongst the active CCDs:
Li * b * t

where Li is the number of binned image lines, b is the binning, and t is the line time in seconds.

Returns:
the image duration in seconds.

getCpmmExposureDuration

public double getCpmmExposureDuration(int cpmm)
Gets the exposure duration of a CPMM. It is the duration between the start of the exposure as commanded by the EXPOSE_TIME command and the last acquired image line for that CPMM:
( Li + Lc + Lt/b + La ) * b * t

where Li is the number of binned image lines, Lc is the number of calibration lines, Lt is the number of trim lines, La is the number of trim addition (reverse clock) lines (180), b is the binning, and t is the line time in microseconds.

Parameters:
cpmm - the CPMM number.
Returns:
the exposure duration of the given CPMM, in microseconds; if the CPMM is not on, the return value is 0.

getCpmmPaddedImageDuration

public double getCpmmPaddedImageDuration(int cpmm)
Gets the image duration of a CPMM with padding added for centering purposes. It is the number of binned image lines plus the twice the number of calibration lines and twice the number of Instrument.TRIM_ADDITION_LINES, all multiplied by the binning and the line time:
( Li + 2.0Lc + 2.0La ) * b * t

where Li is the number of binned image lines, Lc is the number of calibration lines, La is the number of trim addition (reverse clock) lines (180), b is the binning, and t is the line time in microseconds.

Parameters:
cpmm - the CPMM number.
Returns:
the padded image line duration of the given CPMM, in microseconds; if the CPMM is not on, the return value is 0.

getCpmmImageDuration

public double getCpmmImageDuration(int cpmm)
Gets the image duration of a CPMM. The image duration is the amount of time to expose the image lines. It is the product of the number of binned lines, the binning, and the line time. Note that this duration does not include the calibration lines, nor does it include the trim lines. It is strictly the amount of time to expose the image data:
Li * b * t

where Li is the number of binned image lines, b is the binning, and t is the line time in microseconds.

Parameters:
cpmm - the CPMM number.
Returns:
the image line duration of the given CPMM, in microseconds; if the CPMM is not on, the return value is 0.

getCpmmFlightSoftwareDuration

public double getCpmmFlightSoftwareDuration(int cpmm)
Gets the exposure duration for a particular CPMM using the HiRISE flight software algorithm. The flight software does not account for the 180 lines of reverse clock:
( Li + Lc + Lt/b ) * b * t

where Li is the number of binned image lines, Lc is the number of calibration lines, Lt is the number of trim lines, b is the binning, and t is the line time in microseconds.

Parameters:
cpmm - the CPMM number
Returns:
the flight software's calculation of exposure duration for the CPMM, in microseconds; if the CPMM is not on, the return value is 0.

getCpmmPowerStartTime

public Date getCpmmPowerStartTime()
Gets the time at which the CPMMs are turned on and begin generating heat. The CPMM power start time is the predict_time() minus half the observation_duration() minus the setup_duration() plus 21 seconds plus the delay_by() duration. If any of these fields (except delay) is null, or if the predict time cannot be parsed, this method returns null. If the delay time is null, 0 is used for the delay time.

Note: This time is UTC SCET, not ET. It does not include leapsecond corrections or spacecraft clock drift.

Returns:
the start time or null if it cannot be determined.

getCpmmPoweredOnDuration

public Double getCpmmPoweredOnDuration()
Gets the duration for which the CPMMs are powered on and generating heat during this observation. This duration is the setup duration minus 21 seconds, plus the exposure duration, plus the readout start offset, plus the readout duration:
D = DS - 21 + DE + DRO + DR

where DS is the setup duration, DE is the exposure duration, DRO is the readout start offset, and DR is the readout duration.

If the observation is a non-data producing observation, this method returns 0. If the setup duration is null, this method returns null.

Returns:
the duration for which the CPMMs are powered on (in seconds) or null if it cannot be determined.

raw_data_volume_bytes

public long raw_data_volume_bytes()
Computes the total estimated data volume in bytes for this observation. The total volume is the sum of the participating CCDs data volumes, adjusted by the estimated Observation_Fields.FELICS_COMPRESSION_RATIO if FELICS compression is enabled.

No attempt is made to check the validity of using FELICS compression, which must not be used if any one CCD is not LUT compressed.

If the observation is a non-data producing observation, the returned data volume is 0.

This volume is called "raw" because it is the observation's data volume in the MRO raw SSR partition; the file size is slightly different in the framed partition.

WARNING If this observation record's FELICS compression is enabled and its compression ratio is null, invoking this method will set the ratio to Observation_Fields.DEFAULT_FELICS_COMPRESSION_RATIO.

Returns:
the estimated raw data volume in bytes for this observation.

data_volume_megabits

public double data_volume_megabits()
Gets the estimated data volume in megabits for this observation. It is simply the estimated data volume in bytes converted to megabits.

WARNING If this observation record's FELICS compression is enabled and its compression ratio is null, invoking this method will set the ratio to Observation_Fields.DEFAULT_FELICS_COMPRESSION_RATIO.

Returns:
the estimated data volume in megabits.
See Also:
raw_data_volume_bytes()

ccd_data_volume_bytes

public long ccd_data_volume_bytes(String ccd)
Computes the total data volume in bytes for a named CCD. The CCD parameter CCD_Fields.CPMM_RAW_DATA_VOLUME_BYTES is set to the computed value, which is also returned by this method.

Warning: If the values for CCD_Fields.IMAGE_LINES, CCD_Fields.TDI, or CCD_Fields.BINNING are not valid for this CCD, the computed data volume will be meaningless. No check is made to ensure their validity.

Parameters:
ccd - the name of the CCD for which data volume will be computed and set.
Returns:
the data volume for the CCD in bytes or 0 if ccd is not a valid CCD name.
See Also:
CCD_Record.getDataVolumeBytes(int,int,int,boolean), Instrument.CCD_NAMES

getReadoutStart

public double getReadoutStart()
Gets the readout start time relative to the start of exposure. The HiRISE flight software starts readout 2.5 seconds after its calculated end-of-exposure. The flight software, however, does not include the 180 lines of reverse clocking in its calculation. This lack results in readout starting less than 2.5 seconds after the end of exposure; with large line times, it can even start while the instrument is still exposing, possibly resulting in one or more CCDs being truncated.

Readout starts at time TR:

TR = TE + TRSO

where TE is given by getExposureDuration() and TRSO is given by getReadoutStartOffset().

If the observation is a non-data producing observation, or if this observation currently has no line time, this method returns 0.

Returns:
the readout start time in seconds relative to the start of exposure. May be less than the exposure duration!
See Also:
FLIGHT_SOFTWARE_READOUT_PAD

getReadoutStartOffset

public double getReadoutStartOffset()
Gets the offset in time between the end of imaging and the start of readout. The HiRISE flight software starts readout 2.5 seconds after its calculated end-of-exposure. The flight software, however, does not include the 180 lines of reverse clocking in its calculation. This lack results in a readout start offset generally less than 2.5 seconds; with large line times, the offset can even be negative, resulting in readout starting before the last CPMM has finished exposing.

Readout start offset TRSO is given by

TRSO = TR - TE

where TR is given by getReadoutStart() and TE is given by getExposureDuration().

If the observation is a non-data producing observation, this method returns 0.

Returns:
the offset in seconds between the end of imaging and the start of readout. May be negative!
See Also:
FLIGHT_SOFTWARE_READOUT_PAD

getReadoutDuration

public double getReadoutDuration()
Gets the readout duration in seconds. The readout duration is the amount of time it takes to read the observation data out from the HiRISE CPMMs to the MRO SSR. FELICS compression takes place on the SSR, not in HiRISE, so FELICS compression does not affect readout. The readout rate is 24 megabits per second; these are base-10 megabits.

Readout usually starts some number of seconds after the end of the exposure:

TR = TE + TRSO

where TR is the start of readout relative to the start of exposure, TE is the exposure duration given by getExposureDuration() and TRSO is given by getReadoutStartOffset() The readout start offset is sometimes negative, however, meaning the readout starts before the end of the exposure.

If the observation is a non-data producing observation, this method returns 0.

Returns:
the readout duration in seconds.

isEarlyReadout

public boolean isEarlyReadout()
Indicates whether this observation's readout starts early. An early readout occurs when readout starts while one or more CCDs is still exposing. This situation arises when line times are particularly long:
180bt > 2.5 s

where b is a CCD's binning and t is the observation's line time.

Returns:
true if readout starts before imaging is complete; false otherwise.
See Also:
FLIGHT_SOFTWARE_READOUT_PAD, getReadoutStartOffset()

isTruncatedExposure

public boolean isTruncatedExposure()
Indicates whether this observation's exposure is truncated by readout. The exposure is truncated during readout when readout ends while one or more CCDs is still exposing:
TRO + DRO > TE

where TRO is the time of readout start (getReadoutStart()), DRO is the readout duration (getReadoutDuration()), and TE is the end of exposure time ({link #getExposureDuration()}).

This situation arises when line times are particularly long:

180bt > 2.5 s

where b is a CCD's binning and t is the observation's line time. Note, however, that long line time is a necessary but not sufficient condition to indicate exposure truncation.

Returns:
true if readout ends before imaging is complete; false otherwise.
See Also:
FLIGHT_SOFTWARE_READOUT_PAD, getReadoutStartOffset()

observation_parameter_fields

public static Vector observation_parameter_fields()
Gets the static set of field names from the Planned_Observations table. The LAST_UPDATE field is not included.

Returns:
a vector containing the field names.

empty_observation_parameters_record

public static Vector empty_observation_parameters_record()
Gets an empty observation parameter record. Each element of the vector is null.

Returns:
an empty observation record vector.

ccd_parameter_fields

public static Vector ccd_parameter_fields()
Gets the static set of field names from the Planned_CCD_Parameters table. The LAST_UPDATE field is not included.

Returns:
a vector containing the field names.

empty_ccd_parameters_record

public static Vector empty_ccd_parameters_record()
Gets an empty CCD parameter record. Each element of the vector is null.

Returns:
an empty CCD record vector.

ccd_name_to_cpmm_power

public static String ccd_name_to_cpmm_power(String ccd)
Gets the name of a CPMM power field given a CCD name.

Parameters:
ccd - the name of the CCD in question.
Returns:
the name of the CPMM power field matching the CCD name, or null if ccd is not a valid name.

cpmm_power_to_ccd_name

public static String cpmm_power_to_ccd_name(String cpmm_power)
Gets the name of a CCD given a CPMM power field.

Parameters:
cpmm_power - the CPMM power field in question.
Returns:
the name of the corresponding CCD, or null if cpmm_power is not a valid power field.

cpmm_field_index

public static int cpmm_field_index(String field_name)
                            throws Observation_Record_Exception
Returns the index of a named field from the CCD parameter set.

Parameters:
field_name - the name of the CCD parameter field. The field names are defined by the constants of this class.
Returns:
the index of the field
Throws:
Observation_Record_Exception - if field_name is not in the set of ccd_parameter_fields().

ccd_data_volume_bytes

public static long ccd_data_volume_bytes(int image_lines,
                                         int tdi,
                                         int binning,
                                         boolean is_lut_compressed)
Computes the data volume in bytes for a HiRISE CCD. This method includes the calibration lines. It does not, however, take into account FELICS compression, which is applied to the entire observation rather than to select CCD data. (Add algorithm details.)

Warning: No effort is made to verify that that the supplied values for line count, TDI stages, or binning are valid.

Parameters:
image_lines - the number of binned image lines to be aquired; this value does not include the calibration lines.
tdi - the number of time delay integration stages.
binning - the binning factor.
is_lut_compressed - true if the CCD data are LUT-compressed, false if not.
Returns:
the data volume for the CCD in bytes.
See Also:
Instrument.calibration_lines_minimum(int, int), CCD_Record.getDataVolumeBytes(int,int,int,boolean)

line_data_volume_bytes

public static int line_data_volume_bytes(int binning,
                                         boolean is_lut_compressed)
Computes the data volume in bytes for a single line of HiRISE data, for a single channel. To get the volume for the whole CCD, multiply the result by 2.

Warning: No effort is made to verify that that the supplied value for binning is valid.

Parameters:
binning - the binning for the line.
is_lut_compressed - true if the line is LUT-compressed, false otherwise.
Returns:
the data volume in bytes.
See Also:
CCD_Record.getLineDataVolumeBytes(int,boolean)

is_non_data

@Deprecated
public boolean is_non_data()
Deprecated. use isNonData() instead.

Returns whether this observation does not produce data. An observation produces no data if its Observation_Fields.TARGET_NAME is Observation_Fields.NOOP or Observation_Fields.CRC_CHECK or if its Observation_Fields.STATUS is Observation_Fields.DEFUNCT. If so, this method returns true; otherwise it returns false.

Returns:
true if the observation produces no data; false otherwise.

readout_duration

@Deprecated
public double readout_duration()
Deprecated. use getReadoutDuration() instead.

Gets the readout duration in seconds. The readout duration is the amount of time it takes to read the observation data out from the HiRISE CPMMs to the MRO SSR. Note that FELICS compression takes place on the SSR, not in HiRISE.

The readout rate is 24 megabits per second; these are base-10 megabits.

if the observation is a non-data producing observation, this method returns 0.

Returns:
the readout duration in seconds.

cpmm_power_start_time

@Deprecated
public Date cpmm_power_start_time()
Deprecated. use getCpmmPowerStartTime() instead.

Gets the time at which the CPMMs are turned on and begin generating heat. The CPMM power start time is the predict_time() minus half the observation_duration() minus the setup_duration() plus 21 seconds plus the delay_by() time. If any of these fields (except delay) is null, or if the predict time cannot be parsed, this method returns null. If the delay time is null, 0 is used for the delay time.

Note: This time is UTC SCET, not ET. It does not include leapsecond corrections or spacecraft clock drift.

This method does not account for the vagaries of timing involved in a relative-timed sequence. In such a case, the CPMM power start time isn't knowable a priori, so adjustments due to the bypassed EXPOSURE_TIMING_PAD are meaningless.

Returns:
the start time or null if it cannot be determined.

cpmm_powered_on_duration

@Deprecated
public Double cpmm_powered_on_duration()
Deprecated. use getCpmmPoweredOnDuration() instead.

Gets the duration for which the CPMMs are powered on and generating heat during this observation. This duration is the setup_duration() minus 21 seconds plus the actual_exposure_duration() plus the getReadoutDuration(). If the setup duration is null, this method returns null.

if the observation is a non-data producing observation, this method returns 0.

Returns:
the duration for which the CPMMs are powered on or null if it cannot be determined.

HiRISE

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