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.
Hello John, Ethan, Yuan, Anyone! I'm having problems converting from NetCDF to GeoTIFF using the 'GeotiffWriter' class. I've attached some example code that will convert each 'GridDatatype' in a NetCDF file to a GeoTIFF. However, the resulting 32-bit GeoTIFFs will not display in ArcGIS (no data is found) or by GDAL/FWTools (listgeo.exe and gdalinfo.exe both crash). Note that the files I'm testing with don't have time or level dimensions. I've tested with 2.2.20, 2.2.22 and 4.0 and get the same results. I'm positive that this used to work. It actually does work in the Java NEXRAD Tools, which uses an older version of NCJ 2.2. I've tested the grayscale option, which works with ArcGIS, but still bombs with GDAL (listgeo.exe). Thanks, Steve import java.util.List; import ucar.nc2.dt.GridDataset; import ucar.nc2.dt.GridDatatype; import ucar.nc2.geotiff.GeotiffWriter; public class Nc2GTiff { /** * @param args */ public static void main(String[] args) { try { if (args.length != 1 || ! args[0].endsWith(".nc")) { System.err.println("Input argument must be a NetCDF (.nc) file!"); return; } String infile = args[0]; GridDataset dataset = ucar.nc2.dt.grid.GridDataset.open(infile); List<GridDatatype> grids = dataset.getGrids(); for (GridDatatype grid : grids) { String gridName = grid.getName(); String outfile = infile.substring(0, infile.length()-3)+"_"+gridName+"-4.0.tif"; GeotiffWriter gtWriter = new GeotiffWriter(outfile); gtWriter.writeGrid(dataset, grid, grid.readDataSlice(-1, -1, -1, -1), false); } dataset.close(); } catch (Exception e) { e.printStackTrace(); } } }
netcdf-java
archives: