Skip to content

Commit

Permalink
exploration gui
Browse files Browse the repository at this point in the history
  • Loading branch information
xoolive committed Oct 9, 2018
1 parent ad5459b commit 4bd1e64
Show file tree
Hide file tree
Showing 10 changed files with 1,020 additions and 128 deletions.
34 changes: 34 additions & 0 deletions icons/travel-grey.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
34 changes: 34 additions & 0 deletions icons/travel-white.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
18 changes: 11 additions & 7 deletions setup.py
Original file line number Diff line number Diff line change
@@ -1,17 +1,13 @@
from setuptools import setup
from setuptools.extension import Extension
from Cython.Build import cythonize
import os
import os.path

bresenham_path = os.path.join("traffic", "algorithms", "bresenham.pyx")
extensions = [Extension("traffic.algorithms.bresenham", [bresenham_path])]
from setuptools import setup

setup(
name="traffic",
version=0.1,
description="A toolbox for manipulating and analysing air traffic data",
entry_points={"console_scripts": ["traffic=traffic.console:main"]},
ext_modules=cythonize(extensions),
packages=[
"traffic",
"traffic.algorithms",
Expand All @@ -23,8 +19,15 @@
"traffic.data.so6",
"traffic.drawing",
"traffic.plugins",
"traffic.qtgui",
],
package_data={"traffic.data.airspaces": ["firs.json"]},
package_data={
"traffic.data.airspaces": ["firs.json"],
"traffic": [
os.path.join("..", "icons", f)
for f in os.listdir(os.path.join("..", "traffic", "icons"))
],
},
install_requires=[
"numpy",
"scipy",
Expand All @@ -40,6 +43,7 @@
"paramiko",
"tqdm>=4.26",
"cartotools==1.0",
"pyModeS==2.0",
],
dependency_links=[
"https://github.com/xoolive/cartotools.git#whl=cartotools-1.0"
Expand Down
1 change: 0 additions & 1 deletion traffic/algorithms/__init__.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,2 @@
# flake8: noqa
from .bresenham import bresenham, bresenham_multiply
from .douglas_peucker import douglas_peucker
113 changes: 0 additions & 113 deletions traffic/algorithms/bresenham.pyx

This file was deleted.

22 changes: 16 additions & 6 deletions traffic/console.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,23 +2,21 @@
import argparse
from pathlib import Path

from .data import airports as data_airports
from .data import navaids as data_navaids
from .data import aircraft as data_aircraft
from .data.adsb.decode import Decoder


def get_airports(*args):
from .data import airports as data_airports
for airport in data_airports.search(args[0]):
print(airport)


def get_navaids(*args):
from .data import navaids as data_navaids
for navaid in data_navaids.search(args[0]):
print(navaid)


def get_aircraft(*args):
from .data import aircraft as data_aircraft
if args[0] == "get":
print(data_aircraft[args[1]])
elif args[0] == "operator":
Expand All @@ -30,6 +28,7 @@ def get_aircraft(*args):


def decode(*args):
from .data.adsb.decode import Decoder
parser = argparse.ArgumentParser()

parser.add_argument("file", help="path to the file to decode", type=Path)
Expand All @@ -41,15 +40,26 @@ def decode(*args):
args = parser.parse_args(args)
decoder = Decoder.from_file(args.file, args.reference)
decoder.traffic.to_pickle(
args.output if args.output is not None else args.file.with_suffix(".pkl")
args.output
if args.output is not None
else args.file.with_suffix(".pkl")
)

def launch_gui(*args):
from traffic.qtgui import layout
layout.main()

def config(*args):
from . import edit_config
edit_config()

cmd = {
"airport": get_airports,
"navaid": get_navaids,
"aircraft": get_aircraft,
"decode": decode,
'config': config,
'gui': launch_gui,
}


Expand Down
7 changes: 6 additions & 1 deletion traffic/core/traffic.py
Original file line number Diff line number Diff line change
Expand Up @@ -121,6 +121,9 @@ def _repr_html_(self) -> str:
rep = f"<b>Traffic with {shape} identifiers</b>"
return rep + styler._repr_html_()

def subset(self, callsigns: Iterable[str]) -> "Traffic":
return Traffic.from_flights(f for f in self if f.callsign in callsigns)

# --- Properties ---

@property
Expand Down Expand Up @@ -159,7 +162,9 @@ def at(self, time: timelike) -> "Traffic":
if flight.start <= time <= flight.stop
]
return Traffic(
pd.DataFrame.from_records([s for s in list_flights if s is not None]).assign(
pd.DataFrame.from_records(
[s for s in list_flights if s is not None]
).assign(
# attribute 'name' refers to the index, i.e. 'timestamp'
timestamp=[s.name for s in list_flights if s is not None]
)
Expand Down
Empty file added traffic/qtgui/__init__.py
Empty file.
Loading

0 comments on commit 4bd1e64

Please sign in to comment.