{ "info": { "author": "Xavier Olive", "author_email": "git@xoolive.org", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Intended Audience :: Information Technology", "Intended Audience :: Science/Research", "License :: OSI Approved :: MIT License", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Programming Language :: Python :: 3.8", "Topic :: Scientific/Engineering :: Artificial Intelligence", "Topic :: Scientific/Engineering :: GIS", "Topic :: Scientific/Engineering :: Information Analysis", "Topic :: Scientific/Engineering :: Visualization", "Topic :: Software Development :: Libraries", "Typing :: Typed" ], "description": "# A toolbox for processing and analysing air traffic data\n\n[![Documentation Status](https://readthedocs.org/projects/traffic-viz/badge/?version=latest)](https://traffic-viz.github.io/)\n[![Build Status](https://travis-ci.org/xoolive/traffic.svg?branch=master)](https://travis-ci.org/xoolive/traffic)\n[![Code Coverage](https://img.shields.io/codecov/c/github/xoolive/traffic.svg)](https://codecov.io/gh/xoolive/traffic) \n[![Codacy Badge](https://img.shields.io/codacy/grade/eea673ed15304f1b93490726295d6de0)](https://www.codacy.com/manual/xoolive/traffic)\n[![Checked with mypy](https://img.shields.io/badge/mypy-checked-blue.svg)](https://mypy.readthedocs.io/)\n[![Code style: black](https://img.shields.io/badge/code%20style-black-black.svg)](https://github.com/python/black)\n![License](https://img.shields.io/pypi/l/traffic.svg)\\\n[![JOSS badge](http://joss.theoj.org/papers/10.21105/joss.01518/status.svg)](https://doi.org/10.21105/joss.01518)\n\nThe traffic library helps working with common sources of air traffic data.\n\nIts main purpose is to offer basic cumbersome data analysis methods commonly\napplied to trajectories and ATC sectors. When a specific function is not\nprovided, the access to the underlying structure is direct, through an attribute\npointing to a pandas dataframe.\n\nThe library also offers facilities to parse and/or access traffic data from open\nsources of ADS-B traffic like the [OpenSky Network](https://opensky-network.org/)\nor Eurocontrol DDR files. It is designed to be easily extendable to other\nsources of data.\n\nStatic visualisation (images) exports are accessible via Matplotlib/Cartopy.\nMore dynamic visualisation frameworks are easily accessible in Jupyter\nenvironments with [ipyleaflet](http://ipyleaflet.readthedocs.io/) and\n[altair](http://altair-viz.github.io/); or through exports to other formats,\nincluding CesiumJS or Google Earth.\n\n\n## Installation\n\nLatest release:\n\n```sh\npip install traffic\n```\n\nDevelopment version:\n\n```sh\npip install git+https://github.com/xoolive/traffic\n```\n\n**Warning:** `cartotools` and `shapely` have strong dependencies to dynamic\nlibraries which may not be available on your system by default. \n\nBefore reporting an issue, please try to use an Anaconda environment. Other\ninstallations (You may check them in the `.travis.yml` configuration file.)\nshould work but the Anaconda way proved to work smoothly.\n\n```sh\nconda install cartopy shapely\n```\n\nFor troubleshootings, refer to the appropriate\n[documentation section](https://traffic-viz.github.io/installation.html#troubleshooting).\n\n## Credits\n\n[![JOSS badge](http://joss.theoj.org/papers/10.21105/joss.01518/status.svg)](https://doi.org/10.21105/joss.01518)\n\nIf you find this project useful for your research and use it in an academic\nwork, you may cite it as:\n\n```bibtex\n@article{olive2019traffic,\n author={Xavier {Olive}},\n journal={Journal of Open Source Software},\n title={traffic, a toolbox for processing and analysing air traffic data},\n year={2019},\n volume={4},\n pages={1518},\n doi={10.21105/joss.01518},\n issn={2475-9066},\n}\n```\n\n## Documentation\n\n[![Documentation Status](https://readthedocs.org/projects/traffic-viz/badge/?version=latest)](https://traffic-viz.github.io/)\n\nDocumentation available at [https://traffic-viz.github.io/](https://traffic-viz.github.io/)\n\n## Tests and code quality\n\n[![Build Status](https://travis-ci.org/xoolive/traffic.svg?branch=master)](https://travis-ci.org/xoolive/traffic)\n[![Code Coverage](https://img.shields.io/codecov/c/github/xoolive/traffic.svg)](https://codecov.io/gh/xoolive/traffic) \n[![Codacy Badge](https://img.shields.io/codacy/grade/eea673ed15304f1b93490726295d6de0)](https://www.codacy.com/manual/xoolive/traffic)\n[![Checked with mypy](https://img.shields.io/badge/mypy-checked-blue.svg)](https://mypy.readthedocs.io/)\n\nUnit and non-regression tests are written in the `tests/` directory. You may run\n`pytest` or `tox` from the root directory. Tests are currently performed with \nPython 3.6 and 3.7.\n\nTests are checked on [travis continuous integration](https://travis-ci.org/xoolive/traffic)\nplatform upon each commit. Latest status and coverage are displayed with standard\nbadges hereabove.\n\nIn addition, code is checked against static typing with [mypy](https://mypy.readthedocs.io/)\n([pre-commit](https://pre-commit.com/) hooks are available in the repository) and\nextra quality checks performed by [Codacy](https://www.codacy.com/manual/xoolive/traffic).\n\n## Command line tool\n\nThe `traffic` tool scripts around the library for common usecases.\n\nThe most basic use case revolves around exploring the embedded data. You may check\nthe help with `traffic data -h`.\n\n```\ntraffic data -p Tokyo\n altitude country iata icao latitude longitude name\n3820 21 Japan HND RJTT 35.552250 139.779602 Tokyo Haneda International Airport\n3821 135 Japan NRT RJAA 35.764721 140.386307 Tokyo Narita International Airport\n```\n\nMore details in the [documentation](https://traffic-viz.github.io/).\n\n## Graphical user interface\n\nA Qt application is provided for exploring and recording data. \nMore details in the [GUI section of the documentation](https://traffic-viz.github.io/gui.html).\n\n![GUI screenshot](https://raw.githubusercontent.com/xoolive/traffic/master/docs/_static/gui_start.png)\n\n## Feedback and contribution\n\nAny input, feedback, bug report or contribution is welcome.\n\nShould you encounter any issue, you may want to file it in the [issue](https://github.com/xoolive/traffic/issues/new) section of this repository. Please first activate the `DEBUG` messages recorded using Python logging mechanism with the following snippet:\n\n```python\nfrom traffic.core.logging import loglevel\nloglevel('DEBUG')\n```\n\nBug fixes and improvements in the library are also helpful.\n\nIf you share a fix together with the issue, I can include it in the code for\nyou. But since you did the job, pull requests (PR) let you keep the authorship\non your additions. For details on creating a PR see GitHub documentation\n[Creating a pull\nrequest](https://help.github.com/en/articles/creating-a-pull-request). You can\nadd more details about your example in the PR such as motivation for the example\nor why you thought it would be a good addition. You will get feed back in the PR\ndiscussion if anything needs to be changed. To make changes continue to push\ncommits made in your local example branch to origin and they will be\nautomatically shown in the PR.\n\nYou may find the process troublesome but please keep in mind it is actually\neasier that way to keep track of corrections and to remember why things are the\nway they are.\n\n## Frequently asked questions\n\n- I want to know more about Eurocontrol NM files\n\nWe download those files from Eurocontrol [Network Manager DDR2 repository\nservice](https://www.eurocontrol.int/articles/ddr2-web-portal) under Dataset\nFiles > Airspace Environment Datasets. You may not be entitled access to those\ndata.\n\nShould you have no such access, basic FIRs are provided in `eurofirs` from\n`traffic.data`.\n\n- I want to know more about Eurocontrol AIXM files\n\nWhen you import `aixm_airspaces` from `traffic.data`, you need to set a path to\na directory containing AIRAC files. These are XML files following the\n[AIXM](http://aixm.aero/) standard and produced by Eurocontrol. We download\nthose files from Eurocontrol [Network Manager B2B web\nservice](https://eurocontrol.int/service/network-manager-business-business-b2b-web-services).\nYou may not be entitled access to those data.\n\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/xoolive/traffic/", "keywords": "", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "traffic", "package_url": "https://pypi.org/project/traffic/", "platform": "", "project_url": "https://pypi.org/project/traffic/", "project_urls": { "Homepage": "https://github.com/xoolive/traffic/" }, "release_url": "https://pypi.org/project/traffic/2.1/", "requires_dist": [ "numpy", "scipy", "matplotlib", "pandas", "pyproj", "Cartopy", "Shapely", "requests", "appdirs", "paramiko", "typing-extensions", "altair", "ipywidgets", "ipyleaflet", "tqdm (>=4.28)", "cartotools (==1.0)", "pyModeS (>=2.4)" ], "requires_python": ">=3.6", "summary": "A toolbox for manipulating and analysing air traffic data", "version": "2.1" }, "last_serial": 5903756, "releases": { "0.1": [ { "comment_text": "", "digests": { "md5": "c9629f265c820266e7020bca9ae7fc95", "sha256": "18d35308d61b89bd014e5537e91797ce1b25e56559ab8bdad0211136f4008719" }, "downloads": -1, "filename": "traffic-0.1-py3-none-any.whl", "has_sig": false, "md5_digest": "c9629f265c820266e7020bca9ae7fc95", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 1362504, "upload_time": "2018-10-16T10:17:19", "url": "https://files.pythonhosted.org/packages/ef/b1/7571125547242e72fb8345dfa563070519b9eedae47f766bbfa59dfff630/traffic-0.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b7a18e3b9ba25edd5deb732439c4dc8b", "sha256": "e22a50ee5f093c3fb524b803f2b5b7f1a27afee8f3d6436ac68bac7398e7542e" }, "downloads": -1, "filename": "traffic-0.1.tar.gz", "has_sig": false, "md5_digest": "b7a18e3b9ba25edd5deb732439c4dc8b", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 1252756, "upload_time": "2018-06-20T10:28:31", "url": "https://files.pythonhosted.org/packages/b9/54/f2d0918c4154552c37035c377c5000162ebd2fb974eb8541d26696ca356e/traffic-0.1.tar.gz" } ], "1.0": [ { "comment_text": "", "digests": { "md5": "bf7bc99270d41ba9010878262360b300", "sha256": "fc9be1c0aaa274e1ba6f899b0a6e12381a81eae06f58056303f7e98c405a099c" }, "downloads": -1, "filename": "traffic-1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "bf7bc99270d41ba9010878262360b300", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 1362506, "upload_time": "2018-10-16T10:29:11", "url": "https://files.pythonhosted.org/packages/cd/40/b69f53b1e2ee5e6e0abcf54347ac6e514c20f7bf19c2e51eb6de306a7bbd/traffic-1.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "6e779e5d628927ab51515adf67591a9f", "sha256": "d02fa24ea9bc6dc2ae6d0425c0bf1c1786f2cca9b6a84f097cbad8d31d1a9449" }, "downloads": -1, "filename": "traffic-1.0.tar.gz", "has_sig": false, "md5_digest": "6e779e5d628927ab51515adf67591a9f", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 1441169, "upload_time": "2018-10-16T10:29:14", "url": "https://files.pythonhosted.org/packages/a4/76/287e556f8368b41d991831f6c1a168fd3d13d09e314422409730d7eeb4ab/traffic-1.0.tar.gz" } ], "1.1": [ { "comment_text": "", "digests": { "md5": "dadb493766914094a2dad23f49496b28", "sha256": "afa99a184ec70d1fe85c24d750142afed24914727786b37c1222839f37851959" }, "downloads": -1, "filename": "traffic-1.1-py3-none-any.whl", "has_sig": false, "md5_digest": "dadb493766914094a2dad23f49496b28", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 1361016, "upload_time": "2018-11-10T21:03:39", "url": "https://files.pythonhosted.org/packages/b1/7d/6e541d1f1c1f11946b258904d4ac64ec670e82697d94c1b7c2587adb878f/traffic-1.1-py3-none-any.whl" } ], "1.1.1": [ { "comment_text": "", "digests": { "md5": "9017fac8f617199b4ad43e70c036219c", "sha256": "2da7e52566937e72da4f3653b6f0e2299d91521480510457baab995849e70050" }, "downloads": -1, "filename": "traffic-1.1.1-py3-none-any.whl", "has_sig": false, "md5_digest": "9017fac8f617199b4ad43e70c036219c", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 1359425, "upload_time": "2018-11-14T15:58:02", "url": "https://files.pythonhosted.org/packages/14/5d/7692429e853754951ea45620dfaa9e8b1370a9ceee352a833eda7ed2e034/traffic-1.1.1-py3-none-any.whl" } ], "1.2": [ { "comment_text": "", "digests": { "md5": "97b4e3d8617c369a3cd8bc16ca45ddd4", "sha256": "c817ab414d4c5e17a4152fbe138bdff96048aa68dd273d40463c06e636a570ca" }, "downloads": -1, "filename": "traffic-1.2-py3-none-any.whl", "has_sig": false, "md5_digest": "97b4e3d8617c369a3cd8bc16ca45ddd4", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 2240479, "upload_time": "2019-03-21T09:32:30", "url": "https://files.pythonhosted.org/packages/a9/b1/acfd7a162925ac4f98ce0da21e0918d0fabd15f3aeb59140e08bc02d0f78/traffic-1.2-py3-none-any.whl" } ], "2.0": [ { "comment_text": "", "digests": { "md5": "3da919c3f94085f1c0b68578dbcf79b9", "sha256": "3754ba4e9d2cee4717fa34355229b3779a24855bbb89563bcc57e5d868c4bde3" }, "downloads": -1, "filename": "traffic-2.0-py3-none-any.whl", "has_sig": false, "md5_digest": "3da919c3f94085f1c0b68578dbcf79b9", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 7814060, "upload_time": "2019-06-17T08:55:18", "url": "https://files.pythonhosted.org/packages/22/fe/3961c5c8f471bd9c5def9d7083243d288b8e8caea355c4ff15b3e2597796/traffic-2.0-py3-none-any.whl" } ], "2.1": [ { "comment_text": "", "digests": { "md5": "957550cc031b39ac38d7d888501b4cec", "sha256": "e31208f698cc9516b9a67c5e33cac66ebbea8e7e891170ffc5a9632ab7a1aeac" }, "downloads": -1, "filename": "traffic-2.1-py3-none-any.whl", "has_sig": false, "md5_digest": "957550cc031b39ac38d7d888501b4cec", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 43979905, "upload_time": "2019-09-29T20:24:56", "url": "https://files.pythonhosted.org/packages/d8/51/79ae4cbdcba0a0dc1cb4d2f1719fce79948585314bb936b634eeeef416d6/traffic-2.1-py3-none-any.whl" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "957550cc031b39ac38d7d888501b4cec", "sha256": "e31208f698cc9516b9a67c5e33cac66ebbea8e7e891170ffc5a9632ab7a1aeac" }, "downloads": -1, "filename": "traffic-2.1-py3-none-any.whl", "has_sig": false, "md5_digest": "957550cc031b39ac38d7d888501b4cec", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 43979905, "upload_time": "2019-09-29T20:24:56", "url": "https://files.pythonhosted.org/packages/d8/51/79ae4cbdcba0a0dc1cb4d2f1719fce79948585314bb936b634eeeef416d6/traffic-2.1-py3-none-any.whl" } ] }