metar-taf-parser-mivek


Namemetar-taf-parser-mivek JSON
Version 1.8.2 PyPI version JSON
download
home_pagehttps://github.com/mivek/python-metar-taf-parser
SummaryPython project parsing metar and taf message
upload_time2024-01-14 21:30:35
maintainer
docs_urlNone
authorJean-Kevin KPADEY
requires_python>=3.7
license
keywords metar taf parser icao airport
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage
            # METAR TAF Parser

![Python test](https://github.com/mivek/python-metar-taf-parser/workflows/Python%20test/badge.svg)

This project provides METAR and TAF parsers.

## Install

```shell
pip install metar-taf-parser-mivek
```

## 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
-   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


### Objects

![model.png](model.png)

#### 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

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. `M` for less than and or `P` for 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.

#### 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.

#### Icing

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.

#### Turbulence

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.

#### ITafGroups

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`.

#### AbstractWeatherContainer

Abstract class containing the basic fields of METAR, TAF or trend objects.

-   wind: `Wind`. The wind. Can be `None` for trends.
-   visibility: `Visibility`. The visibility.
-   vertical_visibility: `int`. The vertical visibility, can be `None`
-   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.

#### 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
-   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.

#### 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.
-   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 either `Validity` or `FMValidity`
-   probability: `int`. The probability of a trend, can be `None`.

#### 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.

```python
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.

```python
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')
```


## Internationalization

The following locales are supported:
- en (default)
- fr
- de
- pl
- it
- ru

To add or complete locales please see [CONTRIBUTING](CONTRIBUTING.md)

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/mivek/python-metar-taf-parser",
    "name": "metar-taf-parser-mivek",
    "maintainer": "",
    "docs_url": null,
    "requires_python": ">=3.7",
    "maintainer_email": "",
    "keywords": "metar,taf,parser,icao,airport",
    "author": "Jean-Kevin KPADEY",
    "author_email": "jeankevin.kpadey@gmail.com",
    "download_url": "https://files.pythonhosted.org/packages/ac/53/bfbcdef82d6d3dfe611841b1732a2e422358f1e5183a327fd4675c402fa9/metar-taf-parser-mivek-1.8.2.tar.gz",
    "platform": null,
    "description": "# METAR TAF Parser\n\n![Python test](https://github.com/mivek/python-metar-taf-parser/workflows/Python%20test/badge.svg)\n\nThis project provides METAR and TAF parsers.\n\n## Install\n\n```shell\npip install metar-taf-parser-mivek\n```\n\n## Structure\n\n### Commons package\n\nThis package contains the converter module. The module contains helper functions.\n\n### Model package\n\nThis package contains multiple modules\n\n-   enum: Contains the enumerations for the project\n-   model: Contains the model classes for the project\n\n### Parser package\n\nThis package contains the parser module with the `MetarParser` and `TAFParser` classes.\n\n## Model\n\n### Enumerations\n\n-   CloudQuantity: Represents the quantity in a cloud layer\n-   CloudType: Represents the type of cloud in a cloud layer\n-   DepositCoverage: Represents the percentage of a runway covered by the deposit\n-   DepositType: Represents the type of deposit on a runway\n-   Descriptive: Represents the descriptive part of a weather phenomenon\n-   Intensity: Represents the intensity of a weather phenomenon\n-   Phenomenon: Represents the phenomenon of a weather phenomenon\n-   TimeIndicator: Indicates the time trend\n-   WeatherChangeType: Indicate the type of trend\n-   IcingIntensity: Represents the intensity of an icing element\n-   TurbulenceIntensity: Represents the intensity of a turbulence element\n\n\n### Objects\n\n![model.png](model.png)\n\n#### Wind\n\nRepresents the wind part of a metar, taf or trend\n\n-   speed: `int`. The speed of the wind\n-   direction: `str`. The cardinal direction of the wind\n-   degrees: `int`. The direction in degrees\n-   gust: `int`. The speed of gust if any, None otherwise\n-   min_variation: `int`. The minimal degree variation of the wind\n-   max_variation: `int`. The maximal degree variation of the wind\n-   unit: `str`. The unit of the speed of the wind.\n\n#### WindShear\n\nRepresents a wind shear in TAF message. This class extends Wind.\n\n-   height: `int`. The height of the wind shear.\n\n#### Visibility\n\nRepresents the visibility part of a METAR, TAF or trend.\n\n-   distance: `str`. The distance in meters or nautical miles.\n-   min_distance: `int`. The minimal distance in meters if any.\n-   min_direction: `str`. The direction of the minimal distance if any.\n\n#### WeatherCondition\n\nRepresents the weather part of a METAR, TAF or trend.\n\n-   intensity: `Intensity`. The intensity of the weather condition if any, `None` otherwise.\n-   descriptive: `Descriptive`. The descriptive of the weather condition if any, `None` otherwise.\n-   phenomenons: `[Phenomenon]`. Array of phenomenons of the weather condition.\n\n#### TemperatureDated\n\nRepresents the temperature part of a TAF. \n\n-   temperature: `int`. The temperature in celsius degrees.\n-   day: `int`. Day of the occurrence.\n-   hour: `int`. Hour of the occurrence.\n\n#### RunwayInfo\n\nRepresents the visibility or the deposit on a runway.\n\n-   name: `str`. The name of the runway.\n-   min_range: `int`. The minimal visibility distance on the runway.\n-   max_range: `int`. The maximal visibility distance on the runway.\n-   trend: `str`. The trend of the visibility.\n-   indicator: `str`. The indicator on the visual range. `M` for less than and or `P` for greater than.\n-   deposit_type: `DepositType`. The type of deposit.\n-   coverage: `DepositCoverage`. The percentage of coverage.\n-   thickness: `str`. The thickness of the deposit.\n-   braking_capacity: `str`. The braking capacity on the runway.\n\n#### Cloud\n\nRepresents a cloud layer in METAR, TAF or trend object.\n\n-   height: `int`. The height of the layer in feet.\n-   quantity: `CloudQuantity`. The quantity of clouds.\n-   type: `CloudType`. The type of cloud in the layer.\n\n#### Icing\n\nRepresents the icing in a TAF or TAFTrend object.\n\n-   intensity: `IcingIntensity`. The intensity of an icing.\n-   base_height: `int`. The base height of an icing element in feet.\n-   depth: `int`. The icing layer depth in feet. Adding this to the base height determines the top limit of the icing.\n\n#### Turbulence\n\nRepresents the turbulence in a TAF or TAFTrend object.\n\n-   intensity: `TurbulenceIntensity`. The intensity of a turbulence.\n-   base_height: `int`. The base height of a turbulence element in feet.\n-   depth: `int`. The turbulence layer depth in feet. Adding this to the base height determines the top limit of the turbulence.\n\n#### ITafGroups\n\nClass holding turbulence and icing elements.\n\n-   icings: `[Icing]`. List of icing elements.\n-   turbulence: `[Turbulence]`. List of turbulence elements.\n\nThis class is a parent class of `TAF` and `ITafGroups`.\n\n#### AbstractWeatherContainer\n\nAbstract class containing the basic fields of METAR, TAF or trend objects.\n\n-   wind: `Wind`. The wind. Can be `None` for trends.\n-   visibility: `Visibility`. The visibility.\n-   vertical_visibility: `int`. The vertical visibility, can be `None`\n-   wind_shear: `WindShear`. The wind shear object.\n-   cavok: `bool`. Indicates whether the message is CAVOK (Ceiling and visibility OK)\n-   remark: `str`. The remark part of the message.\n-   remarks: `list[str]`. List of remarks. Each element is a different remark or token \n-   clouds: `[Cloud]`. Array of clouds elements.\n-   weather_conditions: `[WeatherCondition]`. Array of weather conditions.\n\n#### AbstractValidity\n\nAbstract class representing the base of a Validity object.\n\n-   start_day: `int`. The starting day of the validity.\n-   start_hour: `int`. The starting hour of the validity.\n\n#### AbstractWeatherCode\n\nClass extending the AbstractWeatherContainer. Abstract parent class of METAR and TAF.\n\n-   day: `int`. The delivery day of the METAR or TAF.\n-   time: `datetime.time`. The delivery time of the METAR/TAF.\n-   message: `str`. The message of the METAR/TAF.\n-   station: `str`. The station for which the message was issued.\n-   trends: `[TAFTrend/MetarTrend]`. Array of trends\n-   flags: `[Flag]`. Set of flags.\n-   auto: `bool`. Whether the METAR is automated.\n-   amendment: `bool`. Whether the TAF is an amendment.\n-   nil: `bool`. Whether the METAR/TAF is null.\n-   canceled: `bool`. Whether the METAR/TAF is canceled.\n-   corrected: `bool`. Whether the METAR/TAF is a correction.\n\n#### Metar\n\nClass representing a metar object.\n\n-   temperature: `int`. The temperature in celsius.\n-   dew_point: `int`. The dew_point in celsius.\n-   altimeter: `float`. The altimeter value in HPa.\n-   nosig: `bool`. Whether the message is nosig: No significant changes to come.\n-   runway_info: `[RunwayInfo]`. Array of runway information.\n\n#### TAF\n\nClass representing a TAF object.\n\n-   validity: `Validity`. The validity of the TAF.\n-   max_temperature: `TemperatureDated`. The maximum temperature during the validity of the TAF.\n-   min_temperature: `TemperatureDated`. The minimum temperature during the validity of the TAF.\n-   amendment: `bool`. Whether the TAF is an amendment.\n\n#### AbstractTrend\n\nAbstract base class for trend.\n\n-   type: `WeatherChangeType`. The type of change.\n\n#### MetarTrendTime\n\nClass containing the time of the trend.\n\n-   time: `datetime.time`. Time of the trend's occurrence.\n-   type: `TimeIndicator`. Type of time change of the trend.\n\n#### MetarTrend\n\nRepresents a trend in a METAR object, this class extends `AbstractTrend`.\n\n-   times: `[MetarTrendTime]`. The list of time change of the trend.\n\n#### TAFTrend\n\nRepresent a trend in a TAF object, this class extends `AbstractTrend`\n\n-   validity: `AbstractValidity`. The validity of the trend either `Validity` or `FMValidity`\n-   probability: `int`. The probability of a trend, can be `None`.\n\n#### Validity\n\nRepresents the validity timespan of a TAF or TAFTrend, this class extends `AbstractValidity`.\n\n-   end_day: `int`. The ending day of the validity.\n-   end_hour: `int` The ending hour of the validity.\n\n#### FMValidity\n\nRepresents the validity of a From trend, extends AbstractValidity\n\n-   start_minutes: `int`. The starting minute of the trend.\n\n\n## Example\n\n### Parse a METAR\n\nUse the method `parse(string)` of the `MetarParser` to parse a metar.\n\n```python\nfrom metar_taf_parser.parser.parser import MetarParser\n\nmetar = MetarParser().parse('KTTN 051853Z 04011KT 9999 VCTS SN FZFG BKN003 OVC010 M02/M02 A3006')\n\n```\n\n\n### Parse a TAF \n\nUse the method `parse(string)` of the TAFParser to parse a TAF message.\nThe message must start with `TAF` in order to be parsed.\n\n```python\nfrom metar_taf_parser.parser.parser import TAFParser\n\ntaf = TAFParser().parse(\n    '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')\n```\n\n\n## Internationalization\n\nThe following locales are supported:\n- en (default)\n- fr\n- de\n- pl\n- it\n- ru\n\nTo add or complete locales please see [CONTRIBUTING](CONTRIBUTING.md)\n",
    "bugtrack_url": null,
    "license": "",
    "summary": "Python project parsing metar and taf message",
    "version": "1.8.2",
    "project_urls": {
        "Bug Tracker": "https://github.com/mivek/python-metar-taf-parser/issues",
        "Homepage": "https://github.com/mivek/python-metar-taf-parser"
    },
    "split_keywords": [
        "metar",
        "taf",
        "parser",
        "icao",
        "airport"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "8843b116062886150485739695a2d95bbb5ec1cbcc3e20bf9c96f7212ab81e24",
                "md5": "e752044f94aa5bb3e7db7c20d0ae4ee3",
                "sha256": "940c882491d9e7cb618ee260ef931280102e76c3999078a6ac21fac8c37d4453"
            },
            "downloads": -1,
            "filename": "metar_taf_parser_mivek-1.8.2-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "e752044f94aa5bb3e7db7c20d0ae4ee3",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.7",
            "size": 102436,
            "upload_time": "2024-01-14T21:30:33",
            "upload_time_iso_8601": "2024-01-14T21:30:33.235090Z",
            "url": "https://files.pythonhosted.org/packages/88/43/b116062886150485739695a2d95bbb5ec1cbcc3e20bf9c96f7212ab81e24/metar_taf_parser_mivek-1.8.2-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "ac53bfbcdef82d6d3dfe611841b1732a2e422358f1e5183a327fd4675c402fa9",
                "md5": "b7bb29ee6005887439b397185192cfd6",
                "sha256": "69785adbb7df0493c1843769bc2e40353e01afa3b6c740ee763c4f01cf51ef4e"
            },
            "downloads": -1,
            "filename": "metar-taf-parser-mivek-1.8.2.tar.gz",
            "has_sig": false,
            "md5_digest": "b7bb29ee6005887439b397185192cfd6",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.7",
            "size": 83169,
            "upload_time": "2024-01-14T21:30:35",
            "upload_time_iso_8601": "2024-01-14T21:30:35.235512Z",
            "url": "https://files.pythonhosted.org/packages/ac/53/bfbcdef82d6d3dfe611841b1732a2e422358f1e5183a327fd4675c402fa9/metar-taf-parser-mivek-1.8.2.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-01-14 21:30:35",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "mivek",
    "github_project": "python-metar-taf-parser",
    "travis_ci": false,
    "coveralls": true,
    "github_actions": true,
    "lcname": "metar-taf-parser-mivek"
}
        
Elapsed time: 0.16033s