Note

Interactive online version: Binder badge

How to get data into TASI?#

To get things started with TASI and other traffic data than the DLR UT and DLR HT dataset, the tasi.io.public package is the first starting point and should be used to ensure proper conversion between data formats.

The following example demonstrates how to initialize a tasi.Pose and tasi.Trajectory via the pydantic interface.

Initialize a traffic participant#

At first, we create representation of the traffic participant. It is the representation of a particular traffic participant over time. Please note that there is no direct representation of a TrafficParticipant using the TASI internal representation.

[1]:
import tasi.io as tio

dimension = tio.Dimension(width=0.75, height=1.85, length=0.5)

tp = tio.TrafficParticipant(
    classifications=tio.Classifications(pedestrian=1),
    dimension=dimension,
    id_object=1,
)
tp
[1]:
TrafficParticipant(dimension=Dimension(width=0.75, height=1.85, length=0.5), classifications=Classifications(unknown=0, pedestrian=1.0, bicycle=0, motorbike=0, car=0, van=0, truck=0, other=0), start_time=None, end_time=None, id_object=1)

The traffic participant is already fully defined by an index. All other attributes are optional, since they may not be available when the traffic participant is seen for the first time. Besides a unique identifier, we define the Dimension of the traffic participant and indicate that we are sure that this is a pedestrian via the Classifications attribute.

Initialize a pose#

While the TrafficParticipant allows to manage information over time, the Pose is used to describe the state for a particular time. Let’s assume that we can measure the state of the object and want to denote this as a Pose. In the following, we define a Pose with a position at UTM (604748, 5792815) walking eastward with a velocity of \(7\frac{km}{h}\). We can create the BoundingBox from the dimension, position and orientation.

[2]:
from datetime import datetime

import numpy as np

position = tio.Position(easting=604748, northing=5792815, altitude=0)
orientation: tio.Orientation = np.deg2rad(15)

p = tio.PosePublic(
    dimension=dimension,
    position=position,
    velocity=tio.Velocity.from_magnitude(7 / 3.6, orientation),
    acceleration=tio.Acceleration(),
    boundingbox=tio.BoundingBox.from_dimension(
        dimension, relative_to=position, orientation=orientation
    ),
    classifications=tio.Classifications(pedestrian=1),
    traffic_participant=tp,
    timestamp=datetime.now(),
    orientation=orientation,
)
p
[2]:
PosePublic(timestamp=datetime.datetime(2025, 12, 5, 13, 3, 59, 68239), orientation=0.2617993877991494, dimension=Dimension(width=0.75, height=1.85, length=0.5), traffic_participant=TrafficParticipant(dimension=Dimension(width=0.75, height=1.85, length=0.5), classifications=Classifications(unknown=0, pedestrian=1.0, bicycle=0, motorbike=0, car=0, van=0, truck=0, other=0), start_time=None, end_time=None, id_object=1), velocity=Velocity(x=1.8781891066731884, y=0.5032592543660125, z=0, magnitude=1.9444444444444444), acceleration=Acceleration(x=0, y=0, z=0, magnitude=None), boundingbox=BoundingBox(front_left=Position(easting=604748.1444243146, northing=5792815.426926946, altitude=0.0), front=Position(easting=604748.2414814566, northing=5792815.064704761, altitude=0.0), front_right=Position(easting=604748.3385385985, northing=5792814.7024825765, altitude=0.0), right=Position(easting=604748.097057142, northing=5792814.637777816, altitude=0.0), rear_right=Position(easting=604747.8555756854, northing=5792814.573073054, altitude=0.0), rear=Position(easting=604747.7585185434, northing=5792814.935295239, altitude=0.0), rear_left=Position(easting=604747.6614614015, northing=5792815.2975174235, altitude=0.0), left=Position(easting=604747.902942858, northing=5792815.362222184, altitude=0.0)), classifications=Classifications(unknown=0, pedestrian=1.0, bicycle=0, motorbike=0, car=0, van=0, truck=0, other=0), position=Position(easting=604748.0, northing=5792815.0, altitude=0.0))

Please note that both, a reference point and the orientation should be used to create the boundingbox, since it is assumed that the points of the boundingbox are also UTM positions.

[3]:
p.boundingbox
[3]:
BoundingBox(front_left=Position(easting=604748.1444243146, northing=5792815.426926946, altitude=0.0), front=Position(easting=604748.2414814566, northing=5792815.064704761, altitude=0.0), front_right=Position(easting=604748.3385385985, northing=5792814.7024825765, altitude=0.0), right=Position(easting=604748.097057142, northing=5792814.637777816, altitude=0.0), rear_right=Position(easting=604747.8555756854, northing=5792814.573073054, altitude=0.0), rear=Position(easting=604747.7585185434, northing=5792814.935295239, altitude=0.0), rear_left=Position(easting=604747.6614614015, northing=5792815.2975174235, altitude=0.0), left=Position(easting=604747.902942858, northing=5792815.362222184, altitude=0.0))

Initialize a trajectory#

For the sake of simplicity, let’s create multiple poses where the object just moves forward.

[4]:

from datetime import timedelta dt = 1 # 1 second between measurements def init_pose(pose: tio.PosePublic): pose_ = pose.model_copy(deep=True) # update the position only w.r.t the velocity pose_.position += pose_.velocity * dt # type: ignore # Note that the boundingbox has become invalid. Let's recreate it pose_.boundingbox = tio.BoundingBox.from_dimension( dimension, relative_to=pose_.position, orientation=orientation ) pose_.timestamp += timedelta(seconds=dt) return pose_ poses = [] for i in range(11): p = init_pose(p) poses.append(p)

We can use the poses and the traffic participant to create a trajectory.

[5]:
tj = tio.TrajectoryPublic(poses=poses, traffic_participant=tp)
tj
[5]:
TrajectoryPublic(traffic_participant=TrafficParticipant(dimension=Dimension(width=0.75, height=1.85, length=0.5), classifications=Classifications(unknown=0, pedestrian=1.0, bicycle=0, motorbike=0, car=0, van=0, truck=0, other=0), start_time=None, end_time=None, id_object=1), poses=[PosePublic(timestamp=datetime.datetime(2025, 12, 5, 13, 4, 0, 68239), orientation=0.2617993877991494, dimension=Dimension(width=0.75, height=1.85, length=0.5), traffic_participant=TrafficParticipant(dimension=Dimension(width=0.75, height=1.85, length=0.5), classifications=Classifications(unknown=0, pedestrian=1.0, bicycle=0, motorbike=0, car=0, van=0, truck=0, other=0), start_time=None, end_time=None, id_object=1), velocity=Velocity(x=1.8781891066731884, y=0.5032592543660125, z=0, magnitude=1.9444444444444444), acceleration=Acceleration(x=0, y=0, z=0, magnitude=None), boundingbox=BoundingBox(front_left=Position(easting=604750.0226134213, northing=5792815.930186201, altitude=0.0), front=Position(easting=604750.1196705633, northing=5792815.5679640155, altitude=0.0), front_right=Position(easting=604750.2167277052, northing=5792815.205741831, altitude=0.0), right=Position(easting=604749.9752462487, northing=5792815.14103707, altitude=0.0), rear_right=Position(easting=604749.7337647921, northing=5792815.076332308, altitude=0.0), rear=Position(easting=604749.6367076501, northing=5792815.438554494, altitude=0.0), rear_left=Position(easting=604749.5396505082, northing=5792815.800776678, altitude=0.0), left=Position(easting=604749.7811319648, northing=5792815.865481439, altitude=0.0)), classifications=Classifications(unknown=0, pedestrian=1.0, bicycle=0, motorbike=0, car=0, van=0, truck=0, other=0), position=Position(easting=604749.8781891067, northing=5792815.503259255, altitude=0.0)), PosePublic(timestamp=datetime.datetime(2025, 12, 5, 13, 4, 1, 68239), orientation=0.2617993877991494, dimension=Dimension(width=0.75, height=1.85, length=0.5), traffic_participant=TrafficParticipant(dimension=Dimension(width=0.75, height=1.85, length=0.5), classifications=Classifications(unknown=0, pedestrian=1.0, bicycle=0, motorbike=0, car=0, van=0, truck=0, other=0), start_time=None, end_time=None, id_object=1), velocity=Velocity(x=1.8781891066731884, y=0.5032592543660125, z=0, magnitude=1.9444444444444444), acceleration=Acceleration(x=0, y=0, z=0, magnitude=None), boundingbox=BoundingBox(front_left=Position(easting=604751.900802528, northing=5792816.4334454555, altitude=0.0), front=Position(easting=604751.99785967, northing=5792816.07122327, altitude=0.0), front_right=Position(easting=604752.0949168119, northing=5792815.709001086, altitude=0.0), right=Position(easting=604751.8534353554, northing=5792815.644296325, altitude=0.0), rear_right=Position(easting=604751.6119538988, northing=5792815.579591563, altitude=0.0), rear=Position(easting=604751.5148967569, northing=5792815.941813748, altitude=0.0), rear_left=Position(easting=604751.4178396149, northing=5792816.304035933, altitude=0.0), left=Position(easting=604751.6593210715, northing=5792816.368740694, altitude=0.0)), classifications=Classifications(unknown=0, pedestrian=1.0, bicycle=0, motorbike=0, car=0, van=0, truck=0, other=0), position=Position(easting=604751.7563782134, northing=5792816.006518509, altitude=0.0)), PosePublic(timestamp=datetime.datetime(2025, 12, 5, 13, 4, 2, 68239), orientation=0.2617993877991494, dimension=Dimension(width=0.75, height=1.85, length=0.5), traffic_participant=TrafficParticipant(dimension=Dimension(width=0.75, height=1.85, length=0.5), classifications=Classifications(unknown=0, pedestrian=1.0, bicycle=0, motorbike=0, car=0, van=0, truck=0, other=0), start_time=None, end_time=None, id_object=1), velocity=Velocity(x=1.8781891066731884, y=0.5032592543660125, z=0, magnitude=1.9444444444444444), acceleration=Acceleration(x=0, y=0, z=0, magnitude=None), boundingbox=BoundingBox(front_left=Position(easting=604753.7789916347, northing=5792816.93670471, altitude=0.0), front=Position(easting=604753.8760487767, northing=5792816.574482525, altitude=0.0), front_right=Position(easting=604753.9731059186, northing=5792816.21226034, altitude=0.0), right=Position(easting=604753.7316244621, northing=5792816.147555579, altitude=0.0), rear_right=Position(easting=604753.4901430055, northing=5792816.082850818, altitude=0.0), rear=Position(easting=604753.3930858636, northing=5792816.445073003, altitude=0.0), rear_left=Position(easting=604753.2960287216, northing=5792816.807295187, altitude=0.0), left=Position(easting=604753.5375101782, northing=5792816.871999948, altitude=0.0)), classifications=Classifications(unknown=0, pedestrian=1.0, bicycle=0, motorbike=0, car=0, van=0, truck=0, other=0), position=Position(easting=604753.6345673201, northing=5792816.509777764, altitude=0.0)), PosePublic(timestamp=datetime.datetime(2025, 12, 5, 13, 4, 3, 68239), orientation=0.2617993877991494, dimension=Dimension(width=0.75, height=1.85, length=0.5), traffic_participant=TrafficParticipant(dimension=Dimension(width=0.75, height=1.85, length=0.5), classifications=Classifications(unknown=0, pedestrian=1.0, bicycle=0, motorbike=0, car=0, van=0, truck=0, other=0), start_time=None, end_time=None, id_object=1), velocity=Velocity(x=1.8781891066731884, y=0.5032592543660125, z=0, magnitude=1.9444444444444444), acceleration=Acceleration(x=0, y=0, z=0, magnitude=None), boundingbox=BoundingBox(front_left=Position(easting=604755.6571807414, northing=5792817.439963965, altitude=0.0), front=Position(easting=604755.7542378834, northing=5792817.077741779, altitude=0.0), front_right=Position(easting=604755.8512950253, northing=5792816.715519595, altitude=0.0), right=Position(easting=604755.6098135688, northing=5792816.650814834, altitude=0.0), rear_right=Position(easting=604755.3683321122, northing=5792816.586110072, altitude=0.0), rear=Position(easting=604755.2712749703, northing=5792816.948332258, altitude=0.0), rear_left=Position(easting=604755.1742178283, northing=5792817.310554442, altitude=0.0), left=Position(easting=604755.4156992849, northing=5792817.375259203, altitude=0.0)), classifications=Classifications(unknown=0, pedestrian=1.0, bicycle=0, motorbike=0, car=0, van=0, truck=0, other=0), position=Position(easting=604755.5127564268, northing=5792817.0130370185, altitude=0.0)), PosePublic(timestamp=datetime.datetime(2025, 12, 5, 13, 4, 4, 68239), orientation=0.2617993877991494, dimension=Dimension(width=0.75, height=1.85, length=0.5), traffic_participant=TrafficParticipant(dimension=Dimension(width=0.75, height=1.85, length=0.5), classifications=Classifications(unknown=0, pedestrian=1.0, bicycle=0, motorbike=0, car=0, van=0, truck=0, other=0), start_time=None, end_time=None, id_object=1), velocity=Velocity(x=1.8781891066731884, y=0.5032592543660125, z=0, magnitude=1.9444444444444444), acceleration=Acceleration(x=0, y=0, z=0, magnitude=None), boundingbox=BoundingBox(front_left=Position(easting=604757.5353698481, northing=5792817.943223219, altitude=0.0), front=Position(easting=604757.6324269901, northing=5792817.581001034, altitude=0.0), front_right=Position(easting=604757.729484132, northing=5792817.21877885, altitude=0.0), right=Position(easting=604757.4880026755, northing=5792817.154074089, altitude=0.0), rear_right=Position(easting=604757.2465212189, northing=5792817.089369327, altitude=0.0), rear=Position(easting=604757.149464077, northing=5792817.451591512, altitude=0.0), rear_left=Position(easting=604757.052406935, northing=5792817.813813697, altitude=0.0), left=Position(easting=604757.2938883916, northing=5792817.8785184575, altitude=0.0)), classifications=Classifications(unknown=0, pedestrian=1.0, bicycle=0, motorbike=0, car=0, van=0, truck=0, other=0), position=Position(easting=604757.3909455335, northing=5792817.516296273, altitude=0.0)), PosePublic(timestamp=datetime.datetime(2025, 12, 5, 13, 4, 5, 68239), orientation=0.2617993877991494, dimension=Dimension(width=0.75, height=1.85, length=0.5), traffic_participant=TrafficParticipant(dimension=Dimension(width=0.75, height=1.85, length=0.5), classifications=Classifications(unknown=0, pedestrian=1.0, bicycle=0, motorbike=0, car=0, van=0, truck=0, other=0), start_time=None, end_time=None, id_object=1), velocity=Velocity(x=1.8781891066731884, y=0.5032592543660125, z=0, magnitude=1.9444444444444444), acceleration=Acceleration(x=0, y=0, z=0, magnitude=None), boundingbox=BoundingBox(front_left=Position(easting=604759.4135589548, northing=5792818.446482474, altitude=0.0), front=Position(easting=604759.5106160968, northing=5792818.084260289, altitude=0.0), front_right=Position(easting=604759.6076732387, northing=5792817.722038104, altitude=0.0), right=Position(easting=604759.3661917822, northing=5792817.657333343, altitude=0.0), rear_right=Position(easting=604759.1247103256, northing=5792817.592628581, altitude=0.0), rear=Position(easting=604759.0276531837, northing=5792817.954850767, altitude=0.0), rear_left=Position(easting=604758.9305960417, northing=5792818.317072951, altitude=0.0), left=Position(easting=604759.1720774983, northing=5792818.381777712, altitude=0.0)), classifications=Classifications(unknown=0, pedestrian=1.0, bicycle=0, motorbike=0, car=0, van=0, truck=0, other=0), position=Position(easting=604759.2691346402, northing=5792818.019555528, altitude=0.0)), PosePublic(timestamp=datetime.datetime(2025, 12, 5, 13, 4, 6, 68239), orientation=0.2617993877991494, dimension=Dimension(width=0.75, height=1.85, length=0.5), traffic_participant=TrafficParticipant(dimension=Dimension(width=0.75, height=1.85, length=0.5), classifications=Classifications(unknown=0, pedestrian=1.0, bicycle=0, motorbike=0, car=0, van=0, truck=0, other=0), start_time=None, end_time=None, id_object=1), velocity=Velocity(x=1.8781891066731884, y=0.5032592543660125, z=0, magnitude=1.9444444444444444), acceleration=Acceleration(x=0, y=0, z=0, magnitude=None), boundingbox=BoundingBox(front_left=Position(easting=604761.2917480615, northing=5792818.949741729, altitude=0.0), front=Position(easting=604761.3888052035, northing=5792818.587519543, altitude=0.0), front_right=Position(easting=604761.4858623454, northing=5792818.225297359, altitude=0.0), right=Position(easting=604761.2443808889, northing=5792818.160592598, altitude=0.0), rear_right=Position(easting=604761.0028994323, northing=5792818.095887836, altitude=0.0), rear=Position(easting=604760.9058422904, northing=5792818.458110021, altitude=0.0), rear_left=Position(easting=604760.8087851484, northing=5792818.820332206, altitude=0.0), left=Position(easting=604761.050266605, northing=5792818.885036967, altitude=0.0)), classifications=Classifications(unknown=0, pedestrian=1.0, bicycle=0, motorbike=0, car=0, van=0, truck=0, other=0), position=Position(easting=604761.1473237469, northing=5792818.522814782, altitude=0.0)), PosePublic(timestamp=datetime.datetime(2025, 12, 5, 13, 4, 7, 68239), orientation=0.2617993877991494, dimension=Dimension(width=0.75, height=1.85, length=0.5), traffic_participant=TrafficParticipant(dimension=Dimension(width=0.75, height=1.85, length=0.5), classifications=Classifications(unknown=0, pedestrian=1.0, bicycle=0, motorbike=0, car=0, van=0, truck=0, other=0), start_time=None, end_time=None, id_object=1), velocity=Velocity(x=1.8781891066731884, y=0.5032592543660125, z=0, magnitude=1.9444444444444444), acceleration=Acceleration(x=0, y=0, z=0, magnitude=None), boundingbox=BoundingBox(front_left=Position(easting=604763.1699371682, northing=5792819.453000983, altitude=0.0), front=Position(easting=604763.2669943102, northing=5792819.090778798, altitude=0.0), front_right=Position(easting=604763.3640514521, northing=5792818.728556613, altitude=0.0), right=Position(easting=604763.1225699956, northing=5792818.6638518525, altitude=0.0), rear_right=Position(easting=604762.881088539, northing=5792818.599147091, altitude=0.0), rear=Position(easting=604762.7840313971, northing=5792818.961369276, altitude=0.0), rear_left=Position(easting=604762.6869742551, northing=5792819.3235914605, altitude=0.0), left=Position(easting=604762.9284557117, northing=5792819.388296221, altitude=0.0)), classifications=Classifications(unknown=0, pedestrian=1.0, bicycle=0, motorbike=0, car=0, van=0, truck=0, other=0), position=Position(easting=604763.0255128536, northing=5792819.026074037, altitude=0.0)), PosePublic(timestamp=datetime.datetime(2025, 12, 5, 13, 4, 8, 68239), orientation=0.2617993877991494, dimension=Dimension(width=0.75, height=1.85, length=0.5), traffic_participant=TrafficParticipant(dimension=Dimension(width=0.75, height=1.85, length=0.5), classifications=Classifications(unknown=0, pedestrian=1.0, bicycle=0, motorbike=0, car=0, van=0, truck=0, other=0), start_time=None, end_time=None, id_object=1), velocity=Velocity(x=1.8781891066731884, y=0.5032592543660125, z=0, magnitude=1.9444444444444444), acceleration=Acceleration(x=0, y=0, z=0, magnitude=None), boundingbox=BoundingBox(front_left=Position(easting=604765.048126275, northing=5792819.956260238, altitude=0.0), front=Position(easting=604765.1451834169, northing=5792819.5940380525, altitude=0.0), front_right=Position(easting=604765.2422405588, northing=5792819.231815868, altitude=0.0), right=Position(easting=604765.0007591023, northing=5792819.167111107, altitude=0.0), rear_right=Position(easting=604764.7592776457, northing=5792819.102406345, altitude=0.0), rear=Position(easting=604764.6622205038, northing=5792819.464628531, altitude=0.0), rear_left=Position(easting=604764.5651633618, northing=5792819.826850715, altitude=0.0), left=Position(easting=604764.8066448184, northing=5792819.891555476, altitude=0.0)), classifications=Classifications(unknown=0, pedestrian=1.0, bicycle=0, motorbike=0, car=0, van=0, truck=0, other=0), position=Position(easting=604764.9037019603, northing=5792819.529333292, altitude=0.0)), PosePublic(timestamp=datetime.datetime(2025, 12, 5, 13, 4, 9, 68239), orientation=0.2617993877991494, dimension=Dimension(width=0.75, height=1.85, length=0.5), traffic_participant=TrafficParticipant(dimension=Dimension(width=0.75, height=1.85, length=0.5), classifications=Classifications(unknown=0, pedestrian=1.0, bicycle=0, motorbike=0, car=0, van=0, truck=0, other=0), start_time=None, end_time=None, id_object=1), velocity=Velocity(x=1.8781891066731884, y=0.5032592543660125, z=0, magnitude=1.9444444444444444), acceleration=Acceleration(x=0, y=0, z=0, magnitude=None), boundingbox=BoundingBox(front_left=Position(easting=604766.9263153817, northing=5792820.459519492, altitude=0.0), front=Position(easting=604767.0233725236, northing=5792820.097297307, altitude=0.0), front_right=Position(easting=604767.1204296655, northing=5792819.735075123, altitude=0.0), right=Position(easting=604766.878948209, northing=5792819.670370362, altitude=0.0), rear_right=Position(easting=604766.6374667524, northing=5792819.6056656, altitude=0.0), rear=Position(easting=604766.5404096105, northing=5792819.967887785, altitude=0.0), rear_left=Position(easting=604766.4433524685, northing=5792820.33010997, altitude=0.0), left=Position(easting=604766.6848339251, northing=5792820.394814731, altitude=0.0)), classifications=Classifications(unknown=0, pedestrian=1.0, bicycle=0, motorbike=0, car=0, van=0, truck=0, other=0), position=Position(easting=604766.781891067, northing=5792820.032592546, altitude=0.0)), PosePublic(timestamp=datetime.datetime(2025, 12, 5, 13, 4, 10, 68239), orientation=0.2617993877991494, dimension=Dimension(width=0.75, height=1.85, length=0.5), traffic_participant=TrafficParticipant(dimension=Dimension(width=0.75, height=1.85, length=0.5), classifications=Classifications(unknown=0, pedestrian=1.0, bicycle=0, motorbike=0, car=0, van=0, truck=0, other=0), start_time=None, end_time=None, id_object=1), velocity=Velocity(x=1.8781891066731884, y=0.5032592543660125, z=0, magnitude=1.9444444444444444), acceleration=Acceleration(x=0, y=0, z=0, magnitude=None), boundingbox=BoundingBox(front_left=Position(easting=604768.8045044884, northing=5792820.962778747, altitude=0.0), front=Position(easting=604768.9015616303, northing=5792820.600556562, altitude=0.0), front_right=Position(easting=604768.9986187723, northing=5792820.238334377, altitude=0.0), right=Position(easting=604768.7571373157, northing=5792820.173629616, altitude=0.0), rear_right=Position(easting=604768.5156558591, northing=5792820.108924855, altitude=0.0), rear=Position(easting=604768.4185987172, northing=5792820.47114704, altitude=0.0), rear_left=Position(easting=604768.3215415752, northing=5792820.833369224, altitude=0.0), left=Position(easting=604768.5630230318, northing=5792820.898073985, altitude=0.0)), classifications=Classifications(unknown=0, pedestrian=1.0, bicycle=0, motorbike=0, car=0, van=0, truck=0, other=0), position=Position(easting=604768.6600801738, northing=5792820.535851801, altitude=0.0))])

Convert to numerical representation#

The final step is now to create the trajectory to the numerical representation format, i.e., the pandas-based format. For this purpose, all public models available via tasi.io implement the as_tasi() method. Let’s try it out with the trajectory we created above.

[6]:
tjn = tj.as_tasi()
tjn
[6]:
position heading dimension velocity ... boundingbox
easting northing altitude width height length magnitude easting northing ... rear_right rear rear_left left
... altitude easting northing altitude easting northing altitude easting northing altitude
timestamp id
2025-12-05 13:04:00.068239 1 604749.878189 5.792816e+06 0.0 0.261799 0.75 1.85 0.5 1.944444 1.878189 0.503259 ... 0.0 604749.636708 5.792815e+06 0.0 604749.539651 5.792816e+06 0.0 604749.781132 5.792816e+06 0.0
2025-12-05 13:04:01.068239 1 604751.756378 5.792816e+06 0.0 0.261799 0.75 1.85 0.5 1.944444 1.878189 0.503259 ... 0.0 604751.514897 5.792816e+06 0.0 604751.417840 5.792816e+06 0.0 604751.659321 5.792816e+06 0.0
2025-12-05 13:04:02.068239 1 604753.634567 5.792817e+06 0.0 0.261799 0.75 1.85 0.5 1.944444 1.878189 0.503259 ... 0.0 604753.393086 5.792816e+06 0.0 604753.296029 5.792817e+06 0.0 604753.537510 5.792817e+06 0.0
2025-12-05 13:04:03.068239 1 604755.512756 5.792817e+06 0.0 0.261799 0.75 1.85 0.5 1.944444 1.878189 0.503259 ... 0.0 604755.271275 5.792817e+06 0.0 604755.174218 5.792817e+06 0.0 604755.415699 5.792817e+06 0.0
2025-12-05 13:04:04.068239 1 604757.390946 5.792818e+06 0.0 0.261799 0.75 1.85 0.5 1.944444 1.878189 0.503259 ... 0.0 604757.149464 5.792817e+06 0.0 604757.052407 5.792818e+06 0.0 604757.293888 5.792818e+06 0.0
2025-12-05 13:04:05.068239 1 604759.269135 5.792818e+06 0.0 0.261799 0.75 1.85 0.5 1.944444 1.878189 0.503259 ... 0.0 604759.027653 5.792818e+06 0.0 604758.930596 5.792818e+06 0.0 604759.172077 5.792818e+06 0.0
2025-12-05 13:04:06.068239 1 604761.147324 5.792819e+06 0.0 0.261799 0.75 1.85 0.5 1.944444 1.878189 0.503259 ... 0.0 604760.905842 5.792818e+06 0.0 604760.808785 5.792819e+06 0.0 604761.050267 5.792819e+06 0.0
2025-12-05 13:04:07.068239 1 604763.025513 5.792819e+06 0.0 0.261799 0.75 1.85 0.5 1.944444 1.878189 0.503259 ... 0.0 604762.784031 5.792819e+06 0.0 604762.686974 5.792819e+06 0.0 604762.928456 5.792819e+06 0.0
2025-12-05 13:04:08.068239 1 604764.903702 5.792820e+06 0.0 0.261799 0.75 1.85 0.5 1.944444 1.878189 0.503259 ... 0.0 604764.662221 5.792819e+06 0.0 604764.565163 5.792820e+06 0.0 604764.806645 5.792820e+06 0.0
2025-12-05 13:04:09.068239 1 604766.781891 5.792820e+06 0.0 0.261799 0.75 1.85 0.5 1.944444 1.878189 0.503259 ... 0.0 604766.540410 5.792820e+06 0.0 604766.443352 5.792820e+06 0.0 604766.684834 5.792820e+06 0.0
2025-12-05 13:04:10.068239 1 604768.660080 5.792821e+06 0.0 0.261799 0.75 1.85 0.5 1.944444 1.878189 0.503259 ... 0.0 604768.418599 5.792820e+06 0.0 604768.321542 5.792821e+06 0.0 604768.563023 5.792821e+06 0.0

11 rows × 47 columns

The trajectory is now represented using the tabular-style format of pandas. The traffic participant’s index and the pose’ timestamp are on the DataFrame index. The other pose information are available via the table columns.

Trajectory visualization#

Since the trajectory is now available using the internal format, we can easily plot it.

[7]:
import matplotlib.pyplot as plt
import numpy as np

from tasi import TrajectoryDataset
from tasi.plotting import TrajectoryPlotter

# the following is only possible if tasi[wms] is installed
from tasi.plotting.wms import BoundingboxPlotter, LowerSaxonyOrthophotoTile

f, ax = plt.subplots(figsize=(8, 8))

roi = np.array([604720, 5792765, 604820, 5792830]).reshape(-1, 2)

plotter = BoundingboxPlotter(roi, LowerSaxonyOrthophotoTile())
plotter.plot(ax)

plotter = TrajectoryPlotter()
plotter.plot(TrajectoryDataset.from_trajectories([tjn]))
[2025-12-05 13:03:59 | tiles.py:fetch:184] > INFO:  Requesting https://opendata.lgln.niedersachsen.de/doorman/noauth/dop_wms?bbox=604720,5792765,604820,5792830&service=WMS&crs=EPSG%3A25832&format=image%2Fpng&request=GetMap&layers=ni_dop20&styles=&version=1.3.0&width=512&height=332
../../_images/user_guide_data_loading_and_saving_data-to-tasi_13_1.png

That’s it for now. You should now be able to get your data converted to TASI 😀.