Skip to content

Commit

Permalink
Merge branch 'feature/acquisition-iso-3-writer' into feature/acquisition
Browse files Browse the repository at this point in the history
  • Loading branch information
J-Oliveros committed Jun 18, 2024
2 parents a925c26 + 787b040 commit ed953f5
Show file tree
Hide file tree
Showing 15 changed files with 1,270 additions and 0 deletions.
103 changes: 103 additions & 0 deletions lib/adiwg/mdtranslator/writers/iso19115_3/classes/class_acquisition.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,103 @@
require_relative 'class_scope'
require_relative 'class_plan'
require_relative 'class_requirement'
require_relative 'class_environment'
require_relative 'class_instrument'
require_relative 'class_objective'
require_relative 'class_operation'
require_relative 'class_platform'

module ADIWG
module Mdtranslator
module Writers
module Iso19115_3

class MI_AcquisitionInformation
def initialize(xml, hResponseObj)
@xml = xml
@hResponseObj = hResponseObj
end

def writeXML(hAcquisition)

scopeClass = MD_Scope.new(@xml, @hResponseObj)
planClass = MI_Plan.new(@xml, @hResponseObj)
requirementClass = MI_Requirement.new(@xml, @hResponseObj)
environmentClass = MI_EnvironmentalRecord.new(@xml, @hResponseObj)
instrumentClass = MI_Instrument.new(@xml, @hResponseObj)
objectiveClass = MI_Objective.new(@xml, @hResponseObj)
operationClass = MI_Operation.new(@xml, @hResponseObj)
platformClass = MI_Platform.new(@xml, @hResponseObj)

unless hAcquisition.empty?
@xml.tag!('mac:MI_AcquisitionInformation') do
unless hAcquisition[:scope].empty?
@xml.tag!('mac:scope') do
scopeClass.writeXML(hAcquisition[:scope])
end
end

unless hAcquisition[:plans].empty?
hAcquisition[:plans].each do |hPlan|
@xml.tag!('mac:acquisitionPlan') do
planClass.writeXML(hPlan)
end
end
end

unless hAcquisition[:requirements].empty?
hAcquisition[:requirements].each do |hRequirement|
@xml.tag!('mac:acquisitionRequirement') do
requirementClass.writeXML(hRequirement)
end
end
end

unless hAcquisition[:environment].empty?
@xml.tag!('mac:environmentalConditions') do
environmentClass.writeXML(hAcquisition[:environment])
end
end

unless hAcquisition[:instruments].empty?
hAcquisition[:instruments].each do |hInstrument|
@xml.tag!('mac:instrument') do
instrumentClass.writeXML(hInstrument)
end
end
end

unless hAcquisition[:objectives].empty?
hAcquisition[:objectives].each do |hObjective|
@xml.tag!('mac:objective') do
objectiveClass.writeXML(hObjective)
end
end
end

unless hAcquisition[:operations].empty?
hAcquisition[:operations].each do |hOperation|
@xml.tag!('mac:operation') do
operationClass.writeXML(hOperation)
end
end
end

unless hAcquisition[:platforms].empty?
hAcquisition[:platforms].each do |hPlatform|
@xml.tag!('mac:platform') do
platformClass.writeXML(hPlatform)
end
end
end

end
end

end

end
end
end
end
end
Original file line number Diff line number Diff line change
@@ -0,0 +1,82 @@
module ADIWG
module Mdtranslator
module Writers
module Iso19115_3

class MI_EnvironmentalRecord
def initialize(xml, hResponseObj)
@xml = xml
@hResponseObj = hResponseObj
end

def writeXML(hEnvironment)

@xml.tag!('mac:MI_EnvironmentalRecord') do
unless hEnvironment[:averageAirTemperature].nil?
@xml.tag!('mac:averageAirTemperature') do
@xml.tag!('gco:Real', hEnvironment[:averageAirTemperature])
end
else
if @hResponseObj[:writerShowTags]
@xml.tag!('mac:averageAirTemperature')
end
end

unless hEnvironment[:maxRelativeHumidity].nil?
@xml.tag!('mac:maxRelativeHumidity') do
@xml.tag!('gco:Real', hEnvironment[:maxRelativeHumidity])
end
else
if @hResponseObj[:writerShowTags]
@xml.tag!('mac:maxRelativeHumidity')
end
end

unless hEnvironment[:maxAltitude].nil?
@xml.tag!('mac:maxAltitude') do
@xml.tag!('gco:Real', hEnvironment[:maxAltitude])
end
else
if @hResponseObj[:writerShowTags]
@xml.tag!('mac:maxAltitude')
end
end

unless hEnvironment[:meteorologicalConditions].nil?
@xml.tag!('mac:meteorologicalConditions') do
@xml.tag!('gco:CharacterString', hEnvironment[:meteorologicalConditions])
end
else
if @hResponseObj[:writerShowTags]
@xml.tag!('mac:meteorologicalConditions')
end
end

unless hEnvironment[:solarAzimuth].nil?
@xml.tag!('mac:solarAzimuth') do
@xml.tag!('gco:Real', hEnvironment[:solarAzimuth])
end
else
if @hResponseObj[:writerShowTags]
@xml.tag!('mac:solarAzimuth')
end
end

unless hEnvironment[:solarElevation].nil?
@xml.tag!('mac:solarElevation') do
@xml.tag!('gco:Real', hEnvironment[:solarElevation])
end
else
if @hResponseObj[:writerShowTags]
@xml.tag!('mac:solarElevation')
end
end
end

end
end

end
end
end
end
123 changes: 123 additions & 0 deletions lib/adiwg/mdtranslator/writers/iso19115_3/classes/class_event.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,123 @@
require_relative 'class_identifier'
require_relative 'class_codelist'
require_relative 'class_gcoDateTime'
require_relative 'class_objective'
require_relative 'class_pass'
require_relative 'class_instrument'

module ADIWG
module Mdtranslator
module Writers
module Iso19115_3

class MI_Event
def initialize(xml, hResponseObj)
@xml = xml
@hResponseObj = hResponseObj
end

def writeXML(hEvent)

identifierClass = Identifier.new(@xml, @hResponseObj)
codelistClass = MD_Codelist.new(@xml, @hResponseObj)
gcoDateTimeClass = GcoDateTime.new(@xml, @hResponseObj)
objectiveClass = MI_Objective.new(@xml, @hResponseObj)
passClass = MI_Pass.new(@xml, @hResponseObj)
instrumentClass = MI_Instrument.new(@xml, @hResponseObj)

@xml.tag!('mac:MI_Event', id: hEvent[:eventId]) do

unless hEvent[:identifier].empty?
@xml.tag!('mac:identifier') do
identifierClass.writeXML(hEvent[:identifier])
end
else
if @hResponseObj[:writerShowTags]
@xml.tag!('mac:identifier')
end
end

unless hEvent[:trigger].nil?
@xml.tag!('mac:trigger') do
codelistClass.writeXML('mac', 'iso_triggerCode', hEvent[:trigger])
end
else
if @hResponseObj[:writerShowTags]
@xml.tag!('mac:trigger')
end
end

unless hEvent[:context].nil?
@xml.tag!('mac:context') do
codeListClass.writeXML('mac', 'iso_contextCode', hEvent[:context])
end
else
if @hResponseObj[:writerShowTags]
@xml.tag!('mac:context')
end
end

unless hEvent[:sequence].nil?
@xml.tag!('mac:sequence') do
codelistClass.writeXML('mac', 'iso_sequenceCode', hEvent[:sequence])
end
else
if @hResponseObj[:writerShowTags]
@xml.tag!('mac:sequence')
end
end

unless hEvent[:time].nil?
@xml.tag!('mac:time') do
gcoDateTimeClass.writeXML(hEvent[:time])
end
else
if @hResponseObj[:writerShowTags]
@xml.tag!('mac:time')
end
end

unless hEvent[:expectedObjectives].empty?
hEvent[:expectedObjectives].each do |hObjective|
@xml.tag!('mac:expectedObjective') do
objectiveClass.writeXML(hObjective)
end
end
else
if @hResponseObj[:writerShowTags]
@xml.tag!('mac:expectedObjective')
end
end

unless hEvent[:relatedPass].empty?
hEvent[:relatedPass].each do |hPass|
@xml.tag!('mac:relatedPass') do
passClass.writeXML(hPass)
end
end
else
if @hResponseObj[:writerShowTags]
@xml.tag!('mac:relatedPass')
end
end

unless hEvent[:relatedSensors].empty?
hEvent[:relatedSensors].each do |hSensor|
@xml.tag!('mac:relatedInstrument') do
instrumentClass.writeXML(hSensor)
end
end
else
if @hResponseObj[:writerShowTags]
@xml.tag!('mac:relatedInstrument')
end
end

end
end
end

end
end
end
end
Loading

0 comments on commit ed953f5

Please sign in to comment.