aixm 0.3.1 → 0.3.2
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/CHANGELOG.md +18 -6
- data/README.md +2 -0
- data/lib/aixm.rb +3 -0
- data/lib/aixm/component/geometry/circle.rb +6 -6
- data/lib/aixm/component/helipad.rb +19 -12
- data/lib/aixm/component/runway.rb +34 -22
- data/lib/aixm/d.rb +66 -0
- data/lib/aixm/document.rb +2 -14
- data/lib/aixm/feature/airport.rb +1 -0
- data/lib/aixm/feature/obstacle.rb +288 -0
- data/lib/aixm/feature/obstacle_group.rb +104 -0
- data/lib/aixm/refinements.rb +105 -102
- data/lib/aixm/shortcuts.rb +3 -0
- data/lib/aixm/version.rb +1 -1
- data/lib/aixm/xy.rb +5 -4
- data/lib/aixm/z.rb +3 -3
- data/spec/factory.rb +108 -5
- data/spec/lib/aixm/component/geometry/circle_spec.rb +4 -8
- data/spec/lib/aixm/component/geometry_spec.rb +2 -2
- data/spec/lib/aixm/component/helipad_spec.rb +2 -10
- data/spec/lib/aixm/component/runway_spec.rb +4 -16
- data/spec/lib/aixm/d_spec.rb +130 -0
- data/spec/lib/aixm/document_spec.rb +215 -2
- data/spec/lib/aixm/feature/obstacle_group_spec.rb +284 -0
- data/spec/lib/aixm/feature/obstacle_spec.rb +285 -0
- data/spec/lib/aixm/refinements_spec.rb +100 -76
- data/spec/lib/aixm/xy_spec.rb +3 -3
- metadata +11 -2
@@ -4,7 +4,7 @@ describe AIXM::Component::Geometry::Circle do
|
|
4
4
|
subject do
|
5
5
|
AIXM.circle(
|
6
6
|
center_xy: AIXM.xy(lat: 12.12345678, long: -23.12345678),
|
7
|
-
radius: 15
|
7
|
+
radius: AIXM.d(15, :km)
|
8
8
|
)
|
9
9
|
end
|
10
10
|
|
@@ -20,11 +20,7 @@ describe AIXM::Component::Geometry::Circle do
|
|
20
20
|
|
21
21
|
describe :radius= do
|
22
22
|
it "fails on invalid values" do
|
23
|
-
[nil, 0,
|
24
|
-
end
|
25
|
-
|
26
|
-
it "converts Numeric to Float" do
|
27
|
-
subject.tap { |s| s.radius = 5 }.radius.must_equal 5.0
|
23
|
+
[nil, 0, 2, AIXM.d(0, :m)].wont_be_written_to subject, :radius
|
28
24
|
end
|
29
25
|
end
|
30
26
|
|
@@ -38,7 +34,7 @@ describe AIXM::Component::Geometry::Circle do
|
|
38
34
|
it "builds correct AIXM for circles not near the equator" do
|
39
35
|
subject = AIXM.circle(
|
40
36
|
center_xy: AIXM.xy(lat: 11.1, long: 22.2),
|
41
|
-
radius: 25
|
37
|
+
radius: AIXM.d(25, :km)
|
42
38
|
)
|
43
39
|
AIXM.aixm!
|
44
40
|
subject.to_xml.must_equal <<~END
|
@@ -56,7 +52,7 @@ describe AIXM::Component::Geometry::Circle do
|
|
56
52
|
it "builds correct AIXM for circles near the equator" do
|
57
53
|
subject = AIXM.circle(
|
58
54
|
center_xy: AIXM.xy(lat: -0.0005, long: -22.2),
|
59
|
-
radius: 50
|
55
|
+
radius: AIXM.d(50, :km)
|
60
56
|
)
|
61
57
|
AIXM.aixm!
|
62
58
|
subject.to_xml.must_equal <<~END
|
@@ -272,7 +272,7 @@ describe AIXM::Component::Geometry do
|
|
272
272
|
context "circle" do
|
273
273
|
subject do
|
274
274
|
AIXM.geometry.tap do |geometry|
|
275
|
-
geometry << AIXM.circle(center_xy: AIXM.xy(lat: 11, long: 22), radius: 10)
|
275
|
+
geometry << AIXM.circle(center_xy: AIXM.xy(lat: 11, long: 22), radius: AIXM.d(10, :km))
|
276
276
|
end
|
277
277
|
end
|
278
278
|
|
@@ -301,7 +301,7 @@ describe AIXM::Component::Geometry do
|
|
301
301
|
context "circle with additional elements" do
|
302
302
|
subject do
|
303
303
|
AIXM.geometry.tap do |geometry|
|
304
|
-
geometry << AIXM.circle(center_xy: AIXM.xy(lat: 11, long: 22), radius: 10)
|
304
|
+
geometry << AIXM.circle(center_xy: AIXM.xy(lat: 11, long: 22), radius: AIXM.d(10, :km))
|
305
305
|
geometry << AIXM.point(xy: AIXM.xy(lat: 22, long: 33))
|
306
306
|
end
|
307
307
|
end
|
@@ -29,30 +29,22 @@ describe AIXM::Component::Helipad do
|
|
29
29
|
|
30
30
|
describe :length= do
|
31
31
|
it "fails on invalid values" do
|
32
|
-
[:foobar, 0,
|
32
|
+
[:foobar, 0, 1, AIXM.d(0, :m)].wont_be_written_to subject, :length
|
33
33
|
end
|
34
34
|
|
35
35
|
it "accepts nil value" do
|
36
36
|
[nil].must_be_written_to subject, :length
|
37
37
|
end
|
38
|
-
|
39
|
-
it "converts valid Numeric values to Integer" do
|
40
|
-
subject.tap { |s| s.length = 1000.5 }.length.must_equal 1000
|
41
|
-
end
|
42
38
|
end
|
43
39
|
|
44
40
|
describe :width= do
|
45
41
|
it "fails on invalid values" do
|
46
|
-
[:foobar, 0,
|
42
|
+
[:foobar, 0, 1, AIXM.d(0, :m)].wont_be_written_to subject, :width
|
47
43
|
end
|
48
44
|
|
49
45
|
it "accepts nil value" do
|
50
46
|
[nil].must_be_written_to subject, :width
|
51
47
|
end
|
52
|
-
|
53
|
-
it "converts valid Numeric values to Integer" do
|
54
|
-
subject.tap { |s| s.width = 150.5 }.width.must_equal 150
|
55
|
-
end
|
56
48
|
end
|
57
49
|
|
58
50
|
describe :composition= do
|
@@ -30,30 +30,22 @@ describe AIXM::Component::Runway do
|
|
30
30
|
|
31
31
|
describe :length= do
|
32
32
|
it "fails on invalid values" do
|
33
|
-
[:foobar, 0,
|
33
|
+
[:foobar, 0, 1, AIXM.d(0, :m)].wont_be_written_to subject, :length
|
34
34
|
end
|
35
35
|
|
36
36
|
it "accepts nil value" do
|
37
37
|
[nil].must_be_written_to subject, :length
|
38
38
|
end
|
39
|
-
|
40
|
-
it "converts valid values to integer" do
|
41
|
-
subject.tap { |s| s.length = 1000.5 }.length.must_equal 1000
|
42
|
-
end
|
43
39
|
end
|
44
40
|
|
45
41
|
describe :width= do
|
46
42
|
it "fails on invalid values" do
|
47
|
-
[:foobar, 0,
|
43
|
+
[:foobar, 0, 1, AIXM.d(0, :m)].wont_be_written_to subject, :width
|
48
44
|
end
|
49
45
|
|
50
46
|
it "accepts nil value" do
|
51
47
|
[nil].must_be_written_to subject, :width
|
52
48
|
end
|
53
|
-
|
54
|
-
it "converts valid values to integer" do
|
55
|
-
subject.tap { |s| s.width = 150.5 }.width.must_equal 150
|
56
|
-
end
|
57
49
|
end
|
58
50
|
|
59
51
|
describe :composition= do
|
@@ -310,17 +302,13 @@ describe AIXM::Component::Runway::Direction do
|
|
310
302
|
|
311
303
|
describe :displaced_threshold= do
|
312
304
|
it "fails on invalid values" do
|
313
|
-
[:foobar].wont_be_written_to subject, :displaced_threshold
|
314
|
-
end
|
315
|
-
|
316
|
-
it "converts valid Numeric values to Integer" do
|
317
|
-
subject.tap { |s| s.displaced_threshold = 222.0 }.displaced_threshold.must_equal 222
|
305
|
+
[:foobar, 1, AIXM.d(0, :m)].wont_be_written_to subject, :displaced_threshold
|
318
306
|
end
|
319
307
|
|
320
308
|
it "converts coordinates to distance" do
|
321
309
|
subject.xy = AIXM.xy(lat: %q(43°59'54.71"N), long: %q(004°45'28.35"E))
|
322
310
|
subject.displaced_threshold = AIXM.xy(lat: %q(43°59'48.47"N), long: %q(004°45'30.62"E))
|
323
|
-
subject.displaced_threshold.must_equal 199
|
311
|
+
subject.displaced_threshold.must_equal AIXM.d(199, :m)
|
324
312
|
end
|
325
313
|
end
|
326
314
|
|
@@ -0,0 +1,130 @@
|
|
1
|
+
require_relative '../../spec_helper'
|
2
|
+
|
3
|
+
describe AIXM::D do
|
4
|
+
subject do
|
5
|
+
AIXM::Factory.d
|
6
|
+
end
|
7
|
+
|
8
|
+
describe :dist= do
|
9
|
+
it "fails on invalid values" do
|
10
|
+
[:foobar, -1].wont_be_written_to subject, :dist
|
11
|
+
end
|
12
|
+
|
13
|
+
it "converts Numeric to Float" do
|
14
|
+
subject.tap { |s| s.dist = 5 }.dist.must_equal 5.0
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
describe :unit= do
|
19
|
+
it "fails on invalid values" do
|
20
|
+
[:foobar, 123].wont_be_written_to subject, :unit
|
21
|
+
end
|
22
|
+
|
23
|
+
it "symbolizes and downcases values" do
|
24
|
+
subject.tap { |s| s.unit = "NM" }.unit.must_equal :nm
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
describe :<=> do
|
29
|
+
it "recognizes objects with identical unit and distance as equal" do
|
30
|
+
a = AIXM.d(123, :m)
|
31
|
+
b = AIXM.d(123.0, 'M')
|
32
|
+
a.must_equal b
|
33
|
+
end
|
34
|
+
|
35
|
+
it "recognizes objects with different units and converted distance as equal" do
|
36
|
+
a = AIXM.d(123, :m)
|
37
|
+
b = AIXM.d(403.54330709, 'FT')
|
38
|
+
a.must_equal b
|
39
|
+
end
|
40
|
+
|
41
|
+
it "recognizes objects with different units and identical distance as unequal" do
|
42
|
+
a = AIXM.d(123, :m)
|
43
|
+
b = AIXM.d(123, :ft)
|
44
|
+
a.wont_equal b
|
45
|
+
end
|
46
|
+
|
47
|
+
it "recognizes objects of different class as unequal" do
|
48
|
+
a = AIXM.d(123, :m)
|
49
|
+
b = :oggy
|
50
|
+
a.wont_equal b
|
51
|
+
end
|
52
|
+
end
|
53
|
+
|
54
|
+
describe :to_ft do
|
55
|
+
it "leaves feet untouched" do
|
56
|
+
subject = AIXM.d(2, :ft)
|
57
|
+
subject.to_ft.must_be_same_as subject
|
58
|
+
end
|
59
|
+
|
60
|
+
it "converts kilometers to feet" do
|
61
|
+
AIXM.d(0.5, :km).to_ft.must_equal AIXM.d(1640.4199475, :ft)
|
62
|
+
end
|
63
|
+
|
64
|
+
it "converts meters to feet" do
|
65
|
+
AIXM.d(200, :m).to_ft.must_equal AIXM.d(656.167979, :ft)
|
66
|
+
end
|
67
|
+
|
68
|
+
it "converts nautical miles to feet" do
|
69
|
+
AIXM.d(0.5, :nm).to_ft.must_equal AIXM.d(3038.05774277, :ft)
|
70
|
+
end
|
71
|
+
end
|
72
|
+
|
73
|
+
describe :to_km do
|
74
|
+
it "leaves kilometers untouched" do
|
75
|
+
subject = AIXM.d(2, :km)
|
76
|
+
subject.to_km.must_be_same_as subject
|
77
|
+
end
|
78
|
+
|
79
|
+
it "converts feet to kilometers" do
|
80
|
+
AIXM.d(10_000, :ft).to_km.must_equal AIXM.d(3.048, :km)
|
81
|
+
end
|
82
|
+
|
83
|
+
it "converts meters to kilometers" do
|
84
|
+
AIXM.d(2000, :m).to_km.must_equal AIXM.d(2, :km)
|
85
|
+
end
|
86
|
+
|
87
|
+
it "converts nautical miles to kilometers" do
|
88
|
+
AIXM.d(10, :nm).to_km.must_equal AIXM.d(18.52, :km)
|
89
|
+
end
|
90
|
+
end
|
91
|
+
|
92
|
+
describe :to_m do
|
93
|
+
it "leaves meters untouched" do
|
94
|
+
subject = AIXM.d(2, :m)
|
95
|
+
subject.to_m.must_be_same_as subject
|
96
|
+
end
|
97
|
+
|
98
|
+
it "converts feet to meters" do
|
99
|
+
AIXM.d(500, :ft).to_m.must_equal AIXM.d(152.4, :m)
|
100
|
+
end
|
101
|
+
|
102
|
+
it "converts kilometers to meters" do
|
103
|
+
AIXM.d(1.3, :km).to_m.must_equal AIXM.d(1300, :m)
|
104
|
+
end
|
105
|
+
|
106
|
+
it "converts nautical miles to meters" do
|
107
|
+
AIXM.d(0.8, :nm).to_m.must_equal AIXM.d(1481.6, :m)
|
108
|
+
end
|
109
|
+
end
|
110
|
+
|
111
|
+
describe :to_nm do
|
112
|
+
it "leaves nautical miles untouched" do
|
113
|
+
subject = AIXM.d(2, :nm)
|
114
|
+
subject.to_nm.must_be_same_as subject
|
115
|
+
end
|
116
|
+
|
117
|
+
it "converts feet to nautical miles" do
|
118
|
+
AIXM.d(11_000, :ft).to_nm.must_equal AIXM.d(1.81036717, :nm)
|
119
|
+
end
|
120
|
+
|
121
|
+
it "converts kilometers to nautical miles" do
|
122
|
+
AIXM.d(17, :km).to_nm.must_equal AIXM.d(9.17926565, :nm)
|
123
|
+
end
|
124
|
+
|
125
|
+
it "converts meters to nautical miles" do
|
126
|
+
AIXM.d(5800, :m).to_nm.must_equal AIXM.d(3.13174946, :nm)
|
127
|
+
end
|
128
|
+
end
|
129
|
+
|
130
|
+
end
|
@@ -27,7 +27,7 @@ describe AIXM::Document do
|
|
27
27
|
|
28
28
|
describe :created_at= do
|
29
29
|
it "fails on invalid values" do
|
30
|
-
[
|
30
|
+
['foobar', '2018-01-77'].wont_be_written_to subject, :created_at
|
31
31
|
end
|
32
32
|
|
33
33
|
it "parses dates and times" do
|
@@ -49,7 +49,7 @@ describe AIXM::Document do
|
|
49
49
|
|
50
50
|
describe :effective_at= do
|
51
51
|
it "fails on invalid values" do
|
52
|
-
[
|
52
|
+
['foobar', '2018-01-77'].wont_be_written_to subject, :effective_at
|
53
53
|
end
|
54
54
|
|
55
55
|
it "parses dates and times" do
|
@@ -617,6 +617,98 @@ describe AIXM::Document do
|
|
617
617
|
</Ttt>
|
618
618
|
<txtRmk>vortac navaid</txtRmk>
|
619
619
|
</Tcn>
|
620
|
+
<!-- Obstacle: [tower] 48.85825000N 002.29458889E EIFFEL TOWER -->
|
621
|
+
<Obs>
|
622
|
+
<ObsUid>
|
623
|
+
<geoLat>485129.70N</geoLat>
|
624
|
+
<geoLong>0021740.52E</geoLong>
|
625
|
+
</ObsUid>
|
626
|
+
<txtName>EIFFEL TOWER</txtName>
|
627
|
+
<txtDescrType>TOWER</txtDescrType>
|
628
|
+
<codeGroup>N</codeGroup>
|
629
|
+
<codeLgt>Y</codeLgt>
|
630
|
+
<txtDescrLgt>red strobes</txtDescrLgt>
|
631
|
+
<codeDatum>WGE</codeDatum>
|
632
|
+
<valGeoAccuracy>2</valGeoAccuracy>
|
633
|
+
<uomGeoAccuracy>M</uomGeoAccuracy>
|
634
|
+
<valElev>1187</valElev>
|
635
|
+
<valElevAccuracy>3</valElevAccuracy>
|
636
|
+
<valHgt>1063</valHgt>
|
637
|
+
<uomDistVer>FT</uomDistVer>
|
638
|
+
<txtRmk>Temporary light installations (white strobes, gyro light etc)</txtRmk>
|
639
|
+
</Obs>
|
640
|
+
<!-- Obstacle: [wind_turbine] 44.67501389N 004.87256667E LA TEISSONIERE 1 -->
|
641
|
+
<Obs>
|
642
|
+
<ObsUid>
|
643
|
+
<geoLat>444030.05N</geoLat>
|
644
|
+
<geoLong>0045221.24E</geoLong>
|
645
|
+
</ObsUid>
|
646
|
+
<txtName>LA TEISSONIERE 1</txtName>
|
647
|
+
<txtDescrType>WINDTURBINE</txtDescrType>
|
648
|
+
<codeGroup>Y</codeGroup>
|
649
|
+
<codeLgt>N</codeLgt>
|
650
|
+
<codeDatum>WGE</codeDatum>
|
651
|
+
<valGeoAccuracy>50</valGeoAccuracy>
|
652
|
+
<uomGeoAccuracy>M</uomGeoAccuracy>
|
653
|
+
<valElev>1764</valElev>
|
654
|
+
<valElevAccuracy>33</valElevAccuracy>
|
655
|
+
<valHgt>262</valHgt>
|
656
|
+
<uomDistVer>FT</uomDistVer>
|
657
|
+
</Obs>
|
658
|
+
<!-- Obstacle: [wind_turbine] 44.67946667N 004.87381111E LA TEISSONIERE 2 -->
|
659
|
+
<Obs>
|
660
|
+
<ObsUid>
|
661
|
+
<geoLat>444046.08N</geoLat>
|
662
|
+
<geoLong>0045225.72E</geoLong>
|
663
|
+
</ObsUid>
|
664
|
+
<txtName>LA TEISSONIERE 2</txtName>
|
665
|
+
<txtDescrType>WINDTURBINE</txtDescrType>
|
666
|
+
<codeGroup>Y</codeGroup>
|
667
|
+
<codeLgt>N</codeLgt>
|
668
|
+
<codeDatum>WGE</codeDatum>
|
669
|
+
<valGeoAccuracy>50</valGeoAccuracy>
|
670
|
+
<uomGeoAccuracy>M</uomGeoAccuracy>
|
671
|
+
<valElev>1738</valElev>
|
672
|
+
<valElevAccuracy>33</valElevAccuracy>
|
673
|
+
<valHgt>262</valHgt>
|
674
|
+
<uomDistVer>FT</uomDistVer>
|
675
|
+
</Obs>
|
676
|
+
<!-- Obstacle: [mast] 52.29639722N 002.10675278W DROITWICH LW NORTH -->
|
677
|
+
<Obs>
|
678
|
+
<ObsUid>
|
679
|
+
<geoLat>521747.03N</geoLat>
|
680
|
+
<geoLong>0020624.31W</geoLong>
|
681
|
+
</ObsUid>
|
682
|
+
<txtName>DROITWICH LW NORTH</txtName>
|
683
|
+
<txtDescrType>MAST</txtDescrType>
|
684
|
+
<codeGroup>Y</codeGroup>
|
685
|
+
<codeLgt>N</codeLgt>
|
686
|
+
<codeDatum>WGE</codeDatum>
|
687
|
+
<valGeoAccuracy>0</valGeoAccuracy>
|
688
|
+
<uomGeoAccuracy>M</uomGeoAccuracy>
|
689
|
+
<valElev>848</valElev>
|
690
|
+
<valElevAccuracy>0</valElevAccuracy>
|
691
|
+
<valHgt>700</valHgt>
|
692
|
+
<uomDistVer>FT</uomDistVer>
|
693
|
+
</Obs>
|
694
|
+
<!-- Obstacle: [mast] 52.29457778N 002.10568611W DROITWICH LW NORTH -->
|
695
|
+
<Obs>
|
696
|
+
<ObsUid>
|
697
|
+
<geoLat>521740.48N</geoLat>
|
698
|
+
<geoLong>0020620.47W</geoLong>
|
699
|
+
</ObsUid>
|
700
|
+
<txtName>DROITWICH LW NORTH</txtName>
|
701
|
+
<txtDescrType>MAST</txtDescrType>
|
702
|
+
<codeGroup>Y</codeGroup>
|
703
|
+
<codeLgt>N</codeLgt>
|
704
|
+
<codeDatum>WGE</codeDatum>
|
705
|
+
<valGeoAccuracy>0</valGeoAccuracy>
|
706
|
+
<uomGeoAccuracy>M</uomGeoAccuracy>
|
707
|
+
<valElev>848</valElev>
|
708
|
+
<valElevAccuracy>0</valElevAccuracy>
|
709
|
+
<valHgt>700</valHgt>
|
710
|
+
<uomDistVer>FT</uomDistVer>
|
711
|
+
</Obs>
|
620
712
|
</AIXM-Snapshot>
|
621
713
|
END
|
622
714
|
end
|
@@ -1175,6 +1267,127 @@ describe AIXM::Document do
|
|
1175
1267
|
</Ttt>
|
1176
1268
|
<txtRmk>vortac navaid</txtRmk>
|
1177
1269
|
</Tcn>
|
1270
|
+
<!-- Obstacle: [tower] 48.85825000N 002.29458889E EIFFEL TOWER -->
|
1271
|
+
<Obs>
|
1272
|
+
<ObsUid>
|
1273
|
+
<geoLat>48.85825000N</geoLat>
|
1274
|
+
<geoLong>002.29458889E</geoLong>
|
1275
|
+
</ObsUid>
|
1276
|
+
<txtName>EIFFEL TOWER</txtName>
|
1277
|
+
<codeType>TOWER</codeType>
|
1278
|
+
<codeLgt>Y</codeLgt>
|
1279
|
+
<txtDescrLgt>red strobes</txtDescrLgt>
|
1280
|
+
<codeDatum>WGE</codeDatum>
|
1281
|
+
<valGeoAccuracy>2</valGeoAccuracy>
|
1282
|
+
<uomGeoAccuracy>M</uomGeoAccuracy>
|
1283
|
+
<valElev>1187</valElev>
|
1284
|
+
<valElevAccuracy>3</valElevAccuracy>
|
1285
|
+
<valHgt>1063</valHgt>
|
1286
|
+
<codeHgtAccuracy>Y</codeHgtAccuracy>
|
1287
|
+
<uomDistVer>FT</uomDistVer>
|
1288
|
+
<valRadius>88</valRadius>
|
1289
|
+
<uomRadius>M</uomRadius>
|
1290
|
+
<datetimeValidWef>2018-01-01T12:00:00+01:00</datetimeValidWef>
|
1291
|
+
<datetimeValidTil>2019-01-01T12:00:00+01:00</datetimeValidTil>
|
1292
|
+
<txtRmk>Temporary light installations (white strobes, gyro light etc)</txtRmk>
|
1293
|
+
</Obs>
|
1294
|
+
<!-- Obstacle: [wind_turbine] 44.67501389N 004.87256667E LA TEISSONIERE 1 -->
|
1295
|
+
<Obs>
|
1296
|
+
<ObsUid>
|
1297
|
+
<geoLat>44.67501389N</geoLat>
|
1298
|
+
<geoLong>004.87256667E</geoLong>
|
1299
|
+
</ObsUid>
|
1300
|
+
<txtName>LA TEISSONIERE 1</txtName>
|
1301
|
+
<codeType>WINDTURBINE</codeType>
|
1302
|
+
<codeLgt>N</codeLgt>
|
1303
|
+
<codeMarking>N</codeMarking>
|
1304
|
+
<codeDatum>WGE</codeDatum>
|
1305
|
+
<valGeoAccuracy>50</valGeoAccuracy>
|
1306
|
+
<uomGeoAccuracy>M</uomGeoAccuracy>
|
1307
|
+
<valElev>1764</valElev>
|
1308
|
+
<valElevAccuracy>33</valElevAccuracy>
|
1309
|
+
<valHgt>262</valHgt>
|
1310
|
+
<codeHgtAccuracy>N</codeHgtAccuracy>
|
1311
|
+
<uomDistVer>FT</uomDistVer>
|
1312
|
+
<valRadius>80</valRadius>
|
1313
|
+
<uomRadius>M</uomRadius>
|
1314
|
+
<codeGroupId>462c8d00-981a-0995-09aa-4ba39161bb41</codeGroupId>
|
1315
|
+
<txtGroupName>MIRMANDE EOLIENNES</txtGroupName>
|
1316
|
+
</Obs>
|
1317
|
+
<!-- Obstacle: [wind_turbine] 44.67946667N 004.87381111E LA TEISSONIERE 2 -->
|
1318
|
+
<Obs>
|
1319
|
+
<ObsUid>
|
1320
|
+
<geoLat>44.67946667N</geoLat>
|
1321
|
+
<geoLong>004.87381111E</geoLong>
|
1322
|
+
</ObsUid>
|
1323
|
+
<txtName>LA TEISSONIERE 2</txtName>
|
1324
|
+
<codeType>WINDTURBINE</codeType>
|
1325
|
+
<codeLgt>N</codeLgt>
|
1326
|
+
<codeMarking>N</codeMarking>
|
1327
|
+
<codeDatum>WGE</codeDatum>
|
1328
|
+
<valGeoAccuracy>50</valGeoAccuracy>
|
1329
|
+
<uomGeoAccuracy>M</uomGeoAccuracy>
|
1330
|
+
<valElev>1738</valElev>
|
1331
|
+
<valElevAccuracy>33</valElevAccuracy>
|
1332
|
+
<valHgt>262</valHgt>
|
1333
|
+
<codeHgtAccuracy>N</codeHgtAccuracy>
|
1334
|
+
<uomDistVer>FT</uomDistVer>
|
1335
|
+
<valRadius>80</valRadius>
|
1336
|
+
<uomRadius>M</uomRadius>
|
1337
|
+
<codeGroupId>462c8d00-981a-0995-09aa-4ba39161bb41</codeGroupId>
|
1338
|
+
<txtGroupName>MIRMANDE EOLIENNES</txtGroupName>
|
1339
|
+
</Obs>
|
1340
|
+
<!-- Obstacle: [mast] 52.29639722N 002.10675278W DROITWICH LW NORTH -->
|
1341
|
+
<Obs>
|
1342
|
+
<ObsUid>
|
1343
|
+
<geoLat>52.29639722N</geoLat>
|
1344
|
+
<geoLong>002.10675278W</geoLong>
|
1345
|
+
</ObsUid>
|
1346
|
+
<txtName>DROITWICH LW NORTH</txtName>
|
1347
|
+
<codeType>MAST</codeType>
|
1348
|
+
<codeLgt>N</codeLgt>
|
1349
|
+
<codeMarking>N</codeMarking>
|
1350
|
+
<codeDatum>WGE</codeDatum>
|
1351
|
+
<valGeoAccuracy>0</valGeoAccuracy>
|
1352
|
+
<uomGeoAccuracy>M</uomGeoAccuracy>
|
1353
|
+
<valElev>848</valElev>
|
1354
|
+
<valElevAccuracy>0</valElevAccuracy>
|
1355
|
+
<valHgt>700</valHgt>
|
1356
|
+
<codeHgtAccuracy>Y</codeHgtAccuracy>
|
1357
|
+
<uomDistVer>FT</uomDistVer>
|
1358
|
+
<valRadius>200</valRadius>
|
1359
|
+
<uomRadius>M</uomRadius>
|
1360
|
+
<codeGroupId>18e65683-798d-0941-8de4-cb65a6427035</codeGroupId>
|
1361
|
+
<txtGroupName>DROITWICH LONGWAVE ANTENNA</txtGroupName>
|
1362
|
+
</Obs>
|
1363
|
+
<!-- Obstacle: [mast] 52.29457778N 002.10568611W DROITWICH LW NORTH -->
|
1364
|
+
<Obs>
|
1365
|
+
<ObsUid>
|
1366
|
+
<geoLat>52.29457778N</geoLat>
|
1367
|
+
<geoLong>002.10568611W</geoLong>
|
1368
|
+
</ObsUid>
|
1369
|
+
<txtName>DROITWICH LW NORTH</txtName>
|
1370
|
+
<codeType>MAST</codeType>
|
1371
|
+
<codeLgt>N</codeLgt>
|
1372
|
+
<codeMarking>N</codeMarking>
|
1373
|
+
<codeDatum>WGE</codeDatum>
|
1374
|
+
<valGeoAccuracy>0</valGeoAccuracy>
|
1375
|
+
<uomGeoAccuracy>M</uomGeoAccuracy>
|
1376
|
+
<valElev>848</valElev>
|
1377
|
+
<valElevAccuracy>0</valElevAccuracy>
|
1378
|
+
<valHgt>700</valHgt>
|
1379
|
+
<codeHgtAccuracy>Y</codeHgtAccuracy>
|
1380
|
+
<uomDistVer>FT</uomDistVer>
|
1381
|
+
<valRadius>200</valRadius>
|
1382
|
+
<uomRadius>M</uomRadius>
|
1383
|
+
<codeGroupId>18e65683-798d-0941-8de4-cb65a6427035</codeGroupId>
|
1384
|
+
<txtGroupName>DROITWICH LONGWAVE ANTENNA</txtGroupName>
|
1385
|
+
<ObsUidLink>
|
1386
|
+
<geoLat>52.29639722N</geoLat>
|
1387
|
+
<geoLong>002.10675278W</geoLong>
|
1388
|
+
</ObsUidLink>
|
1389
|
+
<codeLinkType>CABLE</codeLinkType>
|
1390
|
+
</Obs>
|
1178
1391
|
</OFMX-Snapshot>
|
1179
1392
|
END
|
1180
1393
|
end
|