/* This is part of the netCDF package.
Copyright 2006 University Corporation for Atmospheric Research/Unidata.
See COPYRIGHT file for conditions of use.
This is a simple example which reads a small dummy array, which was
written by simple_xy_wr.java. This is intended to illustrate the use
of the netCDF Java API.
This example demonstrates the netCDF Java API.
Full documentation of the netCDF Java API can be found at:
http://www.unidata.ucar.edu/software/netcdf-java/
*/
package examples;
import ucar.nc2.NetcdfFile;
import ucar.nc2.Variable;
import ucar.ma2.*;
import java.io.IOException;
public class Simple_xy_rd {
public static void main(String args[]) throws IOException {
final int NX = 6;
final int NY = 12;
// This is the array we will read.
int[][] dataIn = new int[NX][NY];
// Open the file. The ReadOnly parameter tells netCDF we want
// read-only access to the file.
NetcdfFile dataFile = null;
String filename = "simple_xy.nc";
// Open the file.
try {
dataFile = NetcdfFile.open(filename, null);
// Retrieve the variable named "data"
Variable dataVar = dataFile.findVariable("data");
if (dataVar == null) {
System.out.println("Cant find Variable data");
return;
}
// Read all the values from the "data" variable into memory.
int[] shape = dataVar.getShape();
int[] origin = new int[2];
ArrayInt.D2 dataArray;
dataArray = (ArrayInt.D2) dataVar.read(origin, shape);
// Check the values.
assert shape[0] == NX;
assert shape[1] == NY;
for (int j = 0; j < shape[0]; j++) {
for (int i = 0; i < shape[1]; i++) {
dataIn[j][i] = dataArray.get(j, i);
}
}
// The file is closed no matter what by putting inside a try/catch block.
} catch (java.io.IOException e) {
e.printStackTrace();
} catch (InvalidRangeException e) {
e.printStackTrace();
} finally {
if (dataFile != null)
try {
dataFile.close();
} catch (IOException ioe) {
ioe.printStackTrace();
}
}
System.out.println("*** SUCCESS reading example file simple_xy.nc!");
}
}