Metadata-Version: 2.5
Name: tasi
Version: 0.15.3.post1
Summary: Library for Traffic Analysis and Situation Interpretation
Author-email: Lars Klitzke <lars.klitzke@dlr.de>, Clemens Schicktanz <clemens.schicktanz@dlr.de>
License-File: LICENSE
Requires-Python: <4.0,>=3.11
Requires-Dist: coloredlogs>=15.0.1
Requires-Dist: dtaidistance>=2.3.13
Requires-Dist: folium>=0.19.5
Requires-Dist: geoalchemy2>=0.17.1
Requires-Dist: geojson-pydantic>=2.0.0
Requires-Dist: geopandas>=1.0.1
Requires-Dist: mapclassify>=2.8.1
Requires-Dist: matplotlib>=3.10.3
Requires-Dist: numba>=0.62.1
Requires-Dist: pandas>=2.3.0
Requires-Dist: pydantic-settings>=2.10.1
Requires-Dist: pydantic>=2.11.7
Requires-Dist: requests>=2.33.1
Requires-Dist: shapely>=2.1.0
Requires-Dist: sqlalchemy>=2.0.41
Requires-Dist: tilemapbase>=0.4.7
Requires-Dist: tqdm>=4.67.1
Provides-Extra: all
Requires-Dist: betterosi>=0.8.5; extra == 'all'
Requires-Dist: folium>=0.19.5; extra == 'all'
Requires-Dist: geojson-pydantic>=2.0.0; extra == 'all'
Requires-Dist: geopandas>=1.0.1; extra == 'all'
Requires-Dist: mapclassify>=2.8.1; extra == 'all'
Requires-Dist: matplotlib>=3.10.3; extra == 'all'
Requires-Dist: numba>=0.62.1; extra == 'all'
Requires-Dist: omega-prime==0.2.2; extra == 'all'
Requires-Dist: psycopg[binary,pool]>=3.2.9; extra == 'all'
Requires-Dist: pycountry>=26.2.16; extra == 'all'
Requires-Dist: pydantic-settings>=2.10.1; extra == 'all'
Requires-Dist: reverse-geocode>=1.6.6; extra == 'all'
Requires-Dist: shapely>=2.1.0; extra == 'all'
Requires-Dist: sqlalchemy>=2.0.41; extra == 'all'
Requires-Dist: tilemapbase>=0.4.7; extra == 'all'
Provides-Extra: database
Requires-Dist: psycopg[binary,pool]>=3.2.9; extra == 'database'
Provides-Extra: geo
Requires-Dist: geojson-pydantic>=2.0.0; extra == 'geo'
Requires-Dist: geopandas>=1.0.1; extra == 'geo'
Requires-Dist: shapely>=2.1.0; extra == 'geo'
Provides-Extra: io
Requires-Dist: pydantic-settings>=2.10.1; extra == 'io'
Requires-Dist: shapely>=2.1.0; extra == 'io'
Requires-Dist: sqlalchemy>=2.0.41; extra == 'io'
Provides-Extra: osi
Requires-Dist: betterosi>=0.8.5; extra == 'osi'
Requires-Dist: omega-prime==0.2.2; extra == 'osi'
Requires-Dist: pycountry>=26.2.16; extra == 'osi'
Requires-Dist: reverse-geocode>=1.6.6; extra == 'osi'
Provides-Extra: performance
Requires-Dist: numba>=0.62.1; extra == 'performance'
Provides-Extra: visualization
Requires-Dist: folium>=0.19.5; extra == 'visualization'
Requires-Dist: mapclassify>=2.8.1; extra == 'visualization'
Requires-Dist: matplotlib>=3.10.3; extra == 'visualization'
Provides-Extra: wms
Requires-Dist: folium>=0.19.5; extra == 'wms'
Requires-Dist: mapclassify>=2.8.1; extra == 'wms'
Requires-Dist: matplotlib>=3.10.3; extra == 'wms'
Requires-Dist: tilemapbase>=0.4.7; extra == 'wms'
Description-Content-Type: text/markdown

# TrAffic Situation analysis and Interpretation

[![pypi](https://img.shields.io/pypi/v/tasi.svg)](https://pypi.python.org/pypi/tasi/) [![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.14034644.svg)](https://doi.org/10.5281/zenodo.14034644) [![DLR-TS](https://img.shields.io/badge/developed%20by-DLR%20TS-orange.svg?style=flat&colorA=E1523D&colorB=007D8A)](https://www.dlr.de/en/ts/about-us/the-institute-of-transportation-systems) [![PyPI Downloads](https://static.pepy.tech/badge/tasi)](https://pepy.tech/projects/tasi)  

<p align="center">
    <img src="doc/source/_static/logos/TASI_Logo.png" width="350px"/>
</p>

TASI is a library to provide high-performance, easy-to-use data structures and data analysis tools for Python based
traffic situation analysis and interpretation applications.

> **TASI** is backed by those wonderful libraries [`Numpy`](https://numpy.org/), [`Pandas`](https://pandas.pydata.org/),
> and [`Numba`](http://numba.pydata.org/)

## Getting started

Install ``TASI`` from the PyPi registry.
```bash
pip install tasi
```

Download the latest DLR-UT version for demonstration purpose.
```python
from tasi.dlr import DLRUTDatasetManager, DLRUTVersion, 

dataset = DLRUTDatasetManager(DLRUTVersion.latest)
dataset.load()
```

and visualize the trajectories within the dataset using `matplotlib`.

```python
from tasi.dlr import DLRTrajectoryDataset
from tasi.plotting import TrajectoryPlotter

import matplotlib.pyplot as plt

# load the first file of the dataset
ds_ut = DLRTrajectoryDataset.from_csv(dataset.trajectory()[0])

# plot the trajectories
f, ax = plt.subplots()

plotter = TrajectoryPlotter()
plotter.plot(ds_ut, ax=ax)
```

![trajectory-example](etc/example.jpg)
