adiwg-mdtranslator 2.13.3 → 2.14.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (95) hide show
  1. checksums.yaml +4 -4
  2. data/.travis.yml +3 -3
  3. data/CHANGELOG.md +11 -4
  4. data/Rakefile +14 -14
  5. data/adiwg-mdtranslator.gemspec +3 -3
  6. data/lib/adiwg/mdtranslator/internal/internal_metadata_obj.rb +14 -14
  7. data/lib/adiwg/mdtranslator/readers/fgdc/modules/gridSystems/grid_equalArcSecond.rb +69 -0
  8. data/lib/adiwg/mdtranslator/readers/fgdc/modules/gridSystems/grid_other.rb +42 -0
  9. data/lib/adiwg/mdtranslator/readers/fgdc/modules/gridSystems/grid_statePlane.rb +87 -0
  10. data/lib/adiwg/mdtranslator/readers/fgdc/modules/gridSystems/grid_ups.rb +58 -0
  11. data/lib/adiwg/mdtranslator/readers/fgdc/modules/gridSystems/grid_utm.rb +58 -0
  12. data/lib/adiwg/mdtranslator/readers/fgdc/modules/mapProjections/projection_albers.rb +7 -7
  13. data/lib/adiwg/mdtranslator/readers/fgdc/modules/mapProjections/projection_azimuthEquidistant.rb +6 -6
  14. data/lib/adiwg/mdtranslator/readers/fgdc/modules/mapProjections/projection_common.rb +23 -22
  15. data/lib/adiwg/mdtranslator/readers/fgdc/modules/mapProjections/projection_equidistantConic.rb +7 -7
  16. data/lib/adiwg/mdtranslator/readers/fgdc/modules/mapProjections/projection_equirectangular.rb +6 -6
  17. data/lib/adiwg/mdtranslator/readers/fgdc/modules/mapProjections/projection_generalVertical.rb +7 -7
  18. data/lib/adiwg/mdtranslator/readers/fgdc/modules/mapProjections/projection_gnomonic.rb +6 -6
  19. data/lib/adiwg/mdtranslator/readers/fgdc/modules/mapProjections/projection_lambertConic.rb +7 -7
  20. data/lib/adiwg/mdtranslator/readers/fgdc/modules/mapProjections/projection_lambertEqualArea.rb +6 -6
  21. data/lib/adiwg/mdtranslator/readers/fgdc/modules/mapProjections/projection_mercator.rb +7 -7
  22. data/lib/adiwg/mdtranslator/readers/fgdc/modules/mapProjections/projection_millerCylinder.rb +5 -5
  23. data/lib/adiwg/mdtranslator/readers/fgdc/modules/mapProjections/projection_modifiedAlaska.rb +4 -4
  24. data/lib/adiwg/mdtranslator/readers/fgdc/modules/mapProjections/projection_obliqueMercator.rb +8 -8
  25. data/lib/adiwg/mdtranslator/readers/fgdc/modules/mapProjections/projection_orthographic.rb +6 -6
  26. data/lib/adiwg/mdtranslator/readers/fgdc/modules/mapProjections/projection_parameters.rb +20 -20
  27. data/lib/adiwg/mdtranslator/readers/fgdc/modules/mapProjections/projection_polarStereo.rb +8 -8
  28. data/lib/adiwg/mdtranslator/readers/fgdc/modules/mapProjections/projection_polyconic.rb +6 -6
  29. data/lib/adiwg/mdtranslator/readers/fgdc/modules/mapProjections/projection_robinson.rb +5 -5
  30. data/lib/adiwg/mdtranslator/readers/fgdc/modules/mapProjections/projection_sinusoidal.rb +5 -5
  31. data/lib/adiwg/mdtranslator/readers/fgdc/modules/mapProjections/projection_spaceOblique.rb +6 -6
  32. data/lib/adiwg/mdtranslator/readers/fgdc/modules/mapProjections/projection_stereographic.rb +6 -6
  33. data/lib/adiwg/mdtranslator/readers/fgdc/modules/mapProjections/projection_transverseMercator.rb +7 -7
  34. data/lib/adiwg/mdtranslator/readers/fgdc/modules/mapProjections/projection_vanDerGrinten.rb +5 -5
  35. data/lib/adiwg/mdtranslator/readers/fgdc/modules/module_geodeticReference.rb +15 -7
  36. data/lib/adiwg/mdtranslator/readers/fgdc/modules/module_geographicResolution.rb +6 -3
  37. data/lib/adiwg/mdtranslator/readers/fgdc/modules/module_horizontalPlanar.rb +8 -6
  38. data/lib/adiwg/mdtranslator/readers/fgdc/modules/module_horizontalReference.rb +1 -1
  39. data/lib/adiwg/mdtranslator/readers/fgdc/modules/{module_mapLocalPlanar.rb → module_localPlanar.rb} +16 -8
  40. data/lib/adiwg/mdtranslator/readers/fgdc/modules/module_localSystem.rb +23 -8
  41. data/lib/adiwg/mdtranslator/readers/fgdc/modules/module_mapGridSystem.rb +21 -144
  42. data/lib/adiwg/mdtranslator/readers/fgdc/modules/module_mapProjection.rb +48 -3
  43. data/lib/adiwg/mdtranslator/readers/fgdc/modules/{module_mapCoordinateInfo.rb → module_planarCoordinateInfo.rb} +23 -11
  44. data/lib/adiwg/mdtranslator/readers/fgdc/modules/module_taxonomy.rb +1 -1
  45. data/lib/adiwg/mdtranslator/readers/fgdc/modules/module_verticalAltitude.rb +5 -2
  46. data/lib/adiwg/mdtranslator/readers/fgdc/modules/module_verticalDepth.rb +6 -2
  47. data/lib/adiwg/mdtranslator/readers/mdJson/mdJson_reader_messages_eng.yml +20 -5
  48. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_geodetic.rb +41 -8
  49. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_localProjection.rb +57 -0
  50. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_obliqueLinePoint.rb +6 -6
  51. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_projectionParameters.rb +36 -53
  52. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_referenceSystemParameters.rb +1 -1
  53. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_taxonomy.rb +39 -13
  54. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_verticalDatum.rb +20 -8
  55. data/lib/adiwg/mdtranslator/version.rb +11 -1
  56. data/lib/adiwg/mdtranslator/writers/fgdc/classes/class_geodeticReference.rb +8 -7
  57. data/lib/adiwg/mdtranslator/writers/fgdc/classes/class_geographicResolution.rb +1 -1
  58. data/lib/adiwg/mdtranslator/writers/fgdc/classes/class_localPlanar.rb +63 -0
  59. data/lib/adiwg/mdtranslator/writers/fgdc/classes/class_localSystem.rb +30 -15
  60. data/lib/adiwg/mdtranslator/writers/fgdc/classes/class_mapProjectionTags.rb +164 -109
  61. data/lib/adiwg/mdtranslator/writers/fgdc/classes/class_planarGrid.rb +60 -61
  62. data/lib/adiwg/mdtranslator/writers/fgdc/classes/class_planarInfo.rb +12 -12
  63. data/lib/adiwg/mdtranslator/writers/fgdc/classes/class_planarMap.rb +87 -99
  64. data/lib/adiwg/mdtranslator/writers/fgdc/classes/class_planarReference.rb +16 -41
  65. data/lib/adiwg/mdtranslator/writers/fgdc/classes/class_spatialReference.rb +12 -11
  66. data/lib/adiwg/mdtranslator/writers/fgdc/classes/class_taxonomy.rb +9 -4
  67. data/lib/adiwg/mdtranslator/writers/fgdc/classes/class_taxonomySystem.rb +2 -3
  68. data/lib/adiwg/mdtranslator/writers/fgdc/classes/class_verticalDatum.rb +8 -7
  69. data/lib/adiwg/mdtranslator/writers/fgdc/fgdc_writer_messages_eng.yml +13 -6
  70. data/lib/adiwg/mdtranslator/writers/html/sections/html_geodeticParameters.rb +16 -30
  71. data/lib/adiwg/mdtranslator/writers/html/sections/html_identifier.rb +8 -0
  72. data/lib/adiwg/mdtranslator/writers/html/sections/html_obliqueLinePoint.rb +4 -4
  73. data/lib/adiwg/mdtranslator/writers/html/sections/html_projectionParameters.rb +68 -57
  74. data/lib/adiwg/mdtranslator/writers/html/sections/html_resourceInfo.rb +11 -6
  75. data/lib/adiwg/mdtranslator/writers/html/sections/html_spatialReference.rb +9 -0
  76. data/lib/adiwg/mdtranslator/writers/html/sections/html_taxonomy.rb +13 -12
  77. data/lib/adiwg/mdtranslator/writers/html/sections/html_usage.rb +3 -3
  78. data/lib/adiwg/mdtranslator/writers/html/sections/html_verticalDatumParameters.rb +9 -15
  79. data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_crs.rb +12 -15
  80. data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_dataIdentification.rb +9 -8
  81. data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_obliqueLinePoint.rb +6 -6
  82. data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_referenceSystem.rb +2 -1
  83. data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_taxonomy.rb +21 -10
  84. data/lib/adiwg/mdtranslator/writers/iso19115_2/iso19115_2_writer_messages_eng.yml +4 -0
  85. data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_geodeticParameters.rb +2 -3
  86. data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_identifier.rb +4 -2
  87. data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_localProjection.rb +31 -0
  88. data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_obliqueLinePoint.rb +2 -2
  89. data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_projectionParameters.rb +5 -9
  90. data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_taxonomy.rb +6 -5
  91. data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_verticalDatumParameters.rb +2 -2
  92. data/lib/adiwg/mdtranslator/writers/sbJson/sbJson_writer.rb +10 -0
  93. data/lib/adiwg/mdtranslator/writers/sbJson/sections/sbJson_contact.rb +21 -0
  94. metadata +17 -10
  95. data/lib/adiwg/mdtranslator/writers/fgdc/classes/class_planarLocal.rb +0 -42
@@ -22,25 +22,25 @@ module ADIWG
22
22
  @xml.tag!('gmd:MD_ObliqueLinePoint') do
23
23
 
24
24
  # oblique line point - azimuth line latitude {integer}
25
- r = hLinePoint[:azimuthLineLatitude]
25
+ r = hLinePoint[:obliqueLineLatitude]
26
26
  unless r.nil?
27
- @xml.tag!('gmd:azimuthLineLatitude') do
27
+ @xml.tag!('gmd:obliqueLineLatitude') do
28
28
  @xml.tag!('gco:real', r.to_s)
29
29
  end
30
30
  end
31
31
  if r.nil? && @hResponseObj[:writerShowTags]
32
- @xml.tag!('gmd:azimuthLineLatitude')
32
+ @xml.tag!('gmd:obliqueLineLatitude')
33
33
  end
34
34
 
35
35
  # oblique line point - azimuth line longitude {real}
36
- r = hLinePoint[:azimuthLineLongitude]
36
+ r = hLinePoint[:obliqueLineLongitude]
37
37
  unless r.nil?
38
- @xml.tag!('gmd:azimuthLineLongitude') do
38
+ @xml.tag!('gmd:obliqueLineLongitude') do
39
39
  @xml.tag!('gco:real', r.to_s)
40
40
  end
41
41
  end
42
42
  if r.nil? && @hResponseObj[:writerShowTags]
43
- @xml.tag!('gmd:azimuthLineLongitude')
43
+ @xml.tag!('gmd:obliqueLineLongitude')
44
44
  end
45
45
 
46
46
  end # gmd:MD_ObliqueLinePoint
@@ -3,6 +3,7 @@
3
3
  # 19115-2 output for ISO 19115-2 XML
4
4
 
5
5
  # History:
6
+ # Stan Smith 2018-10-17 refactor to support schema 2.6.0 changes to projection
6
7
  # Stan Smith 2017-10-26 added crs class
7
8
  # Stan Smith 2016-12-07 refactored for mdTranslator/mdJson 2.0
8
9
  # Stan Smith 2015-08-28 convert referenceSystem to resourceId and pass to RS_Identifier
@@ -53,7 +54,7 @@ module ADIWG
53
54
  end
54
55
 
55
56
  # CRS identifiers and parameters
56
- if refClass == 'gmd:MD_CRS'
57
+ unless hSystem[:systemParameterSet].empty?
57
58
  crsClass.writeXML(hSystem[:systemParameterSet])
58
59
  end
59
60
 
@@ -2,6 +2,7 @@
2
2
  # 19115-2 writer output in XML
3
3
 
4
4
  # History:
5
+ # Stan Smith 2018-10-19 refactor for mdJson schema 2.6.0
5
6
  # Stan Smith 2018-04-10 add error and warning messaging
6
7
  # Stan Smith 2016-12-09 refactored for mdTranslator/mdJson 2.0
7
8
  # Stan Smith 2015-07-14 refactored to eliminate namespace globals $WriterNS and $IsoNS
@@ -11,6 +12,7 @@
11
12
  # Stan Smith 2014-07-08 modify require statements to function in RubyGem structure
12
13
  # Stan Smith 2013-11-19 original script.
13
14
 
15
+ require 'adiwg/mdtranslator/internal/internal_metadata_obj'
14
16
  require_relative '../iso19115_2_writer'
15
17
  require_relative 'class_taxonomicSystem'
16
18
  require_relative 'class_rsIdentifier'
@@ -34,6 +36,7 @@ module ADIWG
34
36
  def writeXML(hSystem)
35
37
 
36
38
  # classes used
39
+ intMetadataClass = InternalMetadata.new
37
40
  taxonomicClass = TaxonomicSystem.new(@xml, @hResponseObj)
38
41
  identifierClass = RS_Identifier.new(@xml, @hResponseObj)
39
42
  partyClass = CI_ResponsibleParty.new(@xml, @hResponseObj)
@@ -64,16 +67,20 @@ module ADIWG
64
67
  @xml.tag!('gmd:taxongen')
65
68
  end
66
69
 
67
- # taxon system - identification reference (required) [{RS_Identifier}]
68
- aIdentifier = hSystem[:idReferences]
69
- aIdentifier.each do |hIdentifier|
70
- unless hIdentifier.empty?
70
+ # taxon system - identification reference (required) [{citation}]
71
+ # convert to RS_Identifier
72
+ aCitations = hSystem[:idReferences]
73
+ aCitations.each do |hCitation|
74
+ unless hCitation.empty?
75
+ hIdentifier = intMetadataClass.newIdentifier
76
+ hIdentifier[:identifier] = 'missing'
77
+ hIdentifier[:citation] = hCitation
71
78
  @xml.tag!('gmd:idref') do
72
79
  identifierClass.writeXML(hIdentifier, 'taxon identification reference')
73
80
  end
74
81
  end
75
82
  end
76
- if aIdentifier.empty?
83
+ if aCitations.empty?
77
84
  @NameSpace.issueWarning(311, 'gmd:idref')
78
85
  end
79
86
 
@@ -126,14 +133,18 @@ module ADIWG
126
133
  @xml.tag!('gmd:voucher')
127
134
  end
128
135
 
129
- # taxon system - taxonomy classification [] (required)
130
- hTaxClass = hSystem[:taxonClass]
131
- unless hTaxClass.empty?
136
+ # taxon system - taxonomy classification [0] (required)
137
+ aTaxClass = hSystem[:taxonClasses]
138
+ unless aTaxClass.empty?
132
139
  @xml.tag!('gmd:taxonCl') do
133
- taxonClass.writeXML(hTaxClass)
140
+ taxonClass.writeXML(aTaxClass[0])
141
+ end
142
+ if aTaxClass.length > 1
143
+ @NameSpace.issueNotice(315, 'taxonomy')
144
+ @NameSpace.issueNotice(316, 'taxonomy')
134
145
  end
135
146
  end
136
- if hTaxClass.empty?
147
+ if aTaxClass.empty?
137
148
  @NameSpace.issueWarning(314, 'gmd:taxonCl')
138
149
  end
139
150
 
@@ -22,6 +22,8 @@ messageList:
22
22
  - {id: 50, message: "resource citation is missing"}
23
23
  - {id: 51, message: "resource abstract is missing"}
24
24
  - {id: 52, message: "resource point of contact is missing"}
25
+ - {id: 53, message: "multiple taxonomies were provided, ISO 19115-2 allows only one"}
26
+ - {id: 54, message: "the first taxonomy was written to the metadata record"}
25
27
 
26
28
  - {id: 60, message: "data quality scope is missing"}
27
29
 
@@ -92,6 +94,8 @@ messageList:
92
94
  - {id: 312, message: "taxonomic observer is missing"}
93
95
  - {id: 313, message: "taxonomic procedures are missing"}
94
96
  - {id: 314, message: "taxonomic classification is missing"}
97
+ - {id: 315, message: "multiple taxonomic classifications were specified, ISO 19115-2 supports only one"}
98
+ - {id: 316, message: "the first taxonomic classification was written to the metadata record"}
95
99
 
96
100
  - {id: 320, message: "resource specific usage is missing"}
97
101
  - {id: 321, message: "resource specific usage contact is missing"}
@@ -1,7 +1,8 @@
1
1
  # mdJson 2.0 writer - spatial reference system ellipsoid parameters
2
2
 
3
3
  # History:
4
- # Stan Smith 2017-10-24 original script
4
+ # Stan Smith 2018-09-27 deprecated datumName and ellipsoidName
5
+ # Stan Smith 2017-10-24 original script
5
6
 
6
7
  require 'jbuilder'
7
8
  require_relative 'mdJson_identifier'
@@ -17,9 +18,7 @@ module ADIWG
17
18
 
18
19
  Jbuilder.new do |json|
19
20
  json.datumIdentifier Identifier.build(hGeodetic[:datumIdentifier]) unless hGeodetic[:datumIdentifier].empty?
20
- json.datumName hGeodetic[:datumName]
21
21
  json.ellipsoidIdentifier Identifier.build(hGeodetic[:ellipsoidIdentifier]) unless hGeodetic[:ellipsoidIdentifier].empty?
22
- json.ellipsoidName hGeodetic[:ellipsoidName]
23
22
  json.semiMajorAxis hGeodetic[:semiMajorAxis]
24
23
  json.axisUnits hGeodetic[:axisUnits]
25
24
  json.denominatorOfFlatteningRatio hGeodetic[:denominatorOfFlatteningRatio]
@@ -1,8 +1,9 @@
1
1
  # mdJson 2.0 writer tests - identifier
2
2
 
3
3
  # History:
4
- # Stan Smith 2017-03-13 refactored for mdJson/mdTranslator 2.0
5
- # Josh Bradley original script
4
+ # Stan Smith 2018-10-18 added 'name' for projectionIdentifier & gridIdentifier
5
+ # Stan Smith 2017-03-13 refactored for mdJson/mdTranslator 2.0
6
+ # Josh Bradley original script
6
7
 
7
8
  require 'jbuilder'
8
9
  require_relative 'mdJson_citation'
@@ -20,6 +21,7 @@ module ADIWG
20
21
  json.identifier hIdentifier[:identifier]
21
22
  json.namespace hIdentifier[:namespace]
22
23
  json.version hIdentifier[:version]
24
+ json.name hIdentifier[:name]
23
25
  json.description hIdentifier[:description]
24
26
  json.authority Citation.build(hIdentifier[:citation]) unless hIdentifier[:citation].empty?
25
27
  end
@@ -0,0 +1,31 @@
1
+ # mdJson 2.0 writer - spatial reference system projection parameters
2
+
3
+ # History:
4
+ # Stan Smith 2018 10-18 original script
5
+
6
+ require 'jbuilder'
7
+
8
+ module ADIWG
9
+ module Mdtranslator
10
+ module Writers
11
+ module MdJson
12
+
13
+ module LocalProjection
14
+
15
+ @Namespace = ADIWG::Mdtranslator::Writers::MdJson
16
+
17
+ def self.build(hLocal)
18
+
19
+ Jbuilder.new do |json|
20
+ json.fixedToEarth hLocal[:fixedToEarth]
21
+ json.description hLocal[:description]
22
+ json.georeference hLocal[:georeference]
23
+ end
24
+
25
+ end # build
26
+ end # LocalProjection
27
+
28
+ end
29
+ end
30
+ end
31
+ end
@@ -15,8 +15,8 @@ module ADIWG
15
15
  def self.build(hLinePoint)
16
16
 
17
17
  Jbuilder.new do |json|
18
- json.azimuthLineLatitude hLinePoint[:azimuthLineLatitude]
19
- json.azimuthLineLongitude hLinePoint[:azimuthLineLongitude]
18
+ json.obliqueLineLatitude hLinePoint[:obliqueLineLatitude]
19
+ json.obliqueLineLongitude hLinePoint[:obliqueLineLongitude]
20
20
  end
21
21
 
22
22
  end # build
@@ -1,11 +1,13 @@
1
1
  # mdJson 2.0 writer - spatial reference system projection parameters
2
2
 
3
3
  # History:
4
- # Stan Smith 2017-10-24 original script
4
+ # Stan Smith 2018 10-18 refactor for mdJson schema 2.6.0
5
+ # Stan Smith 2017-10-24 original script
5
6
 
6
7
  require 'jbuilder'
7
8
  require_relative 'mdJson_identifier'
8
9
  require_relative 'mdJson_obliqueLinePoint'
10
+ require_relative 'mdJson_localProjection'
9
11
 
10
12
  module ADIWG
11
13
  module Mdtranslator
@@ -20,11 +22,8 @@ module ADIWG
20
22
 
21
23
  Jbuilder.new do |json|
22
24
  json.projectionIdentifier Identifier.build(hProjection[:projectionIdentifier]) unless hProjection[:projectionIdentifier].empty?
23
- json.gridSystem hProjection[:gridSystem]
24
- json.gridSystemName hProjection[:gridSystemName]
25
+ json.gridIdentifier Identifier.build(hProjection[:gridIdentifier]) unless hProjection[:gridIdentifier].empty?
25
26
  json.gridZone hProjection[:gridZone]
26
- json.projection hProjection[:projection]
27
- json.projectionName hProjection[:projectionName]
28
27
  json.standardParallel1 hProjection[:standardParallel1]
29
28
  json.standardParallel2 hProjection[:standardParallel2]
30
29
  json.longitudeOfCentralMeridian hProjection[:longitudeOfCentralMeridian]
@@ -45,10 +44,7 @@ module ADIWG
45
44
  json.obliqueLinePoint @Namespace.json_map(hProjection[:obliqueLinePoints], ObliqueLinePoint)
46
45
  json.landsatNumber hProjection[:landsatNumber]
47
46
  json.landsatPath hProjection[:landsatPath]
48
- json.localPlanarDescription hProjection[:localPlanarDescription]
49
- json.localPlanarGeoreference hProjection[:localPlanarGeoreference]
50
- json.otherGridDescription hProjection[:otherGridDescription]
51
- json.otherProjectionDescription hProjection[:otherProjectionDescription]
47
+ json.local LocalProjection.build(hProjection[:local]) unless hProjection[:local].empty?
52
48
  end
53
49
 
54
50
  end # build
@@ -1,12 +1,13 @@
1
1
  # mdJson 2.0 writer - taxonomy
2
2
 
3
3
  # History:
4
- # Stan Smith 2017-03-17 refactored for mdJson/mdTranslator 2.0
5
- # Josh Bradley original script
4
+ # Stan Smith 2018-10-26 refactor for mdJson schema 2.6.0
5
+ # Stan Smith 2017-03-17 refactored for mdJson/mdTranslator 2.0
6
+ # Josh Bradley original script
6
7
 
7
8
  require 'jbuilder'
8
9
  require_relative 'mdJson_taxonomicSystem'
9
- require_relative 'mdJson_identifier'
10
+ require_relative 'mdJson_citation'
10
11
  require_relative 'mdJson_responsibleParty'
11
12
  require_relative 'mdJson_voucher'
12
13
  require_relative 'mdJson_taxonomicClassification'
@@ -25,12 +26,12 @@ module ADIWG
25
26
  Jbuilder.new do |json|
26
27
  json.taxonomicSystem @Namespace.json_map(hTaxonomy[:taxonSystem], TaxonomicSystem)
27
28
  json.generalScope hTaxonomy[:generalScope]
28
- json.identificationReference @Namespace.json_map(hTaxonomy[:idReferences], Identifier)
29
+ json.identificationReference @Namespace.json_map(hTaxonomy[:idReferences], Citation)
29
30
  json.observer @Namespace.json_map(hTaxonomy[:observers], ResponsibleParty)
30
31
  json.identificationProcedure hTaxonomy[:idProcedure]
31
32
  json.identificationCompleteness hTaxonomy[:idCompleteness]
32
33
  json.voucher @Namespace.json_map(hTaxonomy[:vouchers], Voucher)
33
- json.taxonomicClassification TaxonomicClassification.build(hTaxonomy[:taxonClass]) unless hTaxonomy[:taxonClass].empty?
34
+ json.taxonomicClassification @Namespace.json_map(hTaxonomy[:taxonClasses], TaxonomicClassification)
34
35
  end
35
36
 
36
37
  end # build
@@ -1,7 +1,8 @@
1
1
  # mdJson 2.0 writer - spatial reference system vertical datum parameters
2
2
 
3
3
  # History:
4
- # Stan Smith 2017-10-24 original script
4
+ # Stan Smith 2018-09-26 datumName is deprecated
5
+ # Stan Smith 2017-10-24 original script
5
6
 
6
7
  require 'jbuilder'
7
8
  require_relative 'mdJson_identifier'
@@ -17,7 +18,6 @@ module ADIWG
17
18
 
18
19
  Jbuilder.new do |json|
19
20
  json.datumIdentifier Identifier.build(hDatum[:datumIdentifier]) unless hDatum[:datumIdentifier].empty?
20
- json.datumName hDatum[:datumName]
21
21
  json.encodingMethod hDatum[:encodingMethod]
22
22
  json.isDepthSystem hDatum[:isDepthSystem]
23
23
  json.verticalResolution hDatum[:verticalResolution]
@@ -53,6 +53,16 @@ module ADIWG
53
53
  {}
54
54
  end
55
55
 
56
+ # find contact in contact array and return the contact index
57
+ def self.get_contact_index_by_id(contactId)
58
+ @contacts.each_with_index do |hContact, index|
59
+ if hContact[:contactId] == contactId
60
+ return index
61
+ end
62
+ end
63
+ {}
64
+ end
65
+
56
66
  # ignore jBuilder object mapping when array is empty
57
67
  def self.json_map(collection = [], _class)
58
68
  if collection.nil? || collection.empty?
@@ -1,6 +1,7 @@
1
1
  # sbJson 1.0 writer
2
2
 
3
3
  # History:
4
+ # Stan Smith 2018-09-28 add budget sourceId and recipientId to contacts list
4
5
  # Stan Smith 2018-09-05 skip responsibility objects in associatedResource
5
6
  # Stan Smith 2017-05-25 refactored for mdJson/mdTranslator 2.0
6
7
  # Josh Bradley original script
@@ -42,6 +43,26 @@ module ADIWG
42
43
  aContactList << { :role => sbRole, :index => hParty[:contactIndex] }
43
44
  end
44
45
  end
46
+
47
+ # add sourceId and recipientId contacts
48
+ unless intObj[:metadata][:funding].empty?
49
+ aFunding = intObj[:metadata][:funding]
50
+ aFunding.each do |hFunding|
51
+ hFunding[:allocations].each do |hAllocation|
52
+ unless hAllocation[:sourceId].nil?
53
+ contactId = hAllocation[:sourceId]
54
+ sourceIndex = @Namespace.get_contact_index_by_id(contactId)
55
+ aContactList << { :role => 'funder', :index => sourceIndex }
56
+ end
57
+ unless hAllocation[:recipientId].nil?
58
+ contactId = hAllocation[:recipientId]
59
+ recipientIndex = @Namespace.get_contact_index_by_id(contactId)
60
+ aContactList << { :role => '', :index => recipientIndex }
61
+ end
62
+ end
63
+ end
64
+ end
65
+
45
66
  aContactList = aContactList.uniq
46
67
 
47
68
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: adiwg-mdtranslator
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.13.3
4
+ version: 2.14.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Stan Smith
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2018-09-06 00:00:00.000000000 Z
12
+ date: 2018-10-31 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: bundler
@@ -129,28 +129,28 @@ dependencies:
129
129
  requirements:
130
130
  - - ">="
131
131
  - !ruby/object:Gem::Version
132
- version: 2.4.9
132
+ version: '2.6'
133
133
  type: :runtime
134
134
  prerelease: false
135
135
  version_requirements: !ruby/object:Gem::Requirement
136
136
  requirements:
137
137
  - - ">="
138
138
  - !ruby/object:Gem::Version
139
- version: 2.4.9
139
+ version: '2.6'
140
140
  - !ruby/object:Gem::Dependency
141
141
  name: adiwg-mdcodes
142
142
  requirement: !ruby/object:Gem::Requirement
143
143
  requirements:
144
144
  - - "~>"
145
145
  - !ruby/object:Gem::Version
146
- version: 2.6.3
146
+ version: '2.7'
147
147
  type: :runtime
148
148
  prerelease: false
149
149
  version_requirements: !ruby/object:Gem::Requirement
150
150
  requirements:
151
151
  - - "~>"
152
152
  - !ruby/object:Gem::Version
153
- version: 2.6.3
153
+ version: '2.7'
154
154
  - !ruby/object:Gem::Dependency
155
155
  name: jbuilder
156
156
  requirement: !ruby/object:Gem::Requirement
@@ -237,6 +237,11 @@ files:
237
237
  - lib/adiwg/mdtranslator/internal/module_coordinates.rb
238
238
  - lib/adiwg/mdtranslator/internal/module_dateTimeFun.rb
239
239
  - lib/adiwg/mdtranslator/readers/fgdc/fgdc_reader.rb
240
+ - lib/adiwg/mdtranslator/readers/fgdc/modules/gridSystems/grid_equalArcSecond.rb
241
+ - lib/adiwg/mdtranslator/readers/fgdc/modules/gridSystems/grid_other.rb
242
+ - lib/adiwg/mdtranslator/readers/fgdc/modules/gridSystems/grid_statePlane.rb
243
+ - lib/adiwg/mdtranslator/readers/fgdc/modules/gridSystems/grid_ups.rb
244
+ - lib/adiwg/mdtranslator/readers/fgdc/modules/gridSystems/grid_utm.rb
240
245
  - lib/adiwg/mdtranslator/readers/fgdc/modules/mapProjections/projection_albers.rb
241
246
  - lib/adiwg/mdtranslator/readers/fgdc/modules/mapProjections/projection_azimuthEquidistant.rb
242
247
  - lib/adiwg/mdtranslator/readers/fgdc/modules/mapProjections/projection_common.rb
@@ -281,10 +286,9 @@ files:
281
286
  - lib/adiwg/mdtranslator/readers/fgdc/modules/module_identification.rb
282
287
  - lib/adiwg/mdtranslator/readers/fgdc/modules/module_keyword.rb
283
288
  - lib/adiwg/mdtranslator/readers/fgdc/modules/module_lineage.rb
289
+ - lib/adiwg/mdtranslator/readers/fgdc/modules/module_localPlanar.rb
284
290
  - lib/adiwg/mdtranslator/readers/fgdc/modules/module_localSystem.rb
285
- - lib/adiwg/mdtranslator/readers/fgdc/modules/module_mapCoordinateInfo.rb
286
291
  - lib/adiwg/mdtranslator/readers/fgdc/modules/module_mapGridSystem.rb
287
- - lib/adiwg/mdtranslator/readers/fgdc/modules/module_mapLocalPlanar.rb
288
292
  - lib/adiwg/mdtranslator/readers/fgdc/modules/module_mapProjection.rb
289
293
  - lib/adiwg/mdtranslator/readers/fgdc/modules/module_metadataInfo.rb
290
294
  - lib/adiwg/mdtranslator/readers/fgdc/modules/module_methodology.rb
@@ -292,6 +296,7 @@ files:
292
296
  - lib/adiwg/mdtranslator/readers/fgdc/modules/module_onlineOption.rb
293
297
  - lib/adiwg/mdtranslator/readers/fgdc/modules/module_onlineResource.rb
294
298
  - lib/adiwg/mdtranslator/readers/fgdc/modules/module_orderProcess.rb
299
+ - lib/adiwg/mdtranslator/readers/fgdc/modules/module_planarCoordinateInfo.rb
295
300
  - lib/adiwg/mdtranslator/readers/fgdc/modules/module_pointVector.rb
296
301
  - lib/adiwg/mdtranslator/readers/fgdc/modules/module_process.rb
297
302
  - lib/adiwg/mdtranslator/readers/fgdc/modules/module_publication.rb
@@ -370,6 +375,7 @@ files:
370
375
  - lib/adiwg/mdtranslator/readers/mdJson/modules/module_keywordObject.rb
371
376
  - lib/adiwg/mdtranslator/readers/mdJson/modules/module_legalConstraint.rb
372
377
  - lib/adiwg/mdtranslator/readers/mdJson/modules/module_lineage.rb
378
+ - lib/adiwg/mdtranslator/readers/mdJson/modules/module_localProjection.rb
373
379
  - lib/adiwg/mdtranslator/readers/mdJson/modules/module_locale.rb
374
380
  - lib/adiwg/mdtranslator/readers/mdJson/modules/module_maintenance.rb
375
381
  - lib/adiwg/mdtranslator/readers/mdJson/modules/module_mdJson.rb
@@ -467,6 +473,7 @@ files:
467
473
  - lib/adiwg/mdtranslator/writers/fgdc/classes/class_identification.rb
468
474
  - lib/adiwg/mdtranslator/writers/fgdc/classes/class_keyword.rb
469
475
  - lib/adiwg/mdtranslator/writers/fgdc/classes/class_lineage.rb
476
+ - lib/adiwg/mdtranslator/writers/fgdc/classes/class_localPlanar.rb
470
477
  - lib/adiwg/mdtranslator/writers/fgdc/classes/class_localSystem.rb
471
478
  - lib/adiwg/mdtranslator/writers/fgdc/classes/class_mapProjectionTags.rb
472
479
  - lib/adiwg/mdtranslator/writers/fgdc/classes/class_metadataInfo.rb
@@ -478,7 +485,6 @@ files:
478
485
  - lib/adiwg/mdtranslator/writers/fgdc/classes/class_phone.rb
479
486
  - lib/adiwg/mdtranslator/writers/fgdc/classes/class_planarGrid.rb
480
487
  - lib/adiwg/mdtranslator/writers/fgdc/classes/class_planarInfo.rb
481
- - lib/adiwg/mdtranslator/writers/fgdc/classes/class_planarLocal.rb
482
488
  - lib/adiwg/mdtranslator/writers/fgdc/classes/class_planarMap.rb
483
489
  - lib/adiwg/mdtranslator/writers/fgdc/classes/class_planarReference.rb
484
490
  - lib/adiwg/mdtranslator/writers/fgdc/classes/class_process.rb
@@ -764,6 +770,7 @@ files:
764
770
  - lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_keywordObject.rb
765
771
  - lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_legalConstraint.rb
766
772
  - lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_lineageInfo.rb
773
+ - lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_localProjection.rb
767
774
  - lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_locale.rb
768
775
  - lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_maintenance.rb
769
776
  - lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_mdJson.rb
@@ -847,7 +854,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
847
854
  requirements:
848
855
  - - ">="
849
856
  - !ruby/object:Gem::Version
850
- version: '2.2'
857
+ version: '2.3'
851
858
  required_rubygems_version: !ruby/object:Gem::Requirement
852
859
  requirements:
853
860
  - - ">="
@@ -1,42 +0,0 @@
1
- # FGDC <<Class>> PlanarReference
2
- # FGDC CSDGM writer output in XML
3
-
4
- # History:
5
- # Stan Smith 2018-03-21 original script
6
-
7
- require_relative 'class_mapProjectionTags'
8
-
9
- module ADIWG
10
- module Mdtranslator
11
- module Writers
12
- module Fgdc
13
-
14
- class PlanarLocal
15
-
16
- def initialize(xml, hResponseObj)
17
- @xml = xml
18
- @hResponseObj = hResponseObj
19
- end
20
-
21
- def writeXML(hProjection)
22
-
23
- # classes used
24
- classTags = MapProjectionTags.new(@xml, @hResponseObj)
25
-
26
- # planar 4.1.2.3 (localp) - local planar
27
- projection = hProjection[:projection]
28
- if projection == 'localPlanar'
29
- hProjection[:projectionName] = 'local right-handed planar coordinate system'
30
- @xml.tag!('localp') do
31
- classTags.write_localDesc(hProjection)
32
- classTags.write_localGeoInfo(hProjection)
33
- end
34
- end
35
-
36
- end # writeXML
37
- end # PlanarReference
38
-
39
- end
40
- end
41
- end
42
- end