Python project parsing metar and taf message
Project description
METAR TAF Parser
This project provides METAR and TAF parsers.
Structure
Commons package
This package contains the converter module. The module contains helper functions.
Model package
This package contains multiple modules
- enum: Contains the enumerations for the project
- model: Contains the model classes for the project
Parser package
This package contains the parser module with the MetarParser
and TAFParser
classes.
Model
Enumerations:
- CloudQuantity: Represents the quantity in a cloud layer
- CloudType: Represents the type of cloud in a cloud layer
- Intensity: Represents the intensity of a weather phenomenon
- Descriptive: Represents the descriptive part of a weather phenomenon
- Phenomenon: Represents the phenomenon of a weather phenomenon
- TimeIndicator: Indicates the time trend
- WeatherChangeType: Indicate the type of trend
Objects
Wind
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.
WindShear
Represents a wind shear in TAF message. This class extends Wind.
- height:
int
. The height of the wind shear.
Visibility
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.
WeatherCondition
Represents the weather part of a METAR, TAF or trend.
- intensity:
Intensity
. The intensity of the weather condition if any,None
otherwise. - descriptive:
Descriptive
. The descriptive of the weather condition if any,None
otherwise. - phenomenons:
[Phenomenon]
. Array of phenomenons of the weather condition.
TemperatureDated
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.
RunwayInfo
Contains information on the visibility 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.
Cloud
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.
AbstractWeatherContainer
Abstract class containing the basic fields of METAR, TAF or trend objects.
- wind:
Wind
. The wind. Can beNone
for 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. - clouds:
[Cloud]
. Array of clouds elements. - weather_conditions:
[WeatherCondition]
. Array of weather conditions.
AbstractValidity
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.
AbstractWeatherCode
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
Metar
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. - auto:
bool
. Whether the message is auto. - runway_info:
[RunwayInfo]
. Array of runway information.
TAF
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.
AbstractTrend
Abstract base class for trend.
- type:
WeatherChangeType
. The type of change.
MetarTrendTime
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.
MetarTrend
Represents a trend in a METAR object, this class extends AbstractTrend
.
- times:
[MetarTrendTime]
. The list of time change of the trend.
TAFTrend
Represent a trend in a TAF object, this class extends AbstractTrend
- validity:
AbstractValidity
. The validity of the trend eitherValidity
orFMValidity
- probability:
int
. The probability of a trend, can beNone
.
Validity
Represents the validity timespan of a TAF or TAFTrend, this class extends AbstractValidity
.
- end_day:
int
. The ending day of the validity. - end_hour:
int
The ending hour of the validity.
FMValidity
Represents the validity of a From trend, extends AbstractValidity
- start_minutes:
int
. The starting minute of the trend.
Example
Parse a METAR
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')
Parse a TAF
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')
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for metar-taf-parser-mivek-1.0.0.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 71c4fec00fa553646982fc544f06cf81f1f1293b591e584c95dd47dd09cc2531 |
|
MD5 | 19668bc56dfd9210445d18c760eaf390 |
|
BLAKE2b-256 | 6ca4a968ad8d40cec201c106911895186a3f9956ad9f7ef1cf7b60942cdedc88 |
Hashes for metar_taf_parser_mivek-1.0.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | dd48ff991ea1a8fa82ce1277cfe19ef3a56ed34686367b916bc49f8a89a2105c |
|
MD5 | e462d346f9d36f248be816e9d36b2e92 |
|
BLAKE2b-256 | e6e695f565bc5ff2c3830d0285e892f33cc594fd8fe4955c7e360eb7e524be20 |