atmospheric 0.4.5 → 0.5.1
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/README.adoc +197 -134
- data/lib/atmospheric/export/altitude_attrs.rb +131 -82
- data/lib/atmospheric/export/altitude_convertable_model.rb +22 -26
- data/lib/atmospheric/export/altitude_table.rb +0 -2
- data/lib/atmospheric/export/hypsometrical_table.rb +2 -4
- data/lib/atmospheric/export/iso_25331975/group_one.rb +0 -3
- data/lib/atmospheric/export/iso_25331975/group_one_attrs.rb +38 -27
- data/lib/atmospheric/export/iso_25331975/group_three.rb +0 -3
- data/lib/atmospheric/export/iso_25331975/group_three_attrs.rb +37 -25
- data/lib/atmospheric/export/iso_25331975/group_two.rb +0 -3
- data/lib/atmospheric/export/iso_25331975/group_two_attrs.rb +43 -27
- data/lib/atmospheric/export/iso_25331975.rb +7 -4
- data/lib/atmospheric/export/iso_25331985/pressure_attrs.rb +2 -5
- data/lib/atmospheric/export/iso_25331985/table_five_six_attrs.rb +2 -5
- data/lib/atmospheric/export/iso_25331985.rb +3 -5
- data/lib/atmospheric/export/iso_25331997.rb +0 -2
- data/lib/atmospheric/export/iso_25332025/altitude_attrs_group.rb +2 -4
- data/lib/atmospheric/export/iso_25332025/combined_altitude_attrs_group.rb +2 -5
- data/lib/atmospheric/export/iso_25332025.rb +3 -3
- data/lib/atmospheric/export/precision_value.rb +9 -0
- data/lib/atmospheric/export/pressure_attrs.rb +52 -58
- data/lib/atmospheric/export/utils.rb +3 -1
- data/lib/atmospheric/export.rb +11 -5
- data/lib/atmospheric/namespace.rb +8 -0
- data/lib/atmospheric/unit_value_float.rb +2 -3
- data/lib/atmospheric/unit_value_integer.rb +2 -3
- data/lib/atmospheric/version.rb +1 -1
- data/lib/atmospheric.rb +7 -4
- metadata +8 -6
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 7b75d1aad150ee5c55d447906a6e68ece88cb6623521c4e1499ef5e707ba2af1
|
|
4
|
+
data.tar.gz: 304e5f27c1540413da0e50e8a9e52791aa114813d02509af78ea1d0c5caf8595
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 90321cfb4659bbfdaf0da2a75901d3a7b1f372ee2772e15b7b375b8c03bc97b33f4df8affdfe6987ebb41cf56f07946dfdc2eaf02af2530d57a7006150a313e7
|
|
7
|
+
data.tar.gz: b3d47bc889077add3c9a5a0bc4429c9fdbb7d510c850600b40e8502e2fc6855c582be90c5b6ae65a59bc36fcb7e9b2e02658041ac58c14ddfe264c22c04826a2
|
data/README.adoc
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
= Atmospheric for Ruby (
|
|
1
|
+
= Atmospheric for Ruby (ISO Standard Atmosphere / ICAO Standard Atmosphere (ISA))
|
|
2
2
|
|
|
3
3
|
== Purpose
|
|
4
4
|
|
|
@@ -40,7 +40,7 @@ To calculate atmospheric properties, either use the formulas directly or use the
|
|
|
40
40
|
`Atmospheric::Export::AltitudeAttrs` class to bulk obtain the values needed.
|
|
41
41
|
|
|
42
42
|
|
|
43
|
-
===
|
|
43
|
+
=== Prerequisites
|
|
44
44
|
|
|
45
45
|
Include the `atmospheric` gem in your Gemfile:
|
|
46
46
|
|
|
@@ -103,29 +103,29 @@ Depending on the type of the value, it is in one of the following classes:
|
|
|
103
103
|
|
|
104
104
|
The `AltitudeAttrs` object provides the following attributes:
|
|
105
105
|
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
`
|
|
109
|
-
`
|
|
110
|
-
`
|
|
111
|
-
`
|
|
112
|
-
`
|
|
113
|
-
`
|
|
114
|
-
`
|
|
115
|
-
`
|
|
116
|
-
`
|
|
117
|
-
`
|
|
118
|
-
`
|
|
119
|
-
`
|
|
120
|
-
`
|
|
121
|
-
`
|
|
122
|
-
`
|
|
123
|
-
`
|
|
124
|
-
`
|
|
125
|
-
`
|
|
126
|
-
`
|
|
127
|
-
|
|
128
|
-
|
|
106
|
+
All attributes are represented as collections (arrays) to support multiple units:
|
|
107
|
+
|
|
108
|
+
`geometric_altitudes`:: Array of geometric altitude values. Units: m, ft.
|
|
109
|
+
`geopotential_altitudes`:: Array of geopotential altitude values. Units: m, ft.
|
|
110
|
+
`temperatures`:: Array of temperature values. Units: K, degC.
|
|
111
|
+
`pressures`:: Array of pressure values. Units: mbar, mm_Hg.
|
|
112
|
+
`densities`:: Array of density values. Units: kg*m^-3.
|
|
113
|
+
`accelerations`:: Array of acceleration values. Units: m*s^-2.
|
|
114
|
+
`ppns`:: Array of pressure ratio values (unitless).
|
|
115
|
+
`rhorhons`:: Array of density ratio values (unitless).
|
|
116
|
+
`sqrt_rhorhons`:: Array of sqrt of density ratio values (unitless).
|
|
117
|
+
`speeds_of_sound`:: Array of speed of sound values. Units: m*s^-1.
|
|
118
|
+
`dynamic_viscosities`:: Array of dynamic viscosity values. Units: Pa*s.
|
|
119
|
+
`kinematic_viscosities`:: Array of kinematic viscosity values. Units: m^2*s^-1.
|
|
120
|
+
`thermal_conductivities`:: Array of thermal conductivity values. Units: W*m^-1*K^-1.
|
|
121
|
+
`pressure_scale_heights`:: Array of pressure scale height values. Units: m.
|
|
122
|
+
`specific_weights`:: Array of specific weight values. Units: N*m^-3.
|
|
123
|
+
`air_number_densities`:: Array of air number density values. Units: m^-3.
|
|
124
|
+
`mean_speeds`:: Array of mean speed values. Units: m*s^-1.
|
|
125
|
+
`frequencies`:: Array of frequency values. Units: s^-1.
|
|
126
|
+
`mean_free_paths`:: Array of mean free path values. Units: m.
|
|
127
|
+
|
|
128
|
+
Each attribute value is wrapped in `UnitValueFloat` or `UnitValueInteger` with UnitsML unit metadata.
|
|
129
129
|
|
|
130
130
|
[example]
|
|
131
131
|
====
|
|
@@ -138,10 +138,15 @@ attrs = Atmospheric::Export::AltitudeAttrs.new.set_altitude(
|
|
|
138
138
|
unit: :meters
|
|
139
139
|
)
|
|
140
140
|
|
|
141
|
-
|
|
142
|
-
attrs.
|
|
143
|
-
attrs.
|
|
144
|
-
attrs.
|
|
141
|
+
# Access collection values
|
|
142
|
+
attrs.geometric_altitudes[0].value #=> -1999 (meters)
|
|
143
|
+
attrs.geometric_altitudes[1].value #=> -6560 (feet)
|
|
144
|
+
attrs.geopotential_altitudes[0].value #=> -2000 (meters)
|
|
145
|
+
attrs.geopotential_altitudes[1].value #=> -6562 (feet)
|
|
146
|
+
attrs.temperatures[0].value #=> 301.15 (Kelvin)
|
|
147
|
+
attrs.temperatures[1].value #=> 28.0 (Celsius)
|
|
148
|
+
attrs.pressures[0].value #=> 1277.74 (mbar)
|
|
149
|
+
attrs.pressures[1].value #=> 958.382 (mm_Hg)
|
|
145
150
|
----
|
|
146
151
|
====
|
|
147
152
|
|
|
@@ -163,95 +168,92 @@ attrs.to_yaml
|
|
|
163
168
|
|
|
164
169
|
[source,yaml]
|
|
165
170
|
----
|
|
166
|
-
geometric-altitude
|
|
167
|
-
|
|
171
|
+
geometric-altitude:
|
|
172
|
+
- value: -1999
|
|
168
173
|
unitsml: m
|
|
169
174
|
type: integer
|
|
170
|
-
|
|
171
|
-
value: -6560
|
|
175
|
+
- value: -6560
|
|
172
176
|
unitsml: ft
|
|
173
177
|
type: integer
|
|
174
|
-
geopotential-altitude
|
|
175
|
-
|
|
178
|
+
geopotential-altitude:
|
|
179
|
+
- value: -2000
|
|
176
180
|
unitsml: m
|
|
177
181
|
type: integer
|
|
178
|
-
|
|
179
|
-
value: -6562
|
|
182
|
+
- value: -6562
|
|
180
183
|
unitsml: ft
|
|
181
184
|
type: integer
|
|
182
|
-
temperature
|
|
183
|
-
|
|
185
|
+
temperature:
|
|
186
|
+
- value: 301.15
|
|
184
187
|
unitsml: K
|
|
185
|
-
type:
|
|
186
|
-
|
|
187
|
-
value: 28000
|
|
188
|
+
type: float
|
|
189
|
+
- value: 28.0
|
|
188
190
|
unitsml: degC
|
|
189
|
-
type:
|
|
190
|
-
pressure
|
|
191
|
-
|
|
191
|
+
type: float
|
|
192
|
+
pressure:
|
|
193
|
+
- value: 1277.74
|
|
192
194
|
unitsml: mbar
|
|
193
195
|
type: float
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
unitsml: u:mm_Hg
|
|
196
|
+
- value: 958.382
|
|
197
|
+
unitsml: mm_Hg
|
|
197
198
|
type: float
|
|
198
199
|
density:
|
|
199
|
-
|
|
200
|
+
- value: 1.47808
|
|
200
201
|
unitsml: kg*m^-3
|
|
201
202
|
type: float
|
|
202
203
|
acceleration:
|
|
203
|
-
|
|
204
|
+
- value: 9.8128
|
|
204
205
|
unitsml: m*s^-2
|
|
205
206
|
type: float
|
|
206
207
|
ppn:
|
|
207
|
-
|
|
208
|
+
- value: 1.26103
|
|
208
209
|
type: float
|
|
209
210
|
rhorhon:
|
|
210
|
-
|
|
211
|
+
- value: 1.20659
|
|
211
212
|
type: float
|
|
212
213
|
sqrt-rhorhon:
|
|
213
|
-
|
|
214
|
+
- value: 1.09845
|
|
214
215
|
type: float
|
|
215
216
|
speed-of-sound:
|
|
216
|
-
|
|
217
|
+
- value: 347.886
|
|
217
218
|
unitsml: m*s^-1
|
|
218
|
-
type:
|
|
219
|
+
type: float
|
|
219
220
|
dynamic-viscosity:
|
|
220
|
-
|
|
221
|
+
- value: 1.8514e-05
|
|
221
222
|
unitsml: Pa*s
|
|
222
223
|
type: float
|
|
223
224
|
kinematic-viscosity:
|
|
224
|
-
|
|
225
|
+
- value: 1.2526e-05
|
|
225
226
|
unitsml: m^2*s^-1
|
|
226
227
|
type: float
|
|
227
228
|
thermal-conductivity:
|
|
228
|
-
|
|
229
|
+
- value: 0.026359
|
|
229
230
|
unitsml: W*m^-1*K^-1
|
|
230
231
|
type: float
|
|
231
232
|
pressure-scale-height:
|
|
232
|
-
|
|
233
|
+
- value: 8809.5
|
|
233
234
|
unitsml: m
|
|
234
235
|
type: float
|
|
235
236
|
specific-weight:
|
|
236
|
-
|
|
237
|
+
- value: 14.504
|
|
237
238
|
unitsml: N*m^-3
|
|
238
239
|
type: float
|
|
239
240
|
air-number-density:
|
|
240
|
-
|
|
241
|
+
- value: 3.0734e+25
|
|
241
242
|
unitsml: m^-3
|
|
242
243
|
type: float
|
|
243
244
|
mean-speed:
|
|
244
|
-
|
|
245
|
+
- value: 469.18
|
|
245
246
|
unitsml: m*s^-1
|
|
246
247
|
type: float
|
|
247
248
|
frequency:
|
|
248
|
-
|
|
249
|
+
- value: 8535100000.0
|
|
249
250
|
unitsml: s^-1
|
|
250
251
|
type: float
|
|
251
252
|
mean-free-path:
|
|
252
|
-
|
|
253
|
+
- value: 5.4971e-08
|
|
253
254
|
unitsml: m
|
|
254
255
|
type: float
|
|
256
|
+
precision: reduced
|
|
255
257
|
----
|
|
256
258
|
====
|
|
257
259
|
|
|
@@ -263,7 +265,8 @@ mean-free-path:
|
|
|
263
265
|
attrs = Atmospheric::Export::AltitudeAttrs.new.set_altitude(
|
|
264
266
|
value: -2000,
|
|
265
267
|
type: :geopotential,
|
|
266
|
-
unit: :meters
|
|
268
|
+
unit: :meters,
|
|
269
|
+
precision: :normal
|
|
267
270
|
)
|
|
268
271
|
|
|
269
272
|
attrs.to_xml
|
|
@@ -271,21 +274,21 @@ attrs.to_xml
|
|
|
271
274
|
|
|
272
275
|
[source,xml]
|
|
273
276
|
----
|
|
274
|
-
<atmosphere-attributes>
|
|
275
|
-
<geometric-altitude
|
|
276
|
-
<geometric-altitude
|
|
277
|
-
<geopotential-altitude
|
|
278
|
-
<geopotential-altitude
|
|
279
|
-
<temperature
|
|
280
|
-
<temperature
|
|
281
|
-
<pressure
|
|
282
|
-
<pressure
|
|
277
|
+
<atmosphere-attributes xmlns="urn:iso:std:iso:2533:tech:xsd">
|
|
278
|
+
<geometric-altitude unitsml="m" type="integer">-1999</geometric-altitude>
|
|
279
|
+
<geometric-altitude unitsml="ft" type="integer">-6560</geometric-altitude>
|
|
280
|
+
<geopotential-altitude unitsml="m" type="integer">-2000</geopotential-altitude>
|
|
281
|
+
<geopotential-altitude unitsml="ft" type="integer">-6562</geopotential-altitude>
|
|
282
|
+
<temperature unitsml="K" type="float">301.15</temperature>
|
|
283
|
+
<temperature unitsml="degC" type="float">28.0</temperature>
|
|
284
|
+
<pressure unitsml="mbar" type="float">1277.74</pressure>
|
|
285
|
+
<pressure unitsml="mm_Hg" type="float">958.38</pressure>
|
|
283
286
|
<density unitsml="kg*m^-3" type="float">1.47808</density>
|
|
284
|
-
<acceleration unitsml="m*s^-2" type="float">9.
|
|
287
|
+
<acceleration unitsml="m*s^-2" type="float">9.81282</acceleration>
|
|
285
288
|
<ppn type="float">1.26103</ppn>
|
|
286
289
|
<rhorhon type="float">1.20659</rhorhon>
|
|
287
290
|
<sqrt-rhorhon type="float">1.09845</sqrt-rhorhon>
|
|
288
|
-
<speed-of-sound unitsml="m*s^-1" type="
|
|
291
|
+
<speed-of-sound unitsml="m*s^-1" type="float">347.886</speed-of-sound>
|
|
289
292
|
<dynamic-viscosity unitsml="Pa*s" type="float">1.8514e-05</dynamic-viscosity>
|
|
290
293
|
<kinematic-viscosity unitsml="m^2*s^-1" type="float">1.2526e-05</kinematic-viscosity>
|
|
291
294
|
<thermal-conductivity unitsml="W*m^-1*K^-1" type="float">0.026359</thermal-conductivity>
|
|
@@ -295,6 +298,7 @@ attrs.to_xml
|
|
|
295
298
|
<mean-speed unitsml="m*s^-1" type="float">469.18</mean-speed>
|
|
296
299
|
<frequency unitsml="s^-1" type="float">8535100000.0</frequency>
|
|
297
300
|
<mean-free-path unitsml="m" type="float">5.4971e-08</mean-free-path>
|
|
301
|
+
<precision>normal</precision>
|
|
298
302
|
</atmosphere-attributes>
|
|
299
303
|
----
|
|
300
304
|
====
|
|
@@ -341,12 +345,11 @@ Depending on the type of the value, it is in one of the following classes:
|
|
|
341
345
|
|
|
342
346
|
The `PressureAttrs` object provides the following attributes:
|
|
343
347
|
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
`
|
|
347
|
-
`
|
|
348
|
-
`
|
|
349
|
-
`geopotential_altitude_ft`:: Geopotential altitude in feet.
|
|
348
|
+
All attributes are represented as collections (arrays) to support multiple units:
|
|
349
|
+
|
|
350
|
+
`pressures`:: Array of pressure values. Units: mbar, mm_Hg.
|
|
351
|
+
`geometric_altitudes`:: Array of geometric altitude values. Units: m, ft.
|
|
352
|
+
`geopotential_altitudes`:: Array of geopotential altitude values. Units: m, ft.
|
|
350
353
|
|
|
351
354
|
[example]
|
|
352
355
|
====
|
|
@@ -357,12 +360,13 @@ attrs = Atmospheric::Export::PressureAttrs.new.set_pressure(
|
|
|
357
360
|
unit: :mbar
|
|
358
361
|
)
|
|
359
362
|
|
|
360
|
-
|
|
361
|
-
attrs.
|
|
362
|
-
attrs.
|
|
363
|
-
attrs.
|
|
364
|
-
attrs.
|
|
365
|
-
attrs.
|
|
363
|
+
# Access collection values
|
|
364
|
+
attrs.pressures[0].value #=> 5.0 (mbar)
|
|
365
|
+
attrs.pressures[1].value #=> 3.7503084135 (mm_Hg)
|
|
366
|
+
attrs.geopotential_altitudes[0].value #=> 35776.5 (meters)
|
|
367
|
+
attrs.geopotential_altitudes[1].value #=> 117377.0 (feet)
|
|
368
|
+
attrs.geometric_altitudes[0].value #=> 35979.0 (meters)
|
|
369
|
+
attrs.geometric_altitudes[1].value #=> 118041.0 (feet)
|
|
366
370
|
----
|
|
367
371
|
====
|
|
368
372
|
|
|
@@ -383,30 +387,27 @@ attrs.to_yaml
|
|
|
383
387
|
|
|
384
388
|
[source,yaml]
|
|
385
389
|
----
|
|
386
|
-
pressure
|
|
387
|
-
|
|
390
|
+
pressure:
|
|
391
|
+
- value: 5.0
|
|
388
392
|
unitsml: mbar
|
|
389
393
|
type: float
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
unitsml: mmhg
|
|
394
|
+
- value: 3.7503084135
|
|
395
|
+
unitsml: mm_Hg
|
|
393
396
|
type: float
|
|
394
|
-
geopotential-altitude
|
|
395
|
-
|
|
397
|
+
geopotential-altitude:
|
|
398
|
+
- value: 35776.5
|
|
396
399
|
unitsml: m
|
|
397
|
-
type:
|
|
398
|
-
|
|
399
|
-
value: 117377
|
|
400
|
+
type: float
|
|
401
|
+
- value: 117377.0
|
|
400
402
|
unitsml: ft
|
|
401
|
-
type:
|
|
402
|
-
geometric-altitude
|
|
403
|
-
|
|
403
|
+
type: float
|
|
404
|
+
geometric-altitude:
|
|
405
|
+
- value: 35979.0
|
|
404
406
|
unitsml: m
|
|
405
|
-
type:
|
|
406
|
-
|
|
407
|
-
value: 118041
|
|
407
|
+
type: float
|
|
408
|
+
- value: 118041.0
|
|
408
409
|
unitsml: ft
|
|
409
|
-
type:
|
|
410
|
+
type: float
|
|
410
411
|
----
|
|
411
412
|
====
|
|
412
413
|
|
|
@@ -425,13 +426,13 @@ attrs.to_xml
|
|
|
425
426
|
|
|
426
427
|
[source,xml]
|
|
427
428
|
----
|
|
428
|
-
<hypsometrical-attributes>
|
|
429
|
-
<pressure
|
|
430
|
-
<pressure
|
|
431
|
-
<geometric-altitude
|
|
432
|
-
<geometric-altitude
|
|
433
|
-
<geopotential-altitude
|
|
434
|
-
<geopotential-altitude
|
|
429
|
+
<hypsometrical-attributes xmlns="urn:iso:std:iso:2533:tech:xsd">
|
|
430
|
+
<pressure unitsml="mbar" type="float">5.0</pressure>
|
|
431
|
+
<pressure unitsml="mm_Hg" type="float">3.7503084135</pressure>
|
|
432
|
+
<geometric-altitude unitsml="m" type="float">35979.0</geometric-altitude>
|
|
433
|
+
<geometric-altitude unitsml="ft" type="float">118041.0</geometric-altitude>
|
|
434
|
+
<geopotential-altitude unitsml="m" type="float">35776.5</geopotential-altitude>
|
|
435
|
+
<geopotential-altitude unitsml="ft" type="float">117377.0</geopotential-altitude>
|
|
435
436
|
</hypsometrical-attributes>
|
|
436
437
|
----
|
|
437
438
|
====
|
|
@@ -591,12 +592,11 @@ All tables in the 1975 edition are arranged in these steps in meters:
|
|
|
591
592
|
(51000..80000).step(200)
|
|
592
593
|
----
|
|
593
594
|
|
|
594
|
-
Tables 5 to 7 all have height information
|
|
595
|
+
Tables 5 to 7 all have height information as collections (arrays) with
|
|
596
|
+
UnitsML unit metadata:
|
|
595
597
|
|
|
596
|
-
* `
|
|
597
|
-
* `geopotential-altitude
|
|
598
|
-
* `geometric-altitude-m`
|
|
599
|
-
* `geometric-altitude-ft`
|
|
598
|
+
* `geometric-altitude` (collection: m, ft)
|
|
599
|
+
* `geopotential-altitude` (collection: m, ft)
|
|
600
600
|
|
|
601
601
|
All YAML tables generated contain these two keys which group altitude values
|
|
602
602
|
as the ISO 2533 tables are rendered in both types of altitudes:
|
|
@@ -612,10 +612,8 @@ Title:
|
|
|
612
612
|
|
|
613
613
|
Provides the following values in addition to geopotential and geometric height:
|
|
614
614
|
|
|
615
|
-
* `temperature
|
|
616
|
-
* `
|
|
617
|
-
* `pressure-mbar`
|
|
618
|
-
* `pressure-mmhg`
|
|
615
|
+
* `temperature` (collection: K, degC)
|
|
616
|
+
* `pressure` (collection: mbar, mm_Hg)
|
|
619
617
|
* `density`
|
|
620
618
|
* `acceleration`
|
|
621
619
|
|
|
@@ -684,7 +682,7 @@ For the range of `(5.0..19.99).step(0.01)` in hPa.
|
|
|
684
682
|
|
|
685
683
|
Provides:
|
|
686
684
|
|
|
687
|
-
* `pressure
|
|
685
|
+
* `pressure` (collection: mbar, mm_Hg)
|
|
688
686
|
* `geopotential-altitude`
|
|
689
687
|
|
|
690
688
|
[source,ruby]
|
|
@@ -717,7 +715,7 @@ Same as Table 1 but for the range of `(4.0..9.99).step(0.01)` and results in mmh
|
|
|
717
715
|
|
|
718
716
|
Provides:
|
|
719
717
|
|
|
720
|
-
* `pressure
|
|
718
|
+
* `pressure` (collection: mbar, mm_Hg)
|
|
721
719
|
* `geopotential-altitude`
|
|
722
720
|
|
|
723
721
|
[source,ruby]
|
|
@@ -751,8 +749,7 @@ for -1000 <= H < +4600 m at intervals of 1m_"
|
|
|
751
749
|
Provides:
|
|
752
750
|
|
|
753
751
|
* `geopotential-altitude`
|
|
754
|
-
* `pressure
|
|
755
|
-
* `pressure-mmhg`
|
|
752
|
+
* `pressure` (collection: mbar, mm_Hg)
|
|
756
753
|
|
|
757
754
|
Range of `(-1000..4599).step(1)`.
|
|
758
755
|
|
|
@@ -1084,12 +1081,9 @@ For the range of `(5.0..19.99).step(0.01) + (20.0..1199.9).step(0.1)` in hPa.
|
|
|
1084
1081
|
|
|
1085
1082
|
Provides:
|
|
1086
1083
|
|
|
1087
|
-
* `pressure
|
|
1088
|
-
* `
|
|
1089
|
-
* `
|
|
1090
|
-
* `geopotential-altitude-ft`
|
|
1091
|
-
* `geometric-altitude-m`
|
|
1092
|
-
* `geometric-altitude-ft`
|
|
1084
|
+
* `pressure` (collection: mbar, mm_Hg)
|
|
1085
|
+
* `geopotential-altitude` (collection: m, ft)
|
|
1086
|
+
* `geometric-altitude` (collection: m, ft)
|
|
1093
1087
|
|
|
1094
1088
|
[source,ruby]
|
|
1095
1089
|
----
|
|
@@ -1124,6 +1118,76 @@ for -1000 <= H < +4600 m at intervals of 1m_"
|
|
|
1124
1118
|
|
|
1125
1119
|
This table is a subset of the `table_atmosphere_meters` method.
|
|
1126
1120
|
|
|
1121
|
+
== XML Schema
|
|
1122
|
+
|
|
1123
|
+
An XSD schema for the XML serialization format is provided at
|
|
1124
|
+
`schema/atmospheric.xsd`.
|
|
1125
|
+
|
|
1126
|
+
The schema uses the XML namespace `urn:iso:std:iso:2533:tech:xsd` following
|
|
1127
|
+
the RFC 5141 pattern for ISO technical XML schema resources. All elements
|
|
1128
|
+
are namespace-qualified (`elementFormDefault="qualified"`).
|
|
1129
|
+
|
|
1130
|
+
The schema defines the following root elements:
|
|
1131
|
+
|
|
1132
|
+
`atmospheric`:: Polymorphic root element. Two variants:
|
|
1133
|
+
+
|
|
1134
|
+
--
|
|
1135
|
+
* **Hypsometrical table**: contains `<hypsometrical-attributes>` records
|
|
1136
|
+
(pressure → altitude lookup).
|
|
1137
|
+
* **ISO 2533:2025 table**: contains `<by-geometric-altitude>` and
|
|
1138
|
+
`<by-geopotential-altitude>` sections, each with
|
|
1139
|
+
`<atmospheric-attributes>` records.
|
|
1140
|
+
--
|
|
1141
|
+
+
|
|
1142
|
+
[example]
|
|
1143
|
+
====
|
|
1144
|
+
[source,xml]
|
|
1145
|
+
----
|
|
1146
|
+
<!-- Hypsometrical table variant -->
|
|
1147
|
+
<atmospheric xmlns="urn:iso:std:iso:2533:tech:xsd">
|
|
1148
|
+
<hypsometrical-attributes>
|
|
1149
|
+
<pressure unitsml="mbar" type="float">1013.25</pressure>
|
|
1150
|
+
<pressure unitsml="mm_Hg" type="float">760.0</pressure>
|
|
1151
|
+
<geometric-altitude unitsml="m" type="float">0.0</geometric-altitude>
|
|
1152
|
+
<geometric-altitude unitsml="ft" type="float">0.0</geometric-altitude>
|
|
1153
|
+
<geopotential-altitude unitsml="m" type="float">0.0</geopotential-altitude>
|
|
1154
|
+
<geopotential-altitude unitsml="ft" type="float">0.0</geopotential-altitude>
|
|
1155
|
+
</hypsometrical-attributes>
|
|
1156
|
+
</atmospheric>
|
|
1157
|
+
|
|
1158
|
+
<!-- ISO 2533:2025 table variant -->
|
|
1159
|
+
<atmospheric xmlns="urn:iso:std:iso:2533:tech:xsd">
|
|
1160
|
+
<by-geometric-altitude>
|
|
1161
|
+
<atmospheric-attributes>...</atmospheric-attributes>
|
|
1162
|
+
</by-geometric-altitude>
|
|
1163
|
+
<by-geopotential-altitude>
|
|
1164
|
+
<atmospheric-attributes>...</atmospheric-attributes>
|
|
1165
|
+
</by-geopotential-altitude>
|
|
1166
|
+
</atmospheric>
|
|
1167
|
+
----
|
|
1168
|
+
====
|
|
1169
|
+
|
|
1170
|
+
`atmosphere-attributes`:: Full atmospheric property record (ISO 2533:2025).
|
|
1171
|
+
Contains all altitude, temperature, pressure, density, and derived properties.
|
|
1172
|
+
|
|
1173
|
+
`hypsometrical-attributes`:: Pressure-to-altitude record. Contains pressure
|
|
1174
|
+
and altitude values.
|
|
1175
|
+
|
|
1176
|
+
`attributes-group`:: Wrapper for a collection of `<atmospheric-attributes>`.
|
|
1177
|
+
|
|
1178
|
+
All value elements share a common pattern:
|
|
1179
|
+
|
|
1180
|
+
* Text content: the numeric value
|
|
1181
|
+
* `unitsml` attribute (optional): the UnitsML unit identifier (e.g., `m`,
|
|
1182
|
+
`ft`, `K`, `mbar`)
|
|
1183
|
+
* `type` attribute (required): either `"float"` or `"integer"`
|
|
1184
|
+
|
|
1185
|
+
[source,xml]
|
|
1186
|
+
----
|
|
1187
|
+
<temperature unitsml="K" type="float">288.15</temperature>
|
|
1188
|
+
<geometric-altitude unitsml="m" type="integer">5000</geometric-altitude>
|
|
1189
|
+
<ppn type="float">0.53338</ppn> <!-- dimensionless, no unitsml -->
|
|
1190
|
+
----
|
|
1127
1191
|
|
|
1128
1192
|
|
|
1129
1193
|
== Testing
|
|
@@ -1185,7 +1249,6 @@ The only defining value in a tests is `H` (geopotential altitude).
|
|
|
1185
1249
|
It is used to generate all the other values.
|
|
1186
1250
|
|
|
1187
1251
|
|
|
1188
|
-
==
|
|
1189
|
-
|
|
1190
|
-
Copyright Ribose.
|
|
1252
|
+
== Copyright and license
|
|
1191
1253
|
|
|
1254
|
+
Copyright Ribose. Licensed under the 3-clause BSD license.
|