ECC-690: New Satellite Winds BUFR Sequence for GOES16 - AMVs

This commit is contained in:
Shahram Najm 2018-05-15 13:37:54 +01:00
parent 16f8849352
commit f749a46e5f
1 changed files with 20 additions and 7 deletions

View File

@ -2277,6 +2277,8 @@ static int create_keys(grib_accessor* a,long onlySubset,long startSubset,long en
/* } else if ( descriptor->Y==1 && IS_QUALIFIER(self->expanded->v[idx-1]->X)==0) { */ /* } else if ( descriptor->Y==1 && IS_QUALIFIER(self->expanded->v[idx-1]->X)==0) { */
/* forceGroupClosure=1; */ /* forceGroupClosure=1; */
/* reset_qualifiers(significanceQualifierGroup); */ /* reset_qualifiers(significanceQualifierGroup); */
} else if (descriptor->X==33 && !qualityPresent) {
dump=1; /* ECC-690: percentConfidence WITHOUT a bitmap! e.g. NOAA GOES16 BUFR */
} }
if (ide==0 && !self->compressedData) { if (ide==0 && !self->compressedData) {
@ -2317,7 +2319,7 @@ static int create_keys(grib_accessor* a,long onlySubset,long startSubset,long en
err=grib_accessor_add_attribute(accessor_or_attribute_with_same_name(elementFromBitmap,elementAccessor->name),elementAccessor,1); err=grib_accessor_add_attribute(accessor_or_attribute_with_same_name(elementFromBitmap,elementAccessor->name),elementAccessor,1);
} else if (elementAccessor) { } else if (elementAccessor) {
int add_key = 1;
switch (descriptor->code) { switch (descriptor->code) {
case 999999: case 999999:
associatedFieldAccessor=elementAccessor; associatedFieldAccessor=elementAccessor;
@ -2334,13 +2336,24 @@ static int create_keys(grib_accessor* a,long onlySubset,long startSubset,long en
case 31021: case 31021:
associatedFieldSignificanceAccessor=elementAccessor; associatedFieldSignificanceAccessor=elementAccessor;
break; break;
case 33007: /*case 33007:*/
break; /* ECC-690: See later */
/* break; */
default: default:
grib_push_accessor(elementAccessor,section->block); add_key = 1;
rank=grib_data_accessors_trie_push(self->dataAccessorsTrie,elementAccessor); /* ECC-690: percentConfidence WITHOUT a bitmap! e.g. NOAA GOES16 BUFR */
grib_accessors_list_push(self->dataAccessors,elementAccessor,rank); if(descriptor->code==33007 && qualityPresent) {
lastAccessorInList=grib_accessors_list_last(self->dataAccessors); /* This is the normal standard case. The percentConfidence is ATTACHED
* to another parameter so we do not add it on its own except for GOES16
*/
add_key = 0;
}
if (add_key) {
grib_push_accessor(elementAccessor,section->block);
rank=grib_data_accessors_trie_push(self->dataAccessorsTrie,elementAccessor);
grib_accessors_list_push(self->dataAccessors,elementAccessor,rank);
lastAccessorInList=grib_accessors_list_last(self->dataAccessors);
}
} }
} }
} }