diff --git a/README.rst b/README.rst
index 4e88878..4731b59 100644
--- a/README.rst
+++ b/README.rst
@@ -1,6 +1,42 @@
The Python ADS-B/Mode-S Decoder
===============================
+PyModeS is a Python library designed to decode Mode-S (including ADS-B) message. It can be imported to your python project or used as a standalone tool to view and save live traffic data.
+
+This is a project created by Junzi Sun, who works at `TU Delft `_, `Aerospace Engineering Faculty `_, `CNS/ATM research group `_. It is supported by many `contributors `_ from different institutions.
+
+Introduction
+------------
+
+pyModeS supports the decoding of following types of messages:
+
+- DF4 / DF20: Altitude code
+- DF5 / DF21: Identity code (squawk code)
+
+- DF17 / DF18: Automatic Dependent Surveillance-Broadcast (ADS-B)
+
+ - TC=1-4 / BDS 0,8: Aircraft identification and category
+ - TC=5-8 / BDS 0,6: Surface position
+ - TC=9-18 / BDS 0,5: Airborne position
+ - TC=19 / BDS 0,9: Airborne velocity
+ - TC=28 / BDS 6,1: Airborne status [to be implemented]
+ - TC=29 / BDS 6,2: Target state and status information [to be implemented]
+ - TC=31 / BDS 6,5: Aircraft operational status [to be implemented]
+
+- DF20 / DF21: Mode-S Comm-B messages
+
+ - BDS 1,0: Data link capability report
+ - BDS 1,7: Common usage GICB capability report
+ - BDS 2,0: Aircraft identification
+ - BDS 3,0: ACAS active resolution advisory
+ - BDS 4,0: Selected vertical intention
+ - BDS 4,4: Meteorological routine air report (experimental)
+ - BDS 4,5: Meteorological hazard report (experimental)
+ - BDS 5,0: Track and turn report
+ - BDS 6,0: Heading and speed report
+
+
+
If you find this project useful for your research, please considering cite this tool as::
@article{sun2019pymodes,
@@ -14,40 +50,6 @@ If you find this project useful for your research, please considering cite this
-Introduction
----------------------
-PyModeS is a Python library designed to decode Mode-S (including ADS-B) message. It can be imported to your python project or be used as a standalone tool to view and save live traffic data.
-
-Messages with following Downlink Formats (DF) are supported:
-
-**DF17 / DF18: Automatic Dependent Surveillance-Broadcast (ADS-B)**
-
-- TC=1-4 / BDS 0,8: Aircraft identification and category
-- TC=5-8 / BDS 0,6: Surface position
-- TC=9-18 / BDS 0,5: Airborne position
-- TC=19 / BDS 0,9: Airborne velocity
-- TC=28 / BDS 6,1: Airborne status [to be implemented]
-- TC=29 / BDS 6,2: Target state and status information [to be implemented]
-- TC=31 / BDS 6,5: Aircraft operational status [to be implemented]
-
-
-**DF20 / DF21: Mode-S Comm-B replies**
-
-- BDS 1,0: Data link capability report
-- BDS 1,7: Common usage GICB capability report
-- BDS 2,0: Aircraft identification
-- BDS 3,0: ACAS active resolution advisory
-- BDS 4,0: Selected vertical intention
-- BDS 4,4: Meteorological routine air report (experimental)
-- BDS 4,5: Meteorological hazard report (experimental)
-- BDS 5,0: Track and turn report
-- BDS 6,0: Heading and speed report
-
-
-**DF4 / DF20: Altitude code**
-
-**DF5 / DF21: Identity code (squawk code)**
-
Resources
-----------
@@ -55,10 +57,10 @@ Check out and contribute to this open-source project at:
https://github.com/junzis/pyModeS
Detailed manual on Mode-S decoding is published at:
-https://mode-s.org/decode.
+https://mode-s.org/decode
The API documentation of pyModeS is at:
-http://pymodes.readthedocs.io
+https://mode-s.org/api
diff --git a/doc/Makefile b/doc/Makefile
index 286116e..4a540ca 100644
--- a/doc/Makefile
+++ b/doc/Makefile
@@ -17,5 +17,5 @@ help:
# "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS).
%: Makefile
rm -f source/pyModeS*.rst source/modules.rst
- sphinx-apidoc -f -e -M -o source/ ../pyModeS
+ sphinx-apidoc -f -e -M -o source/ ../pyModeS ../pyModeS/decoder/ehs.py ../pyModeS/decoder/els.py ../pyModeS/streamer ../pyModeS/extra
@$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
diff --git a/doc/source/_templates/layout.html b/doc/source/_templates/layout.html
new file mode 100644
index 0000000..02136c3
--- /dev/null
+++ b/doc/source/_templates/layout.html
@@ -0,0 +1,17 @@
+{% extends "!layout.html" %}
+
+{% block footer %}
+{{ super() }}
+
+
+
+
+
+
+{% endblock %}
diff --git a/doc/source/conf.py b/doc/source/conf.py
index eaf18de..a3dcc54 100644
--- a/doc/source/conf.py
+++ b/doc/source/conf.py
@@ -14,19 +14,20 @@
#
import os
import sys
-sys.path.insert(0, os.path.abspath('../..'))
+
+sys.path.insert(0, os.path.abspath("../.."))
# -- Project information -----------------------------------------------------
-project = 'pyModeS'
-copyright = '2019, Junzi Sun'
-author = 'Junzi Sun'
+project = "pyModeS"
+copyright = "2019, Junzi Sun"
+author = "Junzi Sun"
# The short X.Y version
-version = ''
+version = ""
# The full version, including alpha/beta/rc tags
-release = ''
+release = ""
# -- General configuration ---------------------------------------------------
@@ -39,26 +40,24 @@ release = ''
# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
# ones.
extensions = [
- 'sphinx.ext.autodoc',
- 'sphinx.ext.todo',
- 'sphinx.ext.coverage',
- 'sphinx.ext.mathjax',
- 'sphinx.ext.viewcode',
- 'sphinx.ext.githubpages',
- 'sphinx.ext.napoleon',
+ "sphinx.ext.autodoc",
+ "sphinx.ext.mathjax",
+ "sphinx.ext.viewcode",
+ "sphinx.ext.githubpages",
+ "sphinx.ext.napoleon",
]
# Add any paths that contain templates here, relative to this directory.
-# templates_path = ['']
+templates_path = ["_templates"]
# The suffix(es) of source filenames.
# You can specify multiple suffix as a list of string:
#
# source_suffix = ['.rst', '.md']
-source_suffix = '.rst'
+source_suffix = ".rst"
# The master toctree document.
-master_doc = 'index'
+master_doc = "index"
# The language for content autogenerated by Sphinx. Refer to documentation
# for a list of supported languages.
@@ -82,6 +81,10 @@ pygments_style = None
# a list of builtin themes.
#
# html_theme = 'alabaster'
+html_theme = "neo_rtd_theme"
+import sphinx_theme
+
+html_theme_path = [sphinx_theme.get_html_theme_path()]
# Theme options are theme-specific and customize the look and feel of a theme
# further. For a list of options available for each theme, see the
@@ -108,7 +111,7 @@ pygments_style = None
# -- Options for HTMLHelp output ---------------------------------------------
# Output file base name for HTML help builder.
-htmlhelp_basename = 'pyModeSdoc'
+htmlhelp_basename = "pyModeSdoc"
# -- Options for LaTeX output ------------------------------------------------
@@ -117,15 +120,12 @@ latex_elements = {
# The paper size ('letterpaper' or 'a4paper').
#
# 'papersize': 'letterpaper',
-
# The font size ('10pt', '11pt' or '12pt').
#
# 'pointsize': '10pt',
-
# Additional stuff for the LaTeX preamble.
#
# 'preamble': '',
-
# Latex figure (float) alignment
#
# 'figure_align': 'htbp',
@@ -135,8 +135,7 @@ latex_elements = {
# (source start file, target name, title,
# author, documentclass [howto, manual, or own class]).
latex_documents = [
- (master_doc, 'pyModeS.tex', 'pyModeS Documentation',
- 'Junzi Sun', 'manual'),
+ (master_doc, "pyModeS.tex", "pyModeS Documentation", "Junzi Sun", "manual")
]
@@ -144,10 +143,7 @@ latex_documents = [
# One entry per manual page. List of tuples
# (source start file, name, description, authors, manual section).
-man_pages = [
- (master_doc, 'pymodes', 'pyModeS Documentation',
- [author], 1)
-]
+man_pages = [(master_doc, "pymodes", "pyModeS Documentation", [author], 1)]
# -- Options for Texinfo output ----------------------------------------------
@@ -156,9 +152,15 @@ man_pages = [
# (source start file, target name, title, author,
# dir menu entry, description, category)
texinfo_documents = [
- (master_doc, 'pyModeS', 'pyModeS Documentation',
- author, 'pyModeS', 'One line description of project.',
- 'Miscellaneous'),
+ (
+ master_doc,
+ "pyModeS",
+ "pyModeS Documentation",
+ author,
+ "pyModeS",
+ "One line description of project.",
+ "Miscellaneous",
+ )
]
@@ -177,7 +179,7 @@ epub_title = project
# epub_uid = ''
# A list of files that should not be packed into the epub file.
-epub_exclude_files = ['search.html']
+epub_exclude_files = ["search.html"]
# -- Extension configuration -------------------------------------------------
diff --git a/doc/source/index.rst b/doc/source/index.rst
index 40de2fc..d9a8551 100644
--- a/doc/source/index.rst
+++ b/doc/source/index.rst
@@ -9,11 +9,49 @@ Welcome to pyModeS documentation!
The source code can be found at: https://github.com/junzis/pyModeS
.. toctree::
- :maxdepth: 3
+ :caption: Core modules
+ :maxdepth: 2
+
+ pyModeS.decoder.adsb
+ pyModeS.decoder.commb
+
+
+.. toctree::
+ :caption: ADS-B messages
+ :maxdepth: 2
+
+ pyModeS.decoder.bds.bds05
+ pyModeS.decoder.bds.bds06
+ pyModeS.decoder.bds.bds08
+ pyModeS.decoder.bds.bds09
+
+
+.. toctree::
+ :caption: ELS - elementary surveillance
+ :maxdepth: 2
+
+ pyModeS.decoder.bds.bds10
+ pyModeS.decoder.bds.bds17
+ pyModeS.decoder.bds.bds20
+ pyModeS.decoder.bds.bds30
+
+
+.. toctree::
+ :caption: EHS - enhanced surveillance
+ :maxdepth: 2
+
+ pyModeS.decoder.bds.bds40
+ pyModeS.decoder.bds.bds50
+ pyModeS.decoder.bds.bds60
+
+
+.. toctree::
+ :caption: MRAR / MHR
+ :maxdepth: 2
+
+ pyModeS.decoder.bds.bds44
+ pyModeS.decoder.bds.bds45
- pyModeS.decoder
- pyModeS.streamer
- pyModeS.extra
----
diff --git a/doc/source/make.bat b/doc/source/make.bat
deleted file mode 100644
index 27f573b..0000000
--- a/doc/source/make.bat
+++ /dev/null
@@ -1,35 +0,0 @@
-@ECHO OFF
-
-pushd %~dp0
-
-REM Command file for Sphinx documentation
-
-if "%SPHINXBUILD%" == "" (
- set SPHINXBUILD=sphinx-build
-)
-set SOURCEDIR=.
-set BUILDDIR=_build
-
-if "%1" == "" goto help
-
-%SPHINXBUILD% >NUL 2>NUL
-if errorlevel 9009 (
- echo.
- echo.The 'sphinx-build' command was not found. Make sure you have Sphinx
- echo.installed, then set the SPHINXBUILD environment variable to point
- echo.to the full path of the 'sphinx-build' executable. Alternatively you
- echo.may add the Sphinx directory to PATH.
- echo.
- echo.If you don't have Sphinx installed, grab it from
- echo.http://sphinx-doc.org/
- exit /b 1
-)
-
-%SPHINXBUILD% -M %1 %SOURCEDIR% %BUILDDIR% %SPHINXOPTS%
-goto end
-
-:help
-%SPHINXBUILD% -M help %SOURCEDIR% %BUILDDIR% %SPHINXOPTS%
-
-:end
-popd
diff --git a/doc/source/pyModeS.c_common.rst b/doc/source/pyModeS.c_common.rst
new file mode 100644
index 0000000..e01a891
--- /dev/null
+++ b/doc/source/pyModeS.c_common.rst
@@ -0,0 +1,7 @@
+pyModeS.c\_common module
+========================
+
+.. automodule:: pyModeS.c_common
+ :members:
+ :undoc-members:
+ :show-inheritance:
diff --git a/doc/source/pyModeS.common.rst b/doc/source/pyModeS.common.rst
new file mode 100644
index 0000000..12506a9
--- /dev/null
+++ b/doc/source/pyModeS.common.rst
@@ -0,0 +1,7 @@
+pyModeS.common module
+=====================
+
+.. automodule:: pyModeS.common
+ :members:
+ :undoc-members:
+ :show-inheritance:
diff --git a/doc/source/pyModeS.decoder.acas.rst b/doc/source/pyModeS.decoder.acas.rst
index c02eb92..4a6ec24 100644
--- a/doc/source/pyModeS.decoder.acas.rst
+++ b/doc/source/pyModeS.decoder.acas.rst
@@ -2,6 +2,6 @@ pyModeS.decoder.acas module
===========================
.. automodule:: pyModeS.decoder.acas
- :members:
- :undoc-members:
- :show-inheritance:
+ :members:
+ :undoc-members:
+ :show-inheritance:
diff --git a/doc/source/pyModeS.decoder.adsb.rst b/doc/source/pyModeS.decoder.adsb.rst
index 5f97d15..69e4d36 100644
--- a/doc/source/pyModeS.decoder.adsb.rst
+++ b/doc/source/pyModeS.decoder.adsb.rst
@@ -2,6 +2,6 @@ pyModeS.decoder.adsb module
===========================
.. automodule:: pyModeS.decoder.adsb
- :members:
- :undoc-members:
- :show-inheritance:
+ :members:
+ :undoc-members:
+ :show-inheritance:
diff --git a/doc/source/pyModeS.decoder.allcall.rst b/doc/source/pyModeS.decoder.allcall.rst
index a538c03..9cd724f 100644
--- a/doc/source/pyModeS.decoder.allcall.rst
+++ b/doc/source/pyModeS.decoder.allcall.rst
@@ -2,6 +2,6 @@ pyModeS.decoder.allcall module
==============================
.. automodule:: pyModeS.decoder.allcall
- :members:
- :undoc-members:
- :show-inheritance:
+ :members:
+ :undoc-members:
+ :show-inheritance:
diff --git a/doc/source/pyModeS.decoder.bds.bds05.rst b/doc/source/pyModeS.decoder.bds.bds05.rst
index f48d89e..9a83237 100644
--- a/doc/source/pyModeS.decoder.bds.bds05.rst
+++ b/doc/source/pyModeS.decoder.bds.bds05.rst
@@ -2,6 +2,6 @@ pyModeS.decoder.bds.bds05 module
================================
.. automodule:: pyModeS.decoder.bds.bds05
- :members:
- :undoc-members:
- :show-inheritance:
+ :members:
+ :undoc-members:
+ :show-inheritance:
diff --git a/doc/source/pyModeS.decoder.bds.bds06.rst b/doc/source/pyModeS.decoder.bds.bds06.rst
index 7cbff9a..1813fba 100644
--- a/doc/source/pyModeS.decoder.bds.bds06.rst
+++ b/doc/source/pyModeS.decoder.bds.bds06.rst
@@ -2,6 +2,6 @@ pyModeS.decoder.bds.bds06 module
================================
.. automodule:: pyModeS.decoder.bds.bds06
- :members:
- :undoc-members:
- :show-inheritance:
+ :members:
+ :undoc-members:
+ :show-inheritance:
diff --git a/doc/source/pyModeS.decoder.bds.bds08.rst b/doc/source/pyModeS.decoder.bds.bds08.rst
index 1a84527..e3a71ae 100644
--- a/doc/source/pyModeS.decoder.bds.bds08.rst
+++ b/doc/source/pyModeS.decoder.bds.bds08.rst
@@ -2,6 +2,6 @@ pyModeS.decoder.bds.bds08 module
================================
.. automodule:: pyModeS.decoder.bds.bds08
- :members:
- :undoc-members:
- :show-inheritance:
+ :members:
+ :undoc-members:
+ :show-inheritance:
diff --git a/doc/source/pyModeS.decoder.bds.bds09.rst b/doc/source/pyModeS.decoder.bds.bds09.rst
index 2041924..9ff72f6 100644
--- a/doc/source/pyModeS.decoder.bds.bds09.rst
+++ b/doc/source/pyModeS.decoder.bds.bds09.rst
@@ -2,6 +2,6 @@ pyModeS.decoder.bds.bds09 module
================================
.. automodule:: pyModeS.decoder.bds.bds09
- :members:
- :undoc-members:
- :show-inheritance:
+ :members:
+ :undoc-members:
+ :show-inheritance:
diff --git a/doc/source/pyModeS.decoder.bds.bds10.rst b/doc/source/pyModeS.decoder.bds.bds10.rst
index f3e39bf..b795759 100644
--- a/doc/source/pyModeS.decoder.bds.bds10.rst
+++ b/doc/source/pyModeS.decoder.bds.bds10.rst
@@ -2,6 +2,6 @@ pyModeS.decoder.bds.bds10 module
================================
.. automodule:: pyModeS.decoder.bds.bds10
- :members:
- :undoc-members:
- :show-inheritance:
+ :members:
+ :undoc-members:
+ :show-inheritance:
diff --git a/doc/source/pyModeS.decoder.bds.bds17.rst b/doc/source/pyModeS.decoder.bds.bds17.rst
index a4fbcbd..654c662 100644
--- a/doc/source/pyModeS.decoder.bds.bds17.rst
+++ b/doc/source/pyModeS.decoder.bds.bds17.rst
@@ -2,6 +2,6 @@ pyModeS.decoder.bds.bds17 module
================================
.. automodule:: pyModeS.decoder.bds.bds17
- :members:
- :undoc-members:
- :show-inheritance:
+ :members:
+ :undoc-members:
+ :show-inheritance:
diff --git a/doc/source/pyModeS.decoder.bds.bds20.rst b/doc/source/pyModeS.decoder.bds.bds20.rst
index dbe9753..8af6608 100644
--- a/doc/source/pyModeS.decoder.bds.bds20.rst
+++ b/doc/source/pyModeS.decoder.bds.bds20.rst
@@ -2,6 +2,6 @@ pyModeS.decoder.bds.bds20 module
================================
.. automodule:: pyModeS.decoder.bds.bds20
- :members:
- :undoc-members:
- :show-inheritance:
+ :members:
+ :undoc-members:
+ :show-inheritance:
diff --git a/doc/source/pyModeS.decoder.bds.bds30.rst b/doc/source/pyModeS.decoder.bds.bds30.rst
index 714376d..8ad11bd 100644
--- a/doc/source/pyModeS.decoder.bds.bds30.rst
+++ b/doc/source/pyModeS.decoder.bds.bds30.rst
@@ -2,6 +2,6 @@ pyModeS.decoder.bds.bds30 module
================================
.. automodule:: pyModeS.decoder.bds.bds30
- :members:
- :undoc-members:
- :show-inheritance:
+ :members:
+ :undoc-members:
+ :show-inheritance:
diff --git a/doc/source/pyModeS.decoder.bds.bds40.rst b/doc/source/pyModeS.decoder.bds.bds40.rst
index 1b907f1..6cb9409 100644
--- a/doc/source/pyModeS.decoder.bds.bds40.rst
+++ b/doc/source/pyModeS.decoder.bds.bds40.rst
@@ -2,6 +2,6 @@ pyModeS.decoder.bds.bds40 module
================================
.. automodule:: pyModeS.decoder.bds.bds40
- :members:
- :undoc-members:
- :show-inheritance:
+ :members:
+ :undoc-members:
+ :show-inheritance:
diff --git a/doc/source/pyModeS.decoder.bds.bds44.rst b/doc/source/pyModeS.decoder.bds.bds44.rst
index daed300..9d5b2d1 100644
--- a/doc/source/pyModeS.decoder.bds.bds44.rst
+++ b/doc/source/pyModeS.decoder.bds.bds44.rst
@@ -2,6 +2,6 @@ pyModeS.decoder.bds.bds44 module
================================
.. automodule:: pyModeS.decoder.bds.bds44
- :members:
- :undoc-members:
- :show-inheritance:
+ :members:
+ :undoc-members:
+ :show-inheritance:
diff --git a/doc/source/pyModeS.decoder.bds.bds45.rst b/doc/source/pyModeS.decoder.bds.bds45.rst
index b4494bb..758ab2e 100644
--- a/doc/source/pyModeS.decoder.bds.bds45.rst
+++ b/doc/source/pyModeS.decoder.bds.bds45.rst
@@ -2,6 +2,6 @@ pyModeS.decoder.bds.bds45 module
================================
.. automodule:: pyModeS.decoder.bds.bds45
- :members:
- :undoc-members:
- :show-inheritance:
+ :members:
+ :undoc-members:
+ :show-inheritance:
diff --git a/doc/source/pyModeS.decoder.bds.bds50.rst b/doc/source/pyModeS.decoder.bds.bds50.rst
index 85198da..7c89442 100644
--- a/doc/source/pyModeS.decoder.bds.bds50.rst
+++ b/doc/source/pyModeS.decoder.bds.bds50.rst
@@ -2,6 +2,6 @@ pyModeS.decoder.bds.bds50 module
================================
.. automodule:: pyModeS.decoder.bds.bds50
- :members:
- :undoc-members:
- :show-inheritance:
+ :members:
+ :undoc-members:
+ :show-inheritance:
diff --git a/doc/source/pyModeS.decoder.bds.bds53.rst b/doc/source/pyModeS.decoder.bds.bds53.rst
index ac365ec..ebe9247 100644
--- a/doc/source/pyModeS.decoder.bds.bds53.rst
+++ b/doc/source/pyModeS.decoder.bds.bds53.rst
@@ -2,6 +2,6 @@ pyModeS.decoder.bds.bds53 module
================================
.. automodule:: pyModeS.decoder.bds.bds53
- :members:
- :undoc-members:
- :show-inheritance:
+ :members:
+ :undoc-members:
+ :show-inheritance:
diff --git a/doc/source/pyModeS.decoder.bds.bds60.rst b/doc/source/pyModeS.decoder.bds.bds60.rst
index df83367..6c38b59 100644
--- a/doc/source/pyModeS.decoder.bds.bds60.rst
+++ b/doc/source/pyModeS.decoder.bds.bds60.rst
@@ -2,6 +2,6 @@ pyModeS.decoder.bds.bds60 module
================================
.. automodule:: pyModeS.decoder.bds.bds60
- :members:
- :undoc-members:
- :show-inheritance:
+ :members:
+ :undoc-members:
+ :show-inheritance:
diff --git a/doc/source/pyModeS.decoder.bds.rst b/doc/source/pyModeS.decoder.bds.rst
index 78ad76b..ace6958 100644
--- a/doc/source/pyModeS.decoder.bds.rst
+++ b/doc/source/pyModeS.decoder.bds.rst
@@ -2,14 +2,15 @@ pyModeS.decoder.bds package
===========================
.. automodule:: pyModeS.decoder.bds
- :members:
- :undoc-members:
- :show-inheritance:
+ :members:
+ :undoc-members:
+ :show-inheritance:
Submodules
----------
.. toctree::
+ :maxdepth: 4
pyModeS.decoder.bds.bds05
pyModeS.decoder.bds.bds06
@@ -25,4 +26,3 @@ Submodules
pyModeS.decoder.bds.bds50
pyModeS.decoder.bds.bds53
pyModeS.decoder.bds.bds60
-
diff --git a/doc/source/pyModeS.decoder.commb.rst b/doc/source/pyModeS.decoder.commb.rst
index a5b228c..ad23b9f 100644
--- a/doc/source/pyModeS.decoder.commb.rst
+++ b/doc/source/pyModeS.decoder.commb.rst
@@ -2,6 +2,6 @@ pyModeS.decoder.commb module
============================
.. automodule:: pyModeS.decoder.commb
- :members:
- :undoc-members:
- :show-inheritance:
+ :members:
+ :undoc-members:
+ :show-inheritance:
diff --git a/doc/source/pyModeS.decoder.common.rst b/doc/source/pyModeS.decoder.common.rst
deleted file mode 100644
index ce3afc2..0000000
--- a/doc/source/pyModeS.decoder.common.rst
+++ /dev/null
@@ -1,7 +0,0 @@
-pyModeS.decoder.common module
-=============================
-
-.. automodule:: pyModeS.decoder.common
- :members:
- :undoc-members:
- :show-inheritance:
diff --git a/doc/source/pyModeS.decoder.ehs.rst b/doc/source/pyModeS.decoder.ehs.rst
deleted file mode 100644
index 5f1ae62..0000000
--- a/doc/source/pyModeS.decoder.ehs.rst
+++ /dev/null
@@ -1,7 +0,0 @@
-pyModeS.decoder.ehs module
-==========================
-
-.. automodule:: pyModeS.decoder.ehs
- :members:
- :undoc-members:
- :show-inheritance:
diff --git a/doc/source/pyModeS.decoder.els.rst b/doc/source/pyModeS.decoder.els.rst
deleted file mode 100644
index 81b7c16..0000000
--- a/doc/source/pyModeS.decoder.els.rst
+++ /dev/null
@@ -1,7 +0,0 @@
-pyModeS.decoder.els module
-==========================
-
-.. automodule:: pyModeS.decoder.els
- :members:
- :undoc-members:
- :show-inheritance:
diff --git a/doc/source/pyModeS.decoder.rst b/doc/source/pyModeS.decoder.rst
index a04bff2..21b8670 100644
--- a/doc/source/pyModeS.decoder.rst
+++ b/doc/source/pyModeS.decoder.rst
@@ -2,29 +2,28 @@ pyModeS.decoder package
=======================
.. automodule:: pyModeS.decoder
- :members:
- :undoc-members:
- :show-inheritance:
+ :members:
+ :undoc-members:
+ :show-inheritance:
Subpackages
-----------
.. toctree::
+ :maxdepth: 4
- pyModeS.decoder.bds
+ pyModeS.decoder.bds
Submodules
----------
.. toctree::
+ :maxdepth: 4
pyModeS.decoder.acas
pyModeS.decoder.adsb
pyModeS.decoder.allcall
pyModeS.decoder.commb
- pyModeS.decoder.common
- pyModeS.decoder.ehs
- pyModeS.decoder.els
pyModeS.decoder.surv
pyModeS.decoder.uncertainty
-
+ pyModeS.decoder.uplink
diff --git a/doc/source/pyModeS.decoder.surv.rst b/doc/source/pyModeS.decoder.surv.rst
index b60a658..f1489be 100644
--- a/doc/source/pyModeS.decoder.surv.rst
+++ b/doc/source/pyModeS.decoder.surv.rst
@@ -2,6 +2,6 @@ pyModeS.decoder.surv module
===========================
.. automodule:: pyModeS.decoder.surv
- :members:
- :undoc-members:
- :show-inheritance:
+ :members:
+ :undoc-members:
+ :show-inheritance:
diff --git a/doc/source/pyModeS.decoder.uncertainty.rst b/doc/source/pyModeS.decoder.uncertainty.rst
index 50a7878..b74a0e9 100644
--- a/doc/source/pyModeS.decoder.uncertainty.rst
+++ b/doc/source/pyModeS.decoder.uncertainty.rst
@@ -2,6 +2,6 @@ pyModeS.decoder.uncertainty module
==================================
.. automodule:: pyModeS.decoder.uncertainty
- :members:
- :undoc-members:
- :show-inheritance:
+ :members:
+ :undoc-members:
+ :show-inheritance:
diff --git a/doc/source/pyModeS.decoder.uplink.rst b/doc/source/pyModeS.decoder.uplink.rst
new file mode 100644
index 0000000..3520702
--- /dev/null
+++ b/doc/source/pyModeS.decoder.uplink.rst
@@ -0,0 +1,7 @@
+pyModeS.decoder.uplink module
+=============================
+
+.. automodule:: pyModeS.decoder.uplink
+ :members:
+ :undoc-members:
+ :show-inheritance:
diff --git a/doc/source/pyModeS.extra.aero.rst b/doc/source/pyModeS.extra.aero.rst
deleted file mode 100644
index 9ec9755..0000000
--- a/doc/source/pyModeS.extra.aero.rst
+++ /dev/null
@@ -1,7 +0,0 @@
-pyModeS.extra.aero module
-=========================
-
-.. automodule:: pyModeS.extra.aero
- :members:
- :undoc-members:
- :show-inheritance:
diff --git a/doc/source/pyModeS.extra.rst b/doc/source/pyModeS.extra.rst
deleted file mode 100644
index 0c38a7c..0000000
--- a/doc/source/pyModeS.extra.rst
+++ /dev/null
@@ -1,16 +0,0 @@
-pyModeS.extra package
-=====================
-
-.. automodule:: pyModeS.extra
- :members:
- :undoc-members:
- :show-inheritance:
-
-Submodules
-----------
-
-.. toctree::
-
- pyModeS.extra.aero
- pyModeS.extra.tcpclient
-
diff --git a/doc/source/pyModeS.extra.tcpclient.rst b/doc/source/pyModeS.extra.tcpclient.rst
deleted file mode 100644
index 53d723a..0000000
--- a/doc/source/pyModeS.extra.tcpclient.rst
+++ /dev/null
@@ -1,7 +0,0 @@
-pyModeS.extra.tcpclient module
-==============================
-
-.. automodule:: pyModeS.extra.tcpclient
- :members:
- :undoc-members:
- :show-inheritance:
diff --git a/doc/source/pyModeS.rst b/doc/source/pyModeS.rst
index a2d4509..d24c1ca 100644
--- a/doc/source/pyModeS.rst
+++ b/doc/source/pyModeS.rst
@@ -2,16 +2,23 @@ pyModeS package
===============
.. automodule:: pyModeS
- :members:
- :undoc-members:
- :show-inheritance:
+ :members:
+ :undoc-members:
+ :show-inheritance:
Subpackages
-----------
.. toctree::
+ :maxdepth: 4
- pyModeS.decoder
- pyModeS.extra
- pyModeS.streamer
+ pyModeS.decoder
+Submodules
+----------
+
+.. toctree::
+ :maxdepth: 4
+
+ pyModeS.c_common
+ pyModeS.common
diff --git a/doc/source/pyModeS.streamer.rst b/doc/source/pyModeS.streamer.rst
deleted file mode 100644
index 66f6a95..0000000
--- a/doc/source/pyModeS.streamer.rst
+++ /dev/null
@@ -1,16 +0,0 @@
-pyModeS.streamer package
-========================
-
-.. automodule:: pyModeS.streamer
- :members:
- :undoc-members:
- :show-inheritance:
-
-Submodules
-----------
-
-.. toctree::
-
- pyModeS.streamer.screen
- pyModeS.streamer.stream
-
diff --git a/doc/source/pyModeS.streamer.screen.rst b/doc/source/pyModeS.streamer.screen.rst
deleted file mode 100644
index 0fbddee..0000000
--- a/doc/source/pyModeS.streamer.screen.rst
+++ /dev/null
@@ -1,7 +0,0 @@
-pyModeS.streamer.screen module
-==============================
-
-.. automodule:: pyModeS.streamer.screen
- :members:
- :undoc-members:
- :show-inheritance:
diff --git a/doc/source/pyModeS.streamer.stream.rst b/doc/source/pyModeS.streamer.stream.rst
deleted file mode 100644
index 20d068e..0000000
--- a/doc/source/pyModeS.streamer.stream.rst
+++ /dev/null
@@ -1,7 +0,0 @@
-pyModeS.streamer.stream module
-==============================
-
-.. automodule:: pyModeS.streamer.stream
- :members:
- :undoc-members:
- :show-inheritance:
diff --git a/doc/warnings b/doc/warnings
new file mode 100644
index 0000000..e69de29
diff --git a/pyModeS/__init__.py b/pyModeS/__init__.py
index 488cb89..3b414d0 100644
--- a/pyModeS/__init__.py
+++ b/pyModeS/__init__.py
@@ -15,8 +15,6 @@ from .decoder import bds
from .extra import aero
from .extra import tcpclient
-from .encoder import encode_adsb
-
warnings.simplefilter("once", DeprecationWarning)
diff --git a/pyModeS/decoder/adsb.py b/pyModeS/decoder/adsb.py
index b1c8e9b..e74f6c2 100644
--- a/pyModeS/decoder/adsb.py
+++ b/pyModeS/decoder/adsb.py
@@ -1,15 +1,11 @@
-"""ADS-B Wrapper.
+"""ADS-B module.
-The ADS-B wrapper also imports functions from the following modules:
+The ADS-B module also imports functions from the following modules:
-- pyModeS.decoder.bds.bds05
- Functions: ``airborne_position``, ``airborne_position_with_ref``, ``altitude``
-- pyModeS.decoder.bds.bds06
- Functions: ``surface_position``, ``surface_position_with_ref``, ``surface_velocity``
-- pyModeS.decoder.bds.bds08
- Functions: ``category``, ``callsign``
-- pyModeS.decoder.bds.bds09
- Functions: ``airborne_velocity``, ``altitude_diff``
+- pyModeS.decoder.bds.bds05: ``airborne_position()``, ``airborne_position_with_ref()``, ``altitude()``
+- pyModeS.decoder.bds.bds06: ``surface_position()``, ``surface_position_with_ref()``, ``surface_velocity()``
+- pyModeS.decoder.bds.bds08: ``category()``, ``callsign()``
+- pyModeS.decoder.bds.bds09: ``airborne_velocity()``, ``altitude_diff()``
"""
@@ -47,27 +43,32 @@ def typecode(msg):
def position(msg0, msg1, t0, t1, lat_ref=None, lon_ref=None):
- """Decode position from a pair of even and odd position message
- (works with both airborne and surface position messages)
+ """Decode surface or airborne position from a pair of even and odd
+ position messages.
+
+ Note, that to decode surface position using the position message pair,
+ the reference position has to be provided.
Args:
msg0 (string): even message (28 hexdigits)
msg1 (string): odd message (28 hexdigits)
t0 (int): timestamps for the even message
t1 (int): timestamps for the odd message
+ lat_ref (float): latitude of reference position
+ lon_ref (float): longitude of reference position
Returns:
(float, float): (latitude, longitude) of the aircraft
+
"""
tc0 = typecode(msg0)
tc1 = typecode(msg1)
if 5 <= tc0 <= 8 and 5 <= tc1 <= 8:
- if (not lat_ref) or (not lon_ref):
+ if lat_ref is None or lon_ref is None:
raise RuntimeError(
- "Surface position encountered, a reference \
- position lat/lon required. Location of \
- receiver can be used."
+ "Surface position encountered, a reference position"
+ " lat/lon required. Location of receiver can be used."
)
else:
return surface_position(msg0, msg1, t0, t1, lat_ref, lon_ref)
@@ -81,19 +82,20 @@ def position(msg0, msg1, t0, t1, lat_ref=None, lon_ref=None):
return airborne_position(msg0, msg1, t0, t1)
else:
- raise RuntimeError("incorrect or inconsistent message types")
+ raise RuntimeError("Incorrect or inconsistent message types")
def position_with_ref(msg, lat_ref, lon_ref):
- """Decode position with only one message,
- knowing reference nearby location, such as previously
- calculated location, ground station, or airport location, etc.
- Works with both airborne and surface position messages.
+ """Decode position with only one message.
+
+ A reference position is required, which can be previously
+ calculated location, ground station, or airport location.
+ The function works with both airborne and surface position messages.
The reference position shall be with in 180NM (airborne) or 45NM (surface)
of the true position.
Args:
- msg (string): even message (28 hexdigits)
+ msg (str): even message (28 hexdigits)
lat_ref: previous known latitude
lon_ref: previous known longitude
@@ -114,15 +116,15 @@ def position_with_ref(msg, lat_ref, lon_ref):
def altitude(msg):
- """Decode aircraft altitude
+ """Decode aircraft altitude.
Args:
- msg (string): 28 bytes hexadecimal message string
+ msg (str): 28 hexdigits string
Returns:
int: altitude in feet
- """
+ """
tc = typecode(msg)
if tc < 5 or tc == 19 or tc > 22:
@@ -137,36 +139,31 @@ def altitude(msg):
return altitude05(msg)
-def velocity(msg, rtn_sources=False):
- """Calculate the speed, heading, and vertical rate
- (handles both airborne or surface message)
+def velocity(msg, source=False):
+ """Calculate the speed, heading, and vertical rate (handles both airborne or surface message).
Args:
- msg (string): 28 bytes hexadecimal message string
- rtn_source (boolean): If the function will return
- the sources for direction of travel and vertical
- rate. This will change the return value from a four
- element array to a six element array.
+ msg (str): 28 hexdigits string
+ source (boolean): Include direction and vertical rate sources in return. Default to False.
+ If set to True, the function will return six value instead of four.
Returns:
- (int, float, int, string, string, string): speed (kt),
- ground track or heading (degree),
- rate of climb/descent (ft/min), speed type
- ('GS' for ground speed, 'AS' for airspeed),
- direction source ('true_north' for ground track / true north
- as reference, 'mag_north' for magnetic north as reference),
- rate of climb/descent source ('Baro' for barometer, 'GNSS'
- for GNSS constellation).
+ int, float, int, string, [string], [string]: Four or six parameters, including:
+ - Speed (kt)
+ - Angle (degree), either ground track or heading
+ - Vertical rate (ft/min)
+ - Speed type ('GS' for ground speed, 'AS' for airspeed)
+ - [Optional] Direction source ('TRUE_NORTH' or 'MAGENTIC_NORTH')
+ - [Optional] Vertical rate source ('BARO' or 'GNSS')
+
+ For surface messages, vertical rate and its respective sources are set to None.
- In the case of surface messages, None will be put in place
- for vertical rate and its respective sources.
"""
-
if 5 <= typecode(msg) <= 8:
- return surface_velocity(msg, rtn_sources)
+ return surface_velocity(msg, source)
elif typecode(msg) == 19:
- return airborne_velocity(msg, rtn_sources)
+ return airborne_velocity(msg, source)
else:
raise RuntimeError(
@@ -179,7 +176,7 @@ def speed_heading(msg):
(handles both airborne or surface message)
Args:
- msg (string): 28 bytes hexadecimal message string
+ msg (str): 28 hexdigits string
Returns:
(int, float): speed (kt), ground track or heading (degree)
@@ -191,7 +188,7 @@ def speed_heading(msg):
def oe_flag(msg):
"""Check the odd/even flag. Bit 54, 0 for even, 1 for odd.
Args:
- msg (string): 28 bytes hexadecimal message string
+ msg (str): 28 hexdigits string
Returns:
int: 0 or 1, for even or odd frame
"""
@@ -203,7 +200,7 @@ def version(msg):
"""ADS-B Version
Args:
- msg (string): 28 bytes hexadecimal message string, TC = 31
+ msg (str): 28 hexdigits string, TC = 31
Returns:
int: version number
@@ -225,7 +222,7 @@ def nuc_p(msg):
"""Calculate NUCp, Navigation Uncertainty Category - Position (ADS-B version 1)
Args:
- msg (string): 28 bytes hexadecimal message string,
+ msg (str): 28 hexdigits string,
Returns:
int: Horizontal Protection Limit
@@ -261,7 +258,7 @@ def nuc_v(msg):
"""Calculate NUCv, Navigation Uncertainty Category - Velocity (ADS-B version 1)
Args:
- msg (string): 28 bytes hexadecimal message string,
+ msg (str): 28 hexdigits string,
Returns:
int or string: 95% Horizontal Velocity Error
@@ -290,7 +287,7 @@ def nic_v1(msg, NICs):
"""Calculate NIC, navigation integrity category, for ADS-B version 1
Args:
- msg (string): 28 bytes hexadecimal message string
+ msg (str): 28 hexdigits string
NICs (int or string): NIC supplement
Returns:
@@ -324,7 +321,7 @@ def nic_v2(msg, NICa, NICbc):
"""Calculate NIC, navigation integrity category, for ADS-B version 2
Args:
- msg (string): 28 bytes hexadecimal message string
+ msg (str): 28 hexdigits string
NICa (int or string): NIC supplement - A
NICbc (int or srting): NIC supplement - B or C
@@ -362,7 +359,7 @@ def nic_s(msg):
"""Obtain NIC supplement bit, TC=31 message
Args:
- msg (string): 28 bytes hexadecimal message string
+ msg (str): 28 hexdigits string
Returns:
int: NICs number (0 or 1)
@@ -384,7 +381,7 @@ def nic_a_c(msg):
"""Obtain NICa/c, navigation integrity category supplements a and c
Args:
- msg (string): 28 bytes hexadecimal message string
+ msg (str): 28 hexdigits string
Returns:
(int, int): NICa and NICc number (0 or 1)
@@ -407,7 +404,7 @@ def nic_b(msg):
"""Obtain NICb, navigation integrity category supplement-b
Args:
- msg (string): 28 bytes hexadecimal message string
+ msg (str): 28 hexdigits string
Returns:
int: NICb number (0 or 1)
@@ -429,7 +426,7 @@ def nac_p(msg):
"""Calculate NACp, Navigation Accuracy Category - Position
Args:
- msg (string): 28 bytes hexadecimal message string, TC = 29 or 31
+ msg (str): 28 hexdigits string, TC = 29 or 31
Returns:
int or string: 95% horizontal accuracy bounds, Estimated Position Uncertainty
@@ -464,7 +461,7 @@ def nac_v(msg):
"""Calculate NACv, Navigation Accuracy Category - Velocity
Args:
- msg (string): 28 bytes hexadecimal message string, TC = 19
+ msg (str): 28 hexdigits string, TC = 19
Returns:
int or string: 95% horizontal accuracy bounds for velocity, Horizontal Figure of Merit
@@ -493,7 +490,7 @@ def sil(msg, version):
"""Calculate SIL, Surveillance Integrity Level
Args:
- msg (string): 28 bytes hexadecimal message string with TC = 29, 31
+ msg (str): 28 hexdigits string with TC = 29, 31
Returns:
int or string: Probability of exceeding Horizontal Radius of Containment RCu
diff --git a/pyModeS/decoder/bds/__init__.py b/pyModeS/decoder/bds/__init__.py
index d6e0163..f3ed2d2 100644
--- a/pyModeS/decoder/bds/__init__.py
+++ b/pyModeS/decoder/bds/__init__.py
@@ -45,7 +45,7 @@ def is50or60(msg, spd_ref, trk_ref, alt_ref):
"""Use reference ground speed and trk to determine BDS50 and DBS60.
Args:
- msg (String): 28 bytes hexadecimal message string
+ msg (str): 28 hexdigits string
spd_ref (float): reference speed (ADS-B ground speed), kts
trk_ref (float): reference track (ADS-B track angle), deg
alt_ref (float): reference altitude (ADS-B altitude), ft
@@ -108,7 +108,7 @@ def infer(msg, mrar=False):
"""Estimate the most likely BDS code of an message.
Args:
- msg (String): 28 bytes hexadecimal message string
+ msg (str): 28 hexdigits string
mrar (bool): Also infer MRAR (BDS 44) and MHR (BDS 45). Defaults to False.
Returns:
diff --git a/pyModeS/decoder/bds/bds05.py b/pyModeS/decoder/bds/bds05.py
index 29be27a..63f4081 100644
--- a/pyModeS/decoder/bds/bds05.py
+++ b/pyModeS/decoder/bds/bds05.py
@@ -85,7 +85,7 @@ def airborne_position_with_ref(msg, lat_ref, lon_ref):
be with in 180NM of the true position.
Args:
- msg (string): even message (28 hexdigits)
+ msg (str): even message (28 hexdigits)
lat_ref: previous known latitude
lon_ref: previous known longitude
@@ -127,7 +127,7 @@ def altitude(msg):
"""Decode aircraft altitude
Args:
- msg (string): 28 bytes hexadecimal message string
+ msg (str): 28 hexdigits string
Returns:
int: altitude in feet
diff --git a/pyModeS/decoder/bds/bds06.py b/pyModeS/decoder/bds/bds06.py
index 81ab79d..2c366ce 100644
--- a/pyModeS/decoder/bds/bds06.py
+++ b/pyModeS/decoder/bds/bds06.py
@@ -1,7 +1,7 @@
# ------------------------------------------
# BDS 0,6
# ADS-B TC=5-8
-# Surface position
+# Surface movment
# ------------------------------------------
from pyModeS import common
@@ -89,7 +89,7 @@ def surface_position_with_ref(msg, lat_ref, lon_ref):
be with in 45NM of the true position.
Args:
- msg (string): even message (28 hexdigits)
+ msg (str): even message (28 hexdigits)
lat_ref: previous known latitude
lon_ref: previous known longitude
@@ -127,23 +127,24 @@ def surface_position_with_ref(msg, lat_ref, lon_ref):
return round(lat, 5), round(lon, 5)
-def surface_velocity(msg, rtn_sources=False):
- """Decode surface velocity from from a surface position message
+def surface_velocity(msg, source=False):
+ """Decode surface velocity from a surface position message
+
Args:
- msg (string): 28 bytes hexadecimal message string
- rtn_source (boolean): If the function will return
- the sources for direction of travel and vertical
- rate. This will change the return value from a four
- element array to a six element array.
+ msg (str): 28 hexdigits string
+ source (boolean): Include direction and vertical rate sources in return. Default to False.
+ If set to True, the function will return six value instead of four.
Returns:
- (int, float, int, string, string, None): speed (kt),
- ground track (degree), None for rate of climb/descend (ft/min),
- and speed type ('GS' for ground speed), direction source
- ('true_north' for ground track / true north as reference),
- None rate of climb/descent source.
- """
+ int, float, int, string, [string], [string]: Four or six parameters, including:
+ - Speed (kt)
+ - Angle (degree), ground track
+ - Vertical rate, always 0
+ - Speed type ('GS' for ground speed, 'AS' for airspeed)
+ - [Optional] Direction source ('TRUE_NORTH')
+ - [Optional] Vertical rate source (None)
+ """
if common.typecode(msg) < 5 or common.typecode(msg) > 8:
raise RuntimeError("%s: Not a surface message, expecting 5= 0 else trk + 360 # no negative val
- tag = "GS"
+ spd_type = "GS"
trk_or_hdg = round(trk, 2)
- dir_type = "true_north"
+ dir_type = "TRUE_NORTH"
else:
if mb[13] == "0":
@@ -81,32 +78,33 @@ def airborne_velocity(msg, rtn_sources=False):
spd *= 4
if mb[24] == "0":
- tag = "IAS"
+ spd_type = "IAS"
else:
- tag = "TAS"
+ spd_type = "TAS"
- dir_type = "mag_north"
+ dir_type = "MAGENTIC_NORTH"
- vr_source = "GNSS" if mb[35] == "0" else "Baro"
+ vr_source = "GNSS" if mb[35] == "0" else "BARO"
vr_sign = -1 if mb[36] == "1" else 1
vr = common.bin2int(mb[37:46])
- rocd = None if vr == 0 else int(vr_sign * (vr - 1) * 64)
+ vs = None if vr == 0 else int(vr_sign * (vr - 1) * 64)
- if rtn_sources:
- return spd, trk_or_hdg, rocd, tag, dir_type, vr_source
+ if source:
+ return spd, trk_or_hdg, vs, spd_type, dir_type, vr_source
else:
- return spd, trk_or_hdg, rocd, tag
+ return spd, trk_or_hdg, vs, spd_type
def altitude_diff(msg):
- """Decode the differece between GNSS and barometric altitude
+ """Decode the differece between GNSS and barometric altitude.
Args:
- msg (string): 28 bytes hexadecimal message string, TC=19
+ msg (str): 28 hexdigits string, TC=19
Returns:
- int: Altitude difference in ft. Negative value indicates GNSS altitude
- below barometric altitude.
+ int: Altitude difference in feet. Negative value indicates GNSS altitude
+ below barometric altitude.
+
"""
tc = common.typecode(msg)
diff --git a/pyModeS/decoder/bds/bds10.py b/pyModeS/decoder/bds/bds10.py
index abaa974..b903bcb 100644
--- a/pyModeS/decoder/bds/bds10.py
+++ b/pyModeS/decoder/bds/bds10.py
@@ -10,7 +10,7 @@ def is10(msg):
"""Check if a message is likely to be BDS code 1,0
Args:
- msg (String): 28 bytes hexadecimal message string
+ msg (str): 28 hexdigits string
Returns:
bool: True or False
@@ -42,7 +42,7 @@ def ovc10(msg):
"""Return the overlay control capability
Args:
- msg (String): 28 bytes hexadecimal message string
+ msg (str): 28 hexdigits string
Returns:
int: Whether the transponder is OVC capable
diff --git a/pyModeS/decoder/bds/bds17.py b/pyModeS/decoder/bds/bds17.py
index 5a056c9..cb5270a 100644
--- a/pyModeS/decoder/bds/bds17.py
+++ b/pyModeS/decoder/bds/bds17.py
@@ -10,7 +10,7 @@ def is17(msg):
"""Check if a message is likely to be BDS code 1,7
Args:
- msg (String): 28 bytes hexadecimal message string
+ msg (str): 28 hexdigits string
Returns:
bool: True or False
@@ -42,7 +42,7 @@ def cap17(msg):
"""Extract capacities from BDS 1,7 message
Args:
- msg (String): 28 bytes hexadecimal message string
+ msg (str): 28 hexdigits string
Returns:
list: list of support BDS codes
diff --git a/pyModeS/decoder/bds/bds20.py b/pyModeS/decoder/bds/bds20.py
index 60eb94e..63e10cd 100644
--- a/pyModeS/decoder/bds/bds20.py
+++ b/pyModeS/decoder/bds/bds20.py
@@ -10,7 +10,7 @@ def is20(msg):
"""Check if a message is likely to be BDS code 2,0
Args:
- msg (String): 28 bytes hexadecimal message string
+ msg (str): 28 hexdigits string
Returns:
bool: True or False
@@ -36,7 +36,7 @@ def cs20(msg):
"""Aircraft callsign
Args:
- msg (String): 28 bytes hexadecimal message (BDS40) string
+ msg (str): 28 hexdigits string
Returns:
string: callsign, max. 8 chars
diff --git a/pyModeS/decoder/bds/bds30.py b/pyModeS/decoder/bds/bds30.py
index a71eaeb..7270d3c 100644
--- a/pyModeS/decoder/bds/bds30.py
+++ b/pyModeS/decoder/bds/bds30.py
@@ -10,7 +10,7 @@ def is30(msg):
"""Check if a message is likely to be BDS code 2,0
Args:
- msg (String): 28 bytes hexadecimal message string
+ msg (str): 28 hexdigits string
Returns:
bool: True or False
diff --git a/pyModeS/decoder/bds/bds40.py b/pyModeS/decoder/bds/bds40.py
index aca5613..bc4950e 100644
--- a/pyModeS/decoder/bds/bds40.py
+++ b/pyModeS/decoder/bds/bds40.py
@@ -11,7 +11,7 @@ def is40(msg):
"""Check if a message is likely to be BDS code 4,0
Args:
- msg (String): 28 bytes hexadecimal message string
+ msg (str): 28 hexdigits string
Returns:
bool: True or False
@@ -54,7 +54,7 @@ def selalt40mcp(msg):
"""Selected altitude, MCP/FCU
Args:
- msg (String): 28 bytes hexadecimal message (BDS40) string
+ msg (str): 28 hexdigits string
Returns:
int: altitude in feet
@@ -72,7 +72,7 @@ def selalt40fms(msg):
"""Selected altitude, FMS
Args:
- msg (String): 28 bytes hexadecimal message (BDS40) string
+ msg (str): 28 hexdigits string
Returns:
int: altitude in feet
@@ -90,7 +90,7 @@ def p40baro(msg):
"""Barometric pressure setting
Args:
- msg (String): 28 bytes hexadecimal message (BDS40) string
+ msg (str): 28 hexdigits string
Returns:
float: pressure in millibar
diff --git a/pyModeS/decoder/bds/bds44.py b/pyModeS/decoder/bds/bds44.py
index 7e04de4..a2198a3 100644
--- a/pyModeS/decoder/bds/bds44.py
+++ b/pyModeS/decoder/bds/bds44.py
@@ -12,7 +12,7 @@ def is44(msg):
Meteorological routine air report
Args:
- msg (String): 28 bytes hexadecimal message string
+ msg (str): 28 hexdigits string
Returns:
bool: True or False
@@ -55,7 +55,7 @@ def wind44(msg):
"""Wind speed and direction.
Args:
- msg (String): 28 bytes hexadecimal message string
+ msg (str): 28 hexdigits string
Returns:
(int, float): speed (kt), direction (degree)
@@ -77,7 +77,7 @@ def temp44(msg):
"""Static air temperature.
Args:
- msg (String): 28 bytes hexadecimal message string
+ msg (str): 28 hexdigits string
Returns:
float, float: temperature and alternative temperature in Celsius degree.
@@ -106,7 +106,7 @@ def p44(msg):
"""Static pressure.
Args:
- msg (String): 28 bytes hexadecimal message string
+ msg (str): 28 hexdigits string
Returns:
int: static pressure in hPa
@@ -126,7 +126,7 @@ def hum44(msg):
"""humidity
Args:
- msg (String): 28 bytes hexadecimal message string
+ msg (str): 28 hexdigits string
Returns:
float: percentage of humidity, [0 - 100] %
@@ -145,7 +145,7 @@ def turb44(msg):
"""Turblence.
Args:
- msg (String): 28 bytes hexadecimal message string
+ msg (str): 28 hexdigits string
Returns:
int: turbulence level. 0=NIL, 1=Light, 2=Moderate, 3=Severe
diff --git a/pyModeS/decoder/bds/bds45.py b/pyModeS/decoder/bds/bds45.py
index f740457..8dca85c 100644
--- a/pyModeS/decoder/bds/bds45.py
+++ b/pyModeS/decoder/bds/bds45.py
@@ -12,7 +12,7 @@ def is45(msg):
Meteorological hazard report
Args:
- msg (String): 28 bytes hexadecimal message string
+ msg (str): 28 hexdigits string
Returns:
bool: True or False
@@ -64,7 +64,7 @@ def turb45(msg):
"""Turbulence.
Args:
- msg (String): 28 bytes hexadecimal message string
+ msg (str): 28 hexdigits string
Returns:
int: Turbulence level. 0=NIL, 1=Light, 2=Moderate, 3=Severe
@@ -82,7 +82,7 @@ def ws45(msg):
"""Wind shear.
Args:
- msg (String): 28 bytes hexadecimal message string
+ msg (str): 28 hexdigits string
Returns:
int: Wind shear level. 0=NIL, 1=Light, 2=Moderate, 3=Severe
@@ -100,7 +100,7 @@ def mb45(msg):
"""Microburst.
Args:
- msg (String): 28 bytes hexadecimal message string
+ msg (str): 28 hexdigits string
Returns:
int: Microburst level. 0=NIL, 1=Light, 2=Moderate, 3=Severe
@@ -118,7 +118,7 @@ def ic45(msg):
"""Icing.
Args:
- msg (String): 28 bytes hexadecimal message string
+ msg (str): 28 hexdigits string
Returns:
int: Icing level. 0=NIL, 1=Light, 2=Moderate, 3=Severe
@@ -136,7 +136,7 @@ def wv45(msg):
"""Wake vortex.
Args:
- msg (String): 28 bytes hexadecimal message string
+ msg (str): 28 hexdigits string
Returns:
int: Wake vortex level. 0=NIL, 1=Light, 2=Moderate, 3=Severe
@@ -154,7 +154,7 @@ def temp45(msg):
"""Static air temperature.
Args:
- msg (String): 28 bytes hexadecimal message string
+ msg (str): 28 hexdigits string
Returns:
float: tmeperature in Celsius degree
@@ -178,7 +178,7 @@ def p45(msg):
"""Average static pressure.
Args:
- msg (String): 28 bytes hexadecimal message string
+ msg (str): 28 hexdigits string
Returns:
int: static pressure in hPa
@@ -195,7 +195,7 @@ def rh45(msg):
"""Radio height.
Args:
- msg (String): 28 bytes hexadecimal message string
+ msg (str): 28 hexdigits string
Returns:
int: radio height in ft
diff --git a/pyModeS/decoder/bds/bds50.py b/pyModeS/decoder/bds/bds50.py
index 2a16999..a2e534a 100644
--- a/pyModeS/decoder/bds/bds50.py
+++ b/pyModeS/decoder/bds/bds50.py
@@ -11,7 +11,7 @@ def is50(msg):
(Track and turn report)
Args:
- msg (String): 28 bytes hexadecimal message string
+ msg (str): 28 hexdigits string
Returns:
bool: True or False
@@ -61,7 +61,7 @@ def roll50(msg):
"""Roll angle, BDS 5,0 message
Args:
- msg (String): 28 bytes hexadecimal message (BDS50) string
+ msg (str): 28 hexdigits string
Returns:
float: angle in degrees,
@@ -86,7 +86,7 @@ def trk50(msg):
"""True track angle, BDS 5,0 message
Args:
- msg (String): 28 bytes hexadecimal message (BDS50) string
+ msg (str): 28 hexdigits string
Returns:
float: angle in degrees to true north (from 0 to 360)
@@ -115,7 +115,7 @@ def gs50(msg):
"""Ground speed, BDS 5,0 message
Args:
- msg (String): 28 bytes hexadecimal message (BDS50) string
+ msg (str): 28 hexdigits string
Returns:
int: ground speed in knots
@@ -133,7 +133,7 @@ def rtrk50(msg):
"""Track angle rate, BDS 5,0 message
Args:
- msg (String): 28 bytes hexadecimal message (BDS50) string
+ msg (str): 28 hexdigits string
Returns:
float: angle rate in degrees/second
@@ -159,7 +159,7 @@ def tas50(msg):
"""Aircraft true airspeed, BDS 5,0 message
Args:
- msg (String): 28 bytes hexadecimal message (BDS50) string
+ msg (str): 28 hexdigits string
Returns:
int: true airspeed in knots
diff --git a/pyModeS/decoder/bds/bds53.py b/pyModeS/decoder/bds/bds53.py
index 34e98ca..023f7ef 100644
--- a/pyModeS/decoder/bds/bds53.py
+++ b/pyModeS/decoder/bds/bds53.py
@@ -11,7 +11,7 @@ def is53(msg):
(Air-referenced state vector)
Args:
- msg (String): 28 bytes hexadecimal message string
+ msg (str): 28 hexdigits string
Returns:
bool: True or False
@@ -62,7 +62,7 @@ def hdg53(msg):
"""Magnetic heading, BDS 5,3 message
Args:
- msg (String): 28 bytes hexadecimal message (BDS53) string
+ msg (str): 28 hexdigits string
Returns:
float: angle in degrees to true north (from 0 to 360)
@@ -91,7 +91,7 @@ def ias53(msg):
"""Indicated airspeed, DBS 5,3 message
Args:
- msg (String): 28 bytes hexadecimal message
+ msg (str): 28 hexdigits
Returns:
int: indicated arispeed in knots
@@ -109,7 +109,7 @@ def mach53(msg):
"""MACH number, DBS 5,3 message
Args:
- msg (String): 28 bytes hexadecimal message
+ msg (str): 28 hexdigits
Returns:
float: MACH number
@@ -127,7 +127,7 @@ def tas53(msg):
"""Aircraft true airspeed, BDS 5,3 message
Args:
- msg (String): 28 bytes hexadecimal message
+ msg (str): 28 hexdigits
Returns:
float: true airspeed in knots
@@ -145,7 +145,7 @@ def vr53(msg):
"""Vertical rate
Args:
- msg (String): 28 bytes hexadecimal message (BDS60) string
+ msg (str): 28 hexdigits (BDS60) string
Returns:
int: vertical rate in feet/minutes
diff --git a/pyModeS/decoder/bds/bds60.py b/pyModeS/decoder/bds/bds60.py
index e2074fa..b8d91cb 100644
--- a/pyModeS/decoder/bds/bds60.py
+++ b/pyModeS/decoder/bds/bds60.py
@@ -10,7 +10,7 @@ def is60(msg):
"""Check if a message is likely to be BDS code 6,0
Args:
- msg (String): 28 bytes hexadecimal message string
+ msg (str): 28 hexdigits string
Returns:
bool: True or False
@@ -61,7 +61,7 @@ def hdg60(msg):
"""Megnetic heading of aircraft
Args:
- msg (String): 28 bytes hexadecimal message (BDS60) string
+ msg (str): 28 hexdigits string
Returns:
float: heading in degrees to megnetic north (from 0 to 360)
@@ -90,7 +90,7 @@ def ias60(msg):
"""Indicated airspeed
Args:
- msg (String): 28 bytes hexadecimal message (BDS60) string
+ msg (str): 28 hexdigits string
Returns:
int: indicated airspeed in knots
@@ -108,7 +108,7 @@ def mach60(msg):
"""Aircraft MACH number
Args:
- msg (String): 28 bytes hexadecimal message (BDS60) string
+ msg (str): 28 hexdigits string
Returns:
float: MACH number
@@ -126,7 +126,7 @@ def vr60baro(msg):
"""Vertical rate from barometric measurement, this value may be very noisy.
Args:
- msg (String): 28 bytes hexadecimal message (BDS60) string
+ msg (str): 28 hexdigits string
Returns:
int: vertical rate in feet/minutes
@@ -152,7 +152,7 @@ def vr60ins(msg):
"""Vertical rate measurd by onbard equiments (IRS, AHRS)
Args:
- msg (String): 28 bytes hexadecimal message (BDS60) string
+ msg (str): 28 hexdigits string
Returns:
int: vertical rate in feet/minutes
diff --git a/pyModeS/decoder/commb.py b/pyModeS/decoder/commb.py
index c4409f6..4957681 100644
--- a/pyModeS/decoder/commb.py
+++ b/pyModeS/decoder/commb.py
@@ -1,21 +1,24 @@
-"""Comm-B Wrapper.
+"""Comm-B module.
-The Comm-B wrapper imports all functions from the following modules:
+The Comm-B module imports all functions from the following modules:
-**ELS - elementary surveillance**
- - pyModeS.decoder.bds.bds10
- - pyModeS.decoder.bds.bds17
- - pyModeS.decoder.bds.bds20
- - pyModeS.decoder.bds.bds30
+ELS - elementary surveillance
-**EHS - enhanced surveillance**
- - pyModeS.decoder.bds.bds40
- - pyModeS.decoder.bds.bds50
- - pyModeS.decoder.bds.bds60
+- pyModeS.decoder.bds.bds10
+- pyModeS.decoder.bds.bds17
+- pyModeS.decoder.bds.bds20
+- pyModeS.decoder.bds.bds30
-**MRAR and MHR**
- - pyModeS.decoder.bds.bds44
- - pyModeS.decoder.bds.bds45
+EHS - enhanced surveillance
+
+- pyModeS.decoder.bds.bds40
+- pyModeS.decoder.bds.bds50
+- pyModeS.decoder.bds.bds60
+
+MRAR and MHR
+
+- pyModeS.decoder.bds.bds44
+- pyModeS.decoder.bds.bds45
"""