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