This project provides METAR and TAF parsers.
pip install metar-taf-parser-mivekThis package contains the converter module. The module contains helper functions.
This package contains multiple modules
- enum: Contains the enumerations for the project
 - model: Contains the model classes for the project
 
This package contains the parser module with the MetarParser and TAFParser classes.
- CloudQuantity: Represents the quantity in a cloud layer
 - CloudType: Represents the type of cloud in a cloud layer
 - DepositCoverage: Represents the percentage of a runway covered by the deposit
 - DepositType: Represents the type of deposit on a runway
 - Descriptive: Represents the descriptive part of a weather phenomenon
 - Intensity: Represents the intensity of a weather phenomenon
 - Phenomenon: Represents the phenomenon of a weather phenomenon
 - TimeIndicator: Indicates the time trend
 - WeatherChangeType: Indicate the type of trend
 - IcingIntensity: Represents the intensity of an icing element
 - TurbulenceIntensity: Represents the intensity of a turbulence element
 
Represents the wind part of a metar, taf or trend
- speed: 
int. The speed of the wind - direction: 
str. The cardinal direction of the wind - degrees: 
int. The direction in degrees - gust: 
int. The speed of gust if any, None otherwise - min_variation: 
int. The minimal degree variation of the wind - max_variation: 
int. The maximal degree variation of the wind - unit: 
str. The unit of the speed of the wind. 
Represents a wind shear in TAF message. This class extends Wind.
- height: 
int. The height of the wind shear. 
Represents the visibility part of a METAR, TAF or trend.
- distance: 
str. The distance in meters or nautical miles. - min_distance: 
int. The minimal distance in meters if any. - min_direction: 
str. The direction of the minimal distance if any. 
Represents the weather part of a METAR, TAF or trend.
- intensity: 
Intensity. The intensity of the weather condition if any,Noneotherwise. - descriptive: 
Descriptive. The descriptive of the weather condition if any,Noneotherwise. - phenomenons: 
[Phenomenon]. Array of phenomenons of the weather condition. 
Represents the temperature part of a TAF.
- temperature: 
int. The temperature in celsius degrees. - day: 
int. Day of the occurrence. - hour: 
int. Hour of the occurrence. 
Represents the visibility or the deposit on a runway.
- name: 
str. The name of the runway. - min_range: 
int. The minimal visibility distance on the runway. - max_range: 
int. The maximal visibility distance on the runway. - trend: 
str. The trend of the visibility. - indicator: 
str. The indicator on the visual range.Mfor less than and orPfor greater than. - deposit_type: 
DepositType. The type of deposit. - coverage: 
DepositCoverage. The percentage of coverage. - thickness: 
str. The thickness of the deposit. - braking_capacity: 
str. The braking capacity on the runway. 
Represents a cloud layer in METAR, TAF or trend object.
- height: 
int. The height of the layer in feet. - quantity: 
CloudQuantity. The quantity of clouds. - type: 
CloudType. The type of cloud in the layer. 
Represents the icing in a TAF or TAFTrend object.
- intensity: 
IcingIntensity. The intensity of an icing. - base_height: 
int. The base height of an icing element in feet. - depth: 
int. The icing layer depth in feet. Adding this to the base height determines the top limit of the icing. 
Represents the turbulence in a TAF or TAFTrend object.
- intensity: 
TurbulenceIntensity. The intensity of a turbulence. - base_height: 
int. The base height of a turbulence element in feet. - depth: 
int. The turbulence layer depth in feet. Adding this to the base height determines the top limit of the turbulence. 
Class holding turbulence and icing elements.
- icings: 
[Icing]. List of icing elements. - turbulence: 
[Turbulence]. List of turbulence elements. 
This class is a parent class of TAF and ITafGroups.
Abstract class containing the basic fields of METAR, TAF or trend objects.
- wind: 
Wind. The wind. Can beNonefor trends. - visibility: 
Visibility. The visibility. - vertical_visibility: 
int. The vertical visibility, can beNone - wind_shear: 
WindShear. The wind shear object. - cavok: 
bool. Indicates whether the message is CAVOK (Ceiling and visibility OK) - remark: 
str. The remark part of the message. - remarks: 
list[str]. List of remarks. Each element is a different remark or token - clouds: 
[Cloud]. Array of clouds elements. - weather_conditions: 
[WeatherCondition]. Array of weather conditions. 
Abstract class representing the base of a Validity object.
- start_day: 
int. The starting day of the validity. - start_hour: 
int. The starting hour of the validity. 
Class extending the AbstractWeatherContainer. Abstract parent class of METAR and TAF.
- day: 
int. The delivery day of the METAR or TAF. - time: 
datetime.time. The delivery time of the METAR/TAF. - message: 
str. The message of the METAR/TAF. - station: 
str. The station for which the message was issued. - trends: 
[TAFTrend/MetarTrend]. Array of trends - flags: 
[Flag]. Set of flags. - auto: 
bool. Whether the METAR is automated. - amendment: 
bool. Whether the TAF is an amendment. - nil: 
bool. Whether the METAR/TAF is null. - canceled: 
bool. Whether the METAR/TAF is canceled. - corrected: 
bool. Whether the METAR/TAF is a correction. 
Class representing a metar object.
- temperature: 
int. The temperature in celsius. - dew_point: 
int. The dew_point in celsius. - altimeter: 
float. The altimeter value in HPa. - nosig: 
bool. Whether the message is nosig: No significant changes to come. - runway_info: 
[RunwayInfo]. Array of runway information. 
Class representing a TAF object.
- validity: 
Validity. The validity of the TAF. - max_temperature: 
TemperatureDated. The maximum temperature during the validity of the TAF. - min_temperature: 
TemperatureDated. The minimum temperature during the validity of the TAF. - amendment: 
bool. Whether the TAF is an amendment. 
Abstract base class for trend.
- type: 
WeatherChangeType. The type of change. 
Class containing the time of the trend.
- time: 
datetime.time. Time of the trend's occurrence. - type: 
TimeIndicator. Type of time change of the trend. 
Represents a trend in a METAR object, this class extends AbstractTrend.
- times: 
[MetarTrendTime]. The list of time change of the trend. 
Represent a trend in a TAF object, this class extends AbstractTrend
- validity: 
AbstractValidity. The validity of the trend eitherValidityorFMValidity - probability: 
int. The probability of a trend, can beNone. 
Represents the validity timespan of a TAF or TAFTrend, this class extends AbstractValidity.
- end_day: 
int. The ending day of the validity. - end_hour: 
intThe ending hour of the validity. 
Represents the validity of a From trend, extends AbstractValidity
- start_minutes: 
int. The starting minute of the trend. 
Use the method parse(string) of the MetarParser to parse a metar.
from metar_taf_parser.parser.parser import MetarParser
metar = MetarParser().parse('KTTN 051853Z 04011KT 9999 VCTS SN FZFG BKN003 OVC010 M02/M02 A3006')Use the method parse(string) of the TAFParser to parse a TAF message.
The message must start with TAF in order to be parsed.
from metar_taf_parser.parser.parser import TAFParser
taf = TAFParser().parse(
    'TAF LFPG 150500Z 1506/1612 17005KT 6000 SCT012 TEMPO 1506/1509 3000 BR BKN006 PROB40 TEMPO 1506/1508 0400 BCFG BKN002 PROB40 TEMPO 1512/1516 4000 -SHRA FEW030TCU BKN040 BECMG 1520/1522 CAVOK TEMPO 1603/1608 3000 BR BKN006 PROB40 TEMPO 1604/1607 0400 BCFG BKN002 TX17/1512Z TN07/1605Z')The following locales are supported:
- en (default)
 - fr
 - de
 - pl
 - it
 - ru
 
To add or complete locales please see CONTRIBUTING
