private static Grib1Gds factoryNCEP(int gridNumber) {
    """
	21-26, 61-64: International Exchange and Family of Services (FOS) grids. So may be more general than NCEP
    """
    switch (gridNumber) {
      case 21:
        return new NcepLatLon(gridNumber, 37, 36, 0.0F, 0.0F, 90.0F, 180.0F, 5.0F, 2.5F, (byte) 0x88, (byte) 64);
      case 22:
        return new NcepLatLon(gridNumber, 37, 36, 0.0F, -180.0F, 90.0F, 0.0F, 5.0F, 2.5F, (byte) 0x88, (byte) 64);
      case 23:
        return new NcepLatLon(gridNumber, 37, 36, -90.0F, 0.0F, 180.0F, 0.0F, 5.0F, 2.5F, (byte) 0x88, (byte) 64);
      case 24:
        return new NcepLatLon(gridNumber, 37, 36, -90.0F, -180.0F, 0.0F, 0.0F, 5.0F, 2.5F, (byte) 0x88, (byte) 64);
      case 25:
        return new NcepLatLon(gridNumber, 72, 18, 0.0F, 0.0F, 90.0F, 355.0F, 5.0F, 5.0F, (byte) 0x88, (byte) 64);
      case 26:
        return new NcepLatLon(gridNumber, 72, 18, -90.0F, 0.0F, 0.0F, 355.0F, 5.0F, 5.0F, (byte) 0x88, (byte) 64);
      case 61:
        return new NcepLatLon(gridNumber, 91, 45, 0.0F, 0.0F, 90.0F, 180.0F, 2.0F, 2.0F, (byte) 0x88, (byte) 64);
      case 62:
        return new NcepLatLon(gridNumber, 91, 45, -90.0F, 0.0F, 0.0F, 180.0F, 2.0F, 2.0F, (byte) 0x88, (byte) 64);
      case 63:
        return new NcepLatLon(gridNumber, 91, 45, -90.0F, 0.0F, 0.0F, 180.0F, 2.0F, 2.0F, (byte) 0x88, (byte) 64);
      case 64:
        return new NcepLatLon(gridNumber, 91, 45, -90.0F, -180.0F, 0.0F, 0.0F, 2.0F, 2.0F, (byte) 0x88, (byte) 64);
      case 87:
        return new NcepPS(gridNumber, 81, 62, 22.8756F, 239.5089F, 255.0F, 68153.0F, 68153.0F, (byte) 0x08, (byte) 64);
    }
    throw new IllegalArgumentException("Dont have predefined GDS " + gridNumber + " from NCEP (center 7)");
  }
private static Grib1Gds factoryNCEP(int gridNumber) {
    switch (gridNumber) {
      case 21:
        return new NcepLatLon(gridNumber, 37, 36, 0.0F, 0.0F, 90.0F, 180.0F, 5.0F, 2.5F, (byte) 0x88, (byte) 64);
      case 22:
        return new NcepLatLon(gridNumber, 37, 36, 0.0F, -180.0F, 90.0F, 0.0F, 5.0F, 2.5F, (byte) 0x88, (byte) 64);
      case 23:
        return new NcepLatLon(gridNumber, 37, 36, -90.0F, 0.0F, 180.0F, 0.0F, 5.0F, 2.5F, (byte) 0x88, (byte) 64);
      case 24:
        return new NcepLatLon(gridNumber, 37, 36, -90.0F, -180.0F, 0.0F, 0.0F, 5.0F, 2.5F, (byte) 0x88, (byte) 64);
      case 25:
        return new NcepLatLon(gridNumber, 72, 18, 0.0F, 0.0F, 90.0F, 355.0F, 5.0F, 5.0F, (byte) 0x88, (byte) 64);
      case 26:
        return new NcepLatLon(gridNumber, 72, 18, -90.0F, 0.0F, 0.0F, 355.0F, 5.0F, 5.0F, (byte) 0x88, (byte) 64);
      case 61:
        return new NcepLatLon(gridNumber, 91, 45, 0.0F, 0.0F, 90.0F, 180.0F, 2.0F, 2.0F, (byte) 0x88, (byte) 64);
      case 62:
        return new NcepLatLon(gridNumber, 91, 45, -90.0F, 0.0F, 0.0F, 180.0F, 2.0F, 2.0F, (byte) 0x88, (byte) 64);
      case 63:
        return new NcepLatLon(gridNumber, 91, 45, -90.0F, 0.0F, 0.0F, 180.0F, 2.0F, 2.0F, (byte) 0x88, (byte) 64);
      case 64:
        return new NcepLatLon(gridNumber, 91, 45, -90.0F, -180.0F, 0.0F, 0.0F, 2.0F, 2.0F, (byte) 0x88, (byte) 64);
      case 87:
        return new NcepPS(gridNumber, 81, 62, 22.8756F, 239.5089F, 255.0F, 68153.0F, 68153.0F, (byte) 0x08, (byte) 64);
    }
    throw new IllegalArgumentException("Dont have predefined GDS " + gridNumber + " from NCEP (center 7)");
  }
private static Grib1Gds factoryNCEP ( int gridNumber ) { switch ( gridNumber ) { case 21 : return new NcepLatLon ( gridNumber , 37 , 36 , 0.0F , 0.0F , 90.0F , 180.0F , 5.0F , 2.5F , ( byte ) 0x88 , ( byte ) 64 ) ; case 22 : return new NcepLatLon ( gridNumber , 37 , 36 , 0.0F , - 180.0F , 90.0F , 0.0F , 5.0F , 2.5F , ( byte ) 0x88 , ( byte ) 64 ) ; case 23 : return new NcepLatLon ( gridNumber , 37 , 36 , - 90.0F , 0.0F , 180.0F , 0.0F , 5.0F , 2.5F , ( byte ) 0x88 , ( byte ) 64 ) ; case 24 : return new NcepLatLon ( gridNumber , 37 , 36 , - 90.0F , - 180.0F , 0.0F , 0.0F , 5.0F , 2.5F , ( byte ) 0x88 , ( byte ) 64 ) ; case 25 : return new NcepLatLon ( gridNumber , 72 , 18 , 0.0F , 0.0F , 90.0F , 355.0F , 5.0F , 5.0F , ( byte ) 0x88 , ( byte ) 64 ) ; case 26 : return new NcepLatLon ( gridNumber , 72 , 18 , - 90.0F , 0.0F , 0.0F , 355.0F , 5.0F , 5.0F , ( byte ) 0x88 , ( byte ) 64 ) ; case 61 : return new NcepLatLon ( gridNumber , 91 , 45 , 0.0F , 0.0F , 90.0F , 180.0F , 2.0F , 2.0F , ( byte ) 0x88 , ( byte ) 64 ) ; case 62 : return new NcepLatLon ( gridNumber , 91 , 45 , - 90.0F , 0.0F , 0.0F , 180.0F , 2.0F , 2.0F , ( byte ) 0x88 , ( byte ) 64 ) ; case 63 : return new NcepLatLon ( gridNumber , 91 , 45 , - 90.0F , 0.0F , 0.0F , 180.0F , 2.0F , 2.0F , ( byte ) 0x88 , ( byte ) 64 ) ; case 64 : return new NcepLatLon ( gridNumber , 91 , 45 , - 90.0F , - 180.0F , 0.0F , 0.0F , 2.0F , 2.0F , ( byte ) 0x88 , ( byte ) 64 ) ; case 87 : return new NcepPS ( gridNumber , 81 , 62 , 22.8756F , 239.5089F , 255.0F , 68153.0F , 68153.0F , ( byte ) 0x08 , ( byte ) 64 ) ; } throw new IllegalArgumentException ( "Dont have predefined GDS " + gridNumber + " from NCEP (center 7)" ) ; }
21-26, 61-64: International Exchange and Family of Services (FOS) grids. So may be more general than NCEP
21 - 26 61 - 64 : International Exchange and Family of Services ( FOS ) grids . So may be more general than NCEP