This archive contains answers to questions sent to Unidata support through mid-2025. Note that the archive is no longer being updated. We provide the archive for reference; many of the answers presented here remain technically correct, even if somewhat outdated. For the most up-to-date information on the use of NSF Unidata software and data services, please consult the Software Documentation first.
Hiya Riva, Here a sample program using netCDF API to write out all the variables names in the file that was downloaded as test case this morning. It also writes out all the data for the Temperature variable. Included in the code, there is an answer to your question about the coordinates import ucar.nc2.Variable; import ucar.nc2.NetcdfFile; import ucar.nc2.dt.grid.GridDataset; import ucar.nc2.dt.GridDatatype; import ucar.nc2.dt.GridCoordSystem; import ucar.nc2.dataset.NetcdfDataset; import ucar.nc2.dataset.CoordinateSystem; import ucar.nc2.util.IO; import ucar.nc2.dods.DODSNetcdfFile; import ucar.ma2.Array; import ucar.ma2.IndexIterator; import ucar.unidata.geoloc.LatLonPoint; import java.util.ArrayList; import java.util.List; import java.io.IOException; import java.io.InputStream; import java.io.File; import java.net.URL; public class TestGMU { public static void main(String[] args) { try { NetcdfFile ncf = NetcdfFile.open( "C:/data/grib/ruc2.t00z.bgrb13anl.grib2" ); System.out.println( "Variable names are:"); List<Variable> vars = ncf.getVariables(); for( Variable var : vars ) { System.out.println( var.getName() ); // once you get the var for a particular variable name, all information is available // look at: http://www.unidata.ucar.edu/software/netcdf-java/v2.2.20/javadoc/ucar/nc2/class-use/Variable.html } //"All the data records for the same parameter on the same grid will be in a single 3-D //(x,y,t) or 4-D (x,y,z,t) variable depending on the data. The grid information is available // in several coordinate variables". // For example, the coordinate variables for Temperature are: // time level y x // Temperature(0:0:1, 0:0:1, 0:336:1, 0:450:1) // each coordinate variable has a start, end, stride separated by a : so time starts at 0, // ends at 0 and has a stride of 1. This information is available in the above javadoc. // Also, if you are using ToolsUI, click on a variable name and then // ncdump tab and it will open a window show the coordinates and permit you to dump the data Variable Temperature = ncf.findVariable( "Temperature"); Array data = Temperature.read( "0:0, 0:0, 0:336,0:450"); IndexIterator iter = data.getIndexIterator(); System.out.println( "Temperature = "); while(iter.hasNext()) { float val = iter.getFloatNext(); System.out.println( val ); } ncf.close(); System.out.println( "Success"); } catch (Exception exc) { exc.printStackTrace(); } } } Robb... Ticket Details =================== Ticket ID: QDJ-903556 Department: Support netCDF Java Priority: Normal Status: Open