grib_util_set_spec: input grid_ccsds gets converted to grid_simple

This commit is contained in:
Shahram Najm 2023-02-16 18:29:32 +00:00
parent bc83ac61fc
commit 1ee583a7c9
2 changed files with 19 additions and 5 deletions

View File

@ -17,11 +17,11 @@ static int get_packing_type_code(const char* packingType)
{ {
int result = GRIB_UTIL_PACKING_TYPE_GRID_SIMPLE; int result = GRIB_UTIL_PACKING_TYPE_GRID_SIMPLE;
if (packingType == NULL) if (packingType == NULL)
return result; return GRIB_UTIL_PACKING_TYPE_SAME_AS_INPUT;
if (STR_EQUAL(packingType, "grid_jpeg")) if (STR_EQUAL(packingType, "grid_jpeg"))
result = GRIB_UTIL_PACKING_TYPE_JPEG; result = GRIB_UTIL_PACKING_TYPE_JPEG;
if (STR_EQUAL(packingType, "grid_ccsds")) else if (STR_EQUAL(packingType, "grid_ccsds"))
result = GRIB_UTIL_PACKING_TYPE_CCSDS; result = GRIB_UTIL_PACKING_TYPE_CCSDS;
else if (STR_EQUAL(packingType, "grid_simple")) else if (STR_EQUAL(packingType, "grid_simple"))
result = GRIB_UTIL_PACKING_TYPE_GRID_SIMPLE; result = GRIB_UTIL_PACKING_TYPE_GRID_SIMPLE;
@ -90,7 +90,10 @@ static void test_reduced_gg(int remove_local_def, int edition, const char* packi
packing_spec.packing_type = get_packing_type_code(packingType); packing_spec.packing_type = get_packing_type_code(packingType);
packing_spec.bitsPerValue = 24; packing_spec.bitsPerValue = 24;
packing_spec.accuracy = GRIB_UTIL_ACCURACY_USE_PROVIDED_BITS_PER_VALUES; packing_spec.accuracy = GRIB_UTIL_ACCURACY_USE_PROVIDED_BITS_PER_VALUES;
packing_spec.packing = GRIB_UTIL_PACKING_USE_PROVIDED; if (packingType)
packing_spec.packing = GRIB_UTIL_PACKING_USE_PROVIDED;
else
packing_spec.packing = GRIB_UTIL_PACKING_SAME_AS_INPUT;
/*Extra settings /*Extra settings
packing_spec.extra_settings_count++; packing_spec.extra_settings_count++;
@ -201,7 +204,10 @@ static void test_regular_ll(int remove_local_def, int edition, const char* packi
packing_spec.packing_type = get_packing_type_code(packingType); packing_spec.packing_type = get_packing_type_code(packingType);
packing_spec.bitsPerValue = 24; packing_spec.bitsPerValue = 24;
packing_spec.accuracy = GRIB_UTIL_ACCURACY_USE_PROVIDED_BITS_PER_VALUES; packing_spec.accuracy = GRIB_UTIL_ACCURACY_USE_PROVIDED_BITS_PER_VALUES;
packing_spec.packing = GRIB_UTIL_PACKING_USE_PROVIDED; if (packingType)
packing_spec.packing = GRIB_UTIL_PACKING_USE_PROVIDED;
else
packing_spec.packing = GRIB_UTIL_PACKING_SAME_AS_INPUT;
packing_spec.extra_settings_count++; packing_spec.extra_settings_count++;
packing_spec.extra_settings[0].type = GRIB_TYPE_LONG; packing_spec.extra_settings[0].type = GRIB_TYPE_LONG;

View File

@ -14,13 +14,21 @@
# -------------------------------------------------- # --------------------------------------------------
# Regular Lat/Lon Grid # Regular Lat/Lon Grid
# -------------------------------------------------- # --------------------------------------------------
infile=../data/latlon.grib infile=${data_dir}/latlon.grib
outfile=out.grib_util_set_spec.grib outfile=out.grib_util_set_spec.grib
tempOut=temp.grib_util_set_spec.grib tempOut=temp.grib_util_set_spec.grib
grib_util_set_spec=${test_dir}/grib_util_set_spec grib_util_set_spec=${test_dir}/grib_util_set_spec
rm -f $outfile rm -f $outfile
# CCSDS input
$EXEC $grib_util_set_spec ${data_dir}/ccsds.grib2 $outfile > /dev/null
grib_check_key_equals $outfile packingType grid_ccsds
$EXEC $grib_util_set_spec -p grid_simple ${data_dir}/ccsds.grib2 $outfile > /dev/null
grib_check_key_equals $outfile packingType grid_simple
# GRIB1 with local definition for MARS. Convert to edition2 and remove local def # GRIB1 with local definition for MARS. Convert to edition2 and remove local def
$EXEC $grib_util_set_spec -e 2 -r $infile $outfile > /dev/null $EXEC $grib_util_set_spec -e 2 -r $infile $outfile > /dev/null