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)
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)
def load(h): 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))
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)
def load(h): h.add(_.Position('offsetSection6')) h.add(_.Position('offsetBSection6')) h.add(_.Section_length('section6Length', 4)) h.add(_.Section_pointer('section6', _.Get('offsetSection6'), _.Get('section6Length'), 6)) h.add(_.Unsigned('numberOfSection', 1)) h.add(_.Codetable('bitMapIndicator', 1, "6.0.table", _.Get('masterDir'), _.Get('localDir'))) h.add(_.G2bitmap_present('bitmapPresent', _.Get('bitMapIndicator'))) h.alias('geography.bitmapPresent', 'bitmapPresent') h.add(_.Transient('missingValuesPresent', _.Get('bitmapPresent'))) if (h.get_l('bitMapIndicator') == 0): if (h.get_l('dataRepresentationTemplateNumber') == 1): if (h.get_l('matrixBitmapsPresent') == 1): h.add(_.G2bitmap('primaryBitmap', _.Get('tableReference'), _.Get('missingValue'), _.Get('offsetBSection6'), _.Get('section6Length'), _.Get('numberOfDataMatrices'))) else: h.add(_.G2bitmap('bitmap', _.Get('tableReference'), _.Get('missingValue'), _.Get('offsetBSection6'), _.Get('section6Length'), _.Get('numberOfDataPoints'))) h.alias('geography.bitmap', 'bitmap') else: h.add(_.G2bitmap('bitmap', _.Get('tableReference'), _.Get('missingValue'), _.Get('offsetBSection6'), _.Get('section6Length'), _.Get('numberOfDataPoints'))) h.alias('geography.bitmap', 'bitmap') if (h.get_l('bitMapIndicator') == 255): if ((h.get_l('dataRepresentationTemplateNumber') == 2) or (h.get_l('dataRepresentationTemplateNumber') == 3)): h.add(_.Transient('missingValuesPresent', (_.Get('missingValueManagementUsed') != 0))) h.add(_.Md5('md5Section6', _.Get('offsetSection6'), _.Get('section6Length')))
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')))
def load(h): h.add(_.Lookup('sectionNumber', 1, 4)) if ((h.get_l('sectionNumber') == 1) or h._new()): h.add(_.Position('sectionPosition')) _.Template('grib2/section.1.def').load(h) h.add(_.Lookup('sectionNumber', 1, 4)) h.add(_.Transient('grib2LocalSectionPresent', 0)) h.alias('section2Used', 'zero') h.alias('setLocalDefinition', 'grib2LocalSectionPresent') h.add(_.Transient('deleteLocalDefinition', 0)) if (((h.get_l('sectionNumber') == 2) or (h.get_l('grib2LocalSectionPresent') > 0)) and (h.get_l('deleteLocalDefinition') == 0)): h.add(_.Position('sectionPosition')) _.Template('grib2/section.2.def').load(h) h.alias('localUsePresent', 'section2Used') h.add(_.Lookup('sectionNumber', 1, 4)) if ((h.get_l('sectionNumber') == 3) or h._new()): h.add(_.Position('sectionPosition')) _.Template('grib2/section.3.def').load(h) h.add(_.Lookup('sectionNumber', 1, 4)) if ((h.get_l('sectionNumber') == 4) or h._new()): h.add(_.Position('sectionPosition')) _.Template('grib2/section.4.def').load(h) h.add(_.Position('endOfHeadersMarker')) h.add( _.Evaluate('lengthOfHeaders', (_.Get('endOfHeadersMarker') - _.Get('startOfHeaders')))) h.add( _.Md5('md5Headers', _.Get('startOfHeaders'), _.Get('lengthOfHeaders'))) h.add(_.Lookup('sectionNumber', 1, 4)) if ((h.get_l('sectionNumber') == 5) or h._new()): h.add(_.Position('sectionPosition')) _.Template('grib2/section.5.def').load(h) h.add(_.Lookup('sectionNumber', 1, 4)) if ((h.get_l('sectionNumber') == 6) or h._new()): h.add(_.Position('sectionPosition')) _.Template('grib2/section.6.def').load(h) h.add(_.Lookup('sectionNumber', 1, 4)) if ((h.get_l('sectionNumber') == 7) or h._new()): h.add(_.Position('sectionPosition')) _.Template('grib2/section.7.def').load(h)
def load(h): h.add(_.Transient('bitsPerValue', 0)) h.add(_.Transient('referenceValue', 0)) h.add(_.Transient('binaryScaleFactor', 0)) h.add(_.Transient('decimalScaleFactor', 0)) h.alias('numberOfBits', 'bitsPerValue') h.alias('numberOfBitsContainingEachPackedValue', 'bitsPerValue') h.add( _.Codetable('precision', 1, "5.7.table", _.Get('masterDir'), _.Get('localDir')))
def load(h): h.add(_.Constant('ieeeFloats', 0)) h.add(_.Transient('eps', 0)) h.add(_.Constant('two', 1)) h.add(_.Constant('three', 1)) h.add(_.Constant('eight', 8)) h.add(_.Constant('eleven', 11)) h.add(_.Constant('epsPoint', 1)) h.add(_.Constant('epsContinous', 11)) h.add(_.Constant('epsStatisticsPoint', 2)) h.add(_.Constant('epsStatisticsContinous', 12)) h.add(_.Headers_only('headersOnly')) 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(_.Ascii('identifier', 4)) h.add(_.Constant('offsetSection0', 0)) h.add(_.Constant('section0Length', 8)) h.add(_.Section_pointer('section0Pointer', _.Get('offsetSection0'), _.Get('section0Length'), 0)) h.add(_.G1_message_length('totalLength', 3, _.Get('section4Length'))) h.add(_.Position('startOfHeaders')) h.add(_.Unsigned('editionNumber', 1)) _.Template('grib1/section.1.def').load(h) h.alias('ls.edition', 'editionNumber') h.add(_.Bit('gridDescriptionSectionPresent', _.Get('section1Flags'), 7)) h.add(_.Gds_is_present('GDSPresent', _.Get('gridDescriptionSectionPresent'), _.Get('gridDefinition'), _.Get('bitmapPresent'), _.Get('values'))) h.add(_.Bit('bitmapPresent', _.Get('section1Flags'), 6)) h.alias('bitmapSectionPresent', 'bitmapPresent') h.alias('geography.bitmapPresent', 'bitmapPresent') h.alias('missingValuesPresent', 'bitmapPresent') h.add(_.Transient('angleSubdivisions', 1000)) if h.get_l('gridDescriptionSectionPresent'): _.Template('grib1/section.2.def').load(h) else: _.Template('grib1/predefined_grid.def').load(h) h.add(_.Position('endOfHeadersMarker')) h.add(_.Evaluate('lengthOfHeaders', (_.Get('endOfHeadersMarker') - _.Get('startOfHeaders')))) h.add(_.Md5('md5Headers', _.Get('startOfHeaders'), _.Get('lengthOfHeaders'))) if not (h.get_l('headersOnly')): h.add(_.Transient('missingValue', 9999)) if h.get_l('bitmapPresent'): _.Template('grib1/section.3.def').load(h) else: h.add(_.Constant('tableReference', 0)) _.Template('grib1/section.4.def').load(h) _.Template('grib1/section.5.def').load(h)
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')
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')))
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')
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')))
def load(h): h.add(_.Position('offsetSection3')) h.add(_.Transient('section3Length', 1)) h.add( _.Section_pointer('section3Pointer', _.Get('offsetSection3'), _.Get('section3Length'), 3)) h.add(_.Transient('numberOfUnusedBitsAtEndOfSection3', 0)) h.add(_.Transient('tableReference', 0)) h.add( _.Gds_not_present_bitmap('bitmap', _.Get('missingValue'), _.Get('numberOfValues'), _.Get('numberOfPoints'), _.Get('latitudeOfFirstGridPoint'), _.Get('Ni'), _.Get('numberOfUnusedBitsAtEndOfSection3')))
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')
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(_.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')
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(_.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(_.Unsigned('JS', 2)) h.add(_.Unsigned('KS', 2)) h.add(_.Unsigned('MS', 2)) h.alias('subSetJ', 'JS') h.alias('subSetK', 'KS') h.alias('subSetM', 'MS') h.add(_.Unsigned('TS', 4)) h.add( _.Spectral_truncation('_TS', _.Get('JS'), _.Get('KS'), _.Get('MS'), _.Get('TS'))) h.add( _.Codetable('unpackedSubsetPrecision', 1, "5.7.table", _.Get('masterDir'), _.Get('localDir'))) h.alias('precisionOfTheUnpackedSubset', 'unpackedSubsetPrecision')
def load(h): h.add(_.Transient('conceptDir', "mars")) h.add( _.Concept('waveDomain', 'unknown', 'wave_domain.def', 'conceptDir', 'conceptDir', False)) h.alias('mars.domain', 'waveDomain') h.alias('mars.anoffset', 'offsetToEndOf4DvarWindow')
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')
def load(h): h.add(_.Transient('conceptDir', "mars")) h.add(_.Concept('waveDomain', 'unknown', 'wave_domain.def', 'conceptDir', 'conceptDir', False)) h.alias('mars.domain', 'waveDomain') if (h.get_s('class') == "lw"): h.unalias('mars.domain')
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')
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'))
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(_.Transient('computeLaplacianOperator', 1)) h.add( _.Codetable('biFourierSubTruncationType', 1, "5.25.table", _.Get('masterDir'), _.Get('localDir'))) h.add( _.Codetable('biFourierPackingModeForAxes', 1, "5.26.table", _.Get('masterDir'), _.Get('localDir'))) 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(_.Unsigned('biFourierResolutionSubSetParameterN', 2)) h.add(_.Unsigned('biFourierResolutionSubSetParameterM', 2)) h.add(_.Unsigned('totalNumberOfValuesInUnpackedSubset', 4)) h.add( _.Codetable('unpackedSubsetPrecision', 1, "5.7.table", _.Get('masterDir'), _.Get('localDir'))) h.alias('precisionOfTheUnpackedSubset', 'unpackedSubsetPrecision')
def load(h): h.add(_.Transient('dummyc', 0)) h.add(_.Constant('conceptsMasterDir', "grib2")) h.add(_.Constant('conceptsLocalDirAll', "grib2/localConcepts/[centre:s]")) h.add(_.Constant('conceptsLocalDirECMF', "grib2/localConcepts/ecmf")) h.add( _.Concept('paramIdECMF', 'defaultParameter', 'paramId.def', 'conceptsMasterDir', 'conceptsLocalDirECMF', False)) h.add( _.Concept('paramId', 'paramIdECMF', 'paramId.def', 'conceptsMasterDir', 'conceptsLocalDirAll', False)) h.add( _.Concept('shortNameECMF', 'defaultShortName', 'shortName.def', 'conceptsMasterDir', 'conceptsLocalDirECMF', False)) h.add( _.Concept('shortName', 'shortNameECMF', 'shortName.def', 'conceptsMasterDir', 'conceptsLocalDirAll', False)) h.alias('ls.shortName', 'shortName') h.add( _.Concept('unitsECMF', 'defaultName', 'units.def', 'conceptsMasterDir', 'conceptsLocalDirECMF', False)) h.add( _.Concept('units', 'unitsECMF', 'units.def', 'conceptsMasterDir', 'conceptsLocalDirAll', False)) h.add( _.Concept('nameECMF', 'defaultName', 'name.def', 'conceptsMasterDir', 'conceptsLocalDirECMF', False)) h.add( _.Concept('name', 'nameECMF', 'name.def', 'conceptsMasterDir', 'conceptsLocalDirAll', False)) h.add( _.Concept('cfNameECMF', 'defaultShortName', 'cfName.def', 'conceptsMasterDir', 'conceptsLocalDirECMF', False)) h.add( _.Concept('cfName', 'cfNameECMF', 'cfName.def', 'conceptsMasterDir', 'conceptsLocalDirAll', False)) h.add( _.Concept('cfVarNameECMF', 'defaultShortName', 'cfVarName.def', 'conceptsMasterDir', 'conceptsLocalDirECMF', False)) h.add( _.Concept('cfVarName', 'cfVarNameECMF', 'cfVarName.def', 'conceptsMasterDir', 'conceptsLocalDirAll', False)) h.add( _.Concept('modelName', 'defaultName', 'modelName.def', 'conceptsMasterDir', 'conceptsLocalDirAll', False)) _.Template('grib2/products_[productionStatusOfProcessedData].def', True).load(h) h.add(_.Ifs_param('ifsParam', _.Get('paramId'), _.Get('type')))
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')))
def load(h): h.add(_.Unsigned('bitsPerValue', 1)) h.alias('numberOfBitsContainingEachPackedValue', 'bitsPerValue') h.add(_.Ibmfloat('realPart', 4)) h.add(_.Position('offsetBeforeData')) h.add(_.Transient('P', 0)) if h._gribex_mode_on(): h.add(_.Transient('computeLaplacianOperator', 0)) else: h.add(_.Transient('computeLaplacianOperator', 1)) h.add( _.Data_g1simple_packing('codedValues', _.Get('section4Length'), _.Get('offsetBeforeData'), _.Get('offsetSection4'), _.Get('unitsFactor'), _.Get('unitsBias'), _.Get('changingPrecision'), _.Get('numberOfCodedValues'), _.Get('bitsPerValue'), _.Get('referenceValue'), _.Get('binaryScaleFactor'), _.Get('decimalScaleFactor'), _.Get('optimizeScaleFactor'), _.Get('halfByte'))) h.add( _.Data_g1shsimple_packing('values', _.Get('codedValues'), _.Get('realPart'))) h.alias('data.packedValues', 'values') h.add( _.G1number_of_coded_values_sh_simple('numberOfCodedValues', _.Get('bitsPerValue'), _.Get('offsetBeforeData'), _.Get('offsetAfterData'), _.Get('halfByte'), _.Get('numberOfValues'))) _.Template('common/statistics_spectral.def').load(h)
def load(h): h.add(_.Position('offsetSection2')) h.add(_.Section_length('section2Length', 4)) h.add( _.Section_pointer('section2Pointer', _.Get('offsetSection2'), _.Get('section2Length'), 2)) h.add(_.Unsigned('numberOfSection', 1)) h.alias('tiggeSuiteID', 'zero') h.add(_.Transient('addEmptySection2', 0)) if (h.get_l('addEmptySection2') == 0): if ((h.get_l('grib2LocalSectionPresent') == 1) or ((h.get_l('section2Length') > 5) or h._new())): h.alias('section2Used', 'one') if ((h.get_l('productionStatusOfProcessedData') == 4) or (h.get_l('productionStatusOfProcessedData') == 5)): h.add( _.Codetable('tiggeLocalVersion', 2, "grib2/tiggeLocalVersion.table")) _.Template('grib2/local.tigge.[tiggeLocalVersion:l].def').load( h) if ((h.get_l('productionStatusOfProcessedData') == 10) or (h.get_l('productionStatusOfProcessedData') == 11)): h.add( _.Codetable('crraLocalVersion', 2, "grib2/crraLocalVersion.table")) _.Template('grib2/local.crra.[crraLocalVersion:l].def').load(h) h.add( _.Codetable( 'grib2LocalSectionNumber', 2, "grib2/grib2LocalSectionNumber.[centreForLocal:l].table")) if (h.get_l('grib2LocalSectionNumber') != 0): _.Template('grib2/local.[centreForLocal:l].def', True).load(h) else: h.add(_.Constant('deleteLocalDefinition', 1)) h.add(_.Position('offsetAfterCentreLocalSection')) h.add(_.Section_padding('section2Padding'))
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)) _.Template('tide/section.1.def').load(h) _.Template('tide/mars_labeling.def').load(h) h.add(_.Position('endOfHeadersMarker')) h.add( _.Evaluate('lengthOfHeaders', (_.Get('endOfHeadersMarker') - _.Get('startOfHeaders')))) h.add( _.Md5('md5Headers', _.Get('startOfHeaders'), _.Get('lengthOfHeaders'))) _.Template('tide/section.4.def').load(h) h.add(_.Ascii('endMark', 4)) h.add(_.Position('totalLength'))