Step-by-step guide
This can be done by using the grib_set command.
You can use the "setBitsPerValue" key as in:
% grib_set -s setBitsPerValue=17 in.grib out.grib
or use the "repack" option:
% grib_set -r -s bitsPerValue=17 in.grib out.grib
In these commands, we first decode the data values, then change the bitsPerValue key and then repack.
It is advisable to check the field values after such a change, for example by printing and comparing the statistics before and after:
% grib_ls -n statistics in.grib % grib_ls -n statistics out.grib
Of course you can also use grib_compare.