cdm/src/main/java/ucar/nc2/iosp/nids/Nidsheader.java
public int[] getLevels(int nlevel, short[] th) {
        int [] levels = new int[nlevel];
        int ival;
        int isign;

        for ( int i = 0; i < nlevel; i++ ) {    /* calibrated data values        */
              ival = convertShort2unsignedInt(th[i]);

              if ( (ival & 0x00008000) == 0 ) {
                isign = -1;
                if ( (ival & 0x00000100) == 0 ) isign = 1;
                levels[i] = isign * ( ival & 0x000000FF );
              } else {
                levels[i] = -9999 + ( ival & 0x000000FF);
              }
        }

        return levels;
    }
public int[] getLevels(int nlevel, short[] th) {
        int [] levels = new int[nlevel];
        int ival;
        int isign;

        for ( int i = 0; i < nlevel; i++ ) {    /* calibrated data values        */
              ival = convertShort2unsignedInt(th[i]);

              if ( (ival & 0x00008000) == 0 ) {
                isign = -1;
                if ( (ival & 0x00000100) == 0 ) isign = 1;
                levels[i] = isign * ( ival & 0x000000FF );
              } else {
                levels[i] = -9999 + ( ival & 0x000000FF);
              }
        }

        return levels;
    }
public int [ ] getLevels ( int nlevel , short [ ] th ) { int [ ] levels = new int [ nlevel ] ; int ival ; int isign ; for ( int i = 0 ; i < nlevel ; i ++ ) { /* calibrated data values        */ ival = convertShort2unsignedInt ( th [ i ] ) ; if ( ( ival & 0x00008000 ) == 0 ) { isign = - 1 ; if ( ( ival & 0x00000100 ) == 0 ) isign = 1 ; levels [ i ] = isign * ( ival & 0x000000FF ) ; } else { levels [ i ] = - 9999 + ( ival & 0x000000FF ) ; } } return levels ; }
get the table to calibrate data value

@param nlevel    number of level
@param th        thredshold value
@return
get the table to calibrate data value