Skip to content
Merged
2 changes: 1 addition & 1 deletion data_prep/mapping/bufr_radiosonde.py
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ def make_obs(self, comm, input_path):
self._apply_quality_flag(container, 'northwardWind', 'windQuality')
self._apply_quality_flag(container, 'eastwardWind', 'windQuality')
self._apply_quality_flag(container, 'airPressure', 'airPressureQuality')
self._apply_quality_flag(container, 'height', 'heightQuality')
self._apply_quality_flag(container, 'height_prepbufr', 'heightQuality')

# Add timestamps
reference_time = self._get_reference_time(input_path)
Expand Down
12 changes: 6 additions & 6 deletions data_prep/mapping/bufr_radiosonde.yaml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
bufr:
group_by_variable: height
group_by_variable: height_prepbufr
subsets:
- ADPUPA
variables:
Expand Down Expand Up @@ -43,7 +43,7 @@ bufr:
airPressure:
query: "*/PRSLEVEL/P___INFO/P__EVENT{1}/POB"

height:
height_prepbufr:
query: "*/PRSLEVEL/Z___INFO/Z__EVENT{1}/ZOB"

# Quality Markers
Expand Down Expand Up @@ -83,8 +83,8 @@ encoder:
source: stationIdentification
longName: "Station Identification"

- name: "stationElevation"
source: stationElevation
- name: "stationElevation_prepbufr"
source: stationElevation_prepbufr
longName: "Station Elevation"
units: "meters"
range: [-100, 5000]
Expand Down Expand Up @@ -130,8 +130,8 @@ encoder:
units: "hPa"
range: [0, 1200]

- name: "height"
source: height
- name: "height_prepbufr"
source: height_prepbufr
longName: "Height"
units: "meters"
range: [0, 60000]
Expand Down
11 changes: 10 additions & 1 deletion data_prep/mapping/bufr_radiosonde_adpupa.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,10 @@ bufr:
reportId:
query: "*/RPID"

height_bufr:
query: "*/SELV"
type: float

airPressure:
query: "[*/UARLV/PRLC, */PRLC]" # Air pressure at station level
type: float
Expand Down Expand Up @@ -52,6 +56,11 @@ encoder:
variables:
# MetaData

- name: "height_bufr"
source: height_bufr
longName: "height"
units: "m"

- name: "airTemperature"
source: airTemperature
longName: "Air Temperature"
Expand All @@ -64,7 +73,7 @@ encoder:
units: "deg C"
range: [ -100, 100 ]

- name: "ralativeHumidity"
- name: "relativeHumidity"
source: relativeHumidity
longName: "Specific Humidity"
units: "mg/kg"
Expand Down
5 changes: 4 additions & 1 deletion data_prep/mapping/bufr_radiosonde_prepbufr.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,9 @@ bufr:
transforms:
- wrap: [ -180.0, 180.0 ]

stationElevation:
query: "*/ELV"

sequenceId:
query: "*/SID"

Expand All @@ -41,7 +44,7 @@ bufr:
airPressureProgramCode:
query: "*/PRSLEVEL/P___INFO/P__EVENT{1}/PPC"

height:
height_prepbufr:
query: "*/PRSLEVEL/Z___INFO/Z__EVENT{1}/ZOB"

# Quality Markers
Expand Down
13 changes: 10 additions & 3 deletions data_prep/mapping/bufr_radiosonde_raw.py
Original file line number Diff line number Diff line change
Expand Up @@ -131,7 +131,8 @@ def _process_dump(self, comm, input_dict, prep_container, data_key) -> bufr.Data
for var in ['driftTime',
'driftLatitude',
'driftLongitude',
'height',
'height_prepbufr',
'stationElevation',
'airTemperatureQuality',
'specificHumidityQuality',
'dewPointTemperatureQuality',
Expand Down Expand Up @@ -180,11 +181,17 @@ def _make_description(self):
'units': "degree_east"
},
{
'name': "height",
'source': 'height',
'name': "height_prepbufr",
'source': 'height_prepbufr',
'longName': "Height",
'units': "meters"
},
{
'name': "stationElevation",
'source': 'stationElevation',
'longName': "Station Elevation",
'units': "meters"
},
{
'name': "airTemperatureQuality",
'source': 'airTemperatureQuality',
Expand Down
9 changes: 9 additions & 0 deletions data_prep/mapping/bufr_radiosonde_uprair.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,10 @@ bufr:
# driftLongitude:
# query: "*/UARLVB/LONDH"

height_bufr:
query: "*/HEIT"
type: float

airPressure:
query: "*/UARLVB/PRLC" # Air pressure at station level
type: float
Expand Down Expand Up @@ -54,6 +58,11 @@ bufr:
encoder:
variables:
# MetaData
- name: "ObsValue/height_bufr"
source: height_bufr
longName: "height of Station (SELV)"
units: "m"

- name: "ObsValue/airTemperature"
source: airTemperature
longName: "Air Temperature"
Expand Down
30 changes: 23 additions & 7 deletions data_prep/mapping/bufr_surface_obs_adpsfc.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -16,12 +16,18 @@ bufr:
query: "[*/CLONH, */CLON]"

# Observation Values
airPressure:
airPressure_bufr:
query: "[*/PRES, */PRLC]" # Air pressure missing from NC000007
type: float
transforms:
- scale: 0.01 # Convert from Pa to hPa

pressureMeanSeaLevel_bufr:
query: "*/PMSL"
type: float
transforms:
- scale: 0.01 # Convert from Pa to hPa

airTemperature:
query: "*/TMDB" # Dry bulb temperature
transforms:
Expand All @@ -47,9 +53,9 @@ bufr:
query: "[*/WDIR]"
type: float

height:
height_bufr:
query: "[*/SELV, */HSMSL]" # Height above ground level
type: int
type: float

encoder:
variables:
Expand All @@ -72,16 +78,26 @@ encoder:
range: [-180, 180]

# Observation Values
- name: "airPressure"
source: variables/airPressure
- name: "airPressure_bufr"
source: variables/airPressure_bufr
longName: "Air Pressure at Station Level"
units: "hPa"

- name: "pressureMeanSeaLevel_bufr"
source: variables/pressureMeanSeaLevel_bufr
longName: "Air Pressure Reduced to Mean Sea Level"
units: "hPa"

- name: "airTemperature"
source: variables/airTemperature
longName: "Air Temperature at Station Level"
units: "Celsius"

- name: "seaTemperature"
source: variables/seaTemperature
longName: "Sea Temperature"
units: "Celsius"

- name: "dewPointTemperature"
source: variables/dewPointTemperature
longName: "Dew Point Temperature at Station Level"
Expand All @@ -102,8 +118,8 @@ encoder:
longName: "Wind Direction at Station Level"
units: "radians"

- name: "height"
source: variables/height
- name: "height_bufr"
source: variables/height_bufr
longName: "Height Above Ground Level"
units: "meters"

Expand Down
32 changes: 32 additions & 0 deletions data_prep/mapping/bufr_surface_obs_prepbufr.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,18 @@ bufr:
transforms:
- wrap: [ -180.0, 180.0 ]

height_pb:
query: "*/Z___INFO/Z__EVENT/ZOB"

stationElevation_pb:
query: "*/ELV"

pressureMeanSeaLevel_pb:
query: "*/PMSL_SEQ/PMO"

airPressure_pb:
query: "*/P___INFO/P__EVENT{1-3}/POB"

eastwardWind:
query: "*/W___INFO/W__EVENT/UOB"

Expand Down Expand Up @@ -58,6 +70,26 @@ encoder:
longName: "Longitude"
units: "degree_east"

- name: "height_pb"
source: variables/height_pb
longName: "height from prepbufr (ZOB)"
units: "m"

- name: "stationElevation_pb"
source: variables/stationElevation_pb
longName: "stationElevation from prepbufr (ELV)"
units: "m"

- name: "airPressure_pb"
source: variables/airPressure_pb
longName: "airPressure from pb (POB)"
units: "hPa"

- name: "pressureMeanSeaLevel_pb"
source: variables/pressureMeanSeaLevel_pb
longName: "pressureMeanSeaLevel from pb (PMO)"
units: "hPa"

- name: "airTemperatureQuality"
source: variables/airTemperatureQuality
longName: "Air Temperature Quality Marker"
Expand Down
28 changes: 28 additions & 0 deletions data_prep/mapping/bufr_surface_obs_raw.py
Original file line number Diff line number Diff line change
Expand Up @@ -84,6 +84,10 @@ def make_obs(self, comm, input_dict) -> bufr.DataContainer:
for var in ['eastwardWind',
'northwardWind',
'specificHumidity',
'height_pb',
'stationElevation_pb',
'airPressure_pb',
'pressureMeanSeaLevel_pb',
'airTemperatureQuality',
'specificHumidityQuality',
'airPressureQuality',
Expand Down Expand Up @@ -137,6 +141,30 @@ def _make_description(self):
'longName': "Wind Quality Marker",
'units': "quality_marker"
},
{
'name': 'airPressure_pb',
'source': 'airPressure_pb',
'longName': 'airPressure_pb',
'units': 'hPa',
},
{
'name': 'pressureMeanSeaLevel_pb',
'source': 'pressureMeanSeaLevel_pb',
'longName': 'pressureMeanSeaLevel_pb',
'units': 'hPa',
},
{
'name': 'height_pb',
'source': 'height_pb',
'longName': 'height_pb',
'units': 'm',
},
{
'name': 'stationElevation_pb',
'source': 'stationElevation_pb',
'longName': 'stationElevation_pb',
'units': 'm',
},
{
'name': "eastwardWind",
'source': 'eastwardWind',
Expand Down
35 changes: 26 additions & 9 deletions data_prep/mapping/bufr_surface_obs_sfcshp.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -16,19 +16,26 @@ bufr:
query: "[*/CLONH, */CLON]"

# Observation Values
airPressure:
airPressure_bufr:
query: "*/PRES" # Air pressure at station level
type: float
transforms:
- scale: 0.01 # Convert from Pa to hPa

pressureMeanSeaLevel_bufr:
query: "*/PMSL"
type: float
transforms:
- scale: 0.01 # Convert from Pa to hPa


airTemperature:
query: "*/TMDB" # Dry bulb temperature
transforms:
- offset: -273.15 # Convert from Kelvin to Celsius

seaTemperature:
query: "[*/SST1, */SEATEMPM/SST1, */IDMSMDBS/BBYSTSL{1}/SST1]"
query: "[*/SST1, */SEATEMPM/SST1]" # #*/IDMSMDBS/BBYSTSL{1}/SST1]"
transforms:
- offset: -273.15 # Convert from Kelvin to Celsius

Expand All @@ -47,9 +54,9 @@ bufr:
query: "[*/WDIR, */WNDSQ4/WDIR]"
type: float

height:
query: "[*/SELV, */HSMSL, */HSAWS, */HSAWS[1]]" # Height above ground level
type: int
height_bufr:
query: "[*/SELV, */HSMSL]" #, */HSAWS, */HSAWS[1]]" # Height above ground level
type: float

encoder:
variables:
Expand All @@ -72,11 +79,16 @@ bufr:
range: [-180, 180]

# Observation Values
- name: "airPressure"
source: variables/airPressure
- name: "airPressure_bufr"
source: variables/airPressure_bufr
longName: "Air Pressure at Station Level"
units: "hPa"

- name: "pressureMeanSeaLevel_bufr"
source: variables/pressureMeanSeaLevel_bufr
longName: "Air Pressure Reduced to Mean Sea Level"
units: "hPa"

- name: "airTemperature"
source: variables/airTemperature
longName: "Air Temperature at Station Level"
Expand All @@ -87,6 +99,11 @@ bufr:
longName: "Dew Point Temperature at Station Level"
units: "Celsius"

- name: "airTemperature"
source: variables/airTemperature
longName: "Air Temperature at Station Level"
units: "Celsius"

- name: "relativeHumidity"
source: variables/relativeHumidity
longName: "Relative Humidity at Station Level"
Expand All @@ -102,7 +119,7 @@ bufr:
longName: "Wind Direction at Station Level"
units: "radians"

- name: "height"
source: variables/height
- name: "height_bufr"
source: variables/height_bufr
longName: "Height Above Ground Level"
units: "meters"