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.

Re: [netcdf-java] Problem using Redefine mode in netcdf-java 4.1

Latest 4.1 release (2010-03-23 21:33:07) should have this fix in it.

James.Dempsey@xxxxxxxx wrote:
Hi John,

Thanks for that - we'll grab the update once it is ready and give a workout. At 
the moment we have used a workaround involving a temporary variable that we 
delete as part of the first add variable operation.

Thanks for the warning about define mode too - we'll keep an eye on that. The 
good news is that so far it seems to be working nicely other than this one 
issue.

Cheers,
James Dempsey
Java Technical Lead | Software Services
Information Management and Technology
CSIRO Australia


-----Original Message-----
From: John Caron [mailto:caron@xxxxxxxxxxxxxxxx] Sent: Tuesday, 23 March 2010 10:30 AM
To: Dempsey, James (CSIRO IM&T, Yarralumla)
Cc: netcdf-java@xxxxxxxxxxxxxxxx
Subject: Re: [netcdf-java] Problem using Redefine mode in netcdf-java 4.1

Hi James:

Turns out its a bug when there are no variables in the file. Ill make a fix as 
soon as i can (probably tommorrow or day after).

BTW, im sorry to say going in and out of define mode is not very robust in 
netcdf-java. Id use it as minimally as possible, or at least be sure to test 
things are working correctly. Also its quite inefficient, as it forces a 
complete file rewrite in many cases.

Thanks for reporting the bug.

John

James.Dempsey@xxxxxxxx wrote:
Hi,
I am using the current 4.1 netcdf-java library (4.1.20100311.2157 or change 14 I believe) and encountering a problem when trying to use redefine mode. A similar problem also occurs using the latest 4.0 library . Our aim is to create some command line tools that allow a netCDF file to be build up. First, define a dimension, then add a variable to it, then populate the variable. However when we close and reopen the file, any attempt to add a variable results in the following stack trace:

Exception in thread "main" _java.io.IOException_: The parameter is incorrect
at java.io.RandomAccessFile.setLength(_Native Method_)
at ucar.unidata.io.RandomAccessFile.close(_RandomAccessFile.java:339_)
at ucar.nc2.iosp.netcdf3.N3iosp.close(_N3iosp.java:878_)
at ucar.nc2.NetcdfFileWriteable.close(_NetcdfFileWriteable.java:769_)
at au.csiro.netcdf.CreateFile.main(_CreateFile.java:45_)

The following code demonstrates the problem.
package au.csiro.netcdf; import java.io.IOException; import ucar.ma2.DataType;
import ucar.nc2.Dimension;
import ucar.nc2.NetcdfFileWriteable;
public class CreateFile { private static String dimensionName = "lat";
    private static int dimensionSize = 20;
    private static String variableName = "temp";
    private static DataType variableDataType = DataType.getType("Float");
public static void main(String[] args) throws IOException {
        String outputFilename = args[0];
NetcdfFileWriteable ncFile = NetcdfFileWriteable.createNew(outputFilename, true);
        try  {
Dimension dimension = new Dimension(dimensionName, dimensionSize, true /* isShared */,
                    false /* isUnlimited */, false /* isVariableLength */);
            ncFile.addDimension(null, dimension);
            ncFile.create();
        } finally {
            ncFile.close();
        }
ncFile = NetcdfFileWriteable.openExisting(outputFilename, true);
        try {
            ncFile.setRedefineMode(true);
ncFile.addVariable(variableName, variableDataType, dimensionName);
            ncFile.setRedefineMode(false);
        } finally {
            ncFile.close();
        }
    }
} If the ncFile.close() and NetcdfFileWriteable.openExisting calls are commented out the file is successfully created with the variable. Could anyone advise if this is something I am doing wrong or a problem with the library please? Cheers,
James Dempsey
Java Technical Lead | Software Services
Information Management and Technology
CSIRO Australia
_______________________________________________
netcdf-java mailing list
netcdf-java@xxxxxxxxxxxxxxxx
For list information or to unsubscribe, visit: http://www.unidata.ucar.edu/mailing_lists/



  • 2010 messages navigation, sorted by:
    1. Thread
    2. Subject
    3. Author
    4. Date
    5. ↑ Table Of Contents
  • Search the netcdf-java archives: