cobaltgrid / aviation-weather
A simple (Laravel compatible) library for fetching and decoding METARs
Installs: 48
Dependents: 0
Suggesters: 0
Security: 0
Stars: 5
Watchers: 1
Forks: 1
Open Issues: 0
pkg:composer/cobaltgrid/aviation-weather
Requires
- guzzlehttp/guzzle: ^6.2
- nesbot/carbon: 1.22.*
- tightenco/collect: 5.5.*
This package is auto-updated.
Last update: 2025-11-19 01:21:32 UTC
README
A simple (Laravel compatible) library for fetching and decoding METARs. (Soon to be more than this, however)
Prerequisites
- Laravel is now required for this library to work properly (due to use of Laravel's Cache and Log system)
Installation
Using Composer:
$ composer require cobaltgrid/aviation-weather
This will ensure that all required dependencies will be installed automatically.
Usage
At the moment, Aviation Weather only support ICAO codes. You can load a METAR by passing the ICAO code when you construct the class.
use Cobaltgrid\Aviation\Weather;
...
$weather = new Weather("EGKK");
$metar = $weather->latest_metar(); // Returns a Cobaltgrid\Aviation\Weather\Metar object
Metar Object Methods
| Method | Description |
|---|---|
| raw_response() | This gets you the raw JSON from the data source (SimpleXMLElement) |
| raw() | This gets you the raw JSON METAR data from the data source (SimpleXMLElement) |
| raw_string() | The raw METAR string (String) |
| icao() | The ICAO code of the station (String) |
| time() | A carbon object for the METAR's observation time (Carbon) |
| latitude() | A float of the latitude of the observation (Float) |
| longitude() | A float of the longitude of the observation (Float) |
| temperature() | The temperature, in degrees celsius (Float) |
| dewpoint() | The dew point, in degrees celsius (Float) |
| wind_direction() | The wind direction, in whole degrees. If 0, this indicates a variable wind. (Int) |
| wind_speed() | The wind speed, in knots. If both speed and direction are 0, wind is 'calm' (Int) |
| wind_gust() | The wind gust, in knots (Int) |
| visibility($unit="m") | Options: "km", "m", "nm", "mi". Gives the visibility in the chosen units. (Float/Int) |
| qnh($unit="hpa") | Options: "hpa", "hg". Gives the QNH pressure setting in the chosen units. (Float/Int) |
| weather_array() | An array of raw weather codes (i.e "-HZ +SH" etc) (Array) |
| weather() | An array of decoded weather codes of the format: ['code' => '-RA', 'human' => 'Light Rain'] (Array) |
| sky_cover() | An array of decoded cloud cover. Each array item is an array with the following format: ['type' => 'SCT', 'type_human' => 'Scattered', 'height' => 2000] . Height is in feet. |
| flight_cat() | An indication of the type of flying permitted by the weather. Example values: MVFR, IFR, LVFR, etc. |
| toArray() | Converts the above into an array format |