Skip to content

Parser for aeronautical and meteorological information from land stations, METAR and TAF. Coming soon SYNOP.

License

Notifications You must be signed in to change notification settings

TAF-Verification/metar-dart

Repository files navigation

Metar-Dart

Contributors Forks Stargazers Issues codecov MIT License

Inspired from python-metar, a library writed in Python language to parse Meteorological Aviation Weather Reports (METAR and SPECI).

This library will parse meteorological information of aeronautical land stations. Supported report types:

  • METAR
  • SPECI
  • TAF

Current METAR reports

The current report for a station is available at the URL

http://tgftp.nws.noaa.gov/data/observations/metar/stations/<station>.TXT

where station is the ICAO station code of the airport. This is a four-letter code. For all stations at any cycle (i.e., hour) in the last hours the reports are available at the URL

http://tgftp.nws.noaa.gov/data/observations/metar/cycles/<cycle>Z.TXT

where cycle is the 2-digit cycle number (00 to 23).

Usage

A simple usage example:

import 'package:metar_dart/metar_dart.dart';

main() {
  String code = 'METAR MROC 071200Z 10018KT 3000 R07/P2000N BR VV003 17/09 A2994 RESHRA NOSIG';
  final metar = Metar(code);

  // Get the type of the report
  print('${metar.type}'); // Meteorological Aerodrome Report

  // Get the wind speed in knots and direction in degrees
  print('${metar.wind.speedInKnot} kt');       // 18.0 kt 
  print('${metar.wind.directionInDegrees}°');  // 100.0°

  // Get the pressure in hecto pascals
  print('${metar.pressure.inHPa} hPa');  // 1014.0 hPa

  // Get the temperature in Celsius
  print('${metar.temperatures.temperatureInCelsius}°C');  // 17.0°C
}

Contributing

Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.

If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement". Don't forget to give the project a star! Thanks again!

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)

Roadmap

  • Add parsers for TAF and METAR reports
  • Add functions to verificate the TAF with the observations
  • Add a CLI API to interact with the verification functions
  • Add parser for SYNOPTIC reports
  • Add functions to verificate reports with rules of Annex 3
  • Multi-language Support
    • Portuguese
    • Spanish

Features and bugs

Please file feature requests and bugs at the issue tracker.

Current Sources

The most recent version of this package is always available via git, only run the following command on your terminal:

git clone https://github.com/TAF-Verification/metar-dart

Authors

The python-metar library was originaly authored by Tom Pollard in january 2005. This package metar-dart for Dart Language is inspired from his work in 2020 by Diego Garro.

Versioning

This project uses Cider tool for versioning, so, if you fork this repository remember run the following command in your terminal to activate it

pub global activate cider

License

Distributed under the MIT License. See LICENSE for more information.