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