Module: ADIWG::Mdtranslator::Writers::Iso19115_2

Defined in:
lib/adiwg/mdtranslator/writers/iso19115_2/version.rb,
lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_crs.rb,
lib/adiwg/mdtranslator/writers/iso19115_2/iso19115_2_writer.rb,
lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_date.rb,
lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_grid.rb,
lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_image.rb,
lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_phone.rb,
lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_point.rb,
lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_scope.rb,
lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_usage.rb,
lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_extent.rb,
lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_format.rb,
lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_locale.rb,
lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_mdBand.rb,
lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_medium.rb,
lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_miBand.rb,
lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_series.rb,
lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_source.rb,
lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_address.rb,
lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_contact.rb,
lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_feature.rb,
lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_keyword.rb,
lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_lineage.rb,
lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_measure.rb,
lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_polygon.rb,
lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_baseUnit.rb,
lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_citation.rb,
lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_codelist.rb,
lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_fraction.rb,
lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_leSource.rb,
lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_liSource.rb,
lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_taxonomy.rb,
lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_vouchers.rb,
lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_algorithm.rb,
lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_attribute.rb,
lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_dimension.rb,
lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_extension.rb,
lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_hierarchy.rb,
lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_multiLine.rb,
lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_lineString.rb,
lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_miMetadata.rb,
lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_multiPoint.rb,
lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_processing.rb,
lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_resolution.rb,
lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_timePeriod.rb,
lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_boundingBox.rb,
lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_dataQuality.rb,
lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_derivedUnit.rb,
lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_distributor.rb,
lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_gcoDateTime.rb,
lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_maintenance.rb,
lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_processStep.rb,
lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_timeInstant.rb,
lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_distribution.rb,
lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_georectified.rb,
lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_mdIdentifier.rb,
lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_multiPolygon.rb,
lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_orderProcess.rb,
lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_rsIdentifier.rb,
lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_browseGraphic.rb,
lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_gmlIdentifier.rb,
lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_leProcessStep.rb,
lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_liProcessStep.rb,
lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_processReport.rb,
lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_definitionUnit.rb,
lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_onlineResource.rb,
lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_rangeDimension.rb,
lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_temporalExtent.rb,
lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_unitsOfMeasure.rb,
lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_useConstraints.rb,
lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_verticalExtent.rb,
lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_enumerationList.rb,
lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_referenceSystem.rb,
lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_taxonomicSystem.rb,
lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_transferOptions.rb,
lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_conventionalUnit.rb,
lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_geographicExtent.rb,
lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_geometricObjects.rb,
lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_georeferenceable.rb,
lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_legalConstraints.rb,
lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_obliqueLinePoint.rb,
lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_responsibleParty.rb,
lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_scopeDescription.rb,
lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_dataQualityReport.rb,
lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_featureCollection.rb,
lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_featureProperties.rb,
lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_geographicElement.rb,
lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_nominalResolution.rb,
lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_dataIdentification.rb,
lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_geometryCollection.rb,
lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_gridRepresentation.rb,
lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_coverageDescription.rb,
lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_ellipsoidParameters.rb,
lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_securityConstraints.rb,
lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_aggregateInformation.rb,
lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_projectionParameters.rb,
lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_vectorRepresentation.rb,
lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_spatialRepresentation.rb,
lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_taxonomicClassification.rb

Defined Under Namespace

Classes: Attribute, BaseUnit, CI_Address, CI_Citation, CI_Contact, CI_Date, CI_OnlineResource, CI_ResponsibleParty, CI_Series, CI_Telephone, ConventionalUnit, CoverageDescription, DQ_DataQuality, DQ_Scope, DataQualityReport, DerivedUnit, EX_Extent, EX_GeographicBoundingBox, EX_TemporalExtent, EX_VerticalExtent, Feature, FeatureCollection, FeatureProperties, GMLIdentifier, GcoDateTime, GeographicElement, GeographicExtent, GeometryCollection, Grid, Hierarchy, LE_Algorithm, LE_NominalResolution, LE_ProcessStep, LE_ProcessStepReport, LE_Processing, LE_Source, LI_Lineage, LI_ProcessStep, LI_Source, LineString, MD_AggregateInformation, MD_Band, MD_BrowseGraphic, MD_CRS, MD_Codelist, MD_Constraints, MD_DataIdentification, MD_DigitalTransferOptions, MD_Dimension, MD_Distribution, MD_Distributor, MD_EllipsoidParameters, MD_EnumerationList, MD_Format, MD_GeometricObjects, MD_Georectified, MD_Georeferenceable, MD_GridSpatialRepresentation, MD_Identifier, MD_Keywords, MD_LegalConstraints, MD_MaintenanceInformation, MD_Medium, MD_MetadataExtensionInformation, MD_ObliqueLinePoint, MD_ProjectionParameters, MD_RangeDimension, MD_ReferenceSystem, MD_RepresentativeFraction, MD_Resolution, MD_ScopeDescription, MD_SecurityConstraints, MD_StandardOrderProcess, MD_TaxonCl, MD_TaxonSys, MD_Usage, MD_VectorSpatialRepresentation, MD_Vouchers, MI_Band, MI_ImageDescription, MI_Metadata, Measure, MultiLineString, MultiPoint, MultiPolygon, PT_Locale, Point, Polygon, ProcessStep, RS_Identifier, Source, SpatialRepresentation, TaxonomicSystem, TimeInstant, TimePeriod, UnitDefinition, UnitsOfMeasure

Constant Summary collapse

VERSION =

current version of ISO 19115-2 writer

'2.2.0'

Class Method Summary collapse

Class Method Details

.findMessage(messageId) ⇒ Object



63
64
65
66
67
68
69
70
# File 'lib/adiwg/mdtranslator/writers/iso19115_2/iso19115_2_writer.rb', line 63

def self.findMessage(messageId)
   @aMessagesList.each do |hMessage|
      if hMessage['id'] == messageId
         return hMessage['message']
      end
   end
   return nil
end

.getContact(contactId) ⇒ Object

find contact in contact array and return the contact hash



52
53
54
55
56
57
58
59
60
61
# File 'lib/adiwg/mdtranslator/writers/iso19115_2/iso19115_2_writer.rb', line 52

def self.getContact(contactId)

   @contacts.each do |contact|
      if contact[:contactId] == contactId
         return contact
      end
   end
   return {}

end

.issueError(messageId, context = nil) ⇒ Object



72
73
74
75
76
77
78
79
# File 'lib/adiwg/mdtranslator/writers/iso19115_2/iso19115_2_writer.rb', line 72

def self.issueError(messageId, context = nil)
   message = findMessage(messageId)
   unless message.nil?
      message += ': CONTEXT is ' + context unless context.nil?
      @hResponseObj[:writerMessages] << 'ERROR: ISO-19115-2 writer: ' + message
      @hResponseObj[:writerPass] = false
   end
end

.issueNotice(messageId, context = nil) ⇒ Object



98
99
100
101
102
103
104
# File 'lib/adiwg/mdtranslator/writers/iso19115_2/iso19115_2_writer.rb', line 98

def self.issueNotice(messageId, context = nil)
   message = findMessage(messageId)
   unless message.nil?
      message += ': CONTEXT is ' + context unless context.nil?
      @hResponseObj[:writerMessages] << 'NOTICE: ISO-19115-2 writer: ' + message
   end
end

.issueWarning(messageId, tag = nil, context = nil) ⇒ Object



81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
# File 'lib/adiwg/mdtranslator/writers/iso19115_2/iso19115_2_writer.rb', line 81

def self.issueWarning(messageId, tag = nil, context = nil)
   message = findMessage(messageId)
   unless message.nil?
      message += ': CONTEXT is ' + context unless context.nil?
      if @hResponseObj[:writerForceValid]
         if tag.nil?
            issueError(messageId, context)
         else
            @xml.tag!(tag, {'gco:nilReason' => 'missing'})
            @hResponseObj[:writerMessages] << 'WARNING: ISO-19115-2 writer: ' + message
         end
      else
         @hResponseObj[:writerMessages] << 'WARNING: ISO-19115-2 writer: ' + message
      end
   end
end

.startWriter(intObj, hResponseObj) ⇒ Object



25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
# File 'lib/adiwg/mdtranslator/writers/iso19115_2/iso19115_2_writer.rb', line 25

def self.startWriter(intObj, hResponseObj)

   # make contact available to the instance
   @contacts = intObj[:contacts]
   @hResponseObj = hResponseObj

   # load error message array
   file = File.join(File.dirname(__FILE__), 'iso19115_2_writer_messages_eng') + '.yml'
   hMessageList = YAML.load_file(file)
   @aMessagesList = hMessageList['messageList']

   # set the format of the output file based on the writer specified
   hResponseObj[:writerOutputFormat] = 'xml'
   hResponseObj[:writerVersion] = ADIWG::Mdtranslator::Writers::Iso19115_2::VERSION

   # create new XML document
   @xml = Builder::XmlMarkup.new(indent: 3)

   # start writing the ISO 19115-2 XML record
   metadataWriter = MI_Metadata.new(@xml, hResponseObj)
    = metadataWriter.writeXML(intObj)

   return 

end