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')
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')
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')
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')
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')
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')
def load(h): h.add(_.Constant('GRIBEXSection1Problem', (240 - _.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('forecastMonth', 2)) h.add(_.Unsigned('dateOfForecastRun', 4)) h.alias('referenceDate', 'dateOfForecastRun') h.add(_.Unsigned('numberOfModels', 1)) h.add(_.Pad('padding_local1_31', 42)) with h.list('listOfModelIdentifiers'): for i in range(0, h.get_l('numberOfModels')): h.add(_.Codetable('modelIdentifier', 2, "common/c-1.table")) h.add(_.Padto('padding_sec1_loc', (_.Get('offsetSection1') + 240))) h.alias('number', 'perturbationNumber') h.alias('total', 'numberOfForecastsInEnsemble')
def load(h): h.add(_.Constant('GRIBEXSection1Problem', (1080 - _.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('channelNumber', 1)) h.alias('mars.channel', 'channelNumber') h.add(_.Unsigned('scalingFactorForFrequencies', 4)) h.alias('integerScalingFactorAppliedToFrequencies', 'scalingFactorForFrequencies') h.add(_.Unsigned('numberOfFrequencies', 1)) h.alias('totalNumberOfFrequencies', 'numberOfFrequencies') h.alias('Nf', 'numberOfFrequencies') h.add(_.Pad('padding_loc37_1', 3)) h.add(_.Unsigned('listOfScaledFrequencies', 4, _.Get('numberOfFrequencies'))) h.add(_.Unsigned('offsetToEndOf4DvarWindow', 2)) h.add(_.Unsigned('lengthOf4DvarWindow', 2)) h.alias('anoffset', 'offsetToEndOf4DvarWindow') h.add(_.Padto('padding_loc37_2', (_.Get('offsetSection1') + 1080)))
def load(h): h.add(_.Position('offsetSection2')) h.add(_.Section_length('section2Length', 3)) h.add(_.Section_pointer('section2Pointer', _.Get('offsetSection2'), _.Get('section2Length'), 2)) h.add(_.Transient('radius', 6367470)) h.alias('radiusOfTheEarth', 'radius') h.alias('radiusInMetres', 'radius') h.add(_.Transient('shapeOfTheEarth', 6)) h.add(_.Unsigned('numberOfVerticalCoordinateValues', 1)) h.add(_.Constant('neitherPresent', 255)) h.alias('NV', 'numberOfVerticalCoordinateValues') h.alias('numberOfCoordinatesValues', 'numberOfVerticalCoordinateValues') h.add(_.Unsigned('pvlLocation', 1)) h.add(_.Codetable('dataRepresentationType', 1, "grib1/6.table")) h.add(_.Codetable_title('gridDefinitionDescription', _.Get('dataRepresentationType'))) h.alias('isRotatedGrid', 'zero') if (h.get_l('dataRepresentationType') < 192): _.Template('grib1/grid_definition_[dataRepresentationType:l].def').load(h) else: _.Template('grib1/grid_definition_[dataRepresentationType:l].[centre:l].def').load(h) h.add(_.Position('endGridDefinition')) h.add(_.Position('offsetBeforePV')) h.add(_.Transient('PVPresent', (_.Get('NV') > 0))) if (h.get_l('pvlLocation') != h.get_l('neitherPresent')): h.add(_.Padto('padding_sec2_2', ((_.Get('offsetSection2') + _.Get('pvlLocation')) - 1))) else: h.add(_.Padto('padding_sec2_2', (_.Get('offsetSection2') + 32))) if h.get_l('PVPresent'): h.add(_.Ibmfloat('pv', 4, _.Get('NV'))) h.alias('vertical.pv', 'pv') h.add(_.Position('offsetBeforePL')) h.add(_.Transient('PLPresent', _.And((_.Get('section2Length') > (_.Get('offsetBeforePL') - _.Get('offsetSection2'))), (_.Get('section2Length') >= (((_.Get('Nj') * 2) + _.Get('offsetBeforePL')) - _.Get('offsetSection2')))))) if h.get_l('PLPresent'): h.add(_.Constant('numberOfOctectsForNumberOfPoints', 2)) h.add(_.Constant('interpretationOfNumberOfPoints', 1)) h.add(_.Unsigned('pl', 2, _.Get('Nj'))) h.alias('geography.pl', 'pl') if ((h.get_l('PVPresent') == 0) and (h.get_l('PLPresent') == 0)): h.add(_.Padto('padding_sec2_1', (_.Get('offsetSection2') + 32))) pass # when block pass # when block h.alias('reducedGrid', 'PLPresent') def deletePV_inline_concept(h): def wrapped(h): PVPresent = h.get_l('PVPresent') NV = h.get_l('NV') if PVPresent == 0 and NV == 0: return 1 return wrapped h.add(_.Concept('deletePV', 'unknown', concepts=deletePV_inline_concept(h))) h.add(_.Padtoeven('padding_sec2_3', _.Get('offsetSection2'), _.Get('section2Length'))) h.add(_.Md5('md5Section2', _.Get('offsetSection2'), _.Get('section2Length'))) h.alias('md5GridSection', 'md5Section2')