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: Read netcdf

You can look at the user manual at

 ftp://ftp.unidata.ucar.edu/pub/netcdf-java/v2.2/NetcdfJavaUserManual-2.2.doc

it has some examples in the appendices.

good luck!

fabrice.ayreault@xxxxxxx wrote:
Hi John ,

Thanks for your answer but I have some problems again. So if you can show me an
example to read the data I join a netcdf file I want to read. The problem is
that I want to create a plot in 3 Dimensions with these data so I have to put
them into some tabs. I would like to create a program which works for all kind
of netcdf files.


This is the program I wrote .

import java.rmi.RemoteException;
import ucar.netcdf.Attribute;
import ucar.netcdf.Netcdf;
import ucar.netcdf.NetcdfFile;
import ucar.netcdf.Variable;
import visad.VisADException;


public class Read {

    static String fileName = "c:/output.nc";

    public static void main(String[] args) throws RemoteException,
VisADException{

        if (args.length > 0)
            fileName = args[0];

        try {
            Netcdf nc = new NetcdfFile(fileName, true);
            Variable lat = nc.get("NBLATITUDES75_103");
            int nlats = lat.getLengths()[0];
            double [] lats = new double[nlats];
            int[] index = new int[1];
            for (int ilat = 0; ilat < nlats; ilat++) {
                index [0] = ilat;
                lats[ilat] = lat.getDouble(index);
            }
            String latUnits = lat.getAttribute("units").getStringValue();


            Variable lon = nc.get("NBLONGITUDES231_281");
            int nlons = lon.getLengths()[0];
            double [] lons = new double[nlons];
            int[] index1 = new int[1];
            for (int ilon = 0; ilon < nlons; ilon++) {
                index1 [0] = ilon;
                lons[ilon] = lon.getDouble(index1);
            }
            String lonUnits = lon.getAttribute("units").getStringValue();



            Variable rh = nc.get("GRID_0001");
            String rhUnits = rh.getAttribute("units").getStringValue();
            System.out.println("Units rh : " +rhUnits);
            int[] rhShape = rh.getLengths();

            double[][] rhData = new double[rhShape[0]][rhShape[1]];

            int[] ix = new int[2];
            for (int ilat = 0; ilat < rhData.length; ilat++) {
                ix[0] = ilat;
                for (int ilon = 0; ilon < rhData[0].length ; ilon++) {
                    ix[1] = ilon;
                        rhData[ilat][ilon] = rh.getInt(ix);


                }
            }


        } catch (java.io.IOException e) {
            e.printStackTrace();
        }

    }

}

Thanks and Have a nice day



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