# Observation Plotting

## Introduction

Magics observation plotting allows the plotting of observation types stored in WMO BUFR.

What about ODB?

Magics also supports the plotting of observations and analysis feedback from ECMWF's ODB format. This is feature is currently only supported within ECMWF and will be described in a seperate chapter when available.

All observation types may be plotted, i.e. SYNOP, AIREP, SATOB, DRIBU, TEMP, PILOT and SATEM. Within each observation type, specific code types may be selected for plotting, e.g. ships only may be selected from SYNOP. The user has full control over the type, number and size of the observations. The amount of meteorological information plotted may also be controlled by the user.

The meteorological data plotted, e.g. pressure, temperature etc, will be called meteorological variables in this chapter to distinguish them from Magics parameters.

Magics++ - we need your feedback

You can help to improve the support of BUFR observation plotting in Magics by providing bug reports and example data.

### Action Routine POBS

Plotting of observations in Magics is achieved by calling action routine `POBS`, which has no arguments, e.g. `CALL POBS`. Any Magics parameters required should be set and the input data defined before calling `POBS`. Depending on the user requirements, `POBS` will plot any observations from the user's input that fit in the current map. All observations that do not fit the user's criteria or whose positions are outside the geographical area of the current map will be ignored.

#### Data Input

Data for observation plotting must be presented to Magics in the form of an input file. Data for plotting must be in WMO BUFR code. The parameter OBS_INPUT_FILE_NAME should be used to pass the name and address path of the file containing the observations for plotting. Full details of data input are given in chapter Data Input.

#### Meteorological Variables

Parameters exist to control all aspects of observation plotting. These parameters all start with the prefix OBS, e.g. OBS_TEMPERATURE.

Each observation type has its own fixed list of meteorological variables, any of which may be 'turned off', i.e. not plotted. For example, if pressure is not required to be plotted, it may be 'turned off' by the following:

        CALL PSETC('OBS_PRESSURE','OFF')

The meteorological variables to be plotted, by default, for each observation type are given in the sections that describe each observation type.

The colour in which each of the plotting variables is plotted is also controlled by Magics parameters. Each variable has its own default colour but this may be user controlled with the relevant parameter, e.g.

        CALL PSETC ('OBS_PRESSURE_COLOUR', 'GREEN')

#### Observation Size, Position and Separation

A circle or triangle (for DRIBU only) will be plotted to mark the position of each observation. The user may inhibit this by setting the parameter OBS_STATION_RING to '`OFF`'.

The size of observations, i.e. the height of the numbers and symbols, may be controlled by setting the parameter OBS_SIZE to the required value, the default being 0.2cm.

To ensure that plotted observations do not overlap, the parameter OBS_DISTANCE_APART may be set. The default value of 1.0cm means that, after plotting an observation, no other observation will be plotted within one centimetre of it. The distance between observations is measured from the centre of each.

If only the positions of observations are to be plotted, the parameter OBS_POSITION_ONLY should be set to '`ON`' , the default being '`OFF`' . When only the positions of observations are plotted, a different symbol is used for each observation type. It is possible to plot the station identification when positions only are requested.

#### Pressure Levels

For observations, other than surface observations, the user may specify the pressure level (hPa) to be plotted by setting the parameter OBS_LEVEL to the required level, e.g.

        CALL PSETI ('OBS_LEVEL',850)

The default for OBS_LEVEL is 500 hPa.

To enable the plotting of off-level data, the parameter OBS_LEVEL_TOLERANCE may be set to a value, in hPa, above and below the level set in OBS_LEVEL, the default value for the tolerance being `0`.

If plotting of the thickness between two levels is required, two pressure levels must be defined, i.e. the top and bottom levels of the layer for which the thickness is to be plotted. Users may specify these two levels by setting the parameters OBS_LEVEL and OBS_LEVEL_2 to the required values in hPa, the defaults being `500` and `1000`, respectively. Thicknesses may be plotted for TEMP and SATEM observations.

#### Observation Identification

The observation identification may be plotted by setting the parameter OBS_IDENTIFICATION to '`ON`' , the default being '`OFF`' for all observation types. An observation may be identified by its observation type, its code type or its station identifier. To specify the required identification, the parameter OBS_IDENTIFICATION_TYPE may be set, e.g.

        CALL PSETC ('OBS_IDENTIFICATION_TYPE','OBSERVATION_TYPE')

By default, the station identifier will be plotted.

### Observation Selection Parameters

There are parameters available to enable users to select observations for plotting. In some cases, a combination of parameters may be used to define the required observations.

Magics will only use these parameters if they are set by the user. The value set in these parameters stays in effect until changed or reset. To reset the value of a parameter, users should use routine `PRESET`, e.g. `CALL PRESET ('OBS_IDENTIFIER_LIST')`. This has the effect that Magics assumes that the parameter has not been set by the user and, where applicable, the parameter is reset to its default value.

The following sections describe these parameters.

#### Identifier List

OBS_IDENTIFIER_LIST is used to pass a list of station identifiers. The station list should be stored in a character array and passed by the following call:

        CALL PSET1C ('OBS_IDENTIFIER_LIST',ILIST,N)

where `ILIST` is a character array containing the list of station identifiers and `N` is the length of the array.

Only the observations listed in the array will be plotted. Land station identifiers, e.g. `03953`, as well as ship identifiers, which include alphabetic characters in their identifiers, may be passed in the array. This parameter should not be used for passing satellite numbers (see Satellite Number List).

A full list of station identifiers can be found in the WMO manual on Observing Stations.

#### Type List

OBS_TYPE_LIST is used to pass a list of observation types, i.e. SYNOP, AIREP, SATOB, DRIBU, TEMP, PILOT and SATEM. The list of observation types should be stored in a character array and passed as follows:

        CALL PSET1C ('OBS_TYPE_LIST',OTYPE,N)

where `OTYPE` is the array containing the list of observation types and `N` is the length of the array. Only those observations whose observation type is included in the list will be plotted.

#### Code Type List

OBS_CODE_TYPE_LIST is used to pass a list of code types.

Within each observation type, there exists various code types, e.g. SYNOPS have different code types for each individual type of observation (code type 21 = SHIP ). Further descriptions of observation types and code types can be found in the next section. The list of code types (integer numbers) should be stored in an integer array and passed by the following call:

        CALL PSET1I ('OBS_CODE_TYPE_LIST',ICLIST,N)

where `ICLIST` is the array containing the list of code types and `N` is the length of the array. Only those observations whose code type is in the list will be plotted.

#### Satellite Number List

OBS_SATELLITE_NUMBER_LIST is used to pass a list of satellite numbers for both SATOB and SATEM observations.

For each satellite code type, there exists various numbers to identify the particular satellite. This number is actually the station identifier (37 = NOAA9 ). The list of satellite numbers should be stored in an integer array and passed as follows:

        CALL PSET1I ('OBS_SATELLITE_NUMBER_LIST',ISLIST,N)

where `ISLIST` is the array containing the list of satellite numbers and `N` is the length of `ISLIST`. Please note that the parameter OBS_IDENTIFIER_LIST should not be used to pass a list of satellite numbers.

#### Time Check

If observations are required for a particular time only, the parameter OBS_TIME should be set to the required time.

Even though the input file may contain observations for various times, only those whose time is specified in OBS_TIME will be plotted. To activate this time check, the parameter OBS_TIME_CHECK should be set to '`ON`' , the default being '`OFF`'. After plotting reports for a particular time, the time check may be deactivated by setting `OBS_TIME_CHECK` to '`OFF`'.

The format for setting OBS_TIME is as follows:

        CALL PSETI ('OBS_TIME',hhmm)

`hh` is the hour required and mm are the minutes. `CALL PSETI ('OBS_TIME',1230)` specifies that observations are required for 1230 UTC only. The default value is `1200`.

Please note the difference between OBS_TIME_CHECK and the parameter OBS_TIME_PLOT, which should be set to '`ON`' when the time of an observation is to be plotted. The parameter OBS_TIME_TOLERANCE enables users to specify a time range for plotting observations. It should be used in conjunction with the parameter OBS_TIME. OBS_TIME_TOLERANCE may be set as follows:

        CALL PSETI ('OBS_TIME_TOLERANCE',hhmm)

where `hh` is a number of hours and `mm` is a number of minutes. For example, if OBS_TIME is set to `1200` and OBS_TIME_TOLERANCE is set to `330`, the time range for which observations are to be plotted is 0830-1530 UTC. OBS_TIME_TOLERANCE, whose default value is `0` , is only used if OBS_TIME_CHECK has been set to '`ON`'.

Diagram 3

#### OBS Date Check

There are Magics parameters to control/filter observations by `DATE`. The parameter OBS_DATE may be set to the date of the observations required to be plotted, e.g. `CALL PSETI ('OBS_DATE',951207)` (7th Dec. 1995). Observations from other dates will be ignored. However, The parameter OBS_DATE_TOLERANCE may be used to set a period, before and after the date set in OBS_DATE , for which observations are to be plotted, e.g. `CALL PSETI ('OBS_DATE_TOLERANCE',2)` (2 days before and after OBS_DATE , default `0`).

The parameters, OBS_DATE and OBS_DATE_TOLERANCE are only used in Magics if the parameter OBS_DATE_CHECK is set to '`ON`'. If OBS_DATE_CHECK='`OFF`' , which is the default, no check is made on the date of the data.

Is this FEEDBACK???

#### Confidence Check

The ECMWF Quality Control assigns confidence values (percentage values) to each of the meteorological variables in each observation, including the report type and the report position. A feature of observation plotting is the ability to be able to plot observations which have been given low confidence values by the Quality Control.

There are three parameters to control this. OBS_CONFIDENCE_CHECK may be set to '`ON`' to enable this feature. The default is '`OFF`'. OBS_CONFIDENCE_LEVEL may be set to a value (integer) between 0 and 100 to indicate the maximum acceptable level. This means that if the checked variables have confidence values which are lower than the set level, the station ring for that observation will be plotted. OBS_CONFIDENCE_PARAMETER may be set to one of 7 values to indicate which of the meteorological variables are to be checked. The valid values are '`POSITION`' (default), '`TEMPERATURE`' , '`PRESSURE`' , '`HEIGHT`' , '`WIND`' , '`DEWPOINT`' and '`ANY`'. If set to any value except '`ANY`', then only that variable will be checked for the confidence level. If set to '`ANY`', all of the above variables will be checked and if any of them fail the check, the observation will be plotted.

### Plotting Formats

Each observation type has its own set of meteorological variables for plotting.

The following sections describe each of the observation types and the variables plotted by them. Please note that the station identification which may be plotted by all observation types may be one of the following: OBSERVATION TYPE (see previous section), CODE TYPE (numbered as in previous section) or STATION IDENTIFIER.

A plotting layout, showing the positions of the variables, is given for each of the observation types. Wind plotting and ship direction and speed have been omitted from these layouts.

It may be necessary, depending on the wind direction, to move some of the variables to a different position. This will be done automatically.

The station identification may also be automatically moved nearer to the centre of the observation, depending on whether the dewpoint and/or the sea surface temperature are omitted from the plotting. This is to avoid overplotting of observations. If the plotting of observation positions is requested, with station identification turned on, the identification will be moved a position immediately to the right of the station ring or symbol.

#### Surface Plotting Formats

The full layout for plotting surface observations is given below and is used for plotting SYNOP and DRIBU observations.

FrameMaker figure here

The symbols in the above layout are explained in the following sections.

The full surface layout is available for SYNOP plotting. If any of the variables are omitted from the observation the space reserved for it will be left blank, except, as explained above, for station identification. Only a limited number of the variables are available for plotting DRIBU observations.

#### Observation Type SYNOP

SYNOP or surface observations means all synoptic surface observations from land stations and ships, including automatic stations and SHRED, but not including DRIBU, BATHY or TESAC. The meteorological variables plotted, together with their corresponding Magics parameters and default colour and status (`ON` or `OFF`) are listed below.

Please note that the Magics parameter OBS_CLOUD controls the plotting of all cloud information. If set to '`OFF`' , no cloud will be plotted, regardless of the setting of the other cloud parameters. If set to '`ON`' , the value set in the other parameters will then be taken into consideration.

Users should also note the observation time may be plotted in the space reserved for plotting cloud 8 groups. Only one of these variables should be requested for plotting. If the two of them are requested, the 8 groups take precedence.

##### High Altitude Stations

In synoptic plotting for high altitude stations, instead of mean sea level pressure, the height in metres of the nearest standard pressure level will be plotted.

Magics parameters for high altitude stations

Meteorological Variable | Magics Parameter | Status | Default Colour
--- | --- | --- | ---
STATION RING (O) | OBS_STATION_RING | ON | FOREGROUND
STATION IDENTIFICATION (IDEN) | OBS_IDENTIFICATION | ON | FOREGROUND
WIND SPEED AND DIRECTION | OBS_WIND | ON | FOREGROUND
MSL PRESSURE (PPP) | OBS_PRESSURE | ON | FOREGROUND
AIR TEMPERATURE (TT) | OBS_TEMPERATURE | ON | FOREGROUND
SEA SURFACE TEMPERATURE (TsTs) | OBS_SEA_SURFACE_TEMPERATURE | ON | FOREGROUND
PRESSURE TENDENCY (ppa) | OBS_PRESSURE_TENDENCY | ON | FOREGROUND/RED(neg)
PRESENT WEATHER (ww) | OBS_PRESENT_WEATHER | ON | FOREGROUND
PAST WEATHER (W1W2) | OBS_PAST_WEATHER | ON | RED
VISIBILITY (vv) | OBS_VISIBILITY | ON | FOREGROUND
DEWPOINT (TdTd) | OBS_DEWPOINT | ON | RED
CLOUD (ALL) | OBS_CLOUD | ON | No Parameter
LOW CLOUD (CL) | OBS_LOW_CLOUD | ON | FOREGROUND
MEDIUM CLOUD (CM) | OBS_MEDIUM_CLOUD | ON | FOREGROUND
HIGH CLOUD (CH) | OBS_HIGH_CLOUD | ON | RED
OBSERVATION TIME (TIME) | OBS_TIME_PLOT | OFF | FOREGROUND
WAVES AND SWELL | OBS_WAVES | OFF | FOREGROUND

##### Wave and Swell Observations

It is possible to plot wave and swell direction and height (Wav1 and Wav2) on surface ship observations. It is necessary in this case to pass part 2 of the ship observation (SS2 in MARS) to Magics. The Magics parameter OBS_INPUT_FILE_NAME should be set to the name (including the path) of the file containing the observations. The parameter OBS_WAVES should be set to '`ON`' and `POBS` called in the normal way. For each wave reported in the observation, the period and height of the wave or swell are plotted as pphh where pp is the period and hh the height. The direction of the wave/swell is also plotted according to WMO standards.

##### Soil and Earth Temperatures

Soil and earth temperature can be plotted using Magics in the usual way, i.e. pass the file containing the observations to Magics and call `POBS`. However, even though they are classified by MARS as Code type 1 and Subtype 7, they have their own special format in BUFR code and have a unique plotting standard (see below). They report temperatures at four depths in the earth's soil and these depths may vary. Magics plots the data for the four depths to the right of the station circle, with the shallowest depth on top. The temperature for each depth is plotted followed by the actual depth in brackets, e.g. 13 (4) means a temperature of 13 degrees Celsius at 4 cm depth.

To enable the filtering of these observations, from a file containing mixed observations, the abbreviation `SOILT` can be used when setting the parameter OBS_TYPE_LIST. The height of the station above sea level is plotted to the left of the station circle. This may be turned off by setting OBS_STATION_HEIGHT to '`OFF`'. Following is a description of how soil and earth temperatures are plotted (STH = Station height, ST = soil temperature and dep = depth):

Magics parameters for soil temperatures

Meteorological Variable | Magics Parameter | Status | Default Colour
--- | --- | --- | ---
SOIL TEMPERATURE LEVEL 1 | OBS_SOIL_TEMPERATURE_LEVEL_1 | ON | FOREGROUND
SOIL TEMPERATURE LEVEL 2 | OBS_SOIL_TEMPERATURE_LEVEL_2 | ON | FOREGROUND
SOIL TEMPERATURE LEVEL 3 | OBS_SOIL_TEMPERATURE_LEVEL_3 | ON | FOREGROUND
SOIL TEMPERATURE LEVEL 4 | OBS_SOIL_TEMPERATURE_LEVEL_4 | ON | FOREGROUND
STATION HEIGHT | OBS_STATION_HEIGHT | ON | FOREGROUND

##### Observation Type DRIBU

DRIBU observations are all drifting observation stations, including BATHY and TESAC. The format for plotting layout for DRIBU observations is as follows :

The meteorological variables plotted, together with the corresponding Magics parameters and their default colour and status (on or off) are listed below. Please note that a triangle is plotted as the station ring for DRIBU.

Magics parameters for DRIBU observations

Meteorological Variable | Magics Parameter | Status | Default Colour
--- | --- | --- | ---
STATION RING (O) | OBS_STATION_RING | ON | FOREGROUND
STATION IDENTIFICATION (IDEN) | OBS_IDENTIFICATION | OFF | FOREGROUND
WIND SPEED AND DIRECTION | OBS_WIND | ON | FOREGROUND
MSL PRESSURE (PPP) | OBS_PRESSURE | ON | FOREGROUND
AIR TEMPERATURE (TT) | OBS_TEMPERATURE | ON | FOREGROUND
SEA SURFACE TEMPERATURE (TsTs) | OBS_SEA_SURFACE_TEMPERATURE | ON | FOREGROUND
OBSERVATION TIME (TIME) | OBS_TIME_PLOT | OFF | FOREGROUND

##### Upper Air Observations

The full standard layout used for plotting upper air observations is as follows:

For all upper air plotting, except SATEM, the above layout is used and the spaces not used are left blank. However, as none of the upper air observation types uses the full plotting layout, the station identification (IDEN ) is moved, automatically, nearer to the centre of the observation when the dewpoint (TdTd ) and/or the sea surface temperature (TsTs ) are not plotted.

Users may select the pressure level for which observations are to be plotted by setting the parameter OBS_LEVEL to the required level in hPa (default value for OBS_LEVEL is `500` hPa).

Off-level plotting may be achieved by setting the parameter OBS_LEVEL_TOLERANCE to a value, above and below OBS_LEVEL, for which observations are to be plotted. The value set must be in hPa and the default is `0`.

If the thickness between two levels is required, OBS_LEVEL should be set to one of the required levels, OBS_LEVEL_2 should be set to the other level and OBS_THICKNESS should be set to '`ON`'.

###### Exception to Standard

From the above diagram, it is obvious that tThere is no place for pressure plotting. In some cases (e.g. TEMP, PILOT) there may be no need to plot the pressure as the user will know that all the observation are at a certain pressure level (Magics parameter OBS_LEVEL controls the pressure level). However for reports such as AIREP and SATOB , there are no 'standard' pressure levels and it is probably desirable to plot the pressure level for each report. It is also probably desirable to plot the two pressure levels for TOVS , SATEMS etc. A Magics parameter OBS_UPPER_AIR_PRESSURE exists to control the plotting of upper air pressure for all the upper air observations. The valid values for this parameter are '`ON`' /'`OFF`', the default being '`OFF`'. If set to '`ON`', the pressure will be plotted as follows:

`TEMP, PILOT, SATOB, AIREP`

IF HHH is to be plotted, The pressure will be plotted immediately above HHH . If HHH is not to be plotted the pressure will be plotted instead of and in the position of HHH . The pressure will always be in round brackets to distinguish it from HHH , i.e. (PPP ). Examples:

Pressure and Height plotted:

FM Diagram

Pressure but not Height plotted:

FM Diagram

SATEM, TOVS

Two pressure levels will be plotted, one replacing HHH and the other (PPP2 ) replacing, or above, TT in the above diagram. The pressure will always be plotted in round brackets. Examples :

Pressure levels with Temperature:

FM Diagram

Pressure levels without Temperature:

FM Diagram

Diagram 8

##### Observation Type AIREP

AIREP observations are all observations from aircraft, including CODAR and COLBA. Following is the format for plotting AIREP observations. Note the position of the station identification, due to the fact that dewpoint and sea surface temperature are not plotted.

FM Diagram

The meteorological variables plotted, together with the corresponding Magics parameters and their default colour and status (on or off) are listed below.

Magics parameters for AIREP observations

Meteorological Variable | Magics Parameter | Status | Default Colour
--- | --- | --- | ---
STATION RING (O) | OBS_STATION_RING | ON | FOREGROUND
STATION IDENTIFICATION (IDEN) | OBS_IDENTIFICATION | OFF | FOREGROUND
WIND SPEED AND DIRECTION | OBS_WIND | ON | FOREGROUND
PRESSURE LEVEL(PPP) | OBS_UPPER_AIR_PRESSURE | ON | FOREGROUND
TEMPERATURE (TT) | OBS_TEMPERATURE | ON | FOREGROUND
OBSERVATION TIME (TIME) | OBS_TIME_PLOT | OFF | FOREGROUND

##### Observation Type SATOB

SATOB are reports from satellites of wind, surface temperature, clouds and radiation. Following is the format or plotting layout for SATOB observations:

FM Diagram

The meteorological variables plotted, together with the corresponding Magics parameters and their default colour and status (ON or OFF) are listed below.

Magics parameters for SATOB observations

Meteorological Variable | Magics Parameter | Status | Default Colour
--- | --- | --- | ---
STATION RING (O) | OBS_STATION_RING | ON | FOREGROUND
STATION IDENTIFICATION (IDEN) | OBS_IDENTIFICATION | OFF | FOREGROUND
WIND SPEED AND DIRECTION | OBS_WIND | ON | FOREGROUND
PRESSURE LEVEL(PPP) | OBS_UPPER_AIR_PRESSURE | OFF | FOREGROUND
CLOUD TEMPERATURE (TT) | OBS_TEMPERATURE | ON | FOREGROUND
SEA SURFACE TEMPERATURE (TsTs) | OBS_SEA_SURFACE_TEMPERATURE | ON | FOREGROUND
OBSERVATION TIME (TIME) | OBS_TIME_PLOT | OFF | FOREGROUND

Diagrams 9, 10, 11

##### Observation Type TEMP

TEMP observations are all Radio Sonde observations, including TEMPSHIP. Following is the format or plotting layout for TEMP observations:

FM Diagram

The meteorological variables plotted, together with the corresponding Magics parameters and their default colour and status (ON or OFF ) are listed below.

Magics parameters for TEMP observations

Meteorological Variable | Magics Parameter | Status | Default Colour
--- | --- | --- | ---
STATION RING (O) | OBS_STATION_RING | ON | FOREGROUND
STATION IDENTIFICATION (IDEN) | OBS_IDENTIFICATION | OFF | FOREGROUND
WIND SPEED AND DIRECTION | OBS_WIND | ON | FOREGROUND
PRESSURE LEVEL(PPP) | OBS_UPPER_AIR_PRESSURE | OFF | FOREGROUND
TEMPERATURE (TT) | OBS_TEMPERATURE | ON | FOREGROUND
DEWPOINT (TdTd) | OBS_DEWPOINT | ON | RED
TEMPERATURE (TT) | OBS_TEMPERATURE | ON | FOREGROUND
GEOPOTENTIAL (HHH) | OBS_HEIGHT | ON | FOREGROUND
THICKNESS BETWEEN OBS_LEVEL AND OBS_LEVEL2 (THK) | OBS_THICKNESS | OFF | FOREGROUND
THETA VALUE (THE) | OBS_THETA | ON | FOREGROUND
OBSERVATION TIME (TIME) | OBS_TIME_PLOT | OFF | FOREGROUND
THERMAL WIND | OBS_THERMAL_WIND | OFF | FOREGROUND

The height of the pressure level (HHH) is plotted in decametres.

###### Observation Theta

The parameter OBS_THETA, plotted by TEMP observations, may be used to plot one of several derived values, e.g. relative humidity, potential temperature.

The parameter OBS_THETA_TYPE may be set to the derived value required, e.g.

        CALL PSETC ('OBS_THETA_TYPE','POTENTIAL_TEMPERATURE')

The default value for this parameter is '`RELATIVE_HUMIDITY`'.

Diagram 12

##### Observation Type PILOT

PILOT observations are all upper wind observations from land and sea stations. Following is the format or plotting layout for PILOT observations:

FM Diagram

The meteorological variables plotted, together with the corresponding Magics parameters and their default colour and status (on or off) are listed below.

Magics parameters for PILOT observations

Meteorological Variable | Magics Parameter | Status | Default Colour
--- | --- | --- | ---
STATION RING (O) | OBS_STATION_RING | ON | FOREGROUND
STATION IDENTIFICATION (IDEN) | OBS_IDENTIFICATION | OFF | FOREGROUND
WIND SPEED AND DIRECTION | OBS_WIND | ON | FOREGROUND
PRESSURE LEVEL(PPP) | OBS_UPPER_AIR_PRESSURE | OFF | FOREGROUND
GEOPOTENTIAL (HHH) | OBS_HEIGHT | ON | FOREGROUND
OBSERVATION TIME (TIME) | OBS_TIME_PLOT | OFF | FOREGROUND
THERMAL WIND | OBS_THERMAL_WIND | OFF | FOREGROUND

###### Thermal Wind

It is possible to plot the thermal wind for a layer in the atmosphere when plotting TEMP and PILOT observations. As for thickness, the thermal wind may be plotted for the layer between OBS_LEVEL_2 and OBS_LEVEL. To plot the thermal wind, the parameter OBS_THERMAL_WIND should be set to '`ON`', the default being '`OFF`'. The parameter OBS_THERMAL_WIND_LINE_STYLE allows the user to define the line style for plotting the thermal wind. Valid values are `SOLID`, `DOT` and `DASH` (default and WMO standard).

Diagram 13

##### Observation Type SATEM

SATEM observations are all reports of satellite remote upper air soundings of pressure, temperature and humidity, including TOVS and PAOBS. Following is the format or plotting layout for SATEM observations:

FM Diagram

The meteorological variables plotted, together with the corresponding Magics parameters and their default colour and status (ON or OFF) are listed below.

Magics parameters for SATEM observations

Meteorological Variable | Magics Parameter | Status | Default Colour
--- | --- | --- | ---
STATION RING (O) | OBS_STATION_RING | ON | FOREGROUND
STATION IDENTIFICATION (IDEN) | OBS_IDENTIFICATION | OFF | FOREGROUND
PRESSURE LEVELS (LEV1, LEV2) | OBS_UPPER_AIR_PRESSURE | OFF | FOREGROUND
THICKNESS BETWEEN OBS_LEVEL AND OBS_LEVEL2 (THK) | OBS_THICKNESS | OFF | FOREGROUND
SURFACE TEMPERATURE (TsTs) | OBS_SEA_SURFACE_TEMPERATURE | OFF | FOREGROUND
WATER PRECIPITABLE (WAP) | OBS_WATER_PRECIPITABLE | OFF | FOREGROUND
OBSERVATION TIME (TIME) | OBS_TIME_PLOT | OFF | FOREGROUND

Users may select the two pressure levels required by setting the parameters OBS_LEVEL and OBS_LEVEL_2 to the required levels in hPa. The default values are 500 hPa for OBS_LEVEL and 1000 hPa for OBS_LEVEL_2. Please note that, by default, the THICKNESS between the two selected levels will be plotted. However, if OBS_SATEM_TEMPERATURE is set '`ON`', the calculated mean temperature between the two levels will be plotted.

Cloud amount is also plotted inside the station ring. There are three values of cloud amount plotted: no cloud, partly cloudy or completely cloudy.

###### Profiler Data

This consists of wind plotting at varying levels, the levels being measured in metres above the observing station. The Magics parameter OBS_LEVEL may be used to specify the required level, remembering that the level values increase as they rise above the station (pressure level values decrease). There is no need to specify anything extra; just pass the relevant file containing the PROFILER data.

### Programming Tips

Action routine `POBS` must be called to plot observations.

Before plotting observations, the required page layout and mapping parameters should be set as usual and any relevant Magics observation parameters should be set.

It is possible to plot contours, winds fields and observations on the same subpage. The observations may be plotted before or after the contours or winds.

The observations on an input file may be of different observation types, e.g. SYNOPS, TEMPS, SATEMS, etc. There is no need to specify the observation type for plotting unless a specific type is required. By default, action routine `POBS` will plot all the observations on the input file regardless of observation type.

If specific observation types or code types are required, the user should set the appropriate parameters.

Some of the Magics observation parameters will only be used by Magics when they are set by the user. When any of the observation parameters are set, the value set will be used by Magics until changed or reset by the user.

To reset a parameter, users should use the routine `PRESET`, e.g.

        CALL PRESET ('OBS_TYPE_LIST')

`PRESET` has the dual function of replacing the current value of the parameter, if appropriate, with its default value and informing Magics that this parameter has not been set by the user.

It is possible to call `POBS` more than once using the same input file and plotting different observations each time. The input file will be rewound automatically each time `POBS` is called.

### BUFR Parameter Tables

To enable the decoding of observations coded in BUFR, it is necessary to have tables which describe the contents of the BUFR code, e.g. the names and units of parameters, reference values and scale factors. The "parameters", as understood in the BUFR context, include not just the meteorological variables, but also the location of the observation, block/station number, instrumentation etc. Each parameter is described by a descriptor, which is an integer number that uniquely identifies the parameter, e.g. Temperature, Pressure, latitude/longitude, block number. These BUFR tables are stored at an address defined by an environment variable (which is made known to Magics installers at the various sites). The tables are then used in the BUFR decoding part of Magics and their use is transparent to the user. There are standard descriptor numbers for each of the "parameters". It is possible to use local descriptor numbers instead of the standard ones and these local descriptors would be described in the BUFR tables.

#### BUFR Parameter Lists

To make it possible for Magics to be able to plot observations from BUFR code from varying originating centres, which may or may not use local descriptor numbers, it is necessary for Magics to be able to identify the descriptor numbers of the meteorological variables and those "parameters" that describe the position and time of the observation. To enable this for each originating centre, there are external files called BUFR Parameter Lists, where each file consists of a list of descriptors for the meteorological variables and the position and time "parameters". For each originating centre, these descriptor numbers should match those in the BUFR Tables described above.

There are two BUFR Parameter Lists for each originating centre, one for surface observations and one for upper air. Each list consists of entry lines, one entry line per meteorological variable or "parameter". An entry line consists of a descriptor number followed by an ampersand(&) and then, optionally, text to describe the variable.

descriptor & text describing the meteorological variable or "parameter"

For example, the first three lines of the upper air BUFR Parameter List should be as follows:

    11001 & WIND DIRECTION
    11002 & WIND SPEED
    10195 & HEIGHT in mtrs

The position of the line in the list, not the text, is what actually defines the meteorological variable, e.g. the first entry line in the upper air BUFR Parameter Table is always the entry for Wind Direction, the second Wind Speed and the third Height. It is necessary to include each entry line in the file, even if they are not to be used. Complete lists for upper air and surface are given below.

#### Accessing BUFR Parameter Lists

There are two modes of accessing the BUFR Parameter Lists in Magics. By default, the lists are stored at an address path controlled by an environment variable, which is made known to installers at the various sites. The other mode of access is by setting a Magics parameter, BUFR_PARAM_LIST_ADDRESS_PATH, to the address path of the tables. This means that users can then use their own lists. Each upper air list name should have the format bufrtab_ua_nn (surface lists should have the format bufrtab_surf_nn) where nn is the number of the originating Centre of the BUFR data, e.g. 98 for ECMWF, 85 for France.

#### Surface BUFR Parameter List

The ECMWF BUFR Parameter List for surface data, bufrtab_surf_98 is as follows (38 lines):

    11011 & WIND DIRECTION at 10 m
    11012 & WIND SPEED at 10m
    20001 & HORIZONTAL VISIBILITY
    20003 & PRESENT WEATHER
    12004 & TEMPERATURE at 2m
    20012 & MEDIUM CLOUD
    20012 & HIGH CLOUD
    10051 & MSL PRESSURE
    10063 & PRESSURE TENDENCY CHARACTERISTIC(a)
    10061 & PRESSURE TENDENCY AMOUNT (pp)
    20004 & PAST WEATHER (1)
    20005 & PAST WEATHER (2)
    20011 & CLOUD AMOUNT (nh)
    20013 & HEIGHT OF CLOUD BASE (h)
    20012 & LOW CLOUD
    12006 & DEWPOINT at 2m
    22042 & SEA TEMPERATURE
    1012 & SHIP'S DIRECTION
    1013 & SHIP'S SPEED
    20010 & TOTAL CLOUD
    22002 & DIRECTION OF WIND WAVES
    22012 & PERIOD OF WIND WAVES
    22022 & HEIGHT OF WIND WAVES
    22003 & DIRECTION OF SWELL WAVES
    22013 & PERIOD OF SWELL WAVES
    22023 & HEIGHT OF SWELL WAVES
    22001 & DIRECTION OF WAVES
    22011 & PERIOD OF WAVES
    20021 & HEIGHT OF WAVES
    4004 & HOUR
    4005 & MINUTE
    5001 & LATITUDE (HIGH ACCURACY)
    5002 & LATITUDE (COARSE ACCURACY)
    6001 & LONGITUDE (HIGH ACCURACY)
    6002 & LONGITUDE (COARSE ACCURACY)
    7001 & HEIGHT OF STATION in mtrs
    7061 & DEPTH BELOW LAND SURFACE
    12030 & SOIL TEMPERATURES

To make local surface BUFR Parameter Lists, it is only necessary to copy the above ECMWF surface list to a new list (with an appropriate name) and change the descriptor numbers to the ones to be used locally. It is important that all the above lines are included in each list, even if they are not to be used in plotting.

The position and time "parameters" are only given in the surface list.

#### Upper Air BUFR Parameter List

Following is a listing of all the entries in the ECMWF BUFR Parameter List for upper air, bufrtab_ua_98 (18 lines):

    11001 &WIND DIRECTION
    11002 & WIND SPEED
    10195 & HEIGHT in mtrs
    12003 & DEW POINT TEMPERATURE
    12001 & TEMPERATURE
    7004 & PRESSURE level in pascals
    7006 & HEIGHT ABOVE STATION in mtrs
    22042 & SEA TEMPERATURE
    11003 & U-COMPONENT
    11004 & V-COMPONENT
    10003 & HEIGHT in gp mtrs
    11192 & U-COMPONENT at 10m
    11193 & V-COMPONENT at 10m
    7002 & ALTITUDE in mtrs
    12007 & VIRTUAL TEMPERATURE
    13016 & PRECIPITABLE WATER
    20010 & TOTAL CLOUD
    10004 & PRESSURE in pascals

To make local upper air BUFR Parameter Lists, it is only necessary to copy the above ECMWF upper air list to a new list (with an appropriate name) and change the descriptor numbers to the ones to be used locally. It is important that all the above lines are included in each list, even if they are not to be used in plotting.

### Program Examples

These examples show some basic plots generated from observations. Please feel free to use these programs as basis for your own developments.