[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: New Client Reply - [Support !MQN-848427]: Negative array size error



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 );
      }
   }
}