Re: [netcdf-java] Bug/fix for processing grib v1 with proper earth radius.

Hi Nathan:

These changes look good, thanks very much. It looks like the two bugs cancelled each other out in use.

BTW, are there any noticeable effects of the change of standard radius?

John

On 6/7/2011 4:37 PM, Mittler, Nathan wrote:

Hey guys,

Let me preface this by stating that I'm running with netcdf-4.2 because I wasn't able to find the latest 4.2.22 on the download page (if anyone could point me to the 4.2.22 download I'd appreciate it). I have tried with the 4.2.20 binaries (which I found on ibiblio) but had the same problem...

I'm trying to use netcdf-java to process a GRIB v1 RUC file and was noticing that the returned GridDataset had a value for the Earth's radius of 6371.229km (i.e. Earth.getRadius() * .001 -- the default value). This is incorrect for GRIB v1, which should have a radius of 6367.47km (i.e. Grib1Tables.getShapeRadius()). Inspecting the source I was able to make what I believe to be the proper fix, but I'll let you folks be the judge. The fix spans two files (attached).

The first issue was that the during the process of creating the GridDataset, the LambertConformal projection is copied using the constructCopy() method. This method was not, however, copying the Earth's radius so it was getting the default value (incorrect for GRIB 1).

The second issue was that LambertConformalConic relies on an attribute "earth_radius" to be in meters, since it does a conversion to km when creating the projection. In GridHorizCoordSys, however, the "earth_radius" attribute is set directly from the attribute "grid_radius_spherical_earth" or "radius_spherical_earth" (depending on GRIB1 or GRIB2). This value appears to be coming in as km for GRIB1. So it's already km, then LambertConformalConfic multiplies by 0.001 again (thinking it's meters) and we end up with a very small value for the radius of the Earth.

I've run my local tests and things appear to be working properly with these changes. If you guys like these changes, would there be any way of getting this into the next release?

Thanks in advance for all your help.

Regards,

Nathan Mittler


/This message is intended only for the addressee and may contain information that is company confidential or privileged. Any technical data in this message may be exported only in accordance with the U.S. International Traffic in Arms Regulations (22 CFR Parts 120-130) or the Export Administration Regulations (15 CFR Parts 730-774). Unauthorized use is strictly prohibited and may be unlawful. If you are not the intended recipient, or the person responsible for delivering to the intended recipient, you should not read, copy, disclose or otherwise use this message. If you have received this email in error, please delete it, and advise the sender immediately. /


_______________________________________________
netcdf-java mailing list
netcdf-java@xxxxxxxxxxxxxxxx
For list information or to unsubscribe, visit: 
http://www.unidata.ucar.edu/mailing_lists/

  • 2011 messages navigation, sorted by:
    1. Thread
    2. Subject
    3. Author
    4. Date
    5. ↑ Table Of Contents
  • Search the netcdf-java archives: