class ADIWG::Mdtranslator::Writers::Iso19115_1::MD_ImageDescription

Public Class Methods

new(xml, hResponseObj) click to toggle source
# File lib/adiwg/mdtranslator/writers/iso19115_1/classes/class_imageDescription.rb, line 18
def initialize(xml, hResponseObj)
   @xml = xml
   @hResponseObj = hResponseObj
end

Public Instance Methods

writeXML(hCoverage, inContext = nil) click to toggle source
# File lib/adiwg/mdtranslator/writers/iso19115_1/classes/class_imageDescription.rb, line 23
def writeXML(hCoverage, inContext = nil)

   # classes used
   codelistClass = MD_Codelist.new(@xml, @hResponseObj)
   identifierClass = MD_Identifier.new(@xml, @hResponseObj)
   groupClass = MD_AttributeGroup.new(@xml, @hResponseObj)

   outContext = 'content coverage image description'

   unless hCoverage.empty?
      @xml.tag!('mrc:MD_ImageDescription') do

         # image description - attribute description (required)
         # combine coverageName and coverageDescription
         attDesc = ''
         unless hCoverage[:coverageName].nil?
            attDesc += hCoverage[:coverageName] + '; '
         end
         unless hCoverage[:coverageDescription].nil?
            attDesc += hCoverage[:coverageDescription]
         end
         unless attDesc == ''
            @xml.tag!('mrc:attributeDescription') do
               @xml.tag!('gco:RecordType', attDesc)
            end
         end
         if attDesc == ''
            @NameSpace.issueWarning(40, 'mrc:attributeDescription')
         end

         # image description - processing level code {MD_Identifier}
         unless hCoverage[:processingLevelCode].empty?
            @xml.tag!('mrc:processingLevelCode') do
               identifierClass.writeXML(hCoverage[:processingLevelCode], outContext+' processing level')
            end
            if hCoverage[:processingLevelCode].empty? && @hResponseObj[:writerShowTags]
               @xml.tag!('mrc:processingLevelCode')
            end
         end

         # image description - attribute group [] {MD_AttributeGroup}
         aGroups = hCoverage[:attributeGroups]
         aGroups.each do |hGroup|
            unless hGroup.empty?
               @xml.tag!('mrc:attributeGroup') do
                  groupClass.writeXML(hGroup, outContext)
               end
            end
         end
         if aGroups.empty? && @hResponseObj[:writerShowTags]
            @xml.tag!('mrc:attributeGroup')
         end

         hImage = hCoverage[:imageDescription]
         unless hImage.empty?

            # image description - illumination elevation angle
            unless hImage[:illuminationElevationAngle].nil?
               @xml.tag!('mrc:illuminationElevationAngle') do
                  @xml.tag!('gco:Real', hImage[:illuminationElevationAngle])
               end
            end
            if hImage[:illuminationElevationAngle].nil? && @hResponseObj[:writerShowTags]
               @xml.tag!('mrc:illuminationElevationAngle')
            end

            # image description - illumination azimuth angle
            unless hImage[:illuminationAzimuthAngle].nil?
               @xml.tag!('mrc:illuminationAzimuthAngle') do
                  @xml.tag!('gco:Real', hImage[:illuminationAzimuthAngle])
               end
            end
            if hImage[:illuminationAzimuthAngle].nil? && @hResponseObj[:writerShowTags]
               @xml.tag!('mrc:illuminationAzimuthAngle')
            end

            # image description - image condition {MD_ImageConditionCode}
            unless hImage[:imagingCondition].nil?
               @xml.tag!('mrc:imagingCondition') do
                  codelistClass.writeXML('mrc', 'iso_imageCondition', hImage[:imagingCondition])
               end
            end
            if hImage[:imagingCondition].nil? && @hResponseObj[:writerShowTags]
               @xml.tag!('mrc:imagingCondition')
            end

            # image description - image quality code {MD_Identifier}
            unless hImage[:imageQualityCode].empty?
               @xml.tag!('mrc:imageQualityCode') do
                  identifierClass.writeXML(hImage[:imageQualityCode], 'image quality code')
               end
            end
            if hImage[:imageQualityCode].empty? && @hResponseObj[:writerShowTags]
               @xml.tag!('mrc:imageQualityCode')
            end

            # image description - cloud cover percentage
            unless hImage[:cloudCoverPercent].nil?
               @xml.tag!('mrc:cloudCoverPercentage') do
                  @xml.tag!('gco:Real', hImage[:cloudCoverPercent])
               end
            end
            if hImage[:cloudCoverPercent].nil? && @hResponseObj[:writerShowTags]
               @xml.tag!('mrc:cloudCoverPercentage')
            end

            # image description - compression generation quality
            unless hImage[:compressionQuantity].nil?
               @xml.tag!('mrc:compressionGenerationQuantity') do
                  @xml.tag!('gco:Integer', hImage[:compressionQuantity])
               end
            end
            if hImage[:compressionQuantity].nil? && @hResponseObj[:writerShowTags]
               @xml.tag!('mrc:compressionGenerationQuantity')
            end

            # image description - triangulation indicator
            @xml.tag!('mrc:triangulationIndicator') do
               @xml.tag!('gco:Boolean', hImage[:triangulationIndicator])
            end

            # image description - radiometric calibration data availability
            @xml.tag!('mrc:radiometricCalibrationDataAvailability') do
               @xml.tag!('gco:Boolean', hImage[:radiometricCalibrationAvailable])
            end

            # image description - camera calibration information availability
            @xml.tag!('mrc:cameraCalibrationInformationAvailability') do
               @xml.tag!('gco:Boolean', hImage[:cameraCalibrationAvailable])
            end

            # image description - film distortion information availability
            @xml.tag!('mrc:filmDistortionInformationAvailability') do
               @xml.tag!('gco:Boolean', hImage[:filmDistortionAvailable])
            end

            # image description - lens distortion information availability
            @xml.tag!('mrc:lensDistortionInformationAvailability') do
               @xml.tag!('gco:Boolean', hImage[:lensDistortionAvailable])
            end

         end

      end

   end # tag MD_ImageDescription
end