UNPKG

vgrib2

Version:

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

47 lines (35 loc) 1.34 kB
import { Buffer } from 'buffer/' import { splitGribChunks, createPacket } from './grib' import { splitSectionChunks, parseSections, lookupSections } from './section' import { GRIBPacket, GRIBPacketValues } from './types/grib' /** * @param data Buffer containing entire GRIB file contents * @returns Parsed GRIB file object */ const parse = (data: ArrayBuffer): Array<GRIBPacket> => { const buffer = Buffer.from(data) const gribChunks = splitGribChunks(buffer) const packets = gribChunks.map((gribChunk: Buffer) => { const sectionChunks = splitSectionChunks(gribChunk) const sectionValues = parseSections(sectionChunks) const sections = lookupSections(sectionValues) return createPacket(sections) }) return packets } /** * @param data Buffer containing entire GRIB file contents * @returns Parsed GRIB file object with value numbers */ const parseNoLookup = (data: ArrayBuffer): Array<GRIBPacketValues> => { const buffer = Buffer.from(data) const gribChunks = splitGribChunks(buffer) const packets = gribChunks.map((gribChunk: Buffer) => { const sectionChunks = splitSectionChunks(gribChunk) const sectionValues = parseSections(sectionChunks) return createPacket(sectionValues) }) return packets } export const GRIB = { parse, parseNoLookup } export * from './types/grib'