Due to the current gap in continued funding from the U.S. National Science Foundation (NSF), the NSF Unidata Program Center has temporarily paused most operations. See NSF Unidata Pause in Most Operations for details.
Hello, I’m getting an IOException in CFGridWriter2.writeFile when writing to netcdf4 or netcdf4_classic files and specifying a lat/lon bounding box. Here’s the stack trace: Mar 30, 2015 2:25:51 PM ucar.nc2.jni.netcdf.Nc4Iosp load INFO: NetCDF-4 C library loaded (jna_path='null', libname='netcdf'). NetCDF-4 C library loaded (jna_path='null', libname='netcdf'). Netcdf nc_inq_libvers='4.3.2 of Feb 11 2015 10:12:33 $' isProtected=false Exception in thread "main" java.io.IOException: -101: NetCDF: HDF error at ucar.nc2.jni.netcdf.Nc4Iosp.writeData(Nc4Iosp.java:2767) at ucar.nc2.jni.netcdf.Nc4Iosp.writeData(Nc4Iosp.java:2721) at ucar.nc2.NetcdfFileWriter.write(NetcdfFileWriter.java:934) at ucar.nc2.NetcdfFileWriter.write(NetcdfFileWriter.java:918) at ucar.nc2.FileWriter2.copyAll(FileWriter2.java:427) at ucar.nc2.FileWriter2.copyVarData(FileWriter2.java:380) at ucar.nc2.dt.grid.CFGridWriter2.writeOrTestSize(CFGridWriter2.java:240) at ucar.nc2.dt.grid.CFGridWriter2.writeFile(CFGridWriter2.java:112) at SimpleConversionTest.main(SimpleConversionTest.java:30) Here is my test code: /////////////////////////////////////////////////////////////////// import ucar.nc2.dt.grid.GridDataset; import ucar.nc2.dt.grid.CFGridWriter2; import ucar.nc2.NetcdfFileWriter; import ucar.unidata.geoloc.LatLonRect; import ucar.ma2.InvalidRangeException; import java.io.IOException; import java.util.List; import java.util.ArrayList; public class SimpleConversionTest { public static void main(String[] args) throws IOException, InvalidRangeException { String path = "./"; String in_filename = "patmosx_v05r04_GOES-13_geo_d201305100515_c20150301.nc"; String out_filename = "test-out.nc"; // assemble list of parameters we want to include List<String> gridList = new ArrayList<String>(); gridList.add("temp_11_0um_nom"); GridDataset gd = GridDataset.open(path+in_filename); LatLonRect rect = new LatLonRect("41, -91, 5, 5"); System.out.println("LowerLeft: " + rect.getLowerLeftPoint()); System.out.println("UpperRight: " + rect.getUpperRightPoint()); CFGridWriter2.writeFile( gd, gridList, rect, // lat/lon subset null, // projRect, can be null 1, // horizStride null, // zRange null, // dateRange 1, // strideTime true, // addLatLon, not sure what this does NetcdfFileWriter.createNew( NetcdfFileWriter.Version.netcdf4, path+out_filename ) ); gd.close(); } } /////////////////////////////////////////////////////////////////// If I specify “null” to CFGridWriter2.writeFile’s lat/lon subset argument, the code executes successfully. But, the lat/lon subsetting feature is key to what we are trying to accomplish. Also, if I use “netcdf3” as the filetype, the code will execute successfully even with the subset box specified. The input file used by the example code can be found here: ftp://ftp.ssec.wisc.edu/pub/ssec/patmosx_v05r04_GOES-13_geo_d201305100515_c20150301.nc <ftp://ftp.ssec.wisc.edu/pub/ssec/patmosx_v05r04_GOES-13_geo_d201305100515_c20150301.nc> Version details: I’m using "netcdfAll-4.5.jar” dated March 6, 2015. (I just grabbed a 4.6 jar and am getting the same error there as well). HDF5 version: 1.8.14 NetCDF4 (native) version: 4.3.2 Thanks for any help or advice! Mike Hiley CIMSS/SSEC/UW-Madison
netcdf-java
archives: