NOTICE: This version of the NSF Unidata web site (archive.unidata.ucar.edu) is no longer being updated.
Current content can be found at unidata.ucar.edu.

To learn about what's going on, see About the Archive Site.

Re: [netcdf-java] Reading grib2 with LambertConformal_Projection -> lat / lng

  • To: Harold <harold@xxxxxxxxxxxxxx>
  • Subject: Re: [netcdf-java] Reading grib2 with LambertConformal_Projection -> lat / lng
  • From: Sean Arms <sarms@xxxxxxxx>
  • Date: Tue, 18 Jun 2019 15:39:57 -0600
Greetings!

I'm happy to hear you are finding the library useful! If you are using
netcdf-java 4.6.x, I would recommend using the grid feature type, which
sits at the highest level of the CDM API:

https://www.unidata.ucar.edu/software/thredds/current/netcdf-java/tutorial/GridDatatype.html

Under the "Using a GridDataset" section, there is an example of how to read
the value of a grid given a specific lat/lon.

Cheers!

Sean Arms, PhD
Software Engineer
UCAR/UCP/Unidata
https://staff.ucar.edu/users/sarms

On Tue, Jun 18, 2019 at 10:38 AM Harold <harold@xxxxxxxxxxxxxx> wrote:
>
> Hello,
>
> First, thanks for this lib; it is very helpful and I don't know where
we'd be without it.
>
> I encountered my first netcdf (.grib2) files recently, and hope to access
the data therein to verify the output of another system.
>
> Here's an example file, if that helps:
>  -
https://s3.us-east-2.amazonaws.com/tech.public.data/grib2-test/3600.grib2
>
> I found PanoplyJ, which works great, and summarizes the file like this:
>  - https://i.imgur.com/VJXnpWH.png
>
> I am using the java libs `edu.ucar/cdm` and `edu.ucar/grib`, both at
version 4.6.13 - which also work great and open the file without trouble.
>
> My intention is to verify the contents of this file against a different
dataset which expresses surface location with lat/lng, while this grib2
file has x/y (under a Lambert conformal mapping).
>
> The path I found through the lib yesterday is:
> 1) NetcdfDataset/openDataset
> 2) .getVariables and store a reference to the
`LambertConformal_Projection` variable
> 3) Construct a `LambertConformalConic` and call
`.makeCoordinateTransform` with the dataset and the variable
> 4) From that I can `.getProjection`
> 5) Then I make a `float[][]` out of the separate x/y variables
> 6) Then I can call `.projToLatLon` with the projection and the `float[][]`
> 7) After this I go linear over the contents of the `Temperature_surface`
variable associating each one with the correct lat/lng.
>
> This actually works, but I am wondering if there is a better way.
>
> I have a feeling that there is some higher level API that I missed that
would do all this more automatically, and possibly more generally. My code
feels brittle and over-specific to this particular file.
>
> Or, put another way, how best to (given a lat/lng) query the temp at that
location in this file?
>
> With warm appreciation for your time,
> _______________________________________________
> NOTE: All exchanges posted to Unidata maintained email lists are
> recorded in the Unidata inquiry tracking system and made publicly
> available through the web.  Users who post to any of the lists we
> maintain are reminded to remove any personal information that they
> do not want to be made public.
>
>
> netcdf-java mailing list
> netcdf-java@xxxxxxxxxxxxxxxx
> For list information or to unsubscribe, visit:
http://www.unidata.ucar.edu/mailing_lists/
  • 2019 messages navigation, sorted by:
    1. Thread
    2. Subject
    3. Author
    4. Date
    5. ↑ Table Of Contents
  • Search the netcdf-java archives: