[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: New Client Reply - [Support !MQN-848427]: Negative array size error
- Subject: Re: New Client Reply - [Support !MQN-848427]: Negative array size error
- Date: Wed, 22 Mar 2006 11:17:54 -0700 (MST)
Carl,
i can't reproduce the problem. i have created an index for
2005-07-14-0900_us057g1010t04q060003000, read each data section, and
display each parameter without any problems. i also converted the file to
netcdf with Grib12Netcdf.java program that i've attached.
robb...
On Tue, 21 Mar 2006, Carl Drews wrote:
> New Reply: Negative array size error
>
> Is this problem resolved yet? I still see the error on grib1 files, but
> not on grib2 files.
>
> Carl Drews
> x2802
>
>
>
> Ticket Details
> ===================
> Ticket ID: MQN-848427
> Department: Support netCDF Decoders
> Priority: High
> Status: Closed
> http://www.unidata.ucar.edu/esupport/staff/index.php?_m=tickets&_a=viewticket&ticketid=307
>
===============================================================================
Robb Kambic Unidata Program Center
Software Engineer III Univ. Corp for Atmospheric Research
address@hidden WWW: http://www.unidata.ucar.edu/
===============================================================================
package ucar.nc2.iosp.grib;
// import statements
import ucar.unidata.io.RandomAccessFile;
import ucar.nc2.*;
import ucar.nc2.util.CancelTask;
import java.lang.*; // Standard java functions
import java.util.*;
import java.io.IOException;
import java.io.FileNotFoundException; // Extra utilities from sun
/***************************************************************************
*
* @author Robb Kambic 3/22/06
*
* @version 1.0
*
****************************************************************************/
public class Grib12Netcdf {
/************************************************************************
*
* Grib12Netcdf usage of the class, if called without arguments
*
************************************************************************/
public void usage(String className) {
System.out.println();
System.out.println("Usage of " + className + ":");
System.out.println( "Parameters:");
System.out.println( "<Grib1FileToRead> reads/scans metadata");
System.out.println( "<NetCDF output file> file to store results");
System.out.println();
System.out.println("java -Xmx256m " + className +
" <GribFileToRead> <NetCDF output file>");
System.exit(0);
}
/***********************************************************************
* Grib12Netcdf<br>
*
* @param args input Filename of gribfile to read
* @param args output Netcdf file name
*
*************************************************************************/
public static void main(String args[]) throws IOException {
// Function References
Grib12Netcdf func = new Grib12Netcdf();
// Test usage
if (args.length != 2) {
// Get class name as String
Class cl = func.getClass();
func.usage(cl.getName());
}
// Get UTC TimeZone
// A list of available ID's show that UTC has ID = 127
TimeZone tz = TimeZone.getTimeZone("127");
TimeZone.setDefault(tz);
// Say hello
Date now = Calendar.getInstance().getTime();
//System.out.println(now.toString() + " ... Start of Grib12Netcdf");
System.out.println("read grib1 file="+args[0]+" write to netCDF
file="+args[1]);
// Reading of Grib files must be inside a try-catch block
try {
IOServiceProvider iosp = null;
iosp = (IOServiceProvider) new Grib1ServiceProvider();
RandomAccessFile raf = null;
raf = new RandomAccessFile( args[0], "r" );
NetcdfFile ncfile = (NetcdfFile) new MakeNetcdfFile( iosp, raf,
args[0], null );
NetcdfFile nc = FileWriter.writeToFile( ncfile, args[1] );
nc.close();
raf.close(); // done reading
// Catch thrown errors from GribFile
} catch (FileNotFoundException noFileError) {
System.err.println("FileNotFoundException : " + noFileError);
} catch (IOException ioError) {
System.err.println("IOException : " + ioError);
}
// Goodbye message
now = Calendar.getInstance().getTime();
//System.out.println(now.toString() + " ... End of Grib12Netcdf!");
} // end main
static class MakeNetcdfFile extends NetcdfFile {
MakeNetcdfFile( IOServiceProvider spi, RandomAccessFile raf,
String location, CancelTask cancelTask ) throws IOException {
super( spi, raf, location, cancelTask );
}
}
}