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 Christopher: the problem is the _FillValue attribute empty string: char staticIds(maxStaticIds, totalIdLen); :_FillValue = ""; I made this fix to ucar.netcdf.Attribute ~line 531: Number getNumericValue(int index) { if (index >= data.length()) return new Integer(0); else return new Integer(data.charAt(index)); } can you patch the source yourself (or modify file)? i will add fix to next release. Christopher Golden wrote:
Hello! You had written to Darien Davis in response to her query about a netcdf/Java problem we're seeing at FSL. You wrote: > it may be a bug that's been fixed. what is date of jar file? send me > netcdf file and i'll check it with latest. I tried the following versions of the netcdf/Java libraries: version 1: Worked perfectly with our files. version 2: Threw an exception when creating an instance of NetcdfFile. version 2.1 beta: Same as with version 2. The JAR file I used for version 2 is dated 8/22/02: ftp://ftp.unidata.ucar.edu/pub/netcdf-java/netcdf2All.jar and the one I used for version 2.1 is dated 10/25/02: ftp://ftp.unidata.ucar.edu/pub/netcdf-java/v2.1/netcdf2All.jar I've included one of the netcdf files that cause the following exception to be thrown at construction time: java.lang.StringIndexOutOfBoundsException: String index out of range: 0 at java.lang.String.charAt(Unknown Source) at ucar.netcdf.StringAttrVal.getNumericValue(Attribute.java:534) at ucar.netcdf.StringAttrVal.getNumericValue(Attribute.java:539) at ucar.netcdf.Attribute.getNumericValue(Attribute.java:248) at ucar.netcdf.NetcdfFile$V1CharacterIo.fill(NetcdfFile.java:1236) at ucar.netcdf.NetcdfFile$V1Io.initFillValue(NetcdfFile.java:1042) at ucar.netcdf.NetcdfFile$V1Io.initFillValue(NetcdfFile.java:1054) at ucar.netcdf.NetcdfFile$V1Io.<init>(NetcdfFile.java:797)at ucar.netcdf.NetcdfFile$V1CharacterIo.<init>(NetcdfFile.java:1174)at ucar.netcdf.NetcdfFile.V1IoFactory(NetcdfFile.java:1540) at ucar.netcdf.NetcdfFile.readV1VarArray(NetcdfFile.java:1618) at ucar.netcdf.NetcdfFile.readV1(NetcdfFile.java:1707) at ucar.netcdf.NetcdfFile.<init>(NetcdfFile.java:130) at ucar.netcdf.NetcdfFile.<init>(NetcdfFile.java:148) at ucar.nc2.NetcdfFile.<init>(NetcdfFile.java:56) at NetcdfConverter.main(NetcdfConverter.java:16) This is from Java 1.3 (build 1.3.1_04-b02) for Windows XP, but I get the same error when running on a Linux machine. Does this help at all? We'd prefer to use version 2.x of the netcdf/Java library if possible, as the interface seems easier to work with, so we're hoping that we can get it working with our netcdf files. Thanks! Christopher Golden address@hidden