module ADIWG::Mdtranslator::Readers::MdJson::ImageDescription

Public Class Methods

unpack(hImageInfo, responseObj) click to toggle source
# File lib/adiwg/mdtranslator/readers/mdJson/modules/module_imageDescription.rb, line 17
def self.unpack(hImageInfo, responseObj)

   @MessagePath = ADIWG::Mdtranslator::Readers::MdJson::MdJson

   inContext = 'coverage description'

   # return nil object if input is empty
   if hImageInfo.empty?
      @MessagePath.issueWarning(460, responseObj, inContext)
      return nil
   end

   # instance classes needed in script
   intMetadataClass = InternalMetadata.new
   hImage = intMetadataClass.newImageDescription

   outContext = inContext + ' image description'

   # image description - elevation angle of illumination
   if hImageInfo.has_key?('illuminationElevationAngle')
      unless hImageInfo['illuminationElevationAngle'] == ''
         hImage[:illuminationElevationAngle] = hImageInfo['illuminationElevationAngle']
      end
   end

   # image description - azimuth of illumination
   if hImageInfo.has_key?('illuminationAzimuthAngle')
      unless hImageInfo['illuminationAzimuthAngle'] == ''
         hImage[:illuminationAzimuthAngle] = hImageInfo['illuminationAzimuthAngle']
      end
   end

   # image description - image condition
   if hImageInfo.has_key?('imagingCondition')
      unless hImageInfo['imagingCondition'] == ''
         hImage[:imagingCondition] = hImageInfo['imagingCondition']
      end
   end

   # image description - image quality - identifier
   if hImageInfo.has_key?('imageQualityCode')
      hObject = hImageInfo['imageQualityCode']
      unless hObject.empty?
         hReturn = Identifier.unpack(hObject, responseObj, outContext)
         unless hReturn.nil?
            hImage[:imageQualityCode] = hReturn
         end
      end
   end

   # image description - cloud cover percentage
   if hImageInfo.has_key?('cloudCoverPercent')
      unless hImageInfo['cloudCoverPercent'] == ''
         hImage[:cloudCoverPercent] = hImageInfo['cloudCoverPercent']
      end
   end

   # image description - compression quality
   if hImageInfo.has_key?('compressionQuantity')
      unless hImageInfo['compressionQuantity'] == ''
         hImage[:compressionQuantity] = hImageInfo['compressionQuantity']
      end
   end

   # image description - triangulation information available {Boolean}
   if hImageInfo.has_key?('triangulationIndicator')
      if hImageInfo['triangulationIndicator'] === true
         hImage[:triangulationIndicator] = hImageInfo['triangulationIndicator']
      end
   end

   # image description - radiometric calibration information available {Boolean}
   if hImageInfo.has_key?('radiometricCalibrationAvailable')
      if hImageInfo['radiometricCalibrationAvailable'] === true
         hImage[:radiometricCalibrationAvailable] = hImageInfo['radiometricCalibrationAvailable']
      end
   end

   # image description - camera calibration information available {Boolean}
   if hImageInfo.has_key?('cameraCalibrationAvailable')
      if hImageInfo['cameraCalibrationAvailable'] === true
         hImage[:cameraCalibrationAvailable] = hImageInfo['cameraCalibrationAvailable']
      end
   end

   # image description - film distortion information available {Boolean}
   if hImageInfo.has_key?('filmDistortionAvailable')
      if hImageInfo['filmDistortionAvailable'] === true
         hImage[:filmDistortionAvailable] = hImageInfo['filmDistortionAvailable']
      end
   end

   # image description - lens distortion information available {Boolean}
   if hImageInfo.has_key?('lensDistortionAvailable')
      if hImageInfo['lensDistortionAvailable'] === true
         hImage[:lensDistortionAvailable] = hImageInfo['lensDistortionAvailable']
      end
   end

   return hImage

end