19 #ifndef _HiRISE_Observation_
20 #define _HiRISE_Observation_
31 #if defined (INCLUDE_PVL)
74 static const char*
const
232 std::istream&
source ()
const;
253 {Source = &stream; Bytes_Read = 0;
return *
this;}
324 unsigned long components (std::ostream& stream)
const;
358 std::ostream&
line (std::ostream& stream)
const;
431 {Mirror_Channel_1 = enable;
return *
this;}
440 {
return Mirror_Channel_1;}
453 {Mirror_Channel_1_Default = enable;}
466 {
return Mirror_Channel_1_Default;}
499 (std::ostream& stream = std::cout,
bool verbose =
false)
const;
507 {
return Data_Set_Version;}
528 {
return Product_Version;}
544 #if defined (INCLUDE_PVL)
683 std::vector<Data_Component*>
701 Mirror_Channel_1_Default;
727 std::ostream&
operator<<
728 (std::ostream& stream,
const Observation& observation);
Gap_Map * gap_map(istream &source, long location, unsigned int entries)
Definition: HiRISE_Observation.cc:2333
A Gap_Map contains a map of data gap ranges for the file with which it is associated.
Definition: Gap_Map.hh:70
An Image_Line contains a cache of observation channel image pixel data.
Definition: Image_Line.hh:112
unsigned int count() const
Gets the current line count.
Definition: Image_Line.cc:967
A LUT contains the lookup table used to map 14-bit CCD sensor values to 8-bit image pixel values.
Definition: LUT.hh:68
Observation manages the components of a MRO HiRISE instrument science observation data set.
Definition: Observation.hh:68
void reset_line()
Resets the Observation Image_Line structure.
Definition: Observation.cc:739
static const char *const *const *const *const *const *const *const *const *const INSTRUMENT_HOST_ID
Definition: Observation.hh:87
static const char *const *const *const *const DATA_SET_NAME
Definition: Observation.hh:82
Observation & source(std::istream &stream)
Sets the input stream to be used as the source of observation data.
Definition: Observation.hh:252
static const char *const *const *const DATA_SET_ID
Definition: Observation.hh:81
std::istream & source() const
Gets the istream being used as the source of observation data.
Definition: Observation.cc:292
static void gap_map_shift(idaeim::PVL::Parameter *gap_map, int shift)
Shifts the locations of gaps in a gap map.
Definition: Observation.cc:1737
Observation & line()
Loads the next line of image data from the source into the Line cache.
Definition: Observation.cc:650
bool mirror_channel_1() const
Tests if mirroring of channel 1 Line data is enabled.
Definition: Observation.hh:439
static const int MINIMUM_MICROSECONDS_PRECISION
The minimum precision (all digits) of microsecond time values.
Definition: Observation.hh:118
bool components()
Reads a set of header data components from the data source.
Definition: Observation.cc:302
Gap_Map Gaps
Gap range map for the channel data (excludes the MROSP).
Definition: Observation.hh:680
static const char *const *const *const *const *const *const *const *const *const *const *const INSTRUMENT_ID
Definition: Observation.hh:89
static const char *const *const RECORD_TYPE
Definition: Observation.hh:80
Science_Channel_Header Science
Science channel data containing a wealth of instrument settings.
Definition: Observation.hh:664
idaeim::PVL::Aggregate * PVL_PDS() const
Produces a set of PVL parameters for use in generating a PDS standards compliant EDR product label.
Definition: Observation.hh:620
static const char *const *const *const *const *const *const PRODUCER_ID
Definition: Observation.hh:84
unsigned long long bytes_read() const
Gets the number of bytes read since the data source stream was attached to this Observation.
Definition: Observation.hh:482
static const char *const *const *const *const *const *const *const PRODUCER_FULL_NAME
Definition: Observation.hh:85
static const char *const NON_PDS_NAMESPACE_PARAMETERS[]
PDS label parameters that are not in the MRO namespace.
Definition: Observation.hh:114
static const char *const DEFAULT_PRODUCT_VERSION
Default product version specification.
Definition: Observation.hh:100
std::string product_version() const
Gets the version string for the PRODUCT_VERSION_ID parameter.
Definition: Observation.hh:527
Engineering_Header Engineering
CPMM/Telemetry engineering info (just a few key settings).
Definition: Observation.hh:672
static const char *const *const *const *const *const *const *const *const *const *const *const *const TARGET_NAME
Definition: Observation.hh:90
std::vector< Data_Component * > Components
Data_Component header objects: Science, Lookup_Table, Engineering.
Definition: Observation.hh:684
MROSP_Header MROSP
MROSP header. Usually absent (present in instrument manufacturer test data).
Definition: Observation.hh:660
std::ostream & print(std::ostream &stream=std::cout, bool verbose=false) const
Prints a detailed description of the current header data components.
Definition: Observation.cc:1806
static const int PVL_PDS_BYTES
The absolute size to set the PDS PVL label.
Definition: Observation.hh:122
std::vector< Data_Component * > & data_components()
Gets the vector of pointers to the Observation Data_Component header data objects.
Definition: Observation.hh:204
static void mirror_channel_1_default(bool enable)
Enables or disables the default mirroring of channel 1 Line data.
Definition: Observation.hh:452
static const char *const *const *const *const *const *const *const *const *const *const *const *const *const *const PDS_NAMESPACE_PARAMETER_PREFIX
Definition: Observation.hh:92
std::string data_ID() const
Gets the string representation of the observation data identification values for the current header d...
Definition: Observation.cc:249
Observation & mirror_channel_1(bool enable)
Enables or disables mirroring of channel 1 Line data.
Definition: Observation.hh:430
static const char *const *const *const *const *const *const *const *const *const *const INSTRUMENT_NAME
Definition: Observation.hh:88
static const char *const *const *const *const *const *const *const *const *const *const *const *const *const FLIGHT_SOFTWARE_ID_PREFIX
Definition: Observation.hh:91
static const char *const *const *const *const *const PRODUCER_INSTITUTION_NAME
Definition: Observation.hh:83
Observation()
Constructs an empty Observation.
Definition: Observation.cc:214
Image_Line Line
Image data (lines cache).
Definition: Observation.hh:676
LUT Lookup_Table
Lookup table used for 14-bit observation data to 8-bit image data mapping.
Definition: Observation.hh:668
std::string data_set_version() const
Gets the version string for the DATA_SET_ID and DATA_SET_NAME PDS PVL parameters.
Definition: Observation.hh:506
static bool mirror_channel_1_default()
Tests the state of default mirroring of channel 1 Line data.
Definition: Observation.hh:465
static const char *const *const *const *const *const *const *const *const INSTRUMENT_HOST_NAME
Definition: Observation.hh:86
unsigned int line_count() const
The number of lines read since the last set of header data components was read.
Definition: Observation.hh:216
static const char *const DEFAULT_DATA_SET_VERSION
Default data set version specification.
Definition: Observation.hh:96
static const char *const ID
Class identification name with source code version and date.
Definition: Observation.hh:75
static const char *const PDS_VERSION_ID
Constant Parameter String values for the PDS label PVL contents.
Definition: Observation.hh:79
idaeim::PVL::Aggregate * PVL() const
Produces an exhausitive PVL (Parameter Value Language) rendition of the header data components.
Definition: Observation.cc:814
string shift(std::string lines, int amount)
Shifts (indents) lines of text by the specified number of spaces.
Definition: Data_Component.cc:1209