weather-decoder


Nameweather-decoder JSON
Version 1.0.6 PyPI version JSON
download
home_pageNone
SummaryA comprehensive METAR and TAF decoder for aviation weather reports
upload_time2025-09-12 05:50:51
maintainerNone
docs_urlNone
authorJustin
requires_python>=3.8
licenseNone
keywords metar taf aviation weather meteorology parsing decoder
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # Weather Decoder 1.0

A comprehensive, modular Python library for parsing and decoding aviation weather reports (METAR and TAF).

## Features

- **METAR Decoder**: Parse Meteorological Terminal Air Reports
- **TAF Decoder**: Parse Terminal Aerodrome Forecasts  
- **Modular Architecture**: Clean, maintainable code with specialized parsers
- **Command Line Interface**: Easy-to-use CLI tools
- **Comprehensive Parsing**: Handles wind, visibility, weather phenomena, sky conditions, and more
- **Remarks Decoding**: Intelligent parsing of remarks sections
- **Multiple Formats**: Support for various international weather report formats

## Installation

```bash
pip install -e .
```

## Quick Start

### Python API

```python
from weather_decoder import MetarDecoder, TafDecoder

# Decode METAR
metar_decoder = MetarDecoder()
metar_data = metar_decoder.decode("METAR KJFK 061751Z 28008KT 10SM FEW250 22/18 A2992")
print(metar_data)

# Decode TAF
taf_decoder = TafDecoder()
taf_data = taf_decoder.decode("TAF KJFK 061730Z 0618/0724 28008KT 9999 FEW250")
print(taf_data)
```

### Command Line

```bash
# Decode METAR
decode-metar "METAR KJFK 061751Z 28008KT 10SM FEW250 22/18 A2992"

# Decode TAF
decode-taf "TAF KJFK 061730Z 0618/0724 28008KT 9999 FEW250"

# Process files
decode-metar -f metars.txt
decode-taf -f tafs.txt

# Interactive mode
decode-metar
decode-taf
```

## Architecture

The Weather Decoder 1.0 features a clean, modular architecture:

```
weather_decoder/
├── core/           # Main decoder classes
├── data/           # Data classes for parsed reports
├── parsers/        # Specialized component parsers
├── utils/          # Constants, patterns, and formatters
└── cli/            # Command line interfaces
```

### Components

- **Core Decoders**: Orchestrate the parsing process
- **Specialized Parsers**: Handle specific weather components (wind, visibility, etc.)
- **Data Classes**: Structured representation of parsed data
- **Utilities**: Shared constants, patterns, and formatting functions
- **CLI**: User-friendly command line interfaces

## Benefits of the Modular Design

1. **Maintainability**: Each parser handles a specific component
2. **Testability**: Components can be tested in isolation
3. **Extensibility**: Easy to add new parsers or modify existing ones
4. **Reusability**: Parsers can be used independently
5. **Clarity**: Clear separation of concerns

## Supported Features

### METAR Features
- Station identification
- Observation time
- Wind information (including variable direction and gusts)
- Visibility (including RVR)
- Weather phenomena
- Sky conditions
- Temperature and dewpoint
- Altimeter settings
- Trends
- Comprehensive remarks parsing

### TAF Features
- Station identification and issue time
- Valid periods
- Wind forecasts
- Visibility forecasts
- Weather phenomena forecasts
- Sky condition forecasts
- Temperature forecasts (TX/TN)
- Change groups (TEMPO, BECMG, FM, PROB)
- Pressure settings (QNH)
- Remarks parsing

## Migration from Version 1.x

The new modular structure maintains API compatibility while providing better organization:

```python
# Old way (still works)
from weather_decoder import MetarDecoder, TafDecoder

# New way (recommended for advanced usage)
from weather_decoder.core.metar_decoder import MetarDecoder
from weather_decoder.parsers.wind_parser import WindParser
```

## Contributing

Contributions are welcome! The modular architecture makes it easy to:

1. Add new parsers for additional weather components
2. Improve existing parsers
3. Add support for new weather report formats
4. Enhance the CLI tools

## License

MIT License - see LICENSE file for details.

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "weather-decoder",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.8",
    "maintainer_email": null,
    "keywords": "metar taf aviation weather meteorology parsing decoder",
    "author": "Justin",
    "author_email": null,
    "download_url": "https://files.pythonhosted.org/packages/63/f3/470d3ca5cd1ea207253acca049fa1e8400be78727d111674e95ce50fca00/weather_decoder-1.0.6.tar.gz",
    "platform": null,
    "description": "# Weather Decoder 1.0\n\nA comprehensive, modular Python library for parsing and decoding aviation weather reports (METAR and TAF).\n\n## Features\n\n- **METAR Decoder**: Parse Meteorological Terminal Air Reports\n- **TAF Decoder**: Parse Terminal Aerodrome Forecasts  \n- **Modular Architecture**: Clean, maintainable code with specialized parsers\n- **Command Line Interface**: Easy-to-use CLI tools\n- **Comprehensive Parsing**: Handles wind, visibility, weather phenomena, sky conditions, and more\n- **Remarks Decoding**: Intelligent parsing of remarks sections\n- **Multiple Formats**: Support for various international weather report formats\n\n## Installation\n\n```bash\npip install -e .\n```\n\n## Quick Start\n\n### Python API\n\n```python\nfrom weather_decoder import MetarDecoder, TafDecoder\n\n# Decode METAR\nmetar_decoder = MetarDecoder()\nmetar_data = metar_decoder.decode(\"METAR KJFK 061751Z 28008KT 10SM FEW250 22/18 A2992\")\nprint(metar_data)\n\n# Decode TAF\ntaf_decoder = TafDecoder()\ntaf_data = taf_decoder.decode(\"TAF KJFK 061730Z 0618/0724 28008KT 9999 FEW250\")\nprint(taf_data)\n```\n\n### Command Line\n\n```bash\n# Decode METAR\ndecode-metar \"METAR KJFK 061751Z 28008KT 10SM FEW250 22/18 A2992\"\n\n# Decode TAF\ndecode-taf \"TAF KJFK 061730Z 0618/0724 28008KT 9999 FEW250\"\n\n# Process files\ndecode-metar -f metars.txt\ndecode-taf -f tafs.txt\n\n# Interactive mode\ndecode-metar\ndecode-taf\n```\n\n## Architecture\n\nThe Weather Decoder 1.0 features a clean, modular architecture:\n\n```\nweather_decoder/\n\u251c\u2500\u2500 core/           # Main decoder classes\n\u251c\u2500\u2500 data/           # Data classes for parsed reports\n\u251c\u2500\u2500 parsers/        # Specialized component parsers\n\u251c\u2500\u2500 utils/          # Constants, patterns, and formatters\n\u2514\u2500\u2500 cli/            # Command line interfaces\n```\n\n### Components\n\n- **Core Decoders**: Orchestrate the parsing process\n- **Specialized Parsers**: Handle specific weather components (wind, visibility, etc.)\n- **Data Classes**: Structured representation of parsed data\n- **Utilities**: Shared constants, patterns, and formatting functions\n- **CLI**: User-friendly command line interfaces\n\n## Benefits of the Modular Design\n\n1. **Maintainability**: Each parser handles a specific component\n2. **Testability**: Components can be tested in isolation\n3. **Extensibility**: Easy to add new parsers or modify existing ones\n4. **Reusability**: Parsers can be used independently\n5. **Clarity**: Clear separation of concerns\n\n## Supported Features\n\n### METAR Features\n- Station identification\n- Observation time\n- Wind information (including variable direction and gusts)\n- Visibility (including RVR)\n- Weather phenomena\n- Sky conditions\n- Temperature and dewpoint\n- Altimeter settings\n- Trends\n- Comprehensive remarks parsing\n\n### TAF Features\n- Station identification and issue time\n- Valid periods\n- Wind forecasts\n- Visibility forecasts\n- Weather phenomena forecasts\n- Sky condition forecasts\n- Temperature forecasts (TX/TN)\n- Change groups (TEMPO, BECMG, FM, PROB)\n- Pressure settings (QNH)\n- Remarks parsing\n\n## Migration from Version 1.x\n\nThe new modular structure maintains API compatibility while providing better organization:\n\n```python\n# Old way (still works)\nfrom weather_decoder import MetarDecoder, TafDecoder\n\n# New way (recommended for advanced usage)\nfrom weather_decoder.core.metar_decoder import MetarDecoder\nfrom weather_decoder.parsers.wind_parser import WindParser\n```\n\n## Contributing\n\nContributions are welcome! The modular architecture makes it easy to:\n\n1. Add new parsers for additional weather components\n2. Improve existing parsers\n3. Add support for new weather report formats\n4. Enhance the CLI tools\n\n## License\n\nMIT License - see LICENSE file for details.\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "A comprehensive METAR and TAF decoder for aviation weather reports",
    "version": "1.0.6",
    "project_urls": {
        "Bug Reports": "https://github.com/6639835/metar-taf-decoder/issues",
        "Source": "https://github.com/6639835/metar-taf-decoder"
    },
    "split_keywords": [
        "metar",
        "taf",
        "aviation",
        "weather",
        "meteorology",
        "parsing",
        "decoder"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "09e79bc3f9533c08ed9b3f8514b842d5311b4e855cd3eea83daff28516b549fc",
                "md5": "30dcad47787be3e2792a3ff9ca23e3ad",
                "sha256": "980f8f00287375a1e4d9b723ccee72a7c8bf3f1e8ef40fe62f73bc7794e7a70f"
            },
            "downloads": -1,
            "filename": "weather_decoder-1.0.6-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "30dcad47787be3e2792a3ff9ca23e3ad",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.8",
            "size": 31928,
            "upload_time": "2025-09-12T05:50:50",
            "upload_time_iso_8601": "2025-09-12T05:50:50.581469Z",
            "url": "https://files.pythonhosted.org/packages/09/e7/9bc3f9533c08ed9b3f8514b842d5311b4e855cd3eea83daff28516b549fc/weather_decoder-1.0.6-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "63f3470d3ca5cd1ea207253acca049fa1e8400be78727d111674e95ce50fca00",
                "md5": "85a1c2a7c3b2d87ba7211db0098e8744",
                "sha256": "ed5a0c19fa1e7e64e65d0ee62282ec84e4016638de2814584838d06102b4519e"
            },
            "downloads": -1,
            "filename": "weather_decoder-1.0.6.tar.gz",
            "has_sig": false,
            "md5_digest": "85a1c2a7c3b2d87ba7211db0098e8744",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.8",
            "size": 33559,
            "upload_time": "2025-09-12T05:50:51",
            "upload_time_iso_8601": "2025-09-12T05:50:51.835691Z",
            "url": "https://files.pythonhosted.org/packages/63/f3/470d3ca5cd1ea207253acca049fa1e8400be78727d111674e95ce50fca00/weather_decoder-1.0.6.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-09-12 05:50:51",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "6639835",
    "github_project": "metar-taf-decoder",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "weather-decoder"
}
        
Elapsed time: 1.77159s