|
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.
|
|
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.
|
|
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)
|
|
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.
- Read data and carry out initial filtering.
- 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.
- Construct titles and filenames for the plots.
- 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)
|
|
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.
- Read data and carry out initial filtering.
- 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.
- Construct titles and filenames for the plots.
- 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.
- Read data and carry out initial filtering.
- 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.
- Calculate the average line through the observation
speed versus background speed points. One way to do this is to:
- Convert ObSpeed and BgSpeed to distance from origin and
angle from x-axis.
- 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(:))
- Calculate the number of values (Number(iSlice)), the sum of
RotY (SumY(islice) and the mean
x-coordinate (ArrayX(islice)) in each slice.
- Where Number >= 25 then find AverageY(:) = SumY(:) / Number(:),
else set to missing data incidator (-32768.00).
- 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
- 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.
- Construct titles for the plots.
- Construct format statements for the output file.
- 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,:).
|
|