Handle missing wind data; ensure samples by height are included

This commit is contained in:
XANTRONIX 2025-04-13 20:53:18 -04:00
parent 1046b1c22d
commit b8903a69f8

View file

@ -92,8 +92,15 @@ class BUFRSounding(Sounding):
else: else:
sample = sounding.sample_by_pressure(pressure) sample = sounding.sample_by_pressure(pressure)
sample.wind_speed = item.getNumber('wsMan') if height != -9999.0:
sample.wind_dir = item.getNumber('wdMan') sample.height = height
wind_dir = item.getNumber('wsMan')
wind_speed = item.getNumber('wdMan')
if wind_dir != -9999.0 and wind_speed != -9999.0:
sample.wind_speed = wind_dir
sample.wind_dir = wind_speed
if set(params) & BUFRSounding.BUFR_PARAMS_SIGT: if set(params) & BUFRSounding.BUFR_PARAMS_SIGT:
pressure = item.getNumber('prSigT') / 100.0 pressure = item.getNumber('prSigT') / 100.0
@ -111,10 +118,16 @@ class BUFRSounding(Sounding):
else: else:
sample = sounding.sample_by_pressure(pressure) sample = sounding.sample_by_pressure(pressure)
if height != -9999.0:
sample.height = height
sample.wind_speed = item.getNumber('wsSigW') sample.wind_speed = item.getNumber('wsSigW')
sample.wind_dir = item.getNumber('wdSigW') sample.wind_dir = item.getNumber('wdSigW')
for pressure in sorted(sounding.samples_by_pressure.keys(), reverse=True): for pressure in sorted(sounding.samples_by_pressure.keys(), reverse=True):
sounding.samples.append(sounding.samples_by_pressure[pressure]) sounding.samples.append(sounding.samples_by_pressure[pressure])
for height in sorted(sounding.samples_by_height.keys()):
sounding.samples.append(sounding.samples_by_height[height])
return sounding return sounding