Parse

Component

The components supported by the web API include:

  • Pressure (pressure)
  • Runway Visual Range (runwayvisualrange)
  • Sky condition (skycondition)
  • Temperature (temperature)
  • Time (time)
  • Visibility (visibility)
  • Weather group (weathergroup)
  • Wind (wind)
  • Wind shear (windshear)

Specify one of the above components, as well as the raw text representing that component.

For example, parsing:

/api/parse/component/wind/22012G127KT

will give:

{
  "direction": 220,
  "gusts": 127,
  "raw": "22012G127KT",
  "speed": 12,
  "unit": "KT",
  "variable": null
}

Forecast

A provided forecast, such as a TAF or TAF AMD, will be broken down into its various components. For example, if the TAF:

TAF CYYC 221738Z 2218/2318 26008KT P6SM -RA SCT008 OVC012
  TEMPO 2218/2221 2SM -RASN BR SCT003 OVC008
  FM222100 33012KT P6SM SCT008 OVC012
  TEMPO 2221/2303 2SM -DZ BR OVC008
  FM230300 31012KT P6SM SCT012 BKN025
  TEMPO 2303/2318 P6SM -SHRA SCT008 OVC012 RMK NXT FCST BY 222100Z

is parsed via the URL:

/api/parse/forecast/TAF%20CYYC%20221738Z%202218/2318%2026008KT%20P6SM%20-RA%20SCT008%20OVC012%20%20TEMPO%202218/2221%202SM%20-RASN%20BR%20SCT003%20OVC008%20%20FM222100%2033012KT%20P6SM%20SCT008%20OVC012%20%20TEMPO%202221/2303%202SM%20-DZ%20BR%20OVC008%20%20FM230300%2031012KT%20P6SM%20SCT012%20BKN025%20%20TEMPO%202303/2318%20P6SM%20-SHRA%20SCT008%20OVC012%20RMK%20NXT%20FCST%20BY%20222100Z

the result should be:

{
  "changes": [
    {
      "_remarks": null,
      "end_time": {
        "day": 22,
        "hour": 21,
        "minute": 0,
        "raw": "222100Z",
        "timezone": "Z"
      },
      "raw": "TEMPO 2218/2221 2SM -RASN BR SCT003 OVC008",
      "sky_conditions": [
        {
          "cumulonimbus": false,
          "height": 300,
          "raw": "SCT003",
          "towering_cumulus": false,
          "type": "SCT"
        },
        {
          "cumulonimbus": false,
          "height": 800,
          "raw": "OVC008",
          "towering_cumulus": false,
          "type": "OVC"
        }
      ],
      "start_time": {
        "day": 22,
        "hour": 18,
        "minute": 0,
        "raw": "221800Z",
        "timezone": "Z"
      },
      "visibility": {
        "cavok": null,
        "distance": 2,
        "greater_than": false,
        "less_than": false,
        "raw": "2SM",
        "unit": "SM"
      },
      "weather_groups": [
        {
          "descriptor": null,
          "intensity": "-",
          "phenomenon": [
            "RA",
            "SN"
          ],
          "raw": "-RASN"
        },
        {
          "descriptor": null,
          "intensity": "",
          "phenomenon": "BR",
          "raw": "BR"
        }
      ],
      "wind": null
    },
    {
      "_remarks": null,
      "raw": "FM222100 33012KT P6SM SCT008 OVC012",
      "sky_conditions": [
        {
          "cumulonimbus": false,
          "height": 800,
          "raw": "SCT008",
          "towering_cumulus": false,
          "type": "SCT"
        },
        {
          "cumulonimbus": false,
          "height": 1200,
          "raw": "OVC012",
          "towering_cumulus": false,
          "type": "OVC"
        }
      ],
      "time": {
        "day": 22,
        "hour": 21,
        "minute": 0,
        "raw": "222100Z",
        "timezone": "Z"
      },
      "visibility": {
        "cavok": null,
        "distance": 6,
        "greater_than": true,
        "less_than": false,
        "raw": "P6SM",
        "unit": "SM"
      },
      "weather_groups": [],
      "wind": {
        "direction": 330,
        "gusts": null,
        "raw": "33012KT",
        "speed": 12,
        "unit": "KT",
        "variable": null
      }
    },
    {
      "_remarks": null,
      "end_time": {
        "day": 23,
        "hour": 3,
        "minute": 0,
        "raw": "230300Z",
        "timezone": "Z"
      },
      "raw": "TEMPO 2221/2303 2SM -DZ BR OVC008",
      "sky_conditions": [
        {
          "cumulonimbus": false,
          "height": 800,
          "raw": "OVC008",
          "towering_cumulus": false,
          "type": "OVC"
        }
      ],
      "start_time": {
        "day": 22,
        "hour": 21,
        "minute": 0,
        "raw": "222100Z",
        "timezone": "Z"
      },
      "visibility": {
        "cavok": null,
        "distance": 2,
        "greater_than": false,
        "less_than": false,
        "raw": "2SM",
        "unit": "SM"
      },
      "weather_groups": [
        {
          "descriptor": null,
          "intensity": "-",
          "phenomenon": "DZ",
          "raw": "-DZ"
        },
        {
          "descriptor": null,
          "intensity": "",
          "phenomenon": "BR",
          "raw": "BR"
        }
      ],
      "wind": null
    },
    {
      "_remarks": null,
      "raw": "FM230300 31012KT P6SM SCT012 BKN025",
      "sky_conditions": [
        {
          "cumulonimbus": false,
          "height": 1200,
          "raw": "SCT012",
          "towering_cumulus": false,
          "type": "SCT"
        },
        {
          "cumulonimbus": false,
          "height": 2500,
          "raw": "BKN025",
          "towering_cumulus": false,
          "type": "BKN"
        }
      ],
      "time": {
        "day": 23,
        "hour": 3,
        "minute": 0,
        "raw": "230300Z",
        "timezone": "Z"
      },
      "visibility": {
        "cavok": null,
        "distance": 6,
        "greater_than": true,
        "less_than": false,
        "raw": "P6SM",
        "unit": "SM"
      },
      "weather_groups": [],
      "wind": {
        "direction": 310,
        "gusts": null,
        "raw": "31012KT",
        "speed": 12,
        "unit": "KT",
        "variable": null
      }
    },
    {
      "_remarks": {
        "raw": "RMK NXT FCST BY 222100Z",
        "text": "RMK NXT FCST BY 222100Z"
      },
      "end_time": {
        "day": 23,
        "hour": 18,
        "minute": 0,
        "raw": "231800Z",
        "timezone": "Z"
      },
      "raw": "TEMPO 2303/2318 P6SM -SHRA SCT008 OVC012 RMK NXT FCST BY 222100Z",
      "sky_conditions": [
        {
          "cumulonimbus": false,
          "height": 800,
          "raw": "SCT008",
          "towering_cumulus": false,
          "type": "SCT"
        },
        {
          "cumulonimbus": false,
          "height": 1200,
          "raw": "OVC012",
          "towering_cumulus": false,
          "type": "OVC"
        }
      ],
      "start_time": {
        "day": 23,
        "hour": 3,
        "minute": 0,
        "raw": "230300Z",
        "timezone": "Z"
      },
      "visibility": {
        "cavok": null,
        "distance": 6,
        "greater_than": true,
        "less_than": false,
        "raw": "P6SM",
        "unit": "SM"
      },
      "weather_groups": [
        {
          "descriptor": "SH",
          "intensity": "-",
          "phenomenon": "RA",
          "raw": "-SHRA"
        }
      ],
      "wind": null
    }
  ],
  "location": {
    "identifier": "CYYC",
    "raw": "CYYC"
  },
  "raw": "TAF CYYC 221738Z 2218/2318 26008KT P6SM -RA SCT008 OVC012 TEMPO 2218/2221 2SM -RASN BR SCT003 OVC008 FM222100 33012KT P6SM SCT008 OVC012 TEMPO 2221/2303 2SM -DZ BR OVC008 FM230300 31012KT P6SM SCT012 BKN025 TEMPO 2303/2318 P6SM -SHRA SCT008 OVC012 RMK NXT FCST BY 222100Z",
  "sky_conditions": [
    {
      "cumulonimbus": false,
      "height": 800,
      "raw": "SCT008",
      "towering_cumulus": false,
      "type": "SCT"
    },
    {
      "cumulonimbus": false,
      "height": 1200,
      "raw": "OVC012",
      "towering_cumulus": false,
      "type": "OVC"
    }
  ],
  "time": {
    "day": 22,
    "hour": 17,
    "minute": 38,
    "raw": "221738Z",
    "timezone": "Z"
  },
  "type": {
    "raw": "TAF",
    "text": "TAF"
  },
  "valid_period": [
    {
      "day": 22,
      "hour": 18,
      "minute": 0,
      "raw": "221800Z",
      "timezone": "Z"
    },
    {
      "day": 23,
      "hour": 18,
      "minute": 0,
      "raw": "231800Z",
      "timezone": "Z"
    }
  ],
  "visibility": {
    "cavok": null,
    "distance": 6,
    "greater_than": true,
    "less_than": false,
    "raw": "P6SM",
    "unit": "SM"
  },
  "weather_groups": [
    {
      "descriptor": null,
      "intensity": "-",
      "phenomenon": "RA",
      "raw": "-RA"
    }
  ],
  "wind": {
    "direction": 260,
    "gusts": null,
    "raw": "26008KT",
    "speed": 8,
    "unit": "KT",
    "variable": null
  },
  "wind_shear": null
}

Note that the server's routing might not support line feeds in the input. It is therefore advisable to replace such feeds with spaces in order to avoid possible 404 responses.

Report

A provided report, such as a METAR or SPECI, will be broken down into its various components. For example, if the METAR:

EDDF 221850Z 21005KT 9999 VCSH FEW025 FEW050CB BKN090 BKN140 18/11 Q1009 NOSIG

is parsed via the URL:

/api/parse/report/EDDF%20221850Z%2021005KT%209999%20VCSH%20FEW025%20FEW050CB%20BKN090%20BKN140%2018/11%20Q1009%20NOSIG

the result should be:

{
  "_end": {
    "raw": "NOSIG"
  },
  "location": {
    "identifier": "EDDF",
    "raw": "EDDF"
  },
  "modifier": null,
  "pressure": {
    "indicator": "Q",
    "raw": "Q1009",
    "value": 1009
  },
  "raw": "EDDF 221850Z 21005KT 9999 VCSH FEW025 FEW050CB BKN090 BKN140 18/11 Q1009 NOSIG",
  "remarks": null,
  "runway_visual_range": null,
  "sky_conditions": [
    {
      "cumulonimbus": false,
      "height": 2500,
      "raw": "FEW025",
      "towering_cumulus": false,
      "type": "FEW"
    },
    {
      "cumulonimbus": true,
      "height": 5000,
      "raw": "FEW050CB",
      "towering_cumulus": false,
      "type": "FEW"
    },
    {
      "cumulonimbus": false,
      "height": 9000,
      "raw": "BKN090",
      "towering_cumulus": false,
      "type": "BKN"
    },
    {
      "cumulonimbus": false,
      "height": 14000,
      "raw": "BKN140",
      "towering_cumulus": false,
      "type": "BKN"
    }
  ],
  "temperature": {
    "dew_point": 11,
    "raw": "18/11",
    "temperature": 18
  },
  "time": {
    "day": 22,
    "hour": 18,
    "minute": 50,
    "raw": "221850Z",
    "timezone": "Z"
  },
  "type": null,
  "visibility": {
    "cavok": null,
    "distance": 9999,
    "greater_than": false,
    "less_than": false,
    "raw": "9999",
    "unit": "m"
  },
  "weather_groups": [
    {
      "descriptor": "SH",
      "intensity": "VC",
      "phenomenon": null,
      "raw": "VCSH"
    }
  ],
  "wind": {
    "direction": 210,
    "gusts": null,
    "raw": "21005KT",
    "speed": 5,
    "unit": "KT",
    "variable": null
  }
}

Retrieve

Report

You may retrieve and parse the latest METAR available from NOAA all in one go by simply specifying the ICAO code of the airport whose METAR should be used. For example, /api/retrieve/report/KATL will give something like:

{
  "_end": null,
  "location": {
    "identifier": "KATL",
    "raw": "KATL"
  },
  "modifier": null,
  "pressure": {
    "indicator": "A",
    "raw": "A2996",
    "value": 29.96
  },
  "raw": "KATL 221852Z 35013G25KT 10SM FEW065 FEW250 24/07 A2996 RMK AO2 PK WND 33026/1839 SLP137 T02440067",
  "remarks": {
    "raw": "RMK AO2 PK WND 33026/1839 SLP137 T02440067",
    "text": "RMK AO2 PK WND 33026/1839 SLP137 T02440067"
  },
  "runway_visual_range": null,
  "sky_conditions": [
    {
      "cumulonimbus": false,
      "height": 6500,
      "raw": "FEW065",
      "towering_cumulus": false,
      "type": "FEW"
    },
    {
      "cumulonimbus": false,
      "height": 25000,
      "raw": "FEW250",
      "towering_cumulus": false,
      "type": "FEW"
    }
  ],
  "temperature": {
    "dew_point": 7,
    "raw": "24/07",
    "temperature": 24
  },
  "time": {
    "day": 22,
    "hour": 18,
    "minute": 52,
    "raw": "221852Z",
    "timezone": "Z"
  },
  "type": null,
  "visibility": {
    "cavok": null,
    "distance": 10,
    "greater_than": false,
    "less_than": false,
    "raw": "10SM",
    "unit": "SM"
  },
  "weather_groups": null,
  "wind": {
    "direction": 350,
    "gusts": 25,
    "raw": "35013G25KT",
    "speed": 13,
    "unit": "KT",
    "variable": null
  }
}