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.


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

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!

address@hidden 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