コード例 #1
0
def load(h):

    h.add(_.Constant('GRIBEXSection1Problem', (328 - _.Get('section1Length'))))
    _.Template('grib1/mars_labeling.def').load(h)
    h.add(_.Unsigned('clusterNumber', 1))
    h.alias('number', 'clusterNumber')
    h.add(_.Unsigned('totalNumberOfClusters', 1))
    h.alias('totalNumber', 'totalNumberOfClusters')
    h.add(_.Pad('padding_loc2_1', 1))
    h.add(_.Unsigned('clusteringMethod', 1))
    h.add(_.Unsigned('startTimeStep', 2))
    h.add(_.Unsigned('endTimeStep', 2))
    h.add(_.Signed('northernLatitudeOfDomain', 3))
    h.add(_.Signed('westernLongitudeOfDomain', 3))
    h.add(_.Signed('southernLatitudeOfDomain', 3))
    h.add(_.Signed('easternLongitudeOfDomain', 3))
    h.add(_.Unsigned('operationalForecastCluster', 1))
    h.add(_.Unsigned('controlForecastCluster', 1))
    h.add(_.Unsigned('numberOfForecastsInCluster', 1))

    if (h.get_l('numberOfForecastsInCluster') > 0):
        h.add(
            _.Unsigned('ensembleForecastNumbers', 1,
                       _.Get('numberOfForecastsInCluster')))

    h.add(_.Padto('padding_loc2_2', (_.Get('offsetSection1') + 328)))
    h.add(_.Constant('unknown', "-"))
    h.add(
        _.Concept('clusteringDomain', 'unknown', 'cluster_domain.def',
                  'conceptsMasterDir', 'conceptsLocalDirAll', True))
    h.alias('number', 'clusterNumber')
    h.alias('domain', 'clusteringDomain')
コード例 #2
0
def load(h):

    h.add(_.Constant('GRIBEXSection1Problem', (334 - _.Get('section1Length'))))
    _.Template('grib1/mars_labeling.def').load(h)
    h.add(_.Unsigned('tubeNumber', 1))
    h.add(_.Unsigned('totalNumberOfTubes', 1))
    h.add(_.Unsigned('centralClusterDefinition', 1))
    h.add(_.Unsigned('parameterIndicator', 1))
    h.add(_.Unsigned('levelIndicator', 1))
    h.add(_.Signed('northLatitudeOfDomainOfTubing', 3))
    h.add(_.Signed('westLongitudeOfDomainOfTubing', 3))
    h.add(_.Signed('southLatitudeOfDomainOfTubing', 3))
    h.add(_.Signed('eastLongitudeOfDomainOfTubing', 3))
    h.add(_.Unsigned('numberOfOperationalForecastTube', 1))
    h.add(_.Unsigned('numberOfControlForecastTube', 1))
    h.add(_.Unsigned('heightOrPressureOfLevel', 2))
    h.add(_.Unsigned('referenceStep', 2))
    h.add(_.Unsigned('radiusOfCentralCluster', 2))
    h.add(_.Unsigned('ensembleStandardDeviation', 2))
    h.add(_.Unsigned('distanceFromTubeToEnsembleMean', 2))
    h.add(_.Unsigned('numberOfForecastsInTube', 1))
    h.add(_.Unsigned('ensembleForecastNumbers', 1, _.Get('numberOfForecastsInTube')))
    h.add(_.Padto('padding_loc10_1', (_.Get('offsetSection1') + 334)))
    h.add(_.Concept('tubeDomain', 'unknown', 'tube_domain.def', 'conceptsMasterDir', 'conceptsLocalDirAll', False))
    h.alias('number', 'tubeNumber')
    h.alias('totalNumber', 'totalNumberOfTubes')
    h.alias('reference', 'referenceStep')
    h.alias('domain', 'tubeDomain')
コード例 #3
0
ファイル: local_98_29_def.py プロジェクト: ecmwf/pyeccodes
def load(h):

    h.add(_.Constant('GRIBEXSection1Problem', (960 - _.Get('section1Length'))))
    _.Template('grib1/mars_labeling.def').load(h)
    h.add(_.Unsigned('clusterNumber', 1))
    h.alias('number', 'clusterNumber')
    h.add(_.Unsigned('totalNumberOfClusters', 1))
    h.alias('totalNumber', 'totalNumberOfClusters')
    h.add(_.Pad('padding_loc29_1', 1))
    h.add(_.Unsigned('clusteringMethod', 1))
    h.add(_.Signed('northernLatitudeOfDomain', 3))
    h.add(_.Signed('westernLongitudeOfDomain', 3))
    h.add(_.Signed('southernLatitudeOfDomain', 3))
    h.add(_.Signed('easternLongitudeOfDomain', 3))
    h.add(_.Unsigned('numberOfForecastsInCluster', 1))
    h.add(_.Unsigned('numberOfParametersUsedForClustering', 1))
    h.add(_.Unsigned('numberOfPressureLevelsUsedForClustering', 1))
    h.add(_.Unsigned('numberOfStepsUsedForClustering', 1))
    h.add(_.Pad('padding_loc29_2', 10))

    with h.list('listOfEnsembleForecastNumbers'):
        for i in range(0, h.get_l('numberOfForecastsInCluster')):
            h.add(_.Unsigned('baseDateEPS', 4))
            h.add(_.Unsigned('baseTimeEPS', 2))
            h.add(_.Unsigned('number', 1))

    with h.list('listOfParametersUsedForClustering'):
        for i in range(0, h.get_l('numberOfParametersUsedForClustering')):
            h.add(_.Unsigned('parameterCode', 1))
            h.add(_.Unsigned('tableCode', 1))
    h.add(_.Unsigned('pressureLevel', 2, _.Get('numberOfPressureLevelsUsedForClustering')))
    h.add(_.Unsigned('stepForClustering', 2, _.Get('numberOfStepsUsedForClustering')))
    h.add(_.Padto('padding_loc29_3', (_.Get('offsetSection1') + 960)))
    h.alias('number', 'clusterNumber')
コード例 #4
0
def load(h):

    h.add(_.Ieeefloat('referenceValue', 4))
    h.add(
        _.Reference_value_error('referenceValueError', _.Get('referenceValue'),
                                _.Get('ieee')))
    h.add(_.Signed('binaryScaleFactor', 2))
    h.add(_.Signed('decimalScaleFactor', 2))
    h.add(_.Transient('optimizeScaleFactor', 0))
    h.add(_.Unsigned('bitsPerValue', 1))
    h.alias('numberOfBits', 'bitsPerValue')
    h.alias('numberOfBitsContainingEachPackedValue', 'bitsPerValue')
    h.add(
        _.Codetable('typeOfOriginalFieldValues', 1, "5.1.table",
                    _.Get('masterDir'), _.Get('localDir')))
    h.add(
        _.Codetable('groupSplittingMethodUsed', 1, "5.4.table",
                    _.Get('masterDir'), _.Get('localDir')))
    h.add(
        _.Codetable('missingValueManagementUsed', 1, "5.5.table",
                    _.Get('masterDir'), _.Get('localDir')))
    h.add(_.Unsigned('primaryMissingValueSubstitute', 4))
    h.add(_.Unsigned('secondaryMissingValueSubstitute', 4))
    h.add(_.Unsigned('numberOfGroupsOfDataValues', 4))
    h.alias('NG', 'numberOfGroupsOfDataValues')
    h.add(_.Unsigned('referenceForGroupWidths', 1))
    h.add(_.Unsigned('numberOfBitsUsedForTheGroupWidths', 1))
    h.add(_.Unsigned('referenceForGroupLengths', 4))
    h.add(_.Unsigned('lengthIncrementForTheGroupLengths', 1))
    h.add(_.Unsigned('trueLengthOfLastGroup', 4))
    h.add(_.Unsigned('numberOfBitsForScaledGroupLengths', 1))
    h.alias('numberOfBitsUsedForTheScaledGroupLengths',
            'numberOfBitsForScaledGroupLengths')
コード例 #5
0
def load(h):

    h.add(_.Ieeefloat('referenceValue', 4))
    h.add(
        _.Reference_value_error('referenceValueError', _.Get('referenceValue'),
                                _.Get('ieee')))
    h.add(_.Signed('binaryScaleFactor', 2))
    h.add(_.Signed('decimalScaleFactor', 2))
    h.add(_.Transient('optimizeScaleFactor', 0))
    h.add(_.Unsigned('bitsPerValue', 1))
    h.add(_.Unsigned('widthOfFirstOrderValues', 1))
    h.add(_.Unsigned('numberOfGroups', 4))
    h.add(_.Unsigned('numberOfSecondOrderPackedValues', 4))
    h.add(_.Unsigned('widthOfWidths', 1))
    h.add(_.Unsigned('widthOfLengths', 1))
    h.add(
        _.Codeflag('secondOrderFlags', 1,
                   "grib2/tables/[tablesVersion]/5.50002.table"))
    h.add(_.Unsigned('orderOfSPD', 1))
    h.add(_.Bit('boustrophedonicOrdering', _.Get('secondOrderFlags'), 7))
    h.alias('boustrophedonic', 'boustrophedonicOrdering')

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

    h.add(_.Codetable('parameterCategory', 1, "4.1.[discipline:l].table", _.Get('masterDir'), _.Get('localDir')))
    h.add(_.Codetable('parameterNumber', 1, "4.2.[discipline:l].[parameterCategory:l].table", _.Get('masterDir'), _.Get('localDir')))
    h.add(_.Codetable_units('parameterUnits', _.Get('parameterNumber')))
    h.add(_.Codetable_title('parameterName', _.Get('parameterNumber')))
    h.add(_.Codetable('constituentType', 2, "4.230.table", _.Get('masterDir'), _.Get('localDir')))
    h.add(_.Unsigned('numberOfModeOfDistribution', 2))
    h.add(_.Unsigned('modeNumber', 2))
    h.add(_.Codetable('typeOfDistributionFunction', 2, "4.240.table", _.Get('masterDir'), _.Get('localDir')))
    h.add(_.Unsigned('numberOfDistributionFunctionParameters', 1))
    h.alias('NP', 'numberOfDistributionFunctionParameters')

    with h.list('listOfDistributionFunctionParameter'):
        for i in range(0, h.get_l('numberOfDistributionFunctionParameters')):
            h.add(_.Signed('scaleFactorOfDistributionFunctionParameter', 1))
            h.add(_.Unsigned('scaledValueOfDistributionFunctionParameter', 4))
    h.add(_.Codetable('typeOfGeneratingProcess', 1, "4.3.table", _.Get('masterDir'), _.Get('localDir')))
    h.add(_.Unsigned('backgroundProcess', 1))
    h.alias('backgroundGeneratingProcessIdentifier', 'backgroundProcess')
    h.add(_.Unsigned('generatingProcessIdentifier', 1))
    h.add(_.Unsigned('hoursAfterDataCutoff', 2))
    h.alias('hoursAfterReferenceTimeOfDataCutoff', 'hoursAfterDataCutoff')
    h.add(_.Unsigned('minutesAfterDataCutoff', 1))
    h.alias('minutesAfterReferenceTimeOfDataCutoff', 'minutesAfterDataCutoff')
    h.add(_.Codetable('indicatorOfUnitOfTimeRange', 1, "4.4.table", _.Get('masterDir'), _.Get('localDir')))
    h.alias('defaultStepUnits', 'one')
    _.Template('grib2/localConcepts/[centre:s]/default_step_units.def', True).load(h)
    h.add(_.TransientCodetable('stepUnits', 1, "stepUnits.table"))
    h.add(_.Signed('forecastTime', 4))
コード例 #7
0
def load(h):

    h.add(_.Ieeefloat('referenceValue', 4))
    h.add(
        _.Reference_value_error('referenceValueError', _.Get('referenceValue'),
                                _.Get('ieee')))
    h.add(_.Signed('binaryScaleFactor', 2))
    h.add(_.Signed('decimalScaleFactor', 2))
    h.add(_.Transient('optimizeScaleFactor', 0))
    h.add(_.Unsigned('bitsPerValue', 1))
    h.alias('numberOfBits', 'bitsPerValue')
    h.alias('numberOfBitsContainingEachPackedValue', 'bitsPerValue')
    h.add(
        _.Codetable('typeOfOriginalFieldValues', 1, "5.1.table",
                    _.Get('masterDir'), _.Get('localDir')))
    h.add(_.Unsigned('ccsdsFlags', 1))
    h.alias('ccsdsCompressionOptionsMask', 'ccsdsFlags')
    h.add(_.Bit('AEC_DATA_SIGNED_OPTION_MASK', _.Get('ccsdsFlags'), 0))
    h.add(_.Bit('AEC_DATA_3BYTE_OPTION_MASK', _.Get('ccsdsFlags'), 1))
    h.add(_.Bit('AEC_DATA_MSB_OPTION_MASK', _.Get('ccsdsFlags'), 2))
    h.add(_.Bit('AEC_DATA_PREPROCESS_OPTION_MASK', _.Get('ccsdsFlags'), 3))
    h.add(_.Bit('AEC_RESTRICTED_OPTION_MASK', _.Get('ccsdsFlags'), 4))
    h.add(_.Bit('AEC_PAD_RSI_OPTION_MASK', _.Get('ccsdsFlags'), 5))
    h.add(_.Unsigned('ccsdsBlockSize', 1))
    h.add(_.Unsigned('ccsdsRsi', 2))
    h.alias('referenceSampleInterval', 'ccsdsRsi')
コード例 #8
0
ファイル: local_98_32_def.py プロジェクト: ecmwf/pyeccodes
def load(h):

    h.add(_.Constant('GRIBEXSection1Problem', (328 - _.Get('section1Length'))))
    _.Template('grib1/mars_labeling.def').load(h)
    h.add(_.Unsigned('clusterNumber', 1))
    h.alias('number', 'clusterNumber')
    h.add(_.Unsigned('totalNumberOfClusters', 1))
    h.alias('totalNumber', 'totalNumberOfClusters')
    h.add(_.Pad('padding_loc2_1', 1))
    h.add(_.Unsigned('clusteringMethod', 1))
    h.add(_.Unsigned('startTimeStep', 2))
    h.add(_.Unsigned('endTimeStep', 2))
    h.add(_.Signed('northernLatitudeOfDomain', 3))
    h.add(_.Signed('westernLongitudeOfDomain', 3))
    h.add(_.Signed('southernLatitudeOfDomain', 3))
    h.add(_.Signed('easternLongitudeOfDomain', 3))
    h.add(_.Ascii('clusteringDomain', 1))
    h.add(_.Unsigned('operationalForecastCluster', 1))
    h.add(_.Unsigned('controlForecastCluster', 1))
    h.add(_.Unsigned('representativeMember', 1))
    h.add(_.Codetable('climatologicalRegime', 1, "grib1/regime.table"))
    h.add(_.Unsigned('numberOfForecastsInCluster', 1))

    if (h.get_l('numberOfForecastsInCluster') > 0):
        h.add(
            _.Unsigned('ensembleForecastNumbers', 1,
                       _.Get('numberOfForecastsInCluster')))

    h.add(_.Padto('padding_loc2_2', (_.Get('offsetSection1') + 328)))
    h.alias('mars.number', 'clusterNumber')
    h.alias('mars.domain', 'clusteringDomain')
コード例 #9
0
def load(h):

    h.add(_.Ieeefloat('referenceValue', 4))
    h.add(
        _.Reference_value_error('referenceValueError', _.Get('referenceValue'),
                                _.Get('ieee')))
    h.add(_.Signed('binaryScaleFactor', 2))
    h.add(_.Signed('decimalScaleFactor', 2))
    h.add(_.Transient('optimizeScaleFactor', 0))
    h.add(_.Unsigned('bitsPerValue', 1))
    h.alias('numberOfBits', 'bitsPerValue')
    h.alias('numberOfBitsContainingEachPackedValue', 'bitsPerValue')
    h.add(_.Unsigned('matrixBitmapsPresent', 1))
    h.alias('secondaryBitmapPresent', 'matrixBitmapsPresent')
    h.add(_.Unsigned('numberOfCodedValues', 4))
    h.add(_.Unsigned('firstDimension', 2))
    h.alias('NR', 'firstDimension')
    h.add(_.Unsigned('secondDimension', 2))
    h.alias('NC', 'secondDimension')
    h.add(_.Unsigned('firstDimensionCoordinateValueDefinition', 1))
    h.add(_.Unsigned('NC1', 1))
    h.alias(
        'numberOfCoefficientsOrValuesUsedToSpecifyFirstDimensionCoordinateFunction',
        'NC1')
    h.add(_.Unsigned('secondDimensionCoordinateValueDefinition', 1))
    h.add(_.Unsigned('NC2', 1))
    h.alias(
        'numberOfCoefficientsOrValuesUsedToSpecifySecondDimensionCoordinateFunction',
        'NC2')
    h.add(_.Unsigned('firstDimensionPhysicalSignificance', 1))
    h.add(_.Unsigned('secondDimensionPhysicalSignificance', 1))
    h.add(_.Ieeefloat('coefsFirst', 4, _.Get('NC1')))
    h.add(_.Ieeefloat('coefsSecond', 4, _.Get('NC2')))
    h.alias('data.coefsFirst', 'coefsFirst')
    h.alias('data.coefsSecond', 'coefsSecond')

    if (h.get_l('matrixBitmapsPresent') == 1):
        h.add(_.Constant('datumSize', (_.Get('NC') * _.Get('NR'))))
        h.add(
            _.Constant('secondaryBitmapsCount', (_.Get('numberOfValues') + 0)))
        h.add(
            _.Constant('secondaryBitmapsSize',
                       (_.Get('secondaryBitmapsCount') / 8)))
        h.add(
            _.Transient('numberOfDataMatrices',
                        (_.Get('numberOfDataPoints') / _.Get('datumSize'))))
        h.add(_.Position('offsetBBitmap'))
        h.add(
            _.G2bitmap('secondaryBitmaps', _.Get('dummy'),
                       _.Get('missingValue'), _.Get('offsetBSection5'),
                       _.Get('section5Length'), _.Get('numberOfCodedValues'),
                       _.Get('dummy')))
        h.add(
            _.Data_g2secondary_bitmap('bitmap', _.Get('primaryBitmap'),
                                      _.Get('secondaryBitmaps'),
                                      _.Get('missingValue'),
                                      _.Get('datumSize'),
                                      _.Get('numberOfDataPoints')))
コード例 #10
0
def load(h):

    h.add(_.Ieeefloat('referenceValue', 4))
    h.add(_.Reference_value_error('referenceValueError', _.Get('referenceValue'), _.Get('ieee')))
    h.add(_.Signed('binaryScaleFactor', 2))
    h.add(_.Signed('decimalScaleFactor', 2))
    h.add(_.Transient('optimizeScaleFactor', 0))
    h.add(_.Unsigned('bitsPerValue', 1))
    h.alias('numberOfBits', 'bitsPerValue')
    h.alias('numberOfBitsContainingEachPackedValue', 'bitsPerValue')
コード例 #11
0
def load(h):

    h.add(_.Codetable('parameterCategory', 1, "4.1.[discipline:l].table", _.Get('masterDir'), _.Get('localDir')))
    h.add(_.Codetable('parameterNumber', 1, "4.2.[discipline:l].[parameterCategory:l].table", _.Get('masterDir'), _.Get('localDir')))
    h.add(_.Codetable_units('parameterUnits', _.Get('parameterNumber')))
    h.add(_.Codetable_title('parameterName', _.Get('parameterNumber')))
    h.add(_.Codetable('aerosolType', 2, "4.233.table", _.Get('masterDir'), _.Get('localDir')))
    h.add(_.Codetable('sourceSinkChemicalPhysicalProcess', 1, "4.238.table", _.Get('masterDir'), _.Get('localDir')))
    h.add(_.Codetable('typeOfSizeInterval', 1, "4.91.table", _.Get('masterDir'), _.Get('localDir')))
    h.alias('typeOfIntervalForFirstAndSecondSize', 'typeOfSizeInterval')
    h.add(_.Signed('scaleFactorOfFirstSize', 1))
    h.add(_.Signed('scaledValueOfFirstSize', 4))
    h.add(_.Signed('scaleFactorOfSecondSize', 1))
    h.add(_.Signed('scaledValueOfSecondSize', 4))
    h.add(_.Codetable('typeOfWavelengthInterval', 1, "4.91.table", _.Get('masterDir'), _.Get('localDir')))
    h.alias('typeOfIntervalForFirstAndSecondWavelength', 'typeOfWavelengthInterval')
    h.add(_.Signed('scaleFactorOfFirstWavelength', 1))
    h.add(_.Signed('scaledValueOfFirstWavelength', 4))
    h.add(_.Signed('scaleFactorOfSecondWavelength', 1))
    h.add(_.Signed('scaledValueOfSecondWavelength', 4))
    h.add(_.Codetable('typeOfGeneratingProcess', 1, "4.3.table", _.Get('masterDir'), _.Get('localDir')))
    h.add(_.Unsigned('backgroundProcess', 1))
    h.alias('backgroundGeneratingProcessIdentifier', 'backgroundProcess')
    h.add(_.Unsigned('generatingProcessIdentifier', 1))
    h.add(_.Unsigned('hoursAfterDataCutoff', 2))
    h.alias('hoursAfterReferenceTimeOfDataCutoff', 'hoursAfterDataCutoff')
    h.add(_.Unsigned('minutesAfterDataCutoff', 1))
    h.alias('minutesAfterReferenceTimeOfDataCutoff', 'minutesAfterDataCutoff')
    h.add(_.Codetable('indicatorOfUnitOfTimeRange', 1, "4.4.table", _.Get('masterDir'), _.Get('localDir')))
    h.alias('defaultStepUnits', 'one')
    _.Template('grib2/localConcepts/[centre:s]/default_step_units.def', True).load(h)
    h.add(_.TransientCodetable('stepUnits', 1, "stepUnits.table"))
    h.add(_.Signed('forecastTime', 4))
コード例 #12
0
def load(h):

    h.add(_.Constant('gridDefinitionTemplateNumber', 52))
    _.Template('grib1/grid_definition_spherical_harmonics.def').load(h)
    h.add(_.Signed('latitudeOfStretchingPole', 3))
    h.add(_.Signed('longitudeOfStretchingPole', 3))
    h.add(_.Scale('latitudeOfStretchingPoleInDegrees', _.Get('latitudeOfStretchingPole'), _.Get('oneConstant'), _.Get('grib1divider'), _.Get('truncateDegrees')))
    h.alias('geography.latitudeOfStretchingPoleInDegrees', 'latitudeOfStretchingPoleInDegrees')
    h.add(_.Scale('longitudeOfStretchingPoleInDegrees', _.Get('longitudeOfStretchingPole'), _.Get('oneConstant'), _.Get('grib1divider'), _.Get('truncateDegrees')))
    h.alias('geography.longitudeOfStretchingPoleInDegrees', 'longitudeOfStretchingPoleInDegrees')
    h.add(_.Ibmfloat('stretchingFactor', 4))
    h.alias('geography.stretchingFactor', 'stretchingFactor')
コード例 #13
0
ファイル: local_98_5_def.py プロジェクト: ecmwf/pyeccodes
def load(h):

    h.add(_.Constant('GRIBEXSection1Problem', (58 - _.Get('section1Length'))))
    h.add(_.Constant('probPoint', 5))
    h.add(_.Constant('probContinous', 9))

    if (((h.get_l('timeRangeIndicator') == 3) or
         (h.get_l('timeRangeIndicator') == 4))
            or (h.get_l('timeRangeIndicator') == 5)):
        h.alias('productDefinitionTemplateNumber', 'probContinous')
    else:
        h.alias('productDefinitionTemplateNumber', 'probPoint')

    _.Template('grib1/mars_labeling.def').load(h)
    h.add(_.Unsigned('forecastProbabilityNumber', 1))
    h.add(_.Unsigned('totalNumberOfForecastProbabilities', 1))
    h.add(_.Signed('localDecimalScaleFactor', 1))
    h.add(_.Unsigned('thresholdIndicator', 1))
    h.add(_.Signed('lowerThreshold', 2))
    h.add(_.Signed('upperThreshold', 2))

    if (h.get_l('thresholdIndicator') == 1):
        h.add(_.Transient('probabilityType', 3))
        h.add(
            _.Transient('scaleFactorOfLowerLimit',
                        _.Get('localDecimalScaleFactor')))
        h.add(_.Transient('scaledValueOfLowerLimit', _.Get('lowerThreshold')))
        h.add(_.Transient('scaleFactorOfUpperLimit', h._missing()))
        h.add(_.Transient('scaledValueOfUpperLimit', h._missing()))

    if (h.get_l('thresholdIndicator') == 2):
        h.add(_.Transient('probabilityType', 4))
        h.add(_.Transient('scaleFactorOfLowerLimit', h._missing()))
        h.add(_.Transient('scaledValueOfLowerLimit', h._missing()))
        h.add(
            _.Transient('scaleFactorOfUpperLimit',
                        _.Get('localDecimalScaleFactor')))
        h.add(_.Transient('scaledValueOfUpperLimit', _.Get('upperThreshold')))

    if (h.get_l('thresholdIndicator') == 3):
        h.add(_.Transient('probabilityType', 2))
        h.add(
            _.Transient('scaleFactorOfLowerLimit',
                        _.Get('localDecimalScaleFactor')))
        h.add(_.Transient('scaledValueOfLowerLimit', _.Get('lowerThreshold')))
        h.add(
            _.Transient('scaleFactorOfUpperLimit',
                        _.Get('localDecimalScaleFactor')))
        h.add(_.Transient('scaledValueOfUpperLimit', _.Get('upperThreshold')))

    h.add(_.Pad('padding_loc5_1', 1))
    h.alias('number', 'forecastProbabilityNumber')
    h.alias('totalNumber', 'totalNumberOfForecastProbabilities')
コード例 #14
0
ファイル: grid_rotation_def.py プロジェクト: ecmwf/pyeccodes
def load(h):

    h.add(_.Signed('latitudeOfSouthernPole', 3))
    h.add(_.Scale('latitudeOfSouthernPoleInDegrees', _.Get('latitudeOfSouthernPole'), _.Get('oneConstant'), _.Get('grib1divider'), _.Get('truncateDegrees')))
    h.alias('geography.latitudeOfSouthernPoleInDegrees', 'latitudeOfSouthernPoleInDegrees')
    h.add(_.Signed('longitudeOfSouthernPole', 3))
    h.add(_.Scale('longitudeOfSouthernPoleInDegrees', _.Get('longitudeOfSouthernPole'), _.Get('oneConstant'), _.Get('grib1divider'), _.Get('truncateDegrees')))
    h.alias('geography.longitudeOfSouthernPoleInDegrees', 'longitudeOfSouthernPoleInDegrees')
    h.add(_.Ibmfloat('angleOfRotationInDegrees', 4))
    h.alias('geography.angleOfRotationInDegrees', 'angleOfRotationInDegrees')
    h.alias('angleOfRotation', 'angleOfRotationInDegrees')
    h.alias('isRotatedGrid', 'one')
コード例 #15
0
def load(h):

    h.add(_.Constant('gridDefinitionTemplateNumber', 41))
    _.Template('grib1/grid_definition_gaussian.def').load(h)
    h.add(_.Signed('latitudeOfSouthernPole', 3))
    h.add(_.Scale('latitudeOfSouthernPoleInDegrees', _.Get('latitudeOfSouthernPole'), _.Get('oneConstant'), _.Get('grib1divider'), _.Get('truncateDegrees')))
    h.alias('geography.latitudeOfSouthernPoleInDegrees', 'latitudeOfSouthernPoleInDegrees')
    h.add(_.Signed('longitudeOfSouthernPole', 3))
    h.add(_.Scale('longitudeOfSouthernPoleInDegrees', _.Get('longitudeOfSouthernPole'), _.Get('oneConstant'), _.Get('grib1divider'), _.Get('truncateDegrees')))
    h.alias('geography.longitudeOfSouthernPoleInDegrees', 'longitudeOfSouthernPoleInDegrees')
    h.add(_.Ibmfloat('angleOfRotationInDegrees', 4))
    h.alias('geography.angleOfRotationInDegrees', 'angleOfRotationInDegrees')
    h.alias('angleOfRotation', 'angleOfRotationInDegrees')
    h.alias('isRotatedGrid', 'one')
コード例 #16
0
ファイル: template_5_41_def.py プロジェクト: ecmwf/pyeccodes
def load(h):

    h.add(_.Ieeefloat('referenceValue', 4))
    h.add(
        _.Reference_value_error('referenceValueError', _.Get('referenceValue'),
                                _.Get('ieee')))
    h.add(_.Signed('binaryScaleFactor', 2))
    h.add(_.Signed('decimalScaleFactor', 2))
    h.add(_.Transient('optimizeScaleFactor', 0))
    h.add(_.Unsigned('bitsPerValue', 1))
    h.alias('numberOfBits', 'bitsPerValue')
    h.alias('numberOfBitsContainingEachPackedValue', 'bitsPerValue')
    h.add(
        _.Codetable('typeOfOriginalFieldValues', 1, "5.1.table",
                    _.Get('masterDir'), _.Get('localDir')))
コード例 #17
0
def load(h):

    h.add(_.Unsigned('n2', 2))
    h.add(_.Unsigned('n3', 2))
    h.add(_.Unsigned('nd', 3))
    h.alias('numberOfDiamonds', 'nd')
    h.alias('Nj', 'nd')
    h.add(_.Unsigned('Ni', 3))
    h.add(
        _.Codeflag('numberingOrderOfDiamonds', 1,
                   "grib1/grid.192.78.3.9.table"))
    h.add(_.Signed('latitudeOfIcosahedronPole', 4))
    h.add(_.Unsigned('longitudeOfIcosahedronPole', 4))
    h.add(_.Unsigned('longitudeOfFirstDiamondCenterLine', 4))
    h.add(_.Unsigned('reservedOctet', 1))
    h.add(
        _.Codeflag('scanningModeForOneDiamond', 1,
                   "grib1/grid.192.78.3.10.table"))
    h.add(
        _.Transient('numberOfPoints',
                    ((_.Get('nd') * (_.Get('Ni') + 1)) * (_.Get('Ni') + 1))))
    h.alias('numberOfDataPoints', 'numberOfPoints')
    h.add(
        _.Number_of_values('numberOfValues', _.Get('values'),
                           _.Get('bitsPerValue'), _.Get('numberOfDataPoints'),
                           _.Get('bitmapPresent'), _.Get('bitmap'),
                           _.Get('numberOfCodedValues')))
コード例 #18
0
ファイル: local_98_35_def.py プロジェクト: ecmwf/pyeccodes
def load(h):

    h.add(_.Constant('GRIBEXSection1Problem', (120 - _.Get('section1Length'))))
    _.Template('grib1/mars_labeling.def').load(h)
    h.add(_.Unsigned('yearOfReference', 1))
    h.add(_.Unsigned('monthOfReference', 1))
    h.add(_.Unsigned('dayOfReference', 1))
    h.add(_.Unsigned('hourOfReference', 1))
    h.add(_.Unsigned('minuteOfReference', 1))
    h.add(_.Unsigned('centuryOfReference', 1))
    h.add(_.Transient('secondsOfReference', 0))
    h.add(_.Unsigned('numberOfForcasts', 1))
    h.add(_.Unsigned('numberOfAnalysis', 1))

    if h.get_l('numberOfForcasts'):
        h.add(_.Unsigned('forecastSteps', 3, _.Get('numberOfForcasts')))

    if h.get_l('numberOfAnalysis'):
        h.add(_.Signed('analysisOffsets', 3, _.Get('numberOfAnalysis')))

    h.add(_.Padto('padding_local_35', (_.Get('offsetSection1') + 120)))
    h.add(
        _.G1date('dateOfReference', _.Get('centuryOfReference'),
                 _.Get('yearOfReference'), _.Get('monthOfReference'),
                 _.Get('dayOfReference')))
    h.add(
        _.Time('timeOfReference', _.Get('hourOfReference'),
               _.Get('minuteOfReference'), _.Get('secondsOfReference')))

    if (h.get_l('indicatorOfTypeOfLevel') == 160):
        h.alias('mars.levelist', 'level')
コード例 #19
0
def load(h):

    h.add(
        _.Codetable('parameterCategory', 1, "4.1.[discipline:l].table",
                    _.Get('masterDir'), _.Get('localDir')))
    h.add(
        _.Codetable('parameterNumber', 1,
                    "4.2.[discipline:l].[parameterCategory:l].table",
                    _.Get('masterDir'), _.Get('localDir')))
    h.add(_.Codetable_units('parameterUnits', _.Get('parameterNumber')))
    h.add(_.Codetable_title('parameterName', _.Get('parameterNumber')))
    h.add(_.Unsigned('inputProcessIdentifier', 2))
    h.add(_.StringCodetable('inputOriginatingCentre', 2, "common/c-11.table"))
    h.add(_.Unsigned('typeOfPostProcessing', 1))
    h.add(
        _.Codetable('typeOfGeneratingProcess', 1, "4.3.table",
                    _.Get('masterDir'), _.Get('localDir')))
    h.add(_.Unsigned('backgroundProcess', 1))
    h.alias('backgroundGeneratingProcessIdentifier', 'backgroundProcess')
    h.add(_.Unsigned('generatingProcessIdentifier', 1))
    h.add(_.Unsigned('hoursAfterDataCutoff', 2))
    h.alias('hoursAfterReferenceTimeOfDataCutoff', 'hoursAfterDataCutoff')
    h.add(_.Unsigned('minutesAfterDataCutoff', 1))
    h.alias('minutesAfterReferenceTimeOfDataCutoff', 'minutesAfterDataCutoff')
    h.add(
        _.Codetable('indicatorOfUnitOfTimeRange', 1, "4.4.table",
                    _.Get('masterDir'), _.Get('localDir')))
    h.alias('defaultStepUnits', 'one')
    _.Template('grib2/localConcepts/[centre:s]/default_step_units.def',
               True).load(h)
    h.add(_.TransientCodetable('stepUnits', 1, "stepUnits.table"))
    h.add(_.Signed('forecastTime', 4))
コード例 #20
0
def load(h):

    h.add(_.Codetable('parameterCategory', 1, "4.1.[discipline:l].table", _.Get('masterDir'), _.Get('localDir')))
    h.add(_.Codetable('parameterNumber', 1, "4.2.[discipline:l].[parameterCategory:l].table", _.Get('masterDir'), _.Get('localDir')))
    h.add(_.Codetable_units('parameterUnits', _.Get('parameterNumber')))
    h.add(_.Codetable_title('parameterName', _.Get('parameterNumber')))
    h.add(_.Codetable('typeOfGeneratingProcess', 1, "4.3.table", _.Get('masterDir'), _.Get('localDir')))
    h.add(_.Unsigned('backgroundProcess', 1))
    h.alias('backgroundGeneratingProcessIdentifier', 'backgroundProcess')
    h.add(_.Unsigned('generatingProcessIdentifier', 1))
    h.add(_.Unsigned('hoursAfterDataCutoff', 2))
    h.alias('hoursAfterReferenceTimeOfDataCutoff', 'hoursAfterDataCutoff')
    h.add(_.Unsigned('minutesAfterDataCutoff', 1))
    h.alias('minutesAfterReferenceTimeOfDataCutoff', 'minutesAfterDataCutoff')
    h.add(_.Codetable('indicatorOfUnitOfTimeRange', 1, "4.4.table", _.Get('masterDir'), _.Get('localDir')))
    h.alias('defaultStepUnits', 'one')
    _.Template('grib2/localConcepts/[centre:s]/default_step_units.def', True).load(h)
    h.add(_.TransientCodetable('stepUnits', 1, "stepUnits.table"))
    h.add(_.Signed('forecastTime', 4))
    h.add(_.Codetable('horizontalDimensionProcessed', 1, "4.220.table", _.Get('masterDir'), _.Get('localDir')))
    h.add(_.Codetable('treatmentOfMissingData', 1, "4.221.table", _.Get('masterDir'), _.Get('localDir')))
    h.add(_.Codetable('typeOfStatisticalProcessing', 1, "4.10.table", _.Get('masterDir'), _.Get('localDir')))
    h.add(_.Unsigned('startOfRange', 4))
    h.add(_.Unsigned('endOfRange', 4))
    h.add(_.Unsigned('numberOfDataValues', 2))
コード例 #21
0
ファイル: local_98_33_def.py プロジェクト: ecmwf/pyeccodes
def load(h):

    _.Template('grib1/mars_labeling.def').load(h)
    h.add(_.Constant('GRIBEXSection1Problem', 0))
    h.add(_.Unsigned('yearOfReference', 1))
    h.add(_.Unsigned('monthOfReference', 1))
    h.add(_.Unsigned('dayOfReference', 1))
    h.add(_.Unsigned('hourOfReference', 1))
    h.add(_.Unsigned('minuteOfReference', 1))
    h.add(_.Unsigned('centuryOfReference', 1))
    h.add(_.Transient('secondsOfReference', 0))
    h.add(_.Unsigned('numberOfForcasts', 1))

    if h.get_l('numberOfForcasts'):
        h.add(_.Unsigned('forecastSteps', 3, _.Get('numberOfForcasts')))

    h.add(_.Unsigned('numberOfAnalysis', 1))

    if h.get_l('numberOfAnalysis'):
        h.add(_.Signed('analysisOffsets', 3, _.Get('numberOfAnalysis')))

    h.add(
        _.G1date('dateOfReference', _.Get('centuryOfReference'),
                 _.Get('yearOfReference'), _.Get('monthOfReference'),
                 _.Get('dayOfReference')))
    h.add(
        _.Time('timeOfReference', _.Get('hourOfReference'),
               _.Get('minuteOfReference'), _.Get('secondsOfReference')))
コード例 #22
0
def load(h):

    h.add(_.Constant('sphericalHarmonics', 1))
    h.add(_.Unsigned('J', 4))
    h.alias('pentagonalResolutionParameterJ', 'J')
    h.alias('geography.J', 'J')
    h.add(_.Unsigned('K', 4))
    h.alias('pentagonalResolutionParameterK', 'K')
    h.alias('geography.K', 'K')
    h.add(_.Unsigned('M', 4))
    h.alias('pentagonalResolutionParameterM', 'M')
    h.alias('geography.M', 'M')
    h.add(_.Codetable('spectralType', 1, "3.6.table", _.Get('masterDir'), _.Get('localDir')))
    h.alias('spectralDataRepresentationType', 'spectralType')
    h.add(_.Codetable('spectralMode', 1, "3.7.table", _.Get('masterDir'), _.Get('localDir')))
    h.alias('spectralDataRepresentationMode', 'spectralMode')
    h.add(_.Signed('latitudeOfSouthernPole', 4))
    h.alias('latitudeOfTheSouthernPoleOfProjection', 'latitudeOfSouthernPole')
    h.add(_.Unsigned('longitudeOfSouthernPole', 4))
    h.alias('longitudeOfTheSouthernPoleOfProjection', 'longitudeOfSouthernPole')
    h.add(_.Scale('latitudeOfSouthernPoleInDegrees', _.Get('latitudeOfSouthernPole'), _.Get('one'), _.Get('grib2divider'), _.Get('truncateDegrees')))
    h.alias('geography.latitudeOfSouthernPoleInDegrees', 'latitudeOfSouthernPoleInDegrees')
    h.add(_.G2lon('longitudeOfSouthernPoleInDegrees', _.Get('longitudeOfSouthernPole')))
    h.alias('geography.longitudeOfSouthernPoleInDegrees', 'longitudeOfSouthernPoleInDegrees')
    h.add(_.Ieeefloat('angleOfRotation', 4))
    h.alias('geography.angleOfRotationInDegrees', 'angleOfRotation')
    h.alias('angleOfRotationOfProjection', 'angleOfRotation')
    h.alias('isRotatedGrid', 'one')
コード例 #23
0
ファイル: template_1_2_def.py プロジェクト: ecmwf/pyeccodes
def load(h):

    h.add(
        _.Codetable('typeOfCalendar', 1, "1.6.table", _.Get('masterDir'),
                    _.Get('localDir')))
    h.add(_.Signed('numberOfTensOfThousandsOfYearsOfOffset', 2))
    h.alias('paleontologicalOffset', 'numberOfTensOfThousandsOfYearsOfOffset')
コード例 #24
0
ファイル: section_4_def.py プロジェクト: ecmwf/pyeccodes
def load(h):

    h.add(_.Section_length('section4Length', 3))
    h.add(_.Unsigned('reserved1', 1))
    h.add(_.Codeflag('missingDataFlag', 1, "grib1/1.table"))
    h.add(_.Unsigned('numberOfBytesPerInteger', 1))
    h.add(_.Unsigned('reserved', 2))
    h.add(_.Unsigned('numberOfCharacters', 3))
    h.alias('numberOfChars', 'numberOfCharacters')
    h.add(_.Unsigned('numberOfFloats', 3))
    h.add(_.Unsigned('numberOfIntegers', 3))
    h.alias('numberOfInts', 'numberOfIntegers')
    h.add(_.Unsigned('numberOfLogicals', 3))
    h.add(_.Unsigned('numberOfReservedBytes', 3))
    h.add(_.Unsigned('reserved', 4))
    h.add(_.Unsigned('reserved', 4))
    h.add(_.Unsigned('reserved', 1))
    h.add(_.Ibmfloat('floatValues', 4, _.Get('numberOfFloats')))
    h.alias('floatVal', 'floatValues')

    if h.get_l('numberOfIntegers'):
        h.add(_.Signed('integerValues', 4, _.Get('numberOfIntegers')))

    if h.get_l('numberOfCharacters'):
        h.add(_.StringUnsigned('charValues', 1, _.Get('numberOfCharacters')))

    h.add(_.Section_padding('padding'))
コード例 #25
0
def load(h):

    h.add(_.Ieeefloat('referenceValue', 4))
    h.add(
        _.Reference_value_error('referenceValueError', _.Get('referenceValue'),
                                _.Get('ieee')))
    h.add(_.Signed('binaryScaleFactor', 2))
    h.add(_.Signed('decimalScaleFactor', 2))
    h.add(_.Transient('optimizeScaleFactor', 0))
    h.add(_.Unsigned('bitsPerValue', 1))
    h.alias('numberOfBits', 'bitsPerValue')
    h.alias('numberOfBitsContainingEachPackedValue', 'bitsPerValue')

    if h._gribex_mode_on():
        h.add(_.Transient('computeLaplacianOperator', 0))
    else:
        h.add(_.Transient('computeLaplacianOperator', 1))

    h.add(
        _.Spectral_truncation('_numberOfValues', _.Get('J'), _.Get('K'),
                              _.Get('M'), _.Get('numberOfValues')))
    h.add(_.Constant('laplacianScalingFactorUnset', -2147483647))
    h.add(_.Signed('laplacianScalingFactor', 4))
    h.add(
        _.Scale('laplacianOperator', _.Get('laplacianScalingFactor'),
                _.Get('one'), _.Get('million'), _.Get('truncateLaplacian')))
    h.alias('data.laplacianOperator', 'laplacianOperator')
    h.add(
        _.Evaluate(
            'laplacianOperatorIsSet',
            _.And((_.Get('laplacianScalingFactor') !=
                   _.Get('laplacianScalingFactorUnset')),
                  _.Not(_.Get('computeLaplacianOperator')))))
    h.add(_.Transient('JS', 20))
    h.add(_.Transient('KS', 20))
    h.add(_.Transient('MS', 20))
    h.add(_.Transient('subSetJ', 0))
    h.add(_.Transient('subSetK', 0))
    h.add(_.Transient('subSetM', 0))
    h.add(_.Unsigned('TS', 4))
    h.add(
        _.Spectral_truncation('_TS', _.Get('J'), _.Get('K'), _.Get('M'),
                              _.Get('TS')))
    h.add(
        _.Codetable('unpackedSubsetPrecision', 1, "5.7.table",
                    _.Get('masterDir'), _.Get('localDir')))
    h.alias('precisionOfTheUnpackedSubset', 'unpackedSubsetPrecision')
コード例 #26
0
ファイル: local_98_50_def.py プロジェクト: ecmwf/pyeccodes
def load(h):

    h.add(_.Constant('GRIBEXSection1Problem', (300 - _.Get('section1Length'))))
    _.Template('grib1/mars_labeling.def').load(h)
    h.add(_.Unsigned('perturbationNumber', 1))
    h.alias('number', 'perturbationNumber')
    h.add(_.Unsigned('numberOfForecastsInEnsemble', 1))
    h.alias('totalNumber', 'numberOfForecastsInEnsemble')
    h.add(_.Unsigned('modelIdentifier', 1))
    h.add(_.Signed('latitudeOfNorthWestCornerOfArea', 4))
    h.add(_.Signed('longitudeOfNorthWestCornerOfArea', 4))
    h.add(_.Signed('latitudeOfSouthEastCornerOfArea', 4))
    h.add(_.Signed('longitudeOfSouthEastCornerOfArea', 4))
    h.add(_.Unsigned('originalParameterNumber', 1))
    h.add(_.Unsigned('originalParameterTableNumber', 1))
    h.add(_.Pad('padding_loc50_1', 46))
    h.add(_.Ascii('optionalData', 184))
コード例 #27
0
def load(h):

    h.add(_.Signed('latitudeOfFirstGridPoint', 3))
    h.add(_.Scale('latitudeOfFirstGridPointInDegrees', _.Get('latitudeOfFirstGridPoint'), _.Get('oneConstant'), _.Get('grib1divider'), _.Get('truncateDegrees')))
    h.alias('geography.latitudeOfFirstGridPointInDegrees', 'latitudeOfFirstGridPointInDegrees')
    h.alias('La1', 'latitudeOfFirstGridPoint')
    h.add(_.Signed('longitudeOfFirstGridPoint', 3))
    h.add(_.Scale('longitudeOfFirstGridPointInDegrees', _.Get('longitudeOfFirstGridPoint'), _.Get('oneConstant'), _.Get('grib1divider'), _.Get('truncateDegrees')))
    h.alias('geography.longitudeOfFirstGridPointInDegrees', 'longitudeOfFirstGridPointInDegrees')
    h.alias('Lo1', 'longitudeOfFirstGridPoint')
    h.add(_.Codeflag('resolutionAndComponentFlags', 1, "grib1/7.table"))
    h.add(_.Bit('ijDirectionIncrementGiven', _.Get('resolutionAndComponentFlags'), 7))
    h.alias('iDirectionIncrementGiven', 'ijDirectionIncrementGiven')
    h.alias('jDirectionIncrementGiven', 'ijDirectionIncrementGiven')
    h.alias('DiGiven', 'ijDirectionIncrementGiven')
    h.alias('DjGiven', 'ijDirectionIncrementGiven')
    h.add(_.Bit('earthIsOblate', _.Get('resolutionAndComponentFlags'), 6))

    if h.get_l('earthIsOblate'):
        h.add(_.Transient('earthMajorAxis', 6.37816e+06))
        h.add(_.Transient('earthMinorAxis', 6.35678e+06))
        h.alias('earthMajorAxisInMetres', 'earthMajorAxis')
        h.alias('earthMinorAxisInMetres', 'earthMinorAxis')

    h.add(_.Bit('resolutionAndComponentFlags3', _.Get('resolutionAndComponentFlags'), 5))
    h.add(_.Bit('resolutionAndComponentFlags4', _.Get('resolutionAndComponentFlags'), 4))
    h.add(_.Bit('uvRelativeToGrid', _.Get('resolutionAndComponentFlags'), 3))
    h.add(_.Bit('resolutionAndComponentFlags6', _.Get('resolutionAndComponentFlags'), 2))
    h.add(_.Bit('resolutionAndComponentFlags7', _.Get('resolutionAndComponentFlags'), 1))
    h.add(_.Bit('resolutionAndComponentFlags8', _.Get('resolutionAndComponentFlags'), 0))
    h.add(_.Signed('latitudeOfLastGridPoint', 3))
    h.add(_.Scale('latitudeOfLastGridPointInDegrees', _.Get('latitudeOfLastGridPoint'), _.Get('oneConstant'), _.Get('grib1divider'), _.Get('truncateDegrees')))
    h.alias('geography.latitudeOfLastGridPointInDegrees', 'latitudeOfLastGridPointInDegrees')
    h.alias('La2', 'latitudeOfLastGridPoint')
    h.add(_.Signed('longitudeOfLastGridPoint', 3))
    h.add(_.Scale('longitudeOfLastGridPointInDegrees', _.Get('longitudeOfLastGridPoint'), _.Get('oneConstant'), _.Get('grib1divider'), _.Get('truncateDegrees')))
    h.alias('geography.longitudeOfLastGridPointInDegrees', 'longitudeOfLastGridPointInDegrees')
    h.alias('Lo2', 'longitudeOfLastGridPoint')
    h.alias('yFirst', 'latitudeOfFirstGridPointInDegrees')
    h.alias('yLast', 'latitudeOfLastGridPointInDegrees')
    h.alias('xFirst', 'longitudeOfFirstGridPointInDegrees')
    h.alias('xLast', 'longitudeOfLastGridPointInDegrees')
    h.alias('latitudeFirstInDegrees', 'latitudeOfFirstGridPointInDegrees')
    h.alias('longitudeFirstInDegrees', 'longitudeOfFirstGridPointInDegrees')
    h.alias('latitudeLastInDegrees', 'latitudeOfLastGridPointInDegrees')
    h.alias('longitudeLastInDegrees', 'longitudeOfLastGridPointInDegrees')
コード例 #28
0
def load(h):

    h.add(_.Signed('latitudeOfStretchingPole', 3))
    h.add(_.Signed('longitudeOfStretchingPole', 3))
    h.add(
        _.Scale('latitudeOfStretchingPoleInDegrees',
                _.Get('latitudeOfStretchingPole'), _.Get('oneConstant'),
                _.Get('grib1divider'), _.Get('truncateDegrees')))
    h.alias('geography.latitudeOfStretchingPoleInDegrees',
            'latitudeOfStretchingPoleInDegrees')
    h.add(
        _.Scale('longitudeOfStretchingPoleInDegrees',
                _.Get('longitudeOfStretchingPole'), _.Get('oneConstant'),
                _.Get('grib1divider'), _.Get('truncateDegrees')))
    h.alias('geography.longitudeOfStretchingPoleInDegrees',
            'longitudeOfStretchingPoleInDegrees')
    h.add(_.Ibmfloat('stretchingFactor', 4))
    h.alias('geography.stretchingFactor', 'stretchingFactor')
コード例 #29
0
def load(h):

    h.add(_.Unsigned('forecastProbabilityNumber', 1))
    h.add(_.Unsigned('totalNumberOfForecastProbabilities', 1))
    h.add(
        _.Codetable('probabilityType', 1, "4.9.table", _.Get('masterDir'),
                    _.Get('localDir')))
    h.add(_.Codetable_title('probabilityTypeName', _.Get('probabilityType')))
    h.add(_.Signed('scaleFactorOfLowerLimit', 1))
    h.add(_.Signed('scaledValueOfLowerLimit', 4))
    h.add(
        _.From_scale_factor_scaled_value('lowerLimit',
                                         _.Get('scaleFactorOfLowerLimit'),
                                         _.Get('scaledValueOfLowerLimit')))
    h.add(_.Signed('scaleFactorOfUpperLimit', 1))
    h.add(_.Signed('scaledValueOfUpperLimit', 4))
    h.add(
        _.From_scale_factor_scaled_value('upperLimit',
                                         _.Get('scaleFactorOfUpperLimit'),
                                         _.Get('scaledValueOfUpperLimit')))
コード例 #30
0
def load(h):

    h.add(_.Constant('GRIBEXSection1Problem', (100 - _.Get('section1Length'))))
    _.Template('grib1/mars_labeling.def').load(h)
    h.add(_.Unsigned('forecastOrSingularVectorNumber', 2))
    h.add(_.Unsigned('numberOfIterations', 2))
    h.add(_.Unsigned('numberOfSingularVectorsComputed', 2))
    h.add(_.Unsigned('normAtInitialTime', 1))
    h.add(_.Unsigned('normAtFinalTime', 1))
    h.add(_.Unsigned('multiplicationFactorForLatLong', 4))
    h.add(_.Signed('northWestLatitudeOfVerficationArea', 4))
    h.add(_.Signed('northWestLongitudeOfVerficationArea', 4))
    h.add(_.Signed('southEastLatitudeOfVerficationArea', 4))
    h.add(_.Signed('southEastLongitudeOfVerficationArea', 4))
    h.add(_.Unsigned('accuracyMultipliedByFactor', 4))
    h.add(_.Unsigned('numberOfSingularVectorsEvolved', 2))
    h.add(_.Signed('NINT_LOG10_RITZ', 4))
    h.add(_.Signed('NINT_RITZ_EXP', 4))
    h.add(_.Unsigned('optimisationTime', 1))
    h.alias('mars.opttime', 'optimisationTime')
    h.add(_.Unsigned('forecastLeadTime', 1))
    h.alias('mars.leadtime', 'forecastLeadTime')
    h.add(_.Ascii('marsDomain', 1))
    h.add(_.Unsigned('methodNumber', 2))
    h.add(_.Unsigned('numberOfForecastsInEnsemble', 2))
    h.add(_.Unsigned('shapeOfVerificationArea', 1))
    h.add(_.Pad('padding_loc21_1', 1))
    h.alias('mars.domain', 'marsDomain')