adiwg-mdtranslator 2.13.3 → 2.14.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.travis.yml +3 -3
- data/CHANGELOG.md +11 -4
- data/Rakefile +14 -14
- data/adiwg-mdtranslator.gemspec +3 -3
- data/lib/adiwg/mdtranslator/internal/internal_metadata_obj.rb +14 -14
- data/lib/adiwg/mdtranslator/readers/fgdc/modules/gridSystems/grid_equalArcSecond.rb +69 -0
- data/lib/adiwg/mdtranslator/readers/fgdc/modules/gridSystems/grid_other.rb +42 -0
- data/lib/adiwg/mdtranslator/readers/fgdc/modules/gridSystems/grid_statePlane.rb +87 -0
- data/lib/adiwg/mdtranslator/readers/fgdc/modules/gridSystems/grid_ups.rb +58 -0
- data/lib/adiwg/mdtranslator/readers/fgdc/modules/gridSystems/grid_utm.rb +58 -0
- data/lib/adiwg/mdtranslator/readers/fgdc/modules/mapProjections/projection_albers.rb +7 -7
- data/lib/adiwg/mdtranslator/readers/fgdc/modules/mapProjections/projection_azimuthEquidistant.rb +6 -6
- data/lib/adiwg/mdtranslator/readers/fgdc/modules/mapProjections/projection_common.rb +23 -22
- data/lib/adiwg/mdtranslator/readers/fgdc/modules/mapProjections/projection_equidistantConic.rb +7 -7
- data/lib/adiwg/mdtranslator/readers/fgdc/modules/mapProjections/projection_equirectangular.rb +6 -6
- data/lib/adiwg/mdtranslator/readers/fgdc/modules/mapProjections/projection_generalVertical.rb +7 -7
- data/lib/adiwg/mdtranslator/readers/fgdc/modules/mapProjections/projection_gnomonic.rb +6 -6
- data/lib/adiwg/mdtranslator/readers/fgdc/modules/mapProjections/projection_lambertConic.rb +7 -7
- data/lib/adiwg/mdtranslator/readers/fgdc/modules/mapProjections/projection_lambertEqualArea.rb +6 -6
- data/lib/adiwg/mdtranslator/readers/fgdc/modules/mapProjections/projection_mercator.rb +7 -7
- data/lib/adiwg/mdtranslator/readers/fgdc/modules/mapProjections/projection_millerCylinder.rb +5 -5
- data/lib/adiwg/mdtranslator/readers/fgdc/modules/mapProjections/projection_modifiedAlaska.rb +4 -4
- data/lib/adiwg/mdtranslator/readers/fgdc/modules/mapProjections/projection_obliqueMercator.rb +8 -8
- data/lib/adiwg/mdtranslator/readers/fgdc/modules/mapProjections/projection_orthographic.rb +6 -6
- data/lib/adiwg/mdtranslator/readers/fgdc/modules/mapProjections/projection_parameters.rb +20 -20
- data/lib/adiwg/mdtranslator/readers/fgdc/modules/mapProjections/projection_polarStereo.rb +8 -8
- data/lib/adiwg/mdtranslator/readers/fgdc/modules/mapProjections/projection_polyconic.rb +6 -6
- data/lib/adiwg/mdtranslator/readers/fgdc/modules/mapProjections/projection_robinson.rb +5 -5
- data/lib/adiwg/mdtranslator/readers/fgdc/modules/mapProjections/projection_sinusoidal.rb +5 -5
- data/lib/adiwg/mdtranslator/readers/fgdc/modules/mapProjections/projection_spaceOblique.rb +6 -6
- data/lib/adiwg/mdtranslator/readers/fgdc/modules/mapProjections/projection_stereographic.rb +6 -6
- data/lib/adiwg/mdtranslator/readers/fgdc/modules/mapProjections/projection_transverseMercator.rb +7 -7
- data/lib/adiwg/mdtranslator/readers/fgdc/modules/mapProjections/projection_vanDerGrinten.rb +5 -5
- data/lib/adiwg/mdtranslator/readers/fgdc/modules/module_geodeticReference.rb +15 -7
- data/lib/adiwg/mdtranslator/readers/fgdc/modules/module_geographicResolution.rb +6 -3
- data/lib/adiwg/mdtranslator/readers/fgdc/modules/module_horizontalPlanar.rb +8 -6
- data/lib/adiwg/mdtranslator/readers/fgdc/modules/module_horizontalReference.rb +1 -1
- data/lib/adiwg/mdtranslator/readers/fgdc/modules/{module_mapLocalPlanar.rb → module_localPlanar.rb} +16 -8
- data/lib/adiwg/mdtranslator/readers/fgdc/modules/module_localSystem.rb +23 -8
- data/lib/adiwg/mdtranslator/readers/fgdc/modules/module_mapGridSystem.rb +21 -144
- data/lib/adiwg/mdtranslator/readers/fgdc/modules/module_mapProjection.rb +48 -3
- data/lib/adiwg/mdtranslator/readers/fgdc/modules/{module_mapCoordinateInfo.rb → module_planarCoordinateInfo.rb} +23 -11
- data/lib/adiwg/mdtranslator/readers/fgdc/modules/module_taxonomy.rb +1 -1
- data/lib/adiwg/mdtranslator/readers/fgdc/modules/module_verticalAltitude.rb +5 -2
- data/lib/adiwg/mdtranslator/readers/fgdc/modules/module_verticalDepth.rb +6 -2
- data/lib/adiwg/mdtranslator/readers/mdJson/mdJson_reader_messages_eng.yml +20 -5
- data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_geodetic.rb +41 -8
- data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_localProjection.rb +57 -0
- data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_obliqueLinePoint.rb +6 -6
- data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_projectionParameters.rb +36 -53
- data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_referenceSystemParameters.rb +1 -1
- data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_taxonomy.rb +39 -13
- data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_verticalDatum.rb +20 -8
- data/lib/adiwg/mdtranslator/version.rb +11 -1
- data/lib/adiwg/mdtranslator/writers/fgdc/classes/class_geodeticReference.rb +8 -7
- data/lib/adiwg/mdtranslator/writers/fgdc/classes/class_geographicResolution.rb +1 -1
- data/lib/adiwg/mdtranslator/writers/fgdc/classes/class_localPlanar.rb +63 -0
- data/lib/adiwg/mdtranslator/writers/fgdc/classes/class_localSystem.rb +30 -15
- data/lib/adiwg/mdtranslator/writers/fgdc/classes/class_mapProjectionTags.rb +164 -109
- data/lib/adiwg/mdtranslator/writers/fgdc/classes/class_planarGrid.rb +60 -61
- data/lib/adiwg/mdtranslator/writers/fgdc/classes/class_planarInfo.rb +12 -12
- data/lib/adiwg/mdtranslator/writers/fgdc/classes/class_planarMap.rb +87 -99
- data/lib/adiwg/mdtranslator/writers/fgdc/classes/class_planarReference.rb +16 -41
- data/lib/adiwg/mdtranslator/writers/fgdc/classes/class_spatialReference.rb +12 -11
- data/lib/adiwg/mdtranslator/writers/fgdc/classes/class_taxonomy.rb +9 -4
- data/lib/adiwg/mdtranslator/writers/fgdc/classes/class_taxonomySystem.rb +2 -3
- data/lib/adiwg/mdtranslator/writers/fgdc/classes/class_verticalDatum.rb +8 -7
- data/lib/adiwg/mdtranslator/writers/fgdc/fgdc_writer_messages_eng.yml +13 -6
- data/lib/adiwg/mdtranslator/writers/html/sections/html_geodeticParameters.rb +16 -30
- data/lib/adiwg/mdtranslator/writers/html/sections/html_identifier.rb +8 -0
- data/lib/adiwg/mdtranslator/writers/html/sections/html_obliqueLinePoint.rb +4 -4
- data/lib/adiwg/mdtranslator/writers/html/sections/html_projectionParameters.rb +68 -57
- data/lib/adiwg/mdtranslator/writers/html/sections/html_resourceInfo.rb +11 -6
- data/lib/adiwg/mdtranslator/writers/html/sections/html_spatialReference.rb +9 -0
- data/lib/adiwg/mdtranslator/writers/html/sections/html_taxonomy.rb +13 -12
- data/lib/adiwg/mdtranslator/writers/html/sections/html_usage.rb +3 -3
- data/lib/adiwg/mdtranslator/writers/html/sections/html_verticalDatumParameters.rb +9 -15
- data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_crs.rb +12 -15
- data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_dataIdentification.rb +9 -8
- data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_obliqueLinePoint.rb +6 -6
- data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_referenceSystem.rb +2 -1
- data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_taxonomy.rb +21 -10
- data/lib/adiwg/mdtranslator/writers/iso19115_2/iso19115_2_writer_messages_eng.yml +4 -0
- data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_geodeticParameters.rb +2 -3
- data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_identifier.rb +4 -2
- data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_localProjection.rb +31 -0
- data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_obliqueLinePoint.rb +2 -2
- data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_projectionParameters.rb +5 -9
- data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_taxonomy.rb +6 -5
- data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_verticalDatumParameters.rb +2 -2
- data/lib/adiwg/mdtranslator/writers/sbJson/sbJson_writer.rb +10 -0
- data/lib/adiwg/mdtranslator/writers/sbJson/sections/sbJson_contact.rb +21 -0
- metadata +17 -10
- data/lib/adiwg/mdtranslator/writers/fgdc/classes/class_planarLocal.rb +0 -42
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: f6314a8f43eb42ada37a556d73c9fbd0a76d46eb
|
|
4
|
+
data.tar.gz: 34fade7d3ac05ab024a601b899e3734ec4a72d31
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: e28c20ccb05a1e42cbfea51404301f8451fb0367e024c7877714edc7bd42e3628c030936d03116b4d774c2715e820a279d1ad0e26118309fefbc65bbae80e63a
|
|
7
|
+
data.tar.gz: b49985b384314529c11c69cda56848e1087a20cba33fbb8ff240d0cbbf9f6dbe75e503358f4d5474ff6e1b036739816e45acf7c014b1d5eaa5b0f1a6086a6499
|
data/.travis.yml
CHANGED
data/CHANGELOG.md
CHANGED
|
@@ -1,12 +1,19 @@
|
|
|
1
1
|
# Change Log
|
|
2
2
|
|
|
3
|
-
## [v2.
|
|
3
|
+
## [v2.14.0](https://github.com/adiwg/mdTranslator/tree/v2.14.0)
|
|
4
4
|
|
|
5
|
-
[Full Changelog](https://github.com/adiwg/mdTranslator/compare/v2.13.
|
|
5
|
+
[Full Changelog](https://github.com/adiwg/mdTranslator/compare/v2.13.3...v2.14.0)
|
|
6
6
|
|
|
7
|
-
**
|
|
7
|
+
**Closed issues:**
|
|
8
|
+
|
|
9
|
+
- Breaking change in timeInterval [\#199](https://github.com/adiwg/mdTranslator/issues/199)
|
|
8
10
|
|
|
9
|
-
|
|
11
|
+
**Merged pull requests:**
|
|
12
|
+
|
|
13
|
+
- Change error message text in ISO 19115-2 writer [\#204](https://github.com/adiwg/mdTranslator/pull/204) ([stansmith907](https://github.com/stansmith907))
|
|
14
|
+
|
|
15
|
+
## [v2.13.3](https://github.com/adiwg/mdTranslator/tree/v2.13.3) (2018-09-06)
|
|
16
|
+
[Full Changelog](https://github.com/adiwg/mdTranslator/compare/v2.13.2...v2.13.3)
|
|
10
17
|
|
|
11
18
|
**Closed issues:**
|
|
12
19
|
|
data/Rakefile
CHANGED
|
@@ -5,15 +5,15 @@ require 'rake/testtask'
|
|
|
5
5
|
Rake::TestTask.new do |t|
|
|
6
6
|
t.libs << 'test'
|
|
7
7
|
t.test_files = FileList[
|
|
8
|
+
'test/readers/fgdc/tc*.rb',
|
|
8
9
|
'test/readers/mdJson/tc*.rb',
|
|
9
10
|
'test/readers/sbJson/tc*.rb',
|
|
10
|
-
'test/
|
|
11
|
-
'test/writers/
|
|
11
|
+
'test/writers/fgdc/tc*.rb',
|
|
12
|
+
'test/writers/html/tc*.rb',
|
|
12
13
|
'test/writers/iso19110/tc*.rb',
|
|
14
|
+
'test/writers/iso19115-2/tc*.rb',
|
|
13
15
|
'test/writers/mdJson/tc*.rb',
|
|
14
16
|
'test/writers/sbJson/tc*.rb',
|
|
15
|
-
'test/writers/html/tc*.rb',
|
|
16
|
-
'test/writers/fgdc/tc*.rb',
|
|
17
17
|
'test/translator/tc*.rb'
|
|
18
18
|
]
|
|
19
19
|
t.verbose = true
|
|
@@ -22,13 +22,13 @@ end
|
|
|
22
22
|
desc 'Run tests'
|
|
23
23
|
task :default => :test
|
|
24
24
|
|
|
25
|
-
# 'test/readers/
|
|
26
|
-
# 'test/readers/
|
|
27
|
-
# 'test/readers/
|
|
28
|
-
# 'test/writers/
|
|
29
|
-
# 'test/writers/
|
|
30
|
-
# 'test/writers/
|
|
31
|
-
# 'test/writers/
|
|
32
|
-
# 'test/writers/
|
|
33
|
-
# 'test/writers/
|
|
34
|
-
# 'test/translator/tc*.rb'
|
|
25
|
+
# 'test/readers/fgdc/tc*.rb',
|
|
26
|
+
# 'test/readers/mdJson/tc*.rb',
|
|
27
|
+
# 'test/readers/sbJson/tc*.rb',
|
|
28
|
+
# 'test/writers/fgdc/tc*.rb',
|
|
29
|
+
# 'test/writers/html/tc*.rb',
|
|
30
|
+
# 'test/writers/iso19110/tc*.rb',
|
|
31
|
+
# 'test/writers/iso19115-2/tc*.rb',
|
|
32
|
+
# 'test/writers/mdJson/tc*.rb',
|
|
33
|
+
# 'test/writers/sbJson/tc*.rb',
|
|
34
|
+
# 'test/translator/tc*.rb'
|
data/adiwg-mdtranslator.gemspec
CHANGED
|
@@ -22,7 +22,7 @@ Gem::Specification.new do |spec|
|
|
|
22
22
|
spec.test_files = spec.files.grep(%r{^(tc|test|spec|features)/})
|
|
23
23
|
spec.require_paths = ["lib"]
|
|
24
24
|
|
|
25
|
-
spec.required_ruby_version = '>= 2.
|
|
25
|
+
spec.required_ruby_version = '>= 2.3'
|
|
26
26
|
|
|
27
27
|
spec.add_development_dependency "bundler", "~> 1"
|
|
28
28
|
spec.add_development_dependency "rake", "~> 10"
|
|
@@ -33,8 +33,8 @@ Gem::Specification.new do |spec|
|
|
|
33
33
|
spec.add_runtime_dependency "thor", "~> 0.19"
|
|
34
34
|
spec.add_runtime_dependency "uuidtools", "~> 2.1"
|
|
35
35
|
spec.add_runtime_dependency "json-schema", "~> 2.7"
|
|
36
|
-
spec.add_runtime_dependency "adiwg-mdjson_schemas", ">= 2.
|
|
37
|
-
spec.add_runtime_dependency "adiwg-mdcodes", "~> 2.
|
|
36
|
+
spec.add_runtime_dependency "adiwg-mdjson_schemas", ">= 2.6"
|
|
37
|
+
spec.add_runtime_dependency "adiwg-mdcodes", "~> 2.7"
|
|
38
38
|
spec.add_runtime_dependency "jbuilder", "~> 2.5"
|
|
39
39
|
spec.add_runtime_dependency "kramdown", "~> 1.13"
|
|
40
40
|
spec.add_runtime_dependency "coderay", "~> 1.1"
|
|
@@ -2,6 +2,8 @@
|
|
|
2
2
|
|
|
3
3
|
# History:
|
|
4
4
|
# version 2
|
|
5
|
+
# Stan Smith 2018-10-02 modified referenceSystemParameterSet
|
|
6
|
+
# Stan Smith 2018-10-02 added local reference system
|
|
5
7
|
# Stan Smith 2017-09-28 add altitude to bounding box for fgdc
|
|
6
8
|
# Stan Smith 2017-09-28 add description to geographicExtent for fgdc
|
|
7
9
|
# Stan Smith 2017-04-22 removed 'intObj = ' from new object definitions
|
|
@@ -848,11 +850,8 @@ class InternalMetadata
|
|
|
848
850
|
def newProjection
|
|
849
851
|
{
|
|
850
852
|
projectionIdentifier: {},
|
|
851
|
-
|
|
852
|
-
gridSystemName: nil,
|
|
853
|
+
gridIdentifier: {},
|
|
853
854
|
gridZone: nil,
|
|
854
|
-
projection: nil,
|
|
855
|
-
projectionName: nil,
|
|
856
855
|
standardParallel1: nil,
|
|
857
856
|
standardParallel2: nil,
|
|
858
857
|
longitudeOfCentralMeridian: nil,
|
|
@@ -873,26 +872,21 @@ class InternalMetadata
|
|
|
873
872
|
obliqueLinePoints: [],
|
|
874
873
|
landsatNumber: nil,
|
|
875
874
|
landsatPath: nil,
|
|
876
|
-
|
|
877
|
-
localPlanarGeoreference: nil,
|
|
878
|
-
otherGridDescription: nil,
|
|
879
|
-
otherProjectionDescription: nil
|
|
875
|
+
local: {}
|
|
880
876
|
}
|
|
881
877
|
end
|
|
882
878
|
|
|
883
879
|
def newObliqueLinePoint
|
|
884
880
|
{
|
|
885
|
-
|
|
886
|
-
|
|
881
|
+
obliqueLineLatitude: nil,
|
|
882
|
+
obliqueLineLongitude: nil
|
|
887
883
|
}
|
|
888
884
|
end
|
|
889
885
|
|
|
890
886
|
def newGeodetic
|
|
891
887
|
{
|
|
892
888
|
datumIdentifier: {},
|
|
893
|
-
datumName: nil,
|
|
894
889
|
ellipsoidIdentifier: {},
|
|
895
|
-
ellipsoidName: nil,
|
|
896
890
|
semiMajorAxis: nil,
|
|
897
891
|
axisUnits: nil,
|
|
898
892
|
denominatorOfFlatteningRatio: nil
|
|
@@ -902,13 +896,19 @@ class InternalMetadata
|
|
|
902
896
|
def newVerticalDatum
|
|
903
897
|
{
|
|
904
898
|
datumIdentifier: {},
|
|
905
|
-
datumName: nil,
|
|
906
899
|
isDepthSystem: false,
|
|
907
900
|
encodingMethod: nil,
|
|
908
901
|
verticalResolution: nil,
|
|
909
902
|
unitOfMeasure: nil
|
|
910
903
|
}
|
|
904
|
+
end
|
|
911
905
|
|
|
906
|
+
def newLocal
|
|
907
|
+
{
|
|
908
|
+
description: nil,
|
|
909
|
+
georeference: nil,
|
|
910
|
+
fixedToEarth: true
|
|
911
|
+
}
|
|
912
912
|
end
|
|
913
913
|
|
|
914
914
|
|
|
@@ -1038,7 +1038,7 @@ class InternalMetadata
|
|
|
1038
1038
|
idProcedure: nil,
|
|
1039
1039
|
idCompleteness: nil,
|
|
1040
1040
|
vouchers: [],
|
|
1041
|
-
|
|
1041
|
+
taxonClasses: []
|
|
1042
1042
|
}
|
|
1043
1043
|
end
|
|
1044
1044
|
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
# Reader - fgdc to internal data structure
|
|
2
|
+
# unpack fgdc map grid coordinate system
|
|
3
|
+
|
|
4
|
+
# History:
|
|
5
|
+
# Stan Smith 2018-10-04 original script
|
|
6
|
+
|
|
7
|
+
require 'nokogiri'
|
|
8
|
+
require_relative '../mapProjections/projection_equirectangular'
|
|
9
|
+
require_relative '../mapProjections/projection_azimuthEquidistant'
|
|
10
|
+
|
|
11
|
+
module ADIWG
|
|
12
|
+
module Mdtranslator
|
|
13
|
+
module Readers
|
|
14
|
+
module Fgdc
|
|
15
|
+
|
|
16
|
+
module MapGridEqualArcSecond
|
|
17
|
+
|
|
18
|
+
def self.unpack(xArc, hProjection, hResponseObj)
|
|
19
|
+
|
|
20
|
+
# grid system 4.1.2.2.5 (arcsys) - equal arc-second coordinate system
|
|
21
|
+
|
|
22
|
+
hGridSystemId = hProjection[:gridIdentifier]
|
|
23
|
+
hProjectionId = hProjection[:projectionIdentifier]
|
|
24
|
+
|
|
25
|
+
hGridSystemId[:identifier] = 'arcsys'
|
|
26
|
+
hGridSystemId[:name] = 'Equal Arc-Second Coordinate System' if hGridSystemId[:name].nil?
|
|
27
|
+
|
|
28
|
+
# grid system 4.1.2.2.5.1 (arcszone) - state plane zone number {1..18} (required)
|
|
29
|
+
# -> ReferenceSystemParameters.projection.gridZone
|
|
30
|
+
zone = xArc.xpath('./arczone').text
|
|
31
|
+
unless zone.empty?
|
|
32
|
+
hProjection[:gridZone] = zone
|
|
33
|
+
end
|
|
34
|
+
if zone.empty?
|
|
35
|
+
hResponseObj[:readerExecutionMessages] <<
|
|
36
|
+
'WARNING: FGDC reader: equal arc-second zone number is missing'
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
# + [ equirectangular | azimuthal equidistant ] (required)
|
|
40
|
+
# + equirectangular
|
|
41
|
+
xEquiR = xArc.xpath('./equirect')
|
|
42
|
+
unless xEquiR.empty?
|
|
43
|
+
hProjectionId[:identifier] = 'equirectangular'
|
|
44
|
+
hProjectionId[:name] = 'Equirectangular'
|
|
45
|
+
return EquirectangularProjection.unpack(xEquiR, hProjection, hResponseObj)
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
# + azimuthal equidistant
|
|
49
|
+
xAzimuthE = xArc.xpath('./azimequi')
|
|
50
|
+
unless xAzimuthE.empty?
|
|
51
|
+
hProjectionId[:identifier] = 'azimuthalEquidistant'
|
|
52
|
+
hProjectionId[:name] = 'Azimuthal Equidistant'
|
|
53
|
+
return AzimuthEquidistantProjection.unpack(xAzimuthE, hProjection, hResponseObj)
|
|
54
|
+
end
|
|
55
|
+
|
|
56
|
+
# error message
|
|
57
|
+
hResponseObj[:readerExecutionMessages] <<
|
|
58
|
+
'WARNING: FGDC reader: UPS equal arc-second projection definition is missing'
|
|
59
|
+
|
|
60
|
+
return hProjection
|
|
61
|
+
|
|
62
|
+
end
|
|
63
|
+
|
|
64
|
+
end
|
|
65
|
+
|
|
66
|
+
end
|
|
67
|
+
end
|
|
68
|
+
end
|
|
69
|
+
end
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
# Reader - fgdc to internal data structure
|
|
2
|
+
# unpack fgdc map grid coordinate system
|
|
3
|
+
|
|
4
|
+
# History:
|
|
5
|
+
# Stan Smith 2018-10-04 original script
|
|
6
|
+
|
|
7
|
+
require 'nokogiri'
|
|
8
|
+
require_relative '../mapProjections/projection_transverseMercator'
|
|
9
|
+
|
|
10
|
+
module ADIWG
|
|
11
|
+
module Mdtranslator
|
|
12
|
+
module Readers
|
|
13
|
+
module Fgdc
|
|
14
|
+
|
|
15
|
+
module MapGridOther
|
|
16
|
+
|
|
17
|
+
def self.unpack(other, hProjection)
|
|
18
|
+
|
|
19
|
+
# grid system 4.1.2.2.6 (othergrd) - other coordinate system {text}
|
|
20
|
+
# -> ReferenceSystemParameters.projection.gridIdentifier.description
|
|
21
|
+
|
|
22
|
+
hProjectionId = hProjection[:projectionIdentifier]
|
|
23
|
+
hGridSystemId = hProjection[:gridIdentifier]
|
|
24
|
+
|
|
25
|
+
hGridSystemId[:identifier] = 'other'
|
|
26
|
+
hGridSystemId[:name] = 'Other Grid Coordinate System' if hGridSystemId[:name].nil?
|
|
27
|
+
hGridSystemId[:description] = other
|
|
28
|
+
|
|
29
|
+
hProjectionId[:identifier] = 'other'
|
|
30
|
+
hProjectionId[:name] = 'Other Projection'
|
|
31
|
+
hProjectionId[:description] = 'for description see grid system description'
|
|
32
|
+
|
|
33
|
+
return hProjection
|
|
34
|
+
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
end
|
|
40
|
+
end
|
|
41
|
+
end
|
|
42
|
+
end
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
# Reader - fgdc to internal data structure
|
|
2
|
+
# unpack fgdc map grid coordinate system
|
|
3
|
+
|
|
4
|
+
# History:
|
|
5
|
+
# Stan Smith 2018-10-04 original script
|
|
6
|
+
|
|
7
|
+
require 'nokogiri'
|
|
8
|
+
require_relative '../mapProjections/projection_transverseMercator'
|
|
9
|
+
require_relative '../mapProjections/projection_lambertConic'
|
|
10
|
+
require_relative '../mapProjections/projection_obliqueMercator'
|
|
11
|
+
require_relative '../mapProjections/projection_polyconic'
|
|
12
|
+
|
|
13
|
+
module ADIWG
|
|
14
|
+
module Mdtranslator
|
|
15
|
+
module Readers
|
|
16
|
+
module Fgdc
|
|
17
|
+
|
|
18
|
+
module MapGridStatePlane
|
|
19
|
+
|
|
20
|
+
def self.unpack(xStateP, hProjection, hResponseObj)
|
|
21
|
+
|
|
22
|
+
# grid system 4.1.2.2.4 (spcs) - state plane coordinate system
|
|
23
|
+
|
|
24
|
+
hGridSystemId = hProjection[:gridIdentifier]
|
|
25
|
+
hProjectionId = hProjection[:projectionIdentifier]
|
|
26
|
+
|
|
27
|
+
hGridSystemId[:identifier] = 'spcs'
|
|
28
|
+
hGridSystemId[:name] = 'State Plane Coordinate System' if hGridSystemId[:name].nil?
|
|
29
|
+
|
|
30
|
+
# grid system 4.1.2.2.4.1 (spcszone) - state plane zone number {nnnn} (required)
|
|
31
|
+
# -> ReferenceSystemParameters.projection.gridZone
|
|
32
|
+
zone = xStateP.xpath('./spcszone').text
|
|
33
|
+
unless zone.empty?
|
|
34
|
+
hProjection[:gridZone] = zone
|
|
35
|
+
end
|
|
36
|
+
if zone.empty?
|
|
37
|
+
hResponseObj[:readerExecutionMessages] <<
|
|
38
|
+
'WARNING: FGDC reader: state plane zone number is missing'
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
# + [ lambert conformal conic | transverse mercator | oblique mercator | polyconic ] (required)
|
|
42
|
+
# + lambert conformal conic
|
|
43
|
+
xLambert = xStateP.xpath('./lambertc')
|
|
44
|
+
unless xLambert.empty?
|
|
45
|
+
hProjectionId[:identifier] = 'lambertConic'
|
|
46
|
+
hProjectionId[:name] = 'Lambert Conformal Conic'
|
|
47
|
+
return LambertConicProjection.unpack(xLambert, hProjection, hResponseObj)
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
# + transverse mercator
|
|
51
|
+
xTransMer = xStateP.xpath('./transmer')
|
|
52
|
+
unless xTransMer.empty?
|
|
53
|
+
hProjectionId[:identifier] = 'transverseMercator'
|
|
54
|
+
hProjectionId[:name] = 'Transverse Mercator'
|
|
55
|
+
return TransverseMercatorProjection.unpack(xTransMer, hProjection, hResponseObj)
|
|
56
|
+
end
|
|
57
|
+
|
|
58
|
+
# + oblique mercator
|
|
59
|
+
xObliqueM = xStateP.xpath('./obqmerc')
|
|
60
|
+
unless xObliqueM.empty?
|
|
61
|
+
hProjectionId[:identifier] = 'obliqueMercator'
|
|
62
|
+
hProjectionId[:name] = 'Oblique Mercator'
|
|
63
|
+
return ObliqueMercatorProjection.unpack(xObliqueM, hProjection, hResponseObj)
|
|
64
|
+
end
|
|
65
|
+
|
|
66
|
+
# + polyconic
|
|
67
|
+
xPolyCon = xStateP.xpath('./polycon')
|
|
68
|
+
unless xPolyCon.empty?
|
|
69
|
+
hProjectionId[:identifier] = 'polyconic'
|
|
70
|
+
hProjectionId[:name] = 'Polyconic'
|
|
71
|
+
return PolyconicProjection.unpack(xPolyCon, hProjection, hResponseObj)
|
|
72
|
+
end
|
|
73
|
+
|
|
74
|
+
# error message
|
|
75
|
+
hResponseObj[:readerExecutionMessages] <<
|
|
76
|
+
'WARNING: FGDC reader: UPS state plane projection definition is missing'
|
|
77
|
+
|
|
78
|
+
return hProjection
|
|
79
|
+
|
|
80
|
+
end
|
|
81
|
+
|
|
82
|
+
end
|
|
83
|
+
|
|
84
|
+
end
|
|
85
|
+
end
|
|
86
|
+
end
|
|
87
|
+
end
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
# Reader - fgdc to internal data structure
|
|
2
|
+
# unpack fgdc map grid coordinate system
|
|
3
|
+
|
|
4
|
+
# History:
|
|
5
|
+
# Stan Smith 2018-10-04 original script
|
|
6
|
+
|
|
7
|
+
require 'nokogiri'
|
|
8
|
+
require_relative '../mapProjections/projection_polarStereo'
|
|
9
|
+
|
|
10
|
+
module ADIWG
|
|
11
|
+
module Mdtranslator
|
|
12
|
+
module Readers
|
|
13
|
+
module Fgdc
|
|
14
|
+
|
|
15
|
+
module MapGridUps
|
|
16
|
+
|
|
17
|
+
def self.unpack(xUPS, hProjection, hResponseObj)
|
|
18
|
+
|
|
19
|
+
# grid system 4.1.2.2.3 (ups) - universal polar stereographic
|
|
20
|
+
|
|
21
|
+
hGridSystemId = hProjection[:gridIdentifier]
|
|
22
|
+
hProjectionId = hProjection[:projectionIdentifier]
|
|
23
|
+
|
|
24
|
+
hGridSystemId[:identifier] = 'ups'
|
|
25
|
+
hGridSystemId[:name] = 'Universal Polar Stereographic' if hGridSystemId[:name].nil?
|
|
26
|
+
|
|
27
|
+
# grid system 4.1.2.2.3.1 (upszone) - utm zone number {-60..-1, 1..60} (required)
|
|
28
|
+
# -> ReferenceSystemParameters.projection.gridZone
|
|
29
|
+
zone = xUPS.xpath('./upszone').text
|
|
30
|
+
unless zone.empty?
|
|
31
|
+
hProjection[:gridZone] = zone
|
|
32
|
+
end
|
|
33
|
+
if zone.empty?
|
|
34
|
+
hResponseObj[:readerExecutionMessages] << 'WARNING: FGDC reader: UPS zone number is missing'
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
# + polar stereographic (required)
|
|
38
|
+
xPolarS = xUPS.xpath('./polarst')
|
|
39
|
+
unless xPolarS.empty?
|
|
40
|
+
hProjectionId[:identifier] = 'polarStereo'
|
|
41
|
+
hProjectionId[:name] = 'Polar Stereographic'
|
|
42
|
+
return PolarStereoProjection.unpack(xPolarS, hProjection, hResponseObj)
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
# error message
|
|
46
|
+
hResponseObj[:readerExecutionMessages] <<
|
|
47
|
+
'WARNING: FGDC reader: UPS polar stereographic definition is missing'
|
|
48
|
+
|
|
49
|
+
return hProjection
|
|
50
|
+
|
|
51
|
+
end
|
|
52
|
+
|
|
53
|
+
end
|
|
54
|
+
|
|
55
|
+
end
|
|
56
|
+
end
|
|
57
|
+
end
|
|
58
|
+
end
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
# Reader - fgdc to internal data structure
|
|
2
|
+
# unpack fgdc map grid coordinate system
|
|
3
|
+
|
|
4
|
+
# History:
|
|
5
|
+
# Stan Smith 2018-10-04 original script
|
|
6
|
+
|
|
7
|
+
require 'nokogiri'
|
|
8
|
+
require_relative '../mapProjections/projection_transverseMercator'
|
|
9
|
+
|
|
10
|
+
module ADIWG
|
|
11
|
+
module Mdtranslator
|
|
12
|
+
module Readers
|
|
13
|
+
module Fgdc
|
|
14
|
+
|
|
15
|
+
module MapGridUtm
|
|
16
|
+
|
|
17
|
+
def self.unpack(xUTM, hProjection, hResponseObj)
|
|
18
|
+
|
|
19
|
+
# grid system 4.1.2.2.2 (utm) - universal transverse mercator
|
|
20
|
+
|
|
21
|
+
hGridSystemId = hProjection[:gridIdentifier]
|
|
22
|
+
hProjectionId = hProjection[:projectionIdentifier]
|
|
23
|
+
|
|
24
|
+
hGridSystemId[:identifier] = 'utm'
|
|
25
|
+
hGridSystemId[:name] = 'Universal Transverse Mercator' if hGridSystemId[:name].nil?
|
|
26
|
+
|
|
27
|
+
# grid system 4.1.2.2.2.1 (utmzone) - utm zone number {-60..-1, 1..60} (required)
|
|
28
|
+
# -> ReferenceSystemParameters.projection.gridZone
|
|
29
|
+
zone = xUTM.xpath('./utmzone').text
|
|
30
|
+
unless zone.empty?
|
|
31
|
+
hProjection[:gridZone] = zone
|
|
32
|
+
end
|
|
33
|
+
if zone.empty?
|
|
34
|
+
hResponseObj[:readerExecutionMessages] << 'WARNING: FGDC reader: UTM zone number is missing'
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
# + transverse mercator (required)
|
|
38
|
+
xTransMer = xUTM.xpath('./transmer')
|
|
39
|
+
unless xTransMer.empty?
|
|
40
|
+
hProjectionId[:identifier] = 'transverseMercator'
|
|
41
|
+
hProjectionId[:name] = 'Transverse Mercator'
|
|
42
|
+
return TransverseMercatorProjection.unpack(xTransMer, hProjection, hResponseObj)
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
# error message
|
|
46
|
+
hResponseObj[:readerExecutionMessages] <<
|
|
47
|
+
'WARNING: FGDC reader: UTM transverse mercator definition is missing'
|
|
48
|
+
|
|
49
|
+
return hProjection
|
|
50
|
+
|
|
51
|
+
end
|
|
52
|
+
|
|
53
|
+
end
|
|
54
|
+
|
|
55
|
+
end
|
|
56
|
+
end
|
|
57
|
+
end
|
|
58
|
+
end
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
# unpack fgdc map projection - albers
|
|
3
3
|
|
|
4
4
|
# History:
|
|
5
|
+
# Stan Smith 2018-10-03 refactor mdJson projection object
|
|
5
6
|
# Stan Smith 2017-10-04 original script
|
|
6
7
|
|
|
7
8
|
require 'nokogiri'
|
|
@@ -20,28 +21,27 @@ module ADIWG
|
|
|
20
21
|
# map projection 4.1.2.1.2 (albers) - Albers Conical Equal Area
|
|
21
22
|
unless xParams.empty?
|
|
22
23
|
paramCount = 0
|
|
23
|
-
hProjection[:projection] = 'albers'
|
|
24
|
-
hProjection[:projectionName] = 'Albers Conical Equal Area'
|
|
25
24
|
|
|
26
25
|
# -> ReferenceSystemParameters.projection.standardParallel1
|
|
27
26
|
# -> ReferenceSystemParameters.projection.standardParallel2
|
|
28
|
-
paramCount += ProjectionCommon.unpackStandParallel(xParams, hProjection
|
|
27
|
+
paramCount += ProjectionCommon.unpackStandParallel(xParams, hProjection)
|
|
29
28
|
|
|
30
29
|
# -> ReferenceSystemParameters.projection.longitudeOfCentralMeridian
|
|
31
|
-
paramCount += ProjectionCommon.unpackLongCM(xParams, hProjection
|
|
30
|
+
paramCount += ProjectionCommon.unpackLongCM(xParams, hProjection)
|
|
32
31
|
|
|
33
32
|
# -> ReferenceSystemParameters.projection.latitudeOfProjectionOrigin
|
|
34
|
-
paramCount += ProjectionCommon.unpackLatPO(xParams, hProjection
|
|
33
|
+
paramCount += ProjectionCommon.unpackLatPO(xParams, hProjection)
|
|
35
34
|
|
|
36
35
|
# -> ReferenceSystemParameters.projection.falseEasting
|
|
37
36
|
# -> ReferenceSystemParameters.projection.falseNorthing
|
|
38
|
-
paramCount += ProjectionCommon.unpackFalseNE(xParams, hProjection
|
|
37
|
+
paramCount += ProjectionCommon.unpackFalseNE(xParams, hProjection)
|
|
39
38
|
|
|
40
39
|
# verify parameter count
|
|
41
40
|
if paramCount == 6
|
|
42
41
|
return hProjection
|
|
43
42
|
else
|
|
44
|
-
hResponseObj[:readerExecutionMessages] <<
|
|
43
|
+
hResponseObj[:readerExecutionMessages] <<
|
|
44
|
+
'WARNING: Albers projection is missing one or more parameters'
|
|
45
45
|
end
|
|
46
46
|
end
|
|
47
47
|
|
data/lib/adiwg/mdtranslator/readers/fgdc/modules/mapProjections/projection_azimuthEquidistant.rb
CHANGED
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
# unpack fgdc map projection - azimuth equidistant
|
|
3
3
|
|
|
4
4
|
# History:
|
|
5
|
+
# Stan Smith 2018-10-03 refactor mdJson projection object
|
|
5
6
|
# Stan Smith 2017-10-16 original script
|
|
6
7
|
|
|
7
8
|
require 'nokogiri'
|
|
@@ -20,24 +21,23 @@ module ADIWG
|
|
|
20
21
|
# map projection 4.1.2.1.3 (azimequi) - Azimuthal Equidistant
|
|
21
22
|
unless xParams.empty?
|
|
22
23
|
paramCount = 0
|
|
23
|
-
hProjection[:projection] = 'azimuthalEquidistant'
|
|
24
|
-
hProjection[:projectionName] = 'Azimuthal Equidistant'
|
|
25
24
|
|
|
26
25
|
# -> ReferenceSystemParameters.projection.longitudeOfCentralMeridian
|
|
27
|
-
paramCount += ProjectionCommon.unpackLongCM(xParams, hProjection
|
|
26
|
+
paramCount += ProjectionCommon.unpackLongCM(xParams, hProjection)
|
|
28
27
|
|
|
29
28
|
# -> ReferenceSystemParameters.projection.latitudeOfProjectionOrigin
|
|
30
|
-
paramCount += ProjectionCommon.unpackLatPO(xParams, hProjection
|
|
29
|
+
paramCount += ProjectionCommon.unpackLatPO(xParams, hProjection)
|
|
31
30
|
|
|
32
31
|
# -> ReferenceSystemParameters.projection.falseEasting
|
|
33
32
|
# -> ReferenceSystemParameters.projection.falseNorthing
|
|
34
|
-
paramCount += ProjectionCommon.unpackFalseNE(xParams, hProjection
|
|
33
|
+
paramCount += ProjectionCommon.unpackFalseNE(xParams, hProjection)
|
|
35
34
|
|
|
36
35
|
# verify parameter count
|
|
37
36
|
if paramCount == 4
|
|
38
37
|
return hProjection
|
|
39
38
|
else
|
|
40
|
-
hResponseObj[:readerExecutionMessages] <<
|
|
39
|
+
hResponseObj[:readerExecutionMessages] <<
|
|
40
|
+
'WARNING: FGDC reader: Azimuth Equidistant projection is missing one or more parameters'
|
|
41
41
|
end
|
|
42
42
|
end
|
|
43
43
|
|