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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 9b084338a6346bc02e4440ef14304456ae2f2b3fa14a0a1bbd1d332683cdb0a9
4
- data.tar.gz: 8eebfa7a90b447d868eb1fe2bf689aa2a957799a884ef3899181cfe6e4b794d1
3
+ metadata.gz: 787d0cac0e08c123814f5e39202e4f053a8be18d24ac7026536736e9e4d7263e
4
+ data.tar.gz: d2e90cfda23d7511f68f815120e71caa93420910b3bc169c1690b5c71e563a68
5
5
  SHA512:
6
- metadata.gz: 5162c59105d0eea75bae5f513d857aa0a0c245c7b857835e7f3a94c07b00e0ba6beaac986b44540c3c081d01ce44307b57be4dd5e7549ed8906254a61e6544f5
7
- data.tar.gz: 7792ae4d76eb57082bebafa2167844d3977805b964bcd2c3839ac9df180b1102bf2e38c08a07d45b62778fb545f815bc67f0127bdd5ae12c56a08771454ceb92
6
+ metadata.gz: 337b5e2744c7c761dd231043504a29ef6ddec59d935e6714684725ab030d04b69eacdb9a77f17c0adf7538706dab092639f84446eed0b868e9f5f8bc88edc653
7
+ data.tar.gz: e0e7b5734205e3c77bcb3257959a28083ce7d610a93e2eeca2e85c08f17ed4fd8b6e01158ccdabebce9ab375fe98895861a552f483f2309acf53c2483c70b5fa
data/README.adoc CHANGED
@@ -1,4 +1,4 @@
1
- = Atmospheric for Ruby (International Standard Atmosphere / ICAO Standard Atmosphere (ISA))
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
- === Prerequsites
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
- `geometric_altitude_m`:: Geometric altitude in meters.
107
- `geometric_altitude_ft`:: Geometric altitude in feet.
108
- `geopotential_altitude_m`:: Geopotential altitude in meters.
109
- `geopotential_altitude_ft`:: Geopotential altitude in feet.
110
- `temperature_k`:: Temperature in Kelvin. This value is multiplied by 1000.
111
- `temperature_c`:: Temperature in Celsius. This value is multiplied by 1000.
112
- `pressure_mbar`:: Pressure in millibar.
113
- `pressure_mmhg`:: Pressure in mmHg.
114
- `density`:: Density in kg/m^3.
115
- `acceleration`:: Acceleration in m/s^2.
116
- `ppn`:: Ratio of pressure at altitude to pressure at sea level.
117
- `rhorhon`:: Ratio of density at altitude to density at sea level.
118
- `sqrt_rhorhon`:: Square root of the ratio of density at altitude to density at sea level.
119
- `speed_of_sound`:: Speed of sound in m/s.
120
- `dynamic_viscosity`:: Dynamic viscosity in kg/(m·s).
121
- `kinematic_viscosity`:: Kinematic viscosity in m^2/s.
122
- `thermal_conductivity`:: Thermal conductivity in W/(m·K).
123
- `pressure_scale_height`:: Pressure scale height in meters.
124
- `specific_weight`:: Specific weight in N/m^3.
125
- `air_number_density`:: Air number density in particles/m^3.
126
- `mean_speed`:: Mean speed of air particles in m/s.
127
- `frequency`:: Frequency of air particle collisions in 1/s.
128
- `mean_free_path`:: Mean free path of air particles in meters.
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
- attrs.geopotential_altitude_m #=> -2000
142
- attrs.geopotential_altitude_ft #=> -6561.68
143
- attrs.geometric_altitude_m #=> -1999
144
- attrs.geometric_altitude_ft #=> -6560
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-m:
167
- value: -1999
171
+ geometric-altitude:
172
+ - value: -1999
168
173
  unitsml: m
169
174
  type: integer
170
- geometric-altitude-ft:
171
- value: -6560
175
+ - value: -6560
172
176
  unitsml: ft
173
177
  type: integer
174
- geopotential-altitude-m:
175
- value: -2000
178
+ geopotential-altitude:
179
+ - value: -2000
176
180
  unitsml: m
177
181
  type: integer
178
- geopotential-altitude-ft:
179
- value: -6562
182
+ - value: -6562
180
183
  unitsml: ft
181
184
  type: integer
182
- temperature-k:
183
- value: 301150
185
+ temperature:
186
+ - value: 301.15
184
187
  unitsml: K
185
- type: integer
186
- temperature-c:
187
- value: 28000
188
+ type: float
189
+ - value: 28.0
188
190
  unitsml: degC
189
- type: integer
190
- pressure-mbar:
191
- value: 1277.74
191
+ type: float
192
+ pressure:
193
+ - value: 1277.74
192
194
  unitsml: mbar
193
195
  type: float
194
- pressure-mmhg:
195
- value: 958.382
196
- unitsml: u:mm_Hg
196
+ - value: 958.382
197
+ unitsml: mm_Hg
197
198
  type: float
198
199
  density:
199
- value: 1.47808
200
+ - value: 1.47808
200
201
  unitsml: kg*m^-3
201
202
  type: float
202
203
  acceleration:
203
- value: 9.8128
204
+ - value: 9.8128
204
205
  unitsml: m*s^-2
205
206
  type: float
206
207
  ppn:
207
- value: 1.26103
208
+ - value: 1.26103
208
209
  type: float
209
210
  rhorhon:
210
- value: 1.20659
211
+ - value: 1.20659
211
212
  type: float
212
213
  sqrt-rhorhon:
213
- value: 1.09845
214
+ - value: 1.09845
214
215
  type: float
215
216
  speed-of-sound:
216
- value: 347886
217
+ - value: 347.886
217
218
  unitsml: m*s^-1
218
- type: integer
219
+ type: float
219
220
  dynamic-viscosity:
220
- value: 1.8514e-05
221
+ - value: 1.8514e-05
221
222
  unitsml: Pa*s
222
223
  type: float
223
224
  kinematic-viscosity:
224
- value: 1.2526e-05
225
+ - value: 1.2526e-05
225
226
  unitsml: m^2*s^-1
226
227
  type: float
227
228
  thermal-conductivity:
228
- value: 0.026359
229
+ - value: 0.026359
229
230
  unitsml: W*m^-1*K^-1
230
231
  type: float
231
232
  pressure-scale-height:
232
- value: 8809.5
233
+ - value: 8809.5
233
234
  unitsml: m
234
235
  type: float
235
236
  specific-weight:
236
- value: 14.504
237
+ - value: 14.504
237
238
  unitsml: N*m^-3
238
239
  type: float
239
240
  air-number-density:
240
- value: 3.0734e+25
241
+ - value: 3.0734e+25
241
242
  unitsml: m^-3
242
243
  type: float
243
244
  mean-speed:
244
- value: 469.18
245
+ - value: 469.18
245
246
  unitsml: m*s^-1
246
247
  type: float
247
248
  frequency:
248
- value: 8535100000.0
249
+ - value: 8535100000.0
249
250
  unitsml: s^-1
250
251
  type: float
251
252
  mean-free-path:
252
- value: 5.4971e-08
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-m unitsml="m" type="integer">-1999</geometric-altitude-m>
276
- <geometric-altitude-ft unitsml="ft" type="integer">-6560</geometric-altitude-ft>
277
- <geopotential-altitude-m unitsml="m" type="integer">-2000</geopotential-altitude-m>
278
- <geopotential-altitude-ft unitsml="ft" type="integer">-6562</geopotential-altitude-ft>
279
- <temperature-k unitsml="K" type="integer">301150</temperature-k>
280
- <temperature-c unitsml="degC" type="integer">28000</temperature-c>
281
- <pressure-mbar unitsml="mbar" type="float">1277.74</pressure-mbar>
282
- <pressure-mmhg unitsml="u:mm_Hg" type="float">958.382</pressure-mmhg>
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="integer">347886</speed-of-sound>
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
- `pressure_mbar`:: Pressure in millibar.
345
- `pressure_mmhg`:: Pressure in mmHg.
346
- `geometric_altitude_m`:: Geometric altitude in meters.
347
- `geometric_altitude_ft`:: Geometric altitude in feet.
348
- `geopotential_altitude_m`:: Geopotential altitude in meters.
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
- attrs.pressure_mbar #=> 5.0
361
- attrs.pressure_mmhg #=> 3.7503084135
362
- attrs.geopotential_altitude_m #=> 35776
363
- attrs.geopotential_altitude_ft #=> 117377
364
- attrs.geometric_altitude_m #=> 35979
365
- attrs.geometric_altitude_ft #=> 118041
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-mbar:
387
- value: 5.0
389
+ pressure:
390
+ - value: 5.0
388
391
  unitsml: mbar
389
392
  type: float
390
- pressure-mmhg:
391
- value: 3.7503084135
392
- unitsml: mmhg
393
+ - value: 3.7503084135
394
+ unitsml: mm_Hg
393
395
  type: float
394
- geopotential-altitude-m:
395
- value: 35776
396
+ geopotential-altitude:
397
+ - value: 35776.5
396
398
  unitsml: m
397
- type: integer
398
- geopotential-altitude-ft:
399
- value: 117377
399
+ type: float
400
+ - value: 117377.0
400
401
  unitsml: ft
401
- type: integer
402
- geometric-altitude-m:
403
- value: 35979
402
+ type: float
403
+ geometric-altitude:
404
+ - value: 35979.0
404
405
  unitsml: m
405
- type: integer
406
- geometric-altitude-ft:
407
- value: 118041
406
+ type: float
407
+ - value: 118041.0
408
408
  unitsml: ft
409
- type: integer
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-mbar unitsml="mbar" type="float">5.0</pressure-mbar>
430
- <pressure-mmhg unitsml="mmhg" type="float">3.7503084135</pressure-mmhg>
431
- <geometric-altitude-m unitsml="m" type="integer">35979</geometric-altitude-m>
432
- <geometric-altitude-ft unitsml="ft" type="integer">118041</geometric-altitude-ft>
433
- <geopotential-altitude-m unitsml="m" type="integer">35776</geopotential-altitude-m>
434
- <geopotential-altitude-ft unitsml="ft" type="integer">117377</geopotential-altitude-ft>
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 of the following keys in the hash:
594
+ Tables 5 to 7 all have height information as collections (arrays) with
595
+ UnitsML unit metadata:
595
596
 
596
- * `geopotential-altitude-m`
597
- * `geopotential-altitude-ft`
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-k`
616
- * `temperature-c`
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-mbar`
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-mmhg`
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-mbar`
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-mbar`
1088
- * `pressure-mmhg`
1089
- * `geopotential-altitude-m`
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
- == License
1189
-
1190
- Copyright Ribose.
1250
+ == Copyright and license
1191
1251
 
1252
+ Copyright Ribose. Licensed under the 3-clause BSD license.