Skip to content

✈️ Parse METAR information into structured JavaScript object

License

Notifications You must be signed in to change notification settings

fboes/metar-parser

Repository files navigation

✈️ METAR parser

Parse METAR information into structured JavaScript object. The structure of the returned object is closely related to the API response of CheckWX.

Installation: npm install aewx-metar-parser --save

Functionality

This METAR parser returns the following parts of a METAR string:

  • ICAO code
  • Date / time
  • Wind speed (in kts, mps) & direction
  • Visibility (in meters and miles)
  • Weather phenomena
  • Clouds
  • Temperature (in °C & °F) & humidity
  • Barometer pressure (in InHg, kpa & mb)

Code example

'use strict';
const metarParser = require('aewx-metar-parser');
const metarObject = metarParser('KSFO 070121Z 19023KT 1 1/2SM R28R/6000VP6000FT -RA BKN004 BKN013 OVC035 15/12 A2970 RMK AO2 T01500122 PNO $');

…returns:

{
  raw_text: 'KSFO 070121Z 19023KT 1 1/2SM R28R/6000VP6000FT -RA BKN004 BKN013 OVC035 15/12 A2970 RMK AO2 T01500122 PNO $',
  raw_parts: [
    'KSFO',
    '070121Z',
    '19023KT',
    '3/2SM',
    'R28R/6000VP6000FT',
    '-RA',
    'BKN004',
    'BKN013',
    'OVC035',
    '15/12',
    'A2970',
    'RMK',
    'AO2',
    'T01500122',
    'PNO',
    '$'
  ],
  icao: 'KSFO',
  observed: Date('2019-01-07T01:21:03.232Z'),
  wind: {
    degrees: 190,
    speed_kts: 23,
    speed_mps: 11.832222176208026,
    gust_kts: 23,
    gust_mps: 11.832222176208026
  },
  visibility: {
    miles: "1.5",
    miles_float: 1.5,
    meters: "2500",
    meters_float: 2414.016
  },
  conditions: [
    { code: '-'},
    { code: 'RA'}
  ],
  clouds: [
    { code: 'BKN', base_feet_agl: 400, base_meters_agl: 121.92 },
    { code: 'BKN', base_feet_agl: 1300, base_meters_agl: 396.24 },
    { code: 'OVC', base_feet_agl: 3500, base_meters_agl: 1066.8 }
  ],
  ceiling: {
    code: 'OVC',
    feet_agl: 3500,
    meters_agl: 1066.8
  },
  temperature: {
    celsius: 15,
    fahrenheit: 59
  },
  dewpoint: {
    celsius: 12,
    fahrenheit: 53.6
  },
  humidity_percent: 82.26135295757305,
  barometer: {
    hg: 29.7,
    kpa: 100.57572661390854,
    mb: 1005.7572661390855
  },
  flight_category: 'VFR'
}

More information on METAR

Wikipedia has an article on METAR information explaining the very basics.

These sites make METAR information publicly available:

Status

npm version devDependency Status

Legal stuff

Author: Frank Boës

Copyright & license: See LICENSE.txt