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.
|
Hi Folks, I wondering if this is a bug or a feature. getGrids recognizes grids with only 1 X and 1 Y in the case below where there is no vertical axis, but reports no grids when there is a vertical axis. Can somebody explain why? To be sure, I ran the attached code using the 2.2.09 release. Roland -------- Original Message --------
Hi, I am using the Java netCDF library (version 2.2.something -- how to I tell which from the jar?) to extract the GeoGrids from the netCDF dataset from these two URLs. Both are degenerate in the sense that there is only one X and one Y in the "grid", but none the less in the case of the XYT file the GeoGrids are returned successfully. However in the second case where a similar XY grid is defined, but includes a Z axis getGrids() returns an empty list. I think it should be able to return grids (albeit degenerate) just the same as the XYT case. XYT Grid: http://dods.ndbc.noaa.gov/cgi-bin/nph-dods/dods/stdmet/42001/42001h2001.nc XYZT Grid: http://dods.ndbc.noaa.gov/cgi-bin/nph-dods/dods/adcp/41012/41012a2002.nc Thanks, Roland |
/**
*
*/
package gov.noaa.pmel.tmap;
import java.util.Iterator;
import java.util.List;
import ucar.nc2.dataset.CoordinateAxis1D;
import ucar.nc2.dataset.NetcdfDataset;
import ucar.nc2.dataset.grid.GeoGrid;
import ucar.nc2.dataset.grid.GridCoordSys;
import ucar.nc2.dataset.grid.GridDataset;
import ucar.nc2.dods.DODSNetcdfFile;
/**
* @author Roland Schweitzer
*
*/
public class OneByOneGrid {
/**
* @param args
*/
public static void main(String[] args) {
String[] data = {
"http://dods.ndbc.noaa.gov/cgi-bin/nph-dods/dods/stdmet/42001/42001h2001.nc",
"http://dods.ndbc.noaa.gov/cgi-bin/nph-dods/dods/adcp/41012/41012a2002.nc" };
for (int i = 0; i < data.length; i++) {
System.out.println("Data set: " + data[i]);
try {
String url = DODSNetcdfFile.canonicalURL(data[i]);
NetcdfDataset ncds = NetcdfDataset.openDataset(url);
GridDataset gridDs = new GridDataset(ncds);
List grids = gridDs.getGrids();
if (grids.size() > 0) {
for (Iterator git = grids.iterator(); git.hasNext();) {
GeoGrid grid = (GeoGrid) git.next();
System.out.println(grid.getDescription());
GridCoordSys gcs = grid.getCoordinateSystem();
CoordinateAxis1D xAxis = (CoordinateAxis1D)
gcs.getXHorizAxis();
CoordinateAxis1D yAxis = (CoordinateAxis1D)
gcs.getYHorizAxis();
if (xAxis != null) {
System.out.println(xAxis.toString());
}
if (yAxis != null) {
System.out.println(yAxis.toString());
}
if (gcs.hasVerticalAxis()) {
CoordinateAxis1D zAxis = gcs.getVerticalAxis();
System.out.println(zAxis.toString());
}
if (gcs.hasTimeAxis()) {
CoordinateAxis1D tAxis = gcs.getTimeAxis();
System.out.println(tAxis.toString());
}
}
} else {
System.out.println("\tNo grids found.");
}
} catch (Exception e) {
System.out.println(e.getMessage());
}
}
}
}