Пример #1
0
def load(h):

    h.add(_.Constant('GRIBEXSection1Problem', 0))
    h.add(_.StringCodetable('thisMarsClass', 1, "mars/class.table"))
    h.add(_.StringCodetable('thisMarsType', 1, "mars/type.table"))
    h.add(_.StringCodetable('thisMarsStream', 2, "mars/stream.table"))
    h.add(_.Ksec1expver('thisExperimentVersionNumber', 4))
    h.alias('ls.dataType', 'thisMarsType')
    h.alias('mars.class', 'thisMarsClass')
    h.alias('mars.type', 'thisMarsType')
    h.alias('mars.stream', 'thisMarsStream')
    h.alias('mars.expver', 'thisExperimentVersionNumber')
    h.add(_.Pad('padding_loc192_1', 2))
    h.add(_.Unsigned('numberOfLocalDefinitions', 1))

    if (h.get_l('numberOfLocalDefinitions') == 2):
        h.add(_.Unsigned('subLocalDefinitionLength1', 2))
        h.add(_.Unsigned('subLocalDefinitionNumber1', 1))
        h.add(_.StringCodetable('marsClass1', 1, "mars/class.table"))
        h.add(_.StringCodetable('marsType1', 1, "mars/type.table"))
        h.add(_.StringCodetable('marsStream1', 2, "mars/stream.table"))
        h.add(_.Ksec1expver('experimentVersionNumber1', 4))
        _.Template(
            'grib1/local_no_mars.98.[subLocalDefinitionNumber1].def').load(h)
        h.add(_.Unsigned('subLocalDefinitionLength2', 2))
        h.add(_.Unsigned('subLocalDefinitionNumber2', 1))
        h.add(_.StringCodetable('marsClass2', 1, "mars/class.table"))
        h.add(_.StringCodetable('marsType2', 1, "mars/type.table"))
        h.add(_.StringCodetable('marsStream2', 2, "mars/stream.table"))
        h.add(_.Ksec1expver('experimentVersionNumber2', 4))
        _.Template(
            'grib1/local_no_mars.98.[subLocalDefinitionNumber2].def').load(h)
Пример #2
0
def load(h):

    h.add(_.Constant('tablesVersionLatest', 25))
    h.add(_.Constant('million', 1000000))
    h.add(_.Constant('grib2divider', 1000000))
    h.alias('extraDimensionPresent', 'zero')
    h.alias('is_tigge', 'zero')
    h.alias('is_s2s', 'zero')
    h.add(_.Transient('is_efas', 0))
    h.add(_.Transient('angleSubdivisions', _.Get('grib2divider')))
    h.add(_.Gts_header('gts_header'))
    h.add(_.Gts_header('gts_TTAAii', 20, 6))
    h.add(_.Gts_header('gts_CCCC', 27, 4))
    h.add(_.Gts_header('gts_ddhh00', 32, 6))
    h.add(_.Transient('missingValue', 9999))
    h.add(_.Constant('ieeeFloats', 1))
    h.add(_.Constant('isHindcast', 0))
    h.add(_.Position('offsetSection0'))
    h.add(_.Constant('section0Length', 16))
    h.add(_.Ascii('identifier', 4))
    h.add(_.Unsigned('reserved', 2))
    h.add(_.Codetable('discipline', 1, "0.0.table", _.Get('masterDir'), _.Get('localDir')))
    h.add(_.Unsigned('editionNumber', 1))
    h.alias('ls.edition', 'editionNumber')
    h.add(_.Section_length('totalLength', 8))
    h.add(_.Position('startOfHeaders'))
    h.add(_.Section_pointer('section0Pointer', _.Get('offsetSection0'), _.Get('section0Length'), 0))
    _.Template('grib2/sections.def').load(h)
    _.Template('grib2/section.8.def').load(h)
Пример #3
0
def load(h):

    _.Template('grib2/mars_labeling.def').load(h)
    h.add(_.Transient('productDefinitionTemplateNumberInternal', -1))
    h.add(
        _.Local_definition('localDefinitionNumber',
                           _.Get('grib2LocalSectionNumber'),
                           _.Get('productDefinitionTemplateNumber'),
                           _.Get('productDefinitionTemplateNumberInternal'),
                           _.Get('type'), _.Get('stream'), _.Get('class'),
                           _.Get('eps'), _.Get('stepType'),
                           _.Get('derivedForecast')))
    h.add(
        _.G2_eps('eps', _.Get('productDefinitionTemplateNumber'),
                 _.Get('type'), _.Get('stream'), _.Get('stepType'),
                 _.Get('derivedForecast')))
    _.Template('grib2/local.98.[grib2LocalSectionNumber:l].def', True).load(h)
    h.add(_.Position('offsetAfterLocalSection'))
    h.add(_.Transient('addExtraLocalSection', 0))
    h.add(_.Transient('deleteExtraLocalSection', 0))
    h.add(
        _.Evaluate(
            'extraLocalSectionPresent',
            (((_.Get('section2Length') - _.Get('offsetAfterLocalSection')) +
              _.Get('offsetSection2')) > 0)))

    if ((h.get_l('extraLocalSectionPresent')
         or h.get_l('addExtraLocalSection'))
            and not (h.get_l('deleteExtraLocalSection'))):
        h.add(
            _.Codetable(
                'extraLocalSectionNumber', 2,
                "grib2/grib2LocalSectionNumber.[centreForLocal:l].table"))
        _.Template('grib2/local.98.[extraLocalSectionNumber:l].def').load(h)
Пример #4
0
def load(h):

    h.alias('localDefinitionNumber', 'grib2LocalSectionNumber')
    _.Template('grib2/local.[centreForLocal:l].[grib2LocalSectionNumber:l].def'
               ).load(h)
    _.Template('grib2/mars_labeling.82.def').load(h)
    _.Template('mars/eswi/grib2.[stream:s].[type:s].def', True).load(h)
    _.Template('grib2/ls_labeling.82.def').load(h)
    h.add(_.Position('offsetAfterLocalSection'))
Пример #5
0
def load(h):

    h.add(
        _.Codetable('localDefinitionNumber', 1,
                    "grib1/localDefinitionNumber.82.table"))
    _.Template('grib1/local.82.[localDefinitionNumber:l].def').load(h)
    _.Template('grib1/ls_labeling.82.def').load(h)
    _.Template('grib1/mars_labeling.82.def').load(h)
    _.Template('mars/eswi/grib1.[stream:s].[type:s].def', True).load(h)
Пример #6
0
def load(h):

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

    if (h.get_l('numberOfLocalDefinitions') == 2):
        h.add(_.Unsigned('subLocalDefinitionNumber1', 1))
        _.Template('grib2/local.98.[subLocalDefinitionNumber1].def').load(h)
        h.add(_.Unsigned('subLocalDefinitionNumber2', 1))
        _.Template('grib2/local.98.[subLocalDefinitionNumber2].def').load(h)
Пример #7
0
def load(h):

    h.add(_.Position('startOfHeaders'))
    h.add(_.Ascii('identifier', 4))
    h.alias('ls.identifier', 'identifier')
    h.add(_.Transient('missingValue', 9999))
    h.add(_.Constant('ieeeFloats', 0))
    h.add(_.Constant('zero', 0))
    _.Template('diag/section.1.def').load(h)
    _.Template('diag/section.4.def').load(h)
    h.add(_.Ascii('endMark', 4))
    h.add(_.Position('totalLength'))
Пример #8
0
def load(h):

    h.add(_.Constant('GRIBEXSection1Problem', (120 - _.Get('section1Length'))))
    h.alias('grib2LocalSectionPresent', 'present')
    h.add(_.Constant('grib2LocalSectionNumber', 18))

    if (h.get_s('stepType') == "instant"):
        h.alias('productDefinitionTemplateNumber', 'epsPoint')
    else:
        h.alias('productDefinitionTemplateNumber', 'epsContinous')

    _.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(_.Codetable('dataOrigin', 1, "common/c-1.table"))
    h.alias('origin', 'dataOrigin')
    h.add(_.Ascii('modelIdentifier', 4))
    h.add(_.Unsigned('consensusCount', 1))
    h.add(_.Pad('padding_loc18_1', 3))

    with h.list('consensus'):
        for i in range(0, h.get_l('consensusCount')):
            h.add(_.Ascii('ccccIdentifiers', 4))
    h.add(_.Padto('padding_loc18_2', (_.Get('offsetSection1') + 120)))
    h.alias('local.dataOrigin', 'dataOrigin')
    h.alias('local.modelIdentifier', 'modelIdentifier')
    h.alias('local.consensusCount', 'consensusCount')
Пример #9
0
def load(h):

    h.add(_.Position('offsetBeforeData'))
    h.add(
        _.Data_g22order_packing('codedValues', _.Get('section7Length'),
                                _.Get('offsetBeforeData'),
                                _.Get('offsetSection7'),
                                _.Get('numberOfValues'), _.Get('bitsPerValue'),
                                _.Get('referenceValue'),
                                _.Get('binaryScaleFactor'),
                                _.Get('decimalScaleFactor'),
                                _.Get('typeOfOriginalFieldValues'),
                                _.Get('groupSplittingMethodUsed'),
                                _.Get('missingValueManagementUsed'),
                                _.Get('primaryMissingValueSubstitute'),
                                _.Get('secondaryMissingValueSubstitute'),
                                _.Get('numberOfGroupsOfDataValues'),
                                _.Get('referenceForGroupWidths'),
                                _.Get('numberOfBitsUsedForTheGroupWidths'),
                                _.Get('referenceForGroupLengths'),
                                _.Get('lengthIncrementForTheGroupLengths'),
                                _.Get('trueLengthOfLastGroup'),
                                _.Get('numberOfBitsForScaledGroupLengths'),
                                _.Get('orderOfSpatialDifferencing'),
                                _.Get('numberOfOctetsExtraDescriptors')))
    h.add(
        _.Data_apply_bitmap('values', _.Get('codedValues'), _.Get('bitmap'),
                            _.Get('missingValue'), _.Get('binaryScaleFactor'),
                            _.Get('numberOfDataPoints'),
                            _.Get('numberOfValues')))
    h.alias('data.packedValues', 'codedValues')
    _.Template('common/statistics_grid.def').load(h)
Пример #10
0
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')
Пример #11
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)
Пример #12
0
def load(h):

    h.add(_.Position('offsetSection7'))
    h.add(_.Section_length('section7Length', 4))
    h.add(_.Section_pointer('section7', _.Get('offsetSection7'), _.Get('section7Length'), 7))
    h.add(_.Unsigned('numberOfSection', 1))
    h.add(_.Position('offsetBeforeData'))
    _.Template('grib2/template.7.[dataRepresentationTemplateNumber:l].def').load(h)
    h.add(_.Decimal_precision('changeDecimalPrecision', _.Get('bitsPerValue'), _.Get('decimalScaleFactor'), _.Get('changingPrecision'), _.Get('values')))
    h.add(_.Decimal_precision('decimalPrecision', _.Get('bitsPerValue'), _.Get('decimalScaleFactor'), _.Get('changingPrecision')))
    h.alias('setDecimalPrecision', 'changeDecimalPrecision')
    h.add(_.Bits_per_value('setBitsPerValue', _.Get('values'), _.Get('bitsPerValue')))
    h.add(_.Size('getNumberOfValues', _.Get('values')))
    h.add(_.Scale_values('scaleValuesBy', _.Get('values'), _.Get('missingValue')))
    h.add(_.Offset_values('offsetValuesBy', _.Get('values'), _.Get('missingValue')))

    def productType_inline_concept(h):
        def wrapped(h):

            grib2LocalSectionPresent = h.get_l('grib2LocalSectionPresent')
            centre = h.get_l('centre')
            grib2LocalSectionNumber = h.get_l('grib2LocalSectionNumber')
            productDefinitionTemplateNumber = h.get_l('productDefinitionTemplateNumber')

            if grib2LocalSectionPresent == 1 and centre == 98 and grib2LocalSectionNumber == 500 and productDefinitionTemplateNumber == 2000:
                return 'obstat'

        return wrapped

    h.add(_.Concept('productType', 'unknown', concepts=productType_inline_concept(h)))

    h.add(_.Position('offsetAfterData'))
    h.add(_.Md5('md5Section7', _.Get('offsetSection7'), _.Get('section7Length')))
    h.alias('md5DataSection', 'md5Section7')
Пример #13
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')
Пример #14
0
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')
Пример #15
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')
Пример #16
0
def load(h):

    h.add(_.Constant('GRIBEXSection1Problem', (62 - _.Get('section1Length'))))
    _.Template('grib1/mars_labeling.def').load(h)
    h.add(_.Unsigned('intervalBetweenTimes', 1))
    h.add(_.Constant('numberOfIntegers', 12))
    h.add(_.Unsigned('unsignedIntegers', 1, _.Get('numberOfIntegers')))
Пример #17
0
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')))
Пример #18
0
def load(h):

    h.add(_.Constant('GRIBEXSection1Problem', (69 - _.Get('section1Length'))))
    h.add(_.Transient('localFlag', 2))
    _.Template('grib1/mars_labeling.def').load(h)
    h.alias('grib2LocalSectionPresent', 'present')
    h.add(_.Constant('grib2LocalSectionNumber', 26))

    if (h.get_s('stepType') == "instant"):
        h.alias('productDefinitionTemplateNumber', 'epsPoint')
    else:
        h.alias('productDefinitionTemplateNumber', 'epsContinous')

    h.add(_.Constant('wrongPadding', 1))
    h.add(_.Unsigned('number', 1))
    h.add(_.Unsigned('numberOfForecastsInEnsemble', 1))
    h.alias('totalNumber', 'numberOfForecastsInEnsemble')
    h.add(_.Unsigned('referenceDate', 4))
    h.add(_.Unsigned('climateDateFrom', 4))
    h.add(_.Unsigned('climateDateTo', 4))
    h.add(_.Pad('padding_loc26_1', 6))
    h.alias('perturbationNumber', 'number')
    h.alias('local.referenceDate', 'referenceDate')
    h.alias('local.climateDateFrom', 'climateDateFrom')
    h.alias('local.climateDateTo', 'climateDateTo')
Пример #19
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')
Пример #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
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))
Пример #22
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(_.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')
Пример #23
0
def load(h):

    _.Template('grib1/mars_labeling.def').load(h)
    h.add(_.Constant('GRIBEXSection1Problem', (80 - _.Get('section1Length'))))
    h.add(_.Unsigned('number', 1))
    h.alias('perturbationNumber', 'number')
    h.add(_.Unsigned('ensembleSize', 1))
    h.alias('totalNumber', 'ensembleSize')
    h.add(
        _.Sprintf('quantile', "%s:%s", _.Get('number'), _.Get('ensembleSize')))
    h.add(_.Unsigned('versionNumberOfExperimentalSuite', 1))
    h.alias('powerOfTenUsedToScaleClimateWeight',
            'versionNumberOfExperimentalSuite')
    h.add(_.Unsigned('implementationDateOfModelCycle', 4))
    h.alias('weightAppliedToClimateMonth1', 'implementationDateOfModelCycle')
    h.add(_.Unsigned('numberOfReforecastYearsInModelClimate', 3))
    h.alias('firstMonthUsedToBuildClimateMonth1',
            'numberOfReforecastYearsInModelClimate')
    h.add(_.Unsigned('numberOfDaysInClimateSamplingWindow', 3))
    h.alias('lastMonthUsedToBuildClimateMonth1',
            'numberOfDaysInClimateSamplingWindow')
    h.add(_.Unsigned('sampleSizeOfModelClimate', 3))
    h.alias('firstMonthUsedToBuildClimateMonth2', 'sampleSizeOfModelClimate')
    h.add(_.Unsigned('versionOfModelClimate', 3))
    h.alias('lastMonthUsedToBuildClimateMonth2', 'versionOfModelClimate')
    h.add(_.Unsigned('efiOrder', 1))
    h.add(_.Pad('padding_loc19_2', 11))
Пример #24
0
def load(h):

    h.add(_.Constant('GRIBEXSection1Problem', (72 - _.Get('section1Length'))))
    _.Template('grib1/mars_labeling.def').load(h)
    h.add(_.Unsigned('classOfAnalysis', 1))
    h.add(_.Unsigned('typeOfAnalysis', 1))
    h.add(_.Unsigned('streamOfAnalysis', 2))
    h.add(_.Ksec1expver('experimentVersionNumberOfAnalysis', 4))
    h.add(_.Unsigned('yearOfAnalysis', 1))
    h.add(_.Unsigned('monthOfAnalysis', 1))
    h.add(_.Unsigned('dayOfAnalysis', 1))
    h.add(_.Unsigned('hourOfAnalysis', 1))
    h.add(_.Unsigned('minuteOfAnalysis', 1))
    h.add(_.Unsigned('centuryOfAnalysis', 1))
    h.add(_.Unsigned('originatingCentreOfAnalysis', 1))
    h.add(_.Unsigned('subcentreOfAnalysis', 1))
    h.add(_.Pad('padding_local11_1', 7))
    h.add(_.Constant('secondsOfAnalysis', 0))
    h.add(
        _.G1date('dateOfAnalysis', _.Get('centuryOfAnalysis'),
                 _.Get('yearOfAnalysis'), _.Get('monthOfAnalysis'),
                 _.Get('dayOfAnalysis')))
    h.add(
        _.Time('timeOfAnalysis', _.Get('hourOfAnalysis'),
               _.Get('minuteOfAnalysis'), _.Get('secondsOfAnalysis')))
    h.alias('date', 'dateOfAnalysis')
    h.alias('time', 'timeOfAnalysis')
Пример #25
0
def load(h):

    h.add(
        _.Data_jpeg2000_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('typeOfCompressionUsed'),
                                _.Get('targetCompressionRatio'), _.Get('Nx'),
                                _.Get('Ny'),
                                _.Get('interpretationOfNumberOfPoints'),
                                _.Get('numberOfDataPoints'),
                                _.Get('scanningMode')))
    h.add(
        _.Data_apply_bitmap('values', _.Get('codedValues'), _.Get('bitmap'),
                            _.Get('missingValue'), _.Get('binaryScaleFactor'),
                            _.Get('numberOfDataPoints'),
                            _.Get('numberOfValues')))
    h.alias('data.packedValues', 'codedValues')
    _.Template('common/statistics_grid.def').load(h)
Пример #26
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('partitionTable', 1))
    h.add(_.Unsigned('numberOfPartitions', 1))

    with h.list('partitions'):
        for i in range(0, h.get_l('numberOfPartitions')):
            h.add(_.Unsigned('partitionItems', 2))
    h.add(_.Codetable('partitionNumber', 2, "4.[partitionTable].table", _.Get('masterDir'), _.Get('localDir')))
    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))
Пример #27
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))
Пример #28
0
def load(h):

    h.add(_.Constant('GRIBEXSection1Problem', (60 - _.Get('section1Length'))))
    h.add(_.Transient('localFlag', 1))
    _.Template('grib1/mars_labeling.def').load(h)
    h.alias('grib2LocalSectionPresent', 'present')
    h.add(_.Constant('grib2LocalSectionNumber', 15))

    if (h.get_s('stepType') == "instant"):
        h.alias('productDefinitionTemplateNumber', 'one')
    else:
        h.alias('productDefinitionTemplateNumber', 'eleven')

    h.add(_.Unsigned('perturbationNumber', 2))
    h.alias('number', 'perturbationNumber')
    h.add(_.Unsigned('systemNumber', 2))
    h.add(_.Unsigned('methodNumber', 2))
    h.add(_.Unsigned('numberOfForecastsInEnsemble', 2))
    h.alias('totalNumber', 'numberOfForecastsInEnsemble')
    h.add(_.Pad('padding_loc15_1', 3))
    h.alias('origin', 'centre')
    h.alias('number', 'perturbationNumber')
    h.alias('total', 'numberOfForecastsInEnsemble')
    h.alias('system', 'systemNumber')
    h.alias('method', 'methodNumber')
    h.alias('local.perturbationNumber', 'perturbationNumber')
    h.alias('local.systemNumber', 'systemNumber')
    h.alias('local.methodNumber', 'methodNumber')
Пример #29
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)
Пример #30
0
def load(h):

    h.add(_.Label('CPTEC local definition'))
    h.add(
        _.Codetable('localDefinitionNumber', 1,
                    "grib1/localDefinitionNumber.7.table"))
    _.Template('grib1/local.7.[localDefinitionNumber:l].def').load(h)
    h.add(_.Section_padding('local_padding'))