示例#1
0
def load(h):

    h.add(_.Transient('numberOfValues', ((_.Get('J') + 1) * (_.Get('J') + 2))))
    h.add(_.Transient('numberOfPackedValues', (_.Get('numberOfValues') - 1)))
    h.add(_.Transient('numberOfValues', ((_.Get('J') + 1) * (_.Get('J') + 2))))
    h.add(_.Transient('numberOfPackedValues', (_.Get('numberOfValues') - 1)))
    h.add(
        _.Data_g2simple_packing('codedValues', _.Get('section7Length'),
                                _.Get('offsetBeforeData'),
                                _.Get('offsetSection7'), _.Get('unitsFactor'),
                                _.Get('unitsBias'), _.Get('changingPrecision'),
                                _.Get('numberOfPackedValues'),
                                _.Get('bitsPerValue'), _.Get('referenceValue'),
                                _.Get('binaryScaleFactor'),
                                _.Get('decimalScaleFactor'),
                                _.Get('optimizeScaleFactor')))
    h.add(
        _.Data_g2shsimple_packing('values', _.Get('codedValues'),
                                  _.Get('realPartOf00'),
                                  _.Get('numberOfValues')))
    h.add(
        _.Simple_packing_error('packingError', _.Get('bitsPerValue'),
                               _.Get('binaryScaleFactor'),
                               _.Get('decimalScaleFactor'),
                               _.Get('referenceValue'), _.Get('ieee')))
    h.add(
        _.Simple_packing_error('unpackedError', _.Get('zero'),
                               _.Get('binaryScaleFactor'),
                               _.Get('decimalScaleFactor'),
                               _.Get('referenceValue'), _.Get('ieee')))
    h.alias('x.packedValues', 'values')
    _.Template('common/statistics_spectral.def').load(h)
示例#2
0
def load(h):

    h.add(
        _.Data_ccsds_packing('codedValues', _.Get('section7Length'),
                             _.Get('offsetBeforeData'),
                             _.Get('offsetSection7'), _.Get('numberOfValues'),
                             _.Get('referenceValue'),
                             _.Get('binaryScaleFactor'),
                             _.Get('decimalScaleFactor'),
                             _.Get('bitsPerValue'),
                             _.Get('numberOfDataPoints'), _.Get('ccsdsFlags'),
                             _.Get('ccsdsBlockSize'), _.Get('ccsdsRsi')))
    h.add(
        _.Data_apply_bitmap('values', _.Get('codedValues'), _.Get('bitmap'),
                            _.Get('missingValue'), _.Get('binaryScaleFactor'),
                            _.Get('numberOfDataPoints'),
                            _.Get('numberOfValues')))
    h.add(
        _.Simple_packing_error('packingError', _.Get('bitsPerValue'),
                               _.Get('binaryScaleFactor'),
                               _.Get('decimalScaleFactor'),
                               _.Get('referenceValue'), _.Get('ieee')))
    h.add(
        _.Simple_packing_error('unpackedError', _.Get('zero'),
                               _.Get('binaryScaleFactor'),
                               _.Get('decimalScaleFactor'),
                               _.Get('referenceValue'), _.Get('ieee')))
    h.alias('data.packedValues', 'codedValues')
    _.Template('common/statistics_grid.def').load(h)
示例#3
0
def load(h):

    h.add(_.Unsigned('bitsPerValue', 1))
    h.alias('numberOfBitsContainingEachPackedValue', 'bitsPerValue')
    h.add(_.Constant('PUnset', -32767))
    h.add(_.Unsigned('N', 2))
    h.add(_.Signed('P', 2))
    h.add(_.Unsigned('JS', 1))
    h.add(_.Unsigned('KS', 1))
    h.add(_.Unsigned('MS', 1))
    h.alias('subSetJ', 'JS')
    h.alias('subSetK', 'KS')
    h.alias('subSetM', 'MS')
    h.add(_.Constant('GRIBEXShBugPresent', 1))
    h.add(_.Transient('computeLaplacianOperator', 0))
    h.add(
        _.Scale('laplacianOperator', _.Get('P'), _.Get('oneConstant'),
                _.Get('grib1divider'), _.Get('truncateLaplacian')))
    h.alias('data.laplacianOperator', 'laplacianOperator')
    h.add(
        _.Evaluate(
            'laplacianOperatorIsSet',
            _.And((_.Get('P') != _.Get('PUnset')),
                  _.Not(_.Get('computeLaplacianOperator')))))

    if h.get_l('localUsePresent'):

        if h._changed('localDefinitionNumber'):
            h.add(_.Transient('TS', 0))
            h.add(
                _.Spectral_truncation('TScalc', _.Get('JS'), _.Get('KS'),
                                      _.Get('MS'), _.Get('TS')))
            h.add(
                _.Octect_number('Nassigned', _.Get('N'),
                                (4 * _.Get('TScalc'))))

    h.add(_.Position('offsetBeforeData'))
    h.add(
        _.Data_g1complex_packing('values', _.Get('section4Length'),
                                 _.Get('offsetBeforeData'),
                                 _.Get('offsetSection4'), _.Get('unitsFactor'),
                                 _.Get('unitsBias'),
                                 _.Get('changingPrecision'),
                                 _.Get('numberOfCodedValues'),
                                 _.Get('bitsPerValue'),
                                 _.Get('referenceValue'),
                                 _.Get('binaryScaleFactor'),
                                 _.Get('decimalScaleFactor'),
                                 _.Get('optimizeScaleFactor'),
                                 _.Get('GRIBEXShBugPresent'),
                                 _.Get('ieeeFloats'),
                                 _.Get('laplacianOperatorIsSet'),
                                 _.Get('laplacianOperator'), _.Get('subSetJ'),
                                 _.Get('subSetK'), _.Get('subSetM'),
                                 _.Get('pentagonalResolutionParameterJ'),
                                 _.Get('pentagonalResolutionParameterK'),
                                 _.Get('pentagonalResolutionParameterM'),
                                 _.Get('halfByte'), _.Get('N'),
                                 _.Get('packingType'), _.Get('spectral_ieee'),
                                 _.Get('precision')))
    h.add(
        _.Data_sh_packed('packedValues', _.Get('section4Length'),
                         _.Get('offsetBeforeData'), _.Get('offsetSection4'),
                         _.Get('unitsFactor'), _.Get('unitsBias'),
                         _.Get('changingPrecision'),
                         _.Get('numberOfCodedValues'), _.Get('bitsPerValue'),
                         _.Get('referenceValue'), _.Get('binaryScaleFactor'),
                         _.Get('decimalScaleFactor'),
                         _.Get('optimizeScaleFactor'),
                         _.Get('GRIBEXShBugPresent'), _.Get('ieeeFloats'),
                         _.Get('laplacianOperatorIsSet'),
                         _.Get('laplacianOperator'), _.Get('subSetJ'),
                         _.Get('subSetK'), _.Get('subSetM'),
                         _.Get('pentagonalResolutionParameterJ'),
                         _.Get('pentagonalResolutionParameterK'),
                         _.Get('pentagonalResolutionParameterM')))
    h.alias('data.packedValues', 'packedValues')
    h.add(
        _.Data_sh_unpacked('unpackedValues', _.Get('section4Length'),
                           _.Get('offsetBeforeData'), _.Get('offsetSection4'),
                           _.Get('unitsFactor'), _.Get('unitsBias'),
                           _.Get('changingPrecision'),
                           _.Get('numberOfCodedValues'), _.Get('bitsPerValue'),
                           _.Get('referenceValue'), _.Get('binaryScaleFactor'),
                           _.Get('decimalScaleFactor'),
                           _.Get('optimizeScaleFactor'),
                           _.Get('GRIBEXShBugPresent'), _.Get('ieeeFloats'),
                           _.Get('laplacianOperatorIsSet'),
                           _.Get('laplacianOperator'), _.Get('subSetJ'),
                           _.Get('subSetK'), _.Get('subSetM'),
                           _.Get('pentagonalResolutionParameterJ'),
                           _.Get('pentagonalResolutionParameterK'),
                           _.Get('pentagonalResolutionParameterM')))
    h.alias('data.unpackedValues', 'unpackedValues')
    h.add(
        _.Simple_packing_error('packingError', _.Get('bitsPerValue'),
                               _.Get('binaryScaleFactor'),
                               _.Get('decimalScaleFactor'),
                               _.Get('referenceValue'), _.Get('ibm')))
    h.add(
        _.Simple_packing_error('unpackedError', _.Get('zero'),
                               _.Get('binaryScaleFactor'),
                               _.Get('decimalScaleFactor'),
                               _.Get('referenceValue'), _.Get('ibm')))
    h.add(
        _.G1number_of_coded_values_sh_complex('numberOfCodedValues',
                                              _.Get('bitsPerValue'),
                                              _.Get('offsetBeforeData'),
                                              _.Get('offsetAfterData'),
                                              _.Get('halfByte'),
                                              _.Get('numberOfValues'),
                                              _.Get('subSetJ'),
                                              _.Get('subSetK'),
                                              _.Get('subSetM')))
    _.Template('common/statistics_spectral.def').load(h)
示例#4
0
def load(h):

    h.add(_.Unsigned('N2', 2))
    h.add(_.Unsigned('codedNumberOfGroups', 2))
    h.add(_.Unsigned('numberOfSecondOrderPackedValues', 2))
    h.add(_.Unsigned('extraValues', 1))
    h.add(
        _.Evaluate('numberOfGroups', (_.Get('codedNumberOfGroups') +
                                      (65536 * _.Get('extraValues')))))
    h.add(_.Unsigned('widthOfWidths', 1))
    h.add(_.Unsigned('widthOfLengths', 1))
    h.add(_.Unsigned('NL', 2))

    if h.get_l('orderOfSPD'):
        h.add(_.Unsigned('widthOfSPD', 1))
        h.add(_.Spd('SPD', _.Get('widthOfSPD'), _.Get('orderOfSPD')))

    h.add(
        _.Unsigned_bits('groupWidths', _.Get('widthOfWidths'),
                        _.Get('numberOfGroups')))
    h.add(
        _.Unsigned_bits('groupLengths', _.Get('widthOfLengths'),
                        _.Get('numberOfGroups')))
    h.add(
        _.Unsigned_bits('firstOrderValues', _.Get('widthOfFirstOrderValues'),
                        _.Get('numberOfGroups')))
    h.add(_.Sum('countOfGroupLengths', _.Get('groupLengths')))
    h.add(
        _.Transient('numberOfCodedValues',
                    (_.Get('countOfGroupLengths') + _.Get('orderOfSPD'))))
    h.add(
        _.Second_order_bits_per_value('bitsPerValue', _.Get('codedValues'),
                                      _.Get('binaryScaleFactor'),
                                      _.Get('decimalScaleFactor')))
    h.add(_.Position('offsetBeforeData'))

    if h.get_l('bitmapPresent'):
        h.add(
            _.Data_g1second_order_general_extended_packing(
                'codedValues', _.Get('section4Length'),
                _.Get('offsetBeforeData'), _.Get('offsetSection4'),
                _.Get('unitsFactor'), _.Get('unitsBias'),
                _.Get('changingPrecision'), _.Get('numberOfCodedValues'),
                _.Get('bitsPerValue'), _.Get('referenceValue'),
                _.Get('binaryScaleFactor'), _.Get('decimalScaleFactor'),
                _.Get('optimizeScaleFactor'), _.Get('halfByte'),
                _.Get('packingType'), _.Get('grid_ieee'), _.Get('precision'),
                _.Get('widthOfFirstOrderValues'), _.Get('firstOrderValues'),
                _.Get('N1'), _.Get('N2'), _.Get('numberOfGroups'),
                _.Get('codedNumberOfGroups'),
                _.Get('numberOfSecondOrderPackedValues'), _.Get('extraValues'),
                _.Get('groupWidths'), _.Get('widthOfWidths'),
                _.Get('groupLengths'), _.Get('widthOfLengths'), _.Get('NL'),
                _.Get('SPD'), _.Get('widthOfSPD'), _.Get('orderOfSPD'),
                _.Get('numberOfPoints')))
        h.alias('data.packedValues', 'codedValues')

        if h.get_l('boustrophedonicOrdering'):

            if h.get_l('GRIBEX_boustrophedonic'):
                h.add(
                    _.Data_apply_boustrophedonic_bitmap(
                        'preBitmapValues', _.Get('codedValues'),
                        _.Get('bitmap'), _.Get('missingValue'),
                        _.Get('binaryScaleFactor'), _.Get('numberOfRows'),
                        _.Get('numberOfColumns'), _.Get('numberOfPoints')))
            else:
                h.add(
                    _.Data_apply_bitmap('preBitmapValues',
                                        _.Get('codedValues'), _.Get('bitmap'),
                                        _.Get('missingValue'),
                                        _.Get('binaryScaleFactor')))

            h.add(
                _.Data_apply_boustrophedonic('values',
                                             _.Get('preBitmapValues'),
                                             _.Get('numberOfRows'),
                                             _.Get('numberOfColumns'),
                                             _.Get('numberOfPoints'),
                                             _.Get('pl')))
        else:
            h.add(
                _.Data_apply_bitmap('values', _.Get('codedValues'),
                                    _.Get('bitmap'), _.Get('missingValue'),
                                    _.Get('binaryScaleFactor')))

    else:

        if h.get_l('boustrophedonicOrdering'):
            h.add(
                _.Data_g1second_order_general_extended_packing(
                    'codedValues', _.Get('section4Length'),
                    _.Get('offsetBeforeData'), _.Get('offsetSection4'),
                    _.Get('unitsFactor'), _.Get('unitsBias'),
                    _.Get('changingPrecision'), _.Get('numberOfCodedValues'),
                    _.Get('bitsPerValue'), _.Get('referenceValue'),
                    _.Get('binaryScaleFactor'), _.Get('decimalScaleFactor'),
                    _.Get('optimizeScaleFactor'), _.Get('halfByte'),
                    _.Get('packingType'), _.Get('grid_ieee'),
                    _.Get('precision'), _.Get('widthOfFirstOrderValues'),
                    _.Get('firstOrderValues'), _.Get('N1'), _.Get('N2'),
                    _.Get('numberOfGroups'), _.Get('codedNumberOfGroups'),
                    _.Get('numberOfSecondOrderPackedValues'),
                    _.Get('extraValues'), _.Get('groupWidths'),
                    _.Get('widthOfWidths'), _.Get('groupLengths'),
                    _.Get('widthOfLengths'), _.Get('NL'), _.Get('SPD'),
                    _.Get('widthOfSPD'), _.Get('orderOfSPD'),
                    _.Get('numberOfPoints')))
            h.add(
                _.Data_apply_boustrophedonic('values', _.Get('codedValues'),
                                             _.Get('numberOfRows'),
                                             _.Get('numberOfColumns'),
                                             _.Get('numberOfPoints'),
                                             _.Get('pl')))
        else:
            h.add(
                _.Data_g1second_order_general_extended_packing(
                    'values', _.Get('section4Length'),
                    _.Get('offsetBeforeData'), _.Get('offsetSection4'),
                    _.Get('unitsFactor'), _.Get('unitsBias'),
                    _.Get('changingPrecision'), _.Get('numberOfCodedValues'),
                    _.Get('bitsPerValue'), _.Get('referenceValue'),
                    _.Get('binaryScaleFactor'), _.Get('decimalScaleFactor'),
                    _.Get('optimizeScaleFactor'), _.Get('halfByte'),
                    _.Get('packingType'), _.Get('grid_ieee'),
                    _.Get('precision'), _.Get('widthOfFirstOrderValues'),
                    _.Get('firstOrderValues'), _.Get('N1'), _.Get('N2'),
                    _.Get('numberOfGroups'), _.Get('codedNumberOfGroups'),
                    _.Get('numberOfSecondOrderPackedValues'),
                    _.Get('extraValues'), _.Get('groupWidths'),
                    _.Get('widthOfWidths'), _.Get('groupLengths'),
                    _.Get('widthOfLengths'), _.Get('NL'), _.Get('SPD'),
                    _.Get('widthOfSPD'), _.Get('orderOfSPD'),
                    _.Get('numberOfPoints')))
            h.alias('codedValues', 'values')

        h.alias('data.packedValues', 'values')

    h.add(
        _.Simple_packing_error('packingError', _.Get('bitsPerValue'),
                               _.Get('binaryScaleFactor'),
                               _.Get('decimalScaleFactor'),
                               _.Get('referenceValue'), _.Get('ibm')))
    _.Template('common/statistics_grid.def').load(h)
示例#5
0
def load(h):

    h.add(_.Constant('GRIBEXShBugPresent', 0))
    h.add(_.Constant('sphericalHarmonics', 1))
    h.add(_.Constant('complexPacking', 1))
    h.add(
        _.Data_g2complex_packing('codedValues', _.Get('section7Length'),
                                 _.Get('offsetBeforeData'),
                                 _.Get('offsetSection7'), _.Get('unitsFactor'),
                                 _.Get('unitsBias'),
                                 _.Get('changingPrecision'),
                                 _.Get('numberOfValues'),
                                 _.Get('bitsPerValue'),
                                 _.Get('referenceValue'),
                                 _.Get('binaryScaleFactor'),
                                 _.Get('decimalScaleFactor'),
                                 _.Get('optimizeScaleFactor'),
                                 _.Get('GRIBEXShBugPresent'),
                                 _.Get('unpackedSubsetPrecision'),
                                 _.Get('laplacianOperatorIsSet'),
                                 _.Get('laplacianOperator'), _.Get('J'),
                                 _.Get('K'), _.Get('M'),
                                 _.Get('J'), _.Get('J'), _.Get('J'),
                                 _.Get('numberOfValues')))
    h.add(
        _.Data_sh_packed('packedValues', _.Get('section7Length'),
                         _.Get('offsetBeforeData'), _.Get('offsetSection7'),
                         _.Get('unitsFactor'), _.Get('unitsBias'),
                         _.Get('changingPrecision'), _.Get('numberOfValues'),
                         _.Get('bitsPerValue'), _.Get('referenceValue'),
                         _.Get('binaryScaleFactor'),
                         _.Get('decimalScaleFactor'),
                         _.Get('optimizeScaleFactor'),
                         _.Get('GRIBEXShBugPresent'),
                         _.Get('unpackedSubsetPrecision'),
                         _.Get('laplacianOperatorIsSet'),
                         _.Get('laplacianOperator'), _.Get('J'), _.Get('K'),
                         _.Get('M'), _.Get('J'), _.Get('J'), _.Get('J')))
    h.alias('data.packedValues', 'packedValues')
    h.add(
        _.Data_sh_unpacked('unpackedValues', _.Get('section7Length'),
                           _.Get('offsetBeforeData'), _.Get('offsetSection7'),
                           _.Get('unitsFactor'), _.Get('unitsBias'),
                           _.Get('changingPrecision'), _.Get('numberOfValues'),
                           _.Get('bitsPerValue'), _.Get('referenceValue'),
                           _.Get('binaryScaleFactor'),
                           _.Get('decimalScaleFactor'),
                           _.Get('optimizeScaleFactor'),
                           _.Get('GRIBEXShBugPresent'),
                           _.Get('unpackedSubsetPrecision'),
                           _.Get('laplacianOperatorIsSet'),
                           _.Get('laplacianOperator'), _.Get('J'), _.Get('K'),
                           _.Get('M'), _.Get('J'), _.Get('K'), _.Get('M')))
    h.alias('data.unpackedValues', 'unpackedValues')
    h.add(
        _.Simple_packing_error('packingError', _.Get('bitsPerValue'),
                               _.Get('binaryScaleFactor'),
                               _.Get('decimalScaleFactor'),
                               _.Get('referenceValue'), _.Get('ieee')))
    h.add(
        _.Simple_packing_error('unpackedError', _.Get('zero'),
                               _.Get('binaryScaleFactor'),
                               _.Get('decimalScaleFactor'),
                               _.Get('referenceValue'), _.Get('ieee')))
    h.add(
        _.Data_apply_bitmap('values', _.Get('codedValues'), _.Get('bitmap'),
                            _.Get('missingValue'), _.Get('binaryScaleFactor'),
                            _.Get('numberOfDataPoints'),
                            _.Get('numberOfValues')))
    _.Template('common/statistics_spectral.def').load(h)
示例#6
0
def load(h):

    h.add(_.Unsigned('N2', 2))
    h.add(_.Unsigned('codedNumberOfFirstOrderPackedValues', 2))
    h.add(_.Unsigned('numberOfSecondOrderPackedValues', 2))
    h.add(_.Unsigned('extraValues', 1))
    h.add(
        _.Evaluate('numberOfGroups',
                   (_.Get('codedNumberOfFirstOrderPackedValues') +
                    (65536 * _.Get('extraValues')))))
    h.add(_.Unsigned('groupWidths', 1, _.Get('numberOfGroups')))
    h.add(
        _.Second_order_bits_per_value('bitsPerValue', _.Get('values'),
                                      _.Get('binaryScaleFactor'),
                                      _.Get('decimalScaleFactor')))
    h.add(_.Position('offsetBeforeData'))

    if h.get_l('bitmapPresent'):
        h.add(
            _.Data_g1second_order_row_by_row_packing(
                'codedValues', _.Get('section4Length'),
                _.Get('offsetBeforeData'), _.Get('offsetSection4'),
                _.Get('unitsFactor'), _.Get('unitsBias'),
                _.Get('changingPrecision'), _.Get('numberOfCodedValues'),
                _.Get('bitsPerValue'), _.Get('referenceValue'),
                _.Get('binaryScaleFactor'), _.Get('decimalScaleFactor'),
                _.Get('optimizeScaleFactor'), _.Get('halfByte'),
                _.Get('packingType'), _.Get('grid_ieee'), _.Get('precision'),
                _.Get('widthOfFirstOrderValues'), _.Get('N1'), _.Get('N2'),
                _.Get('numberOfGroups'),
                _.Get('numberOfSecondOrderPackedValues'), _.Get('extraValues'),
                _.Get('Ni'), _.Get('Nj'), _.Get('pl'),
                _.Get('jPointsAreConsecutive'), _.Get('groupWidths'),
                _.Get('bitmap')))
        h.alias('data.packedValues', 'codedValues')
        h.add(
            _.Data_apply_bitmap('values', _.Get('codedValues'),
                                _.Get('bitmap'), _.Get('missingValue'),
                                _.Get('binaryScaleFactor')))
    else:
        h.add(
            _.Data_g1second_order_row_by_row_packing(
                'values', _.Get('section4Length'), _.Get('offsetBeforeData'),
                _.Get('offsetSection4'), _.Get('unitsFactor'),
                _.Get('unitsBias'), _.Get('changingPrecision'),
                _.Get('numberOfCodedValues'), _.Get('bitsPerValue'),
                _.Get('referenceValue'), _.Get('binaryScaleFactor'),
                _.Get('decimalScaleFactor'), _.Get('optimizeScaleFactor'),
                _.Get('halfByte'), _.Get('packingType'), _.Get('grid_ieee'),
                _.Get('precision'), _.Get('widthOfFirstOrderValues'),
                _.Get('N1'), _.Get('N2'), _.Get('numberOfGroups'),
                _.Get('numberOfSecondOrderPackedValues'), _.Get('extraValues'),
                _.Get('Ni'), _.Get('Nj'), _.Get('pl'),
                _.Get('jPointsAreConsecutive'), _.Get('groupWidths')))
        h.alias('data.packedValues', 'values')

    h.add(
        _.Transient('numberOfCodedValues',
                    _.Get('numberOfSecondOrderPackedValues')))
    h.add(
        _.Simple_packing_error('packingError', _.Get('bitsPerValue'),
                               _.Get('binaryScaleFactor'),
                               _.Get('decimalScaleFactor'),
                               _.Get('referenceValue'), _.Get('ibm')))
    _.Template('common/statistics_grid.def').load(h)
def load(h):

    h.add(_.Constant('constantFieldHalfByte', 0))
    h.add(_.Unsigned('bitsPerValue', 1))
    h.alias('numberOfBitsContainingEachPackedValue', 'bitsPerValue')
    h.add(_.Unsigned('octetAtWichPackedDataBegins', 2))
    h.add(_.Codeflag('extendedFlag', 1, "grib1/11-2.table"))
    h.add(_.Bit('matrixOfValues', _.Get('extendedFlag'), 3))
    h.add(_.Bit('secondaryBitmapPresent', _.Get('extendedFlag'), 2))
    h.add(_.Bit('secondOrderOfDifferentWidth', _.Get('extendedFlag'), 1))
    h.alias('secondOrderValuesDifferentWidths', 'secondOrderOfDifferentWidth')
    h.alias('secondaryBitMap', 'secondaryBitmapPresent')
    h.add(_.Unsigned('NR', 2))
    h.alias('firstDimension', 'NR')
    h.add(_.Unsigned('NC', 2))
    h.alias('secondDimension', 'NC')
    h.add(_.Codeflag('coordinateFlag1', 1, "grib1/12.table"))
    h.alias('firstDimensionCoordinateValueDefinition', 'coordinateFlag1')
    h.add(_.Unsigned('NC1', 1))
    h.alias(
        'numberOfCoefficientsOrValuesUsedToSpecifyFirstDimensionCoordinateFunction',
        'NC1')
    h.add(_.Codeflag('coordinateFlag2', 1, "grib1/12.table"))
    h.alias('secondDimensionCoordinateValueDefinition', 'coordinateFlag2')
    h.add(_.Unsigned('NC2', 1))
    h.alias(
        'numberOfCoefficientsOrValuesUsedToSpecifySecondDimensionCoordinateFunction',
        'NC2')
    h.add(_.Codeflag('physicalFlag1', 1, "grib1/13.table"))
    h.alias('firstDimensionPhysicalSignificance', 'physicalFlag1')
    h.add(_.Codeflag('physicalFlag2', 1, "grib1/13.table"))
    h.alias('secondDimensionPhysicalSignificance', 'physicalFlag2')
    h.add(_.Ibmfloat('coefsFirst', 4, _.Get('NC1')))
    h.add(_.Ibmfloat('coefsSecond', 4, _.Get('NC2')))
    h.alias('data.coefsFirst', 'coefsFirst')
    h.alias('data.coefsSecond', 'coefsSecond')
    h.add(_.Position('offsetBeforeData'))

    if (h.get_l('matrixOfValues') == 0):
        h.add(_.Constant('matrixBitmapsPresent', 0))
        h.add(_.Position('offsetBeforeData'))

        if h.get_l('bitmapPresent'):
            h.add(_.Constant('bitMapIndicator', 0))
            h.add(
                _.Data_g1simple_packing('codedValues', _.Get('section4Length'),
                                        _.Get('offsetBeforeData'),
                                        _.Get('offsetSection4'),
                                        _.Get('unitsFactor'),
                                        _.Get('unitsBias'),
                                        _.Get('changingPrecision'),
                                        _.Get('numberOfCodedValues'),
                                        _.Get('bitsPerValue'),
                                        _.Get('referenceValue'),
                                        _.Get('binaryScaleFactor'),
                                        _.Get('decimalScaleFactor'),
                                        _.Get('optimizeScaleFactor'),
                                        _.Get('halfByte'),
                                        _.Get('packingType'),
                                        _.Get('grid_ieee')))
            h.alias('data.packedValues', 'codedValues')
            h.add(
                _.Data_apply_bitmap('values', _.Get('codedValues'),
                                    _.Get('bitmap'), _.Get('missingValue'),
                                    _.Get('binaryScaleFactor')))
        else:
            h.add(_.Constant('bitMapIndicator', 255))
            h.add(
                _.Data_g1simple_packing('values', _.Get('section4Length'),
                                        _.Get('offsetBeforeData'),
                                        _.Get('offsetSection4'),
                                        _.Get('unitsFactor'),
                                        _.Get('unitsBias'),
                                        _.Get('changingPrecision'),
                                        _.Get('numberOfCodedValues'),
                                        _.Get('bitsPerValue'),
                                        _.Get('referenceValue'),
                                        _.Get('binaryScaleFactor'),
                                        _.Get('decimalScaleFactor'),
                                        _.Get('optimizeScaleFactor'),
                                        _.Get('halfByte')))
            h.alias('data.packedValues', 'values')

    else:
        h.add(_.Constant('matrixBitmapsPresent', 1))
        h.add(_.Constant('bitMapIndicator', 0))
        h.add(_.Constant('datumSize', (_.Get('NC') * _.Get('NR'))))
        h.add(
            _.Transient(
                'secondaryBitmapsCount',
                (_.Get('octetAtWichPackedDataBegins') * _.Get('datumSize'))))
        h.add(
            _.Transient('secondaryBitmapsSize',
                        (_.Get('secondaryBitmapsCount') / 8)))
        h.add(_.Position('offsetBBitmap'))
        h.add(
            _.G1bitmap('secondaryBitmaps', _.Get('dummy'),
                       _.Get('missingValue'), _.Get('offsetBBitmap'),
                       _.Get('secondaryBitmapsSize'), _.Get('dummy')))
        h.add(_.Position('offsetBeforeData'))
        h.add(
            _.Data_g1simple_packing('codedValues', _.Get('section4Length'),
                                    _.Get('offsetBeforeData'),
                                    _.Get('offsetSection4'),
                                    _.Get('unitsFactor'), _.Get('unitsBias'),
                                    _.Get('changingPrecision'),
                                    _.Get('numberOfCodedValues'),
                                    _.Get('bitsPerValue'),
                                    _.Get('referenceValue'),
                                    _.Get('binaryScaleFactor'),
                                    _.Get('decimalScaleFactor'),
                                    _.Get('optimizeScaleFactor'),
                                    _.Get('halfByte')))
        h.alias('data.packedValues', 'codedValues')
        h.add(_.Constant('expandBy', (_.Get('NC') * _.Get('NR'))))
        h.add(
            _.Data_g1secondary_bitmap('secondaryBitmap', _.Get('bitmap'),
                                      _.Get('secondaryBitmaps'),
                                      _.Get('missingValue'), _.Get('expandBy'),
                                      _.Get('octetAtWichPackedDataBegins')))
        h.add(
            _.Data_apply_bitmap('values', _.Get('codedValues'),
                                _.Get('secondaryBitmap'),
                                _.Get('missingValue'),
                                _.Get('binaryScaleFactor')))

    h.add(
        _.Simple_packing_error('packingError', _.Get('bitsPerValue'),
                               _.Get('binaryScaleFactor'),
                               _.Get('decimalScaleFactor'),
                               _.Get('referenceValue'), _.Get('ibm')))
    h.add(
        _.Number_of_coded_values('numberOfCodedValues', _.Get('bitsPerValue'),
                                 _.Get('offsetBeforeData'),
                                 _.Get('offsetAfterData'), _.Get('halfByte'),
                                 _.Get('numberOfValues')))
    _.Template('common/statistics_grid.def').load(h)
示例#8
0
def load(h):

    h.add(_.Unsigned('bitsPerValue', 1))
    h.alias('numberOfBitsContainingEachPackedValue', 'bitsPerValue')
    h.add(_.Constant('constantFieldHalfByte', 8))
    h.add(_.Position('offsetBeforeData'))

    if (h.get_l('bitmapPresent') or not (h.get_l('GDSPresent'))):
        h.add(_.Constant('bitMapIndicator', 0))
        h.add(
            _.Data_g1simple_packing('codedValues', _.Get('section4Length'),
                                    _.Get('offsetBeforeData'),
                                    _.Get('offsetSection4'),
                                    _.Get('unitsFactor'), _.Get('unitsBias'),
                                    _.Get('changingPrecision'),
                                    _.Get('numberOfCodedValues'),
                                    _.Get('bitsPerValue'),
                                    _.Get('referenceValue'),
                                    _.Get('binaryScaleFactor'),
                                    _.Get('decimalScaleFactor'),
                                    _.Get('optimizeScaleFactor'),
                                    _.Get('halfByte'), _.Get('packingType'),
                                    _.Get('grid_ieee'), _.Get('precision')))
        h.add(
            _.Data_apply_bitmap('values', _.Get('codedValues'),
                                _.Get('bitmap'), _.Get('missingValue'),
                                _.Get('binaryScaleFactor')))
        h.alias('data.packedValues', 'codedValues')
    else:
        h.add(_.Constant('bitMapIndicator', 255))
        h.add(
            _.Data_g1simple_packing('values', _.Get('section4Length'),
                                    _.Get('offsetBeforeData'),
                                    _.Get('offsetSection4'),
                                    _.Get('unitsFactor'), _.Get('unitsBias'),
                                    _.Get('changingPrecision'),
                                    _.Get('numberOfCodedValues'),
                                    _.Get('bitsPerValue'),
                                    _.Get('referenceValue'),
                                    _.Get('binaryScaleFactor'),
                                    _.Get('decimalScaleFactor'),
                                    _.Get('optimizeScaleFactor'),
                                    _.Get('halfByte'), _.Get('packingType'),
                                    _.Get('grid_ieee'), _.Get('precision')))
        h.alias('data.packedValues', 'values')

    h.add(
        _.Number_of_coded_values('numberOfCodedValues', _.Get('bitsPerValue'),
                                 _.Get('offsetBeforeData'),
                                 _.Get('offsetAfterData'), _.Get('halfByte'),
                                 _.Get('numberOfValues')))
    h.add(
        _.Simple_packing_error('packingError', _.Get('bitsPerValue'),
                               _.Get('binaryScaleFactor'),
                               _.Get('decimalScaleFactor'),
                               _.Get('referenceValue'), _.Get('ibm')))
    h.add(
        _.Simple_packing_error('unpackedError', _.Get('zero'),
                               _.Get('binaryScaleFactor'),
                               _.Get('decimalScaleFactor'),
                               _.Get('referenceValue'), _.Get('ieee')))
    _.Template('common/statistics_grid.def').load(h)
示例#9
0
def load(h):

    if h.get_l('bitsPerValue'):
        h.add(
            _.Unsigned_bits('groupWidths', _.Get('widthOfWidths'),
                            _.Get('numberOfGroups')))
        h.add(
            _.Unsigned_bits('groupLengths', _.Get('widthOfLengths'),
                            _.Get('numberOfGroups')))
        h.add(
            _.Unsigned_bits('firstOrderValues',
                            _.Get('widthOfFirstOrderValues'),
                            _.Get('numberOfGroups')))
        h.add(_.Sum('countOfGroupLengths', _.Get('groupLengths')))

    h.add(_.Transient('halfByte', 0))
    h.add(_.Position('offsetBeforeData'))

    if h.get_l('bitmapPresent'):
        h.add(
            _.Data_g1second_order_general_extended_packing(
                'codedValues', _.Get('section7Length'),
                _.Get('offsetBeforeData'), _.Get('offsetSection7'),
                _.Get('unitsFactor'), _.Get('unitsBias'),
                _.Get('changingPrecision'), _.Get('numberOfCodedValues'),
                _.Get('bitsPerValue'), _.Get('referenceValue'),
                _.Get('binaryScaleFactor'), _.Get('decimalScaleFactor'),
                _.Get('optimizeScaleFactor'), _.Get('halfByte'),
                _.Get('packingType'), _.Get('grid_ieee'), _.Get('precision'),
                _.Get('widthOfFirstOrderValues'), _.Get('firstOrderValues'),
                _.Get('N1'), _.Get('N2'), _.Get('numberOfGroups'),
                _.Get('numberOfGroups'),
                _.Get('numberOfSecondOrderPackedValues'),
                _.Get('keyNotPresent'), _.Get('groupWidths'),
                _.Get('widthOfWidths'), _.Get('groupLengths'),
                _.Get('widthOfLengths'), _.Get('NL'), _.Get('SPD'),
                _.Get('widthOfSPD'), _.Get('orderOfSPD'),
                _.Get('numberOfPoints')))
        h.alias('data.packedValues', 'codedValues')
        h.add(
            _.Data_apply_bitmap('values', _.Get('codedValues'),
                                _.Get('bitmap'), _.Get('missingValue'),
                                _.Get('binaryScaleFactor')))
    else:
        h.add(
            _.Data_g1second_order_general_extended_packing(
                'values', _.Get('section7Length'), _.Get('offsetBeforeData'),
                _.Get('offsetSection7'), _.Get('unitsFactor'),
                _.Get('unitsBias'), _.Get('changingPrecision'),
                _.Get('numberOfCodedValues'), _.Get('bitsPerValue'),
                _.Get('referenceValue'), _.Get('binaryScaleFactor'),
                _.Get('decimalScaleFactor'), _.Get('optimizeScaleFactor'),
                _.Get('halfByte'), _.Get('packingType'), _.Get('grid_ieee'),
                _.Get('precision'), _.Get('widthOfFirstOrderValues'),
                _.Get('firstOrderValues'), _.Get('N1'), _.Get('N2'),
                _.Get('numberOfGroups'), _.Get('numberOfGroups'),
                _.Get('numberOfSecondOrderPackedValues'),
                _.Get('keyNotPresent'), _.Get('groupWidths'),
                _.Get('widthOfWidths'), _.Get('groupLengths'),
                _.Get('widthOfLengths'), _.Get('NL'), _.Get('SPD'),
                _.Get('widthOfSPD'), _.Get('orderOfSPD'),
                _.Get('numberOfPoints')))
        h.alias('codedValues', 'values')
        h.alias('data.packedValues', 'values')

    h.add(
        _.Simple_packing_error('packingError', _.Get('bitsPerValue'),
                               _.Get('binaryScaleFactor'),
                               _.Get('decimalScaleFactor'),
                               _.Get('referenceValue'), _.Get('ieee')))
    _.Template('common/statistics_grid.def').load(h)