class ADIWG::Mdtranslator::Writers::Iso19115_1::ConventionalUnit

Public Class Methods

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

Public Instance Methods

writeXML(hConv) click to toggle source
# File lib/adiwg/mdtranslator/writers/iso19115_1/classes/class_conventionalUnit.rb, line 19
def writeXML(hConv)

   # create and identity for the unit
   @hResponseObj[:writerMissingIdCount] = @hResponseObj[:writerMissingIdCount].succ
   unitID = 'unit' + @hResponseObj[:writerMissingIdCount]

   @xml.tag!('gml:ConventionalUnit', {'gml:id' => unitID}) do
      @xml.tag!('gml:identifier', {'codeSpace' => hConv[:codeSpace]}, hConv[:identifier])
      @xml.tag!('gml:name', hConv[:name])
      @xml.tag!('gml:catalogSymbol', hConv[:catalogSymbol])
      @xml.tag!('gml:conversionToPreferredUnit', {'uom' => hConv[:preferredUnit]}) do

         # two methods of conversion are available
         # factor and formula
         if !hConv[:factor].nil?
            # factor:
            #    y = factor * x
            #    y is in preferred units
            #    x is in provided units
            #    factor is conversion to preferred units
            @xml.tag!('gml:factor', hConv[:factor])
         else
            # formula:
            #    y = (a + bx) / (c + dx)
            #    y is in preferred units
            #    x is in provided units
            #    a,b,c,d are constants to convert to preferred units
            @xml.tag!('gml:formula') do
               @xml.tag!('gml:a', hConv[:a])
               @xml.tag!('gml:b', hConv[:b])
               @xml.tag!('gml:c', hConv[:c])
               @xml.tag!('gml:d', hConv[:d])
            end
         end

      end
   end

end