bullet  EUMETSAT   bullet  SAFs   bullet   NWP SAF   bullet  Monitoring reports   bullet   AMV Monitoring Report  bullet  NWP contributor instructions

NWP SAF AMV Monitoring

Introduction Monthly
Monitoring
Analysis
Reports
Investigations NWP Real-time
Monitoring
Action List

Guidance for NWP centres contributing to the NWP SAF AMV monitoring

Last updated February 2012

This page provides guidance for centres contributing to the NWP SAF AMV monthly monitoring.

The AMV monitoring is undergoing rolling developments and these notes will be updated as necessary to reflect any additional plots or changes to existing plots. For information on which satellite, channel and level combinations to include please refer to the latest month of statistics.

To minimise data transfer and maximise consistency in plotting, contributing NWP centres should produce intermediate statistics files and send these to the AMV representative at the Met Office where the plots will be produced. The normal method is to send the compressed statistics files in batches as email attachments or by ftp.

The guidance is divided into various sections:

If you have any comments or recommendations to improve this document, please use the Feedback Form.


1. Quality Control

Before producing the statistics, the AMVs first undergo some basic quality control.

The following guidance should be used for the initial filtering. It is possible this may change in the future, if for example further quality information is provided by the producers.

  • Remove all geostationary AMVs with QI<80.
  • Remove all polar AMVs with QI<60

The QI used is the EUMETSAT-designed quality indicator without first guess check.


2. Statistics

The statistics shown are calculated in accordance with the CGMS-recommended guidelines as follows:

observation speed = √(ObU² + ObV²)

background speed = √(BgU² + BgV²)

vector difference = √ ((ObU - BgU)² + (ObV - BgV)²)

speed bias = ∑ (observation speed - background speed)
                      -----------------------------------------
                                                         N

mean vector difference = ∑ vector difference
                                       ---------------------
                                                            N

root mean square vector difference = √ ( ∑ vector difference² / N )

root mean square speed difference = √ ( ∑ (observation speed - background speed)² / N )

mean observation speed = ∑ observation speed
                                         ----------------------
                                                                N

mean background speed = ∑ background speed
                                         ----------------------
                                                                N

mean observed u component = ∑ (ObU)
                                                 ----------
                                                          N

mean observed v component = ∑ (ObV)
                                                 ----------
                                                          N

mean background u component = ∑ (BgU)
                                                     ----------
                                                            N

mean background v component = ∑ (BgV)
                                                     ----------
                                                            N

normalised root mean square vector difference = root mean square vector difference
                                                                            ---------------------------------------
                                                                                             mean background speed

standard deviation of vector difference = √ (root mean square vector difference² - mean vector difference²)

standard deviation of speed difference = √ (root mean square speed difference² - speed bias²)

Pearson's product moment correlation coefficient, r (for density plots)
r = ∑ (observation speed * background speed) - N * mean observation speed * mean background speed                        ---------------------------------------------------------------------------------------------------------------------
                    N * standard deviation of observation speed * standard deviation of background speed

Where
ObU - AMV u component in m/s
ObV - AMV v component in m/s
BgU - background u component at observation location in m/s
BgV - background v component at observation location in m/s
N - number of observations in box

All AMV monitoring plots are produced separately for each satellite, channel and, where relevant, level and latitude band combination.

The pressure levels are defined as:
high level: ((Press > 1) .AND. (Press <= 400))
mid level: ((Press > 400) .AND. (Press <= 700))
low level: ((Press > 700) .AND. (Press <= 1100))
where pressure is in hPa

The latitude bands are defined as:
NH: (Lat > 20)
TR: ((Lat <= 20) .AND. (Lat >= -20))
SH: (Lat < -20)


3. Zonal plots

Ultimately you want to produce an intermediate statistics file as shown in this example. This can be read in by a Met Office IDL routine, which produces the final plots.

Included in the list below is some guidance for how to get to this point.

  1. Read data and carry out initial filtering.
  2. Calculate the statistics for each pressure-latitude box. Currently the dimensions are set to 2 degrees and 10 hPa, but ideally this should be left flexible in the code. The statistics written to the output file are detailed below. Normally statistics in columns 3-6 are plotted, however, the plot options can be altered to plot columns 7-10, which can be useful for investigations.
  3. Construct titles and filenames for the plots.
  4. Write output file.

The output file is made up of several blocks - one for each satellite-channel combination. In each block:

Line 1: This becomes the title of the plot and is made up of the centre, satellite name, channel and date e.g. ECMWF: Meteosat-5 WV September 2004

Line 2: This is used as the filename of the plot. This should be in the format: mmyy_Zonal[Centre]_[sat][chan].ps where
    mm - month e.g. 09
    yy - year e.g. 04
    Centre - e.g. MetO or Ec
    sat - short form of satellite (m7,m8,m9,g11,g12,mt1r,terra,aqua, n15,n16,n17,n18 etc.)
    chan - short form of channel (ir,vis,wv,cswv,ir108,vis08 etc.)

Line 3: Number of latitude and pressure divisions - this is currently 90 and 100.

Line 4: LatDiff and PressDiff (box size currently set to 2 degrees and 10 hPa).

Line 5 onwards: looping through latitude and pressure boxes....
column1: latitude box (0-89) where ilat = FLOOR((lat + 90.0) / LatDiff)
column2: pressure box (0-99) where ipress = NINT(press / PressDiff)
column3: number of winds
column4: speed bias
column5: mean vector difference
column6: normalised root mean square vector difference
column7: root mean square vector difference
column8: standard deviation of the vector difference
column9: mean background speed
column10: mean observation speed

Last Line: -99,-99,-99,-99.9,-99.9,-99.9,-99.9,-99.9, -99.9,-99.9 (dummy line used to check end of section)


4. Map plots

Ultimately you want to produce an intermediate statistics file as shown in this example. This can be read in by a Met Office IDL routine, which produces the final plots. In order to maximise code reuse, the same intermediate file is used for the normal map plots and for the vector plots, although they use different box dimensions (see below).

Included in the list below is some guidance for how to get to this point.

  1. Read data and carry out initial filtering.
  2. Calculate the statistics for each latitude-longitude box. The dimensions should be left flexible in the code. The dimensions are currently set to 1 degree by 1 degree for the normal geostationary map plots, 200 km for the normal polar map plots and 5 degrees by 5 degrees for the geostationary vector plots. The vector plots cannot yet be produced for the polar data. The statistics written to the output file are detailed below. Normally statistics in columns 3-6 are plotted, however, the plot options can be altered to plot columns 7-10, which can be useful for investigations. The vector plots use the last 6 columns.
  3. Construct titles and filenames for the plots.
  4. Write output file.

The output file is made up of several blocks - one for each satellite-channel-level combination. In each block:

Line 1: This becomes the title of the plot and is made up of the centre, satellite name, channel and date e.g. ECMWF: Meteosat-5 WV hl, September 2004

Line 2: This is used as the filename of the plot. This should be in the format: mmyy_Map[Centre]_[sat][chan][level].ps where
    mm - month e.g. 09
    yy - year e.g. 04
    Centre - e.g. MetO or Ec
    sat - short form of satellite (m7,m8,m9,g11,g12,mt1r,terra,aqua, n15,n16,n17,n18 etc.)
    chan - short form of channel (ir,vis,wv,cswv,ir108,vis08 etc.)
    level - hl, ml or ll
Map is replaced by Vector in the file name by the wave program when the vector plots are produced, so you do not need to worry about it here.

Line 3: Position of satellite: this is 1 for GOES-W, 2 for GOES-E, 3 for 0 degree service, 4 for Indian Ocean, 5 for W. Pacific and 6 for polar data.

Line 4: LatDiff and LonDiff for geostationary or DistDiff for polar.

Line 5: Number of boxes in total.

Line 6 onwards: looping through latitude-longitude boxes....
column1: latitude of centre of box
column2: longitude of centre of box
column3: number of winds
column4: speed bias
column5: mean vector difference
column6: normalised root mean square vector difference
column7: root mean square vector difference
column8: standard deviation of the vector difference
column9: mean background speed
column10: mean observation speed
column11: mean observed u component
column12: mean observed v component
column13: mean background u component
column14: mean background v component

Last Line: -99.9,-99.9,-99,-99.9,-99.9,-99.9,-99.9,-99.9, -99.9,-99.9,-99.9,-99.9,-99.9,-99.9 (dummy line used to check end of section)


5. Speed bias density plots

This is the most complicated NWP SAF AMV monitoring plot to produce.

Ultimately you want to produce an intermediate statistics file as shown in this example. This can be read in by a Met Office IDL routine, which produces the final plots.

Included in the list below is some guidance for how to get to this point.

  1. Read data and carry out initial filtering.
  2. Calculate the number of winds that fall in each observation speed by background speed box (Density(:,:)). The box size should be set to 1 m/s by 1 m/s.
  3. Calculate the average line through the observation speed versus background speed points. One way to do this is to:
    1. Convert ObSpeed and BgSpeed to distance from origin and angle from x-axis.
    2. rotate data through 45 degrees towards x-axis and calculate x and y values
      RotTheta(:)=Theta(:) - PI/4.0
      RotY(:) = Dist(:) * SIN(RotTheta(:)
      RotX(:) = Dist(:) * COS(RotTheta(:))
    3. Calculate the number of values (Number(iSlice)), the sum of RotY (SumY(islice) and the mean x-coordinate (ArrayX(islice)) in each slice.
    4. Where Number >= 25 then find AverageY(:) = SumY(:) / Number(:), else set to missing data incidator (-32768.00).
    5. Rotate the mean line co-ordinates back 45 degrees.
      WHERE (AverageY(:) /= RMDI)
         TempDist(:) = SQRT(ArrayX(:)**2 + AverageY(:)**2)
          TempTheta(:) = ATAN(AverageY(:)/ArrayX(:)) + PI/4.0
          LineY(:) = TempDist(:) * SIN(ABS(TempTheta(:)))
          LineX(:) = TempDist(:) * COS(TempTheta(:))
      ELSEWHERE
          LineY(:) = RMDI
          LineX(:) = RMDI
      END WHERE
  4. Calculate some statistics for the plot footer. This should include the number, speed bias and standard deviation of the speed difference for all the data passing QC and those data that were used operationally.
  5. Construct titles for the plots.
  6. Construct format statements for the output file.
  7. Write output file.

The output file is made up of several blocks - one for each satellite-channel-level combination. In each block:

Line 1: This is the format statement required by IDL to read in the 5th line of each file block.

Line 2: This is the format statement required by IDL to read in the 6th line onwards block.

Line 3: NumBoxes, NumSlices
where NumBoxes is the number of boxes in each direction = INT(MaxVal(ilev) / BoxSize). MaxVal is set to 75m/s for hl/ml and 50 m/s for ll. BoxSize is currently set to 1m/s. NumSlices is the number of slices for calculating the average line (calculated as NumSlices = INT(MaxVal(ilev) / (SliceWidth * COS(PI/4))) where SliceWidth = REAL(BoxSize) * COS(PI/4.0)).

Line 4: ilat, ilev, title1, title2, title3, title4, PsFileName, MaxVal, where
ilat - latitude band (1=NH, 2=TR, 3=SH).
ilev - level (1=hl, 2=ml, 3=ll).
title1 = [Satellite] [Channel] e.g. GOES-9 IR.
title2 = [Month] [Year] e.g. July 2005.
title3 = [level] e.g. Above 400 hPa.
title4 = [latband] e.g. Area: 20N-90N.
PsFileName in form mmyy_Density[Centre]_[sat][chan][level], where
    mm - month e.g. 09
    yy - year e.g. 04
    Centre - e.g. MetO or Ec
    sat - short form of satellite (m7,m8,m9,g11,g12,mt1r,terra,aqua, n15,n16,n17,n18 etc.)
    chan - short form of channel (ir,vis,wv,cswv,ir108,vis08 etc.)
    level - hl, ml or ll
MaxVal is set to 75m/s for hl/ml and 50 m/s for ll

Line 5: NumWinds, bias, Stdv, NumUsed, BiasUsed, StdvUsed, PercentageUsed, r, BoxSize, XCoord(:), YCoord(:), LineX(:), LineY(:), where
NumWinds = total number of winds passing QC
bias = speed bias of winds passing QC
Stdv = standard deviation of speed difference for winds passing QC
NumUsed = number of winds used operationally
BiasUsed = bias of winds used operationally
StdvUsed = standard deviation of speed difference for winds used operationally
PercentageUsed = percentage of winds used operationally
r = Pearson's product moment correlation coefficient for all data plotted
BoxSize = size of box (set at 1 m/s)
XCoord(:) = x-coordinates for plotting Density array. Set as XCoord(ibox) = ibox*BoxSize - HalfBoxSize.
YCoord(:) = y-coordinates for plotting Density array. Same as XCoord.
LineX(:) = x-coordinates of average line.
LineY(:) = y-coordinates of average line.

Line 6 onwards: Loop through boxes writing out Density(ix,:).