Due to the current gap in continued funding from the U.S. National Science Foundation (NSF), the NSF Unidata Program Center has temporarily paused most operations. See NSF Unidata Pause in Most Operations for details.

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: