Commit 1b308f93 authored by Jeannie Backer's avatar Jeannie Backer
Browse files

Merging cassis changes with hayabusa1 changes.

parent 6ca29c78
Loading
Loading
Loading
Loading
+10 −1
Original line number Diff line number Diff line
@@ -7,8 +7,17 @@ commands:

	# Remove parts of output that can occur in any order and convert to txt for comparison
	$(SED) 's+\Product_Observational.*>+\Product_Observational>+' \
	       $(OUTPUT)/dawnEqui.xml > $(OUTPUT)/dawnEqui.txt;
	       $(OUTPUT)/dawnEqui.xml \
	       > $(OUTPUT)/tempLabel1.txt;
	$(SED) 's+\modification_date.*>+\modification_date>+' \
	       $(OUTPUT)/tempLabel1.txt \
	       > $(OUTPUT)/tempLabel2.txt;
	$(SED) 's+\ISIS version.*<+\ISIS version.<+' \
	       $(OUTPUT)/tempLabel2.txt \
	       > $(OUTPUT)/dawnEqui.txt;

	$(RM) $(OUTPUT)/dawnEqui.xml > /dev/null; 
	$(RM) $(OUTPUT)/tempLabel1.txt > /dev/null; 
	$(RM) $(OUTPUT)/tempLabel2.txt > /dev/null; 
	$(RM) $(OUTPUT)/dawnEqui.img > /dev/null; 
+2 −2
Original line number Diff line number Diff line
@@ -16,6 +16,6 @@ commands:
	           > /dev/null;
	  
	$(APPNAME) from=$(INPUT)/isisTruth.cub \
	           | grep -v stats \
		   | grep -v "stats:" \
	           | grep -v Processed \
	           >& $(OUTPUT)/output.pvl;
+119 −194
Original line number Diff line number Diff line
@@ -117,7 +117,7 @@ namespace Isis {
   * images of object type Array_3D_Image, Array_2D_Image, or 
   * Array_3D_Spectrum. 
   */
  void ProcessExportPds4::CreateImageLabel() {//??? todo - should we bother to match parent class name???
  void ProcessExportPds4::CreateImageLabel() {

    try {
      // <Product_Observational>
@@ -128,7 +128,7 @@ namespace Isis {
      QString msg = "Unable to translate and export identification information.";
      throw IException(e, IException::Programmer, msg, _FILEINFO_);
    }
    try {//ONLY DO THIS IF NOT MOSAIC??? how do pep3 do it???
    try {
      // <Product_Observational>
      //   <Observation_Area>
      standardInstrument();
@@ -192,6 +192,8 @@ namespace Isis {
    Pvl *inputLabel = InputCubes[0]->label();
    FileName translationFileName;

    if (inputLabel->findObject("IsisCube").hasGroup("Instrument")) {
      
      // Translate the Instrument group
      translationFileName = "$base/translations/pds4ExportInstrument.trn";
      PvlToXmlTranslationManager instXlator(*inputLabel, translationFileName.expanded());
@@ -256,23 +258,24 @@ namespace Isis {
      }
      
      // Translate the Target name
    try {
      translationFileName = "$base/translations/pds4ExportTargetFromInstrument.trn"; 
      PvlToXmlTranslationManager targXlator(*inputLabel, translationFileName.expanded());
      targXlator.Auto(*m_domDoc);

      // move target to just below Observing_System. 
      QDomElement targetIdNode = obsAreaNode.firstChildElement("Target_Identification");
      obsAreaNode.insertAfter(targetIdNode, obsAreaNode.firstChildElement("Observing_System"));

    }
    catch (IException &e1) {
      try {
    else if (inputLabel->findObject("IsisCube").hasGroup("Mapping")) {

      translationFileName = "$base/translations/pds4ExportTargetFromMapping.trn"; 
      PvlToXmlTranslationManager targXlator(*inputLabel, translationFileName.expanded());
      targXlator.Auto(*m_domDoc);

    }
      catch (IException &e2) {
        IException finalError(IException::Unknown, "Unable to find a target in input cube.", _FILEINFO_);
        finalError.append(e1);
        finalError.append(e2);
        throw finalError;
      }
    else {
      throw IException(IException::Unknown, "Unable to find a target in input cube.", _FILEINFO_);
    }
  }

@@ -331,7 +334,10 @@ namespace Isis {
    PvlToXmlTranslationManager xlator(*inputLabel, translationFileName.expanded());
    xlator.Auto(*m_domDoc);

    if (!m_lid.isEmpty()) {
    if (m_lid.isEmpty()) {
      m_lid = "urn:nasa:pds:TBD:TBD:TBD";
    }

    QDomElement identificationElement;
    QStringList identificationPath;
    identificationPath.append("Product_Observational");
@@ -348,25 +354,21 @@ namespace Isis {
      throw IException(IException::Programmer, msg, _FILEINFO_);
    }

      // Check if the "Modification_History" element exists yet.
      // If not, create one.
    QDomElement lidElement = identificationElement.firstChildElement("logical_identifier");
    PvlToXmlTranslationManager::resetElementValue(lidElement, m_lid);



    }
    // This regular expression matches the pipe followed by the date from
    // the ISIS version string that Application returns.
    // Get export history and add <Modification_History> element.
    // These regular expressions match the pipe followed by the date from
    // the Application::Version() return value.
    QRegularExpression versionRegex(" \\| \\d{4}\\-\\d{2}\\-\\d{2}");
    QString historyDescription = "Created PDS4 output product from ISIS cube with tgocassisrdrgen "
                                 "application from ISIS version "
    QString historyDescription = "Created PDS4 output product from ISIS cube with the "
                                 + FileName(Application::Name()).baseName()
                                 + " application from ISIS version "
                                 + Application::Version().remove(versionRegex) + ".";
    // This regular expression matches the time from the date and time string
    // that Application returns.
    // This regular expression matches the time from the Application::DateTime return value.
    QRegularExpression dateRegex("T\\d{2}:\\d{2}:\\d{2}");
    QString historyDate = Application::DateTime().remove(dateRegex);
    addHistory(historyDescription, historyDate);// ??? should above be in process.addHistory???
    addHistory(historyDescription, historyDate);
  }

  
@@ -400,14 +402,7 @@ namespace Isis {
    Pvl *inputLabel = InputCubes[0]->label();
    QString imageObject = imageObjectType(*inputLabel);

    QString translationFile = "$base/translations/pds4ExportBandBin";
    translationFile += imageObject.remove(0,9); // remove first 9 characters: Array_2D_ or Array_3D_
    translationFile += ".trn";
    FileName translationFileName(translationFile);

    PvlToXmlTranslationManager xlator(*inputLabel, translationFileName.expanded());
    xlator.Auto(*m_domDoc);

    if (imageObject.compare("Array_3D_Spectrum") == 0) {
      // Add header info
      addSchema("PDS4_SP_1100.sch", 
                "PDS4_SP_1100.xsd",
@@ -415,83 +410,14 @@ namespace Isis {
                "http://pds.nasa.gov/pds4/sp/v1"); 
    }

    QString translationFile = "$base/translations/pds4ExportBandBin";
    translationFile += imageObject.remove(0,9); // remove first 9 characters: Array_2D_ or Array_3D_
    translationFile += ".trn";
    FileName translationFileName(translationFile);

  /**
   * Create and internalize a standard image output label from the input image. 
   * @todo determine whether to treat single band as 2d array
   */
  void ProcessExportPds4::StandardImageImage() {
    Pvl *inputLabel = InputCubes[0]->label(); 
    FileName translationFileName;

    translationFileName = "$base/translations/pds4ExportArray3DImage.trn"; 
    PvlToXmlTranslationManager xlator(*inputLabel, translationFileName.expanded());
    xlator.Auto(*m_domDoc);

    QDomElement rootElement = m_domDoc->documentElement();
    QDomElement fileAreaObservationalElement =
                    rootElement.firstChildElement("File_Area_Observational");

    // Calculate the core base/mult for the output cube
    double base = 0.0;
    double multiplier = 1.0;
    double outputMin, outputMax;

    double inputMin = (p_inputMinimum.size()) ? p_inputMinimum[0] : 0.0;
    double inputMax = (p_inputMaximum.size()) ? p_inputMaximum[0] : 0.0;

    for(unsigned int i = 0; i < p_inputMinimum.size(); i ++) {
      inputMin = std::min(inputMin, p_inputMinimum[i]);
      inputMax = std::max(inputMax, p_inputMaximum[i]);
    }

    outputMin = p_outputMinimum;
    outputMax = p_outputMaximum;

    if(p_inputMinimum.size() && ( p_pixelType == Isis::UnsignedByte ||
                                  p_pixelType == Isis::SignedWord   ||
                                  p_pixelType == Isis::UnsignedWord ) ) {
      multiplier = (inputMax - inputMin) / (outputMax - outputMin);
      base = inputMin - multiplier * outputMin;
    }

    if (!fileAreaObservationalElement.isNull()) {
      QDomElement array3DImageElement =
                      fileAreaObservationalElement.firstChildElement("Array_3D_Image");

      if (!array3DImageElement.isNull()) {

        // reorder axis elements. 
        // Translation order:  elements, axis_name, sequence_number
        // Correct order:      axis_name, elements, sequence_number
        QDomElement axisArrayElement = array3DImageElement.firstChildElement("Axis_Array");
        while( !axisArrayElement.isNull() ) {
          QDomElement axisNameElement = axisArrayElement.firstChildElement("axis_name");
          axisArrayElement.insertBefore(axisNameElement, 
                                        axisArrayElement.firstChildElement("elements"));
          axisArrayElement = axisArrayElement.nextSiblingElement("Axis_Array");
        }

        QDomElement elementArrayElement = m_domDoc->createElement("Element_Array");
        array3DImageElement.insertBefore(elementArrayElement,
                                         array3DImageElement.firstChildElement("Axis_Array"));

        QDomElement dataTypeElement = m_domDoc->createElement("data_type");
        PvlToXmlTranslationManager::setElementValue(dataTypeElement,
                                                    PDS4PixelType(p_pixelType, p_endianType));
        elementArrayElement.appendChild(dataTypeElement);

        QDomElement scalingFactorElement = m_domDoc->createElement("scaling_factor");
        PvlToXmlTranslationManager::setElementValue(scalingFactorElement,
                                                    toString(multiplier));
        elementArrayElement.appendChild(scalingFactorElement);

        QDomElement offsetElement = m_domDoc->createElement("value_offset");
        PvlToXmlTranslationManager::setElementValue(offsetElement,
                                                    toString(base));
        elementArrayElement.appendChild(offsetElement);
      }
    }
  }


@@ -505,7 +431,7 @@ namespace Isis {
    QString imageObject = imageObjectType(*inputLabel);

    QString translationFile = "$base/translations/pds4Export";
    translationFile += imageObject.remove('_');
    translationFile += QString(imageObject).remove('_');
    translationFile += ".trn";
    FileName translationFileName(translationFile);

@@ -540,15 +466,14 @@ namespace Isis {
    }

    if (!fileAreaObservationalElement.isNull()) {
      QDomElement array3DImageElement =
      QDomElement arrayImageElement =
                      fileAreaObservationalElement.firstChildElement(imageObject);

      if (!array3DImageElement.isNull()) {
      if (!arrayImageElement.isNull()) {

        // reorder axis elements. 
        // Translation order:  elements, axis_name, sequence_number
        // Correct order:      axis_name, elements, sequence_number
        QDomElement axisArrayElement = array3DImageElement.firstChildElement("Axis_Array");
        QDomElement axisArrayElement = arrayImageElement.firstChildElement("Axis_Array");
        while( !axisArrayElement.isNull() ) {
          QDomElement axisNameElement = axisArrayElement.firstChildElement("axis_name");
          axisArrayElement.insertBefore(axisNameElement, 
@@ -557,8 +482,8 @@ namespace Isis {
        }

        QDomElement elementArrayElement = m_domDoc->createElement("Element_Array");
        array3DImageElement.insertBefore(elementArrayElement,
                                         array3DImageElement.firstChildElement("Axis_Array"));
        arrayImageElement.insertBefore(elementArrayElement,
                                         arrayImageElement.firstChildElement("Axis_Array"));

        QDomElement dataTypeElement = m_domDoc->createElement("data_type");
        PvlToXmlTranslationManager::setElementValue(dataTypeElement,
+2 −1
Original line number Diff line number Diff line
@@ -104,8 +104,9 @@ namespace Isis {
      static void translateUnits(QDomDocument &label,
                                 QString transMapFile = "$base/translations/pds4ExportUnits.pvl");

    protected:
      void addSchema(QString sch, QString xsd, QString xmlns, QString xmlnsURI) ;
    protected:
//      void addSchema(QString sch, QString xsd, QString xmlns, QString xmlnsURI) ;
      void identificationArea();
      void standardInstrument();
      void standardBandBin(); 
+42 −93
Original line number Diff line number Diff line
@@ -10,7 +10,7 @@ Testing defaulte CaSSIS export
<?xml-model href="http://pds.nasa.gov/pds4/disp/v1/PDS4_DISP_1700.sch" schematypens="http://purl.oclc.org/dsdl/schematron"?>
<?xml-model href="http://pds.nasa.gov/pds4/pds/v1/PDS4_PDS_1800.sch" schematypens="http://purl.oclc.org/dsdl/schematron"?>
<Product_Observational>0</offset>
   <axes>3</axes>
   <axes>2</axes>
   <axis_index_order>Last Index Fastest</axis_index_order>
   <Element_Array>
    <data_type>IEEE754LSBSingle</data_type>
@@ -18,8 +18,8 @@ Testing defaulte CaSSIS export
    <value_offset>0.0</value_offset>
   </Element_Array>
   <Axis_Array>
    <axis_name>Band</axis_name>
    <elements>1</elements>
    <axis_name>Sample</axis_name>
    <elements>2048</elements>
    <sequence_number>1</sequence_number>
   </Axis_Array>
   <Axis_Array>
@@ -27,12 +27,7 @@ Testing defaulte CaSSIS export
    <elements>254</elements>
    <sequence_number>2</sequence_number>
   </Axis_Array>
   <Axis_Array>
    <axis_name>Sample</axis_name>
    <elements>2048</elements>
    <sequence_number>3</sequence_number>
   </Axis_Array>
  </Array_3D_Image>
  </Array_2D_Image>
 </File_Area_Observational>
</Product_Observational>
unittest: Exporting
@@ -41,7 +36,7 @@ unittest: Exporting
<?xml-model href="http://pds.nasa.gov/pds4/disp/v1/PDS4_DISP_1700.sch" schematypens="http://purl.oclc.org/dsdl/schematron"?>
<?xml-model href="http://pds.nasa.gov/pds4/pds/v1/PDS4_PDS_1800.sch" schematypens="http://purl.oclc.org/dsdl/schematron"?>
<Product_Observational>0</offset>
   <axes>3</axes>
   <axes>2</axes>
   <axis_index_order>Last Index Fastest</axis_index_order>
   <Element_Array>
    <data_type>IEEE754LSBSingle</data_type>
@@ -49,8 +44,8 @@ unittest: Exporting
    <value_offset>0.0</value_offset>
   </Element_Array>
   <Axis_Array>
    <axis_name>Band</axis_name>
    <elements>1</elements>
    <axis_name>Sample</axis_name>
    <elements>2048</elements>
    <sequence_number>1</sequence_number>
   </Axis_Array>
   <Axis_Array>
@@ -58,12 +53,7 @@ unittest: Exporting
    <elements>254</elements>
    <sequence_number>2</sequence_number>
   </Axis_Array>
   <Axis_Array>
    <axis_name>Sample</axis_name>
    <elements>2048</elements>
    <sequence_number>3</sequence_number>
   </Axis_Array>
  </Array_3D_Image>
  </Array_2D_Image>
 </File_Area_Observational>
</Product_Observational>
unittest: Exporting
@@ -78,7 +68,7 @@ Testing export pixel types
<?xml-model href="http://pds.nasa.gov/pds4/disp/v1/PDS4_DISP_1700.sch" schematypens="http://purl.oclc.org/dsdl/schematron"?>
<?xml-model href="http://pds.nasa.gov/pds4/pds/v1/PDS4_PDS_1800.sch" schematypens="http://purl.oclc.org/dsdl/schematron"?>
<Product_Observational>0</offset>
   <axes>3</axes>
   <axes>2</axes>
   <axis_index_order>Last Index Fastest</axis_index_order>
   <Element_Array>
    <data_type>SignedMSB2</data_type>
@@ -86,8 +76,8 @@ Testing export pixel types
    <value_offset>0.0</value_offset>
   </Element_Array>
   <Axis_Array>
    <axis_name>Band</axis_name>
    <elements>1</elements>
    <axis_name>Sample</axis_name>
    <elements>2048</elements>
    <sequence_number>1</sequence_number>
   </Axis_Array>
   <Axis_Array>
@@ -95,12 +85,7 @@ Testing export pixel types
    <elements>254</elements>
    <sequence_number>2</sequence_number>
   </Axis_Array>
   <Axis_Array>
    <axis_name>Sample</axis_name>
    <elements>2048</elements>
    <sequence_number>3</sequence_number>
   </Axis_Array>
  </Array_3D_Image>
  </Array_2D_Image>
 </File_Area_Observational>
</Product_Observational>
<?xml version="1.0" encoding="utf-8"?>
@@ -108,11 +93,11 @@ Testing export pixel types
<?xml-model href="http://pds.nasa.gov/pds4/disp/v1/PDS4_DISP_1700.sch" schematypens="http://purl.oclc.org/dsdl/schematron"?>
<?xml-model href="http://pds.nasa.gov/pds4/pds/v1/PDS4_PDS_1800.sch" schematypens="http://purl.oclc.org/dsdl/schematron"?>
<Product_Observational>0</offset>
   <axes>3</axes>
   <axes>2</axes>
   <axis_index_order>Last Index Fastest</axis_index_order>
   <Axis_Array>
    <axis_name>Band</axis_name>
    <elements>1</elements>
    <axis_name>Sample</axis_name>
    <elements>2048</elements>
    <sequence_number>1</sequence_number>
   </Axis_Array>
   <Axis_Array>
@@ -120,12 +105,7 @@ Testing export pixel types
    <elements>254</elements>
    <sequence_number>2</sequence_number>
   </Axis_Array>
   <Axis_Array>
    <axis_name>Sample</axis_name>
    <elements>2048</elements>
    <sequence_number>3</sequence_number>
   </Axis_Array>
  </Array_3D_Image>
  </Array_2D_Image>
 </File_Area_Observational>
</Product_Observational>
<?xml version="1.0" encoding="utf-8"?>
@@ -134,11 +114,11 @@ Testing export pixel types
<?xml-model href="http://pds.nasa.gov/pds4/disp/v1/PDS4_DISP_1700.sch" schematypens="http://purl.oclc.org/dsdl/schematron"?>
<?xml-model href="http://pds.nasa.gov/pds4/pds/v1/PDS4_PDS_1800.sch" schematypens="http://purl.oclc.org/dsdl/schematron"?>
<Product_Observational>0</offset>
   <axes>3</axes>
   <axes>2</axes>
   <axis_index_order>Last Index Fastest</axis_index_order>
   <Axis_Array>
    <axis_name>Band</axis_name>
    <elements>1</elements>
    <axis_name>Sample</axis_name>
    <elements>2048</elements>
    <sequence_number>1</sequence_number>
   </Axis_Array>
   <Axis_Array>
@@ -146,12 +126,7 @@ Testing export pixel types
    <elements>254</elements>
    <sequence_number>2</sequence_number>
   </Axis_Array>
   <Axis_Array>
    <axis_name>Sample</axis_name>
    <elements>2048</elements>
    <sequence_number>3</sequence_number>
   </Axis_Array>
  </Array_3D_Image>
  </Array_2D_Image>
 </File_Area_Observational>
</Product_Observational>
<?xml version="1.0" encoding="utf-8"?>
@@ -161,11 +136,11 @@ Testing export pixel types
<?xml-model href="http://pds.nasa.gov/pds4/disp/v1/PDS4_DISP_1700.sch" schematypens="http://purl.oclc.org/dsdl/schematron"?>
<?xml-model href="http://pds.nasa.gov/pds4/pds/v1/PDS4_PDS_1800.sch" schematypens="http://purl.oclc.org/dsdl/schematron"?>
<Product_Observational>0</offset>
   <axes>3</axes>
   <axes>2</axes>
   <axis_index_order>Last Index Fastest</axis_index_order>
   <Axis_Array>
    <axis_name>Band</axis_name>
    <elements>1</elements>
    <axis_name>Sample</axis_name>
    <elements>2048</elements>
    <sequence_number>1</sequence_number>
   </Axis_Array>
   <Axis_Array>
@@ -173,12 +148,7 @@ Testing export pixel types
    <elements>254</elements>
    <sequence_number>2</sequence_number>
   </Axis_Array>
   <Axis_Array>
    <axis_name>Sample</axis_name>
    <elements>2048</elements>
    <sequence_number>3</sequence_number>
   </Axis_Array>
  </Array_3D_Image>
  </Array_2D_Image>
 </File_Area_Observational>
</Product_Observational>
<?xml version="1.0" encoding="utf-8"?>
@@ -189,11 +159,11 @@ Testing export pixel types
<?xml-model href="http://pds.nasa.gov/pds4/disp/v1/PDS4_DISP_1700.sch" schematypens="http://purl.oclc.org/dsdl/schematron"?>
<?xml-model href="http://pds.nasa.gov/pds4/pds/v1/PDS4_PDS_1800.sch" schematypens="http://purl.oclc.org/dsdl/schematron"?>
<Product_Observational>0</offset>
   <axes>3</axes>
   <axes>2</axes>
   <axis_index_order>Last Index Fastest</axis_index_order>
   <Axis_Array>
    <axis_name>Band</axis_name>
    <elements>1</elements>
    <axis_name>Sample</axis_name>
    <elements>2048</elements>
    <sequence_number>1</sequence_number>
   </Axis_Array>
   <Axis_Array>
@@ -201,12 +171,7 @@ Testing export pixel types
    <elements>254</elements>
    <sequence_number>2</sequence_number>
   </Axis_Array>
   <Axis_Array>
    <axis_name>Sample</axis_name>
    <elements>2048</elements>
    <sequence_number>3</sequence_number>
   </Axis_Array>
  </Array_3D_Image>
  </Array_2D_Image>
 </File_Area_Observational>
</Product_Observational>
<?xml version="1.0" encoding="utf-8"?>
@@ -218,11 +183,11 @@ Testing export pixel types
<?xml-model href="http://pds.nasa.gov/pds4/disp/v1/PDS4_DISP_1700.sch" schematypens="http://purl.oclc.org/dsdl/schematron"?>
<?xml-model href="http://pds.nasa.gov/pds4/pds/v1/PDS4_PDS_1800.sch" schematypens="http://purl.oclc.org/dsdl/schematron"?>
<Product_Observational>0</offset>
   <axes>3</axes>
   <axes>2</axes>
   <axis_index_order>Last Index Fastest</axis_index_order>
   <Axis_Array>
    <axis_name>Band</axis_name>
    <elements>1</elements>
    <axis_name>Sample</axis_name>
    <elements>2048</elements>
    <sequence_number>1</sequence_number>
   </Axis_Array>
   <Axis_Array>
@@ -230,12 +195,7 @@ Testing export pixel types
    <elements>254</elements>
    <sequence_number>2</sequence_number>
   </Axis_Array>
   <Axis_Array>
    <axis_name>Sample</axis_name>
    <elements>2048</elements>
    <sequence_number>3</sequence_number>
   </Axis_Array>
  </Array_3D_Image>
  </Array_2D_Image>
 </File_Area_Observational>
</Product_Observational>

@@ -246,7 +206,7 @@ unittest: Exporting
<?xml-model href="http://pds.nasa.gov/pds4/disp/v1/PDS4_DISP_1700.sch" schematypens="http://purl.oclc.org/dsdl/schematron"?>
<?xml-model href="http://pds.nasa.gov/pds4/pds/v1/PDS4_PDS_1800.sch" schematypens="http://purl.oclc.org/dsdl/schematron"?>
<Product_Observational>0</offset>
   <axes>3</axes>
   <axes>2</axes>
   <axis_index_order>Last Index Fastest</axis_index_order>
   <Element_Array>
    <data_type>IEEE754LSBSingle</data_type>
@@ -254,8 +214,8 @@ unittest: Exporting
    <value_offset>0.0</value_offset>
   </Element_Array>
   <Axis_Array>
    <axis_name>Band</axis_name>
    <elements>1</elements>
    <axis_name>Sample</axis_name>
    <elements>2048</elements>
    <sequence_number>1</sequence_number>
   </Axis_Array>
   <Axis_Array>
@@ -263,12 +223,7 @@ unittest: Exporting
    <elements>254</elements>
    <sequence_number>2</sequence_number>
   </Axis_Array>
   <Axis_Array>
    <axis_name>Sample</axis_name>
    <elements>2048</elements>
    <sequence_number>3</sequence_number>
   </Axis_Array>
  </Array_3D_Image>
  </Array_2D_Image>
 </File_Area_Observational>
</Product_Observational>

@@ -279,7 +234,7 @@ Testing exporting a map projected product
<?xml-model href="http://pds.nasa.gov/pds4/disp/v1/PDS4_DISP_1700.sch" schematypens="http://purl.oclc.org/dsdl/schematron"?>
<?xml-model href="http://pds.nasa.gov/pds4/pds/v1/PDS4_PDS_1800.sch" schematypens="http://purl.oclc.org/dsdl/schematron"?>
<Product_Observational>0</offset>
   <axes>3</axes>
   <axes>2</axes>
   <axis_index_order>Last Index Fastest</axis_index_order>
   <Element_Array>
    <data_type>IEEE754LSBSingle</data_type>
@@ -287,8 +242,8 @@ Testing exporting a map projected product
    <value_offset>0.0</value_offset>
   </Element_Array>
   <Axis_Array>
    <axis_name>Band</axis_name>
    <elements>1</elements>
    <axis_name>Sample</axis_name>
    <elements>2371</elements>
    <sequence_number>1</sequence_number>
   </Axis_Array>
   <Axis_Array>
@@ -296,12 +251,7 @@ Testing exporting a map projected product
    <elements>2371</elements>
    <sequence_number>2</sequence_number>
   </Axis_Array>
   <Axis_Array>
    <axis_name>Sample</axis_name>
    <elements>2371</elements>
    <sequence_number>3</sequence_number>
   </Axis_Array>
  </Array_3D_Image>
  </Array_2D_Image>
 </File_Area_Observational>
</Product_Observational>

@@ -319,6 +269,5 @@ Test adding a history to an empty label
**PROGRAMMER ERROR** Could not find Identification_Area element to add modification history under.
Test a missing target
**PROGRAMMER ERROR** Unable to translate and export instrument information.
**ERROR** Unable to find a target in input cube.
**PROGRAMMER ERROR** No value or default value to translate for translation group [TargetName] in file [/usgs/cpkgs/isis3/data/base/translations/pds4ExportTargetFromMapping.trn].
**PROGRAMMER ERROR** No value or default value to translate for translation group [TargetName] in file [/usgs/cpkgs/isis3/data/base/translations/pds4ExportTargetFromInstrument.trn].
**PROGRAMMER ERROR** No value or default value to translate for translation group [TargetName] in file [base/translations/pds4ExportTargetFromInstrument.trn].
Loading