mirror of https://github.com/ecmwf/eccodes.git
ECC-1053: Add key to get forecast step in human-readable format
This commit is contained in:
commit
2d7d8d1240
|
@ -210,6 +210,7 @@ _if (stepType is "instant" ) {
|
||||||
meta stepRange g1step_range(P1,P2,timeRangeIndicator,unitOfTimeRange,stepUnits,stepType) : dump;
|
meta stepRange g1step_range(P1,P2,timeRangeIndicator,unitOfTimeRange,stepUnits,stepType) : dump;
|
||||||
meta startStep long_vector(stepRange,0) : dump,no_copy;
|
meta startStep long_vector(stepRange,0) : dump,no_copy;
|
||||||
meta endStep long_vector(stepRange,1) : dump,no_copy;
|
meta endStep long_vector(stepRange,1) : dump,no_copy;
|
||||||
|
meta stepHuman step_human_readable(stepUnits, stepRange): hidden,no_copy;
|
||||||
|
|
||||||
alias stepInHours = endStep;
|
alias stepInHours = endStep;
|
||||||
alias ls.stepRange = stepRange;
|
alias ls.stepRange = stepRange;
|
||||||
|
|
|
@ -16,6 +16,7 @@ alias ls.stepRange=stepRange;
|
||||||
concept stepTypeInternal {
|
concept stepTypeInternal {
|
||||||
"instant" = {dummy=1;}
|
"instant" = {dummy=1;}
|
||||||
}
|
}
|
||||||
|
meta stepHuman step_human_readable(stepUnits, stepRange): hidden,no_copy;
|
||||||
|
|
||||||
alias time.stepType=stepType;
|
alias time.stepType=stepType;
|
||||||
alias time.stepRange=stepRange;
|
alias time.stepRange=stepRange;
|
||||||
|
|
|
@ -96,6 +96,7 @@ list( APPEND grib_api_srcs
|
||||||
grib_accessor_class_codetable.c
|
grib_accessor_class_codetable.c
|
||||||
grib_accessor_class_codetable_units.c
|
grib_accessor_class_codetable_units.c
|
||||||
grib_accessor_class_codetable_title.c
|
grib_accessor_class_codetable_title.c
|
||||||
|
grib_accessor_class_step_human_readable.c
|
||||||
grib_accessor_class_count_file.c
|
grib_accessor_class_count_file.c
|
||||||
grib_accessor_class_count_total.c
|
grib_accessor_class_count_total.c
|
||||||
grib_accessor_class_double.c
|
grib_accessor_class_double.c
|
||||||
|
|
|
@ -196,6 +196,7 @@ extern grib_accessor_class* grib_accessor_class_spectral_truncation;
|
||||||
extern grib_accessor_class* grib_accessor_class_sprintf;
|
extern grib_accessor_class* grib_accessor_class_sprintf;
|
||||||
extern grib_accessor_class* grib_accessor_class_statistics;
|
extern grib_accessor_class* grib_accessor_class_statistics;
|
||||||
extern grib_accessor_class* grib_accessor_class_statistics_spectral;
|
extern grib_accessor_class* grib_accessor_class_statistics_spectral;
|
||||||
|
extern grib_accessor_class* grib_accessor_class_step_human_readable;
|
||||||
extern grib_accessor_class* grib_accessor_class_step_in_units;
|
extern grib_accessor_class* grib_accessor_class_step_in_units;
|
||||||
extern grib_accessor_class* grib_accessor_class_sum;
|
extern grib_accessor_class* grib_accessor_class_sum;
|
||||||
extern grib_accessor_class* grib_accessor_class_suppressed;
|
extern grib_accessor_class* grib_accessor_class_suppressed;
|
||||||
|
|
|
@ -0,0 +1,199 @@
|
||||||
|
/*
|
||||||
|
* (C) Copyright 2005- ECMWF.
|
||||||
|
*
|
||||||
|
* This software is licensed under the terms of the Apache Licence Version 2.0
|
||||||
|
* which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
|
||||||
|
*
|
||||||
|
* In applying this licence, ECMWF does not waive the privileges and immunities granted to it by
|
||||||
|
* virtue of its status as an intergovernmental organisation nor does it submit to any jurisdiction.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "grib_api_internal.h"
|
||||||
|
|
||||||
|
/*
|
||||||
|
This is used by make_class.pl
|
||||||
|
|
||||||
|
START_CLASS_DEF
|
||||||
|
CLASS = accessor
|
||||||
|
SUPER = grib_accessor_class_gen
|
||||||
|
IMPLEMENTS = init;unpack_string; get_native_type
|
||||||
|
MEMBERS = const char* stepUnits
|
||||||
|
MEMBERS = const char* step
|
||||||
|
END_CLASS_DEF
|
||||||
|
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* START_CLASS_IMP */
|
||||||
|
|
||||||
|
/*
|
||||||
|
|
||||||
|
Don't edit anything between START_CLASS_IMP and END_CLASS_IMP
|
||||||
|
Instead edit values between START_CLASS_DEF and END_CLASS_DEF
|
||||||
|
or edit "accessor.class" and rerun ./make_class.pl
|
||||||
|
|
||||||
|
*/
|
||||||
|
|
||||||
|
static int get_native_type(grib_accessor*);
|
||||||
|
static int unpack_string(grib_accessor*, char*, size_t* len);
|
||||||
|
static void init(grib_accessor*, const long, grib_arguments*);
|
||||||
|
static void init_class(grib_accessor_class*);
|
||||||
|
|
||||||
|
typedef struct grib_accessor_step_human_readable
|
||||||
|
{
|
||||||
|
grib_accessor att;
|
||||||
|
/* Members defined in gen */
|
||||||
|
/* Members defined in step_human_readable */
|
||||||
|
const char* stepUnits;
|
||||||
|
const char* step;
|
||||||
|
} grib_accessor_step_human_readable;
|
||||||
|
|
||||||
|
extern grib_accessor_class* grib_accessor_class_gen;
|
||||||
|
|
||||||
|
static grib_accessor_class _grib_accessor_class_step_human_readable = {
|
||||||
|
&grib_accessor_class_gen, /* super */
|
||||||
|
"step_human_readable", /* name */
|
||||||
|
sizeof(grib_accessor_step_human_readable), /* size */
|
||||||
|
0, /* inited */
|
||||||
|
&init_class, /* init_class */
|
||||||
|
&init, /* init */
|
||||||
|
0, /* post_init */
|
||||||
|
0, /* free mem */
|
||||||
|
0, /* describes himself */
|
||||||
|
0, /* get length of section */
|
||||||
|
0, /* get length of string */
|
||||||
|
0, /* get number of values */
|
||||||
|
0, /* get number of bytes */
|
||||||
|
0, /* get offset to bytes */
|
||||||
|
&get_native_type, /* get native type */
|
||||||
|
0, /* get sub_section */
|
||||||
|
0, /* grib_pack procedures long */
|
||||||
|
0, /* grib_pack procedures long */
|
||||||
|
0, /* grib_pack procedures long */
|
||||||
|
0, /* grib_unpack procedures long */
|
||||||
|
0, /* grib_pack procedures double */
|
||||||
|
0, /* grib_unpack procedures double */
|
||||||
|
0, /* grib_pack procedures string */
|
||||||
|
&unpack_string, /* grib_unpack procedures string */
|
||||||
|
0, /* grib_pack array procedures string */
|
||||||
|
0, /* grib_unpack array procedures string */
|
||||||
|
0, /* grib_pack procedures bytes */
|
||||||
|
0, /* grib_unpack procedures bytes */
|
||||||
|
0, /* pack_expression */
|
||||||
|
0, /* notify_change */
|
||||||
|
0, /* update_size */
|
||||||
|
0, /* preferred_size */
|
||||||
|
0, /* resize */
|
||||||
|
0, /* nearest_smaller_value */
|
||||||
|
0, /* next accessor */
|
||||||
|
0, /* compare vs. another accessor */
|
||||||
|
0, /* unpack only ith value */
|
||||||
|
0, /* unpack a subarray */
|
||||||
|
0, /* clear */
|
||||||
|
0, /* clone accessor */
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
grib_accessor_class* grib_accessor_class_step_human_readable = &_grib_accessor_class_step_human_readable;
|
||||||
|
|
||||||
|
|
||||||
|
static void init_class(grib_accessor_class* c)
|
||||||
|
{
|
||||||
|
c->dump = (*(c->super))->dump;
|
||||||
|
c->next_offset = (*(c->super))->next_offset;
|
||||||
|
c->string_length = (*(c->super))->string_length;
|
||||||
|
c->value_count = (*(c->super))->value_count;
|
||||||
|
c->byte_count = (*(c->super))->byte_count;
|
||||||
|
c->byte_offset = (*(c->super))->byte_offset;
|
||||||
|
c->sub_section = (*(c->super))->sub_section;
|
||||||
|
c->pack_missing = (*(c->super))->pack_missing;
|
||||||
|
c->is_missing = (*(c->super))->is_missing;
|
||||||
|
c->pack_long = (*(c->super))->pack_long;
|
||||||
|
c->unpack_long = (*(c->super))->unpack_long;
|
||||||
|
c->pack_double = (*(c->super))->pack_double;
|
||||||
|
c->unpack_double = (*(c->super))->unpack_double;
|
||||||
|
c->pack_string = (*(c->super))->pack_string;
|
||||||
|
c->pack_string_array = (*(c->super))->pack_string_array;
|
||||||
|
c->unpack_string_array = (*(c->super))->unpack_string_array;
|
||||||
|
c->pack_bytes = (*(c->super))->pack_bytes;
|
||||||
|
c->unpack_bytes = (*(c->super))->unpack_bytes;
|
||||||
|
c->pack_expression = (*(c->super))->pack_expression;
|
||||||
|
c->notify_change = (*(c->super))->notify_change;
|
||||||
|
c->update_size = (*(c->super))->update_size;
|
||||||
|
c->preferred_size = (*(c->super))->preferred_size;
|
||||||
|
c->resize = (*(c->super))->resize;
|
||||||
|
c->nearest_smaller_value = (*(c->super))->nearest_smaller_value;
|
||||||
|
c->next = (*(c->super))->next;
|
||||||
|
c->compare = (*(c->super))->compare;
|
||||||
|
c->unpack_double_element = (*(c->super))->unpack_double_element;
|
||||||
|
c->unpack_double_subarray = (*(c->super))->unpack_double_subarray;
|
||||||
|
c->clear = (*(c->super))->clear;
|
||||||
|
c->make_clone = (*(c->super))->make_clone;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* END_CLASS_IMP */
|
||||||
|
|
||||||
|
static void init(grib_accessor* a, const long len, grib_arguments* params)
|
||||||
|
{
|
||||||
|
grib_accessor_step_human_readable* self = (grib_accessor_step_human_readable*)a;
|
||||||
|
int n = 0;
|
||||||
|
grib_handle* h = grib_handle_of_accessor(a);
|
||||||
|
|
||||||
|
self->stepUnits = grib_arguments_get_name(h, params, n++);
|
||||||
|
self->step = grib_arguments_get_name(h, params, n++);
|
||||||
|
a->length = 0;
|
||||||
|
a->flags |= GRIB_ACCESSOR_FLAG_READ_ONLY;
|
||||||
|
}
|
||||||
|
|
||||||
|
static int get_native_type(grib_accessor* a)
|
||||||
|
{
|
||||||
|
return GRIB_TYPE_STRING;
|
||||||
|
}
|
||||||
|
|
||||||
|
static int get_step_human_readable(grib_handle* h, char* result, size_t* length)
|
||||||
|
{
|
||||||
|
int err = 0;
|
||||||
|
size_t slen = 2;
|
||||||
|
long step, hour, minute, second;
|
||||||
|
|
||||||
|
/* Change units to seconds (highest resolution)
|
||||||
|
* before computing the step value
|
||||||
|
*/
|
||||||
|
err = grib_set_string(h, "stepUnits", "s", &slen);
|
||||||
|
if (err) return err;
|
||||||
|
err = grib_get_long(h, "step", &step);
|
||||||
|
if (err) return err;
|
||||||
|
|
||||||
|
hour = step/3600;
|
||||||
|
minute = step/60 % 60;
|
||||||
|
second = step % 60;
|
||||||
|
/* sprintf(result, "%ld:%ld:%ld", hour, minute, second); */
|
||||||
|
|
||||||
|
if (second) {
|
||||||
|
sprintf(result, "%ldh %ldm %lds", hour, minute, second);
|
||||||
|
} else {
|
||||||
|
if (minute) sprintf(result, "%ldh %ldm", hour, minute);
|
||||||
|
else sprintf(result, "%ldh", hour);
|
||||||
|
}
|
||||||
|
|
||||||
|
*length = strlen(result);
|
||||||
|
return GRIB_SUCCESS;
|
||||||
|
}
|
||||||
|
|
||||||
|
static int unpack_string(grib_accessor* a, char* buffer, size_t* len)
|
||||||
|
{
|
||||||
|
grib_accessor_step_human_readable* self = (grib_accessor_step_human_readable*)a;
|
||||||
|
grib_handle* h = grib_handle_of_accessor(a);
|
||||||
|
long stepUnits;
|
||||||
|
int err = 0;
|
||||||
|
|
||||||
|
/* Save the current value of stepUnits */
|
||||||
|
err = grib_get_long_internal(h, self->stepUnits, &stepUnits);
|
||||||
|
if (err) return err;
|
||||||
|
|
||||||
|
/* This will change stepUnits to seconds for its calculation */
|
||||||
|
err = get_step_human_readable(h, buffer, len);
|
||||||
|
|
||||||
|
/* Restore stepUnits */
|
||||||
|
grib_set_long(h, self->stepUnits, stepUnits);
|
||||||
|
return err;
|
||||||
|
}
|
File diff suppressed because it is too large
Load Diff
|
@ -195,6 +195,7 @@
|
||||||
{ "sprintf", &grib_accessor_class_sprintf, },
|
{ "sprintf", &grib_accessor_class_sprintf, },
|
||||||
{ "statistics", &grib_accessor_class_statistics, },
|
{ "statistics", &grib_accessor_class_statistics, },
|
||||||
{ "statistics_spectral", &grib_accessor_class_statistics_spectral, },
|
{ "statistics_spectral", &grib_accessor_class_statistics_spectral, },
|
||||||
|
{ "step_human_readable", &grib_accessor_class_step_human_readable, },
|
||||||
{ "step_in_units", &grib_accessor_class_step_in_units, },
|
{ "step_in_units", &grib_accessor_class_step_in_units, },
|
||||||
{ "sum", &grib_accessor_class_sum, },
|
{ "sum", &grib_accessor_class_sum, },
|
||||||
{ "suppressed", &grib_accessor_class_suppressed, },
|
{ "suppressed", &grib_accessor_class_suppressed, },
|
||||||
|
|
|
@ -196,6 +196,7 @@ spectral_truncation, &grib_accessor_class_spectral_truncation
|
||||||
sprintf, &grib_accessor_class_sprintf
|
sprintf, &grib_accessor_class_sprintf
|
||||||
statistics, &grib_accessor_class_statistics
|
statistics, &grib_accessor_class_statistics
|
||||||
statistics_spectral, &grib_accessor_class_statistics_spectral
|
statistics_spectral, &grib_accessor_class_statistics_spectral
|
||||||
|
step_human_readable, &grib_accessor_class_step_human_readable
|
||||||
step_in_units, &grib_accessor_class_step_in_units
|
step_in_units, &grib_accessor_class_step_in_units
|
||||||
sum, &grib_accessor_class_sum
|
sum, &grib_accessor_class_sum
|
||||||
suppressed, &grib_accessor_class_suppressed
|
suppressed, &grib_accessor_class_suppressed
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -57,6 +57,7 @@ list(APPEND tests_no_data_reqd
|
||||||
grib_ecc-136
|
grib_ecc-136
|
||||||
grib_ecc-967
|
grib_ecc-967
|
||||||
grib_ecc-1065
|
grib_ecc-1065
|
||||||
|
grib_ecc-1053
|
||||||
julian
|
julian
|
||||||
bufr_dump_samples
|
bufr_dump_samples
|
||||||
bufr_json_samples
|
bufr_json_samples
|
||||||
|
|
|
@ -0,0 +1,27 @@
|
||||||
|
#!/bin/sh
|
||||||
|
# (C) Copyright 2005- ECMWF.
|
||||||
|
#
|
||||||
|
# This software is licensed under the terms of the Apache Licence Version 2.0
|
||||||
|
# which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
|
||||||
|
#
|
||||||
|
# In applying this licence, ECMWF does not waive the privileges and immunities granted to it by
|
||||||
|
# virtue of its status as an intergovernmental organisation nor does it submit to any jurisdiction.
|
||||||
|
#
|
||||||
|
|
||||||
|
. ./include.sh
|
||||||
|
set -u
|
||||||
|
# ---------------------------------------------------------
|
||||||
|
# This is the test for the JIRA issue ECC-1053
|
||||||
|
# It tests the human readable step key
|
||||||
|
# ---------------------------------------------------------
|
||||||
|
label="grib_ecc-1053-test"
|
||||||
|
temp=temp.${label}.grib
|
||||||
|
sample_g1=$ECCODES_SAMPLES_PATH/GRIB1.tmpl
|
||||||
|
|
||||||
|
${tools_dir}/grib_set -s unitOfTimeRange=254,P1=250 $sample_g1 $temp
|
||||||
|
grib_check_key_equals $temp stepHuman '0h 4m 10s'
|
||||||
|
|
||||||
|
${tools_dir}/grib_set -s unitOfTimeRange=0,P1=200 $sample_g1 $temp
|
||||||
|
grib_check_key_equals $temp stepHuman '3h 20m'
|
||||||
|
|
||||||
|
rm -f $temp
|
593
tests/keys
593
tests/keys
|
@ -2068,299 +2068,300 @@ statistics,2062
|
||||||
status,2063
|
status,2063
|
||||||
step,2064
|
step,2064
|
||||||
stepForClustering,2065
|
stepForClustering,2065
|
||||||
stepInHours,2066
|
stepHuman,2066
|
||||||
stepRange,2067
|
stepInHours,2067
|
||||||
stepRangeInHours,2068
|
stepRange,2068
|
||||||
stepType,2069
|
stepRangeInHours,2069
|
||||||
stepTypeForConversion,2070
|
stepType,2070
|
||||||
stepTypeInternal,2071
|
stepTypeForConversion,2071
|
||||||
stepUnits,2072
|
stepTypeInternal,2072
|
||||||
stepZero,2073
|
stepUnits,2073
|
||||||
stream,2074
|
stepZero,2074
|
||||||
streamOfAnalysis,2075
|
stream,2075
|
||||||
stretchingFactor,2076
|
streamOfAnalysis,2076
|
||||||
stretchingFactorScaled,2077
|
stretchingFactor,2077
|
||||||
stringValues,2078
|
stretchingFactorScaled,2078
|
||||||
subCentre,2079
|
stringValues,2079
|
||||||
subDefinitions1,2080
|
subCentre,2080
|
||||||
subDefinitions2,2081
|
subDefinitions1,2081
|
||||||
subLocalDefinition1,2082
|
subDefinitions2,2082
|
||||||
subLocalDefinition2,2083
|
subLocalDefinition1,2083
|
||||||
subLocalDefinitionLength1,2084
|
subLocalDefinition2,2084
|
||||||
subLocalDefinitionLength2,2085
|
subLocalDefinitionLength1,2085
|
||||||
subLocalDefinitionNumber1,2086
|
subLocalDefinitionLength2,2086
|
||||||
subLocalDefinitionNumber2,2087
|
subLocalDefinitionNumber1,2087
|
||||||
subSetJ,2088
|
subLocalDefinitionNumber2,2088
|
||||||
subSetK,2089
|
subSetJ,2089
|
||||||
subSetM,2090
|
subSetK,2090
|
||||||
subcentreOfAnalysis,2091
|
subSetM,2091
|
||||||
subdivisionsOfBasicAngle,2092
|
subcentreOfAnalysis,2092
|
||||||
suiteName,2093
|
subdivisionsOfBasicAngle,2093
|
||||||
superblockExtensionAddress,2094
|
suiteName,2094
|
||||||
swapScanningLat,2095
|
superblockExtensionAddress,2095
|
||||||
swapScanningLon,2096
|
swapScanningLat,2096
|
||||||
swapScanningX,2097
|
swapScanningLon,2097
|
||||||
swapScanningY,2098
|
swapScanningX,2098
|
||||||
system,2099
|
swapScanningY,2099
|
||||||
systemNumber,2100
|
system,2100
|
||||||
t,2101
|
systemNumber,2101
|
||||||
table2Version,2102
|
t,2102
|
||||||
tableCode,2103
|
table2Version,2103
|
||||||
tableNumber,2104
|
tableCode,2104
|
||||||
tableReference,2105
|
tableNumber,2105
|
||||||
tablesLocalDir,2106
|
tableReference,2106
|
||||||
tablesMasterDir,2107
|
tablesLocalDir,2107
|
||||||
tablesVersion,2108
|
tablesMasterDir,2108
|
||||||
tablesVersionLatest,2109
|
tablesVersion,2109
|
||||||
targetCompressionRatio,2110
|
tablesVersionLatest,2110
|
||||||
td,2111
|
targetCompressionRatio,2111
|
||||||
tempPressureUnits,2112
|
td,2112
|
||||||
temperature,2113
|
tempPressureUnits,2113
|
||||||
temperatureAndDewpointPresent,2114
|
temperature,2114
|
||||||
templatesLocalDir,2115
|
temperatureAndDewpointPresent,2115
|
||||||
templatesMasterDir,2116
|
templatesLocalDir,2116
|
||||||
theHindcastMarsStream,2117
|
templatesMasterDir,2117
|
||||||
theMessage,2118
|
theHindcastMarsStream,2118
|
||||||
thisExperimentVersionNumber,2119
|
theMessage,2119
|
||||||
thisMarsClass,2120
|
thisExperimentVersionNumber,2120
|
||||||
thisMarsStream,2121
|
thisMarsClass,2121
|
||||||
thisMarsType,2122
|
thisMarsStream,2122
|
||||||
thousand,2123
|
thisMarsType,2123
|
||||||
three,2124
|
thousand,2124
|
||||||
threshold,2125
|
three,2125
|
||||||
thresholdIndicator,2126
|
threshold,2126
|
||||||
tiggeCentre,2127
|
thresholdIndicator,2127
|
||||||
tiggeLAMName,2128
|
tiggeCentre,2128
|
||||||
tiggeLocalVersion,2129
|
tiggeLAMName,2129
|
||||||
tiggeModel,2130
|
tiggeLocalVersion,2130
|
||||||
tiggeSection,2131
|
tiggeModel,2131
|
||||||
tiggeSuiteID,2132
|
tiggeSection,2132
|
||||||
tigge_name,2133
|
tiggeSuiteID,2133
|
||||||
tigge_short_name,2134
|
tigge_name,2134
|
||||||
tileClassification,2135
|
tigge_short_name,2135
|
||||||
tileIndex,2136
|
tileClassification,2136
|
||||||
time,2137
|
tileIndex,2137
|
||||||
timeCoordinateDefinition,2138
|
time,2138
|
||||||
timeDomainTemplate,2139
|
timeCoordinateDefinition,2139
|
||||||
timeDomainTemplateNumber,2140
|
timeDomainTemplate,2140
|
||||||
timeIncrement,2141
|
timeDomainTemplateNumber,2141
|
||||||
timeIncrementBetweenSuccessiveFields,2142
|
timeIncrement,2142
|
||||||
timeOfAnalysis,2143
|
timeIncrementBetweenSuccessiveFields,2143
|
||||||
timeOfForecast,2144
|
timeOfAnalysis,2144
|
||||||
timeOfModelVersion,2145
|
timeOfForecast,2145
|
||||||
timeOfReference,2146
|
timeOfModelVersion,2146
|
||||||
timeRangeIndicator,2147
|
timeOfReference,2147
|
||||||
timeRangeIndicatorFromStepRange,2148
|
timeRangeIndicator,2148
|
||||||
timeUnitFlag,2149
|
timeRangeIndicatorFromStepRange,2149
|
||||||
timerepres,2150
|
timeUnitFlag,2150
|
||||||
topLevel,2151
|
timerepres,2151
|
||||||
total,2152
|
topLevel,2152
|
||||||
totalAerosolBinsNumbers,2153
|
total,2153
|
||||||
totalInitialConditions,2154
|
totalAerosolBinsNumbers,2154
|
||||||
totalLength,2155
|
totalInitialConditions,2155
|
||||||
totalNumber,2156
|
totalLength,2156
|
||||||
totalNumberOfClusters,2157
|
totalNumber,2157
|
||||||
totalNumberOfDataValuesMissingInStatisticalProcess,2158
|
totalNumberOfClusters,2158
|
||||||
totalNumberOfDirections,2159
|
totalNumberOfDataValuesMissingInStatisticalProcess,2159
|
||||||
totalNumberOfForecastProbabilities,2160
|
totalNumberOfDirections,2160
|
||||||
totalNumberOfFrequencies,2161
|
totalNumberOfForecastProbabilities,2161
|
||||||
totalNumberOfGridPoints,2162
|
totalNumberOfFrequencies,2162
|
||||||
totalNumberOfIterations,2163
|
totalNumberOfGridPoints,2163
|
||||||
totalNumberOfRepetitions,2164
|
totalNumberOfIterations,2164
|
||||||
totalNumberOfTileAttributePairs,2165
|
totalNumberOfRepetitions,2165
|
||||||
totalNumberOfTubes,2166
|
totalNumberOfTileAttributePairs,2166
|
||||||
totalNumberOfValuesInUnpackedSubset,2167
|
totalNumberOfTubes,2167
|
||||||
totalNumberOfdimensions,2168
|
totalNumberOfValuesInUnpackedSubset,2168
|
||||||
treatmentOfMissingData,2169
|
totalNumberOfdimensions,2169
|
||||||
true,2170
|
treatmentOfMissingData,2170
|
||||||
trueLengthOfLastGroup,2171
|
true,2171
|
||||||
truncateDegrees,2172
|
trueLengthOfLastGroup,2172
|
||||||
truncateLaplacian,2173
|
truncateDegrees,2173
|
||||||
tsectionNumber3,2174
|
truncateLaplacian,2174
|
||||||
tsectionNumber4,2175
|
tsectionNumber3,2175
|
||||||
tsectionNumber5,2176
|
tsectionNumber4,2176
|
||||||
tubeDomain,2177
|
tsectionNumber5,2177
|
||||||
tubeNumber,2178
|
tubeDomain,2178
|
||||||
two,2179
|
tubeNumber,2179
|
||||||
twoOrdersOfSPD,2180
|
two,2180
|
||||||
type,2181
|
twoOrdersOfSPD,2181
|
||||||
typeOfAnalysis,2182
|
type,2182
|
||||||
typeOfAuxiliaryInformation,2183
|
typeOfAnalysis,2183
|
||||||
typeOfCalendar,2184
|
typeOfAuxiliaryInformation,2184
|
||||||
typeOfCompressionUsed,2185
|
typeOfCalendar,2185
|
||||||
typeOfDistributionFunction,2186
|
typeOfCompressionUsed,2186
|
||||||
typeOfEnsembleForecast,2187
|
typeOfDistributionFunction,2187
|
||||||
typeOfEnsembleMember,2188
|
typeOfEnsembleForecast,2188
|
||||||
typeOfFirstFixedSurface,2189
|
typeOfEnsembleMember,2189
|
||||||
typeOfGeneratingProcess,2190
|
typeOfFirstFixedSurface,2190
|
||||||
typeOfGrid,2191
|
typeOfGeneratingProcess,2191
|
||||||
typeOfHorizontalLine,2192
|
typeOfGrid,2192
|
||||||
typeOfIntervalForFirstAndSecondSize,2193
|
typeOfHorizontalLine,2193
|
||||||
typeOfIntervalForFirstAndSecondWavelength,2194
|
typeOfIntervalForFirstAndSecondSize,2194
|
||||||
typeOfLevel,2195
|
typeOfIntervalForFirstAndSecondWavelength,2195
|
||||||
typeOfLevelECMF,2196
|
typeOfLevel,2196
|
||||||
typeOfOriginalFieldValues,2197
|
typeOfLevelECMF,2197
|
||||||
typeOfPacking,2198
|
typeOfOriginalFieldValues,2198
|
||||||
typeOfPostProcessing,2199
|
typeOfPacking,2199
|
||||||
typeOfPreProcessing,2200
|
typeOfPostProcessing,2200
|
||||||
typeOfProcessedData,2201
|
typeOfPreProcessing,2201
|
||||||
typeOfSSTFieldUsed,2202
|
typeOfProcessedData,2202
|
||||||
typeOfSecondFixedSurface,2203
|
typeOfSSTFieldUsed,2203
|
||||||
typeOfSizeInterval,2204
|
typeOfSecondFixedSurface,2204
|
||||||
typeOfStatisticalPostProcessingOfEnsembleMembers,2205
|
typeOfSizeInterval,2205
|
||||||
typeOfStatisticalProcessing,2206
|
typeOfStatisticalPostProcessingOfEnsembleMembers,2206
|
||||||
typeOfTimeIncrement,2207
|
typeOfStatisticalProcessing,2207
|
||||||
typeOfTimeIncrementBetweenSuccessiveFieldsUsedInTheStatisticalProcessing,2208
|
typeOfTimeIncrement,2208
|
||||||
typeOfWavelengthInterval,2209
|
typeOfTimeIncrementBetweenSuccessiveFieldsUsedInTheStatisticalProcessing,2209
|
||||||
typicalCentury,2210
|
typeOfWavelengthInterval,2210
|
||||||
typicalDate,2211
|
typicalCentury,2211
|
||||||
typicalDateTime,2212
|
typicalDate,2212
|
||||||
typicalDay,2213
|
typicalDateTime,2213
|
||||||
typicalHour,2214
|
typicalDay,2214
|
||||||
typicalMinute,2215
|
typicalHour,2215
|
||||||
typicalMonth,2216
|
typicalMinute,2216
|
||||||
typicalSecond,2217
|
typicalMonth,2217
|
||||||
typicalTime,2218
|
typicalSecond,2218
|
||||||
typicalYear,2219
|
typicalTime,2219
|
||||||
typicalYear2,2220
|
typicalYear,2220
|
||||||
typicalYearOfCentury,2221
|
typicalYear2,2221
|
||||||
uco,2222
|
typicalYearOfCentury,2222
|
||||||
ucs,2223
|
uco,2223
|
||||||
unexpandedDescriptors,2224
|
ucs,2224
|
||||||
unexpandedDescriptorsEncoded,2225
|
unexpandedDescriptors,2225
|
||||||
unitOfOffsetFromReferenceTime,2226
|
unexpandedDescriptorsEncoded,2226
|
||||||
unitOfTime,2227
|
unitOfOffsetFromReferenceTime,2227
|
||||||
unitOfTimeIncrement,2228
|
unitOfTime,2228
|
||||||
unitOfTimeRange,2229
|
unitOfTimeIncrement,2229
|
||||||
units,2230
|
unitOfTimeRange,2230
|
||||||
unitsBias,2231
|
units,2231
|
||||||
unitsConversionOffset,2232
|
unitsBias,2232
|
||||||
unitsConversionScaleFactor,2233
|
unitsConversionOffset,2233
|
||||||
unitsDecimalScaleFactor,2234
|
unitsConversionScaleFactor,2234
|
||||||
unitsECMF,2235
|
unitsDecimalScaleFactor,2235
|
||||||
unitsFactor,2236
|
unitsECMF,2236
|
||||||
unitsOfFirstFixedSurface,2237
|
unitsFactor,2237
|
||||||
unitsOfSecondFixedSurface,2238
|
unitsOfFirstFixedSurface,2238
|
||||||
unknown,2239
|
unitsOfSecondFixedSurface,2239
|
||||||
unpack,2240
|
unknown,2240
|
||||||
unpackedError,2241
|
unpack,2241
|
||||||
unpackedSubsetPrecision,2242
|
unpackedError,2242
|
||||||
unpackedValues,2243
|
unpackedSubsetPrecision,2243
|
||||||
unsignedIntegers,2244
|
unpackedValues,2244
|
||||||
unusedBitsInBitmap,2245
|
unsignedIntegers,2245
|
||||||
updateSequenceNumber,2246
|
unusedBitsInBitmap,2246
|
||||||
upperLimit,2247
|
updateSequenceNumber,2247
|
||||||
upperRange,2248
|
upperLimit,2248
|
||||||
upperThreshold,2249
|
upperRange,2249
|
||||||
upperThresholdValue,2250
|
upperThreshold,2250
|
||||||
userDateEnd,2251
|
upperThresholdValue,2251
|
||||||
userDateStart,2252
|
userDateEnd,2252
|
||||||
userDateTimeEnd,2253
|
userDateStart,2253
|
||||||
userDateTimeStart,2254
|
userDateTimeEnd,2254
|
||||||
userTimeEnd,2255
|
userDateTimeStart,2255
|
||||||
userTimeStart,2256
|
userTimeEnd,2256
|
||||||
uuidOfHGrid,2257
|
userTimeStart,2257
|
||||||
uuidOfVGrid,2258
|
uuidOfHGrid,2258
|
||||||
uvRelativeToGrid,2259
|
uuidOfVGrid,2259
|
||||||
validityDate,2260
|
uvRelativeToGrid,2260
|
||||||
validityTime,2261
|
validityDate,2261
|
||||||
values,2262
|
validityTime,2262
|
||||||
variationOfVisibility,2263
|
values,2263
|
||||||
variationOfVisibilityDirection,2264
|
variationOfVisibility,2264
|
||||||
variationOfVisibilityDirectionAngle,2265
|
variationOfVisibilityDirection,2265
|
||||||
variationOfVisibilityDirectionTrend1,2266
|
variationOfVisibilityDirectionAngle,2266
|
||||||
variationOfVisibilityDirectionTrend2,2267
|
variationOfVisibilityDirectionTrend1,2267
|
||||||
variationOfVisibilityDirectionTrend3,2268
|
variationOfVisibilityDirectionTrend2,2268
|
||||||
variationOfVisibilityDirectionTrend4,2269
|
variationOfVisibilityDirectionTrend3,2269
|
||||||
variationOfVisibilityTrend1,2270
|
variationOfVisibilityDirectionTrend4,2270
|
||||||
variationOfVisibilityTrend2,2271
|
variationOfVisibilityTrend1,2271
|
||||||
variationOfVisibilityTrend3,2272
|
variationOfVisibilityTrend2,2272
|
||||||
variationOfVisibilityTrend4,2273
|
variationOfVisibilityTrend3,2273
|
||||||
varno,2274
|
variationOfVisibilityTrend4,2274
|
||||||
verificationDate,2275
|
varno,2275
|
||||||
verificationMonth,2276
|
verificationDate,2276
|
||||||
verificationYear,2277
|
verificationMonth,2277
|
||||||
verifyingMonth,2278
|
verificationYear,2278
|
||||||
version,2279
|
verifyingMonth,2279
|
||||||
versionNumOfFilesFreeSpaceStorage,2280
|
version,2280
|
||||||
versionNumOfRootGroupSymbolTableEntry,2281
|
versionNumOfFilesFreeSpaceStorage,2281
|
||||||
versionNumOfSharedHeaderMessageFormat,2282
|
versionNumOfRootGroupSymbolTableEntry,2282
|
||||||
versionNumberOfExperimentalSuite,2283
|
versionNumOfSharedHeaderMessageFormat,2283
|
||||||
versionNumberOfGribLocalTables,2284
|
versionNumberOfExperimentalSuite,2284
|
||||||
versionNumberOfSuperblock,2285
|
versionNumberOfGribLocalTables,2285
|
||||||
versionOfModelClimate,2286
|
versionNumberOfSuperblock,2286
|
||||||
verticalCoordinate,2287
|
versionOfModelClimate,2287
|
||||||
verticalCoordinateDefinition,2288
|
verticalCoordinate,2288
|
||||||
verticalDomainTemplate,2289
|
verticalCoordinateDefinition,2289
|
||||||
verticalDomainTemplateNumber,2290
|
verticalDomainTemplate,2290
|
||||||
verticalVisibility,2291
|
verticalDomainTemplateNumber,2291
|
||||||
verticalVisibilityCoded,2292
|
verticalVisibility,2292
|
||||||
visibility,2293
|
verticalVisibilityCoded,2293
|
||||||
visibilityInKilometresTrend1,2294
|
visibility,2294
|
||||||
visibilityInKilometresTrend2,2295
|
visibilityInKilometresTrend1,2295
|
||||||
visibilityInKilometresTrend3,2296
|
visibilityInKilometresTrend2,2296
|
||||||
visibilityInKilometresTrend4,2297
|
visibilityInKilometresTrend3,2297
|
||||||
visibilityTrend1,2298
|
visibilityInKilometresTrend4,2298
|
||||||
visibilityTrend2,2299
|
visibilityTrend1,2299
|
||||||
visibilityTrend3,2300
|
visibilityTrend2,2300
|
||||||
visibilityTrend4,2301
|
visibilityTrend3,2301
|
||||||
waveDomain,2302
|
visibilityTrend4,2302
|
||||||
weightAppliedToClimateMonth1,2303
|
waveDomain,2303
|
||||||
westLongitudeOfCluster,2304
|
weightAppliedToClimateMonth1,2304
|
||||||
westLongitudeOfDomainOfTubing,2305
|
westLongitudeOfCluster,2305
|
||||||
westernLongitudeOfClusterDomain,2306
|
westLongitudeOfDomainOfTubing,2306
|
||||||
westernLongitudeOfDomain,2307
|
westernLongitudeOfClusterDomain,2307
|
||||||
widthOfFirstOrderValues,2308
|
westernLongitudeOfDomain,2308
|
||||||
widthOfLengths,2309
|
widthOfFirstOrderValues,2309
|
||||||
widthOfSPD,2310
|
widthOfLengths,2310
|
||||||
widthOfWidths,2311
|
widthOfSPD,2311
|
||||||
windDirection,2312
|
widthOfWidths,2312
|
||||||
windDirectionTrend1,2313
|
windDirection,2313
|
||||||
windDirectionTrend2,2314
|
windDirectionTrend1,2314
|
||||||
windDirectionTrend3,2315
|
windDirectionTrend2,2315
|
||||||
windDirectionTrend4,2316
|
windDirectionTrend3,2316
|
||||||
windGust,2317
|
windDirectionTrend4,2317
|
||||||
windGustTrend1,2318
|
windGust,2318
|
||||||
windGustTrend2,2319
|
windGustTrend1,2319
|
||||||
windGustTrend3,2320
|
windGustTrend2,2320
|
||||||
windGustTrend4,2321
|
windGustTrend3,2321
|
||||||
windPresent,2322
|
windGustTrend4,2322
|
||||||
windSpeed,2323
|
windPresent,2323
|
||||||
windSpeedTrend1,2324
|
windSpeed,2324
|
||||||
windSpeedTrend2,2325
|
windSpeedTrend1,2325
|
||||||
windSpeedTrend3,2326
|
windSpeedTrend2,2326
|
||||||
windSpeedTrend4,2327
|
windSpeedTrend3,2327
|
||||||
windUnits,2328
|
windSpeedTrend4,2328
|
||||||
windUnitsTrend1,2329
|
windUnits,2329
|
||||||
windUnitsTrend2,2330
|
windUnitsTrend1,2330
|
||||||
windUnitsTrend3,2331
|
windUnitsTrend2,2331
|
||||||
windUnitsTrend4,2332
|
windUnitsTrend3,2332
|
||||||
windVariableDirection,2333
|
windUnitsTrend4,2333
|
||||||
windVariableDirectionTrend1,2334
|
windVariableDirection,2334
|
||||||
windVariableDirectionTrend2,2335
|
windVariableDirectionTrend1,2335
|
||||||
windVariableDirectionTrend3,2336
|
windVariableDirectionTrend2,2336
|
||||||
windVariableDirectionTrend4,2337
|
windVariableDirectionTrend3,2337
|
||||||
wrongPadding,2338
|
windVariableDirectionTrend4,2338
|
||||||
xCoordinateOfOriginOfSectorImage,2339
|
wrongPadding,2339
|
||||||
xCoordinateOfSubSatellitePoint,2340
|
xCoordinateOfOriginOfSectorImage,2340
|
||||||
xDirectionGridLength,2341
|
xCoordinateOfSubSatellitePoint,2341
|
||||||
xDirectionGridLengthInMetres,2342
|
xDirectionGridLength,2342
|
||||||
xDirectionGridLengthInMillimetres,2343
|
xDirectionGridLengthInMetres,2343
|
||||||
xFirst,2344
|
xDirectionGridLengthInMillimetres,2344
|
||||||
xLast,2345
|
xFirst,2345
|
||||||
yCoordinateOfOriginOfSectorImage,2346
|
xLast,2346
|
||||||
yCoordinateOfSubSatellitePoint,2347
|
yCoordinateOfOriginOfSectorImage,2347
|
||||||
yDirectionGridLength,2348
|
yCoordinateOfSubSatellitePoint,2348
|
||||||
yDirectionGridLengthInMetres,2349
|
yDirectionGridLength,2349
|
||||||
yDirectionGridLengthInMillimetres,2350
|
yDirectionGridLengthInMetres,2350
|
||||||
yFirst,2351
|
yDirectionGridLengthInMillimetres,2351
|
||||||
yLast,2352
|
yFirst,2352
|
||||||
year,2353
|
yLast,2353
|
||||||
yearOfAnalysis,2354
|
year,2354
|
||||||
yearOfCentury,2355
|
yearOfAnalysis,2355
|
||||||
yearOfEndOfOverallTimeInterval,2356
|
yearOfCentury,2356
|
||||||
yearOfForecast,2357
|
yearOfEndOfOverallTimeInterval,2357
|
||||||
yearOfModelVersion,2358
|
yearOfForecast,2358
|
||||||
yearOfReference,2359
|
yearOfModelVersion,2359
|
||||||
zero,2360
|
yearOfReference,2360
|
||||||
zeros,2361
|
zero,2361
|
||||||
|
zeros,2362
|
||||||
|
|
Loading…
Reference in New Issue