Re: [netcdfgroup] Read NETCDF using Java library

On Mon, Feb 2, 2015 at 9:03 PM, Jules A <jules0080@xxxxxxxxxxx> wrote:

> I'm having troubles accessing data from a NetCDF file.
> My aim is to access the data and write to a CSV file in the following
> format:
>
> Latitude  Longitude Date1  Date2  Date 3
>  <-- MIN_SFC values -->
>

are you committed to using Java? This would be pretty easy with Python and
the NetcCDF4 python package (http://unidata.github.io/netcdf4-python/) (or
IRIS)

Though this should be pretty straightforward with Java, too.

I have been able to iterate through the MIN_SFC Variable,  I was going to
> save to a dictionary or hash table then realised I don't know which date it
> belongs to or Lat/long and vise versa.
>
> Dimensions:
> time = 7 // the date field how to convert to a date?
> latitude = 292
> longitude =341
>

that means there is dimension for time with 7 items -- so there are 7 time
steps in the file.

There should be a variable called something like "time", with units like:
"hours since 2015-02-02T01:43:19Z"

you will  want to convert those units to a regular time stamp -- the python
package has a utility to do this -- probably netcdfJava does too.



> Variables:
> float MIN_SFC (time=7, latitude = 292, longitude = 341)
>

you'll be helped by the "ncdump" utility -- it will dump a netcdf file in a
plain text form, making it esy to see what's in there. I suggest:

ncdump -h the_file_name.nc

that will dump only the heady, which is probably what you want.

HTH,

-Chris




> I've looked through the online resources, please post a comment or link.
> I found the ReadNetCDF example useful however it was for version 1.0 and
> had quite a few deprecated methods.
> Thanks!
>
> <code>
>
> List<Variable> variableList = ncfile.getVariables();
>
> Array data;
>
>
> *for*(*int* j = 0; j < variableList.size(); j++){
>
>
>
> Variable r = variableList.get(j);
>
> System.*out*.println(r.getFullName());
>
> System.*out*.println(r.getDatasetLocation());
>
> System.*out*.println(r.getNameAndDimensions());
>
> System.*out*.println(r.getDataType());
>
> System.*out*.println(r.getElementSize());
>
>
>
> System.*out*.println("-------------")
>
>
>
> data = r.read();
>
>
>
> *int*[] shape = data.getShape();
>
>
> Index index = data.getIndex();
>
> *for* (*int* u=0; u<shape[0]; u++) {
>
> *for* (*int* x=0; x<shape[1]; x++) {
>
> *double* dval = data.getDouble(index.set(u,x));
>
> }
>
> }
>
> }
>
> </code>
>
>
> _______________________________________________
> netcdfgroup mailing list
> netcdfgroup@xxxxxxxxxxxxxxxx
> For list information or to unsubscribe,  visit:
> http://www.unidata.ucar.edu/mailing_lists/
>



-- 

Christopher Barker, Ph.D.
Oceanographer

Emergency Response Division
NOAA/NOS/OR&R            (206) 526-6959   voice
7600 Sand Point Way NE   (206) 526-6329   fax
Seattle, WA  98115       (206) 526-6317   main reception

Chris.Barker@xxxxxxxx
  • 2015 messages navigation, sorted by:
    1. Thread
    2. Subject
    3. Author
    4. Date
    5. ↑ Table Of Contents
  • Search the netcdfgroup archives: