CDM version 4.3 is a complete overhaul of GRIB handling, including the use of the external tables, which map the codes in the file to the parameter names, units, and everything else that there is to know about the data in the GRIB file. Because there are no machine-readable, canonical tables for software to use, these tables are maintained by hand, and parameter names are sometimes tweaked in the actual tables that are used by centers, including NCEP. Since we use those tables to name the CDM variables, we have a problem when names change that are embeddded in scripts or in IDV bundles.
(There are a bunch of other complexities about creating GRIB variable names that you can read about in previous blog posts. Previous versions of the CDM GRIB reading code made several important mistakes in how variables are named which must be corrected, so that a lot of old scripts have to break anyway.)
To solve this problem, the CDM played with using variable names only from information in the GRIB files themselves (resulting in lovely names like "VAR_58-0-2-11_L105") and encoding all the "human readable" information in the long_name attribute. While this solved the changing name problem, nobody was much happy with it. After much discussion at the recent user committee, we came up with this recommendation for the GRIB renaming issue:
Usercomm recognizes the tension between making GRIB variable names human readable vs keeping them stable, in the face of changing external GRIB parameter tables. We also recognize that the netCDF-Java library needs to fix incorrectly named GRIB variables. We recommend that:
1) GRIB variable names should be kept human readable.
2) A mapping between old and new names should be created so that users don't experience disruptive changes in IDV bundles and scripts.
3) A small, ongoing amount of "bundle breaking" is expected as GRIB parameter tables change.
4) The IDV should develop functionality to gracefully transition bundles and other scripts as GRIB variable names, URLS, and other external web resources change.
The net result is that GRIB variable names will stay human readable in 4.3 (assuming you think "wnd_vcmp_mn_trnc18_isobaric" makes sense), at the cost of occasional broken scripts when GRIB tables get modified. This is the state of the art. Hopefully we can continue to improve it.
'Tis but thy name that is my enemy;
Thou art thyself, though not a Montague.
What's Montague? it is nor hand, nor foot,
Nor arm, nor face, nor any other part
Belonging to a man. O, be some other name!
What's in a name? that which we call a rose
By any other name would smell as sweet;
So Romeo would, were he not Romeo call'd,
Retain that dear perfection which he owes
Without that title. Romeo, doff thy name,
And for that name which is no part of thee
Take all myself. -- J.C.