UNPKG

vgrib2

Version:

[![npm version](https://badge.fury.io/js/vgrib2.svg)](https://badge.fury.io/js/vgrib2)

61 lines (54 loc) 1.84 kB
import { Buffer } from 'buffer/' import { lookupTable51 } from '../tables/table-5' /** * @description Returns a template generator for the given template number * @param template Template number * @returns Template generator */ export const getTemplate5 = (template: number) => { switch (template) { case 0: return template50 default: throw new Error(`Template 5.${template} not defined`) } } /** * @description Returns a template map for the given template number * @param table Template number * @returns Template Map */ export const lookupTemplate5 = (template: number) => { switch (template) { case 0: return lookupTemplate50 default: throw new Error(`Template 5.${template} lookup table not defined`) } } /** * Data Representation Template 5.0 * * [Read more...](https://www.nco.ncep.noaa.gov/pmb/docs/grib2/grib2_doc/grib2_temp5-0.shtml) */ const template50 = (section: Buffer) => { return { /** Reference value (R) (IEEE 32-bit floating-point value) */ referenceValue: section.readFloatBE(11), /** Binary scale factor (E) */ binaryScaleFactor: section.readInt16BE(15), /** Decimal scale factor (D) */ decimalScaleFactor: section.readInt16BE(17), /** Number of bits used for each packed value for simple packing, or for each group reference value for complex packing or spatial differencing */ numberOfBits: section.readUInt8(19), /** Type of original field values (see Code [Table 5.1](https://www.nco.ncep.noaa.gov/pmb/docs/grib2/grib2_doc/grib2_table5-1.shtml)) */ originalType: section.readUInt8(20) } } const lookupTemplate50 = (templateValues: ReturnType<typeof template50>) => { return { ...templateValues, /** Type of original field values */ originalType: lookupTable51(templateValues.originalType) } }