These examples show how to extract data in a table format from BUFR files.
These conditions are combined together by the logical AND operator. So a row of data is only added to the results when all the conditions match.
The data used for the examples
This is a summary of the data files used for the examples:
File | Structure | Description |
---|---|---|
temp.bufr | Classic radiosonde data. One message contains a vertical profile for one station with various parameters (e.g. temperature, wind etc.) on a set of pressure levels. |
Extracting a single parameter
Example | Filter | Results | Comments |
---|---|---|---|
For all the messages: extract the first non missing temperature value | extract_data: on parameter_1: airTemperature | By default missing values are ignored in data extraction (see option MISSING DATA) | |
For all the messages: extract the first (rank=1) temperature value (if missing it is ignored) | extract_data: on parameter_1: airTemperature parameter_rank_1: 1 | Here we explicitly asked for the first temperature value. It has a missing value in many of the messages so we have less resulting rows that in the previous example. | |
For all the messages: extract the first (rank=1) temperature value if it is greater than 300 K | extract_data: on parameter_1: airTemperature parameter_rank_1: 1 parameter_operator_1: > parameter_value_1: 300 | ||
For all the messages: extract the first temperature value which is greater than 300 K | extract_data: on parameter_1: airTemperature parameter_operator_1: > parameter_value_1: 300 | ||
For station 78016: extract all the temperature values | identifier_value: 78016 extract_data: on parameter_1: airTemperature extract_mode: all |
Extracting with a single coordinate condition
Example | Filter | Results | Comments |
---|---|---|---|
For all the messages: extract the first temperature value which is greater than 300 K and also extract the pressure on which it occurs | extract_data: on parameter_1: airTemperature parameter_operator_1: > parameter_value_1: 300 coordinate_condition_count: 1 coordinate_1: pressure | Here we explicitly say the we only want the matching temperature values which appear inside a pressure block (in these messages this is always the case). By using the coordinate condition pressure will be extracted as well because the EXTRACT_COORDINATE option is On by default. | |
For all the messages: extract the first temperature value which is greater than 300 K and the pressure is less than 950 hPa | extract_data: on parameter_1: airTemperature parameter_operator_1: > parameter_value_1: 300 coordinate_condition_count: 1 coordinate_1: pressure coordinate_operator_1: > coordinate_value_1: 95000 | Here we further refined the coordinate condition. | |
For all the messages: extract the temperature value on the 500 hPa pressure level | extract_data: on parameter_1: airTemperature coordinate_condition_count: 1 coordinate_1: pressure coordinate_operator_1: = coordinate_value_1: 50000 | ||
For station 78016: extract the temperature on the second pressure level | identifier_value: 78016 extract_data: on parameter_1: airTemperature coordinate_condition_count: 1 coordinate_1: pressure coordinate_rank_1: 2 | Here we restricted the filter form one station (message) only and used a rank condition for the coordinate. | |
For station 78016: extract the temperature on the first 6 pressure levels | identifier_value: 78016 extract_data: on parameter_1: airTemperature coordinate_condition_count: 1 coordinate_1: pressure coordinate_rank_1: 1/2/3/4/5/6 | For coordinate rank a list of values can be specified. | |
For station 78016: extract the temperature on the 925, 850 and 700 hPa pressure levels | identifier_value: 78016 extract_data: on parameter_1: airTemperature coordinate_condition_count: 1 coordinate_1: pressure coordinate_operator_1: = coordinate_value_1: 92500/85000/70000 |
Extracting multiple parameters
Example | Filter | Results | Comments |
---|---|---|---|
For all the messages: extract the first wind speed and wind direction values | extract_data: on parameter_1: windDirection parameter_2: windSpeed | The order of the parameters in extraction must match their order of appearance in the message. Otherwise the data alignment does not work properly. In our BUFR messages | |
For all the messages: extract the first wind speed and wind direction values and also extract their pressure | extract_data: on parameter_1: windDirection parameter_2: windSpeed coordinate_condition_count: 1 coordinate_1: pressure | ||
For all the messages: extract wind speed and wind direction values on the 500 hPa pressure level | extract_data: on parameter_1: windDirection parameter_2: windSpeed coordinate_condition_count: 1 coordinate_1: pressure coordinate_operator_1: = coordinate_value_1: 50000 |
Multiple (nested) coordinate conditions
Task | Filter | Results |
---|---|---|
For station 78016: extract all the temperature values on standard pressure levels | identifier_value: 78016 extract_data: on parameter_1: airTemperature coordinate_condition_count: 2 coordinate_1: pressure coordinate_2: verticalSoundingSignificance coordinate_operator_2: = coordinate_value_2: 32 | |
For station 78016: extract all the temperature values on temperature significant levels where the pressure is less than 500 hPa | identifier_value: 78016 extract_data: on parameter_count: 1 parameter_1: airTemperature coordinate_condition_count: 2 coordinate_1: pressure coordinate_operator_1: < coordinate_value_1: 50000 coordinate_2: verticalSoundingSignificance coordinate_operator_2: = coordinate_value_2: 4/68 |