Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 0 additions & 12 deletions src/metpy/io/gempak.py
Original file line number Diff line number Diff line change
Expand Up @@ -1652,18 +1652,6 @@ def _merge_mandatory_winds(self, merged, parts, section, qcman):
if merged['DRCT'][loc] == self.prod_desc.missing_float:
merged['DRCT'][loc] = parts[section]['DRCT'][iwind]
merged['SPED'][loc] = parts[section]['SPED'][iwind]
else:
if press not in qcman:
size = len(merged['PRES'])
loc = size - bisect.bisect_left(merged['PRES'][1:][::-1], press)
if loc >= size + 1:
loc = -1
merged['PRES'].insert(loc, press)
merged['TEMP'].insert(loc, self.prod_desc.missing_float)
merged['DWPT'].insert(loc, self.prod_desc.missing_float)
merged['DRCT'].insert(loc, parts[section]['DRCT'][iwind])
merged['SPED'].insert(loc, parts[section]['SPED'][iwind])
merged['HGHT'].insert(loc, self.prod_desc.missing_float)

def _merge_winds_pressure(self, merged, parts, section, pbot):
"""Process and merge wind sections on pressure surfaces."""
Expand Down
2 changes: 2 additions & 0 deletions src/metpy/static-data-manifest.txt
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,8 @@ gem_model_mrg.csv 304afb3bb4b662f7adfc8803e8661fc217a691d0b1790d5e0e6d085f198c42
gem_model_mrg.snd 6d229a7af8d3e86d8da02403023cdaf0f86b6c982eb8b6f7f84c3836811df014
gem_multi_time.grd a11746f162f2ea3944573246a477db94026f76e72ce7ecb98bd08c8475e2ca3f
gem_multilevel_multidate.grd a5642ad733e88e9512d979b7c95049e9572591622d9ac94645622c1723742909
gem_nzwp_no_ttcc.csv bb37082c3f219ef261f614a9a45653714a02162c07767109cc6e4cd5fbde9e27
gem_nzwp_no_ttcc.snd 0dae2296b3b81688883fb06a9378ed39fbc054f6eb15ebe8f892062c78e3816f
gem_packing_dec.grd 547cda1ffb5e143623a33afce76a6cfa8c3c543eed04cf388f3005ccf1ba677d
gem_packing_dec.npz b4b3b838b245c0e0d0d803c049a9169c34fe1c09f267d98df5a0d0586297d18d
gem_packing_diff.grd 35de37fb378fe1c8cb1be56962ab3496ee079a3c6df4ef838cf1e2e8fd86da3f
Expand Down
91 changes: 91 additions & 0 deletions staticdata/gem_nzwp_no_ttcc.csv
Original file line number Diff line number Diff line change
@@ -0,0 +1,91 @@
PRES,TEMP,DWPT,DRCT,SPED,HGHT
1022.0,8.0,7.0,140.0,2.06,27.0
1021.0,8.8,5.1,139.1,2.29,35.14
1009.0,10.8,3.8,128.23,5.09,133.91
1000.0,10.6,4.6,120.0,7.21,209.0
988.54,10.41,4.41,100.0,10.81,305.0
988.0,10.4,4.4,99.88,10.83,309.56
925.0,6.0,4.4,85.0,12.87,854.0
924.0,6.0,4.5,84.26,13.02,862.88
918.22,5.73,3.79,80.0,13.9,914.0
884.5,4.11,-0.44,75.0,16.47,1219.0
854.0,2.6,-4.4,65.63,15.5,1505.02
852.0,2.4,-3.55,65.0,15.44,1524.0
850.0,2.2,-2.7,65.0,14.41,1543.0
838.0,1.2,-2.0,63.01,13.59,1657.62
820.19,0.01,-3.22,60.0,12.36,1829.0
789.42,-2.12,-5.39,70.0,10.81,2134.0
770.0,-3.5,-6.8,76.51,8.8,2332.65
759.78,-4.04,-9.95,80.0,7.72,2438.0
744.0,-4.9,-14.9,77.3,7.86,2603.38
702.87,-7.33,-19.19,70.0,8.24,3048.0
700.0,-7.5,-19.5,45.0,6.18,3080.0
649.33,-11.82,-37.7,35.0,5.15,3658.0
635.0,-13.1,-43.1,46.19,5.15,3829.67
623.95,-14.09,-41.0,55.0,5.15,3962.0
599.21,-16.36,-36.17,110.0,3.09,4267.0
583.0,-17.9,-32.9,174.09,4.48,4473.74
575.34,-18.3,-35.62,205.0,5.15,4572.0
552.19,-19.56,-44.05,225.0,7.21,4877.0
532.0,-20.7,-51.7,222.74,10.23,5153.65
508.5,-22.16,-50.24,220.0,13.9,5486.0
500.0,-22.7,-49.7,220.0,14.93,5610.0
485.0,-23.5,-57.5,223.41,16.83,5833.52
474.0,-22.7,-61.7,225.98,18.26,6001.86
400.0,-30.5,-69.5,245.0,28.83,7230.0
392.0,-31.9,-69.9,245.0,30.2,7373.04
362.3,-34.48,-66.37,245.0,35.52,7925.0
349.0,-35.7,-64.7,247.02,36.97,8186.88
301.0,-43.72,-62.94,255.0,42.73,9197.28
300.0,-43.9,-62.9,255.0,42.73,9220.0
289.83,-45.94,-63.92,255.0,42.73,9449.0
271.0,-49.9,-65.9,255.0,42.26,9894.8
250.0,-52.5,-67.5,255.0,41.7,10420.0
236.0,-53.9,-66.9,255.0,40.67,10789.72
229.38,-52.81,-70.95,255.0,41.18,10973.0
216.0,-50.5,-79.5,255.0,36.67,11360.42
200.0,-50.7,-81.7,255.0,30.89,11860.0
199.17,-50.74,-81.73,250.0,29.86,11887.0
164.94,-52.71,-83.04,255.0,28.83,13106.0
150.09,-53.69,-83.7,265.0,23.68,13716.0
150.0,-53.7,-83.7,260.0,23.17,13720.0
130.08,-55.04,-84.68,240.0,18.02,14630.0
118.24,-55.93,-85.34,245.0,11.84,15240.0
112.72,-56.38,-85.67,265.0,14.41,15545.0
107.47,-56.83,-86.0,250.0,17.5,15850.0
102.47,-57.27,-86.33,245.0,14.93,16154.0
100.0,-57.5,-86.5,255.0,11.33,16310.0
97.67,-57.42,-86.42,255.0,11.33,16459.0
95.0,-57.32,-86.32,235.0,12.87,16634.38
91.0,-57.16,-86.16,265.0,7.21,16906.43
86.0,-56.96,-85.96,245.0,9.27,17263.82
84.0,-56.87,-85.87,255.0,8.24,17412.63
81.0,-56.74,-85.74,240.0,7.21,17642.62
80.0,-56.7,-85.7,247.45,6.7,17721.18
79.0,-56.86,-85.75,255.0,6.18,17799.85
76.0,-57.37,-85.89,285.0,11.84,18041.96
74.0,-57.72,-85.99,290.0,15.44,18208.74
70.0,-58.45,-86.2,245.0,11.33,18556.27
66.0,-59.22,-86.42,225.0,7.21,18924.25
62.0,-60.04,-86.66,235.0,9.78,19315.24
55.0,-61.61,-87.1,200.0,7.72,20064.46
54.0,-61.86,-87.17,205.0,5.66,20179.21
53.0,-62.1,-87.24,185.0,4.63,20296.11
52.2,-62.3,-87.3,188.99,5.05,20391.22
52.0,-62.27,-87.3,190.0,5.15,20415.06
50.0,-61.96,-87.35,230.0,7.21,20658.62
48.0,-61.63,-87.4,215.0,6.69,20912.12
45.0,-61.11,-87.48,230.0,5.15,21312.9
40.0,-60.17,-87.63,205.0,6.69,22044.33
37.7,-59.7,-87.7,216.09,7.38,22412.08
35.0,-61.15,-88.25,230.0,8.24,22871.16
33.0,-62.31,-88.68,195.0,12.36,23234.66
30.0,-64.17,-89.38,210.0,7.21,23823.46
29.5,-64.5,-89.5,217.31,7.21,23927.29
28.0,-62.6,-88.96,240.0,7.21,24250.3
26.0,-59.9,-88.18,235.0,12.36,24708.98
25.3,-58.9,-87.9,245.23,12.53,24877.91
24.0,-58.84,-87.84,265.0,12.87,25208.88
22.0,-58.75,-87.75,245.0,14.41,25754.82
21.0,-58.7,-87.7,265.0,10.3,26046.71
20.6,-59.1,-88.1,-9999.0,-9999.0,26167.31
Binary file added staticdata/gem_nzwp_no_ttcc.snd
Binary file not shown.
32 changes: 32 additions & 0 deletions tests/io/test_gempak.py
Original file line number Diff line number Diff line change
Expand Up @@ -427,3 +427,35 @@

assert dattim1 == datetime(1991, 8, 19, 0, 0)
assert dattim2 == datetime(1991, 8, 20, 0, 0)


def test_unmerged_no_ttcc():
"""Test loading an unmerged sounding.

Sounding will have a PPCC group, but no TTCC group. This
tests for proper handling of MAN winds on pressure surfaces
without any temp/dewpoint/height data.
"""
gso = GempakSounding(get_test_data('gem_nzwp_no_ttcc.snd')).snxarray()
gpres = gso[0].pressure.values
gtemp = gso[0].temp.values.squeeze()
gdwpt = gso[0].dwpt.values.squeeze()
gdrct = gso[0].drct.values.squeeze()
gsped = gso[0].sped.values.squeeze()
ghght = gso[0].hght.values.squeeze()

gempak = pd.read_csv(get_test_data('gem_nzwp_no_ttcc.csv', as_file_obj=False),
na_values=-9999)
dpres = gempak.PRES.values
dtemp = gempak.TEMP.values
ddwpt = gempak.DWPT.values
ddrct = gempak.DRCT.values
dsped = gempak.SPED.values
dhght = gempak.HGHT.values

np.testing.assert_allclose(gpres, dpres, rtol=1e-10, atol=1e-2)
np.testing.assert_allclose(gtemp, dtemp, rtol=1e-10, atol=1e-2)
np.testing.assert_allclose(gdwpt, ddwpt, rtol=1e-10, atol=1e-2)
np.testing.assert_allclose(gdrct, ddrct, rtol=1e-10, atol=1e-2)
np.testing.assert_allclose(gsped, dsped, rtol=1e-10, atol=1e-2)
np.testing.assert_allclose(ghght, dhght, rtol=1e-5, atol=1e-2)