Commit fc8c16f2 authored by Tyler Wilson's avatar Tyler Wilson
Browse files

Fix to correct corrupted pvl files for orbit I24 so ISIS can load the images. Ref#2344.

git-svn-id: http://subversion.wr.usgs.gov/repos/prog/isis3/trunk@6436 41f8697f-d340-4b68-9986-7bafba869bb8
parent eb4f4d9d
Loading
Loading
Loading
Loading
+80 −12
Original line number Diff line number Diff line
#include "Isis.h"

#include <cstdio>
#include <QString>

#include "ProcessImportPds.h"

#include "UserInterface.h"
#include "CubeAttribute.h"
#include "FileName.h"
#include "IException.h"
#include "iTime.h"
#include "ProcessImportPds.h"
#include "UserInterface.h"

#include <cstdio>
#include <QString>
#include <QByteArray>
#include <QFileInfo>
#include <QFile>





using namespace std;
using namespace Isis;
@@ -17,8 +23,9 @@ bool summed;

Cube *summedOutput;

void TranslateData(Buffer &inData);
void TranslateLabels(Pvl &pdsLabel, Cube *ocube);
void translateData(Buffer &inData);
void translateLabels(Pvl &pdsLabel, Cube *ocube);
void fixPvl(QString fileName);

void IsisMain() {

@@ -31,7 +38,15 @@ void IsisMain() {
  FileName inFile = ui.GetFileName("FROM");
  FileName out = ui.GetFileName("TO");



  fixPvl(inFile.toString());




  // Make sure it is a Galileo SSI image

  Pvl lab(inFile.expanded());

  //Checks if in file is rdr
@@ -99,11 +114,11 @@ void IsisMain() {
    summedOutput->setDimensions(p.Samples() / 2, p.Lines() / 2, p.Bands());
    summedOutput->setPixelType(p.PixelType());
    summedOutput->create(ui.GetFileName("TO"));
    p.StartProcess(TranslateData);
    p.StartProcess(translateData);
    ocube = summedOutput;
  }

  TranslateLabels(pdsLabel, ocube);
  translateLabels(pdsLabel, ocube);
  p.EndProcess();

  if (summed) {
@@ -114,11 +129,64 @@ void IsisMain() {
  return;
}

void TranslateData(Buffer &inData) {


/**
  * This fixes a problem with some of the Pvl files where a comment
  * was left open.  If the file has this error, the comment is closed
  * and the file is saved.  If the file does not, it's closed without
  * changing anything.
  *
  * @param fileName  The full path + file name of the Pvl file
  *     being checked
  *
  */



void fixPvl(QString fileName){

    QFile pvlFile;

    pvlFile.setFileName(fileName);
    pvlFile.open(QFile::ReadWrite | QFile::Text);

    //Read the Pvl file into a byte array
    QByteArray fileData = pvlFile.readAll();

    //Is this one of the messed up files?
    if (!fileData.contains(QByteArray("/* Image Object /") ) ){
            pvlFile.close();

     //No - so return without doing anything
     return;

    }

    //Otherwise, edit the file in place

    fileData.replace(QByteArray("/* Image Object /"),QByteArray("/* Image Object */"));

    pvlFile.seek(0);
    pvlFile.write(fileData);
    pvlFile.close();


}









void translateData(Buffer &inData) {
  summedOutput->write(inData);
}

void TranslateLabels(Pvl &pdsLabel, Cube *ocube) {
void translateLabels(Pvl &pdsLabel, Cube *ocube) {
  // Get the directory where the MOC translation tables are.
  PvlGroup &dataDir = Preference::Preferences().findGroup("DataDirectory");

+6 −0
Original line number Diff line number Diff line
@@ -55,6 +55,12 @@
       contains "SSI-4-REDR-V1.0").  Modified code to set as FULL summing 
       mode if FRAMEMODE=AUTO and the image is reconstructed.
    </change>
    <change name="Tyler Wilson" date="2015-10-02">
       Added the fixPvl function that fixes Pvl files from orbit I24 which have
       a comment tag that is not closed off.  #Ref 2344
    </change>


  </history>

  <category>
+8 −0
Original line number Diff line number Diff line
APPNAME = gllssi2isis

include $(ISISROOT)/make/isismake.tsts

commands:
	$(APPNAME) FROM=$(INPUT)/4911s.lbl \
	TO=$(OUTPUT)/4911s.cub > /dev/null;
	catlab FROM=$(OUTPUT)/4911s.cub to=$(OUTPUT)/4911s.txt > /dev/null;
+151 −0
Original line number Diff line number Diff line
CCSD3ZF0000100000001NJPL3IF0PDS200000001 = SFDU_LABEL                         
                                                                              
/* File Format and Length */                                                  
RECORD_TYPE = FIXED_LENGTH                                                    
RECORD_BYTES = 800                                                            
FILE_RECORDS = 803                                                            
                                                                              
/* Pointers to Data Objects */                                                
^IMAGE_HEADER = ("4911S.IMG",1)                                               
^IMAGE = ("4911S.IMG",4)                                                      
                                                                              
/* Description/Catalog Keywords */                                            
DATA_SET_ID = "GO-J/JSA-SSI-4-REDR-V1.0"                                      
SPACECRAFT_NAME = "GALILEO ORBITER"                                           
INSTRUMENT_NAME = "SOLID STATE IMAGING SYSTEM"                                
                                                                              
/* Time tags and observation descriptors */                                   
SPACECRAFT_CLOCK_CNT_PARTITION = 1                                            
SPACECRAFT_CLOCK_START_COUNT = "05207949.11"                                  
IMAGE_TIME = 1999-10-11T04:51:12.894Z                                         
IMAGE_ID = "24I0068"                                                          
ORBIT_NUMBER = 24                                                             
OBSERVATION_ID = "24ISCOLCHS02"                                               
TARGET_NAME = "IO"                                                            
NTV_TIME_FROM_CLOSEST_APPROACH = "000T02:49:11Z"                              
NTV_SAT_TIME_FROM_CLOSEST_APRH = "000T00:19:07Z"                              
NOTE = "RECONSTRUCTED IMAGE, NOT IN PDS-COMPLIANT REDR FORMAT"                
                                                                              
/* Camera and spacecraft state parameters */                                  
FILTER_NAME = "CLEAR"                                                         
FILTER_NUMBER = 0                                                             
EXPOSURE_DURATION =     6.25                                                  
GAIN_MODE_ID = "400K"                                                         
FRAME_DURATION =    2.333                                                     
LIGHT_FLOOD_STATE_FLAG = "OFF"                                                
EXPOSURE_TYPE = "NORMAL"                                                      
BLEMISH_PROTECTION_FLAG = "OFF"                                               
INVERTED_CLOCK_STATE_FLAG = "NOT INVERTED"                                    
ON_CHIP_MOSAIC_FLAG = "N"                                                     
COMPRESSION_TYPE = "HUFFMAN"                                                  
ENTROPY =    0.000                                                            
TELEMETRY_FORMAT_ID = "AI8"                                                   
OBSTRUCTION_ID = "NOT POSSIBLE"                                               
INSTRUMENT_MODE_ID = "N/A"                                                    
                                                                              
/* Viewing Geometry */                                                        
/* Note: These viewing geometry parameters are best estimates */              
/* at the time this picture label was generated. */                           
POSITIVE_LONGITUDE_DIRECTION = WEST                                           
                                                                              
/* Spacecraft Geometry */                                                     
TARGET_CENTER_DISTANCE = 8.965335e+03                                         
CENTRAL_BODY_DISTANCE = 4.294315e+05                                          
SUB_SPACECRAFT_LATITUDE =    1.281                                            
SUB_SPACECRAFT_LONGITUDE =  150.758                                           
SUB_SPACECRAFT_LINE = -1101.302                                               
SUB_SPACECRAFT_LINE_SAMPLE = 10012.448                                        
SUB_SPACECRAFT_AZIMUTH =  352.490                                             
                                                                              
/* Camera and Lighting Geometry                        */                     
/* Resolution of HORIZONTAL_PIXEL_SCALE,               */                     
/* VERTICAL_PIXEL_SCALE, and SLANT_DISTANCE            */                     
/* is calculated from the light source values in       */                     
/* INTERCEPT_POINT_LATITUDE, INTERCEPT_POINT_LONGITUDE,*/                     
/* INTERCEPT_POINT_LINE and INTERCEPT_POINT_LINE_SAMPLE keywords  */          
/* If the target is a Ring keyword RING_RADIUS         */                     
/* is substituted for INTERCEPT_POINT_LATITUDE         */                     
/* If the TARGET_NAME = J RINGS, viewing geometry was */                      
/* calculated using Jupiter as the target. */                                 
TWIST_ANGLE =  295.478                                                        
CONE_ANGLE =  157.529                                                         
RIGHT_ASCENSION =   49.905                                                    
DECLINATION =   19.751                                                        
NORTH_AZIMUTH =  259.903                                                      
SMEAR_AZIMUTH = "UNK"                                                         
SMEAR_MAGNITUDE = "UNK"                                                       
HORIZONTAL_PIXEL_SCALE = 6.414920e+02                                         
VERTICAL_PIXEL_SCALE = 1.874650e+02                                           
SLANT_DISTANCE = 8.312450e+03                                                 
SOLAR_DISTANCE = 7.410850e+08                                                 
SUB_SOLAR_LATITUDE =    2.991                                                 
SUB_SOLAR_LONGITUDE =  163.341                                                
SUB_SOLAR_AZIMUTH =  346.384                                                  
INCIDENCE_ANGLE =   51.333                                                    
EMISSION_ANGLE =   75.343                                                     
PHASE_ANGLE =   24.049                                                        
LOCAL_HOUR_ANGLE =  128.608                                                   
INTERCEPT_POINT_LATITUDE =    2.661                                           
INTERCEPT_POINT_LONGITUDE =  214.741                                          
INTERCEPT_POINT_LINE = 200.0                                                  
INTERCEPT_POINT_LINE_SAMPLE = 200.0                                           
                                                                              
/* Target radii */                                                            
A_AXIS_RADIUS = 1.830000e+03                                                  
B_AXIS_RADIUS = 1.818700e+03                                                  
C_AXIS_RADIUS = 1.815300e+03                                                  
                                                                              
/* Processing parameters */                                                   
MEAN_RADIANCE = "N/A"                                                         
MEAN_REFLECTANCE = "N/A"                                                      
REFLECTANCE_SCALING_FACTOR = "N/A"                                            
RADIANCE_SCALING_FACTOR = "N/A"                                               
UNEVEN_BIT_WEIGHT_CORR_FLAG = "N/A"                                           
DARK_CURRENT_FILE_NAME = "N/A"                                                
SLOPE_FILE_NAME = "N/A"                                                       
BLEMISH_FILE_NAME = "N/A"                                                     
SHUTTER_OFFSET_FILE_NAME = "N/A"                                              
DATA_TYPE = LSB_UNSIGNED_INTEGER                                              
SOURCE_PRODUCT_ID = {"S000105A.BSP","S000105A.BSP","N/A","CKI24AGE.PLT","NULL"
}                                                                             
PROCESSING_HISTORY_TEXT = "VICAR programs run:  "                             
PRODUCT_TYPE = "REDR"                                                         
                                                                              
                                                                              
/* HUFFMAN Lossless compression */                                            
ENCODING_COMPRESSION_RATIO =    1.591                                         
ENCODING_MIN_COMPRESSION_RATIO =    1.393                                     
ENCODING_MAX_COMPRESSION_RATIO =    1.631                                     
HUFFMAN_TABLE_TYPE = "UNIFORM"                                                
CUT_OUT_WINDOW = {1,1,800,800}                                                
PRODUCT_VERSION_ID = 0                                                        
                                                                              
/* VICAR IMAGE HEADER Object */                                               
OBJECT = IMAGE_HEADER                                                         
INTERCHANGE_FORMAT = BINARY                                                   
HEADER_TYPE = VICAR2                                                          
BYTES = 2400                                                                  
RECORDS = 3                                                                   
^DESCRIPTION = "VICAR2.TXT"                                                   
END_OBJECT                                                                    
                                                                              
/* Image Object */
OBJECT = IMAGE                                                                
LINES = 800                                                                   
LINE_SAMPLES = 800                                                            
SAMPLE_BITS = 8                                                               
SAMPLE_TYPE = UNSIGNED_INTEGER                                                
INVALID_CONSTANT = "N/A"                                                      
LINE_PREFIX_BYTES = 0                                                         
^LINE_PREFIX_STRUCTURE = ""                                                   
END_OBJECT                                                                    
END                                                                           
                                                           
END                                                                           

                                                           
END                                                                           
 

                                                           
END                                                                           
+76 −0
Original line number Diff line number Diff line
Object = IsisCube
  Object = Core
    StartByte   = 65537
    Format      = Tile
    TileSamples = 800
    TileLines   = 800

    Group = Dimensions
      Samples = 800
      Lines   = 800
      Bands   = 1
    End_Group

    Group = Pixels
      Type       = UnsignedByte
      ByteOrder  = Lsb
      Base       = 0.0
      Multiplier = 1.0
    End_Group
  End_Object

  Group = Instrument
    SpacecraftName            = "Galileo Orbiter"
    InstrumentId              = "SOLID STATE IMAGING SYSTEM"
    TargetName                = IO
    SpacecraftClockStartCount = 05207949.11
    StartTime                 = 1999-10-11T04:51:12.894
    ExposureDuration          = 0.00625 <seconds>
    GainModeId                = 400000
    TelemetryFormat           = AI8
    LightFloodStateFlag       = OFF
    InvertedClockStateFlag    = "NOT INVERTED"
    BlemishProtectionFlag     = OFF
    ExposureType              = NORMAL
    ReadoutMode               = Contiguous
    FrameDuration             = 2.333 <seconds>
    Summing                   = 1
    FrameModeId               = FULL
  End_Group

  Group = Archive
    DataSetId     = GO-J/JSA-SSI-4-REDR-V1.0
    ProductId     = 24I0068
    ObservationId = 24ISCOLCHS02
    DataType      = RADIANCE
    CalTargetCode = 24
  End_Group

  Group = BandBin
    FilterName   = CLEAR
    FilterNumber = 0
    Center       = 0.611 <micrometers>
    Width        = .44 <micrometers>
  End_Group

  Group = Kernels
    NaifFrameCode = -77001
  End_Group
End_Object

Object = Label
  Bytes = 65536
End_Object

Object = History
  Name      = IsisCube
  StartByte = 705537
  Bytes     = 588
End_Object

Object = OriginalLabel
  Name      = IsisCube
  StartByte = 706125
  Bytes     = 6302
End_Object
End