Information on this page:

Getting NCEP Ensemble data via anonymous ftp

NCEP Ensemble data are currently available via anonymous ftp on 2 different servers:

Typically, the ftp server will have a few recent days worth of data on-line, while the OSO server will likely only have the data from the current day. The data are grouped together according to variable. For example, the file  enspost.T00Z.z500 will contain all 12 ensemble perturbation forecasts for 500 mb height for 00z for the day given by the directory name. The following variables are available: For each variable, 1 file is written for the 12 00z perturbations and 1 file is written for the 5 12z perturbations. In each file and for each perturbation, data are included every 12 hours from valid time = 00h to 384h. GRIB index files are also included on these servers in the same directory as the GRIB data files, and are identified by the "i" after the parameter identifier in the file name (e.g.,  enspost.T00Z.z500i ).

In addition, a file containing probabilistic quantitative precipitation forecasts (PQPF), derived from the ensemble, is also available.

FTP Access to NCEP GRIB decoding software

You can find NCEP GRIB decoding software at 2 different locations:

1. NCEP "nic" server: Do an anonymous ftp to (, and cd to /pub/info. Download the file README.INFO. Read that and then cd to the directory corresponding to the platform that you have (gribsgi, gribsun, etc.). 

2. A more recent version of the NCEP GRIB software package that contains more bells and whistles can be downloaded from the web site at by downloading the latest version of the file "hp.gbpak.9702.tarfile" as a binary file and expanding it using "tar xf". *** IMPORTANT NOTE *** This version of the NCEP GRIB software has only been shown to work properly on HP workstations and Cray computers. If you are working on a different platform, you can try to use it, but it very well may not work. If it doesn't work on your platform, then go with the first option of ftp'ing to the NCEP nic server and downloading that software.

*** You can find help using NCEP's GRIB decoding software by clicking here ***

Understanding the Ensemble GRIB PDS extension

Individual ensemble members are identified in GRIB by a special extension to the GRIB header (the PDS) beyond byte 41. Typically, the PDS of a regular GRIB file will only contain 28 bytes (also called octets). However, for most ensemble applications, more than 28 bytes are needed to properly identify the particular ensemble member, probability type, cluster, etc.

The ensemble flag is in the value of octet 26; If octet 26 = 2, then this particular GRIB record contains a PDS extension with ensemble information. The length of that extension depends on the type of information contained in the record. For example, if there are no probability or clustering data in this record and all you need to do is identify which ensemble member is packed in this record, then all you need are octets 41-45. However, if you need probability or clustering information, then you'll need to access octets 46 through perhaps octet 86 (see the table below for more detailed information).

You can use subroutine getgbex from the nw3lib for handling data with the ensemble extension in the header.

Currently, there are no WMO standards for including this extra information on ensemble data; below the PDS GRIB extension adopted at NCEP (which is somewhat similar to that used at ECMWF) is described.


Byte (or Octet) 



Identifies application 

1 = Ensemble 



1 = Unperturbed control forecast 
2 = Individual negatively perturbed forecast 
3 = Individual positively perturbed forecast 
4 = Cluster 
5 = Whole ensemble 


Identification number 

If Byte 42 = 1, byte 43 will = 1 or 2: 
1 = High resolution control forecast 
2 = Low resolution control forecast

 If Byte 42 = 2 or 3, byte 43 will = 1,2,3,4 or 5: 
This number indicates the identification number 
for this member of a pair. That is, there is a 
first negative perturbation and a first positive 
perturbation (n1 and p1). 

Product Identifier 

1 = Full field (individual forecast) / Unweighted mean (cluster/ens) 
2 = Weighted mean 
11 = Standard deviation with respect to ensemble mean 
12 = Standard deviation with respect to ensemble mean, normalized 


Spatial smoothing of product (number of highest total wavenumber included) 

255 = Original resolution retained 

Octet 46 and above are used only if needed 

Probability Section 


Probability product definition: 

If octet 9=191 or 192, defines variable in terms of octet 9 table (see below for more details)


Probability type 

1 = Probability of event below lower limit 
2 = Probability of event above upper limit 
3 = Probability of event between lower and upper limits

4=Percentile lower value (below which the variable is expected to occur with given probability)

5=Percentile upper value (above which the variable is expected to occur with given probability)
6=Percentile interval (range of values between two percentiles)
48-51 If octet 47=1 or 3:   Lower limit for probability (unit as in octet 9; floating point number)
If octet 47=4 or 6:   Percentile lower limit (probability; floating point number)
52-55  If octet 47=2 or 3:   Upper limit for probability (unit as in octet 9; floating point number)
If octet 47=5 or 6:   Percentile upper limit (probability; floating point number)
56-60  Reserved 

Octet 61 and above are used only if octet 42=4 or 5 

Clustering Section 


Ensemble size (number of members, including controls) 
62  Cluster size (number of members) 
63  Number of clusters 
64  Clustering Method 

1 = AC 
2 = RMS 

65-67  Northern latitude of clustering domain (in thousandths of degree) 
68-70  Southern latitude of clustering domain (in thousandths of degree) 
71-73  Eastern longitude of clustering domain (in thousandths of degree) 
74-76  Western longitude of clustering domain (in thousandths of degree) 
77-86  Cluster membership: 

If octet 42=4, shows, in binary (on/off) format, which members of the ensemble belong to the current cluster. Membership table defined by product generators. 

87-100  Reserved 


Please refer to the "GRIB Manual" (Office Note 388) for further details

Octet 9 (Indicator of parameter and units) 




Probability from ensemble (Octet 41=1)  non-dim  PROB 
192  Probability from ensemble, normalized with respect to climate expectancy (Octet 41=1)  non-dim  PROBN 


Difference between two height levels  gpm  HGTD 

Octet 21 (Time Range Indicator) 




Standard deviation of N forecasts, all with the same reference time, with respect to the time average of forecasts; the first forecast has a forecast period of P1, the remaining forecasts follow at intervals of P2 

Octet 26 (Identification of sub-center) 



NMC Ensemble Products (Perturbed forecasts and other products) (See octet 41). i.e., if octet 26 = 2, then this GRIB record contains ensemble data AND an extension to the PDS. 

Octet 29 



Full forecast field 
Forecast error field (forecast minus analysis) 
Original forecast field 
Bias corrected forecast field 
Original resolution retained 
Smoothed field 
(Mean model error fields can be identified by setting the first bit of octet 29 to 1 and specifying a time-averaging process in octets 19-24.)

Go back to NCEP Ensemble Home Page 
Go back to NCEP Ensemble Implementation News