private void initLocalTable() {
    String tableName = config.getPath();
    ClassLoader cl = this.getClass().getClassLoader();
    try (InputStream is = cl.getResourceAsStream(tableName)) {
      if (is == null) {
        throw new IllegalStateException("Cant find " + tableName);
      }
      try (BufferedReader br = new BufferedReader(new InputStreamReader(is, CDM.utf8Charset))) {
        while (true) {
          String line = br.readLine();
          if (line == null) {
            break;
          }
          if ((line.length() == 0) || line.startsWith("#")) {
            continue;
          }
          String[] flds = StringUtil2.splitString(line);

          int p1 = Integer.parseInt(flds[0].trim()); // must have a number
          int p2 = Integer.parseInt(flds[1].trim()); // must have a number
          int p3 = Integer.parseInt(flds[2].trim()); // must have a number
          StringBuilder b = new StringBuilder();
          int count = 3;

          while (count < flds.length && !flds[count].equals(".")) {
            b.append(flds[count++]).append(' ');
          }
          String abbrev = b.toString().trim();
          b.setLength(0);
          count++;

          while (count < flds.length && !flds[count].equals(".")) {
            b.append(flds[count++]).append(' ');
          }
          String name = b.toString().trim();
          b.setLength(0);
          count++;

          while (count < flds.length && !flds[count].equals(".")) {
            b.append(flds[count++]).append(' ');
          }
          String unit = b.toString().trim();

          Grib2Parameter s = new Grib2Parameter(p1, p2, p3, name, unit, abbrev, null);
          local.put(makeParamId(p1, p2, p3), s);
        }
      }

    } catch (IOException ioe) {
      throw new RuntimeException(ioe);
    }
  }
private void initLocalTable() {
    String tableName = config.getPath();
    ClassLoader cl = this.getClass().getClassLoader();
    try (InputStream is = cl.getResourceAsStream(tableName)) {
      if (is == null) {
        throw new IllegalStateException("Cant find " + tableName);
      }
      try (BufferedReader br = new BufferedReader(new InputStreamReader(is, CDM.utf8Charset))) {
        while (true) {
          String line = br.readLine();
          if (line == null) {
            break;
          }
          if ((line.length() == 0) || line.startsWith("#")) {
            continue;
          }
          String[] flds = StringUtil2.splitString(line);

          int p1 = Integer.parseInt(flds[0].trim()); 
          int p2 = Integer.parseInt(flds[1].trim()); 
          int p3 = Integer.parseInt(flds[2].trim()); 
          StringBuilder b = new StringBuilder();
          int count = 3;

          while (count < flds.length && !flds[count].equals(".")) {
            b.append(flds[count++]).append(' ');
          }
          String abbrev = b.toString().trim();
          b.setLength(0);
          count++;

          while (count < flds.length && !flds[count].equals(".")) {
            b.append(flds[count++]).append(' ');
          }
          String name = b.toString().trim();
          b.setLength(0);
          count++;

          while (count < flds.length && !flds[count].equals(".")) {
            b.append(flds[count++]).append(' ');
          }
          String unit = b.toString().trim();

          Grib2Parameter s = new Grib2Parameter(p1, p2, p3, name, unit, abbrev, null);
          local.put(makeParamId(p1, p2, p3), s);
        }
      }

    } catch (IOException ioe) {
      throw new RuntimeException(ioe);
    }
  }
private void initLocalTable ( ) { String tableName = config . getPath ( ) ; ClassLoader cl = this . getClass ( ) . getClassLoader ( ) ; try ( InputStream is = cl . getResourceAsStream ( tableName ) ) { if ( is == null ) { throw new IllegalStateException ( "Cant find " + tableName ) ; } try ( BufferedReader br = new BufferedReader ( new InputStreamReader ( is , CDM . utf8Charset ) ) ) { while ( true ) { String line = br . readLine ( ) ; if ( line == null ) { break ; } if ( ( line . length ( ) == 0 ) || line . startsWith ( "#" ) ) { continue ; } String [ ] flds = StringUtil2 . splitString ( line ) ; int p1 = Integer . parseInt ( flds [ 0 ] . trim ( ) ) ; // must have a number int p2 = Integer . parseInt ( flds [ 1 ] . trim ( ) ) ; // must have a number int p3 = Integer . parseInt ( flds [ 2 ] . trim ( ) ) ; // must have a number StringBuilder b = new StringBuilder ( ) ; int count = 3 ; while ( count < flds . length && ! flds [ count ] . equals ( "." ) ) { b . append ( flds [ count ++ ] ) . append ( ' ' ) ; } String abbrev = b . toString ( ) . trim ( ) ; b . setLength ( 0 ) ; count ++ ; while ( count < flds . length && ! flds [ count ] . equals ( "." ) ) { b . append ( flds [ count ++ ] ) . append ( ' ' ) ; } String name = b . toString ( ) . trim ( ) ; b . setLength ( 0 ) ; count ++ ; while ( count < flds . length && ! flds [ count ] . equals ( "." ) ) { b . append ( flds [ count ++ ] ) . append ( ' ' ) ; } String unit = b . toString ( ) . trim ( ) ; Grib2Parameter s = new Grib2Parameter ( p1 , p2 , p3 , name , unit , abbrev , null ) ; local . put ( makeParamId ( p1 , p2 , p3 ) , s ) ; } } } catch ( IOException ioe ) { throw new RuntimeException ( ioe ) ; } }
see http://www.nco.ncep.noaa.gov/pmb/docs/grib2/grib2_doc.shtml
see http : // www . nco . ncep . noaa . gov / pmb / docs / grib2 / grib2_doc . shtml