mirror of https://github.com/ecmwf/eccodes.git
Testing: bufr keys iterator, all vs data keys
This commit is contained in:
parent
7bc1d59863
commit
69841d460b
|
@ -13,10 +13,13 @@
|
||||||
|
|
||||||
void usage(const char* prog)
|
void usage(const char* prog)
|
||||||
{
|
{
|
||||||
printf("usage: %s infile\n",prog);
|
printf("usage: %s [-a|-d] infile\n",prog);
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#define ITER_ALL_KEYS 1
|
||||||
|
#define ITER_DATA_KEYS 2
|
||||||
|
|
||||||
int main(int argc,char* argv[])
|
int main(int argc,char* argv[])
|
||||||
{
|
{
|
||||||
int err = 0;
|
int err = 0;
|
||||||
|
@ -24,19 +27,34 @@ int main(int argc,char* argv[])
|
||||||
codes_bufr_keys_iterator* kiter = NULL;
|
codes_bufr_keys_iterator* kiter = NULL;
|
||||||
char* input_filename = NULL;
|
char* input_filename = NULL;
|
||||||
FILE* f = NULL;
|
FILE* f = NULL;
|
||||||
|
int iterator_mode = ITER_ALL_KEYS;
|
||||||
/*grib_context* c = grib_context_get_default();*/
|
/*grib_context* c = grib_context_get_default();*/
|
||||||
|
|
||||||
if (argc!=2) usage(argv[0]);
|
if (argc!=3) usage(argv[0]);
|
||||||
input_filename = argv[1];
|
if (strcmp(argv[1], "-a")==0) {
|
||||||
|
iterator_mode = ITER_ALL_KEYS;
|
||||||
|
} else if (strcmp(argv[1], "-d")==0) {
|
||||||
|
iterator_mode = ITER_DATA_KEYS;
|
||||||
|
} else {
|
||||||
|
assert(!"Invalid mode");
|
||||||
|
}
|
||||||
|
|
||||||
|
input_filename = argv[2];
|
||||||
f = fopen(input_filename, "r");
|
f = fopen(input_filename, "r");
|
||||||
assert(f);
|
assert(f);
|
||||||
h = codes_handle_new_from_file(NULL, f, PRODUCT_BUFR, &err);
|
h = codes_handle_new_from_file(NULL, f, PRODUCT_BUFR, &err);
|
||||||
assert(h);
|
assert(h);
|
||||||
|
|
||||||
CODES_CHECK(codes_set_long(h,"unpack",1), 0);
|
CODES_CHECK(codes_set_long(h,"unpack",1), 0);
|
||||||
|
|
||||||
|
if (iterator_mode == ITER_ALL_KEYS) {
|
||||||
|
/*printf("Dumping ALL keys\n");*/
|
||||||
|
kiter = codes_bufr_keys_iterator_new(h, 0);
|
||||||
|
} else {
|
||||||
|
/*printf("Dumping only DATA SECTION keys\n");*/
|
||||||
|
kiter=codes_bufr_data_section_keys_iterator_new(h);
|
||||||
|
}
|
||||||
|
|
||||||
/*kiter=codes_bufr_data_section_keys_iterator_new(h);*/
|
|
||||||
kiter = codes_bufr_keys_iterator_new(h, 0);
|
|
||||||
while(codes_bufr_keys_iterator_next(kiter))
|
while(codes_bufr_keys_iterator_next(kiter))
|
||||||
{
|
{
|
||||||
char* kname = codes_bufr_keys_iterator_get_name(kiter);
|
char* kname = codes_bufr_keys_iterator_get_name(kiter);
|
||||||
|
|
|
@ -14,7 +14,10 @@ tempOut=temp.bufr_keys_iter.$$.out
|
||||||
tempRef=temp.bufr_keys_iter.$$.ref
|
tempRef=temp.bufr_keys_iter.$$.ref
|
||||||
|
|
||||||
input=${data_dir}/bufr/aaen_55.bufr
|
input=${data_dir}/bufr/aaen_55.bufr
|
||||||
${test_dir}/bufr_keys_iter $input > $tempOut
|
|
||||||
|
## Iterate over ALL keys and skip none
|
||||||
|
# ------------------------------------
|
||||||
|
${test_dir}/bufr_keys_iter -a $input > $tempOut
|
||||||
|
|
||||||
# Check the output of BUFR keys iterator
|
# Check the output of BUFR keys iterator
|
||||||
# Note: the two hidden keys 'typicalDate' and 'typicalTime' are NOT in the iterator output
|
# Note: the two hidden keys 'typicalDate' and 'typicalTime' are NOT in the iterator output
|
||||||
|
@ -225,4 +228,169 @@ EOF
|
||||||
|
|
||||||
diff $tempRef $tempOut
|
diff $tempRef $tempOut
|
||||||
|
|
||||||
|
## Now iterate over Data Section keys and skip all others
|
||||||
|
# ---------------------------------------------------------
|
||||||
|
${test_dir}/bufr_keys_iter -d $input > $tempOut
|
||||||
|
cat > $tempRef<<EOF
|
||||||
|
#1#tovsOrAtovsProductQualifier
|
||||||
|
#1#centre
|
||||||
|
#1#subCentre
|
||||||
|
#2#tovsOrAtovsProductQualifier
|
||||||
|
#2#centre
|
||||||
|
#2#subCentre
|
||||||
|
#1#satelliteIdentifier
|
||||||
|
#1#satelliteSensorIndicator
|
||||||
|
#1#orbitNumber
|
||||||
|
#1#satelliteAntennaCorrectionsVersionNumber
|
||||||
|
#1#scanLineNumber
|
||||||
|
#1#fieldOfViewNumber
|
||||||
|
#1#majorFrameCount
|
||||||
|
#1#scanLineStatusFlagsForAtovs
|
||||||
|
#1#scanLineQualityFlagsForAtovs
|
||||||
|
#1#year
|
||||||
|
#1#month
|
||||||
|
#1#day
|
||||||
|
#1#hour
|
||||||
|
#1#minute
|
||||||
|
#1#second
|
||||||
|
#1#latitude
|
||||||
|
#1#longitude
|
||||||
|
#1#heightOfStation
|
||||||
|
#1#satelliteZenithAngle
|
||||||
|
#1#bearingOrAzimuth
|
||||||
|
#1#solarZenithAngle
|
||||||
|
#1#solarAzimuth
|
||||||
|
#1#fieldOfViewQualityFlagsForAtovs
|
||||||
|
#1#radiometerIdentifier
|
||||||
|
#1#instrumentTemperature
|
||||||
|
#2#radiometerIdentifier
|
||||||
|
#2#instrumentTemperature
|
||||||
|
#3#radiometerIdentifier
|
||||||
|
#3#instrumentTemperature
|
||||||
|
#4#radiometerIdentifier
|
||||||
|
#4#instrumentTemperature
|
||||||
|
#1#tovsOrAtovsOrAvhrrInstrumentationChannelNumber
|
||||||
|
#1#log10OfTemperatureRadianceCentralWaveNumberForAtovs
|
||||||
|
#1#bandwidthCorrectionCoefficient1ForAtovs
|
||||||
|
#1#bandwidthCorrectionCoefficient2ForAtovs
|
||||||
|
#1#channelQualityFlagsForAtovs
|
||||||
|
#1#brightnessTemperature
|
||||||
|
#2#tovsOrAtovsOrAvhrrInstrumentationChannelNumber
|
||||||
|
#2#log10OfTemperatureRadianceCentralWaveNumberForAtovs
|
||||||
|
#2#bandwidthCorrectionCoefficient1ForAtovs
|
||||||
|
#2#bandwidthCorrectionCoefficient2ForAtovs
|
||||||
|
#2#channelQualityFlagsForAtovs
|
||||||
|
#2#brightnessTemperature
|
||||||
|
#3#tovsOrAtovsOrAvhrrInstrumentationChannelNumber
|
||||||
|
#3#log10OfTemperatureRadianceCentralWaveNumberForAtovs
|
||||||
|
#3#bandwidthCorrectionCoefficient1ForAtovs
|
||||||
|
#3#bandwidthCorrectionCoefficient2ForAtovs
|
||||||
|
#3#channelQualityFlagsForAtovs
|
||||||
|
#3#brightnessTemperature
|
||||||
|
#4#tovsOrAtovsOrAvhrrInstrumentationChannelNumber
|
||||||
|
#4#log10OfTemperatureRadianceCentralWaveNumberForAtovs
|
||||||
|
#4#bandwidthCorrectionCoefficient1ForAtovs
|
||||||
|
#4#bandwidthCorrectionCoefficient2ForAtovs
|
||||||
|
#4#channelQualityFlagsForAtovs
|
||||||
|
#4#brightnessTemperature
|
||||||
|
#5#tovsOrAtovsOrAvhrrInstrumentationChannelNumber
|
||||||
|
#5#log10OfTemperatureRadianceCentralWaveNumberForAtovs
|
||||||
|
#5#bandwidthCorrectionCoefficient1ForAtovs
|
||||||
|
#5#bandwidthCorrectionCoefficient2ForAtovs
|
||||||
|
#5#channelQualityFlagsForAtovs
|
||||||
|
#5#brightnessTemperature
|
||||||
|
#6#tovsOrAtovsOrAvhrrInstrumentationChannelNumber
|
||||||
|
#6#log10OfTemperatureRadianceCentralWaveNumberForAtovs
|
||||||
|
#6#bandwidthCorrectionCoefficient1ForAtovs
|
||||||
|
#6#bandwidthCorrectionCoefficient2ForAtovs
|
||||||
|
#6#channelQualityFlagsForAtovs
|
||||||
|
#6#brightnessTemperature
|
||||||
|
#7#tovsOrAtovsOrAvhrrInstrumentationChannelNumber
|
||||||
|
#7#log10OfTemperatureRadianceCentralWaveNumberForAtovs
|
||||||
|
#7#bandwidthCorrectionCoefficient1ForAtovs
|
||||||
|
#7#bandwidthCorrectionCoefficient2ForAtovs
|
||||||
|
#7#channelQualityFlagsForAtovs
|
||||||
|
#7#brightnessTemperature
|
||||||
|
#8#tovsOrAtovsOrAvhrrInstrumentationChannelNumber
|
||||||
|
#8#log10OfTemperatureRadianceCentralWaveNumberForAtovs
|
||||||
|
#8#bandwidthCorrectionCoefficient1ForAtovs
|
||||||
|
#8#bandwidthCorrectionCoefficient2ForAtovs
|
||||||
|
#8#channelQualityFlagsForAtovs
|
||||||
|
#8#brightnessTemperature
|
||||||
|
#9#tovsOrAtovsOrAvhrrInstrumentationChannelNumber
|
||||||
|
#9#log10OfTemperatureRadianceCentralWaveNumberForAtovs
|
||||||
|
#9#bandwidthCorrectionCoefficient1ForAtovs
|
||||||
|
#9#bandwidthCorrectionCoefficient2ForAtovs
|
||||||
|
#9#channelQualityFlagsForAtovs
|
||||||
|
#9#brightnessTemperature
|
||||||
|
#10#tovsOrAtovsOrAvhrrInstrumentationChannelNumber
|
||||||
|
#10#log10OfTemperatureRadianceCentralWaveNumberForAtovs
|
||||||
|
#10#bandwidthCorrectionCoefficient1ForAtovs
|
||||||
|
#10#bandwidthCorrectionCoefficient2ForAtovs
|
||||||
|
#10#channelQualityFlagsForAtovs
|
||||||
|
#10#brightnessTemperature
|
||||||
|
#11#tovsOrAtovsOrAvhrrInstrumentationChannelNumber
|
||||||
|
#11#log10OfTemperatureRadianceCentralWaveNumberForAtovs
|
||||||
|
#11#bandwidthCorrectionCoefficient1ForAtovs
|
||||||
|
#11#bandwidthCorrectionCoefficient2ForAtovs
|
||||||
|
#11#channelQualityFlagsForAtovs
|
||||||
|
#11#brightnessTemperature
|
||||||
|
#12#tovsOrAtovsOrAvhrrInstrumentationChannelNumber
|
||||||
|
#12#log10OfTemperatureRadianceCentralWaveNumberForAtovs
|
||||||
|
#12#bandwidthCorrectionCoefficient1ForAtovs
|
||||||
|
#12#bandwidthCorrectionCoefficient2ForAtovs
|
||||||
|
#12#channelQualityFlagsForAtovs
|
||||||
|
#12#brightnessTemperature
|
||||||
|
#13#tovsOrAtovsOrAvhrrInstrumentationChannelNumber
|
||||||
|
#13#log10OfTemperatureRadianceCentralWaveNumberForAtovs
|
||||||
|
#13#bandwidthCorrectionCoefficient1ForAtovs
|
||||||
|
#13#bandwidthCorrectionCoefficient2ForAtovs
|
||||||
|
#13#channelQualityFlagsForAtovs
|
||||||
|
#13#brightnessTemperature
|
||||||
|
#14#tovsOrAtovsOrAvhrrInstrumentationChannelNumber
|
||||||
|
#14#log10OfTemperatureRadianceCentralWaveNumberForAtovs
|
||||||
|
#14#bandwidthCorrectionCoefficient1ForAtovs
|
||||||
|
#14#bandwidthCorrectionCoefficient2ForAtovs
|
||||||
|
#14#channelQualityFlagsForAtovs
|
||||||
|
#14#brightnessTemperature
|
||||||
|
#15#tovsOrAtovsOrAvhrrInstrumentationChannelNumber
|
||||||
|
#15#log10OfTemperatureRadianceCentralWaveNumberForAtovs
|
||||||
|
#15#bandwidthCorrectionCoefficient1ForAtovs
|
||||||
|
#15#bandwidthCorrectionCoefficient2ForAtovs
|
||||||
|
#15#channelQualityFlagsForAtovs
|
||||||
|
#15#brightnessTemperature
|
||||||
|
#16#tovsOrAtovsOrAvhrrInstrumentationChannelNumber
|
||||||
|
#16#log10OfTemperatureRadianceCentralWaveNumberForAtovs
|
||||||
|
#16#bandwidthCorrectionCoefficient1ForAtovs
|
||||||
|
#16#bandwidthCorrectionCoefficient2ForAtovs
|
||||||
|
#16#channelQualityFlagsForAtovs
|
||||||
|
#16#brightnessTemperature
|
||||||
|
#17#tovsOrAtovsOrAvhrrInstrumentationChannelNumber
|
||||||
|
#17#log10OfTemperatureRadianceCentralWaveNumberForAtovs
|
||||||
|
#17#bandwidthCorrectionCoefficient1ForAtovs
|
||||||
|
#17#bandwidthCorrectionCoefficient2ForAtovs
|
||||||
|
#17#channelQualityFlagsForAtovs
|
||||||
|
#17#brightnessTemperature
|
||||||
|
#18#tovsOrAtovsOrAvhrrInstrumentationChannelNumber
|
||||||
|
#18#log10OfTemperatureRadianceCentralWaveNumberForAtovs
|
||||||
|
#18#bandwidthCorrectionCoefficient1ForAtovs
|
||||||
|
#18#bandwidthCorrectionCoefficient2ForAtovs
|
||||||
|
#18#channelQualityFlagsForAtovs
|
||||||
|
#18#brightnessTemperature
|
||||||
|
#19#tovsOrAtovsOrAvhrrInstrumentationChannelNumber
|
||||||
|
#19#log10OfTemperatureRadianceCentralWaveNumberForAtovs
|
||||||
|
#19#bandwidthCorrectionCoefficient1ForAtovs
|
||||||
|
#19#bandwidthCorrectionCoefficient2ForAtovs
|
||||||
|
#19#channelQualityFlagsForAtovs
|
||||||
|
#19#brightnessTemperature
|
||||||
|
#20#tovsOrAtovsOrAvhrrInstrumentationChannelNumber
|
||||||
|
#1#albedoRadianceSolarFilteredIrradianceForAtovs
|
||||||
|
#1#albedoRadianceEquivalentFilterWidthForAtovs
|
||||||
|
#20#channelQualityFlagsForAtovs
|
||||||
|
#1#channelRadiance
|
||||||
|
EOF
|
||||||
|
|
||||||
|
diff $tempRef $tempOut
|
||||||
|
|
||||||
|
|
||||||
rm -f $tempRef $tempOut
|
rm -f $tempRef $tempOut
|
||||||
|
|
Loading…
Reference in New Issue