atmospheric 0.4.5 → 0.5.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/README.adoc +191 -130
- data/lib/atmospheric/export/altitude_attrs.rb +129 -77
- data/lib/atmospheric/export/altitude_convertable_model.rb +22 -22
- data/lib/atmospheric/export/hypsometrical_table.rb +1 -1
- data/lib/atmospheric/export/iso_25331975/group_one_attrs.rb +38 -24
- data/lib/atmospheric/export/iso_25331975/group_three_attrs.rb +37 -23
- data/lib/atmospheric/export/iso_25331975/group_two_attrs.rb +43 -25
- data/lib/atmospheric/export/iso_25331985/pressure_attrs.rb +2 -3
- data/lib/atmospheric/export/iso_25331985/table_five_six_attrs.rb +2 -3
- data/lib/atmospheric/export/iso_25332025/altitude_attrs_group.rb +1 -1
- data/lib/atmospheric/export/iso_25332025/combined_altitude_attrs_group.rb +1 -1
- data/lib/atmospheric/export/pressure_attrs.rb +51 -53
- data/lib/atmospheric/export/utils.rb +3 -1
- data/lib/atmospheric/unit_value_float.rb +1 -1
- data/lib/atmospheric/unit_value_integer.rb +1 -1
- data/lib/atmospheric/version.rb +1 -1
- metadata +4 -4
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 787d0cac0e08c123814f5e39202e4f053a8be18d24ac7026536736e9e4d7263e
|
|
4
|
+
data.tar.gz: d2e90cfda23d7511f68f815120e71caa93420910b3bc169c1690b5c71e563a68
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 337b5e2744c7c761dd231043504a29ef6ddec59d935e6714684725ab030d04b69eacdb9a77f17c0adf7538706dab092639f84446eed0b868e9f5f8bc88edc653
|
|
7
|
+
data.tar.gz: e0e7b5734205e3c77bcb3257959a28083ce7d610a93e2eeca2e85c08f17ed4fd8b6e01158ccdabebce9ab375fe98895861a552f483f2309acf53c2483c70b5fa
|
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
|
|
|
@@ -272,20 +274,20 @@ attrs.to_xml
|
|
|
272
274
|
[source,xml]
|
|
273
275
|
----
|
|
274
276
|
<atmosphere-attributes>
|
|
275
|
-
<geometric-altitude
|
|
276
|
-
<geometric-altitude
|
|
277
|
-
<geopotential-altitude
|
|
278
|
-
<geopotential-altitude
|
|
279
|
-
<temperature
|
|
280
|
-
<temperature
|
|
281
|
-
<pressure
|
|
282
|
-
<pressure
|
|
277
|
+
<geometric-altitude unitsml="m" type="integer">-1999</geometric-altitude>
|
|
278
|
+
<geometric-altitude unitsml="ft" type="integer">-6560</geometric-altitude>
|
|
279
|
+
<geopotential-altitude unitsml="m" type="integer">-2000</geopotential-altitude>
|
|
280
|
+
<geopotential-altitude unitsml="ft" type="integer">-6562</geopotential-altitude>
|
|
281
|
+
<temperature unitsml="K" type="float">301.15</temperature>
|
|
282
|
+
<temperature unitsml="degC" type="float">28.0</temperature>
|
|
283
|
+
<pressure unitsml="mbar" type="float">1277.74</pressure>
|
|
284
|
+
<pressure unitsml="mm_Hg" type="float">958.382</pressure>
|
|
283
285
|
<density unitsml="kg*m^-3" type="float">1.47808</density>
|
|
284
286
|
<acceleration unitsml="m*s^-2" type="float">9.8128</acceleration>
|
|
285
287
|
<ppn type="float">1.26103</ppn>
|
|
286
288
|
<rhorhon type="float">1.20659</rhorhon>
|
|
287
289
|
<sqrt-rhorhon type="float">1.09845</sqrt-rhorhon>
|
|
288
|
-
<speed-of-sound unitsml="m*s^-1" type="
|
|
290
|
+
<speed-of-sound unitsml="m*s^-1" type="float">347.886</speed-of-sound>
|
|
289
291
|
<dynamic-viscosity unitsml="Pa*s" type="float">1.8514e-05</dynamic-viscosity>
|
|
290
292
|
<kinematic-viscosity unitsml="m^2*s^-1" type="float">1.2526e-05</kinematic-viscosity>
|
|
291
293
|
<thermal-conductivity unitsml="W*m^-1*K^-1" type="float">0.026359</thermal-conductivity>
|
|
@@ -295,6 +297,7 @@ attrs.to_xml
|
|
|
295
297
|
<mean-speed unitsml="m*s^-1" type="float">469.18</mean-speed>
|
|
296
298
|
<frequency unitsml="s^-1" type="float">8535100000.0</frequency>
|
|
297
299
|
<mean-free-path unitsml="m" type="float">5.4971e-08</mean-free-path>
|
|
300
|
+
<precision>reduced</precision>
|
|
298
301
|
</atmosphere-attributes>
|
|
299
302
|
----
|
|
300
303
|
====
|
|
@@ -341,12 +344,11 @@ Depending on the type of the value, it is in one of the following classes:
|
|
|
341
344
|
|
|
342
345
|
The `PressureAttrs` object provides the following attributes:
|
|
343
346
|
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
`
|
|
347
|
-
`
|
|
348
|
-
`
|
|
349
|
-
`geopotential_altitude_ft`:: Geopotential altitude in feet.
|
|
347
|
+
All attributes are represented as collections (arrays) to support multiple units:
|
|
348
|
+
|
|
349
|
+
`pressures`:: Array of pressure values. Units: mbar, mm_Hg.
|
|
350
|
+
`geometric_altitudes`:: Array of geometric altitude values. Units: m, ft.
|
|
351
|
+
`geopotential_altitudes`:: Array of geopotential altitude values. Units: m, ft.
|
|
350
352
|
|
|
351
353
|
[example]
|
|
352
354
|
====
|
|
@@ -357,12 +359,13 @@ attrs = Atmospheric::Export::PressureAttrs.new.set_pressure(
|
|
|
357
359
|
unit: :mbar
|
|
358
360
|
)
|
|
359
361
|
|
|
360
|
-
|
|
361
|
-
attrs.
|
|
362
|
-
attrs.
|
|
363
|
-
attrs.
|
|
364
|
-
attrs.
|
|
365
|
-
attrs.
|
|
362
|
+
# Access collection values
|
|
363
|
+
attrs.pressures[0].value #=> 5.0 (mbar)
|
|
364
|
+
attrs.pressures[1].value #=> 3.7503084135 (mm_Hg)
|
|
365
|
+
attrs.geopotential_altitudes[0].value #=> 35776.5 (meters)
|
|
366
|
+
attrs.geopotential_altitudes[1].value #=> 117377.0 (feet)
|
|
367
|
+
attrs.geometric_altitudes[0].value #=> 35979.0 (meters)
|
|
368
|
+
attrs.geometric_altitudes[1].value #=> 118041.0 (feet)
|
|
366
369
|
----
|
|
367
370
|
====
|
|
368
371
|
|
|
@@ -383,30 +386,27 @@ attrs.to_yaml
|
|
|
383
386
|
|
|
384
387
|
[source,yaml]
|
|
385
388
|
----
|
|
386
|
-
pressure
|
|
387
|
-
|
|
389
|
+
pressure:
|
|
390
|
+
- value: 5.0
|
|
388
391
|
unitsml: mbar
|
|
389
392
|
type: float
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
unitsml: mmhg
|
|
393
|
+
- value: 3.7503084135
|
|
394
|
+
unitsml: mm_Hg
|
|
393
395
|
type: float
|
|
394
|
-
geopotential-altitude
|
|
395
|
-
|
|
396
|
+
geopotential-altitude:
|
|
397
|
+
- value: 35776.5
|
|
396
398
|
unitsml: m
|
|
397
|
-
type:
|
|
398
|
-
|
|
399
|
-
value: 117377
|
|
399
|
+
type: float
|
|
400
|
+
- value: 117377.0
|
|
400
401
|
unitsml: ft
|
|
401
|
-
type:
|
|
402
|
-
geometric-altitude
|
|
403
|
-
|
|
402
|
+
type: float
|
|
403
|
+
geometric-altitude:
|
|
404
|
+
- value: 35979.0
|
|
404
405
|
unitsml: m
|
|
405
|
-
type:
|
|
406
|
-
|
|
407
|
-
value: 118041
|
|
406
|
+
type: float
|
|
407
|
+
- value: 118041.0
|
|
408
408
|
unitsml: ft
|
|
409
|
-
type:
|
|
409
|
+
type: float
|
|
410
410
|
----
|
|
411
411
|
====
|
|
412
412
|
|
|
@@ -426,12 +426,12 @@ attrs.to_xml
|
|
|
426
426
|
[source,xml]
|
|
427
427
|
----
|
|
428
428
|
<hypsometrical-attributes>
|
|
429
|
-
<pressure
|
|
430
|
-
<pressure
|
|
431
|
-
<geometric-altitude
|
|
432
|
-
<geometric-altitude
|
|
433
|
-
<geopotential-altitude
|
|
434
|
-
<geopotential-altitude
|
|
429
|
+
<pressure unitsml="mbar" type="float">5.0</pressure>
|
|
430
|
+
<pressure unitsml="mm_Hg" type="float">3.7503084135</pressure>
|
|
431
|
+
<geometric-altitude unitsml="m" type="float">35979</geometric-altitude>
|
|
432
|
+
<geometric-altitude unitsml="ft" type="float">118041</geometric-altitude>
|
|
433
|
+
<geopotential-altitude unitsml="m" type="float">35776</geopotential-altitude>
|
|
434
|
+
<geopotential-altitude unitsml="ft" type="float">117377</geopotential-altitude>
|
|
435
435
|
</hypsometrical-attributes>
|
|
436
436
|
----
|
|
437
437
|
====
|
|
@@ -591,12 +591,11 @@ All tables in the 1975 edition are arranged in these steps in meters:
|
|
|
591
591
|
(51000..80000).step(200)
|
|
592
592
|
----
|
|
593
593
|
|
|
594
|
-
Tables 5 to 7 all have height information
|
|
594
|
+
Tables 5 to 7 all have height information as collections (arrays) with
|
|
595
|
+
UnitsML unit metadata:
|
|
595
596
|
|
|
596
|
-
* `
|
|
597
|
-
* `geopotential-altitude
|
|
598
|
-
* `geometric-altitude-m`
|
|
599
|
-
* `geometric-altitude-ft`
|
|
597
|
+
* `geometric-altitude` (collection: m, ft)
|
|
598
|
+
* `geopotential-altitude` (collection: m, ft)
|
|
600
599
|
|
|
601
600
|
All YAML tables generated contain these two keys which group altitude values
|
|
602
601
|
as the ISO 2533 tables are rendered in both types of altitudes:
|
|
@@ -612,10 +611,8 @@ Title:
|
|
|
612
611
|
|
|
613
612
|
Provides the following values in addition to geopotential and geometric height:
|
|
614
613
|
|
|
615
|
-
* `temperature
|
|
616
|
-
* `
|
|
617
|
-
* `pressure-mbar`
|
|
618
|
-
* `pressure-mmhg`
|
|
614
|
+
* `temperature` (collection: K, degC)
|
|
615
|
+
* `pressure` (collection: mbar, mm_Hg)
|
|
619
616
|
* `density`
|
|
620
617
|
* `acceleration`
|
|
621
618
|
|
|
@@ -684,7 +681,7 @@ For the range of `(5.0..19.99).step(0.01)` in hPa.
|
|
|
684
681
|
|
|
685
682
|
Provides:
|
|
686
683
|
|
|
687
|
-
* `pressure
|
|
684
|
+
* `pressure` (collection: mbar, mm_Hg)
|
|
688
685
|
* `geopotential-altitude`
|
|
689
686
|
|
|
690
687
|
[source,ruby]
|
|
@@ -717,7 +714,7 @@ Same as Table 1 but for the range of `(4.0..9.99).step(0.01)` and results in mmh
|
|
|
717
714
|
|
|
718
715
|
Provides:
|
|
719
716
|
|
|
720
|
-
* `pressure
|
|
717
|
+
* `pressure` (collection: mbar, mm_Hg)
|
|
721
718
|
* `geopotential-altitude`
|
|
722
719
|
|
|
723
720
|
[source,ruby]
|
|
@@ -751,8 +748,7 @@ for -1000 <= H < +4600 m at intervals of 1m_"
|
|
|
751
748
|
Provides:
|
|
752
749
|
|
|
753
750
|
* `geopotential-altitude`
|
|
754
|
-
* `pressure
|
|
755
|
-
* `pressure-mmhg`
|
|
751
|
+
* `pressure` (collection: mbar, mm_Hg)
|
|
756
752
|
|
|
757
753
|
Range of `(-1000..4599).step(1)`.
|
|
758
754
|
|
|
@@ -1084,12 +1080,9 @@ For the range of `(5.0..19.99).step(0.01) + (20.0..1199.9).step(0.1)` in hPa.
|
|
|
1084
1080
|
|
|
1085
1081
|
Provides:
|
|
1086
1082
|
|
|
1087
|
-
* `pressure
|
|
1088
|
-
* `
|
|
1089
|
-
* `
|
|
1090
|
-
* `geopotential-altitude-ft`
|
|
1091
|
-
* `geometric-altitude-m`
|
|
1092
|
-
* `geometric-altitude-ft`
|
|
1083
|
+
* `pressure` (collection: mbar, mm_Hg)
|
|
1084
|
+
* `geopotential-altitude` (collection: m, ft)
|
|
1085
|
+
* `geometric-altitude` (collection: m, ft)
|
|
1093
1086
|
|
|
1094
1087
|
[source,ruby]
|
|
1095
1088
|
----
|
|
@@ -1124,6 +1117,75 @@ for -1000 <= H < +4600 m at intervals of 1m_"
|
|
|
1124
1117
|
|
|
1125
1118
|
This table is a subset of the `table_atmosphere_meters` method.
|
|
1126
1119
|
|
|
1120
|
+
== XML Schema
|
|
1121
|
+
|
|
1122
|
+
An XSD schema for the XML serialization format is provided at
|
|
1123
|
+
`schema/atmospheric.xsd`.
|
|
1124
|
+
|
|
1125
|
+
The schema defines the following root elements:
|
|
1126
|
+
|
|
1127
|
+
`atmospheric`:: Polymorphic root element. Two variants:
|
|
1128
|
+
+
|
|
1129
|
+
--
|
|
1130
|
+
* **Hypsometrical table**: contains `<hypsometrical-attributes>` records
|
|
1131
|
+
(pressure → altitude lookup).
|
|
1132
|
+
* **ISO 2533:2025 table**: contains `<by-geometric-altitude>` and
|
|
1133
|
+
`<by-geopotential-altitude>` sections, each with
|
|
1134
|
+
`<atmospheric-attributes>` records.
|
|
1135
|
+
--
|
|
1136
|
+
+
|
|
1137
|
+
[example]
|
|
1138
|
+
====
|
|
1139
|
+
[source,xml]
|
|
1140
|
+
----
|
|
1141
|
+
<!-- Hypsometrical table variant -->
|
|
1142
|
+
<atmospheric>
|
|
1143
|
+
<hypsometrical-attributes>
|
|
1144
|
+
<pressure unitsml="mbar" type="float">1013.25</pressure>
|
|
1145
|
+
<pressure unitsml="mm_Hg" type="float">760.0</pressure>
|
|
1146
|
+
<geometric-altitude unitsml="m" type="float">0.0</geometric-altitude>
|
|
1147
|
+
<geometric-altitude unitsml="ft" type="float">0.0</geometric-altitude>
|
|
1148
|
+
<geopotential-altitude unitsml="m" type="float">0.0</geopotential-altitude>
|
|
1149
|
+
<geopotential-altitude unitsml="ft" type="float">0.0</geopotential-altitude>
|
|
1150
|
+
</hypsometrical-attributes>
|
|
1151
|
+
</atmospheric>
|
|
1152
|
+
|
|
1153
|
+
<!-- ISO 2533:2025 table variant -->
|
|
1154
|
+
<atmospheric>
|
|
1155
|
+
<by-geometric-altitude>
|
|
1156
|
+
<atmospheric-attributes>...</atmospheric-attributes>
|
|
1157
|
+
</by-geometric-altitude>
|
|
1158
|
+
<by-geopotential-altitude>
|
|
1159
|
+
<atmospheric-attributes>...</atmospheric-attributes>
|
|
1160
|
+
</by-geopotential-altitude>
|
|
1161
|
+
</atmospheric>
|
|
1162
|
+
----
|
|
1163
|
+
====
|
|
1164
|
+
|
|
1165
|
+
`atmosphere-attributes`:: Full atmospheric property record (ISO 2533:2025).
|
|
1166
|
+
Contains all altitude, temperature, pressure, density, and derived properties.
|
|
1167
|
+
|
|
1168
|
+
`hypsometrical-attributes`:: Pressure-to-altitude record. Contains pressure
|
|
1169
|
+
and altitude values.
|
|
1170
|
+
|
|
1171
|
+
`group-one-attrs`:: ISO 2533:1975 Group One record (temperature, pressure,
|
|
1172
|
+
density, acceleration). Temperature values use integer type (scaled by 1000).
|
|
1173
|
+
|
|
1174
|
+
`attributes-group`:: Wrapper for a collection of `<atmospheric-attributes>`.
|
|
1175
|
+
|
|
1176
|
+
All value elements share a common pattern:
|
|
1177
|
+
|
|
1178
|
+
* Text content: the numeric value
|
|
1179
|
+
* `unitsml` attribute (optional): the UnitsML unit identifier (e.g., `m`,
|
|
1180
|
+
`ft`, `K`, `mbar`)
|
|
1181
|
+
* `type` attribute (required): either `"float"` or `"integer"`
|
|
1182
|
+
|
|
1183
|
+
[source,xml]
|
|
1184
|
+
----
|
|
1185
|
+
<temperature unitsml="K" type="float">288.15</temperature>
|
|
1186
|
+
<geometric-altitude unitsml="m" type="integer">5000</geometric-altitude>
|
|
1187
|
+
<ppn type="float">0.53338</ppn> <!-- dimensionless, no unitsml -->
|
|
1188
|
+
----
|
|
1127
1189
|
|
|
1128
1190
|
|
|
1129
1191
|
== Testing
|
|
@@ -1185,7 +1247,6 @@ The only defining value in a tests is `H` (geopotential altitude).
|
|
|
1185
1247
|
It is used to generate all the other values.
|
|
1186
1248
|
|
|
1187
1249
|
|
|
1188
|
-
==
|
|
1189
|
-
|
|
1190
|
-
Copyright Ribose.
|
|
1250
|
+
== Copyright and license
|
|
1191
1251
|
|
|
1252
|
+
Copyright Ribose. Licensed under the 3-clause BSD license.
|