Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Note
iconfalse

Note that the problem described here affects only fields accumulated from the start of the forecast.

.In particular, the ERA5 short forecast accumulations should do not suffer from the same problem  because they are packed and archived as accumulations since the previous post processing (archiving) step  i.e. they are already de-accumulated before packing. 

...

When data are packed in GRIB using the simple packing method, the values are packed by storing differences from the reference value (the minimum of all the values) to a specified fixed number of bits referred to as the "bits per value" (ecCodes key: bitsPerValue).  Thus the packing introduces a discretisation of the values with an associated packing error (ecCodes key:  packingError) such that:

Tip
iconfalse


Mathinline
\mathrm{\mathbf{packed\ value}} - \mathrm{\mathbf{packing\ error}} < \mathrm{\mathbf{true\ value}} =\leq \mathrm{\mathbf{packed\ value}} \pm+ \mathrm{\mathbf{packing\ error}}


The packing error depends on the range of vafieldslues field values and the number of bits per value used to pack the values.

...

Accumulated
model
values
Accumulated
packed
GRIB values
Deaccumulated
packed values
packing error


0.000000.000000.00000
0.000000.000000.00000
0.000000.000000.00000



0.000000.000000.00000
0.000000.000000.00000
0.000000.000000.00000





  • All accumulations start with a zero value at step=0
  • The values at all points are packed exactly

...

Accumulated
model
values
Accumulated
packed
GRIB values
Deaccumulated
packed values
packing error


0.000001.5000010.00000
3.250004.550005.90000
2.200000.031252.00000



0.000001.5000010.00000
3.250004.562505.87500
2.187500.062502.00000



0.000001.5000010.00000
3.250004.562505.87500
2.187500.062502.00000


0.03125
  • The model values increase at all points except the north west
  • Not all values can be represented exactly using 8 bits per value
  • In particular, the value of 0.031250 at the southern point is exactly the packing error and its packed value becomes 0.062500
  • In this case, the packed values are all multiples of 2*packing error=0.0625 so values of 4.55, 5.9 and 2.2 are not stored precisely

...

Accumulated
model
values
Accumulated
packed
GRIB values
Deaccumulated
packed values
packing error


0.000001.5000020.00000
3.250004.550005.90000
2.200000.031252.00000



0.000001.5000020.00000
3.250004.500005.87500
2.250000.000002.00000



0.000000.0000010.00000
0.00000-0.062500.00000
0.06250-0.062500.00000


0.06250
  • Only the model value at the north east point increases
  • The increase in the range of values increases the packing error by a factor of 2

  • Now all packed values are multiples of 2*packing error=0.125

  • The value at the central point of 4.55 is now packed as 4.5 compared to a packed value of 4.5625 at the previous step - a negative accumulation of -0.0625
  • The value at the south west point of 2.2 is now packed as 2.25 compared to a packed value of 2.1857 at the previous step - a positive accumulation of +0.0625

...

Accumulated
model
values
Accumulated
packed
GRIB values
Deaccumulated
packed values
packing error


0.000001.5000040.00000
3.250004.550005.90000
2.200000.031252.00000



0.000001.5000040.00000
3.250004.500006.00000
2.250000.000002.00000



0.000000.0000020.00000
0.000000.000000.12500
0.000000.000000.00000


0.12500
  • Again only the model value at the north east point increases further from 20.0 to 40.0
  • The increase in the range of values increases the packing error.
  • Now all packed values are multiples of 2*packing error=0.25
  • The model value at the eastern point is unchanged at 5.9 but now its packed value is 6.0 giving an apparent positive accumulation  of +0.125

...