<?xml version="1.0" encoding="UTF-8"?>
<?xml-model href="http://pds.nasa.gov/pds4/pds/v1/PDS4_PDS_1H00.sch" schematypens="http://purl.oclc.org/dsdl/schematron"?>
<?xml-model href="https://pds.nasa.gov/pds4/geom/v1/PDS4_GEOM_1H00_1950.sch" schematypens="http://purl.oclc.org/dsdl/schematron"?>

<Ingest_LDD 
    xmlns="http://pds.nasa.gov/pds4/pds/v1"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:img_surface="http://pds.nasa.gov/pds4/img_surface/v1" 
    xmlns:geom="http://pds.nasa.gov/pds4/geom/v1"
    xmlns:pds="http://pds.nasa.gov/pds4/pds/v1"
    xsi:schemaLocation="https://pds.nasa.gov/pds4/pds/v1 https://pds.nasa.gov/pds4/pds/v1/PDS4_PDS_1H00.xsd     
                        http://pds.nasa.gov/pds4/geom/v1 https://pds.nasa.gov/pds4/geom/v1/PDS4_GEOM_1H00_1950.xsd">
    <name>Surface Imaging</name>
    <ldd_version_id>1.2.7.0</ldd_version_id>
    <dictionary_type>Discipline</dictionary_type>
    <full_name>Trent Hare</full_name>
    <steward_id>img</steward_id>
    <namespace_id>img_surface</namespace_id>
    <comment>
      The Surface Imaging sub-model is associated with imaging and spectrometer data products of surface missions. 
      
      See "CHANGELOG.md" file on GitHub for updates
      https://github.com/pds-data-dictionaries/ldd-img_surface
    </comment>
    <last_modification_date_time>2022-07-01T12:46:00</last_modification_date_time>
  
<!-- Start attribute definitions -->
  
<!-- Start attributes for Image_Identifiers class -->
  <DD_Attribute>
    <name>image_id</name>
    <version_id>1.0</version_id>
    <local_identifier>image_id</local_identifier>
    <nillable_flag>false</nillable_flag>
    <submitter_name>Jordan Padams</submitter_name>
    <definition>The image_id is an arbitrary string identifier that is associated with this image. 
      The specific interpretation of it is mission-dependent, and it need not be unique to this image. 
      For example, missions may use it as an image counter, a round-trip token indicating how to process 
      the image, or a FSW-assigned value identifying the image.</definition>
    <DD_Value_Domain>
      <enumeration_flag>false</enumeration_flag>
      <value_data_type>ASCII_Short_String_Collapsed</value_data_type>
      <unit_of_measure_type>Units_of_None</unit_of_measure_type>
    </DD_Value_Domain>
  </DD_Attribute>
  <DD_Attribute>
    <name>image_id_2</name>
    <version_id>1.0</version_id>
    <local_identifier>image_id_2</local_identifier>
    <nillable_flag>false</nillable_flag>
    <submitter_name>Trent Hare</submitter_name>
    <definition>The image_id_2 allows a second image_id for missions with two, same use cases.</definition>
    <DD_Value_Domain>
      <enumeration_flag>false</enumeration_flag>
      <value_data_type>ASCII_Short_String_Collapsed</value_data_type>
      <unit_of_measure_type>Units_of_None</unit_of_measure_type>
    </DD_Value_Domain>
  </DD_Attribute>
  <DD_Attribute>
    <name>mosaic_id</name>
    <version_id>1.0</version_id>
    <local_identifier>mosaic_id</local_identifier>
    <nillable_flag>false</nillable_flag>
    <submitter_name>Jordan Padams</submitter_name>
    <definition>The mosaic_id attribute specifies which mosaic this image should be automatically
      included in. This does not constrain which mosaic(s) the image may be included in outside a
      pipeline environment.</definition>
    <DD_Value_Domain>
      <enumeration_flag>false</enumeration_flag>
      <value_data_type>ASCII_Short_String_Collapsed</value_data_type>
      <unit_of_measure_type>Units_of_None</unit_of_measure_type>
    </DD_Value_Domain>
  </DD_Attribute>
  <DD_Attribute>
    <name>mesh_id</name>
    <version_id>1.0</version_id>
    <local_identifier>mesh_id</local_identifier>
    <nillable_flag>false</nillable_flag>
    <submitter_name>Jordan Padams</submitter_name>
    <definition>The mesh_id attribute specifies which terrain mesh this image should be
      automatically included in. This does not constrain which mesh(es) the image may be included in
      outside a pipeline environment.</definition>
    <DD_Value_Domain>
      <enumeration_flag>false</enumeration_flag>
      <value_data_type>ASCII_Short_String_Collapsed</value_data_type>
      <unit_of_measure_type>Units_of_None</unit_of_measure_type>
    </DD_Value_Domain>
  </DD_Attribute>
  <DD_Attribute>
    <name>stereo_match_id</name>
    <version_id>1.0</version_id>
    <local_identifier>stereo_match_id</local_identifier>
    <nillable_flag>false</nillable_flag>
    <submitter_name>Jordan Padams</submitter_name>
    <definition> The stereo_match_id attribute specifies which other image this image matches with
      for stereo processing. If used for a mission, the two images making up a stereo pair should
      share the same stereo_match_id value. </definition>
    <DD_Value_Domain>
      <enumeration_flag>false</enumeration_flag>
      <value_data_type>ASCII_Short_String_Collapsed</value_data_type>
      <unit_of_measure_type>Units_of_None</unit_of_measure_type>
    </DD_Value_Domain>
  </DD_Attribute>
  <DD_Attribute>
    <name>start_image_id</name>
    <version_id>1.0</version_id>
    <local_identifier>start_image_id</local_identifier>
    <nillable_flag>false</nillable_flag>
    <submitter_name>Trent Hare</submitter_name>
    <definition>Specifies the starting image ID for some operation.</definition>
    <DD_Value_Domain>
      <enumeration_flag>false</enumeration_flag>
      <value_data_type>ASCII_Short_String_Collapsed</value_data_type>
      <unit_of_measure_type>Units_of_None</unit_of_measure_type>
    </DD_Value_Domain>
  </DD_Attribute>
  <DD_Attribute>
    <name>tracking_id</name>
    <version_id>1.0</version_id>
    <local_identifier>tracking_id</local_identifier>
    <nillable_flag>false</nillable_flag>
    <submitter_name>Trent Hare</submitter_name>
    <definition>tracking_id is an arbitrary string identifier associated with the image. The specific interpretation of it is 
      mission-dependent, and it need not be unique to this image, but it is intended to help track the image and 
      relate it back to commanding.</definition>
    <DD_Value_Domain>
      <enumeration_flag>false</enumeration_flag>
      <value_data_type>ASCII_Short_String_Collapsed</value_data_type>
      <unit_of_measure_type>Units_of_None</unit_of_measure_type>
    </DD_Value_Domain>
  </DD_Attribute>
  <DD_Attribute>
    <name>observation_number</name>
    <version_id>1.0</version_id>
    <local_identifier>observation_number</local_identifier>
    <nillable_flag>false</nillable_flag>
    <submitter_name>Trent Hare</submitter_name>
    <definition>Identifies which observation of many this data product pertains to.</definition>
    <DD_Value_Domain>
      <enumeration_flag>false</enumeration_flag>
      <value_data_type>ASCII_Short_String_Collapsed</value_data_type>
      <unit_of_measure_type>Units_of_None</unit_of_measure_type>
    </DD_Value_Domain>
  </DD_Attribute>
  <DD_Attribute>
    <name>parameter_table_number</name>
    <version_id>1.0</version_id>
    <local_identifier>parameter_table_number</local_identifier>
    <nillable_flag>false</nillable_flag>
    <submitter_name>Trent Hare</submitter_name>
    <definition>Specifies which table of parameters to use. Tables are necessarily defined 
      in a mission- and instrument-specific manner.</definition>
    <DD_Value_Domain>
      <enumeration_flag>false</enumeration_flag>
      <value_data_type>ASCII_Short_String_Collapsed</value_data_type>
      <unit_of_measure_type>Units_of_None</unit_of_measure_type>
    </DD_Value_Domain>
  </DD_Attribute>
  <!-- End attributes for Image_Identifiers class -->
  
  
  <!-- Start attributes for Instrument_Information
        In alphabetical order, the attributes are:
  -->
  <DD_Attribute>
    <name>image_type</name>
    <version_id>1.0</version_id>
    <local_identifier>image_type</local_identifier>
    <nillable_flag>false</nillable_flag>
    <submitter_name>Jordan Padams</submitter_name>
    <definition>The image_type attribute specifies the type of image acquired. The
      intent is to distinguish between different kinds of image-related data
      that may differ in how they are interpreted. Some types are not
      standard images, but they are stored in an image structure. Examples
      include Regular, Thumbnail, Reference Pixels, Histogram, Row Sum, and
      Column Sum.</definition>
    <DD_Value_Domain>
      <enumeration_flag>false</enumeration_flag>
      <value_data_type>ASCII_Short_String_Collapsed</value_data_type>
      <unit_of_measure_type>Units_of_None</unit_of_measure_type>
      <DD_Permissible_Value>
        <value>REGULAR</value>
        <value_meaning>regular image</value_meaning>
      </DD_Permissible_Value>
      <DD_Permissible_Value>
        <value>THUMBNAIL</value>
        <value_meaning>thumbnail image</value_meaning>
      </DD_Permissible_Value>
      <DD_Permissible_Value>
        <value>REF_PIXELS</value>
        <value_meaning>reference pixels</value_meaning>
      </DD_Permissible_Value>
      <DD_Permissible_Value>
        <value>HISTOGRAM</value>
        <value_meaning>histogram of image</value_meaning>
      </DD_Permissible_Value>
      <DD_Permissible_Value>
        <value>ROW_SUM</value>
        <value_meaning>summation across rows of the image</value_meaning>
      </DD_Permissible_Value>
      <DD_Permissible_Value>
        <value>COL_SUM</value>
        <value_meaning>summation across columns of the image</value_meaning>
      </DD_Permissible_Value>
      <DD_Permissible_Value>
        <value>SPECTRA</value>
        <value_meaning>spectral data</value_meaning>
      </DD_Permissible_Value>
      <DD_Permissible_Value>
        <value>HEALTH</value>
        <value_meaning>state of health</value_meaning>
      </DD_Permissible_Value>
    </DD_Value_Domain>
  </DD_Attribute>
  <!-- TODO Figure out whether this is deprecated & should be removed? Couldn't find this even in MER. -->
  <!--
  <DD_Attribute>
    <name>image_observation_type</name>
    <version_id>0.1</version_id>
    <local_identifier>image_observation_type</local_identifier>
    <nillable_flag>false</nillable_flag>
    <submitter_name>Elizabeth D. Rye</submitter_name>
    <definition> The image_observation_type attribute identifies the type or purpose of an observation
      that may be associated with an image. Image observation types may include limb, black sky,
      spacecraft calibration, or other image attribute that may be used for identification.
      Observation types should not include features, regions, or standard target names. The set of 
      permissible values should be set by a mission dictionary.</definition>
    <DD_Value_Domain>
      <enumeration_flag>false</enumeration_flag>
      <value_data_type>ASCII_Short_String_Collapsed</value_data_type>
      <unit_of_measure_type>Units_of_None</unit_of_measure_type>
      <DD_Permissible_Value>
        <value>Black Sky</value>
        <value_meaning> TBD </value_meaning>
      </DD_Permissible_Value>
      <DD_Permissible_Value>
        <value>Dark Current</value>
        <value_meaning> TBD </value_meaning>
      </DD_Permissible_Value>
      <DD_Permissible_Value>
        <value>Dark Strip</value>
        <value_meaning> TBD </value_meaning>
      </DD_Permissible_Value>
      <DD_Permissible_Value>
        <value>Flat Field</value>
        <value_meaning> TBD </value_meaning>
      </DD_Permissible_Value>
      <DD_Permissible_Value>
        <value>Histogram</value>
        <value_meaning> TBD </value_meaning>
      </DD_Permissible_Value>
      <DD_Permissible_Value>
        <value>Limb</value>
        <value_meaning> TBD </value_meaning>
      </DD_Permissible_Value>
      <DD_Permissible_Value>
        <value>Null Strip</value>
        <value_meaning> TBD </value_meaning>
      </DD_Permissible_Value>
      <DD_Permissible_Value>
        <value>Regular</value>
        <value_meaning> TBD </value_meaning>
      </DD_Permissible_Value>
      <DD_Permissible_Value>
        <value>Summation</value>
        <value_meaning> TBD </value_meaning>
      </DD_Permissible_Value>
    </DD_Value_Domain>
  </DD_Attribute>-->
  
  <!-- TODO definition & value domain for image_acquire_mode -->
  <DD_Attribute>
    <name>image_acquire_mode</name>
    <version_id>1.0</version_id>
    <local_identifier>image_acquire_mode</local_identifier>
    <nillable_flag>false</nillable_flag>
    <submitter_name>Cristina De Cesare</submitter_name>
    <definition>TBD</definition>
    <DD_Value_Domain>
      <enumeration_flag>false</enumeration_flag>
      <value_data_type>ASCII_Short_String_Collapsed</value_data_type>
      <unit_of_measure_type>Units_of_None</unit_of_measure_type>
    </DD_Value_Domain>
  </DD_Attribute>
  
  <DD_Attribute>
    <name>instrument_type</name>
    <version_id>1.1</version_id>
    <local_identifier>instrument_type</local_identifier>
    <nillable_flag>true</nillable_flag>
    <submitter_name>Cristina De Cesare</submitter_name>
    <definition>The instrument_type attribute specifies the type of an instrument, for example 
      IMAGING CAMERA, SPECTROMETER, IMAGING SPECTROMETER, or RADIOMETER</definition>
    <!-- PDS3 styled names  -->
    <DD_Value_Domain>
        <enumeration_flag>true</enumeration_flag>
        <value_data_type>ASCII_Short_String_Collapsed</value_data_type>
        <DD_Permissible_Value>
         <value>IMAGING CAMERA</value>
         <value_meaning>An optical instrument used to capture an image.</value_meaning>
        </DD_Permissible_Value>
        <DD_Permissible_Value>
         <value>SPECTROMETER</value>
         <value_meaning>A spectrometer is a device for measuring wavelengths of light over a wide 
           range of the electromagnetic spectrum.</value_meaning>
        </DD_Permissible_Value>
        <DD_Permissible_Value>
         <value>IMAGING SPECTROMETER</value>
         <value_meaning> An instrument used in hyperspectral imaging and imaging spectroscopy to acquire a 
           spectrally-resolved image of an object or scene, often referred to as a datacube due to the 
           three-dimensional representation of the data.</value_meaning>
        </DD_Permissible_Value>
        <DD_Permissible_Value>
         <value>RADIOMETER</value>
         <value_meaning>Radiometer is a device used to measure the intensity of radiant energy.</value_meaning>
        </DD_Permissible_Value>
    </DD_Value_Domain>
  </DD_Attribute>
  
  <DD_Attribute>
    <name>instrument_mode_id</name>
    <version_id>1.0</version_id>
    <local_identifier>instrument_mode_id</local_identifier>
    <nillable_flag>false</nillable_flag>
    <submitter_name>Elizabeth D. Rye</submitter_name>
    <definition> The instrument_mode_id attribute provides an instrument-dependent designation of
      operating mode. This may be simply a number, letter or code, or a word such as 'normal', 'full
      resolution', 'near encounter', or 'fixed grating'. These types may vary by mission so the permissible values should be set 
      by the mission dictionaries.</definition>
    <DD_Value_Domain>
      <enumeration_flag>false</enumeration_flag>
      <value_data_type>ASCII_Short_String_Collapsed</value_data_type>
      <unit_of_measure_type>Units_of_None</unit_of_measure_type>
    </DD_Value_Domain>
  </DD_Attribute>
  
  <!-- TODO check instrument_serial_number inherit from PDS base -->
  <DD_Attribute>
    <name>instrument_serial_number</name>
    <version_id>1.0</version_id>
    <local_identifier>instrument_serial_number</local_identifier>
    <nillable_flag>false</nillable_flag>
    <submitter_name>Cristina De Cesare</submitter_name>
    <definition>The instrument serial number element provides
      the manufacturer's serial number assigned to an instrument. This
      number may be used to uniquely identify a particular instrument
      for tracing its components or determining its calibration
      history, for example.</definition>
    <DD_Value_Domain>
      <enumeration_flag>false</enumeration_flag>
      <value_data_type>ASCII_Short_String_Collapsed</value_data_type>
      <unit_of_measure_type>Units_of_None</unit_of_measure_type>
    </DD_Value_Domain>
  </DD_Attribute>
  
  <DD_Attribute>
    <name>instrument_version_number</name>
    <version_id>1.0</version_id>
    <local_identifier>instrument_version_number</local_identifier>
    <nillable_flag>false</nillable_flag>
    <submitter_name>Cristina De Cesare</submitter_name>
    <definition> The instrument_version_number element identifies the
      specific model of an instrument used to obtain data. For
      example, this keyword could be used to distinguish between an
      engineering model of a camera used to acquire test data, and a
      flight model of a camera used to acquire science data during a
      mission.</definition>
    <DD_Value_Domain>
      <enumeration_flag>false</enumeration_flag>
      <value_data_type>ASCII_Short_String_Collapsed</value_data_type>
      <unit_of_measure_type>Units_of_None</unit_of_measure_type>
    </DD_Value_Domain>
  </DD_Attribute>
  
  <DD_Attribute>
    <name>camera_product_id</name>
    <version_id>1.0</version_id>
    <local_identifier>camera_product_id</local_identifier>
    <nillable_flag>false</nillable_flag>
    <submitter_name>Cristina De Cesare</submitter_name>
    <definition>The camera_product_id attribute specifies a numeric identifier 
      assigned by the instrument to this specific observation.</definition>
    <DD_Value_Domain>
      <enumeration_flag>false</enumeration_flag>
      <value_data_type>ASCII_Short_String_Collapsed</value_data_type>
      <unit_of_measure_type>Units_of_None</unit_of_measure_type>
    </DD_Value_Domain>
  </DD_Attribute>
  
  <DD_Attribute>
    <name>camera_product_id_count</name>
    <version_id>1.0</version_id>
    <local_identifier>camera_product_id_count</local_identifier>
    <nillable_flag>false</nillable_flag>
    <submitter_name>Cristina De Cesare</submitter_name>
    <definition>The camera_product_id_count attribute specifies 
      the number of times a specific camera_product_id has been used.</definition>
    <DD_Value_Domain>
      <enumeration_flag>false</enumeration_flag>
      <value_data_type>ASCII_NonNegative_Integer</value_data_type>
      <unit_of_measure_type>Units_of_None</unit_of_measure_type>
    </DD_Value_Domain>
  </DD_Attribute>

  <DD_Attribute>
    <name>camera_model_serial_number</name>
    <version_id>1.0</version_id>
    <local_identifier>camera_model_serial_number</local_identifier>
    <nillable_flag>false</nillable_flag>
    <submitter_name>Trent Hare</submitter_name>
    <definition>Specifies the manufacturer's serial number for the camera for which the camera model 
      was derived. This should match instrument_serial_number in most cases; generally speaking a 
      mismatch should only occur during testing/development.</definition>
    <DD_Value_Domain>
      <enumeration_flag>false</enumeration_flag>
      <value_data_type>ASCII_Short_String_Collapsed</value_data_type>
      <unit_of_measure_type>Units_of_None</unit_of_measure_type>
    </DD_Value_Domain>
  </DD_Attribute>

  <DD_Attribute>
    <name>ops_instrument_key</name>
    <version_id>1.1</version_id>
    <local_identifier>ops_instrument_key</local_identifier>
    <nillable_flag>false</nillable_flag>
    <submitter_name>Cristina De Cesare</submitter_name>
    <definition>The ops_instrument_key attribute specifies the identifier or key 
      for the instrument that was used during operations to look up instrument 
      parameters or calibration. The key in Commanded_Parameters may differ from 
      the primary ops_instrument_key in that the command may apply to a stereo 
      camera as a pair (e.g. MCAMZ_BOTH) rather than a specific left or right eye.</definition>
    <DD_Value_Domain>
      <enumeration_flag>false</enumeration_flag>
      <value_data_type>ASCII_Short_String_Preserved</value_data_type>
      <unit_of_measure_type>Units_of_None</unit_of_measure_type>
    </DD_Value_Domain>
  </DD_Attribute>
  <!-- End attributes for Instrument_Information -->
  
  <!-- Start attributes for Derived_Product_Parameters   -->
  <DD_Attribute>
    <name>horizon_mask_elevation</name>
    <version_id>1.0</version_id>
    <local_identifier>horizon_mask_elevation</local_identifier>
    <nillable_flag>false</nillable_flag>
    <submitter_name>Jordan Padams</submitter_name>
    <definition>The horizon_mask_elevation attribute specifies the elevation (in degrees) used as
      the horizontal cutoff in a mask file that prevents the horizon and sky features in the image 
      from being processed. If this attribute is not present in the product label, no horizon mask 
      was used.</definition>
    <DD_Value_Domain>
      <enumeration_flag>false</enumeration_flag>
      <value_data_type>ASCII_Real</value_data_type>
      <unit_of_measure_type>Units_of_Angle</unit_of_measure_type>
      <specified_unit_id>deg</specified_unit_id>
    </DD_Value_Domain>
  </DD_Attribute>
  <DD_Attribute>
    <name>derived_image_type_name</name>
    <version_id>1.0</version_id>
    <local_identifier>derived_image_type_name</local_identifier>
    <nillable_flag>false</nillable_flag>
    <submitter_name>Jordan Padams</submitter_name>
    <definition>The derived_image_type_name attribute specifies how to interpret the pixel values in a
      derived image (or colloquially, the type of the derived image itself). Valid values vary
      per mission depending on the products produced.</definition>
    <DD_Value_Domain>
      <enumeration_flag>false</enumeration_flag>
      <value_data_type>ASCII_Short_String_Collapsed</value_data_type>
      <unit_of_measure_type>Units_of_None</unit_of_measure_type>
    </DD_Value_Domain>
  </DD_Attribute>
  <!-- End attributes for Derived_Product_Parameters   -->
  
  <!-- Start attributes for Error_Model -->
  <DD_Attribute>
    <name>error_model_name</name>
    <version_id>1.0</version_id>
    <local_identifier>error_model_name</local_identifier>
    <nillable_flag>false</nillable_flag>
    <submitter_name>Jordan Padams</submitter_name>
    <definition>The error_model_name attribute specifies the method or algorithm used to create the error estimate. Each mission will define their
      own set of possible values. Algorithms will be added over time. The initial value is MIPL_CONST_DISPARITY_PROJECTED_V1, 
      which means an arbitrary constant disparity error is assumed (in ERROR_MODEL_PARMS), which is projected through the camera models to 
      approximate an error ellipse, which is then projected to the XYZ or range/crossrange axes depending on the file type. </definition>
    <DD_Value_Domain>
      <enumeration_flag>false</enumeration_flag>
      <value_data_type>ASCII_Short_String_Collapsed</value_data_type>
      <unit_of_measure_type>Units_of_None</unit_of_measure_type>
    </DD_Value_Domain>
  </DD_Attribute>
  <!-- End attributes for Error_Model-->
  
  <!-- Start attributes for Geometry_Projection class -->
  <DD_Attribute>
    <name>linearization_mode</name>
    <version_id>1.0</version_id>
    <local_identifier>linearization_mode</local_identifier>
    <nillable_flag>false</nillable_flag>
    <submitter_name>Jordan Padams</submitter_name>
    <definition> The linearization_mode attribute specifies what kind of stereo partner was used to
      linearize the image (the process requires two camera models). </definition>
    <DD_Value_Domain>
      <enumeration_flag>true</enumeration_flag>
      <value_data_type>ASCII_Short_String_Collapsed</value_data_type>
      <unit_of_measure_type>Units_of_None</unit_of_measure_type>
      <DD_Permissible_Value>
        <value>Nominal</value>
        <value_meaning>The image was linearized using the nominal stereo partner at the same
          pointing (whether or not the partner image was actually acquired).</value_meaning>
      </DD_Permissible_Value>
      <DD_Permissible_Value>
        <value>Actual</value>
        <value_meaning>The image was linearized using an actual stereo partner image, which may be
          at a different pointing or rover location (e.g. long-baseline or re-pointed stereo). The
          actual partner product(s) will be referenced by the Internal_Reference or External_Reference class(es)
          contained in the Stereo_Product_Parameters class.</value_meaning>
      </DD_Permissible_Value>
      <DD_Permissible_Value>
        <value>None</value>
        <value_meaning>Linearization has not been performed.</value_meaning>
      </DD_Permissible_Value>
    </DD_Value_Domain>
  </DD_Attribute>
  <DD_Attribute>
    <name>linearization_mode_fov</name>
    <version_id>1.0</version_id>
    <local_identifier>linearization_mode_fov</local_identifier>
    <nillable_flag>false</nillable_flag>
    <submitter_name>Jordan Padams</submitter_name>
    <definition> The linearization_mode_fov attribute specifies how the linearized camera model's
      field of view (FOV) as constructed (corresponding to the "cahv_fov" parameter in MIPL
      software). </definition>
    <DD_Value_Domain>
      <enumeration_flag>true</enumeration_flag>
      <value_data_type>ASCII_Short_String_Collapsed</value_data_type>
      <unit_of_measure_type>Units_of_None</unit_of_measure_type>
      <DD_Permissible_Value>
        <value>Min</value>
        <value_meaning>Indicates the FOV is the intersection of the two cameras, which means some
          data are cut off and typically stretched horizontally, but there are no black
          areas.</value_meaning>
      </DD_Permissible_Value>
      <DD_Permissible_Value>
        <value>Max</value>
        <value_meaning>Indicates the FOV is the union of the two cameras, which preserves the edges
          of the images but typically compresses the image horizontally, and creates black
          areas.</value_meaning>
      </DD_Permissible_Value>
      <DD_Permissible_Value>
        <value>Linear</value>
        <value_meaning>Uses only the CAHV vectors, which tends to preserve the aspect ratio and
          scale of the original but both cuts off data and has black areas.</value_meaning>
      </DD_Permissible_Value>
      <DD_Permissible_Value>
        <value>None</value>
        <value_meaning>Linearization has not been performed.</value_meaning>
      </DD_Permissible_Value>
    </DD_Value_Domain>
  </DD_Attribute>
  <DD_Attribute>
    <name>geometry_projection_type</name>
    <version_id>1.1</version_id>
    <local_identifier>geometry_projection_type</local_identifier>
    <nillable_flag>false</nillable_flag>
    <submitter_name>Jordan Padams</submitter_name>
    <definition>The geometry_projection_type attribute
      specifies how pixels in a file have been reprojected to correct for
      camera distortion, linearization, or rubber-sheeting (it is not the
      intent of this field to capture map projections). "Raw" indicates no
      projection has been done.</definition>
    <DD_Value_Domain>
      <enumeration_flag>true</enumeration_flag>
      <value_data_type>ASCII_Short_String_Collapsed</value_data_type>
      <unit_of_measure_type>Units_of_None</unit_of_measure_type>
      <DD_Permissible_Value>
        <value>Raw</value>
        <value_meaning>Indicates the image has not been reprojected. The original
          camera model is still in use.</value_meaning>
      </DD_Permissible_Value>
      <DD_Permissible_Value>
        <value>Linearized</value>
        <value_meaning>Indicates reprojection has been performed to linearize
          the camera model (thus removing things like lens distortion). For
          images using the CAHV family of camera models, the image uses a CAHV
          model instead of CAHVOR or CAHVORE.</value_meaning>
      </DD_Permissible_Value>
      <DD_Permissible_Value>
        <value>Trapezoid</value>
        <value_meaning>Trapezoidal reprojection, used to compensate for an off-axis 
          camera such as the Mars 2020 PIXL MCC.</value_meaning>
      </DD_Permissible_Value>
      <DD_Permissible_Value>
        <value>Uncorrected</value>
        <value_meaning>No correction has been applied to the geometry.</value_meaning>
      </DD_Permissible_Value>
    </DD_Value_Domain>
  </DD_Attribute>
  <!-- End attributes for Geometry_Projection class -->
  
  <!-- Start attributes for Stereo_Product_Parameters  -->
  <DD_Attribute>
    <name>correlation_average_scale</name>
    <version_id>1.0</version_id>
    <local_identifier>correlation_average_scale</local_identifier>
    <nillable_flag>false</nillable_flag>
    <submitter_name>Trent Hare</submitter_name>
    <definition>Contains the "average" scale factor for the correlation. In other words, 
      given the reference image, scale it by this amount to match the target image. This 
      scale factor is not precisely defined; it is determined in different ways by different 
      correlation programs. The intent is to provide a "hint" for users of the correlation 
      without requiring a full set of transform coefficients.</definition>
    <DD_Value_Domain>
      <enumeration_flag>false</enumeration_flag>
      <value_data_type>ASCII_Real</value_data_type>
      <unit_of_measure_type>Units_of_None</unit_of_measure_type>
    </DD_Value_Domain>
  </DD_Attribute>

  <DD_Attribute>
    <name>correlation_overlap_percentage</name>
    <version_id>1.0</version_id>
    <local_identifier>correlation_overlap_percentage</local_identifier>
    <nillable_flag>false</nillable_flag>
    <submitter_name>Trent Hare</submitter_name>
    <definition>Contains the percentage of the reference image that could overlap, geometrically 
      speaking, with the target image. It does not indicate the actual correlation percentage, 
      but rather what might correlate ideally. This can be used to distinguish, for example, 
      nearly perfect correlation in a small overlapping area vs. very poor correlation over the 
      entire image - both of which could have the same correlation_pixel_count). This percentage 
      is not precisely defined; it is an approximation intended to facilitate culling of results.</definition>
    <DD_Value_Domain>
      <enumeration_flag>false</enumeration_flag>
      <value_data_type>ASCII_Real</value_data_type>
      <minimum_value>0</minimum_value>
      <maximum_value>100</maximum_value>
      <unit_of_measure_type>Units_of_None</unit_of_measure_type>
    </DD_Value_Domain>
  </DD_Attribute>

  <DD_Attribute>
    <name>correlation_pixel_count</name>
    <version_id>1.0</version_id>
    <local_identifier>correlation_pixel_count</local_identifier>
    <nillable_flag>false</nillable_flag>
    <submitter_name>Trent Hare</submitter_name>
    <definition>Contains a count of the number of pixels that successfully correlated in the image.</definition>
    <DD_Value_Domain>
      <enumeration_flag>false</enumeration_flag>
      <value_data_type>ASCII_NonNegative_Integer</value_data_type>
      <minimum_value>0</minimum_value>
      <unit_of_measure_type>Units_of_None</unit_of_measure_type>
    </DD_Value_Domain>
  </DD_Attribute>

  <DD_Attribute>
    <name>stereo_baseline_length</name>
    <version_id>1.0</version_id>
    <local_identifier>stereo_baseline_length</local_identifier>
    <nillable_flag>false</nillable_flag>
    <submitter_name>Jordan Padams</submitter_name>
    <definition> The stereo_baseline_length attribute specifies the separation between the two cameras used
      for processing of the stereo image. </definition>
    <DD_Value_Domain>
      <enumeration_flag>false</enumeration_flag>
      <value_data_type>ASCII_Real</value_data_type>
      <minimum_value>0</minimum_value>
      <unit_of_measure_type>Units_of_Length</unit_of_measure_type>
    </DD_Value_Domain>
  </DD_Attribute>
  <!-- End attributes for Stereo_Product_Parameters   -->
  
  <!-- Start attribute definitions for Error_Pixel class -->
  <DD_Attribute>
    <name>line</name>
    <version_id>1.0</version_id>
    <local_identifier>line</local_identifier>
    <nillable_flag>false</nillable_flag>
    <submitter_name>Jordan Padams</submitter_name>
    <definition>The line attribute specifies the line number in the image.</definition>
    <DD_Value_Domain>
      <enumeration_flag>false</enumeration_flag>
      <value_data_type>ASCII_NonNegative_Integer</value_data_type>
      <minimum_value>1</minimum_value>
      <unit_of_measure_type>Units_of_None</unit_of_measure_type>
    </DD_Value_Domain>
  </DD_Attribute>
  <DD_Attribute>
    <name>sample</name>
    <version_id>1.0</version_id>
    <local_identifier>sample</local_identifier>
    <nillable_flag>false</nillable_flag>
    <submitter_name>Jordan Padams</submitter_name>
    <definition>The sample attribute specifies the sample number in the image.</definition>
    <DD_Value_Domain>
      <enumeration_flag>false</enumeration_flag>
      <value_data_type>ASCII_NonNegative_Integer</value_data_type>
      <minimum_value>1</minimum_value>
      <unit_of_measure_type>Units_of_None</unit_of_measure_type>
    </DD_Value_Domain>
  </DD_Attribute>
  <!-- End attribute definitions for Error_Pixel class -->
  
  <!-- Start attributes for Vector_Range_Origin Parameters -->
  <DD_Attribute>
    <name>x_position</name>
    <version_id>1.0</version_id>
    <local_identifier>x_position</local_identifier>
    <nillable_flag>false</nillable_flag>
    <submitter_name>Mitchell K. Gordon</submitter_name>
    <definition>The x component of a Cartesian position vector.</definition>
    <DD_Value_Domain>
      <enumeration_flag>false</enumeration_flag>
      <value_data_type>ASCII_Real</value_data_type>
      <unit_of_measure_type>Units_of_Length</unit_of_measure_type>
    </DD_Value_Domain>
  </DD_Attribute>
  <DD_Attribute>
    <name>y_position</name>
    <version_id>1.0</version_id>
    <local_identifier>y_position</local_identifier>
    <nillable_flag>false</nillable_flag>
    <submitter_name>Mitchell K. Gordon</submitter_name>
    <definition>The y component of a Cartesian position vector.</definition>
    <DD_Value_Domain>
      <enumeration_flag>false</enumeration_flag>
      <value_data_type>ASCII_Real</value_data_type>
      <unit_of_measure_type>Units_of_Length</unit_of_measure_type>
    </DD_Value_Domain>
  </DD_Attribute>
  <DD_Attribute>
    <name>z_position</name>
    <version_id>1.0</version_id>
    <local_identifier>z_position</local_identifier>
    <nillable_flag>false</nillable_flag>
    <submitter_name>Mitchell K. Gordon</submitter_name>
    <definition>The z component of a Cartesian position vector.</definition>
    <DD_Value_Domain>
      <enumeration_flag>false</enumeration_flag>
      <value_data_type>ASCII_Real</value_data_type>
      <unit_of_measure_type>Units_of_Length</unit_of_measure_type>
    </DD_Value_Domain>
  </DD_Attribute>
  <!-- End attributes for Vector_Range_Origin Parameters -->

  <!-- Start attributes for Reachability and other "Reach^" Classes Parameters -->
  <DD_Attribute>
    <name>band</name>
    <version_id>1.0</version_id>
    <local_identifier>band</local_identifier>
    <nillable_flag>false</nillable_flag>
    <submitter_name>Trent Hare</submitter_name>
    <definition>Specifies the band number (1-based) of the band in which the data for 
      the specified instrument resides.</definition>
    <DD_Value_Domain>
      <enumeration_flag>false</enumeration_flag>
      <value_data_type>ASCII_NonNegative_Integer</value_data_type>
      <unit_of_measure_type>Units_of_None</unit_of_measure_type>
    </DD_Value_Domain>
  </DD_Attribute>

  <DD_Attribute>
    <name>device_config</name>
    <version_id>1.0</version_id>
    <local_identifier>device_config</local_identifier>
    <nillable_flag>false</nillable_flag>
    <submitter_name>Trent Hare</submitter_name>
    <definition>Names a specific configuration of the device. Current MSL and Mars2020 valids: 
      "ARM_SO_EU_WU", "ARM_SO_EU_WD", "ARM_SO_ED_WU", "ARM_SO_ED_WD", 
      "ARM_SI_EU_WU", "ARM_SI_EU_WD", "ARM_SI_ED_WU", "ARM_SI_ED_WD" </definition>
    <DD_Value_Domain>
      <enumeration_flag>true</enumeration_flag>
      <value_data_type>ASCII_Short_String_Collapsed</value_data_type>
      <unit_of_measure_type>Units_of_None</unit_of_measure_type>
      <DD_Permissible_Value>
        <value>ARM_SO_EU_WU</value>
        <value_meaning>MSL or Mars2020 ARM type, and GRN/GRA/GRC type</value_meaning>
      </DD_Permissible_Value>
      <DD_Permissible_Value>
        <value>ARM_SO_EU_WD</value>
        <value_meaning>MSL or Mars2020 ARM type, and GRN/GRA/GRC type</value_meaning>
      </DD_Permissible_Value>
      <DD_Permissible_Value>
        <value>ARM_SO_ED_WU</value>
        <value_meaning>MSL or Mars2020 ARM type, and GRN/GRA/GRC type</value_meaning>
      </DD_Permissible_Value>
      <DD_Permissible_Value>
        <value>ARM_SO_ED_WD</value>
        <value_meaning>MSL or Mars2020 ARM type, and GRN/GRA/GRC type</value_meaning>
      </DD_Permissible_Value>
      <DD_Permissible_Value>
        <value>ARM_SI_EU_WU</value>
        <value_meaning>MSL or Mars2020 ARM type, and GRN/GRA/GRC type</value_meaning>
      </DD_Permissible_Value>
      <DD_Permissible_Value>
        <value>ARM_SI_EU_WD</value>
        <value_meaning>MSL or Mars2020 ARM type, and GRN/GRA/GRC type</value_meaning>
      </DD_Permissible_Value>
      <DD_Permissible_Value>
        <value>ARM_SI_ED_WU</value>
        <value_meaning>MSL or Mars2020 ARM type, and GRN/GRA/GRC type</value_meaning>
      </DD_Permissible_Value>
      <DD_Permissible_Value>
        <value>ARM_SI_ED_WD</value>
        <value_meaning>MSL or Mars2020 ARM type, and GRN/GRA/GRC type</value_meaning>
      </DD_Permissible_Value>
    </DD_Value_Domain>
  </DD_Attribute>

  <DD_Attribute>
    <name>device_id</name>
    <version_id>1.0</version_id>
    <local_identifier>device_id</local_identifier>
    <nillable_flag>false</nillable_flag>
    <submitter_name>Trent Hare</submitter_name>
    <definition>Identifies the device that this Reachability applies to. 
      Current MSL and Mars2020 valids: "ARM" </definition>
    <DD_Value_Domain>
      <enumeration_flag>true</enumeration_flag>
      <value_data_type>ASCII_Short_String_Collapsed</value_data_type>
      <unit_of_measure_type>Units_of_None</unit_of_measure_type>
      <DD_Permissible_Value>
        <value>ARM</value>
        <value_meaning>Named id for the MSL or Mars2020 ARM</value_meaning>
      </DD_Permissible_Value>
    </DD_Value_Domain>
  </DD_Attribute>

  <DD_Attribute>
    <name>instrument_id</name>
    <version_id>1.0</version_id>
    <local_identifier>instrument_id</local_identifier>
    <nillable_flag>false</nillable_flag>
    <submitter_name>Trent Hare</submitter_name>
    <definition>Identifies the instrument used in reachability assessment. 
      Mars2020 valids: "DRILL","GDRT","SHERLOC_WATSON","SHERLOC","PIXL", "FCS". 
      MSL valids:      "DRILL","DRT","MAHLI","APXS","SCOOP_TIP"
    </definition>
    <DD_Value_Domain>
      <enumeration_flag>true</enumeration_flag>
      <value_data_type>ASCII_Short_String_Collapsed</value_data_type>
      <unit_of_measure_type>Units_of_None</unit_of_measure_type>
      <DD_Permissible_Value>
        <value>DRILL</value>
        <value_meaning>MSL or Mars 2020 instrument</value_meaning>
      </DD_Permissible_Value>
      <DD_Permissible_Value>
        <value>GDRT</value>
        <value_meaning>Mars 2020 instrument</value_meaning>
      </DD_Permissible_Value>
      <DD_Permissible_Value>
        <value>SHERLOC_WATSON</value>
        <value_meaning>Mars 2020 instrument</value_meaning>
      </DD_Permissible_Value>
      <DD_Permissible_Value>
        <value>SHERLOC</value>
        <value_meaning>Mars 2020 instrument</value_meaning>
      </DD_Permissible_Value>
      <DD_Permissible_Value>
        <value>PIXL</value>
        <value_meaning>Mars 2020 instrument</value_meaning>
      </DD_Permissible_Value>
      <DD_Permissible_Value>
        <value>FCS</value>
        <value_meaning>Mars 2020 instrument</value_meaning>
      </DD_Permissible_Value>
      <DD_Permissible_Value>
        <value>DRT</value>
        <value_meaning>MSL instrument</value_meaning>
      </DD_Permissible_Value>
      <DD_Permissible_Value>
        <value>MAHLI</value>
        <value_meaning>MSL instrument</value_meaning>
      </DD_Permissible_Value>
      <DD_Permissible_Value>
        <value>APXS</value>
        <value_meaning>MSL instrument</value_meaning>
      </DD_Permissible_Value>
      <DD_Permissible_Value>
        <value>SCOOP_TIP</value>
        <value_meaning>MSL instrument</value_meaning>
      </DD_Permissible_Value>
    </DD_Value_Domain>
  </DD_Attribute>

  <DD_Attribute>
    <name>start_bit</name>
    <version_id>1.0</version_id>
    <local_identifier>start_bit</local_identifier>
    <nillable_flag>false</nillable_flag>
    <submitter_name>Trent Hare</submitter_name>
    <definition>For Configurations that are bit-packed into a word, specifies 
      the starting bit for this configuration. Bits are numbered starting at 0 for the least-significant bit.</definition>
    <DD_Value_Domain>
      <enumeration_flag>false</enumeration_flag>
      <value_data_type>ASCII_NonNegative_Integer</value_data_type>
      <minimum_value>0</minimum_value>
      <unit_of_measure_type>Units_of_None</unit_of_measure_type>
    </DD_Value_Domain>
  </DD_Attribute>

  <DD_Attribute>
    <name>stop_bit</name>
    <version_id>1.0</version_id>
    <local_identifier>stop_bit</local_identifier>
    <nillable_flag>false</nillable_flag>
    <submitter_name>Trent Hare</submitter_name>
    <definition>For Configurations that are bit-packed into a word, specifies 
      the ending bit for this configuration. Bits are numbered starting at 0 for 
      the least-significant bit. If present, stop_bit must be equal to or less 
      than start_bit. If absent, start_bit identifies a single bit.</definition>
    <DD_Value_Domain>
      <enumeration_flag>false</enumeration_flag>
      <value_data_type>ASCII_NonNegative_Integer</value_data_type>
      <minimum_value>0</minimum_value>
      <unit_of_measure_type>Units_of_None</unit_of_measure_type>
    </DD_Value_Domain>
  </DD_Attribute>
  <!-- End attributes for Reachability and other "Reach*" Classes Parameters -->

   <!-- Begin Class definitions -->
  
  <!--  Surface_Imaging Class Definition -->
  <DD_Class>
    <name>Surface_Imaging</name>
    <version_id>1.1</version_id>
    <local_identifier>Surface_Imaging</local_identifier>
    <submitter_name>Jordan Padams</submitter_name>
    <definition>Attributes specific to imaging instruments on surface missions.</definition>
    <element_flag>true</element_flag>
    <DD_Association>
      <identifier_reference>Image_Identifiers</identifier_reference>
      <reference_type>component_of</reference_type>
      <minimum_occurrences>0</minimum_occurrences>
      <maximum_occurrences>1</maximum_occurrences>
    </DD_Association>
    <DD_Association>
      <identifier_reference>Instrument_Information</identifier_reference>
      <reference_type>component_of</reference_type>
      <minimum_occurrences>0</minimum_occurrences>
      <maximum_occurrences>1</maximum_occurrences>
    </DD_Association>
    <DD_Association>
      <identifier_reference>Derived_Product_Parameters</identifier_reference>
      <reference_type>component_of</reference_type>
      <minimum_occurrences>0</minimum_occurrences>
      <maximum_occurrences>*</maximum_occurrences>
    </DD_Association>
    <DD_Association>
      <identifier_reference>Error_Model</identifier_reference>
      <reference_type>component_of</reference_type>
      <minimum_occurrences>0</minimum_occurrences>
      <maximum_occurrences>1</maximum_occurrences>
    </DD_Association>
    <DD_Association>
      <identifier_reference>Geometry_Projection</identifier_reference>
      <reference_type>component_of</reference_type>
      <minimum_occurrences>0</minimum_occurrences>
      <maximum_occurrences>1</maximum_occurrences>
    </DD_Association>
    <DD_Association>
      <identifier_reference>Reachability</identifier_reference>
      <reference_type>component_of</reference_type>
      <minimum_occurrences>0</minimum_occurrences>
      <maximum_occurrences>1</maximum_occurrences>
    </DD_Association>
    <DD_Association>
      <identifier_reference>Stereo_Product_Parameters</identifier_reference>
      <reference_type>component_of</reference_type>
      <minimum_occurrences>0</minimum_occurrences>
      <maximum_occurrences>1</maximum_occurrences>
    </DD_Association>
    <DD_Association>
      <identifier_reference>geom.Coordinate_Space_Reference</identifier_reference>
      <reference_type>component_of</reference_type>
      <minimum_occurrences>0</minimum_occurrences>
      <maximum_occurrences>1</maximum_occurrences>
    </DD_Association>
    <DD_Association>
      <identifier_reference>Error_Pixel</identifier_reference>
      <reference_type>component_of</reference_type>
      <minimum_occurrences>0</minimum_occurrences>
      <maximum_occurrences>*</maximum_occurrences>
    </DD_Association>
    <DD_Association>
      <identifier_reference>Commanded_Parameters</identifier_reference>
      <reference_type>component_of</reference_type>
      <minimum_occurrences>0</minimum_occurrences>
      <maximum_occurrences>1</maximum_occurrences>
    </DD_Association>
  </DD_Class>
  <!-- End of Surface_Imaging Class Definition -->
    
   
  <!-- Start Image_Identifiers class definition -->
  <DD_Class>
    <name>Image_Identifiers</name>
    <version_id>1.1</version_id>
    <local_identifier>Image_Identifiers</local_identifier>
    <submitter_name>Cristina De Cesare</submitter_name>
    <definition>The Image_Identifiers class contains items that
      help to identify the image or guide how processing should be done to the
      image.</definition>
    <DD_Association>
      <identifier_reference>image_id</identifier_reference>
      <reference_type>attribute_of</reference_type>
      <minimum_occurrences>0</minimum_occurrences>
      <maximum_occurrences>1</maximum_occurrences>
    </DD_Association>
    <DD_Association>
      <identifier_reference>image_id_2</identifier_reference>
      <reference_type>attribute_of</reference_type>
      <minimum_occurrences>0</minimum_occurrences>
      <maximum_occurrences>1</maximum_occurrences>
    </DD_Association>
    <DD_Association>
      <identifier_reference>mosaic_id</identifier_reference>
      <reference_type>attribute_of</reference_type>
      <minimum_occurrences>0</minimum_occurrences>
      <maximum_occurrences>1</maximum_occurrences>
    </DD_Association>
    <DD_Association>
      <identifier_reference>mesh_id</identifier_reference>
      <reference_type>attribute_of</reference_type>
      <minimum_occurrences>0</minimum_occurrences>
      <maximum_occurrences>1</maximum_occurrences>
    </DD_Association>
    <DD_Association>
      <identifier_reference>stereo_match_id</identifier_reference>
      <reference_type>attribute_of</reference_type>
      <minimum_occurrences>0</minimum_occurrences>
      <maximum_occurrences>1</maximum_occurrences>
    </DD_Association>
    <DD_Association>
      <identifier_reference>start_image_id</identifier_reference>
      <reference_type>attribute_of</reference_type>
      <minimum_occurrences>0</minimum_occurrences>
      <maximum_occurrences>1</maximum_occurrences>
    </DD_Association>
    <DD_Association>
      <identifier_reference>tracking_id</identifier_reference>
      <reference_type>attribute_of</reference_type>
      <minimum_occurrences>0</minimum_occurrences>
      <maximum_occurrences>1</maximum_occurrences>
    </DD_Association>
    <DD_Association>
      <identifier_reference>observation_number</identifier_reference>
      <reference_type>attribute_of</reference_type>
      <minimum_occurrences>0</minimum_occurrences>
      <maximum_occurrences>1</maximum_occurrences>
    </DD_Association>
    <DD_Association>
      <identifier_reference>parameter_table_number</identifier_reference>
      <reference_type>attribute_of</reference_type>
      <minimum_occurrences>0</minimum_occurrences>
      <maximum_occurrences>1</maximum_occurrences>
    </DD_Association>
  </DD_Class>
  <!-- End Image_Identifiers class definition -->
  
  
  
  
  <!--  Start Instrument_Information Class Definition -->
  <DD_Class>
    <name>Instrument_Information</name>
    <version_id>1.1</version_id>
    <local_identifier>Instrument_Information</local_identifier>
    <submitter_name>Cristina De Cesare</submitter_name>
    <definition>The Instrument_Information class specifies information 
      about the configuration of the instrument as it acquired this 
      observation.</definition>
    <DD_Association>
      <identifier_reference>image_type</identifier_reference>
      <reference_type>attribute_of</reference_type>
      <minimum_occurrences>0</minimum_occurrences>
      <maximum_occurrences>1</maximum_occurrences>
    </DD_Association>
    <!--<DD_Association>
      <identifier_reference>image_observation_type</identifier_reference>
      <reference_type>attribute_of</reference_type>
      <minimum_occurrences>0</minimum_occurrences>
      <maximum_occurrences>1</maximum_occurrences>
    </DD_Association>-->
    <DD_Association>
      <identifier_reference>image_acquire_mode</identifier_reference>
      <reference_type>attribute_of</reference_type>
      <minimum_occurrences>0</minimum_occurrences>
      <maximum_occurrences>1</maximum_occurrences>
    </DD_Association>
    <DD_Association>
      <identifier_reference>instrument_type</identifier_reference>
      <reference_type>attribute_of</reference_type>
      <minimum_occurrences>0</minimum_occurrences>
      <maximum_occurrences>1</maximum_occurrences>
    </DD_Association>
    <DD_Association>
      <identifier_reference>instrument_mode_id</identifier_reference>
      <reference_type>attribute_of</reference_type>
      <minimum_occurrences>0</minimum_occurrences>
      <maximum_occurrences>1</maximum_occurrences>
    </DD_Association>
    <DD_Association>
      <identifier_reference>instrument_serial_number</identifier_reference>
      <reference_type>attribute_of</reference_type>
      <minimum_occurrences>0</minimum_occurrences>
      <maximum_occurrences>1</maximum_occurrences>
    </DD_Association>
    <DD_Association>
      <identifier_reference>instrument_version_number</identifier_reference>
      <reference_type>attribute_of</reference_type>
      <minimum_occurrences>0</minimum_occurrences>
      <maximum_occurrences>1</maximum_occurrences>
    </DD_Association>
    <DD_Association>
      <identifier_reference>ops_instrument_key</identifier_reference>
      <reference_type>attribute_of</reference_type>
      <minimum_occurrences>0</minimum_occurrences>
      <maximum_occurrences>*</maximum_occurrences>
    </DD_Association>
    <DD_Association>
      <identifier_reference>camera_model_serial_number</identifier_reference>
      <reference_type>attribute_of</reference_type>
      <minimum_occurrences>0</minimum_occurrences>
      <maximum_occurrences>1</maximum_occurrences>
    </DD_Association>
    <DD_Association>
      <identifier_reference>camera_product_id</identifier_reference>
      <reference_type>attribute_of</reference_type>
      <minimum_occurrences>0</minimum_occurrences>
      <maximum_occurrences>1</maximum_occurrences>
    </DD_Association>
    <DD_Association>
      <identifier_reference>camera_product_id_count</identifier_reference>
      <reference_type>attribute_of</reference_type>
      <minimum_occurrences>0</minimum_occurrences>
      <maximum_occurrences>1</maximum_occurrences>
    </DD_Association>
  </DD_Class>
  <!--  End Instrument_Information Class Definition -->
  
  <!-- Start Derived_Product_Parameters class definition -->
  <DD_Class>
    <name>Derived_Product_Parameters</name>
    <version_id>1.0</version_id>
    <local_identifier>Derived_Product_Parameters</local_identifier>
    <submitter_name>Jordan Padams</submitter_name>
    <definition>The Derived_Product_Parameters class contains attributes used to identify and
      describe processing performed on products in order to produce a higher level product.</definition>
    <DD_Association>
      <identifier_reference>derived_image_type_name</identifier_reference>
      <reference_type>attribute_of</reference_type>
      <minimum_occurrences>0</minimum_occurrences>
      <maximum_occurrences>1</maximum_occurrences>
    </DD_Association>
    <DD_Association>
      <identifier_reference>horizon_mask_elevation</identifier_reference>
      <reference_type>attribute_of</reference_type>
      <minimum_occurrences>0</minimum_occurrences>
      <maximum_occurrences>1</maximum_occurrences>
    </DD_Association>
    <DD_Association>
      <identifier_reference>Placement_Target_Instrument</identifier_reference>
      <reference_type>component_of</reference_type>
      <minimum_occurrences>0</minimum_occurrences>
      <maximum_occurrences>1</maximum_occurrences>
    </DD_Association>
    <DD_Association>
      <identifier_reference>Vector_Range_Origin</identifier_reference>
      <reference_type>component_of</reference_type>
      <minimum_occurrences>0</minimum_occurrences>
      <maximum_occurrences>1</maximum_occurrences>
    </DD_Association>
    <DD_Association>
      <identifier_reference>geom.Coordinate_Space_Reference</identifier_reference>
      <reference_type>component_of</reference_type>
      <minimum_occurrences>0</minimum_occurrences>
      <maximum_occurrences>1</maximum_occurrences>
    </DD_Association>
  </DD_Class>
  <!-- End Derived_Product_Parameters class definition -->
  
  <DD_Class>
    <name>Placement_Target_Instrument</name>
    <version_id>1.0</version_id>
    <local_identifier>Placement_Target_Instrument</local_identifier>
    <submitter_name>Cristina De Cesare</submitter_name>
    <definition>Indicates the instrument that is referred to by the product. This is
      not the same as the instrument that acquired the product. For example,
      on InSight instrument placement products, it defines which instrument is
      being placed.</definition>
    <DD_Association>
      <identifier_reference>pds.name</identifier_reference>
      <reference_type>attribute_of</reference_type>
      <minimum_occurrences>1</minimum_occurrences>
      <maximum_occurrences>1</maximum_occurrences>
    </DD_Association>
    <DD_Association>
      <identifier_reference>pds.Internal_Reference</identifier_reference>
      <reference_type>component_of</reference_type>
      <minimum_occurrences>0</minimum_occurrences>
      <maximum_occurrences>1</maximum_occurrences>
    </DD_Association>
  </DD_Class>
  
  <!--  Error_Model Class Definition -->
  <DD_Class>
    <name>Error_Model</name>
    <version_id>1.0</version_id>
    <local_identifier>Error_Model</local_identifier>
    <submitter_name>Jordan Padams</submitter_name>
    <definition>The Error_Model class specifies the name of the error model used, a reference to the algorithm descriptions, and the parameters needed for that algorithm. The specific
      set of values is determined by each individual missions.</definition>
    <DD_Association>
      <identifier_reference>error_model_name</identifier_reference>
      <reference_type>attribute_of</reference_type>
      <minimum_occurrences>1</minimum_occurrences>
      <maximum_occurrences>1</maximum_occurrences>
    </DD_Association>
    <DD_Association>
      <identifier_reference>Error_Model_Parameter</identifier_reference>
      <reference_type>component_of</reference_type>
      <minimum_occurrences>1</minimum_occurrences>
      <maximum_occurrences>*</maximum_occurrences>
    </DD_Association>
    <DD_Association>
      <identifier_reference>pds.Internal_Reference</identifier_reference>
      <reference_type>component_of</reference_type>
      <minimum_occurrences>0</minimum_occurrences>
      <maximum_occurrences>1</maximum_occurrences>
    </DD_Association>
  </DD_Class>
  <!-- End of Error_Model Class Definition -->
  
  <!--  Error_Model_Parameter Class Definition -->
  <DD_Class>
      <name>Error_Model_Parameter</name>
      <version_id>1.0</version_id>
      <local_identifier>Error_Model_Parameter</local_identifier>
      <submitter_name>Jordan Padams</submitter_name>
      <definition>The Error_Model_Parameter class specifies name and value for a parameter defined by the 
          error model described by the parent class.</definition>
      <DD_Association>
          <identifier_reference>pds.name</identifier_reference>
          <reference_type>attribute_of</reference_type>
          <minimum_occurrences>1</minimum_occurrences>
          <maximum_occurrences>1</maximum_occurrences>
      </DD_Association>
      <DD_Association>
          <identifier_reference>pds.value</identifier_reference>
          <reference_type>attribute_of</reference_type>
          <minimum_occurrences>1</minimum_occurrences>
          <maximum_occurrences>1</maximum_occurrences>
      </DD_Association>
  </DD_Class>
  <!--  End of Error_Model_Parameter Class Definition -->
  
  <!--  Start Geometry_Projection Class Definition -->
  <DD_Class>
    <name>Geometry_Projection</name>
    <version_id>1.0</version_id>
    <local_identifier>Geometry_Projection</local_identifier>
    <submitter_name>Cristina De Cesare</submitter_name>
    <definition>The Geometry_Projection describes the geometric projection or 
      warping the image has undergone. It is not the intent of this class to describe map
      projections, but rather image warps such as linearization (stereo epipolar alignment), 
      geometric sensor correction, or rubber-sheeting. If present, a linearization partner image 
      can be referenced using either an Internal_Reference or External_Reference.</definition>
    <DD_Association>
      <identifier_reference>linearization_mode</identifier_reference>
      <reference_type>attribute_of</reference_type>
      <minimum_occurrences>0</minimum_occurrences>
      <maximum_occurrences>1</maximum_occurrences>
    </DD_Association>
    <DD_Association>
      <identifier_reference>linearization_mode_fov</identifier_reference>
      <reference_type>attribute_of</reference_type>
      <minimum_occurrences>0</minimum_occurrences>
      <maximum_occurrences>1</maximum_occurrences>
    </DD_Association>
    <DD_Association>
      <identifier_reference>geometry_projection_type</identifier_reference>
      <reference_type>attribute_of</reference_type>
      <minimum_occurrences>0</minimum_occurrences>
      <maximum_occurrences>1</maximum_occurrences>
    </DD_Association>
    <DD_Association>
      <identifier_reference>XSChoice#</identifier_reference>
      <identifier_reference>pds.Internal_Reference</identifier_reference>
      <identifier_reference>pds.External_Reference</identifier_reference>
      <reference_type>component_of</reference_type>
      <minimum_occurrences>0</minimum_occurrences>
      <maximum_occurrences>1</maximum_occurrences>
    </DD_Association>
  </DD_Class>
  <!--  End Geometry_Projection Class Definition -->
  
    <!-- Class: Reachability and child Classes  -->
  <DD_Class>
    <name>Configuration</name>
    <version_id>1.0</version_id>
    <local_identifier>Configuration</local_identifier>
    <submitter_name>Trent Hare</submitter_name>
    <definition>Defines a single configuration for this reachability assessment.</definition>
    <DD_Association>
      <identifier_reference>device_config</identifier_reference>
      <reference_type>attribute_of</reference_type>
      <minimum_occurrences>0</minimum_occurrences>
      <maximum_occurrences>1</maximum_occurrences>
    </DD_Association>
    <DD_Association>
      <identifier_reference>start_bit</identifier_reference>
      <reference_type>attribute_of</reference_type>
      <minimum_occurrences>0</minimum_occurrences>
      <maximum_occurrences>1</maximum_occurrences>
    </DD_Association>
    <DD_Association>
      <identifier_reference>stop_bit</identifier_reference>
      <reference_type>attribute_of</reference_type>
      <minimum_occurrences>0</minimum_occurrences>
      <maximum_occurrences>1</maximum_occurrences>
    </DD_Association>
  </DD_Class>

  <DD_Class>
    <name>Configurations</name>
    <version_id>1.0</version_id>
    <local_identifier>Configurations</local_identifier>
    <submitter_name>Trent Hare</submitter_name>
    <definition>Specifies the configurations of the device used for reachability 
      assessment. The specific values will be device-dependent but could include 
      e.g. shoulder in/out, elbow up/down, wrist up/down.</definition>
    <DD_Association>
      <identifier_reference>band</identifier_reference>
      <reference_type>attribute_of</reference_type>
      <minimum_occurrences>0</minimum_occurrences>
      <maximum_occurrences>1</maximum_occurrences>
    </DD_Association>
    <DD_Association>
      <identifier_reference>Configuration</identifier_reference>
      <reference_type>component_of</reference_type>
      <minimum_occurrences>0</minimum_occurrences>
      <maximum_occurrences>*</maximum_occurrences>
    </DD_Association>
  </DD_Class>

  <DD_Class>
    <name>Reach_Instrument</name>
    <version_id>1.0</version_id>
    <local_identifier>Reach_Instrument</local_identifier>
    <submitter_name>Trent Hare</submitter_name>
    <definition>Defines a single instrument for this reachability assessment. 
      For products where each instrument is associated with a band in the output, 
      the "band" attribute specifies which band it is. For products where instruments 
      are involved in the computation but not represented individually in the output, 
      the band should be omitted.</definition>
    <DD_Association>
      <identifier_reference>instrument_id</identifier_reference>
      <reference_type>attribute_of</reference_type>
      <minimum_occurrences>0</minimum_occurrences>
      <maximum_occurrences>1</maximum_occurrences>
    </DD_Association>
    <DD_Association>
      <identifier_reference>band</identifier_reference>
      <reference_type>attribute_of</reference_type>
      <minimum_occurrences>0</minimum_occurrences>
      <maximum_occurrences>1</maximum_occurrences>
    </DD_Association>
  </DD_Class>

  <DD_Class>
    <name>Reach_Instruments</name>
    <version_id>1.0</version_id>
    <local_identifier>Reach_Instruments</local_identifier>
    <submitter_name>Trent Hare</submitter_name>
    <definition>Lists the instruments involved in this reachability assesment.</definition>
    <DD_Association>
      <identifier_reference>Reach_Instrument</identifier_reference>
      <reference_type>component_of</reference_type>
      <minimum_occurrences>0</minimum_occurrences>
      <maximum_occurrences>*</maximum_occurrences>
    </DD_Association>
  </DD_Class>

  <DD_Class>
    <name>Reachability</name>
    <version_id>1.0</version_id>
    <local_identifier>Reachability</local_identifier>
    <submitter_name>Trent Hare</submitter_name>
    <definition>This class describes Reachability products, which define whether 
      and how a moving device (such as an arm) can contact, view, or otherwise 
      interact with the world at each pixel of an image.</definition>
    <DD_Association>
      <identifier_reference>device_id</identifier_reference>
      <reference_type>attribute_of</reference_type>
      <minimum_occurrences>0</minimum_occurrences>
      <maximum_occurrences>1</maximum_occurrences>
    </DD_Association>
    <DD_Association>
      <identifier_reference>Reach_Instruments</identifier_reference>
      <reference_type>component_of</reference_type>
      <minimum_occurrences>0</minimum_occurrences>
      <maximum_occurrences>1</maximum_occurrences>
    </DD_Association>
    <DD_Association>
      <identifier_reference>Configurations</identifier_reference>
      <reference_type>component_of</reference_type>
      <minimum_occurrences>0</minimum_occurrences>
      <maximum_occurrences>1</maximum_occurrences>
    </DD_Association>
  </DD_Class>
  <!-- End Reachability class -->
  
  <!-- Class: Stereo_Product_Parameters  -->
  <DD_Class>
    <name>Stereo_Product_Parameters</name>
    <version_id>1.0</version_id>
    <local_identifier>Stereo_Product_Parameters</local_identifier>
    <submitter_name>Jordan Padams</submitter_name>
    <definition>The Stereo_Product_Parameters class describes the conditions under 
      which stereo analysis was performed. This includes items such as the stereo baseline
      (separation between the cameras) and what partner image(s) were used for
      stereo analysis. If present, stereo partner images can be referenced using
      either an Internal_Reference or External_Reference.</definition>
    <DD_Association>
      <identifier_reference>correlation_average_scale</identifier_reference>
      <reference_type>attribute_of</reference_type>
      <minimum_occurrences>0</minimum_occurrences>
      <maximum_occurrences>1</maximum_occurrences>
    </DD_Association>
    <DD_Association>
      <identifier_reference>correlation_overlap_percentage</identifier_reference>
      <reference_type>attribute_of</reference_type>
      <minimum_occurrences>0</minimum_occurrences>
      <maximum_occurrences>1</maximum_occurrences>
    </DD_Association>
    <DD_Association>
      <identifier_reference>correlation_pixel_count</identifier_reference>
      <reference_type>attribute_of</reference_type>
      <minimum_occurrences>0</minimum_occurrences>
      <maximum_occurrences>1</maximum_occurrences>
    </DD_Association>
    <DD_Association>
      <identifier_reference>stereo_baseline_length</identifier_reference>
      <reference_type>attribute_of</reference_type>
      <minimum_occurrences>0</minimum_occurrences>
      <maximum_occurrences>1</maximum_occurrences>
    </DD_Association>
    <DD_Association>
      <identifier_reference>XSChoice#</identifier_reference>
      <identifier_reference>pds.Internal_Reference</identifier_reference>
      <identifier_reference>pds.External_Reference</identifier_reference>
      <reference_type>component_of</reference_type>
      <minimum_occurrences>0</minimum_occurrences>
      <maximum_occurrences>*</maximum_occurrences>
    </DD_Association>
  </DD_Class>
  <!-- End Stereo_Product_Parameters class -->
  
  <!-- Start Error_Pixel class definiton  -->
  <DD_Class>
    <name>Error_Pixel</name>
    <version_id>1.0</version_id>
    <local_identifier>Error_Pixel</local_identifier>
    <submitter_name>Jordan Padams</submitter_name>
    <definition> The Error_Pixel class specifies the line and sample in the image where an
      error occurred.</definition>
    <DD_Association>
      <identifier_reference>line</identifier_reference>
      <reference_type>attribute_of</reference_type>
      <minimum_occurrences>1</minimum_occurrences>
      <maximum_occurrences>1</maximum_occurrences>
    </DD_Association>
    <DD_Association>
      <identifier_reference>sample</identifier_reference>
      <reference_type>attribute_of</reference_type>
      <minimum_occurrences>1</minimum_occurrences>
      <maximum_occurrences>1</maximum_occurrences>
    </DD_Association>
  </DD_Class>
  <!-- End Error_Pixel class definiton  -->

  <!-- Vector_Range_Origin class defintion    -->
  <DD_Class>
    <name>Vector_Range_Origin</name>
    <version_id>1.0</version_id>
    <local_identifier>Vector_Range_Origin</local_identifier>
    <submitter_name>Jordan Padams</submitter_name>
    <definition>The Vector_Range_Origin class specifies the 3-D space from which the Range values are measured in a Range RDR. 
      This will normally be the same as the C point of the camera. It is expressed in the coordinate system specified by the 
      Coordinate_Space_Reference class.</definition>
    <abstract_flag>false</abstract_flag>
    <DD_Association>
      <identifier_reference>x_position</identifier_reference>
      <reference_type>attribute_of</reference_type>
      <minimum_occurrences>1</minimum_occurrences>
      <maximum_occurrences>1</maximum_occurrences>
    </DD_Association>
    <DD_Association>
      <identifier_reference>y_position</identifier_reference>
      <reference_type>attribute_of</reference_type>
      <minimum_occurrences>1</minimum_occurrences>
      <maximum_occurrences>1</maximum_occurrences>
    </DD_Association>
    <DD_Association>
      <identifier_reference>z_position</identifier_reference>
      <reference_type>attribute_of</reference_type>
      <minimum_occurrences>1</minimum_occurrences>
      <maximum_occurrences>1</maximum_occurrences>
    </DD_Association>
  </DD_Class>
  <!-- End of Vector_Range_Origin class defintion    -->

  <!-- Commanded_Parameters class defintion    -->
  <DD_Class>
    <name>Commanded_Parameters</name>
    <version_id>1.0</version_id>
    <local_identifier>Commanded_Parameters</local_identifier>
    <submitter_name>Trent Hare</submitter_name>
    <definition>The Commanded_Parameters class contains attributes used to 
      identify or describe the commands sent to a spacecraft to perform one or 
      more actions resulting in the acquisition of the current data product. 
      These are distinct from similar values in the root Surface_Imaging class 
      which indicate the state of the image as acquired</definition>
    <abstract_flag>false</abstract_flag>
    <DD_Association>
      <identifier_reference>Instrument_Information</identifier_reference>
      <reference_type>component_of</reference_type>
      <minimum_occurrences>0</minimum_occurrences>
      <maximum_occurrences>1</maximum_occurrences>
    </DD_Association>
    <DD_Association>
      <identifier_reference>Image_Identifiers</identifier_reference>
      <reference_type>component_of</reference_type>
      <minimum_occurrences>0</minimum_occurrences>
      <maximum_occurrences>1</maximum_occurrences>
    </DD_Association>
  </DD_Class>
  <!-- End of Commanded_Parameters class defintion    -->

  <!-- End class definitions -->
  <!--                       -->
  
  
  <!-- Begin rule definitions -->
  
  <DD_Rule>
    <local_identifier>internal_reference_type_check_stereo_partner</local_identifier>
    <rule_context>//img_surface:Stereo_Product_Parameters/pds:Internal_Reference</rule_context>
    <DD_Rule_Statement>
      <rule_type>Assert</rule_type>
      <rule_test>pds:reference_type = 'data_to_stereo_partner'</rule_test>
      <rule_message>In img_surface:Stereo_Product_Parameters, Internal_Reference.reference_type must be equal to 'data_to_stereo_partner'.</rule_message>
    </DD_Rule_Statement>
  </DD_Rule>
  
  <DD_Rule>
    <local_identifier>internal_reference_type_check_linearization_partner</local_identifier>
    <rule_context>//img_surface:Geometry_Projection/pds:Internal_Reference</rule_context>
    <DD_Rule_Statement>
      <rule_type>Assert</rule_type>
      <rule_test>pds:reference_type = 'data_to_linearization_partner'</rule_test>
      <rule_message>In img_surface:Geometry_Projection, Internal_Reference.reference_type must be equal to 'data_to_linearization_partner'.</rule_message>
    </DD_Rule_Statement>
  </DD_Rule>
  
  <DD_Rule>
    <local_identifier>internal_local_reference_type_check</local_identifier>
    <rule_context>//img_surface:Surface_Imaging/pds:Local_Internal_Reference</rule_context>
    <DD_Rule_Statement>
      <rule_type>Assert</rule_type>
      <rule_test>pds:local_reference_type = 'mars_surface_imaging_to_image_object'</rule_test>
      <rule_message>In img_surface:Surface_Imaging, Local_Internal_Reference.local_reference_type must have value 'mars_surface_imaging_to_image_object'</rule_message>
    </DD_Rule_Statement>
  </DD_Rule>

  <DD_Rule>
    <local_identifier>external_reference_type_check_stereo_partner</local_identifier>
    <rule_context>//img_surface:Stereo_Product_Parameters/pds:External_Reference</rule_context>
    <DD_Rule_Statement>
      <rule_type>Assert</rule_type>
      <rule_test>pds:reference_type = 'data_to_stereo_partner'</rule_test>
      <rule_message>In img_surface:Stereo_Product_Parameters, External_Reference.reference_type must be equal to 'data_to_stereo_partner'.</rule_message>
    </DD_Rule_Statement>
  </DD_Rule>
  
  <DD_Rule>
    <local_identifier>external_reference_type_check_linearization_partner</local_identifier>
    <rule_context>//img_surface:Geometry_Projection/pds:External_Reference</rule_context>
    <DD_Rule_Statement>
      <rule_type>Assert</rule_type>
      <rule_test>pds:reference_type = 'data_to_linearization_partner'</rule_test>
      <rule_message>In img_surface:Geometry_Projection, External_Reference.reference_type must be equal to 'data_to_linearization_partner'.</rule_message>
    </DD_Rule_Statement>
  </DD_Rule>
  
  <DD_Rule>
    <local_identifier>external_local_reference_type_check</local_identifier>
    <rule_context>//img_surface:Surface_Imaging/pds:Local_External_Reference</rule_context>
    <DD_Rule_Statement>
      <rule_type>Assert</rule_type>
      <rule_test>pds:local_reference_type = 'mars_surface_imaging_to_image_object'</rule_test>
      <rule_message>In img_surface:Surface_Imaging, Local_External_Reference.local_reference_type must have value 'mars_surface_imaging_to_image_object'</rule_message>
    </DD_Rule_Statement>
  </DD_Rule>


  <!-- TODO find a way to make this rule trigger for only InSight labels -->
  <!--
  <DD_Rule>
    <local_identifier>derived_image_type_name_value_check</local_identifier>
    <rule_context>//img_surface:Derived_Product_Parameters</rule_context>
    <DD_Rule_Statement>
      <rule_type>Assert</rule_type>
      <rule_test>not(img_surface:derived_image_type_name) or img_surface:derived_image_type_name = ('IMAGE', 'DISPARITY_MAP', 'DISPARITY_LINE_MAP', 'DISPARITY_SAMPLE_MAP', 'DISPARITY_ERROR_MAP', 'DELTA_DISPARITY_MAP', 'DELTA_DISPARITY_LINE_MAP', 'DELTA_DISPARITY_SAMPLE_MAP', 'MASK', 'XYZ_MAP', 'XYZ_ERROR_MAP', 'X_MAP', 'Y_MAP', 'Z_MAP', 'ANGLE_MAP', 'RANGE_MAP', 'RANGE_ERROR_MAP', 'UVW_MAP', 'U_MAP', 'V_MAP', 'W_MAP', 'ROUGHNESS_MAP', 'REACHABILITY_MAP', 'PRELOAD_MAP', 'SLOPE_MAP', 'RADIAL_SLOPE_MAP', 'SLOPE_HEADING_MAP', 'SLOPE_MAGNITUDE_MAP', 'NORTHERLY_TILT_MAP', 'SOLAR_ENERGY_MAP', 'IEP_MAP', 'TERRAIN_PROBABILITY_MAP', 'TERRAIN_CLASSIFICATION_MAP', 'AEGIS_MAP', 'ICM_MAP', 'IDX_MAP', 'INST_TILT_MAP', 'INST_DELTA_TILT_MAP', 'INST_Z_MAP', 'INST_UVW_MAP', 'INST_ROUGHNESS_MAP', 'INST_WORKSPACE_MAP', 'GOODNESS_MAP', 'XYZ_MAP', 'ELEVATION_MAP')</rule_test>
      <rule_message>IMG_SURFACE:error:derived_image_type_name: The attribute img_surface:derived_image_type_name must be equal to one of the following values: 'IMAGE', 'DISPARITY_MAP', 'DISPARITY_LINE_MAP', 'DISPARITY_SAMPLE_MAP', 'DISPARITY_ERROR_MAP', 'DELTA_DISPARITY_MAP', 'DELTA_DISPARITY_LINE_MAP', 'DELTA_DISPARITY_SAMPLE_MAP', 'MASK', 'XYZ_MAP', 'XYZ_ERROR_MAP', 'X_MAP', 'Y_MAP', 'Z_MAP', 'ANGLE_MAP', 'RANGE_MAP', 'RANGE_ERROR_MAP', 'UVW_MAP', 'U_MAP', 'V_MAP', 'W_MAP', 'ROUGHNESS_MAP', 'REACHABILITY_MAP', 'PRELOAD_MAP', 'SLOPE_MAP', 'RADIAL_SLOPE_MAP', 'SLOPE_HEADING_MAP', 'SLOPE_MAGNITUDE_MAP', 'NORTHERLY_TILT_MAP', 'SOLAR_ENERGY_MAP', 'IEP_MAP', 'TERRAIN_PROBABILITY_MAP', 'TERRAIN_CLASSIFICATION_MAP', 'AEGIS_MAP', 'ICM_MAP', 'IDX_MAP', 'INST_TILT_MAP', 'INST_DELTA_TILT_MAP', 'INST_Z_MAP', 'INST_UVW_MAP', 'INST_ROUGHNESS_MAP', 'INST_WORKSPACE_MAP', 'GOODNESS_MAP', 'XYZ_MAP', 'ELEVATION_MAP'.</rule_message>
    </DD_Rule_Statement>
  </DD_Rule>
  -->
  
  <DD_Rule>
    <local_identifier>local_reference_type_check_placement_instrument</local_identifier>
    <rule_context>//img_surface:Placement_Target_Instrument/pds:Internal_Reference</rule_context>
    <DD_Rule_Statement>
      <rule_type>Assert</rule_type>
      <rule_test>pds:reference_type = 'data_to_placement_instrument'</rule_test>
      <rule_message>In img_surface:Placement_Target_Instrument, Internal_Reference.reference_type must be equal to 'data_to_placement_instrument'.</rule_message>
    </DD_Rule_Statement>
  </DD_Rule>
  
  <DD_Rule>
    <local_identifier>local_reference_type_check_error_model</local_identifier>
    <rule_context>//img_surface:Error_Model/pds:Internal_Reference</rule_context>
    <DD_Rule_Statement>
      <rule_type>Assert</rule_type>
      <rule_test>pds:reference_type = 'data_to_error_model'</rule_test>
      <rule_message>In img_surface:Error_Model, Internal_Reference.reference_type must be equal to 'data_to_error_model'.</rule_message>
    </DD_Rule_Statement>
  </DD_Rule>

<!-- End rule defintions -->
  
</Ingest_LDD>