<p align="center">
<img src=https://github.com/AeroMAPS/AeroSCOPE/assets/97613437/1824dcdd-1c25-489c-96e0-4897a0773b7c />
</p>
# Welcome
AeroSCOPE is a project that aims to bring together various open data sources on air transport in order to better understand the geographical distribution of air transport.
More details on data collection and compilation can be found in the article accompanying this work: https://journals.open.tudelft.nl/joas/article/view/7201
AeroSCOPE is licensed under the [GPL-3.0](https://www.gnu.org/licenses/gpl-3.0.en.html) license.
*Please contact us if your use case of the dataset it outside the academic framework: Although all sources used are open to everyone, the Eurocontrol database is only freely available to academic researchers. It is used in this dataset in a very aggregated way and under several levels of abstraction. As a result, it is not distributed in its original format as specified in the contract of use. As a general rule, we decline any responsibility for any use that is contrary to the terms and conditions of the various sources that are used. In case of commercial use of the database, please contact us in advance.*
## Setup - app only
It is suggested to use a new [conda](https://docs.conda.io/en/latest/miniconda.html) virtual environment to install the required packages.
Python 3.10 is recommended, although older versions may work.
In the new virtual environment, navigate to the project folder. Most installations are done using poetry, except for poetry itself, which can be installed using pip or conda.
```bash
pip install aeroscope
```
## Usage
AeroSCOPE can be used in two different ways.
* Simple usage: just using the graphical interface or downloading the final database, no external input is required. This use case is directly addressed to this repository.
* Advanced usage: to run all data collection and processing notebooks and to perform more complex analysis on the file. The GUI is an input to this mode (soon). External data inputs that are too large to be stored on git or whose distribution is restricted are required.
This mode is described in https://github.com/AeroMAPS/AeroSCOPE_dataset.
Please read the dedicated paper to understand the global data collection and aggregation process.
The idea behind the project is to collect all open-source air traffic data to build an extended air traffic route database for a given year, 2019.
Due to the limited coverage of these sources, especially in Asia-Pacific, South America and Africa, a methodology has been developed to estimate the data in this case.
Wikipedia airport pages are automatically parsed to find information on the route network from each airport. This newly created database is merged with the previously mentioned open source data and a regressor is trained.
Traffic (seats offered) is then estimated on the remaining routes before all sources are aggregated into a single file.
It is then analysed and can be explored using a simple user interface.
### Simple usage
__AeroSCOPE app:__
To run the simple web app designed to explore the data, one can either visit www.aeromaps.eu/aeroscope (soon) or navigate to the 04_app folder using a terminal and run the app using voila.
```bash
aeroscope run
```
### Advanced usage
This mode is described in https://github.com/AeroMAPS/AeroSCOPE_dataset.
__Raw database csv file:__
_**If you simply want to access the compiled database; The last version of the processed database is stored on zenodo under the following doi: [10.5281/zenodo.10143773](). Make sure to download v1.0.1.**_
Be sure to replace default NaN (such as 'NA') when reading the csv, to avoid mistakingly considering North America and Namibia codes as NaN.
## Authors
Antoine Salgas, Junzi Sun, Scott Delbecq, Thomas Planès <br>
Contact: [antoine.salgas@isae-supaero.fr]
Raw data
{
"_id": null,
"home_page": "https://github.com/AeroMAPS/AeroSCOPE",
"name": "aeroscope",
"maintainer": "",
"docs_url": null,
"requires_python": ">=3.8,<4.0",
"maintainer_email": "",
"keywords": "air transport,flight data,fligh emissions",
"author": "Antoine SALGAS",
"author_email": "antoine.salgas@isae-supaero.fr",
"download_url": "https://files.pythonhosted.org/packages/cf/7a/1d3885ec5357247788940ae0441fdfecce3be64a0ec6118d64e538a39166/aeroscope-0.2.2b0.tar.gz",
"platform": null,
"description": "<p align=\"center\">\n <img src=https://github.com/AeroMAPS/AeroSCOPE/assets/97613437/1824dcdd-1c25-489c-96e0-4897a0773b7c />\n</p>\n\n\n# Welcome \nAeroSCOPE is a project that aims to bring together various open data sources on air transport in order to better understand the geographical distribution of air transport.\nMore details on data collection and compilation can be found in the article accompanying this work: https://journals.open.tudelft.nl/joas/article/view/7201\n\nAeroSCOPE is licensed under the [GPL-3.0](https://www.gnu.org/licenses/gpl-3.0.en.html) license. \n*Please contact us if your use case of the dataset it outside the academic framework: Although all sources used are open to everyone, the Eurocontrol database is only freely available to academic researchers. It is used in this dataset in a very aggregated way and under several levels of abstraction. As a result, it is not distributed in its original format as specified in the contract of use. As a general rule, we decline any responsibility for any use that is contrary to the terms and conditions of the various sources that are used. In case of commercial use of the database, please contact us in advance.*\n\n\n## Setup - app only \n\nIt is suggested to use a new [conda](https://docs.conda.io/en/latest/miniconda.html) virtual environment to install the required packages.\nPython 3.10 is recommended, although older versions may work.\n\nIn the new virtual environment, navigate to the project folder. Most installations are done using poetry, except for poetry itself, which can be installed using pip or conda.\n\n```bash\npip install aeroscope\n```\n\n## Usage\nAeroSCOPE can be used in two different ways.\n\n* Simple usage: just using the graphical interface or downloading the final database, no external input is required. This use case is directly addressed to this repository. \n* Advanced usage: to run all data collection and processing notebooks and to perform more complex analysis on the file. The GUI is an input to this mode (soon). External data inputs that are too large to be stored on git or whose distribution is restricted are required.\n This mode is described in https://github.com/AeroMAPS/AeroSCOPE_dataset.\n\nPlease read the dedicated paper to understand the global data collection and aggregation process. \nThe idea behind the project is to collect all open-source air traffic data to build an extended air traffic route database for a given year, 2019. \nDue to the limited coverage of these sources, especially in Asia-Pacific, South America and Africa, a methodology has been developed to estimate the data in this case. \nWikipedia airport pages are automatically parsed to find information on the route network from each airport. This newly created database is merged with the previously mentioned open source data and a regressor is trained.\nTraffic (seats offered) is then estimated on the remaining routes before all sources are aggregated into a single file.\nIt is then analysed and can be explored using a simple user interface. \n\n### Simple usage\n\n__AeroSCOPE app:__\nTo run the simple web app designed to explore the data, one can either visit www.aeromaps.eu/aeroscope (soon) or navigate to the 04_app folder using a terminal and run the app using voila.\n\n```bash\naeroscope run\n```\n\n### Advanced usage \nThis mode is described in https://github.com/AeroMAPS/AeroSCOPE_dataset.\n\n__Raw database csv file:__ \n_**If you simply want to access the compiled database; The last version of the processed database is stored on zenodo under the following doi: [10.5281/zenodo.10143773](). Make sure to download v1.0.1.**_ \nBe sure to replace default NaN (such as 'NA') when reading the csv, to avoid mistakingly considering North America and Namibia codes as NaN.\n\n## Authors\n\nAntoine Salgas, Junzi Sun, Scott Delbecq, Thomas Plan\u00e8s <br>\nContact: [antoine.salgas@isae-supaero.fr]\n",
"bugtrack_url": null,
"license": "GPL-3.0-only",
"summary": "AeroSCOPE: Exploring Aviation Flows",
"version": "0.2.2b0",
"project_urls": {
"Homepage": "https://github.com/AeroMAPS/AeroSCOPE"
},
"split_keywords": [
"air transport",
"flight data",
"fligh emissions"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "1ccc76f761833be775cabdca7e69dea81153663b33e4f924bd5f926fe8840cb1",
"md5": "41a11f1d4d7c3d12b3d72f2d063e6ecc",
"sha256": "0e71056a42929462869b333e704511e71b39ee51a89fcc0b6abb347efa0c100c"
},
"downloads": -1,
"filename": "aeroscope-0.2.2b0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "41a11f1d4d7c3d12b3d72f2d063e6ecc",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.8,<4.0",
"size": 127447137,
"upload_time": "2024-02-08T15:10:04",
"upload_time_iso_8601": "2024-02-08T15:10:04.892601Z",
"url": "https://files.pythonhosted.org/packages/1c/cc/76f761833be775cabdca7e69dea81153663b33e4f924bd5f926fe8840cb1/aeroscope-0.2.2b0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "cf7a1d3885ec5357247788940ae0441fdfecce3be64a0ec6118d64e538a39166",
"md5": "e0537648a3e2eed3544c6fd6c282f0d9",
"sha256": "7327f15c361844021826c2d3c2891913fdb8177b906a95ebbb6b8b97057d5070"
},
"downloads": -1,
"filename": "aeroscope-0.2.2b0.tar.gz",
"has_sig": false,
"md5_digest": "e0537648a3e2eed3544c6fd6c282f0d9",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.8,<4.0",
"size": 127432097,
"upload_time": "2024-02-08T15:10:12",
"upload_time_iso_8601": "2024-02-08T15:10:12.902694Z",
"url": "https://files.pythonhosted.org/packages/cf/7a/1d3885ec5357247788940ae0441fdfecce3be64a0ec6118d64e538a39166/aeroscope-0.2.2b0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-02-08 15:10:12",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "AeroMAPS",
"github_project": "AeroSCOPE",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"requirements": [
{
"name": "aiofiles",
"specs": [
[
"==",
"22.1.0"
]
]
},
{
"name": "aiosqlite",
"specs": [
[
"==",
"0.19.0"
]
]
},
{
"name": "anyio",
"specs": [
[
"==",
"3.7.1"
]
]
},
{
"name": "appnope",
"specs": [
[
"==",
"0.1.3"
]
]
},
{
"name": "argon2-cffi-bindings",
"specs": [
[
"==",
"21.2.0"
]
]
},
{
"name": "argon2-cffi",
"specs": [
[
"==",
"23.1.0"
]
]
},
{
"name": "arrow",
"specs": [
[
"==",
"1.3.0"
]
]
},
{
"name": "asttokens",
"specs": [
[
"==",
"2.4.1"
]
]
},
{
"name": "atomicwrites",
"specs": [
[
"==",
"1.4.1"
]
]
},
{
"name": "attrs",
"specs": [
[
"==",
"23.1.0"
]
]
},
{
"name": "babel",
"specs": [
[
"==",
"2.14.0"
]
]
},
{
"name": "backcall",
"specs": [
[
"==",
"0.2.0"
]
]
},
{
"name": "beautifulsoup4",
"specs": [
[
"==",
"4.12.2"
]
]
},
{
"name": "bleach",
"specs": [
[
"==",
"6.1.0"
]
]
},
{
"name": "certifi",
"specs": [
[
"==",
"2023.11.17"
]
]
},
{
"name": "cffi",
"specs": [
[
"==",
"1.16.0"
]
]
},
{
"name": "charset-normalizer",
"specs": [
[
"==",
"3.3.2"
]
]
},
{
"name": "colorama",
"specs": [
[
"==",
"0.4.6"
]
]
},
{
"name": "comm",
"specs": [
[
"==",
"0.2.0"
]
]
},
{
"name": "contourpy",
"specs": [
[
"==",
"1.1.1"
]
]
},
{
"name": "coverage",
"specs": [
[
"==",
"5.5"
]
]
},
{
"name": "coverage",
"specs": [
[
"==",
"5.5"
]
]
},
{
"name": "cycler",
"specs": [
[
"==",
"0.12.1"
]
]
},
{
"name": "debugpy",
"specs": [
[
"==",
"1.8.0"
]
]
},
{
"name": "decorator",
"specs": [
[
"==",
"5.1.1"
]
]
},
{
"name": "defusedxml",
"specs": [
[
"==",
"0.7.1"
]
]
},
{
"name": "entrypoints",
"specs": [
[
"==",
"0.4"
]
]
},
{
"name": "exceptiongroup",
"specs": [
[
"==",
"1.2.0"
]
]
},
{
"name": "executing",
"specs": [
[
"==",
"2.0.1"
]
]
},
{
"name": "fastjsonschema",
"specs": [
[
"==",
"2.19.0"
]
]
},
{
"name": "fonttools",
"specs": [
[
"==",
"4.47.0"
]
]
},
{
"name": "fqdn",
"specs": [
[
"==",
"1.5.1"
]
]
},
{
"name": "idna",
"specs": [
[
"==",
"3.6"
]
]
},
{
"name": "importlib-metadata",
"specs": [
[
"==",
"7.0.0"
]
]
},
{
"name": "importlib-resources",
"specs": [
[
"==",
"6.1.1"
]
]
},
{
"name": "iniconfig",
"specs": [
[
"==",
"2.0.0"
]
]
},
{
"name": "ipykernel",
"specs": [
[
"==",
"6.27.1"
]
]
},
{
"name": "ipython-genutils",
"specs": [
[
"==",
"0.2.0"
]
]
},
{
"name": "ipython",
"specs": [
[
"==",
"8.12.3"
]
]
},
{
"name": "ipyvue",
"specs": [
[
"==",
"1.10.1"
]
]
},
{
"name": "ipyvuetify",
"specs": [
[
"==",
"1.8.10"
]
]
},
{
"name": "ipywidgets",
"specs": [
[
"==",
"8.1.1"
]
]
},
{
"name": "isoduration",
"specs": [
[
"==",
"20.11.0"
]
]
},
{
"name": "jedi",
"specs": [
[
"==",
"0.19.1"
]
]
},
{
"name": "jinja2",
"specs": [
[
"==",
"3.1.2"
]
]
},
{
"name": "json5",
"specs": [
[
"==",
"0.9.14"
]
]
},
{
"name": "jsonpointer",
"specs": [
[
"==",
"2.4"
]
]
},
{
"name": "jsonschema-specifications",
"specs": [
[
"==",
"2023.11.2"
]
]
},
{
"name": "jsonschema",
"specs": [
[
"==",
"4.20.0"
]
]
},
{
"name": "jsonschema",
"specs": [
[
"==",
"4.20.0"
]
]
},
{
"name": "jupyter-client",
"specs": [
[
"==",
"7.4.1"
]
]
},
{
"name": "jupyter-core",
"specs": [
[
"==",
"5.5.1"
]
]
},
{
"name": "jupyter-events",
"specs": [
[
"==",
"0.9.0"
]
]
},
{
"name": "jupyter-server-fileid",
"specs": [
[
"==",
"0.9.1"
]
]
},
{
"name": "jupyter-server-ydoc",
"specs": [
[
"==",
"0.8.0"
]
]
},
{
"name": "jupyter-server",
"specs": [
[
"==",
"1.24.0"
]
]
},
{
"name": "jupyter-ydoc",
"specs": [
[
"==",
"0.2.5"
]
]
},
{
"name": "jupyterlab-pygments",
"specs": [
[
"==",
"0.3.0"
]
]
},
{
"name": "jupyterlab-server",
"specs": [
[
"==",
"2.25.2"
]
]
},
{
"name": "jupyterlab-widgets",
"specs": [
[
"==",
"3.0.9"
]
]
},
{
"name": "jupyterlab",
"specs": [
[
"==",
"3.6.6"
]
]
},
{
"name": "kiwisolver",
"specs": [
[
"==",
"1.4.5"
]
]
},
{
"name": "markupsafe",
"specs": [
[
"==",
"2.1.3"
]
]
},
{
"name": "matplotlib-inline",
"specs": [
[
"==",
"0.1.6"
]
]
},
{
"name": "matplotlib",
"specs": [
[
"==",
"3.7.4"
]
]
},
{
"name": "mistune",
"specs": [
[
"==",
"3.0.2"
]
]
},
{
"name": "nbclassic",
"specs": [
[
"==",
"1.0.0"
]
]
},
{
"name": "nbclient",
"specs": [
[
"==",
"0.7.4"
]
]
},
{
"name": "nbconvert",
"specs": [
[
"==",
"7.13.0"
]
]
},
{
"name": "nbformat",
"specs": [
[
"==",
"5.9.2"
]
]
},
{
"name": "nbval",
"specs": [
[
"==",
"0.9.6"
]
]
},
{
"name": "nest-asyncio",
"specs": [
[
"==",
"1.5.8"
]
]
},
{
"name": "notebook-shim",
"specs": [
[
"==",
"0.2.3"
]
]
},
{
"name": "notebook",
"specs": [
[
"==",
"6.5.4"
]
]
},
{
"name": "numpy",
"specs": [
[
"==",
"1.24.4"
]
]
},
{
"name": "packaging",
"specs": [
[
"==",
"23.2"
]
]
},
{
"name": "pandas",
"specs": [
[
"==",
"1.5.3"
]
]
},
{
"name": "pandocfilters",
"specs": [
[
"==",
"1.5.0"
]
]
},
{
"name": "parso",
"specs": [
[
"==",
"0.8.3"
]
]
},
{
"name": "pexpect",
"specs": [
[
"==",
"4.9.0"
]
]
},
{
"name": "pickleshare",
"specs": [
[
"==",
"0.7.5"
]
]
},
{
"name": "pillow",
"specs": [
[
"==",
"10.1.0"
]
]
},
{
"name": "pkgutil-resolve-name",
"specs": [
[
"==",
"1.3.10"
]
]
},
{
"name": "platformdirs",
"specs": [
[
"==",
"4.1.0"
]
]
},
{
"name": "plotly",
"specs": [
[
"==",
"5.18.0"
]
]
},
{
"name": "pluggy",
"specs": [
[
"==",
"1.3.0"
]
]
},
{
"name": "prometheus-client",
"specs": [
[
"==",
"0.19.0"
]
]
},
{
"name": "prompt-toolkit",
"specs": [
[
"==",
"3.0.43"
]
]
},
{
"name": "psutil",
"specs": [
[
"==",
"5.9.7"
]
]
},
{
"name": "ptyprocess",
"specs": [
[
"==",
"0.7.0"
]
]
},
{
"name": "pure-eval",
"specs": [
[
"==",
"0.2.2"
]
]
},
{
"name": "py",
"specs": [
[
"==",
"1.11.0"
]
]
},
{
"name": "pycparser",
"specs": [
[
"==",
"2.21"
]
]
},
{
"name": "pygments",
"specs": [
[
"==",
"2.17.2"
]
]
},
{
"name": "pyparsing",
"specs": [
[
"==",
"3.1.1"
]
]
},
{
"name": "pytest-cov",
"specs": [
[
"==",
"3.0.0"
]
]
},
{
"name": "pytest",
"specs": [
[
"==",
"6.2.5"
]
]
},
{
"name": "python-dateutil",
"specs": [
[
"==",
"2.8.2"
]
]
},
{
"name": "python-json-logger",
"specs": [
[
"==",
"2.0.7"
]
]
},
{
"name": "pytz",
"specs": [
[
"==",
"2023.3.post1"
]
]
},
{
"name": "pywin32",
"specs": [
[
"==",
"306"
]
]
},
{
"name": "pywinpty",
"specs": [
[
"==",
"2.0.12"
]
]
},
{
"name": "pyyaml",
"specs": [
[
"==",
"6.0.1"
]
]
},
{
"name": "pyzmq",
"specs": [
[
"==",
"25.1.2"
]
]
},
{
"name": "referencing",
"specs": [
[
"==",
"0.32.0"
]
]
},
{
"name": "requests",
"specs": [
[
"==",
"2.31.0"
]
]
},
{
"name": "rfc3339-validator",
"specs": [
[
"==",
"0.1.4"
]
]
},
{
"name": "rfc3986-validator",
"specs": [
[
"==",
"0.1.1"
]
]
},
{
"name": "rpds-py",
"specs": [
[
"==",
"0.15.2"
]
]
},
{
"name": "seaborn",
"specs": [
[
"==",
"0.12.2"
]
]
},
{
"name": "send2trash",
"specs": [
[
"==",
"1.8.2"
]
]
},
{
"name": "six",
"specs": [
[
"==",
"1.16.0"
]
]
},
{
"name": "sniffio",
"specs": [
[
"==",
"1.3.0"
]
]
},
{
"name": "soupsieve",
"specs": [
[
"==",
"2.5"
]
]
},
{
"name": "stack-data",
"specs": [
[
"==",
"0.6.3"
]
]
},
{
"name": "tenacity",
"specs": [
[
"==",
"8.2.3"
]
]
},
{
"name": "terminado",
"specs": [
[
"==",
"0.18.0"
]
]
},
{
"name": "tinycss2",
"specs": [
[
"==",
"1.2.1"
]
]
},
{
"name": "toml",
"specs": [
[
"==",
"0.10.2"
]
]
},
{
"name": "tomli",
"specs": [
[
"==",
"1.2.3"
]
]
},
{
"name": "tornado",
"specs": [
[
"==",
"6.4"
]
]
},
{
"name": "traitlets",
"specs": [
[
"==",
"5.14.0"
]
]
},
{
"name": "types-python-dateutil",
"specs": [
[
"==",
"2.8.19.14"
]
]
},
{
"name": "typing-extensions",
"specs": [
[
"==",
"4.9.0"
]
]
},
{
"name": "uri-template",
"specs": [
[
"==",
"1.3.0"
]
]
},
{
"name": "urllib3",
"specs": [
[
"==",
"2.1.0"
]
]
},
{
"name": "voila-vuetify",
"specs": [
[
"==",
"0.6.0"
]
]
},
{
"name": "voila",
"specs": [
[
"==",
"0.4.0"
]
]
},
{
"name": "wcwidth",
"specs": [
[
"==",
"0.2.12"
]
]
},
{
"name": "webcolors",
"specs": [
[
"==",
"1.13"
]
]
},
{
"name": "webencodings",
"specs": [
[
"==",
"0.5.1"
]
]
},
{
"name": "websocket-client",
"specs": [
[
"==",
"1.7.0"
]
]
},
{
"name": "websockets",
"specs": [
[
"==",
"12.0"
]
]
},
{
"name": "widgetsnbextension",
"specs": [
[
"==",
"4.0.9"
]
]
},
{
"name": "y-py",
"specs": [
[
"==",
"0.6.2"
]
]
},
{
"name": "ypy-websocket",
"specs": [
[
"==",
"0.8.4"
]
]
},
{
"name": "zipp",
"specs": [
[
"==",
"3.17.0"
]
]
}
],
"lcname": "aeroscope"
}