| 1 | io_grib2 |
|---|
| 2 | |
|---|
| 3 | Author: Todd Hutchinson |
|---|
| 4 | WSI |
|---|
| 5 | thutchinson@wsi.com |
|---|
| 6 | |
|---|
| 7 | 28 September 2005 |
|---|
| 8 | |
|---|
| 9 | I. Introduction |
|---|
| 10 | |
|---|
| 11 | io_grib2 is a WRF module that allows for input and output of WRF data in GRIB |
|---|
| 12 | version 2 format. |
|---|
| 13 | |
|---|
| 14 | Why would anyone use GRIB2 output? |
|---|
| 15 | Data stored in GRIB2 format is compressed using advanced compression |
|---|
| 16 | (i.e., JPEG2000), so output files are much smaller than in other formats |
|---|
| 17 | such as netCDF and grib version 1. Better compression is achieved with |
|---|
| 18 | larger grids. |
|---|
| 19 | |
|---|
| 20 | II. Prerequisites |
|---|
| 21 | |
|---|
| 22 | In order to compile and link WRF using the grib2 format, one system library |
|---|
| 23 | is required: |
|---|
| 24 | libjasper.a: http://www.ece.uvic.ca/~mdadams/jasper/ |
|---|
| 25 | |
|---|
| 26 | The library should be installed in a system accessible place (i.e., |
|---|
| 27 | /usr/lib). The paths to the jasper library and include files must be |
|---|
| 28 | specified via environment variables prior to running ./configure . |
|---|
| 29 | Please use the following environment variables: |
|---|
| 30 | JASPERLIB Path to jasper library files (libjasperlib.a) |
|---|
| 31 | JASPERINC Path to jasper include files |
|---|
| 32 | Note that if these environment variables are not defined before |
|---|
| 33 | ./configure is run, the Grib2 I/O package will not be built. |
|---|
| 34 | |
|---|
| 35 | III. Running WRF with grib2 input/output |
|---|
| 36 | 1. Set namelist entry or entries io_form_<x> to 10 |
|---|
| 37 | 2. Run WRF as you normally would, for example: |
|---|
| 38 | cd test/em_real |
|---|
| 39 | ./real.exe |
|---|
| 40 | ./wrf.exe |
|---|
| 41 | |
|---|
| 42 | IV. Quilting |
|---|
| 43 | If you are running WRF using MPI, you may use a seperate processor for |
|---|
| 44 | quilting just as is done with netCDF. Simply set the namelist variable |
|---|
| 45 | nio_tasks_per_group to 1 (or more). |
|---|
| 46 | |
|---|
| 47 | V. Details |
|---|
| 48 | 1. grib2map.tbl file |
|---|
| 49 | io_grib2 makes use of a table for encoding the WRF data into GRIB2 |
|---|
| 50 | format. The table that io_grib2 uses is contained in the |
|---|
| 51 | WRF run directory, and is called grib2map.tbl. This file is read at |
|---|
| 52 | run-time by io_grib2. Settings in this file are used to encode the |
|---|
| 53 | corresponding parameters in the output files. You may modify |
|---|
| 54 | this file to suit your needs. |
|---|
| 55 | |
|---|
| 56 | The format of the table is described within the file itself. |
|---|
| 57 | |
|---|
| 58 | VI. Comparison between file formats. |
|---|
| 59 | 1. The following table shows the file sizes and run times for netcdf, grib1, |
|---|
| 60 | and grib2 format for a 6 hour simlation of the WRF jun11 test case. The |
|---|
| 61 | domain size in this case is 91x82 by 28 levels. Data was output every |
|---|
| 62 | 3 hours (for a total of 3 output times). The simulations were run on |
|---|
| 63 | NCAR's bluesky system. |
|---|
| 64 | |
|---|
| 65 | | Size (MB) | WRF Time(m:s) |
|---|
| 66 | ------------------------------------ |
|---|
| 67 | NETCDF | 38.40 | 19:31 | |
|---|
| 68 | GRIB1 | 13.42 | 21:22 | |
|---|
| 69 | GRIB2 | 4.33 | 22:36 | |
|---|
| 70 | ------------------------------------ |
|---|
| 71 | |
|---|
| 72 | VII. New namelist variables for Grib2 I/O: |
|---|
| 73 | The following new namelist variables may be optionally used to control |
|---|
| 74 | Grib2 I/O. They are defined in new namelist "&grib2". Note that the |
|---|
| 75 | &grib2 namelist must be included in file "namelist.input" even if empty. |
|---|
| 76 | (This annoyance is ultimately due to problems with old OSF1 Fortran90 |
|---|
| 77 | compilers.) |
|---|
| 78 | |
|---|
| 79 | background_proc_id - Background generating process identifier, typically |
|---|
| 80 | defined by the originating center to identify the background data that |
|---|
| 81 | was used in creating the data. This is octet 13 of Section 4 in the |
|---|
| 82 | grib2 message. Default is 255. |
|---|
| 83 | |
|---|
| 84 | forecast_proc_id - Analysis or generating forecast process identifier, |
|---|
| 85 | typically defined by the originating center to identify the forecast |
|---|
| 86 | process that was used to generate the data. This is octet 14 of Section |
|---|
| 87 | 4 in the grib2 message. Default is 255. |
|---|
| 88 | |
|---|
| 89 | production_status - Production status of processed data in the grib2 |
|---|
| 90 | message. See Code Table 1.3 of the grib2 manual. This is octet 20 of |
|---|
| 91 | Section 1 in the grib2 record. Default is 255. |
|---|
| 92 | |
|---|
| 93 | compression - The compression method to encode the output grib2 message. |
|---|
| 94 | Only 40 for jpeg2000 or 41 for PNG are supported. The default is 40. |
|---|
| 95 | |
|---|