adiwg-mdtranslator 2.9.2 → 2.10.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (179) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +30 -2
  3. data/lib/adiwg/mdtranslator/internal/internal_metadata_obj.rb +8 -8
  4. data/lib/adiwg/mdtranslator/internal/module_dateTimeFun.rb +179 -160
  5. data/lib/adiwg/mdtranslator/readers/fgdc/modules/mapProjections/projection_albers.rb +1 -2
  6. data/lib/adiwg/mdtranslator/readers/fgdc/modules/mapProjections/projection_azimuthEquidistant.rb +1 -2
  7. data/lib/adiwg/mdtranslator/readers/fgdc/modules/mapProjections/projection_equidistantConic.rb +1 -2
  8. data/lib/adiwg/mdtranslator/readers/fgdc/modules/mapProjections/projection_equirectangular.rb +1 -2
  9. data/lib/adiwg/mdtranslator/readers/fgdc/modules/mapProjections/projection_generalVertical.rb +1 -2
  10. data/lib/adiwg/mdtranslator/readers/fgdc/modules/mapProjections/projection_gnomonic.rb +1 -2
  11. data/lib/adiwg/mdtranslator/readers/fgdc/modules/mapProjections/projection_lambertConic.rb +1 -2
  12. data/lib/adiwg/mdtranslator/readers/fgdc/modules/mapProjections/projection_lambertEqualArea.rb +1 -2
  13. data/lib/adiwg/mdtranslator/readers/fgdc/modules/mapProjections/projection_mercator.rb +1 -2
  14. data/lib/adiwg/mdtranslator/readers/fgdc/modules/mapProjections/projection_millerCylinder.rb +1 -2
  15. data/lib/adiwg/mdtranslator/readers/fgdc/modules/mapProjections/projection_modifiedAlaska.rb +1 -2
  16. data/lib/adiwg/mdtranslator/readers/fgdc/modules/mapProjections/projection_obliqueMercator.rb +1 -2
  17. data/lib/adiwg/mdtranslator/readers/fgdc/modules/mapProjections/projection_orthographic.rb +1 -2
  18. data/lib/adiwg/mdtranslator/readers/fgdc/modules/mapProjections/projection_polarStereo.rb +1 -2
  19. data/lib/adiwg/mdtranslator/readers/fgdc/modules/mapProjections/projection_polyconic.rb +1 -2
  20. data/lib/adiwg/mdtranslator/readers/fgdc/modules/mapProjections/projection_robinson.rb +1 -2
  21. data/lib/adiwg/mdtranslator/readers/fgdc/modules/mapProjections/projection_sinusoidal.rb +1 -2
  22. data/lib/adiwg/mdtranslator/readers/fgdc/modules/mapProjections/projection_spaceOblique.rb +1 -2
  23. data/lib/adiwg/mdtranslator/readers/fgdc/modules/mapProjections/projection_stereographic.rb +1 -2
  24. data/lib/adiwg/mdtranslator/readers/fgdc/modules/mapProjections/projection_transverseMercator.rb +1 -2
  25. data/lib/adiwg/mdtranslator/readers/fgdc/modules/mapProjections/projection_vanDerGrinten.rb +1 -2
  26. data/lib/adiwg/mdtranslator/readers/fgdc/modules/module_attribute.rb +16 -4
  27. data/lib/adiwg/mdtranslator/readers/fgdc/modules/module_citation.rb +14 -1
  28. data/lib/adiwg/mdtranslator/readers/fgdc/modules/module_codeSet.rb +8 -2
  29. data/lib/adiwg/mdtranslator/readers/fgdc/modules/module_contact.rb +36 -8
  30. data/lib/adiwg/mdtranslator/readers/fgdc/modules/module_date.rb +2 -2
  31. data/lib/adiwg/mdtranslator/readers/fgdc/modules/module_dateTime.rb +2 -2
  32. data/lib/adiwg/mdtranslator/readers/fgdc/modules/module_digitalForm.rb +8 -2
  33. data/lib/adiwg/mdtranslator/readers/fgdc/modules/module_distribution.rb +8 -2
  34. data/lib/adiwg/mdtranslator/readers/fgdc/modules/module_entity.rb +12 -3
  35. data/lib/adiwg/mdtranslator/readers/fgdc/modules/module_entityAttribute.rb +5 -0
  36. data/lib/adiwg/mdtranslator/readers/fgdc/modules/module_entityOverview.rb +4 -1
  37. data/lib/adiwg/mdtranslator/readers/fgdc/modules/module_enumerated.rb +12 -3
  38. data/lib/adiwg/mdtranslator/readers/fgdc/modules/module_fgdc.rb +2 -2
  39. data/lib/adiwg/mdtranslator/readers/fgdc/modules/module_geodeticReference.rb +13 -4
  40. data/lib/adiwg/mdtranslator/readers/fgdc/modules/module_geographicResolution.rb +13 -4
  41. data/lib/adiwg/mdtranslator/readers/fgdc/modules/module_geologicAge.rb +6 -0
  42. data/lib/adiwg/mdtranslator/readers/fgdc/modules/module_horizontalReference.rb +3 -3
  43. data/lib/adiwg/mdtranslator/readers/fgdc/modules/module_identification.rb +58 -12
  44. data/lib/adiwg/mdtranslator/readers/fgdc/modules/module_keyword.rb +36 -0
  45. data/lib/adiwg/mdtranslator/readers/fgdc/modules/module_lineage.rb +8 -2
  46. data/lib/adiwg/mdtranslator/readers/fgdc/modules/module_localSystem.rb +1 -1
  47. data/lib/adiwg/mdtranslator/readers/fgdc/modules/module_mapCoordinateInfo.rb +51 -12
  48. data/lib/adiwg/mdtranslator/readers/fgdc/modules/module_mapGridSystem.rb +46 -9
  49. data/lib/adiwg/mdtranslator/readers/fgdc/modules/module_mapLocalPlanar.rb +8 -2
  50. data/lib/adiwg/mdtranslator/readers/fgdc/modules/module_mapProjection.rb +4 -1
  51. data/lib/adiwg/mdtranslator/readers/fgdc/modules/module_metadataInfo.rb +10 -4
  52. data/lib/adiwg/mdtranslator/readers/fgdc/modules/module_methodology.rb +4 -1
  53. data/lib/adiwg/mdtranslator/readers/fgdc/modules/module_offlineOption.rb +16 -4
  54. data/lib/adiwg/mdtranslator/readers/fgdc/modules/module_onlineOption.rb +13 -4
  55. data/lib/adiwg/mdtranslator/readers/fgdc/modules/module_orderProcess.rb +9 -1
  56. data/lib/adiwg/mdtranslator/readers/fgdc/modules/module_pointVector.rb +21 -4
  57. data/lib/adiwg/mdtranslator/readers/fgdc/modules/module_process.rb +8 -1
  58. data/lib/adiwg/mdtranslator/readers/fgdc/modules/module_publication.rb +8 -2
  59. data/lib/adiwg/mdtranslator/readers/fgdc/modules/module_quality.rb +14 -3
  60. data/lib/adiwg/mdtranslator/readers/fgdc/modules/module_range.rb +8 -2
  61. data/lib/adiwg/mdtranslator/readers/fgdc/modules/module_raster.rb +12 -3
  62. data/lib/adiwg/mdtranslator/readers/fgdc/modules/module_security.rb +12 -3
  63. data/lib/adiwg/mdtranslator/readers/fgdc/modules/module_series.rb +8 -2
  64. data/lib/adiwg/mdtranslator/readers/fgdc/modules/module_source.rb +20 -5
  65. data/lib/adiwg/mdtranslator/readers/fgdc/modules/module_spatialDomain.rb +32 -8
  66. data/lib/adiwg/mdtranslator/readers/fgdc/modules/module_taxonClass.rb +8 -2
  67. data/lib/adiwg/mdtranslator/readers/fgdc/modules/module_taxonSystem.rb +20 -5
  68. data/lib/adiwg/mdtranslator/readers/fgdc/modules/module_taxonomy.rb +8 -2
  69. data/lib/adiwg/mdtranslator/readers/fgdc/modules/module_transferInfo.rb +4 -1
  70. data/lib/adiwg/mdtranslator/readers/fgdc/modules/module_verticalAltitude.rb +12 -3
  71. data/lib/adiwg/mdtranslator/readers/fgdc/modules/module_verticalDepth.rb +9 -0
  72. data/lib/adiwg/mdtranslator/readers/fgdc/version.rb +2 -1
  73. data/lib/adiwg/mdtranslator/readers/mdJson/mdJson_reader.rb +10 -10
  74. data/lib/adiwg/mdtranslator/readers/mdJson/mdJson_validator.rb +13 -16
  75. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_additionalDocumentation.rb +55 -55
  76. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_address.rb +85 -85
  77. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_allocation.rb +8 -8
  78. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_associatedResource.rb +91 -92
  79. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_attribute.rb +212 -212
  80. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_attributeGroup.rb +43 -43
  81. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_bearingDistanceResolution.rb +8 -8
  82. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_boundingBox.rb +11 -11
  83. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_citation.rb +17 -17
  84. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_constraint.rb +26 -13
  85. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_contact.rb +13 -12
  86. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_coordinateResolution.rb +8 -5
  87. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_coverageDescription.rb +77 -77
  88. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_dataDictionary.rb +9 -7
  89. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_date.rb +54 -54
  90. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_dateTime.rb +35 -35
  91. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_dimension.rb +70 -70
  92. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_distribution.rb +15 -4
  93. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_distributor.rb +53 -53
  94. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_domain.rb +5 -5
  95. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_domainItem.rb +5 -5
  96. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_duration.rb +92 -91
  97. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_entity.rb +10 -10
  98. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_entityAttribute.rb +28 -18
  99. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_entityForeignKey.rb +58 -59
  100. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_entityIndex.rb +52 -53
  101. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_extent.rb +70 -56
  102. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_featureCollection.rb +64 -63
  103. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_format.rb +6 -6
  104. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_funding.rb +9 -6
  105. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_geoJson.rb +47 -47
  106. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_geodetic.rb +7 -7
  107. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_geographicExtent.rb +12 -7
  108. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_geographicResolution.rb +6 -5
  109. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_geologicAge.rb +6 -6
  110. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_geometryCollection.rb +63 -63
  111. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_geometryFeature.rb +84 -84
  112. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_geometryObject.rb +50 -49
  113. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_geometryProperties.rb +57 -57
  114. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_georectifiedRepresentation.rb +115 -100
  115. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_georeferenceableRepresentation.rb +85 -82
  116. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_gmlIdentifier.rb +46 -46
  117. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_graphic.rb +78 -78
  118. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_gridRepresentation.rb +61 -56
  119. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_identifier.rb +72 -72
  120. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_imageDescription.rb +106 -107
  121. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_keyword.rb +4 -4
  122. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_keywordObject.rb +46 -46
  123. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_legalConstraint.rb +55 -51
  124. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_lineage.rb +87 -83
  125. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_locale.rb +46 -46
  126. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_maintenance.rb +73 -74
  127. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_mdJson.rb +11 -5
  128. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_measure.rb +56 -55
  129. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_medium.rb +88 -88
  130. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_metadata.rb +106 -105
  131. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_metadataInfo.rb +4 -3
  132. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_metadataRepository.rb +4 -4
  133. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_obliqueLinePoint.rb +7 -4
  134. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_onlineResource.rb +60 -61
  135. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_orderProcess.rb +47 -47
  136. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_party.rb +57 -57
  137. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_phone.rb +49 -51
  138. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_processStep.rb +6 -6
  139. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_projectionParameters.rb +31 -30
  140. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_referenceSystemParameters.rb +16 -2
  141. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_releasability.rb +53 -47
  142. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_resourceInfo.rb +15 -13
  143. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_resourceType.rb +46 -46
  144. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_resourceUsage.rb +95 -95
  145. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_responsibleParty.rb +67 -67
  146. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_schema.rb +47 -46
  147. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_scope.rb +47 -47
  148. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_scopeDescription.rb +68 -63
  149. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_securityConstraint.rb +50 -50
  150. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_series.rb +38 -38
  151. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_source.rb +8 -8
  152. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_spatialReference.rb +6 -5
  153. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_spatialRepresentation.rb +77 -75
  154. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_spatialResolution.rb +8 -14
  155. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_taxonomicClassification.rb +71 -72
  156. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_taxonomicSystem.rb +46 -45
  157. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_taxonomy.rb +118 -116
  158. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_temporalExtent.rb +48 -46
  159. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_timeInstant.rb +8 -8
  160. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_timeInterval.rb +50 -50
  161. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_timePeriod.rb +21 -14
  162. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_transferOption.rb +86 -75
  163. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_valueRange.rb +4 -4
  164. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_vectorObject.rb +45 -45
  165. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_vectorRepresentation.rb +45 -33
  166. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_verticalDatum.rb +28 -6
  167. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_verticalExtent.rb +59 -59
  168. data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_voucher.rb +43 -43
  169. data/lib/adiwg/mdtranslator/readers/mdReaders.rb +6 -2
  170. data/lib/adiwg/mdtranslator/version.rb +9 -1
  171. data/lib/adiwg/mdtranslator/writers/html/sections/html_entityAttribute.rb +3 -3
  172. data/lib/adiwg/mdtranslator/writers/iso19110/classes/class_featureConstraint.rb +50 -46
  173. data/lib/adiwg/mdtranslator/writers/iso19110/classes/class_multiplicity.rb +53 -43
  174. data/lib/adiwg/mdtranslator/writers/iso19110/version.rb +3 -1
  175. data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_entityAttribute.rb +1 -1
  176. data/lib/adiwg/mdtranslator/writers/mdWriters.rb +58 -58
  177. data/lib/adiwg/mdtranslator.rb +177 -165
  178. data/lib/adiwg/mdtranslator_cli.rb +8 -3
  179. metadata +2 -2
@@ -2,119 +2,118 @@
2
2
  # Reader - ADIwg JSON to internal data structure
3
3
 
4
4
  # History:
5
+ # Stan Smith 2018-02-18 refactored error and warning messaging
5
6
  # Stan Smith 2016-10-18 original script
6
7
 
7
8
  require_relative 'module_identifier'
8
9
 
9
10
  module ADIWG
10
- module Mdtranslator
11
- module Readers
12
- module MdJson
13
-
14
- module ImageDescription
15
-
16
- def self.unpack(hImageInfo, responseObj)
17
-
18
- # return nil object if input is empty
19
- if hImageInfo.empty?
20
- responseObj[:readerExecutionMessages] << 'Image Description object is empty'
21
- responseObj[:readerExecutionPass] = false
22
- return nil
23
- end
24
-
25
- # instance classes needed in script
26
- intMetadataClass = InternalMetadata.new
27
- hImage = intMetadataClass.newImageDescription
28
-
29
- # image description - elevation angle of illumination
30
- if hImageInfo.has_key?('illuminationElevationAngle')
31
- if hImageInfo['illuminationElevationAngle'] != ''
32
- hImage[:illuminationElevationAngle] = hImageInfo['illuminationElevationAngle']
33
- end
34
- end
35
-
36
- # image description - azimuth of illumination
37
- if hImageInfo.has_key?('illuminationAzimuthAngle')
38
- if hImageInfo['illuminationAzimuthAngle'] != ''
39
- hImage[:illuminationAzimuthAngle] = hImageInfo['illuminationAzimuthAngle']
40
- end
11
+ module Mdtranslator
12
+ module Readers
13
+ module MdJson
14
+
15
+ module ImageDescription
16
+
17
+ def self.unpack(hImageInfo, responseObj)
18
+
19
+ # return nil object if input is empty
20
+ if hImageInfo.empty?
21
+ responseObj[:readerExecutionMessages] << 'WARNING: mdJson reader: image description object is empty'
22
+ return nil
23
+ end
24
+
25
+ # instance classes needed in script
26
+ intMetadataClass = InternalMetadata.new
27
+ hImage = intMetadataClass.newImageDescription
28
+
29
+ # image description - elevation angle of illumination
30
+ if hImageInfo.has_key?('illuminationElevationAngle')
31
+ unless hImageInfo['illuminationElevationAngle'] == ''
32
+ hImage[:illuminationElevationAngle] = hImageInfo['illuminationElevationAngle']
33
+ end
34
+ end
35
+
36
+ # image description - azimuth of illumination
37
+ if hImageInfo.has_key?('illuminationAzimuthAngle')
38
+ unless hImageInfo['illuminationAzimuthAngle'] == ''
39
+ hImage[:illuminationAzimuthAngle] = hImageInfo['illuminationAzimuthAngle']
40
+ end
41
+ end
42
+
43
+ # image description - image condition
44
+ if hImageInfo.has_key?('imagingCondition')
45
+ unless hImageInfo['imagingCondition'] == ''
46
+ hImage[:imagingCondition] = hImageInfo['imagingCondition']
47
+ end
48
+ end
49
+
50
+ # image description - image quality - identifier
51
+ if hImageInfo.has_key?('imageQualityCode')
52
+ hObject = hImageInfo['imageQualityCode']
53
+ unless hObject.empty?
54
+ hReturn = Identifier.unpack(hObject, responseObj)
55
+ unless hReturn.nil?
56
+ hImage[:imageQualityCode] = hReturn
41
57
  end
42
-
43
- # image description - image condition
44
- if hImageInfo.has_key?('imagingCondition')
45
- if hImageInfo['imagingCondition'] != ''
46
- hImage[:imagingCondition] = hImageInfo['imagingCondition']
47
- end
48
- end
49
-
50
- # image description - image quality - identifier
51
- if hImageInfo.has_key?('imageQualityCode')
52
- hObject = hImageInfo['imageQualityCode']
53
- unless hObject.empty?
54
- hReturn = Identifier.unpack(hObject, responseObj)
55
- unless hReturn.nil?
56
- hImage[:imageQualityCode] = hReturn
57
- end
58
- end
59
- end
60
-
61
-
62
- # image description - cloud cover percentage
63
- if hImageInfo.has_key?('cloudCoverPercent')
64
- if hImageInfo['cloudCoverPercent'] != ''
65
- hImage[:cloudCoverPercent] = hImageInfo['cloudCoverPercent']
66
- end
67
- end
68
-
69
- # image description - compression quality
70
- if hImageInfo.has_key?('compressionQuantity')
71
- if hImageInfo['compressionQuantity'] != ''
72
- hImage[:compressionQuantity] = hImageInfo['compressionQuantity']
73
- end
74
- end
75
-
76
- # image description - triangulation information available {Boolean}
77
- if hImageInfo.has_key?('triangulationIndicator')
78
- if hImageInfo['triangulationIndicator'] === true
79
- hImage[:triangulationIndicator] = hImageInfo['triangulationIndicator']
80
- end
81
- end
82
-
83
- # image description - radiometric calibration information available {Boolean}
84
- if hImageInfo.has_key?('radiometricCalibrationAvailable')
85
- if hImageInfo['radiometricCalibrationAvailable'] === true
86
- hImage[:radiometricCalibrationAvailable] = hImageInfo['radiometricCalibrationAvailable']
87
- end
88
- end
89
-
90
- # image description - camera calibration information available {Boolean}
91
- if hImageInfo.has_key?('cameraCalibrationAvailable')
92
- if hImageInfo['cameraCalibrationAvailable'] === true
93
- hImage[:cameraCalibrationAvailable] = hImageInfo['cameraCalibrationAvailable']
94
- end
95
- end
96
-
97
- # image description - film distortion information available {Boolean}
98
- if hImageInfo.has_key?('filmDistortionAvailable')
99
- if hImageInfo['filmDistortionAvailable'] === true
100
- hImage[:filmDistortionAvailable] = hImageInfo['filmDistortionAvailable']
101
- end
102
- end
103
-
104
- # image description - lens distortion information available {Boolean}
105
- if hImageInfo.has_key?('lensDistortionAvailable')
106
- if hImageInfo['lensDistortionAvailable'] === true
107
- hImage[:lensDistortionAvailable] = hImageInfo['lensDistortionAvailable']
108
- end
109
- end
110
-
111
- return hImage
112
-
113
- end
114
-
115
- end
58
+ end
59
+ end
60
+
61
+ # image description - cloud cover percentage
62
+ if hImageInfo.has_key?('cloudCoverPercent')
63
+ unless hImageInfo['cloudCoverPercent'] == ''
64
+ hImage[:cloudCoverPercent] = hImageInfo['cloudCoverPercent']
65
+ end
66
+ end
67
+
68
+ # image description - compression quality
69
+ if hImageInfo.has_key?('compressionQuantity')
70
+ unless hImageInfo['compressionQuantity'] == ''
71
+ hImage[:compressionQuantity] = hImageInfo['compressionQuantity']
72
+ end
73
+ end
74
+
75
+ # image description - triangulation information available {Boolean}
76
+ if hImageInfo.has_key?('triangulationIndicator')
77
+ if hImageInfo['triangulationIndicator'] === true
78
+ hImage[:triangulationIndicator] = hImageInfo['triangulationIndicator']
79
+ end
80
+ end
81
+
82
+ # image description - radiometric calibration information available {Boolean}
83
+ if hImageInfo.has_key?('radiometricCalibrationAvailable')
84
+ if hImageInfo['radiometricCalibrationAvailable'] === true
85
+ hImage[:radiometricCalibrationAvailable] = hImageInfo['radiometricCalibrationAvailable']
86
+ end
87
+ end
88
+
89
+ # image description - camera calibration information available {Boolean}
90
+ if hImageInfo.has_key?('cameraCalibrationAvailable')
91
+ if hImageInfo['cameraCalibrationAvailable'] === true
92
+ hImage[:cameraCalibrationAvailable] = hImageInfo['cameraCalibrationAvailable']
93
+ end
94
+ end
95
+
96
+ # image description - film distortion information available {Boolean}
97
+ if hImageInfo.has_key?('filmDistortionAvailable')
98
+ if hImageInfo['filmDistortionAvailable'] === true
99
+ hImage[:filmDistortionAvailable] = hImageInfo['filmDistortionAvailable']
100
+ end
101
+ end
102
+
103
+ # image description - lens distortion information available {Boolean}
104
+ if hImageInfo.has_key?('lensDistortionAvailable')
105
+ if hImageInfo['lensDistortionAvailable'] === true
106
+ hImage[:lensDistortionAvailable] = hImageInfo['lensDistortionAvailable']
107
+ end
108
+ end
109
+
110
+ return hImage
111
+
112
+ end
116
113
 
117
114
  end
118
- end
119
- end
115
+
116
+ end
117
+ end
118
+ end
120
119
  end
@@ -2,6 +2,7 @@
2
2
  # Reader - ADIwg JSON to internal data structure
3
3
 
4
4
  # History:
5
+ # Stan Smith 2018-02-18 refactored error and warning messaging
5
6
  # Stan Smith 2016-10-23 refactored for mdJson 2.0
6
7
  # Stan Smith 2015-08-24 added return if input hash is empty
7
8
  # Stan Smith 2015-07-14 refactored to remove global namespace constants
@@ -27,8 +28,7 @@ module ADIWG
27
28
 
28
29
  # return nil object if input is empty
29
30
  if hKeyword.empty?
30
- responseObj[:readerExecutionMessages] << 'Keyword is empty'
31
- responseObj[:readerExecutionPass] = false
31
+ responseObj[:readerExecutionMessages] << 'WARNING: mdJson reader: keyword object is empty'
32
32
  return nil
33
33
  end
34
34
 
@@ -48,14 +48,14 @@ module ADIWG
48
48
  end
49
49
  end
50
50
  if intKeyword[:keywords].empty?
51
- responseObj[:readerExecutionMessages] << 'Keyword is missing keywords'
51
+ responseObj[:readerExecutionMessages] << 'ERROR: mdJson reader: keyword keyword list is missing'
52
52
  responseObj[:readerExecutionPass] = false
53
53
  return nil
54
54
  end
55
55
 
56
56
  # keyword - keyType
57
57
  if hKeyword.has_key?('keywordType')
58
- if hKeyword['keywordType'] != ''
58
+ unless hKeyword['keywordType'] == ''
59
59
  intKeyword[:keywordType] = hKeyword['keywordType']
60
60
  end
61
61
  end
@@ -2,54 +2,54 @@
2
2
  # Reader - ADIwg JSON to internal data structure
3
3
 
4
4
  # History:
5
- # Stan Smith 2016-12-09 original script
5
+ # Stan Smith 2018-02-18 refactored error and warning messaging
6
+ # Stan Smith 2016-12-09 original script
6
7
 
7
8
  module ADIWG
8
- module Mdtranslator
9
- module Readers
10
- module MdJson
11
-
12
- module KeywordObject
13
-
14
- def self.unpack(hKeyObj, responseObj)
15
-
16
- # return nil object if input is empty
17
- if hKeyObj.empty?
18
- responseObj[:readerExecutionMessages] << 'Keyword object is empty'
19
- responseObj[:readerExecutionPass] = false
20
- return nil
21
- end
22
-
23
- # instance classes needed in script
24
- intMetadataClass = InternalMetadata.new
25
- intKeyObj = intMetadataClass.newKeywordObject
26
-
27
- # keyword object - keyword (required)
28
- if hKeyObj.has_key?('keyword')
29
- if hKeyObj['keyword'] != ''
30
- intKeyObj[:keyword] = hKeyObj['keyword']
31
- end
32
- end
33
- if intKeyObj[:keyword].nil?
34
- responseObj[:readerExecutionMessages] << 'Keyword object is missing keyword'
35
- responseObj[:readerExecutionPass] = false
36
- return nil
37
- end
38
-
39
- # keyword object - keyword id
40
- if hKeyObj.has_key?('keywordId')
41
- if hKeyObj['keywordId'] != ''
42
- intKeyObj[:keywordId] = hKeyObj['keywordId']
43
- end
44
- end
45
-
46
- return intKeyObj
47
-
48
- end
49
-
50
- end
9
+ module Mdtranslator
10
+ module Readers
11
+ module MdJson
12
+
13
+ module KeywordObject
14
+
15
+ def self.unpack(hKeyObj, responseObj)
16
+
17
+ # return nil object if input is empty
18
+ if hKeyObj.empty?
19
+ responseObj[:readerExecutionMessages] << 'WARNING: mdJson reader: keyword object is empty'
20
+ return nil
21
+ end
22
+
23
+ # instance classes needed in script
24
+ intMetadataClass = InternalMetadata.new
25
+ intKeyObj = intMetadataClass.newKeywordObject
26
+
27
+ # keyword object - keyword (required)
28
+ if hKeyObj.has_key?('keyword')
29
+ unless hKeyObj['keyword'] == ''
30
+ intKeyObj[:keyword] = hKeyObj['keyword']
31
+ end
32
+ end
33
+ if intKeyObj[:keyword].nil?
34
+ responseObj[:readerExecutionMessages] << 'ERROR: mdJson reader: keyword object is missing keyword'
35
+ responseObj[:readerExecutionPass] = false
36
+ return nil
37
+ end
38
+
39
+ # keyword object - keyword id
40
+ if hKeyObj.has_key?('keywordId')
41
+ unless hKeyObj['keywordId'] == ''
42
+ intKeyObj[:keywordId] = hKeyObj['keywordId']
43
+ end
44
+ end
45
+
46
+ return intKeyObj
47
+
48
+ end
51
49
 
52
50
  end
53
- end
54
- end
51
+
52
+ end
53
+ end
54
+ end
55
55
  end
@@ -2,76 +2,80 @@
2
2
  # Reader - ADIwg JSON to internal data structure
3
3
 
4
4
  # History:
5
+ # Stan Smith 2018-02-19 refactored error and warning messaging
5
6
  # Stan Smith 2016-10-15 refactored for mdJson 2.0
6
- # Stan Smith 2015-07-14 refactored to remove global namespace constants
7
- # Stan Smith 2015-06-22 replace global ($response) with passed in object (responseObj)
8
- # Stan Smith 2014-12-15 refactored to handle namespacing readers and writers
9
- # Stan Smith 2014-04-28 modified attribute names to match json schema 0.3.0
7
+ # Stan Smith 2015-07-14 refactored to remove global namespace constants
8
+ # Stan Smith 2015-06-22 replace global ($response) with passed in object (responseObj)
9
+ # Stan Smith 2014-12-15 refactored to handle namespacing readers and writers
10
+ # Stan Smith 2014-04-28 modified attribute names to match json schema 0.3.0
10
11
  # Stan Smith 2013-11-27 modified to process a single legal constraint
11
12
  # Stan Smith 2013-11-14 original script
12
13
 
13
14
  module ADIWG
14
- module Mdtranslator
15
- module Readers
16
- module MdJson
15
+ module Mdtranslator
16
+ module Readers
17
+ module MdJson
17
18
 
18
- module LegalConstraint
19
+ module LegalConstraint
19
20
 
20
- def self.unpack(hLegalCon, responseObj)
21
+ def self.unpack(hLegalCon, responseObj)
21
22
 
22
- # return nil object if input is empty
23
- if hLegalCon.empty?
24
- responseObj[:readerExecutionMessages] << 'Legal Constraint object is empty'
25
- responseObj[:readerExecutionPass] = false
26
- return nil
27
- end
23
+ # return nil object if input is empty
24
+ if hLegalCon.empty?
25
+ responseObj[:readerExecutionMessages] << 'WARNING: mdJson reader: legal constraint object is empty'
26
+ return nil
27
+ end
28
28
 
29
- # instance classes needed in script
30
- intMetadataClass = InternalMetadata.new
31
- intLegalCon= intMetadataClass.newLegalConstraint
29
+ # instance classes needed in script
30
+ intMetadataClass = InternalMetadata.new
31
+ intLegalCon = intMetadataClass.newLegalConstraint
32
32
 
33
- # legal constraint - use constraint []
34
- if hLegalCon.has_key?('useConstraint')
35
- hLegalCon['useConstraint'].each do |item|
36
- if item != ''
37
- intLegalCon[:useCodes] << item
38
- end
39
- end
40
- end
33
+ haveLegal = false
41
34
 
42
- # legal constraint - access constraint []
43
- if hLegalCon.has_key?('accessConstraint')
44
- hLegalCon['accessConstraint'].each do |item|
45
- if item != ''
46
- intLegalCon[:accessCodes] << item
47
- end
48
- end
35
+ # legal constraint - use constraint []
36
+ if hLegalCon.has_key?('useConstraint')
37
+ hLegalCon['useConstraint'].each do |item|
38
+ unless item == ''
39
+ intLegalCon[:useCodes] << item
40
+ haveLegal = true
49
41
  end
42
+ end
43
+ end
50
44
 
51
- # legal constraint - other constraint []
52
- if hLegalCon.has_key?('otherConstraint')
53
- hLegalCon['otherConstraint'].each do |item|
54
- if item != ''
55
- intLegalCon[:otherCons] << item
56
- end
57
- end
45
+ # legal constraint - access constraint []
46
+ if hLegalCon.has_key?('accessConstraint')
47
+ hLegalCon['accessConstraint'].each do |item|
48
+ unless item == ''
49
+ intLegalCon[:accessCodes] << item
50
+ haveLegal = true
58
51
  end
52
+ end
53
+ end
59
54
 
60
- if intLegalCon[:useCodes].empty? &&
61
- intLegalCon[:accessCodes].empty? &&
62
- intLegalCon[:otherCons].empty?
63
- responseObj[:readerExecutionMessages] << 'Legal Constraint was not declared'
64
- responseObj[:readerExecutionPass] = false
65
- return nil
55
+ # legal constraint - other constraint []
56
+ if hLegalCon.has_key?('otherConstraint')
57
+ hLegalCon['otherConstraint'].each do |item|
58
+ unless item == ''
59
+ intLegalCon[:otherCons] << item
60
+ haveLegal = true
66
61
  end
62
+ end
63
+ end
67
64
 
68
- return intLegalCon
65
+ # error messages
66
+ unless haveLegal
67
+ responseObj[:readerExecutionMessages] << 'ERROR: mdJson reader: legal constraint was not defined'
68
+ responseObj[:readerExecutionPass] = false
69
+ return nil
70
+ end
69
71
 
70
- end
72
+ return intLegalCon
71
73
 
72
- end
74
+ end
73
75
 
74
76
  end
75
- end
76
- end
77
+
78
+ end
79
+ end
80
+ end
77
81
  end