asterixparse


Nameasterixparse JSON
Version 0.1.0 PyPI version JSON
download
home_pageNone
SummaryPython project to Decode EUROCONTROL ASTERIX data format messages
upload_time2024-05-12 11:31:33
maintainerNone
docs_urlNone
authorRodrigo Perela
requires_python<4,>=3.6
licenseMIT License Copyright (c) 2024 rosu123 Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
keywords asterixparse asterix eurocontrol development modes bds category21 category48 ads-b
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # AsterixParse

[eurocontrol]: https://www.eurocontrol.int/asterix

Python package for decoding ASTERIX (All-Purpose Structured EUROCONTROL Surveillance Information Exchange) data protocol.  
Currently compatible with:
   - Category 21 - ADS-B Target Reports
   - Category 48 - Monoradar Target Reports
    
Also includes a decoder for Item250 (Mode-S BDS Data) of both categories, containing the following message types:
   - BDS44 - Meteorological routine air report
   - BDS50 - Track and turn report
   - BDS60 - Heading and speed report
    
All specifications and category details can be found on the official [EUROCONTROL][eurocontrol] website.
    
Compatible with Linux, Windows and MacOS envs. Recommended for use in virtual environment (e.g. conda, virtualenv) or Anaconda Navigator.  
Package created with Spyder IDE 5.4.3 and Python 3.11. 

Package developed by Rodrigo Perela Posada, student at EIF, Universidad Rey Juan Carlos (URJC); with collaboration of Marius Alexandru Marinescu Belenkov, professor at EIF, URJC. Developed within the framework of the Final Degree Project of Aerospace Engineering in Aeronautics.


## Installation

To install package on virtual env:


```pip install asterixparse```


## Import


```import asterixparse as ast```

> **_NOTE:_** On first import, a logging file is created on directory (`errors.log`). It will contain all the messages whose decoding has been erroneous.


## Usage


To see all the detailed functionality of the package, check the file `exec_asterix.py`. 
It includes examples of use and brief function descriptions.

#### List of funcionalities:


#### Convert binary `.ast` file to `hex` file

```bash
ast.ast_to_hex(input_file, message_list, save_file)     # Convert .ast data to hexadecimal
ast.split_file(input_file, prefix, number_lines, path)  # Split huge files into equal lines number files
```

#### Decode ASTERIX messages 

```bash
ast.decode_message(hex_message)                     # Decode one hex ASTERIX message   
ast.decode_file(input_file, category)               # Decode hex file into variable
ast.decode_file_to_json (input_file, output_file)   # Decode from hex file to JSON
ast.decode_file_to_csv(input_file, output_file)     # Decode from hex file to csv
```
> **_NOTE:_** Only decodes messages on hexadecimal, one by line files

#### Error log configuration

```bash
ast.set_log()       # Set error log configuration 
```

#### Dump decoded messages to file 

```bash
ast.var_to_csv(csv_file, messages_asterix)              # Dump ASTERIX messages list (var) to csv file
ast.dump_all_to_json(output_file, decoded_messages)     # Dump ASTERIX messages list (var) to JSON file 
ast.dump_to_jsonpickle(output_file, decoded_messages)   # Dump messages list (var type object) to json file 
ast.load_from_jsonpickle(input_file)                    # Load messages list (var type object) from json file
ast.dump_to_csv(json_filename, csv_filename)            # Dump to csv from JSON file (generated with ast.dump_all_to_json())
ast.dump_to_mongodb(decoded_messages)                   # Dump to MongoDB (requires MongoDB server)
ast.dump_to_sqlite(output_file, decoded_messages)       # Dump to SQLite database 
```

#### Experimental: 

```bash
ast.message_str(decoded_message)                                      # Save one message into human format on a variable  
ast.dump_items_txt(output_file, decoded_messages, items_to_save)      # Dump choosen items of message into txt file (CAT21)
ast.dump_bds_txt(output_file, decoded_messages)                       # Dump choosen items of message (only hex BDS) into txt file (CAT48)
ast.dump_bds_cat_txt(input_file, output_file, bds_type)               # Dump BDS category decoded data into txt file (from txt gen. w/ ast.dump_bds_txt())
ast.merge_data(fileCAT21, fileBDS50, fileBDS60, output_file, max_dev) # Merge on csv file CAT21 items with BDS50 and BDS60 decoded data
ast.calculate_meteo(input_file, output_file, local_meteo_grid)        # Calculate dataframe with ASTERIX and ERA5 meteo data
```
> **_NOTE:_** This are experimental functions and its behavior may change in future. Useful for further study of certain message data.





            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "asterixparse",
    "maintainer": null,
    "docs_url": null,
    "requires_python": "<4,>=3.6",
    "maintainer_email": null,
    "keywords": "AsterixParse, ASTERIX, EUROCONTROL, development, ModeS, BDS, Category21, Category48, ADS-B",
    "author": "Rodrigo Perela",
    "author_email": "rosu.perela@gmail.com",
    "download_url": "https://files.pythonhosted.org/packages/a1/20/d43bfc75eacf20ebda245c2a367f798e2ac87a22723aadc9c7463e26b71c/asterixparse-0.1.0.tar.gz",
    "platform": null,
    "description": "# AsterixParse\n\n[eurocontrol]: https://www.eurocontrol.int/asterix\n\nPython package for decoding ASTERIX (All-Purpose Structured EUROCONTROL Surveillance Information Exchange) data protocol.  \nCurrently compatible with:\n   - Category 21 - ADS-B Target Reports\n   - Category 48 - Monoradar Target Reports\n    \nAlso includes a decoder for Item250 (Mode-S BDS Data) of both categories, containing the following message types:\n   - BDS44 - Meteorological routine air report\n   - BDS50 - Track and turn report\n   - BDS60 - Heading and speed report\n    \nAll specifications and category details can be found on the official [EUROCONTROL][eurocontrol] website.\n    \nCompatible with Linux, Windows and MacOS envs. Recommended for use in virtual environment (e.g. conda, virtualenv) or Anaconda Navigator.  \nPackage created with Spyder IDE 5.4.3 and Python 3.11. \n\nPackage developed by Rodrigo Perela Posada, student at EIF, Universidad Rey Juan Carlos (URJC); with collaboration of Marius Alexandru Marinescu Belenkov, professor at EIF, URJC. Developed within the framework of the Final Degree Project of Aerospace Engineering in Aeronautics.\n\n\n## Installation\n\nTo install package on virtual env:\n\n\n```pip install asterixparse```\n\n\n## Import\n\n\n```import asterixparse as ast```\n\n> **_NOTE:_** On first import, a logging file is created on directory (`errors.log`). It will contain all the messages whose decoding has been erroneous.\n\n\n## Usage\n\n\nTo see all the detailed functionality of the package, check the file `exec_asterix.py`. \nIt includes examples of use and brief function descriptions.\n\n#### List of funcionalities:\n\n\n#### Convert binary `.ast` file to `hex` file\n\n```bash\nast.ast_to_hex(input_file, message_list, save_file)     # Convert .ast data to hexadecimal\nast.split_file(input_file, prefix, number_lines, path)  # Split huge files into equal lines number files\n```\n\n#### Decode ASTERIX messages \n\n```bash\nast.decode_message(hex_message)                     # Decode one hex ASTERIX message   \nast.decode_file(input_file, category)               # Decode hex file into variable\nast.decode_file_to_json (input_file, output_file)   # Decode from hex file to JSON\nast.decode_file_to_csv(input_file, output_file)     # Decode from hex file to csv\n```\n> **_NOTE:_** Only decodes messages on hexadecimal, one by line files\n\n#### Error log configuration\n\n```bash\nast.set_log()       # Set error log configuration \n```\n\n#### Dump decoded messages to file \n\n```bash\nast.var_to_csv(csv_file, messages_asterix)              # Dump ASTERIX messages list (var) to csv file\nast.dump_all_to_json(output_file, decoded_messages)     # Dump ASTERIX messages list (var) to JSON file \nast.dump_to_jsonpickle(output_file, decoded_messages)   # Dump messages list (var type object) to json file \nast.load_from_jsonpickle(input_file)                    # Load messages list (var type object) from json file\nast.dump_to_csv(json_filename, csv_filename)            # Dump to csv from JSON file (generated with ast.dump_all_to_json())\nast.dump_to_mongodb(decoded_messages)                   # Dump to MongoDB (requires MongoDB server)\nast.dump_to_sqlite(output_file, decoded_messages)       # Dump to SQLite database \n```\n\n#### Experimental: \n\n```bash\nast.message_str(decoded_message)                                      # Save one message into human format on a variable  \nast.dump_items_txt(output_file, decoded_messages, items_to_save)      # Dump choosen items of message into txt file (CAT21)\nast.dump_bds_txt(output_file, decoded_messages)                       # Dump choosen items of message (only hex BDS) into txt file (CAT48)\nast.dump_bds_cat_txt(input_file, output_file, bds_type)               # Dump BDS category decoded data into txt file (from txt gen. w/ ast.dump_bds_txt())\nast.merge_data(fileCAT21, fileBDS50, fileBDS60, output_file, max_dev) # Merge on csv file CAT21 items with BDS50 and BDS60 decoded data\nast.calculate_meteo(input_file, output_file, local_meteo_grid)        # Calculate dataframe with ASTERIX and ERA5 meteo data\n```\n> **_NOTE:_** This are experimental functions and its behavior may change in future. Useful for further study of certain message data.\n\n\n\n\n",
    "bugtrack_url": null,
    "license": "MIT License  Copyright (c) 2024 rosu123  Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:  The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.  THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ",
    "summary": "Python project to Decode EUROCONTROL ASTERIX data format messages",
    "version": "0.1.0",
    "project_urls": {
        "Bug Reports": "https://github.com/rosu123/AsterixParse/issues",
        "Source": "https://github.com/rosu123/AsterixParse"
    },
    "split_keywords": [
        "asterixparse",
        " asterix",
        " eurocontrol",
        " development",
        " modes",
        " bds",
        " category21",
        " category48",
        " ads-b"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "277fda4a6ee5abcb2554d89ea692e88b329c22525e4e8164652e915f990ba2a8",
                "md5": "2ca6145591d4338594ab875f3f6d7729",
                "sha256": "4156968d03f01a577a83d2daddcd88f156f50733d6c3ca46aced3b154d8d5c62"
            },
            "downloads": -1,
            "filename": "asterixparse-0.1.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "2ca6145591d4338594ab875f3f6d7729",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": "<4,>=3.6",
            "size": 50611,
            "upload_time": "2024-05-12T11:31:30",
            "upload_time_iso_8601": "2024-05-12T11:31:30.915202Z",
            "url": "https://files.pythonhosted.org/packages/27/7f/da4a6ee5abcb2554d89ea692e88b329c22525e4e8164652e915f990ba2a8/asterixparse-0.1.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "a120d43bfc75eacf20ebda245c2a367f798e2ac87a22723aadc9c7463e26b71c",
                "md5": "03ad8f149be72a6fcfa3d46df1cf0a6d",
                "sha256": "4fafa4108f23b318facb1223f80e45675b9197e35d6da2cfe1806c8f209cc5ab"
            },
            "downloads": -1,
            "filename": "asterixparse-0.1.0.tar.gz",
            "has_sig": false,
            "md5_digest": "03ad8f149be72a6fcfa3d46df1cf0a6d",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": "<4,>=3.6",
            "size": 50905,
            "upload_time": "2024-05-12T11:31:33",
            "upload_time_iso_8601": "2024-05-12T11:31:33.255614Z",
            "url": "https://files.pythonhosted.org/packages/a1/20/d43bfc75eacf20ebda245c2a367f798e2ac87a22723aadc9c7463e26b71c/asterixparse-0.1.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-05-12 11:31:33",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "rosu123",
    "github_project": "AsterixParse",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "asterixparse"
}
        
Elapsed time: 0.23253s