Skip to content

Instantly share code, notes, and snippets.

@bllchmbrs
Created December 3, 2025 17:33
Show Gist options
  • Select an option

  • Save bllchmbrs/057a10b4be42b987dda13687b35c0afb to your computer and use it in GitHub Desktop.

Select an option

Save bllchmbrs/057a10b4be42b987dda13687b35c0afb to your computer and use it in GitHub Desktop.
import rerun as rr
from numpy.random import default_rng
def main():
rr.init("step1_hello_rerun", spawn=True)
instructions = """# 🎯 Step 1: Hello, Rerun!
Welcome to your first Rerun visualization!
## What's happening:
1. We initialized Rerun with `rr.init()`
2. We generated random 2D and 3D points with colors and radii
3. We logged both 2D and 3D point clouds to the viewer
4. The viewer automatically opened to show our data
"""
rr.log(
"instructions",
rr.TextDocument(instructions, media_type=rr.MediaType.MARKDOWN),
static=True,
)
rng = default_rng(12345)
n_bubbles = 10
positions_d3 = rng.uniform(-3, 3, size=[n_bubbles, 3])
positions_d2 = positions_d3[:, :2]
colors = rng.uniform(0, 255, size=[n_bubbles, 4])
radii = rng.uniform(0, 1, size=[n_bubbles])
rr.log("points/2d", rr.Points2D(positions_d2, colors=colors, radii=radii))
rr.log("points/3d", rr.Points3D(positions_d3, colors=colors, radii=radii))
if __name__ == "__main__":
main()
import math
import rerun as rr
def new_location(center_x, center_y, x, y, angle):
cos_a = math.cos(angle)
sin_a = math.sin(angle)
# Translate to origin
translated_x = x - center_x
translated_y = y - center_y
# Rotate
new_x = translated_x * cos_a - translated_y * sin_a + center_x
new_y = translated_x * sin_a + translated_y * cos_a + center_y
return new_x, new_y
def main():
rr.init("step2_points_animation_colors", spawn=True)
square_points = [
[0, 0],
[1, 0],
[1, 1],
[0, 1],
]
center = [0.5, 0.5]
point_names = [f"Point_{x}" for x in range(4)]
rr.log(
"animated_square/origin",
rr.Points2D(
[center],
colors=[[0, 0, 0]],
radii=[0.1],
show_labels=True,
labels=["Origin"],
),
static=True,
)
for frame in range(360):
rr.set_time("frame", sequence=frame)
angle = frame * 0.05
rotated_points = []
for point in square_points:
new_x, new_y = new_location(center[0], center[1], point[0], point[1], angle)
rotated_points.append([new_x, new_y])
dynamic_colors = []
for i in range(len(square_points)):
hue = (frame * 2 + i * 90) % 360
c = 1.0
x_color = c * (1 - abs((hue / 60) % 2 - 1))
if 0 <= hue < 60:
r, g, b = c, x_color, 0
elif 60 <= hue < 120:
r, g, b = x_color, c, 0
elif 120 <= hue < 180:
r, g, b = 0, c, x_color
elif 180 <= hue < 240:
r, g, b = 0, x_color, c
elif 240 <= hue < 300:
r, g, b = x_color, 0, c
else:
r, g, b = c, 0, x_color
dynamic_colors.append([int(r * 255), int(g * 255), int(b * 255)])
dynamic_radii = []
for i in range(len(square_points)):
base_size = 0.04
pulse_amplitude = 0.025
pulse_rate = 0.15 + i * 0.03
pulse_factor = math.sin(frame * pulse_rate)
radius = base_size + pulse_amplitude * pulse_factor
dynamic_radii.append(max(radius, 0.01))
rr.log(
"animated_square/points",
rr.Points2D(
rotated_points,
colors=dynamic_colors,
radii=dynamic_radii,
labels=point_names,
show_labels=True,
),
)
for i, (point, name) in enumerate(zip(rotated_points, point_names)):
x, y = point
rr.log(f"position/{name}/x", rr.Scalars(x))
rr.log(f"position/{name}/y", rr.Scalars(y))
rr.log("overall/position/rotation_angle_radians", rr.Scalars(angle))
if __name__ == "__main__":
main()
import math
import numpy as np
import rerun as rr
def main():
rr.init("step3_3d_transforms", spawn=True)
rr.log("/", rr.ViewCoordinates.RIGHT_HAND_Z_UP, static=True)
rr.log("sun", rr.Points3D([0.0, 0.0, 0.0], radii=1.0, colors=[255, 200, 10]))
rr.log("sun/planet", rr.Points3D([0.0, 0.0, 0.0], radii=0.4, colors=[40, 80, 200]))
rr.log(
"sun/planet/moon",
rr.Points3D([0.0, 0.0, 0.0], radii=0.15, colors=[180, 180, 180]),
)
rr.log(
"sun/planet/moon2",
rr.Points3D([0.0, 0.0, 0.0], radii=0.12, colors=[150, 120, 100]),
)
# log the circle
input("Press Enter to continue...")
d_planet = 6.0
d_moon = 1.75
d_moon2_x = 2.5
d_moon2_y = 1.5
angles = np.arange(0.0, 1.01, 0.01) * np.pi * 2
circle = np.array(
[np.sin(angles), np.cos(angles), angles * 0.0], dtype=np.float32
).transpose()
# Create oval path for second moon
oval = np.array(
[np.sin(angles) * d_moon2_x, np.cos(angles) * d_moon2_y, angles * 0.0],
dtype=np.float32,
).transpose()
rr.log(
"sun/planet_path", rr.LineStrips3D(circle * d_planet, colors=[100, 100, 255])
)
rr.log(
"sun/planet/moon_path", rr.LineStrips3D(circle * d_moon, colors=[200, 200, 200])
)
rr.log("sun/planet/moon2_path", rr.LineStrips3D(oval, colors=[150, 120, 100]))
# log the circle
input("Press Enter to continue...")
total_frames = 6 * 360
for frame in range(total_frames):
time = frame / 120.0
r_planet = time * 2.0
r_moon = time * 5.0
r_moon2 = time * 3.5
planet_x = math.sin(r_planet) * d_planet
planet_y = math.cos(r_planet) * d_planet
planet_z = 0.0
rr.log(
"sun/planet",
rr.Transform3D(
translation=[planet_x, planet_y, planet_z],
rotation=rr.RotationAxisAngle(axis=(1, 0, 0), degrees=20),
),
)
moon_x = math.cos(r_moon) * d_moon
moon_y = math.sin(r_moon) * d_moon
moon_z = 0.0
rr.log(
"sun/planet/moon",
rr.Transform3D(
translation=[moon_x, moon_y, moon_z],
relation=rr.TransformRelation.ChildFromParent,
),
)
moon2_x = math.sin(r_moon2) * d_moon2_x
moon2_y = math.cos(r_moon2) * d_moon2_y
moon2_z = 0.0
rr.log(
"sun/planet/moon2",
rr.Transform3D(
translation=[moon2_x, moon2_y, moon2_z],
relation=rr.TransformRelation.ChildFromParent,
),
)
if frame == 0:
input("Press Enter to continue...")
if __name__ == "__main__":
main()
from __future__ import annotations
import argparse
import os
import tarfile
from pathlib import Path
import numpy as np
import pandas as pd
import requests
import rerun as rr
from rerun import blueprint as rrb
from tqdm.auto import tqdm
DATA_DIR = Path(__file__).parent / "dataset"
DATASET_URL = "https://storage.googleapis.com/rerun-example-datasets/imu_signals/tum_vi_corridor4_512_16.tar"
DATASET_NAME = "dataset-corridor4_512_16"
XYZ_AXIS_NAMES = ["x", "y", "z"]
XYZ_AXIS_COLORS = [[(231, 76, 60), (39, 174, 96), (52, 120, 219)]]
def main() -> None:
dataset_path = DATA_DIR / DATASET_NAME
if not dataset_path.exists():
_download_dataset(DATA_DIR)
parser = argparse.ArgumentParser(
description="Visualizes the TUM Visual-Inertial dataset using the Rerun SDK."
)
parser.add_argument(
"--seconds",
type=float,
default=float("inf"),
help="If specified, limits the number of seconds logged",
)
rr.script_add_args(parser)
args = parser.parse_args()
blueprint = rrb.Horizontal(
rrb.Vertical(
rrb.TimeSeriesView(
origin="gyroscope",
name="Gyroscope",
overrides={
"/gyroscope": rr.SeriesLines.from_fields(
names=XYZ_AXIS_NAMES, colors=XYZ_AXIS_COLORS
),
},
),
rrb.TimeSeriesView(
origin="accelerometer",
name="Accelerometer",
overrides={
"/accelerometer": rr.SeriesLines.from_fields(
names=XYZ_AXIS_NAMES, colors=XYZ_AXIS_COLORS
),
},
),
),
rrb.Spatial3DView(origin="/", name="World position"),
column_shares=[0.45, 0.55],
)
rr.script_setup(args, "rerun_example_imu_signals", default_blueprint=blueprint)
_log_imu_data(args.seconds)
_log_image_data(args.seconds)
_log_gt_imu(args.seconds)
def _download_dataset(root: Path, dataset_url: str = DATASET_URL) -> None:
os.makedirs(root, exist_ok=True)
tar_path = os.path.join(root, f"{DATASET_NAME}.tar")
response = requests.get(dataset_url, stream=True)
total_size = int(response.headers.get("content-length", 0))
block_size = 1024
with tqdm(
desc="Downloading dataset", total=total_size, unit="B", unit_scale=True
) as pb:
with open(tar_path, "wb") as file:
for data in response.iter_content(chunk_size=block_size):
pb.update(len(data))
file.write(data)
if total_size != 0 and pb.n != total_size:
raise RuntimeError("Failed to download complete dataset!")
print("Extracting dataset…")
with tarfile.open(tar_path, "r:") as tar:
tar.extractall(path=root)
os.remove(tar_path)
def _log_imu_data(max_time_sec: float) -> None:
imu_data = pd.read_csv(
DATA_DIR / DATASET_NAME / "dso/imu.txt",
sep=" ",
header=0,
names=[
"timestamp",
"gyro.x",
"gyro.y",
"gyro.z",
"accel.x",
"accel.y",
"accel.z",
],
comment="#",
)
timestamps = imu_data["timestamp"].to_numpy()
max_time_ns = imu_data["timestamp"][0] + max_time_sec * 1e9
selected = imu_data[imu_data["timestamp"] <= max_time_ns]
timestamps = selected["timestamp"].astype("datetime64[ns]")
times = rr.TimeColumn("timestamp", timestamp=timestamps)
gyro = selected[["gyro.x", "gyro.y", "gyro.z"]].to_numpy()
rr.send_columns(
"/gyroscope", indexes=[times], columns=rr.Scalars.columns(scalars=gyro)
)
accel = selected[["accel.x", "accel.y", "accel.z"]]
rr.send_columns(
"/accelerometer", indexes=[times], columns=rr.Scalars.columns(scalars=accel)
)
def _log_image_data(max_time_sec: float) -> None:
times = pd.read_csv(
DATA_DIR / DATASET_NAME / "dso/cam0/times.txt",
sep=" ",
header=0,
names=["filename", "timestamp", "exposure_time"],
comment="#",
dtype={"filename": str},
)
rr.set_time("timestamp", timestamp=times["timestamp"][0])
rr.log(
"/world",
rr.Transform3D(
rotation_axis_angle=rr.RotationAxisAngle(axis=(1, 0, 0), angle=-np.pi / 2)
),
static=True,
)
rr.log(
"/world/cam0",
rr.Pinhole(
focal_length=(0.373 * 512, 0.373 * 512),
resolution=(512, 512),
image_plane_distance=0.4,
),
static=True,
)
max_time_sec = times["timestamp"][0] + max_time_sec
for _, (filename, timestamp, _) in times.iterrows():
if timestamp > max_time_sec:
break
image_path = DATA_DIR / DATASET_NAME / "dso/cam0/images" / f"{filename}.png"
rr.set_time("timestamp", timestamp=timestamp)
rr.log("/world/cam0/image", rr.EncodedImage(path=image_path))
def _log_gt_imu(max_time_sec: float) -> None:
gt_imu = pd.read_csv(
DATA_DIR / DATASET_NAME / "dso/gt_imu.csv",
sep=",",
header=0,
names=["timestamp", "t.x", "t.y", "t.z", "q.w", "q.x", "q.y", "q.z"],
comment="#",
)
timestamps = gt_imu["timestamp"].to_numpy()
max_time_ns = gt_imu["timestamp"][0] + max_time_sec * 1e9
selected = gt_imu[gt_imu["timestamp"] <= max_time_ns]
timestamps = selected["timestamp"].astype("datetime64[ns]")
times = rr.TimeColumn("timestamp", timestamp=timestamps)
translations = selected[["t.x", "t.y", "t.z"]]
quaternions = selected[
[
"q.x",
"q.y",
"q.z",
"q.w",
]
]
rr.send_columns(
"/world/cam0",
indexes=[times],
columns=rr.Transform3D.columns(
translation=translations,
quaternion=quaternions,
),
)
if __name__ == "__main__":
main()
import math
import time
import rerun as rr
def main():
rr.init("step4_multiple_timelines", recording_id="example_timeline")
# expects to be run from the gentle-intro directory
rr.save("data/example_timeline/step4.rrd")
start_time = time.time()
for frame in range(60):
current_time = start_time + frame * 0.1
rr.set_time("imu_time", sequence=frame)
rr.set_time("simulation_time", timestamp=current_time)
imu_angle_x = frame * 0.08
imu_angle_y = frame * 0.05
imu_angle_z = frame * 0.12
orientation_points = []
for i in range(3):
x = i * 0.5 - 0.5
y = math.sin(imu_angle_x) * 0.3
z = math.cos(imu_angle_y) * 0.3
new_x = x * math.cos(imu_angle_z) - y * math.sin(imu_angle_z)
new_y = x * math.sin(imu_angle_z) + y * math.cos(imu_angle_z)
orientation_points.append([new_x, new_y, z])
rr.log(
"drone/imu_orientation",
rr.Points3D(orientation_points, colors=[[255, 100, 100]], radii=0.08),
)
if frame % 5 == 0:
gps_frame = frame // 5
rr.set_time("gps_time", sequence=gps_frame)
rr.set_time("simulation_time", timestamp=current_time)
gps_angle = gps_frame * 0.3
gps_x = math.cos(gps_angle) * 2
gps_y = math.sin(gps_angle) * 2
gps_z = 0.5 + math.sin(gps_frame * 0.2) * 0.3
rr.log(
"drone/gps_position",
rr.Points3D(
[[gps_x, gps_y, gps_z]], colors=[[100, 255, 100]], radii=0.12
),
)
if frame % 10 == 0:
obstacle_frame = frame // 10
rr.set_time("obstacle_time", sequence=obstacle_frame)
rr.set_time("simulation_time", timestamp=current_time)
obstacle_points = []
obstacle_colors = []
for i in range(3):
obs_angle = obstacle_frame * 0.4 + i * 2.1
obs_distance = 3 + i * 0.5
obs_x = math.cos(obs_angle) * obs_distance
obs_y = math.sin(obs_angle) * obs_distance
obs_z = 0.2 + i * 0.3
obstacle_points.append([obs_x, obs_y, obs_z])
obstacle_colors.append([255, 150, 50])
rr.log(
"environment/detected_obstacles",
rr.Points3D(obstacle_points, colors=obstacle_colors, radii=0.15),
)
rr.set_time("frame", sequence=frame)
if __name__ == "__main__":
main()
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "code",
"execution_count": 36,
"id": "790d636d-9237-40a0-9772-32ff642dd44e",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The autoreload extension is already loaded. To reload it, use:\n",
" %reload_ext autoreload\n"
]
}
],
"source": [
"%load_ext autoreload\n",
"%autoreload 2\n",
"\n",
"from pathlib import Path\n",
"\n",
"import numpy as np\n",
"import pyarrow as pa\n",
"import rerun as rr\n",
"from datafusion import col as c, lit as l, str_lit\n",
"from datafusion import functions as f\n",
"from datafusion import SessionContext"
]
},
{
"cell_type": "code",
"execution_count": 38,
"id": "0e0dc6ca-dffa-44f7-98ba-3b120d7ba827",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"'0.25.1'"
]
},
"execution_count": 38,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"rr.__version__"
]
},
{
"cell_type": "code",
"execution_count": 3,
"id": "eb643458-432a-4e6d-9776-a4d7b8a215b7",
"metadata": {},
"outputs": [],
"source": [
"import os\n",
"\n",
"CATALOG_URL = \"rerun+http://localhost:51234\"\n",
"WIDTH = \"auto\"\n",
"HEIGHT = 800\n",
"\n",
"os.environ[\"RERUN_NOTEBOOK_ASSET\"] = \"serve-local\""
]
},
{
"cell_type": "code",
"execution_count": 39,
"id": "07b08818-a0c8-4c68-8f45-31af2a88a85d",
"metadata": {},
"outputs": [],
"source": [
"ctx = SessionContext()\n",
"client = rr.catalog.CatalogClient(CATALOG_URL)"
]
},
{
"cell_type": "markdown",
"id": "be856a12-6b1f-4bef-bcdb-46256052265c",
"metadata": {},
"source": [
"# Step 5 - Querying Data"
]
},
{
"cell_type": "code",
"execution_count": 40,
"id": "e4f43ccb-6d87-42ad-8f00-355c9c6748be",
"metadata": {},
"outputs": [],
"source": [
"import rerun as rr"
]
},
{
"cell_type": "code",
"execution_count": 42,
"id": "ef0f7240-209f-4f8f-ad69-4f36d6958007",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Found 1 dataset entries in the catalog:\n",
"[Entry(Dataset, 'example_timeline')]\n"
]
}
],
"source": [
"all_entries = client.all_entries()\n",
"print(f\"Found {len(all_entries)} dataset entries in the catalog:\\n{all_entries}\")"
]
},
{
"cell_type": "code",
"execution_count": 43,
"id": "b8bfb2fd-fcde-42bb-b494-419c0dff13a0",
"metadata": {},
"outputs": [],
"source": [
"first_entry = all_entries[0]\n",
"dataset = client.get_dataset_entry(name=first_entry.name)"
]
},
{
"cell_type": "code",
"execution_count": 44,
"id": "3138f9d1-2232-42f2-bd3f-3a92ba4def8b",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"['example_timeline']"
]
},
"execution_count": 44,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"client.dataset_names()"
]
},
{
"cell_type": "code",
"execution_count": 45,
"id": "897f3aa9-8591-4258-af7f-2a34abc33ec2",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
" <div style=\"width: 100%; overflow: auto; border: 1px solid #ccc;\">\n",
" <style>\n",
" .rerun-table.rerun-table table {\n",
" border-collapse: collapse;\n",
" min-width: 100%;\n",
" text-align: left;\n",
" }\n",
"\n",
" .rerun-table.rerun-table th {\n",
" font-weight: normal;\n",
" text-align: left;\n",
" }\n",
"\n",
" .rerun-table.rerun-table td {\n",
" text-align: left;\n",
" }\n",
" </style>\n",
" <table class=\"rerun-table\">\n",
" \n",
"<thead><tr><th><strong>rerun_partition_id</strong><br>Utf8</th><th><strong>rerun_partition_type</strong><br>Utf8</th><th><strong>rerun_storage_url</strong><br>Utf8</th><th><strong>rerun_registration_time</strong><br>Timestamp(ns)</th><th><strong>rerun_partition_manifest_updated_at</strong><br>Timestamp(ns)</th><th><strong>rerun_partition_manifest_url</strong><br>Utf8</th></tr></thead>\n",
"<tbody\n",
"<tr><td>example_timeline</td><td>rrd</td><td>memory:///187588F47BD0A7AE3f3be5009536a67a/example_timeline</td><td>2025-11-06T21:43:32.817111</td><td>null</td><td>null</td></tr>\n",
"\n",
"</tbody>\n",
"\n",
" </table>\n",
" </div>\n",
" "
],
"text/plain": [
"┌────────────────────┬──────────────────────┬─────────────────────────────────────────────────────────────┬────────────────────────────┬─────────────────────────────────────┬──────────────────────────────┐\n",
"│ rerun_partition_id ┆ rerun_partition_type ┆ rerun_storage_url ┆ rerun_registration_time ┆ rerun_partition_manifest_updated_at ┆ rerun_partition_manifest_url │\n",
"│ --- ┆ --- ┆ --- ┆ --- ┆ --- ┆ --- │\n",
"│ type: Utf8 ┆ type: Utf8 ┆ type: Utf8 ┆ type: Timestamp(ns) ┆ type: Timestamp(ns) ┆ type: Utf8 │\n",
"╞════════════════════╪══════════════════════╪═════════════════════════════════════════════════════════════╪════════════════════════════╪═════════════════════════════════════╪══════════════════════════════╡\n",
"│ example_timeline ┆ rrd ┆ memory:///187588F47BD0A7AE3f3be5009536a67a/example_timeline ┆ 2025-11-06T21:43:32.817111 ┆ null ┆ null │\n",
"└────────────────────┴──────────────────────┴─────────────────────────────────────────────────────────────┴────────────────────────────┴─────────────────────────────────────┴──────────────────────────────┘"
]
},
"execution_count": 45,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"dataset.partition_table().df()"
]
},
{
"cell_type": "code",
"execution_count": 46,
"id": "d01a0f46-a080-407a-a0e6-ade21fd36f77",
"metadata": {},
"outputs": [],
"source": [
"schema = dataset.schema()"
]
},
{
"cell_type": "code",
"execution_count": 47,
"id": "0119fa55-de73-4b4e-b188-d4f34571d305",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Column name: /drone/gps_position:Points3D:colors\n",
"\tEntity path: /drone/gps_position\n",
"\tArchetype: rerun.archetypes.Points3D\n",
"\tComponent type: rerun.components.Color\n",
"\tComponent: Points3D:colors\n",
"Column name: /drone/gps_position:Points3D:positions\n",
"\tEntity path: /drone/gps_position\n",
"\tArchetype: rerun.archetypes.Points3D\n",
"\tComponent type: rerun.components.Position3D\n",
"\tComponent: Points3D:positions\n",
"Column name: /drone/gps_position:Points3D:radii\n",
"\tEntity path: /drone/gps_position\n",
"\tArchetype: rerun.archetypes.Points3D\n",
"\tComponent type: rerun.components.Radius\n",
"\tComponent: Points3D:radii\n",
"Column name: /drone/imu_orientation:Points3D:colors\n",
"\tEntity path: /drone/imu_orientation\n",
"\tArchetype: rerun.archetypes.Points3D\n",
"\tComponent type: rerun.components.Color\n",
"\tComponent: Points3D:colors\n",
"Column name: /drone/imu_orientation:Points3D:positions\n",
"\tEntity path: /drone/imu_orientation\n",
"\tArchetype: rerun.archetypes.Points3D\n",
"\tComponent type: rerun.components.Position3D\n",
"\tComponent: Points3D:positions\n",
"Column name: /drone/imu_orientation:Points3D:radii\n",
"\tEntity path: /drone/imu_orientation\n",
"\tArchetype: rerun.archetypes.Points3D\n",
"\tComponent type: rerun.components.Radius\n",
"\tComponent: Points3D:radii\n",
"Column name: /environment/detected_obstacles:Points3D:colors\n",
"\tEntity path: /environment/detected_obstacles\n",
"\tArchetype: rerun.archetypes.Points3D\n",
"\tComponent type: rerun.components.Color\n",
"\tComponent: Points3D:colors\n",
"Column name: /environment/detected_obstacles:Points3D:positions\n",
"\tEntity path: /environment/detected_obstacles\n",
"\tArchetype: rerun.archetypes.Points3D\n",
"\tComponent type: rerun.components.Position3D\n",
"\tComponent: Points3D:positions\n",
"Column name: /environment/detected_obstacles:Points3D:radii\n",
"\tEntity path: /environment/detected_obstacles\n",
"\tArchetype: rerun.archetypes.Points3D\n",
"\tComponent type: rerun.components.Radius\n",
"\tComponent: Points3D:radii\n",
"Column name: property:RecordingInfo:start_time\n",
"\tEntity path: /__properties\n",
"\tArchetype: rerun.archetypes.RecordingInfo\n",
"\tComponent type: rerun.components.Timestamp\n",
"\tComponent: RecordingInfo:start_time\n"
]
}
],
"source": [
"print(schema)"
]
},
{
"cell_type": "code",
"execution_count": 48,
"id": "e66dbbb7-9d4c-483c-abfc-fd2f3a5d2e8c",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"📊 Available timelines\n"
]
},
{
"data": {
"text/plain": [
"[Index(timeline:frame),\n",
" Index(timeline:gps_time),\n",
" Index(timeline:imu_time),\n",
" Index(timeline:log_tick),\n",
" Index(timeline:log_time),\n",
" Index(timeline:obstacle_time),\n",
" Index(timeline:simulation_time)]"
]
},
"execution_count": 48,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"print(\"📊 Available timelines\")\n",
"schema.index_columns()"
]
},
{
"cell_type": "code",
"execution_count": 49,
"id": "3174b041-254b-4012-a987-54342cf70b87",
"metadata": {},
"outputs": [],
"source": [
"raw_columns = schema.component_columns()"
]
},
{
"cell_type": "code",
"execution_count": 50,
"id": "f98524b5-c7f6-4483-b084-6f22f6c3b989",
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": 51,
"id": "ffb9f11d-2d1d-4642-9f6b-2beb04e9e51c",
"metadata": {},
"outputs": [],
"source": [
"def make_keyword_qc(full_strings):\n",
" \"\"\"Create a quick access function based on keyword matching.\n",
" \n",
" Args:\n",
" full_strings: List of full path strings\n",
" \n",
" Returns:\n",
" A qc function that finds strings matching space-delimited keywords\n",
" \"\"\"\n",
" def qc(keywords, as_col=False):\n",
" \"\"\"Find string matching keywords (space-delimited).\n",
" \n",
" Args:\n",
" keywords: Space-delimited keywords to search for\n",
" \n",
" Returns:\n",
" The matching string\n",
" \n",
" Raises:\n",
" KeyError: If no match or multiple matches found\n",
" \"\"\"\n",
" # Split keywords and convert to lowercase\n",
" keyword_list = keywords.lower().split()\n",
" \n",
" # Find all strings that contain ALL keywords\n",
" matches = []\n",
" for s in full_strings:\n",
" s_lower = s.lower()\n",
" if all(keyword in s_lower for keyword in keyword_list):\n",
" matches.append(s)\n",
" \n",
" if len(matches) == 0:\n",
" raise KeyError(f\"No match found for keywords: '{keywords}'\")\n",
" elif len(matches) > 1:\n",
" raise KeyError(f\"Multiple matches found for keywords '{keywords}':\\n\" + \n",
" '\\n'.join(f\" - {m}\" for m in matches))\n",
" else:\n",
" print(matches[0])\n",
" if as_col:\n",
" return c(matches[0])\n",
" return matches[0]\n",
" \n",
" return qc"
]
},
{
"cell_type": "code",
"execution_count": 53,
"id": "5dd3491f-5343-4621-a4f2-ec57aacd0678",
"metadata": {},
"outputs": [],
"source": [
"all_cols = list(map(lambda x: x if \"__properties\" not in x else x.replace(\"/__properties\", \"property\"), map(lambda x: f\"{x.entity_path}:{x.component}\", raw_columns)))\n",
"kc = make_keyword_qc(all_cols)"
]
},
{
"cell_type": "code",
"execution_count": 54,
"id": "b5dd0ef1-bb6e-4343-ad3e-0a23a74be169",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"['/drone/gps_position:Points3D:colors',\n",
" '/drone/gps_position:Points3D:positions',\n",
" '/drone/gps_position:Points3D:radii',\n",
" '/drone/imu_orientation:Points3D:colors',\n",
" '/drone/imu_orientation:Points3D:positions',\n",
" '/drone/imu_orientation:Points3D:radii',\n",
" '/environment/detected_obstacles:Points3D:colors',\n",
" '/environment/detected_obstacles:Points3D:positions',\n",
" '/environment/detected_obstacles:Points3D:radii',\n",
" 'property:RecordingInfo:start_time']"
]
},
"execution_count": 54,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"all_cols"
]
},
{
"cell_type": "code",
"execution_count": 55,
"id": "f65f6aec-3a41-4d7f-abf3-47bfd2fe98a2",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"/drone/gps_position:Points3D:colors\n"
]
},
{
"data": {
"text/plain": [
"'/drone/gps_position:Points3D:colors'"
]
},
"execution_count": 55,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"kc(\"gps colors\")"
]
},
{
"cell_type": "code",
"execution_count": 56,
"id": "350bc32f-b1b7-4a83-9cbe-f049f2a1f73b",
"metadata": {},
"outputs": [],
"source": [
"imu_ds = dataset.dataframe_query_view(index=\"imu_time\", contents=\"/**\")\n",
"gps_ds = dataset.dataframe_query_view(index=\"gps_time\", contents=\"/**\")\n",
"obstacle_ds = dataset.dataframe_query_view(index=\"obstacle_time\", contents=\"/**\")"
]
},
{
"cell_type": "code",
"execution_count": 57,
"id": "2b7b246a-d2b7-4362-9c43-e633a67fe7fa",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<DataframeQueryView at 0x107fb1bd0>"
]
},
"execution_count": 57,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"imu_ds"
]
},
{
"cell_type": "code",
"execution_count": 58,
"id": "07dae7fd-89c0-4591-84a9-656253054e83",
"metadata": {},
"outputs": [],
"source": [
"imu_df = imu_ds.df()\n",
"gps_df = gps_ds.df()\n",
"obstacle_df = obstacle_ds.df()"
]
},
{
"cell_type": "code",
"execution_count": 67,
"id": "62f62295-a778-4c70-9212-d8c6cbdd25aa",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
" <div style=\"width: 100%; overflow: auto; border: 1px solid #ccc;\">\n",
" <style>\n",
" .rerun-table.rerun-table table {\n",
" border-collapse: collapse;\n",
" min-width: 100%;\n",
" text-align: left;\n",
" }\n",
"\n",
" .rerun-table.rerun-table th {\n",
" font-weight: normal;\n",
" text-align: left;\n",
" }\n",
"\n",
" .rerun-table.rerun-table td {\n",
" text-align: left;\n",
" }\n",
" </style>\n",
" <table class=\"rerun-table\">\n",
" \n",
"<thead><tr><th><strong>rerun_partition_id</strong><br>Utf8</th><th><strong>simulation_time</strong><br>Timestamp(ns)</th><th><strong>obstacle_time</strong><br>i64</th><th><strong>log_time</strong><br>Timestamp(ns)</th><th><strong>log_tick</strong><br>i64</th><th><strong>imu_time</strong><br>i64</th><th><strong>gps_time</strong><br>i64</th><th><strong>frame</strong><br>i64</th><th><strong>/drone/gps_position:Points3D:colors</strong><br>List[nullable u32]</th><th><strong>/drone/gps_position:Points3D:positions</strong><br>List[nullable FixedSizeList[f32; 3]]</th><th><strong>/drone/gps_position:Points3D:radii</strong><br>List[nullable f32]</th><th><strong>/drone/imu_orientation:Points3D:colors</strong><br>List[nullable u32]</th><th><strong>/drone/imu_orientation:Points3D:positions</strong><br>List[nullable FixedSizeList[f32; 3]]</th><th><strong>/drone/imu_orientation:Points3D:radii</strong><br>List[nullable f32]</th><th><strong>/environment/detected_obstacles:Points3D:colors</strong><br>List[nullable u32]</th><th><strong>/environment/detected_obstacles:Points3D:positions</strong><br>List[nullable FixedSizeList[f32; 3]]</th><th><strong>/environment/detected_obstacles:Points3D:radii</strong><br>List[nullable f32]</th></tr></thead>\n",
"<tbody\n",
"<tr><td>example_timeline</td><td>2025-11-06T21:17:24.203855872</td><td>0</td><td>2025-11-06T21:17:24.348369</td><td>2</td><td>0</td><td>0</td><td>null</td><td>[1694459135]</td><td>[[2.0, 0.0, 0.5]]</td><td>[0.12]</td><td>[4284769535]</td><td>[[-0.5, 0.0, 0.3], [0.0, 0.0, 0.3], [0.5, 0.0, 0.3]]</td><td>[0.08]</td><td>[4288033535, 4288033535, 4288033535]</td><td>[[3.0, 0.0, 0.2], [-1.7669613, 3.0212328, 0.5], [-1.9610432, -3.486303, 0.8]]</td><td>[0.15]</td></tr>\n",
"\n",
"<tr><td>example_timeline</td><td>2025-11-06T21:17:24.303855616</td><td>0</td><td>2025-11-06T21:17:24.348429</td><td>3</td><td>1</td><td>0</td><td>0</td><td>null</td><td>null</td><td>null</td><td>[4284769535]</td><td>[[-0.49927434, -0.036054105, 0.29962507], [-0.0028700293, 0.023802, 0.29962507], [0.4935343, 0.0836…</td><td>[0.08]</td><td>null</td><td>null</td><td>null</td></tr>\n",
"\n",
"<tr><td>example_timeline</td><td>2025-11-06T21:17:24.403855872</td><td>0</td><td>2025-11-06T21:17:24.348476</td><td>4</td><td>2</td><td>0</td><td>1</td><td>null</td><td>null</td><td>null</td><td>[4284769535]</td><td>[[-0.4970301, -0.07242577, 0.29850125], [-0.011361107, 0.046425547, 0.29850125], [0.4743079, 0.1652…</td><td>[0.08]</td><td>null</td><td>null</td><td>null</td></tr>\n",
"\n",
"<tr><td>example_timeline</td><td>2025-11-06T21:17:24.503855616</td><td>0</td><td>2025-11-06T21:17:24.348518</td><td>5</td><td>3</td><td>0</td><td>2</td><td>null</td><td>null</td><td>null</td><td>[4284769535]</td><td>[[-0.49306935, -0.109397575, 0.29663134], [-0.025120953, 0.06673954, 0.29663134], [0.44282746, 0.24…</td><td>[0.08]</td><td>null</td><td>null</td><td>null</td></tr>\n",
"\n",
"<tr><td>example_timeline</td><td>2025-11-06T21:17:24.603855872</td><td>0</td><td>2025-11-06T21:17:24.348558</td><td>6</td><td>4</td><td>0</td><td>3</td><td>null</td><td>null</td><td>null</td><td>[4284769535]</td><td>[[-0.48707554, -0.14718391, 0.29401997], [-0.043578085, 0.083705686, 0.29401997], [0.39991936, 0.31…</td><td>[0.08]</td><td>null</td><td>null</td><td>null</td></tr>\n",
"\n",
"<tr><td>example_timeline</td><td>2025-11-06T21:17:24.703855872</td><td>0</td><td>2025-11-06T21:17:24.348635</td><td>8</td><td>5</td><td>1</td><td>4</td><td>[1694459135]</td><td>[[1.910673, 0.59104043, 0.5596008]]</td><td>[0.12]</td><td>[4284769535]</td><td>[[-0.47863245, -0.18590099, 0.29067373], [-0.06596464, 0.09642025, 0.29067373], [0.34670317, 0.3787…</td><td>[0.08]</td><td>null</td><td>null</td><td>null</td></tr>\n",
"\n",
"<tr><td>example_timeline</td><td>2025-11-06T21:17:24.803855616</td><td>0</td><td>2025-11-06T21:17:24.348671</td><td>9</td><td>6</td><td>1</td><td>5</td><td>null</td><td>null</td><td>null</td><td>[4284769535]</td><td>[[-0.4672499, -0.22554186, 0.28660095], [-0.09134703, 0.10415047, 0.28660095], [0.28455582, 0.43384…</td><td>[0.08]</td><td>null</td><td>null</td><td>null</td></tr>\n",
"\n",
"<tr><td>example_timeline</td><td>2025-11-06T21:17:24.903855872</td><td>0</td><td>2025-11-06T21:17:24.348710</td><td>10</td><td>7</td><td>1</td><td>6</td><td>null</td><td>null</td><td>null</td><td>[4284769535]</td><td>[[-0.45239466, -0.26595744, 0.2818118], [-0.118663244, 0.10636411, 0.2818118], [0.21506816, 0.47868…</td><td>[0.08]</td><td>null</td><td>null</td><td>null</td></tr>\n",
"\n",
"<tr><td>example_timeline</td><td>2025-11-06T21:17:25.003855616</td><td>0</td><td>2025-11-06T21:17:24.348748</td><td>11</td><td>8</td><td>1</td><td>7</td><td>null</td><td>null</td><td>null</td><td>[4284769535]</td><td>[[-0.43352523, -0.30684474, 0.2763183], [-0.14676525, 0.102751054, 0.2763183], [0.13999476, 0.51234…</td><td>[0.08]</td><td>null</td><td>null</td><td>null</td></tr>\n",
"\n",
"<tr><td>example_timeline</td><td>2025-11-06T21:17:25.103855872</td><td>0</td><td>2025-11-06T21:17:24.348783</td><td>12</td><td>9</td><td>1</td><td>8</td><td>null</td><td>null</td><td>null</td><td>[4284769535]</td><td>[[-0.410129, -0.3477429, 0.27013412], [-0.17446484, 0.09323601, 0.27013412], [0.061199345, 0.534214…</td><td>[0.08]</td><td>null</td><td>null</td><td>null</td></tr>\n",
"\n",
"</tbody>\n",
"\n",
" </table>\n",
" </div>\n",
" \n",
"<div>Data truncated due to size.</div>"
],
"text/plain": [
"┌────────────────────┬───────────────────────────────┬───────────────────────────┬────────────────────────────┬──────────────────────┬──────────────────────┬──────────────────────┬───────────────────┬─────────────────────────────────────┬────────────────────────────────────────────┬────────────────────────────────────┬────────────────────────────────────────┬──────────────────────────────────────────────────────────────────────────────────────────────────────┬───────────────────────────────────────┬─────────────────────────────────────────────────┬───────────────────────────────────────────────────────────────────────────────┬────────────────────────────────────────────────┐\n",
"│ rerun_partition_id ┆ simulation_time ┆ obstacle_time ┆ log_time ┆ log_tick ┆ imu_time ┆ gps_time ┆ frame ┆ /drone/gps_position:Points3D:colors ┆ /drone/gps_position:Points3D:positions ┆ /drone/gps_position:Points3D:radii ┆ /drone/imu_orientation:Points3D:colors ┆ /drone/imu_orientation:Points3D:positions ┆ /drone/imu_orientation:Points3D:radii ┆ /environment/detected_obstacles:Points3D:colors ┆ /environment/detected_obstacles:Points3D:positions ┆ /environment/detected_obstacles:Points3D:radii │\n",
"│ --- ┆ --- ┆ --- ┆ --- ┆ --- ┆ --- ┆ --- ┆ --- ┆ --- ┆ --- ┆ --- ┆ --- ┆ --- ┆ --- ┆ --- ┆ --- ┆ --- │\n",
"│ type: Utf8 ┆ type: Timestamp(ns) ┆ type: i64 ┆ type: Timestamp(ns) ┆ type: i64 ┆ type: i64 ┆ type: i64 ┆ type: i64 ┆ type: List[nullable u32] ┆ type: List[nullable FixedSizeList[f32; 3]] ┆ type: List[nullable f32] ┆ type: List[nullable u32] ┆ type: List[nullable FixedSizeList[f32; 3]] ┆ type: List[nullable f32] ┆ type: List[nullable u32] ┆ type: List[nullable FixedSizeList[f32; 3]] ┆ type: List[nullable f32] │\n",
"│ ┆ index_name: simulation_time ┆ index_name: obstacle_time ┆ index_name: log_time ┆ index_name: log_tick ┆ index_name: imu_time ┆ index_name: gps_time ┆ index_name: frame ┆ archetype: Points3D ┆ archetype: Points3D ┆ archetype: Points3D ┆ archetype: Points3D ┆ archetype: Points3D ┆ archetype: Points3D ┆ archetype: Points3D ┆ archetype: Points3D ┆ archetype: Points3D │\n",
"│ ┆ kind: index ┆ kind: index ┆ kind: index ┆ kind: index ┆ kind: index ┆ kind: index ┆ kind: index ┆ component: Points3D:colors ┆ component: Points3D:positions ┆ component: Points3D:radii ┆ component: Points3D:colors ┆ component: Points3D:positions ┆ component: Points3D:radii ┆ component: Points3D:colors ┆ component: Points3D:positions ┆ component: Points3D:radii │\n",
"│ ┆ ┆ ┆ ┆ ┆ ┆ ┆ ┆ component_type: Color ┆ component_type: Position3D ┆ component_type: Radius ┆ component_type: Color ┆ component_type: Position3D ┆ component_type: Radius ┆ component_type: Color ┆ component_type: Position3D ┆ component_type: Radius │\n",
"│ ┆ ┆ ┆ ┆ ┆ ┆ ┆ ┆ entity_path: /drone/gps_position ┆ entity_path: /drone/gps_position ┆ entity_path: /drone/gps_position ┆ entity_path: /drone/imu_orientation ┆ entity_path: /drone/imu_orientation ┆ entity_path: /drone/imu_orientation ┆ entity_path: /environment/detected_obstacles ┆ entity_path: /environment/detected_obstacles ┆ entity_path: /environment/detected_obstacles │\n",
"│ ┆ ┆ ┆ ┆ ┆ ┆ ┆ ┆ kind: data ┆ kind: data ┆ kind: data ┆ kind: data ┆ kind: data ┆ kind: data ┆ kind: data ┆ kind: data ┆ kind: data │\n",
"╞════════════════════╪═══════════════════════════════╪═══════════════════════════╪════════════════════════════╪══════════════════════╪══════════════════════╪══════════════════════╪═══════════════════╪═════════════════════════════════════╪════════════════════════════════════════════╪════════════════════════════════════╪════════════════════════════════════════╪══════════════════════════════════════════════════════════════════════════════════════════════════════╪═══════════════════════════════════════╪═════════════════════════════════════════════════╪═══════════════════════════════════════════════════════════════════════════════╪════════════════════════════════════════════════╡\n",
"│ example_timeline ┆ 2025-11-06T21:17:24.203855872 ┆ 0 ┆ 2025-11-06T21:17:24.348369 ┆ 2 ┆ 0 ┆ 0 ┆ null ┆ [1694459135] ┆ [[2.0, 0.0, 0.5]] ┆ [0.12] ┆ [4284769535] ┆ [[-0.5, 0.0, 0.3], [0.0, 0.0, 0.3], [0.5, 0.0, 0.3]] ┆ [0.08] ┆ [4288033535, 4288033535, 4288033535] ┆ [[3.0, 0.0, 0.2], [-1.7669613, 3.0212328, 0.5], [-1.9610432, -3.486303, 0.8]] ┆ [0.15] │\n",
"├╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┤\n",
"│ example_timeline ┆ 2025-11-06T21:17:24.303855616 ┆ 0 ┆ 2025-11-06T21:17:24.348429 ┆ 3 ┆ 1 ┆ 0 ┆ 0 ┆ null ┆ null ┆ null ┆ [4284769535] ┆ [[-0.49927434, -0.036054105, 0.29962507], [-0.0028700293, 0.023802, 0.29962507], [0.4935343, 0.0836… ┆ [0.08] ┆ null ┆ null ┆ null │\n",
"├╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┤\n",
"│ example_timeline ┆ 2025-11-06T21:17:24.403855872 ┆ 0 ┆ 2025-11-06T21:17:24.348476 ┆ 4 ┆ 2 ┆ 0 ┆ 1 ┆ null ┆ null ┆ null ┆ [4284769535] ┆ [[-0.4970301, -0.07242577, 0.29850125], [-0.011361107, 0.046425547, 0.29850125], [0.4743079, 0.1652… ┆ [0.08] ┆ null ┆ null ┆ null │\n",
"├╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┤\n",
"│ example_timeline ┆ 2025-11-06T21:17:24.503855616 ┆ 0 ┆ 2025-11-06T21:17:24.348518 ┆ 5 ┆ 3 ┆ 0 ┆ 2 ┆ null ┆ null ┆ null ┆ [4284769535] ┆ [[-0.49306935, -0.109397575, 0.29663134], [-0.025120953, 0.06673954, 0.29663134], [0.44282746, 0.24… ┆ [0.08] ┆ null ┆ null ┆ null │\n",
"├╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┤\n",
"│ example_timeline ┆ 2025-11-06T21:17:24.603855872 ┆ 0 ┆ 2025-11-06T21:17:24.348558 ┆ 6 ┆ 4 ┆ 0 ┆ 3 ┆ null ┆ null ┆ null ┆ [4284769535] ┆ [[-0.48707554, -0.14718391, 0.29401997], [-0.043578085, 0.083705686, 0.29401997], [0.39991936, 0.31… ┆ [0.08] ┆ null ┆ null ┆ null │\n",
"├╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┤\n",
"│ example_timeline ┆ 2025-11-06T21:17:24.703855872 ┆ 0 ┆ 2025-11-06T21:17:24.348635 ┆ 8 ┆ 5 ┆ 1 ┆ 4 ┆ [1694459135] ┆ [[1.910673, 0.59104043, 0.5596008]] ┆ [0.12] ┆ [4284769535] ┆ [[-0.47863245, -0.18590099, 0.29067373], [-0.06596464, 0.09642025, 0.29067373], [0.34670317, 0.3787… ┆ [0.08] ┆ null ┆ null ┆ null │\n",
"├╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┤\n",
"│ example_timeline ┆ 2025-11-06T21:17:24.803855616 ┆ 0 ┆ 2025-11-06T21:17:24.348671 ┆ 9 ┆ 6 ┆ 1 ┆ 5 ┆ null ┆ null ┆ null ┆ [4284769535] ┆ [[-0.4672499, -0.22554186, 0.28660095], [-0.09134703, 0.10415047, 0.28660095], [0.28455582, 0.43384… ┆ [0.08] ┆ null ┆ null ┆ null │\n",
"├╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┤\n",
"│ example_timeline ┆ 2025-11-06T21:17:24.903855872 ┆ 0 ┆ 2025-11-06T21:17:24.348710 ┆ 10 ┆ 7 ┆ 1 ┆ 6 ┆ null ┆ null ┆ null ┆ [4284769535] ┆ [[-0.45239466, -0.26595744, 0.2818118], [-0.118663244, 0.10636411, 0.2818118], [0.21506816, 0.47868… ┆ [0.08] ┆ null ┆ null ┆ null │\n",
"├╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┤\n",
"│ example_timeline ┆ 2025-11-06T21:17:25.003855616 ┆ 0 ┆ 2025-11-06T21:17:24.348748 ┆ 11 ┆ 8 ┆ 1 ┆ 7 ┆ null ┆ null ┆ null ┆ [4284769535] ┆ [[-0.43352523, -0.30684474, 0.2763183], [-0.14676525, 0.102751054, 0.2763183], [0.13999476, 0.51234… ┆ [0.08] ┆ null ┆ null ┆ null │\n",
"├╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┤\n",
"│ example_timeline ┆ 2025-11-06T21:17:25.103855872 ┆ 0 ┆ 2025-11-06T21:17:24.348783 ┆ 12 ┆ 9 ┆ 1 ┆ 8 ┆ null ┆ null ┆ null ┆ [4284769535] ┆ [[-0.410129, -0.3477429, 0.27013412], [-0.17446484, 0.09323601, 0.27013412], [0.061199345, 0.534214… ┆ [0.08] ┆ null ┆ null ┆ null │\n",
"└────────────────────┴───────────────────────────────┴───────────────────────────┴────────────────────────────┴──────────────────────┴──────────────────────┴──────────────────────┴───────────────────┴─────────────────────────────────────┴────────────────────────────────────────────┴────────────────────────────────────┴────────────────────────────────────────┴──────────────────────────────────────────────────────────────────────────────────────────────────────┴───────────────────────────────────────┴─────────────────────────────────────────────────┴───────────────────────────────────────────────────────────────────────────────┴────────────────────────────────────────────────┘\n",
"Data truncated due to size."
]
},
"execution_count": 67,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"imu_df"
]
},
{
"cell_type": "code",
"execution_count": 68,
"id": "71147ade-bc5d-46f7-a7f9-a3c1201e8301",
"metadata": {},
"outputs": [],
"source": [
"imu_fdf = imu_ds.fill_latest_at().df()\n",
"gps_fdf = gps_ds.fill_latest_at().df()\n",
"obstacle_fdf = obstacle_ds.fill_latest_at().df()"
]
},
{
"cell_type": "code",
"execution_count": 69,
"id": "3de08594-633d-4013-985b-ccb999fc38ae",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
" <div style=\"width: 100%; overflow: auto; border: 1px solid #ccc;\">\n",
" <style>\n",
" .rerun-table.rerun-table table {\n",
" border-collapse: collapse;\n",
" min-width: 100%;\n",
" text-align: left;\n",
" }\n",
"\n",
" .rerun-table.rerun-table th {\n",
" font-weight: normal;\n",
" text-align: left;\n",
" }\n",
"\n",
" .rerun-table.rerun-table td {\n",
" text-align: left;\n",
" }\n",
" </style>\n",
" <table class=\"rerun-table\">\n",
" \n",
"<thead><tr><th><strong>rerun_partition_id</strong><br>Utf8</th><th><strong>simulation_time</strong><br>Timestamp(ns)</th><th><strong>obstacle_time</strong><br>i64</th><th><strong>log_time</strong><br>Timestamp(ns)</th><th><strong>log_tick</strong><br>i64</th><th><strong>imu_time</strong><br>i64</th><th><strong>gps_time</strong><br>i64</th><th><strong>frame</strong><br>i64</th><th><strong>/drone/gps_position:Points3D:colors</strong><br>List[nullable u32]</th><th><strong>/drone/gps_position:Points3D:positions</strong><br>List[nullable FixedSizeList[f32; 3]]</th><th><strong>/drone/gps_position:Points3D:radii</strong><br>List[nullable f32]</th><th><strong>/drone/imu_orientation:Points3D:colors</strong><br>List[nullable u32]</th><th><strong>/drone/imu_orientation:Points3D:positions</strong><br>List[nullable FixedSizeList[f32; 3]]</th><th><strong>/drone/imu_orientation:Points3D:radii</strong><br>List[nullable f32]</th><th><strong>/environment/detected_obstacles:Points3D:colors</strong><br>List[nullable u32]</th><th><strong>/environment/detected_obstacles:Points3D:positions</strong><br>List[nullable FixedSizeList[f32; 3]]</th><th><strong>/environment/detected_obstacles:Points3D:radii</strong><br>List[nullable f32]</th></tr></thead>\n",
"<tbody\n",
"<tr><td>example_timeline</td><td>2025-11-06T21:17:24.203855872</td><td>0</td><td>2025-11-06T21:17:24.348369</td><td>2</td><td>0</td><td>0</td><td>null</td><td>[1694459135]</td><td>[[2.0, 0.0, 0.5]]</td><td>[0.12]</td><td>[4284769535]</td><td>[[-0.5, 0.0, 0.3], [0.0, 0.0, 0.3], [0.5, 0.0, 0.3]]</td><td>[0.08]</td><td>[4288033535, 4288033535, 4288033535]</td><td>[[3.0, 0.0, 0.2], [-1.7669613, 3.0212328, 0.5], [-1.9610432, -3.486303, 0.8]]</td><td>[0.15]</td></tr>\n",
"\n",
"<tr><td>example_timeline</td><td>2025-11-06T21:17:24.303855616</td><td>0</td><td>2025-11-06T21:17:24.348429</td><td>3</td><td>1</td><td>0</td><td>0</td><td>[1694459135]</td><td>[[2.0, 0.0, 0.5]]</td><td>[0.12]</td><td>[4284769535]</td><td>[[-0.49927434, -0.036054105, 0.29962507], [-0.0028700293, 0.023802, 0.29962507], [0.4935343, 0.0836…</td><td>[0.08]</td><td>[4288033535, 4288033535, 4288033535]</td><td>[[3.0, 0.0, 0.2], [-1.7669613, 3.0212328, 0.5], [-1.9610432, -3.486303, 0.8]]</td><td>[0.15]</td></tr>\n",
"\n",
"<tr><td>example_timeline</td><td>2025-11-06T21:17:24.403855872</td><td>0</td><td>2025-11-06T21:17:24.348476</td><td>4</td><td>2</td><td>0</td><td>1</td><td>[1694459135]</td><td>[[2.0, 0.0, 0.5]]</td><td>[0.12]</td><td>[4284769535]</td><td>[[-0.4970301, -0.07242577, 0.29850125], [-0.011361107, 0.046425547, 0.29850125], [0.4743079, 0.1652…</td><td>[0.08]</td><td>[4288033535, 4288033535, 4288033535]</td><td>[[3.0, 0.0, 0.2], [-1.7669613, 3.0212328, 0.5], [-1.9610432, -3.486303, 0.8]]</td><td>[0.15]</td></tr>\n",
"\n",
"<tr><td>example_timeline</td><td>2025-11-06T21:17:24.503855616</td><td>0</td><td>2025-11-06T21:17:24.348518</td><td>5</td><td>3</td><td>0</td><td>2</td><td>[1694459135]</td><td>[[2.0, 0.0, 0.5]]</td><td>[0.12]</td><td>[4284769535]</td><td>[[-0.49306935, -0.109397575, 0.29663134], [-0.025120953, 0.06673954, 0.29663134], [0.44282746, 0.24…</td><td>[0.08]</td><td>[4288033535, 4288033535, 4288033535]</td><td>[[3.0, 0.0, 0.2], [-1.7669613, 3.0212328, 0.5], [-1.9610432, -3.486303, 0.8]]</td><td>[0.15]</td></tr>\n",
"\n",
"<tr><td>example_timeline</td><td>2025-11-06T21:17:24.603855872</td><td>0</td><td>2025-11-06T21:17:24.348558</td><td>6</td><td>4</td><td>0</td><td>3</td><td>[1694459135]</td><td>[[2.0, 0.0, 0.5]]</td><td>[0.12]</td><td>[4284769535]</td><td>[[-0.48707554, -0.14718391, 0.29401997], [-0.043578085, 0.083705686, 0.29401997], [0.39991936, 0.31…</td><td>[0.08]</td><td>[4288033535, 4288033535, 4288033535]</td><td>[[3.0, 0.0, 0.2], [-1.7669613, 3.0212328, 0.5], [-1.9610432, -3.486303, 0.8]]</td><td>[0.15]</td></tr>\n",
"\n",
"<tr><td>example_timeline</td><td>2025-11-06T21:17:24.703855872</td><td>0</td><td>2025-11-06T21:17:24.348635</td><td>8</td><td>5</td><td>1</td><td>4</td><td>[1694459135]</td><td>[[1.910673, 0.59104043, 0.5596008]]</td><td>[0.12]</td><td>[4284769535]</td><td>[[-0.47863245, -0.18590099, 0.29067373], [-0.06596464, 0.09642025, 0.29067373], [0.34670317, 0.3787…</td><td>[0.08]</td><td>[4288033535, 4288033535, 4288033535]</td><td>[[3.0, 0.0, 0.2], [-1.7669613, 3.0212328, 0.5], [-1.9610432, -3.486303, 0.8]]</td><td>[0.15]</td></tr>\n",
"\n",
"<tr><td>example_timeline</td><td>2025-11-06T21:17:24.803855616</td><td>0</td><td>2025-11-06T21:17:24.348671</td><td>9</td><td>6</td><td>1</td><td>5</td><td>[1694459135]</td><td>[[1.910673, 0.59104043, 0.5596008]]</td><td>[0.12]</td><td>[4284769535]</td><td>[[-0.4672499, -0.22554186, 0.28660095], [-0.09134703, 0.10415047, 0.28660095], [0.28455582, 0.43384…</td><td>[0.08]</td><td>[4288033535, 4288033535, 4288033535]</td><td>[[3.0, 0.0, 0.2], [-1.7669613, 3.0212328, 0.5], [-1.9610432, -3.486303, 0.8]]</td><td>[0.15]</td></tr>\n",
"\n",
"<tr><td>example_timeline</td><td>2025-11-06T21:17:24.903855872</td><td>0</td><td>2025-11-06T21:17:24.348710</td><td>10</td><td>7</td><td>1</td><td>6</td><td>[1694459135]</td><td>[[1.910673, 0.59104043, 0.5596008]]</td><td>[0.12]</td><td>[4284769535]</td><td>[[-0.45239466, -0.26595744, 0.2818118], [-0.118663244, 0.10636411, 0.2818118], [0.21506816, 0.47868…</td><td>[0.08]</td><td>[4288033535, 4288033535, 4288033535]</td><td>[[3.0, 0.0, 0.2], [-1.7669613, 3.0212328, 0.5], [-1.9610432, -3.486303, 0.8]]</td><td>[0.15]</td></tr>\n",
"\n",
"<tr><td>example_timeline</td><td>2025-11-06T21:17:25.003855616</td><td>0</td><td>2025-11-06T21:17:24.348748</td><td>11</td><td>8</td><td>1</td><td>7</td><td>[1694459135]</td><td>[[1.910673, 0.59104043, 0.5596008]]</td><td>[0.12]</td><td>[4284769535]</td><td>[[-0.43352523, -0.30684474, 0.2763183], [-0.14676525, 0.102751054, 0.2763183], [0.13999476, 0.51234…</td><td>[0.08]</td><td>[4288033535, 4288033535, 4288033535]</td><td>[[3.0, 0.0, 0.2], [-1.7669613, 3.0212328, 0.5], [-1.9610432, -3.486303, 0.8]]</td><td>[0.15]</td></tr>\n",
"\n",
"<tr><td>example_timeline</td><td>2025-11-06T21:17:25.103855872</td><td>0</td><td>2025-11-06T21:17:24.348783</td><td>12</td><td>9</td><td>1</td><td>8</td><td>[1694459135]</td><td>[[1.910673, 0.59104043, 0.5596008]]</td><td>[0.12]</td><td>[4284769535]</td><td>[[-0.410129, -0.3477429, 0.27013412], [-0.17446484, 0.09323601, 0.27013412], [0.061199345, 0.534214…</td><td>[0.08]</td><td>[4288033535, 4288033535, 4288033535]</td><td>[[3.0, 0.0, 0.2], [-1.7669613, 3.0212328, 0.5], [-1.9610432, -3.486303, 0.8]]</td><td>[0.15]</td></tr>\n",
"\n",
"</tbody>\n",
"\n",
" </table>\n",
" </div>\n",
" \n",
"<div>Data truncated due to size.</div>"
],
"text/plain": [
"┌────────────────────┬───────────────────────────────┬───────────────────────────┬────────────────────────────┬──────────────────────┬──────────────────────┬──────────────────────┬───────────────────┬─────────────────────────────────────┬────────────────────────────────────────────┬────────────────────────────────────┬────────────────────────────────────────┬──────────────────────────────────────────────────────────────────────────────────────────────────────┬───────────────────────────────────────┬─────────────────────────────────────────────────┬───────────────────────────────────────────────────────────────────────────────┬────────────────────────────────────────────────┐\n",
"│ rerun_partition_id ┆ simulation_time ┆ obstacle_time ┆ log_time ┆ log_tick ┆ imu_time ┆ gps_time ┆ frame ┆ /drone/gps_position:Points3D:colors ┆ /drone/gps_position:Points3D:positions ┆ /drone/gps_position:Points3D:radii ┆ /drone/imu_orientation:Points3D:colors ┆ /drone/imu_orientation:Points3D:positions ┆ /drone/imu_orientation:Points3D:radii ┆ /environment/detected_obstacles:Points3D:colors ┆ /environment/detected_obstacles:Points3D:positions ┆ /environment/detected_obstacles:Points3D:radii │\n",
"│ --- ┆ --- ┆ --- ┆ --- ┆ --- ┆ --- ┆ --- ┆ --- ┆ --- ┆ --- ┆ --- ┆ --- ┆ --- ┆ --- ┆ --- ┆ --- ┆ --- │\n",
"│ type: Utf8 ┆ type: Timestamp(ns) ┆ type: i64 ┆ type: Timestamp(ns) ┆ type: i64 ┆ type: i64 ┆ type: i64 ┆ type: i64 ┆ type: List[nullable u32] ┆ type: List[nullable FixedSizeList[f32; 3]] ┆ type: List[nullable f32] ┆ type: List[nullable u32] ┆ type: List[nullable FixedSizeList[f32; 3]] ┆ type: List[nullable f32] ┆ type: List[nullable u32] ┆ type: List[nullable FixedSizeList[f32; 3]] ┆ type: List[nullable f32] │\n",
"│ ┆ index_name: simulation_time ┆ index_name: obstacle_time ┆ index_name: log_time ┆ index_name: log_tick ┆ index_name: imu_time ┆ index_name: gps_time ┆ index_name: frame ┆ archetype: Points3D ┆ archetype: Points3D ┆ archetype: Points3D ┆ archetype: Points3D ┆ archetype: Points3D ┆ archetype: Points3D ┆ archetype: Points3D ┆ archetype: Points3D ┆ archetype: Points3D │\n",
"│ ┆ kind: index ┆ kind: index ┆ kind: index ┆ kind: index ┆ kind: index ┆ kind: index ┆ kind: index ┆ component: Points3D:colors ┆ component: Points3D:positions ┆ component: Points3D:radii ┆ component: Points3D:colors ┆ component: Points3D:positions ┆ component: Points3D:radii ┆ component: Points3D:colors ┆ component: Points3D:positions ┆ component: Points3D:radii │\n",
"│ ┆ ┆ ┆ ┆ ┆ ┆ ┆ ┆ component_type: Color ┆ component_type: Position3D ┆ component_type: Radius ┆ component_type: Color ┆ component_type: Position3D ┆ component_type: Radius ┆ component_type: Color ┆ component_type: Position3D ┆ component_type: Radius │\n",
"│ ┆ ┆ ┆ ┆ ┆ ┆ ┆ ┆ entity_path: /drone/gps_position ┆ entity_path: /drone/gps_position ┆ entity_path: /drone/gps_position ┆ entity_path: /drone/imu_orientation ┆ entity_path: /drone/imu_orientation ┆ entity_path: /drone/imu_orientation ┆ entity_path: /environment/detected_obstacles ┆ entity_path: /environment/detected_obstacles ┆ entity_path: /environment/detected_obstacles │\n",
"│ ┆ ┆ ┆ ┆ ┆ ┆ ┆ ┆ kind: data ┆ kind: data ┆ kind: data ┆ kind: data ┆ kind: data ┆ kind: data ┆ kind: data ┆ kind: data ┆ kind: data │\n",
"╞════════════════════╪═══════════════════════════════╪═══════════════════════════╪════════════════════════════╪══════════════════════╪══════════════════════╪══════════════════════╪═══════════════════╪═════════════════════════════════════╪════════════════════════════════════════════╪════════════════════════════════════╪════════════════════════════════════════╪══════════════════════════════════════════════════════════════════════════════════════════════════════╪═══════════════════════════════════════╪═════════════════════════════════════════════════╪═══════════════════════════════════════════════════════════════════════════════╪════════════════════════════════════════════════╡\n",
"│ example_timeline ┆ 2025-11-06T21:17:24.203855872 ┆ 0 ┆ 2025-11-06T21:17:24.348369 ┆ 2 ┆ 0 ┆ 0 ┆ null ┆ [1694459135] ┆ [[2.0, 0.0, 0.5]] ┆ [0.12] ┆ [4284769535] ┆ [[-0.5, 0.0, 0.3], [0.0, 0.0, 0.3], [0.5, 0.0, 0.3]] ┆ [0.08] ┆ [4288033535, 4288033535, 4288033535] ┆ [[3.0, 0.0, 0.2], [-1.7669613, 3.0212328, 0.5], [-1.9610432, -3.486303, 0.8]] ┆ [0.15] │\n",
"├╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┤\n",
"│ example_timeline ┆ 2025-11-06T21:17:24.303855616 ┆ 0 ┆ 2025-11-06T21:17:24.348429 ┆ 3 ┆ 1 ┆ 0 ┆ 0 ┆ [1694459135] ┆ [[2.0, 0.0, 0.5]] ┆ [0.12] ┆ [4284769535] ┆ [[-0.49927434, -0.036054105, 0.29962507], [-0.0028700293, 0.023802, 0.29962507], [0.4935343, 0.0836… ┆ [0.08] ┆ [4288033535, 4288033535, 4288033535] ┆ [[3.0, 0.0, 0.2], [-1.7669613, 3.0212328, 0.5], [-1.9610432, -3.486303, 0.8]] ┆ [0.15] │\n",
"├╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┤\n",
"│ example_timeline ┆ 2025-11-06T21:17:24.403855872 ┆ 0 ┆ 2025-11-06T21:17:24.348476 ┆ 4 ┆ 2 ┆ 0 ┆ 1 ┆ [1694459135] ┆ [[2.0, 0.0, 0.5]] ┆ [0.12] ┆ [4284769535] ┆ [[-0.4970301, -0.07242577, 0.29850125], [-0.011361107, 0.046425547, 0.29850125], [0.4743079, 0.1652… ┆ [0.08] ┆ [4288033535, 4288033535, 4288033535] ┆ [[3.0, 0.0, 0.2], [-1.7669613, 3.0212328, 0.5], [-1.9610432, -3.486303, 0.8]] ┆ [0.15] │\n",
"├╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┤\n",
"│ example_timeline ┆ 2025-11-06T21:17:24.503855616 ┆ 0 ┆ 2025-11-06T21:17:24.348518 ┆ 5 ┆ 3 ┆ 0 ┆ 2 ┆ [1694459135] ┆ [[2.0, 0.0, 0.5]] ┆ [0.12] ┆ [4284769535] ┆ [[-0.49306935, -0.109397575, 0.29663134], [-0.025120953, 0.06673954, 0.29663134], [0.44282746, 0.24… ┆ [0.08] ┆ [4288033535, 4288033535, 4288033535] ┆ [[3.0, 0.0, 0.2], [-1.7669613, 3.0212328, 0.5], [-1.9610432, -3.486303, 0.8]] ┆ [0.15] │\n",
"├╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┤\n",
"│ example_timeline ┆ 2025-11-06T21:17:24.603855872 ┆ 0 ┆ 2025-11-06T21:17:24.348558 ┆ 6 ┆ 4 ┆ 0 ┆ 3 ┆ [1694459135] ┆ [[2.0, 0.0, 0.5]] ┆ [0.12] ┆ [4284769535] ┆ [[-0.48707554, -0.14718391, 0.29401997], [-0.043578085, 0.083705686, 0.29401997], [0.39991936, 0.31… ┆ [0.08] ┆ [4288033535, 4288033535, 4288033535] ┆ [[3.0, 0.0, 0.2], [-1.7669613, 3.0212328, 0.5], [-1.9610432, -3.486303, 0.8]] ┆ [0.15] │\n",
"├╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┤\n",
"│ example_timeline ┆ 2025-11-06T21:17:24.703855872 ┆ 0 ┆ 2025-11-06T21:17:24.348635 ┆ 8 ┆ 5 ┆ 1 ┆ 4 ┆ [1694459135] ┆ [[1.910673, 0.59104043, 0.5596008]] ┆ [0.12] ┆ [4284769535] ┆ [[-0.47863245, -0.18590099, 0.29067373], [-0.06596464, 0.09642025, 0.29067373], [0.34670317, 0.3787… ┆ [0.08] ┆ [4288033535, 4288033535, 4288033535] ┆ [[3.0, 0.0, 0.2], [-1.7669613, 3.0212328, 0.5], [-1.9610432, -3.486303, 0.8]] ┆ [0.15] │\n",
"├╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┤\n",
"│ example_timeline ┆ 2025-11-06T21:17:24.803855616 ┆ 0 ┆ 2025-11-06T21:17:24.348671 ┆ 9 ┆ 6 ┆ 1 ┆ 5 ┆ [1694459135] ┆ [[1.910673, 0.59104043, 0.5596008]] ┆ [0.12] ┆ [4284769535] ┆ [[-0.4672499, -0.22554186, 0.28660095], [-0.09134703, 0.10415047, 0.28660095], [0.28455582, 0.43384… ┆ [0.08] ┆ [4288033535, 4288033535, 4288033535] ┆ [[3.0, 0.0, 0.2], [-1.7669613, 3.0212328, 0.5], [-1.9610432, -3.486303, 0.8]] ┆ [0.15] │\n",
"├╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┤\n",
"│ example_timeline ┆ 2025-11-06T21:17:24.903855872 ┆ 0 ┆ 2025-11-06T21:17:24.348710 ┆ 10 ┆ 7 ┆ 1 ┆ 6 ┆ [1694459135] ┆ [[1.910673, 0.59104043, 0.5596008]] ┆ [0.12] ┆ [4284769535] ┆ [[-0.45239466, -0.26595744, 0.2818118], [-0.118663244, 0.10636411, 0.2818118], [0.21506816, 0.47868… ┆ [0.08] ┆ [4288033535, 4288033535, 4288033535] ┆ [[3.0, 0.0, 0.2], [-1.7669613, 3.0212328, 0.5], [-1.9610432, -3.486303, 0.8]] ┆ [0.15] │\n",
"├╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┤\n",
"│ example_timeline ┆ 2025-11-06T21:17:25.003855616 ┆ 0 ┆ 2025-11-06T21:17:24.348748 ┆ 11 ┆ 8 ┆ 1 ┆ 7 ┆ [1694459135] ┆ [[1.910673, 0.59104043, 0.5596008]] ┆ [0.12] ┆ [4284769535] ┆ [[-0.43352523, -0.30684474, 0.2763183], [-0.14676525, 0.102751054, 0.2763183], [0.13999476, 0.51234… ┆ [0.08] ┆ [4288033535, 4288033535, 4288033535] ┆ [[3.0, 0.0, 0.2], [-1.7669613, 3.0212328, 0.5], [-1.9610432, -3.486303, 0.8]] ┆ [0.15] │\n",
"├╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┤\n",
"│ example_timeline ┆ 2025-11-06T21:17:25.103855872 ┆ 0 ┆ 2025-11-06T21:17:24.348783 ┆ 12 ┆ 9 ┆ 1 ┆ 8 ┆ [1694459135] ┆ [[1.910673, 0.59104043, 0.5596008]] ┆ [0.12] ┆ [4284769535] ┆ [[-0.410129, -0.3477429, 0.27013412], [-0.17446484, 0.09323601, 0.27013412], [0.061199345, 0.534214… ┆ [0.08] ┆ [4288033535, 4288033535, 4288033535] ┆ [[3.0, 0.0, 0.2], [-1.7669613, 3.0212328, 0.5], [-1.9610432, -3.486303, 0.8]] ┆ [0.15] │\n",
"└────────────────────┴───────────────────────────────┴───────────────────────────┴────────────────────────────┴──────────────────────┴──────────────────────┴──────────────────────┴───────────────────┴─────────────────────────────────────┴────────────────────────────────────────────┴────────────────────────────────────┴────────────────────────────────────────┴──────────────────────────────────────────────────────────────────────────────────────────────────────┴───────────────────────────────────────┴─────────────────────────────────────────────────┴───────────────────────────────────────────────────────────────────────────────┴────────────────────────────────────────────────┘\n",
"Data truncated due to size."
]
},
"execution_count": 69,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"imu_fdf"
]
},
{
"cell_type": "code",
"execution_count": 70,
"id": "3aef2c96-8175-4bd5-913d-7e1bed4522bb",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"\n",
"==================================================\n",
"UPDATE RATE COMPARISON\n",
"==================================================\n",
"IMU (fastest) 60 updates ████████████████████ 100.0%\n",
"GPS (medium) 12 updates ████░░░░░░░░░░░░░░░░ 20.0%\n",
"Obstacle (slowest) 6 updates ██░░░░░░░░░░░░░░░░░░ 10.0%\n",
"\n",
"📊 Data coverage analysis:\n",
" • IMU coverage: 100% (every frame)\n",
" • GPS coverage: 100.0% (expected every 5 frames)\n",
" • Obstacle coverage: 100.0% (expected every 10 frames)\n"
]
}
],
"source": [
"print(\"\\n\" + \"=\" * 50)\n",
"print(\"UPDATE RATE COMPARISON\")\n",
"print(\"=\" * 50)\n",
"\n",
"\n",
"# Analyze update rates\n",
"timeline_stats = {\n",
" \"IMU (fastest)\": imu_df.count(),\n",
" \"GPS (medium)\": gps_df.count(),\n",
" \"Obstacle (slowest)\": obstacle_df.count(),\n",
"}\n",
"\n",
"max_updates = max(timeline_stats.values()) if timeline_stats.values() else 1\n",
"for timeline, count in timeline_stats.items():\n",
" ratio = count / max_updates if max_updates > 0 else 0\n",
" bar = \"█\" * int(ratio * 20) + \"░\" * (20 - int(ratio * 20))\n",
" print(f\"{timeline:20} {count:4d} updates {bar} {ratio:.1%}\")\n",
"\n",
"# Calculate data coverage\n",
"total_possible_updates = imu_df.count()\n",
"if total_possible_updates > 0:\n",
" gps_coverage = (\n",
" (gps_df.count() / (total_possible_updates // 5)) * 100\n",
" if total_possible_updates >= 5\n",
" else 100\n",
" )\n",
" obstacle_coverage = (\n",
" (obstacle_df.count() / (total_possible_updates // 10)) * 100\n",
" if total_possible_updates >= 10\n",
" else 100\n",
" )\n",
"\n",
" print(\"\\n📊 Data coverage analysis:\")\n",
" print(\" • IMU coverage: 100% (every frame)\")\n",
" print(f\" • GPS coverage: {gps_coverage:.1f}% (expected every 5 frames)\")\n",
" print(\n",
" f\" • Obstacle coverage: {obstacle_coverage:.1f}% (expected every 10 frames)\"\n",
" )"
]
},
{
"cell_type": "code",
"execution_count": 71,
"id": "5ba36322-f262-47e4-9cde-c0664f1bb3a5",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
" <div style=\"width: 100%; overflow: auto; border: 1px solid #ccc;\">\n",
" <style>\n",
" .rerun-table.rerun-table table {\n",
" border-collapse: collapse;\n",
" min-width: 100%;\n",
" text-align: left;\n",
" }\n",
"\n",
" .rerun-table.rerun-table th {\n",
" font-weight: normal;\n",
" text-align: left;\n",
" }\n",
"\n",
" .rerun-table.rerun-table td {\n",
" text-align: left;\n",
" }\n",
" </style>\n",
" <table class=\"rerun-table\">\n",
" \n",
"<thead><tr><th><strong>rerun_partition_id</strong><br>Utf8</th><th><strong>simulation_time</strong><br>Timestamp(ns)</th><th><strong>obstacle_time</strong><br>i64</th><th><strong>log_time</strong><br>Timestamp(ns)</th><th><strong>log_tick</strong><br>i64</th><th><strong>imu_time</strong><br>i64</th><th><strong>gps_time</strong><br>i64</th><th><strong>frame</strong><br>i64</th><th><strong>/drone/gps_position:Points3D:colors</strong><br>List[nullable u32]</th><th><strong>/drone/gps_position:Points3D:positions</strong><br>List[nullable FixedSizeList[f32; 3]]</th><th><strong>/drone/gps_position:Points3D:radii</strong><br>List[nullable f32]</th><th><strong>/drone/imu_orientation:Points3D:colors</strong><br>List[nullable u32]</th><th><strong>/drone/imu_orientation:Points3D:positions</strong><br>List[nullable FixedSizeList[f32; 3]]</th><th><strong>/drone/imu_orientation:Points3D:radii</strong><br>List[nullable f32]</th><th><strong>/environment/detected_obstacles:Points3D:colors</strong><br>List[nullable u32]</th><th><strong>/environment/detected_obstacles:Points3D:positions</strong><br>List[nullable FixedSizeList[f32; 3]]</th><th><strong>/environment/detected_obstacles:Points3D:radii</strong><br>List[nullable f32]</th></tr></thead>\n",
"<tbody\n",
"<tr><td>example_timeline</td><td>2025-11-06T21:17:24.203855872</td><td>0</td><td>2025-11-06T21:17:24.348369</td><td>2</td><td>0</td><td>0</td><td>null</td><td>[1694459135]</td><td>[[2.0, 0.0, 0.5]]</td><td>[0.12]</td><td>[4284769535]</td><td>[[-0.5, 0.0, 0.3], [0.0, 0.0, 0.3], [0.5, 0.0, 0.3]]</td><td>[0.08]</td><td>[4288033535, 4288033535, 4288033535]</td><td>[[3.0, 0.0, 0.2], [-1.7669613, 3.0212328, 0.5], [-1.9610432, -3.486303, 0.8]]</td><td>[0.15]</td></tr>\n",
"\n",
"<tr><td>example_timeline</td><td>2025-11-06T21:17:24.303855616</td><td>0</td><td>2025-11-06T21:17:24.348429</td><td>3</td><td>1</td><td>0</td><td>0</td><td>null</td><td>null</td><td>null</td><td>[4284769535]</td><td>[[-0.49927434, -0.036054105, 0.29962507], [-0.0028700293, 0.023802, 0.29962507], [0.4935343, 0.0836…</td><td>[0.08]</td><td>null</td><td>null</td><td>null</td></tr>\n",
"\n",
"<tr><td>example_timeline</td><td>2025-11-06T21:17:24.403855872</td><td>0</td><td>2025-11-06T21:17:24.348476</td><td>4</td><td>2</td><td>0</td><td>1</td><td>null</td><td>null</td><td>null</td><td>[4284769535]</td><td>[[-0.4970301, -0.07242577, 0.29850125], [-0.011361107, 0.046425547, 0.29850125], [0.4743079, 0.1652…</td><td>[0.08]</td><td>null</td><td>null</td><td>null</td></tr>\n",
"\n",
"<tr><td>example_timeline</td><td>2025-11-06T21:17:24.503855616</td><td>0</td><td>2025-11-06T21:17:24.348518</td><td>5</td><td>3</td><td>0</td><td>2</td><td>null</td><td>null</td><td>null</td><td>[4284769535]</td><td>[[-0.49306935, -0.109397575, 0.29663134], [-0.025120953, 0.06673954, 0.29663134], [0.44282746, 0.24…</td><td>[0.08]</td><td>null</td><td>null</td><td>null</td></tr>\n",
"\n",
"<tr><td>example_timeline</td><td>2025-11-06T21:17:24.603855872</td><td>0</td><td>2025-11-06T21:17:24.348558</td><td>6</td><td>4</td><td>0</td><td>3</td><td>null</td><td>null</td><td>null</td><td>[4284769535]</td><td>[[-0.48707554, -0.14718391, 0.29401997], [-0.043578085, 0.083705686, 0.29401997], [0.39991936, 0.31…</td><td>[0.08]</td><td>null</td><td>null</td><td>null</td></tr>\n",
"\n",
"<tr><td>example_timeline</td><td>2025-11-06T21:17:24.703855872</td><td>0</td><td>2025-11-06T21:17:24.348635</td><td>8</td><td>5</td><td>1</td><td>4</td><td>[1694459135]</td><td>[[1.910673, 0.59104043, 0.5596008]]</td><td>[0.12]</td><td>[4284769535]</td><td>[[-0.47863245, -0.18590099, 0.29067373], [-0.06596464, 0.09642025, 0.29067373], [0.34670317, 0.3787…</td><td>[0.08]</td><td>null</td><td>null</td><td>null</td></tr>\n",
"\n",
"<tr><td>example_timeline</td><td>2025-11-06T21:17:24.803855616</td><td>0</td><td>2025-11-06T21:17:24.348671</td><td>9</td><td>6</td><td>1</td><td>5</td><td>null</td><td>null</td><td>null</td><td>[4284769535]</td><td>[[-0.4672499, -0.22554186, 0.28660095], [-0.09134703, 0.10415047, 0.28660095], [0.28455582, 0.43384…</td><td>[0.08]</td><td>null</td><td>null</td><td>null</td></tr>\n",
"\n",
"<tr><td>example_timeline</td><td>2025-11-06T21:17:24.903855872</td><td>0</td><td>2025-11-06T21:17:24.348710</td><td>10</td><td>7</td><td>1</td><td>6</td><td>null</td><td>null</td><td>null</td><td>[4284769535]</td><td>[[-0.45239466, -0.26595744, 0.2818118], [-0.118663244, 0.10636411, 0.2818118], [0.21506816, 0.47868…</td><td>[0.08]</td><td>null</td><td>null</td><td>null</td></tr>\n",
"\n",
"<tr><td>example_timeline</td><td>2025-11-06T21:17:25.003855616</td><td>0</td><td>2025-11-06T21:17:24.348748</td><td>11</td><td>8</td><td>1</td><td>7</td><td>null</td><td>null</td><td>null</td><td>[4284769535]</td><td>[[-0.43352523, -0.30684474, 0.2763183], [-0.14676525, 0.102751054, 0.2763183], [0.13999476, 0.51234…</td><td>[0.08]</td><td>null</td><td>null</td><td>null</td></tr>\n",
"\n",
"<tr><td>example_timeline</td><td>2025-11-06T21:17:25.103855872</td><td>0</td><td>2025-11-06T21:17:24.348783</td><td>12</td><td>9</td><td>1</td><td>8</td><td>null</td><td>null</td><td>null</td><td>[4284769535]</td><td>[[-0.410129, -0.3477429, 0.27013412], [-0.17446484, 0.09323601, 0.27013412], [0.061199345, 0.534214…</td><td>[0.08]</td><td>null</td><td>null</td><td>null</td></tr>\n",
"\n",
"</tbody>\n",
"\n",
" </table>\n",
" </div>\n",
" \n",
"<div>Data truncated due to size.</div>"
],
"text/plain": [
"┌────────────────────┬───────────────────────────────┬───────────────────────────┬────────────────────────────┬──────────────────────┬──────────────────────┬──────────────────────┬───────────────────┬─────────────────────────────────────┬────────────────────────────────────────────┬────────────────────────────────────┬────────────────────────────────────────┬──────────────────────────────────────────────────────────────────────────────────────────────────────┬───────────────────────────────────────┬─────────────────────────────────────────────────┬───────────────────────────────────────────────────────────────────────────────┬────────────────────────────────────────────────┐\n",
"│ rerun_partition_id ┆ simulation_time ┆ obstacle_time ┆ log_time ┆ log_tick ┆ imu_time ┆ gps_time ┆ frame ┆ /drone/gps_position:Points3D:colors ┆ /drone/gps_position:Points3D:positions ┆ /drone/gps_position:Points3D:radii ┆ /drone/imu_orientation:Points3D:colors ┆ /drone/imu_orientation:Points3D:positions ┆ /drone/imu_orientation:Points3D:radii ┆ /environment/detected_obstacles:Points3D:colors ┆ /environment/detected_obstacles:Points3D:positions ┆ /environment/detected_obstacles:Points3D:radii │\n",
"│ --- ┆ --- ┆ --- ┆ --- ┆ --- ┆ --- ┆ --- ┆ --- ┆ --- ┆ --- ┆ --- ┆ --- ┆ --- ┆ --- ┆ --- ┆ --- ┆ --- │\n",
"│ type: Utf8 ┆ type: Timestamp(ns) ┆ type: i64 ┆ type: Timestamp(ns) ┆ type: i64 ┆ type: i64 ┆ type: i64 ┆ type: i64 ┆ type: List[nullable u32] ┆ type: List[nullable FixedSizeList[f32; 3]] ┆ type: List[nullable f32] ┆ type: List[nullable u32] ┆ type: List[nullable FixedSizeList[f32; 3]] ┆ type: List[nullable f32] ┆ type: List[nullable u32] ┆ type: List[nullable FixedSizeList[f32; 3]] ┆ type: List[nullable f32] │\n",
"│ ┆ index_name: simulation_time ┆ index_name: obstacle_time ┆ index_name: log_time ┆ index_name: log_tick ┆ index_name: imu_time ┆ index_name: gps_time ┆ index_name: frame ┆ archetype: Points3D ┆ archetype: Points3D ┆ archetype: Points3D ┆ archetype: Points3D ┆ archetype: Points3D ┆ archetype: Points3D ┆ archetype: Points3D ┆ archetype: Points3D ┆ archetype: Points3D │\n",
"│ ┆ kind: index ┆ kind: index ┆ kind: index ┆ kind: index ┆ kind: index ┆ kind: index ┆ kind: index ┆ component: Points3D:colors ┆ component: Points3D:positions ┆ component: Points3D:radii ┆ component: Points3D:colors ┆ component: Points3D:positions ┆ component: Points3D:radii ┆ component: Points3D:colors ┆ component: Points3D:positions ┆ component: Points3D:radii │\n",
"│ ┆ ┆ ┆ ┆ ┆ ┆ ┆ ┆ component_type: Color ┆ component_type: Position3D ┆ component_type: Radius ┆ component_type: Color ┆ component_type: Position3D ┆ component_type: Radius ┆ component_type: Color ┆ component_type: Position3D ┆ component_type: Radius │\n",
"│ ┆ ┆ ┆ ┆ ┆ ┆ ┆ ┆ entity_path: /drone/gps_position ┆ entity_path: /drone/gps_position ┆ entity_path: /drone/gps_position ┆ entity_path: /drone/imu_orientation ┆ entity_path: /drone/imu_orientation ┆ entity_path: /drone/imu_orientation ┆ entity_path: /environment/detected_obstacles ┆ entity_path: /environment/detected_obstacles ┆ entity_path: /environment/detected_obstacles │\n",
"│ ┆ ┆ ┆ ┆ ┆ ┆ ┆ ┆ kind: data ┆ kind: data ┆ kind: data ┆ kind: data ┆ kind: data ┆ kind: data ┆ kind: data ┆ kind: data ┆ kind: data │\n",
"╞════════════════════╪═══════════════════════════════╪═══════════════════════════╪════════════════════════════╪══════════════════════╪══════════════════════╪══════════════════════╪═══════════════════╪═════════════════════════════════════╪════════════════════════════════════════════╪════════════════════════════════════╪════════════════════════════════════════╪══════════════════════════════════════════════════════════════════════════════════════════════════════╪═══════════════════════════════════════╪═════════════════════════════════════════════════╪═══════════════════════════════════════════════════════════════════════════════╪════════════════════════════════════════════════╡\n",
"│ example_timeline ┆ 2025-11-06T21:17:24.203855872 ┆ 0 ┆ 2025-11-06T21:17:24.348369 ┆ 2 ┆ 0 ┆ 0 ┆ null ┆ [1694459135] ┆ [[2.0, 0.0, 0.5]] ┆ [0.12] ┆ [4284769535] ┆ [[-0.5, 0.0, 0.3], [0.0, 0.0, 0.3], [0.5, 0.0, 0.3]] ┆ [0.08] ┆ [4288033535, 4288033535, 4288033535] ┆ [[3.0, 0.0, 0.2], [-1.7669613, 3.0212328, 0.5], [-1.9610432, -3.486303, 0.8]] ┆ [0.15] │\n",
"├╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┤\n",
"│ example_timeline ┆ 2025-11-06T21:17:24.303855616 ┆ 0 ┆ 2025-11-06T21:17:24.348429 ┆ 3 ┆ 1 ┆ 0 ┆ 0 ┆ null ┆ null ┆ null ┆ [4284769535] ┆ [[-0.49927434, -0.036054105, 0.29962507], [-0.0028700293, 0.023802, 0.29962507], [0.4935343, 0.0836… ┆ [0.08] ┆ null ┆ null ┆ null │\n",
"├╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┤\n",
"│ example_timeline ┆ 2025-11-06T21:17:24.403855872 ┆ 0 ┆ 2025-11-06T21:17:24.348476 ┆ 4 ┆ 2 ┆ 0 ┆ 1 ┆ null ┆ null ┆ null ┆ [4284769535] ┆ [[-0.4970301, -0.07242577, 0.29850125], [-0.011361107, 0.046425547, 0.29850125], [0.4743079, 0.1652… ┆ [0.08] ┆ null ┆ null ┆ null │\n",
"├╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┤\n",
"│ example_timeline ┆ 2025-11-06T21:17:24.503855616 ┆ 0 ┆ 2025-11-06T21:17:24.348518 ┆ 5 ┆ 3 ┆ 0 ┆ 2 ┆ null ┆ null ┆ null ┆ [4284769535] ┆ [[-0.49306935, -0.109397575, 0.29663134], [-0.025120953, 0.06673954, 0.29663134], [0.44282746, 0.24… ┆ [0.08] ┆ null ┆ null ┆ null │\n",
"├╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┤\n",
"│ example_timeline ┆ 2025-11-06T21:17:24.603855872 ┆ 0 ┆ 2025-11-06T21:17:24.348558 ┆ 6 ┆ 4 ┆ 0 ┆ 3 ┆ null ┆ null ┆ null ┆ [4284769535] ┆ [[-0.48707554, -0.14718391, 0.29401997], [-0.043578085, 0.083705686, 0.29401997], [0.39991936, 0.31… ┆ [0.08] ┆ null ┆ null ┆ null │\n",
"├╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┤\n",
"│ example_timeline ┆ 2025-11-06T21:17:24.703855872 ┆ 0 ┆ 2025-11-06T21:17:24.348635 ┆ 8 ┆ 5 ┆ 1 ┆ 4 ┆ [1694459135] ┆ [[1.910673, 0.59104043, 0.5596008]] ┆ [0.12] ┆ [4284769535] ┆ [[-0.47863245, -0.18590099, 0.29067373], [-0.06596464, 0.09642025, 0.29067373], [0.34670317, 0.3787… ┆ [0.08] ┆ null ┆ null ┆ null │\n",
"├╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┤\n",
"│ example_timeline ┆ 2025-11-06T21:17:24.803855616 ┆ 0 ┆ 2025-11-06T21:17:24.348671 ┆ 9 ┆ 6 ┆ 1 ┆ 5 ┆ null ┆ null ┆ null ┆ [4284769535] ┆ [[-0.4672499, -0.22554186, 0.28660095], [-0.09134703, 0.10415047, 0.28660095], [0.28455582, 0.43384… ┆ [0.08] ┆ null ┆ null ┆ null │\n",
"├╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┤\n",
"│ example_timeline ┆ 2025-11-06T21:17:24.903855872 ┆ 0 ┆ 2025-11-06T21:17:24.348710 ┆ 10 ┆ 7 ┆ 1 ┆ 6 ┆ null ┆ null ┆ null ┆ [4284769535] ┆ [[-0.45239466, -0.26595744, 0.2818118], [-0.118663244, 0.10636411, 0.2818118], [0.21506816, 0.47868… ┆ [0.08] ┆ null ┆ null ┆ null │\n",
"├╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┤\n",
"│ example_timeline ┆ 2025-11-06T21:17:25.003855616 ┆ 0 ┆ 2025-11-06T21:17:24.348748 ┆ 11 ┆ 8 ┆ 1 ┆ 7 ┆ null ┆ null ┆ null ┆ [4284769535] ┆ [[-0.43352523, -0.30684474, 0.2763183], [-0.14676525, 0.102751054, 0.2763183], [0.13999476, 0.51234… ┆ [0.08] ┆ null ┆ null ┆ null │\n",
"├╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┤\n",
"│ example_timeline ┆ 2025-11-06T21:17:25.103855872 ┆ 0 ┆ 2025-11-06T21:17:24.348783 ┆ 12 ┆ 9 ┆ 1 ┆ 8 ┆ null ┆ null ┆ null ┆ [4284769535] ┆ [[-0.410129, -0.3477429, 0.27013412], [-0.17446484, 0.09323601, 0.27013412], [0.061199345, 0.534214… ┆ [0.08] ┆ null ┆ null ┆ null │\n",
"└────────────────────┴───────────────────────────────┴───────────────────────────┴────────────────────────────┴──────────────────────┴──────────────────────┴──────────────────────┴───────────────────┴─────────────────────────────────────┴────────────────────────────────────────────┴────────────────────────────────────┴────────────────────────────────────────┴──────────────────────────────────────────────────────────────────────────────────────────────────────┴───────────────────────────────────────┴─────────────────────────────────────────────────┴───────────────────────────────────────────────────────────────────────────────┴────────────────────────────────────────────────┘\n",
"Data truncated due to size."
]
},
"execution_count": 71,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"imu_df"
]
},
{
"cell_type": "code",
"execution_count": 72,
"id": "8f966e68-a598-41f8-8cdb-2e8db5b16e85",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
" <div style=\"width: 100%; overflow: auto; border: 1px solid #ccc;\">\n",
" <style>\n",
" .rerun-table.rerun-table table {\n",
" border-collapse: collapse;\n",
" min-width: 100%;\n",
" text-align: left;\n",
" }\n",
"\n",
" .rerun-table.rerun-table th {\n",
" font-weight: normal;\n",
" text-align: left;\n",
" }\n",
"\n",
" .rerun-table.rerun-table td {\n",
" text-align: left;\n",
" }\n",
" </style>\n",
" <table class=\"rerun-table\">\n",
" \n",
"<thead><tr><th><strong>rerun_partition_id</strong><br>Utf8</th><th><strong>simulation_time</strong><br>Timestamp(ns)</th><th><strong>obstacle_time</strong><br>i64</th><th><strong>log_time</strong><br>Timestamp(ns)</th><th><strong>log_tick</strong><br>i64</th><th><strong>imu_time</strong><br>i64</th><th><strong>gps_time</strong><br>i64</th><th><strong>frame</strong><br>i64</th><th><strong>/drone/gps_position:Points3D:colors</strong><br>List[nullable u32]</th><th><strong>/drone/gps_position:Points3D:positions</strong><br>List[nullable FixedSizeList[f32; 3]]</th><th><strong>/drone/gps_position:Points3D:radii</strong><br>List[nullable f32]</th><th><strong>/drone/imu_orientation:Points3D:colors</strong><br>List[nullable u32]</th><th><strong>/drone/imu_orientation:Points3D:positions</strong><br>List[nullable FixedSizeList[f32; 3]]</th><th><strong>/drone/imu_orientation:Points3D:radii</strong><br>List[nullable f32]</th></tr></thead>\n",
"<tbody\n",
"<tr><td>example_timeline</td><td>2025-11-06T21:17:24.203855872</td><td>null</td><td>2025-11-06T21:17:24.348310</td><td>1</td><td>0</td><td>0</td><td>null</td><td>[1694459135]</td><td>[[2.0, 0.0, 0.5]]</td><td>[0.12]</td><td>[4284769535]</td><td>[[-0.5, 0.0, 0.3], [0.0, 0.0, 0.3], [0.5, 0.0, 0.3]]</td><td>[0.08]</td></tr>\n",
"\n",
"<tr><td>example_timeline</td><td>2025-11-06T21:17:24.303855616</td><td>0</td><td>2025-11-06T21:17:24.348429</td><td>3</td><td>1</td><td>0</td><td>0</td><td>null</td><td>null</td><td>null</td><td>[4284769535]</td><td>[[-0.49927434, -0.036054105, 0.29962507], [-0.0028700293, 0.023802, 0.29962507], [0.4935343, 0.0836…</td><td>[0.08]</td></tr>\n",
"\n",
"<tr><td>example_timeline</td><td>2025-11-06T21:17:24.403855872</td><td>0</td><td>2025-11-06T21:17:24.348476</td><td>4</td><td>2</td><td>0</td><td>1</td><td>null</td><td>null</td><td>null</td><td>[4284769535]</td><td>[[-0.4970301, -0.07242577, 0.29850125], [-0.011361107, 0.046425547, 0.29850125], [0.4743079, 0.1652…</td><td>[0.08]</td></tr>\n",
"\n",
"<tr><td>example_timeline</td><td>2025-11-06T21:17:24.503855616</td><td>0</td><td>2025-11-06T21:17:24.348518</td><td>5</td><td>3</td><td>0</td><td>2</td><td>null</td><td>null</td><td>null</td><td>[4284769535]</td><td>[[-0.49306935, -0.109397575, 0.29663134], [-0.025120953, 0.06673954, 0.29663134], [0.44282746, 0.24…</td><td>[0.08]</td></tr>\n",
"\n",
"<tr><td>example_timeline</td><td>2025-11-06T21:17:24.603855872</td><td>0</td><td>2025-11-06T21:17:24.348558</td><td>6</td><td>4</td><td>0</td><td>3</td><td>null</td><td>null</td><td>null</td><td>[4284769535]</td><td>[[-0.48707554, -0.14718391, 0.29401997], [-0.043578085, 0.083705686, 0.29401997], [0.39991936, 0.31…</td><td>[0.08]</td></tr>\n",
"\n",
"<tr><td>example_timeline</td><td>2025-11-06T21:17:24.703855872</td><td>0</td><td>2025-11-06T21:17:24.348635</td><td>8</td><td>5</td><td>1</td><td>4</td><td>[1694459135]</td><td>[[1.910673, 0.59104043, 0.5596008]]</td><td>[0.12]</td><td>[4284769535]</td><td>[[-0.47863245, -0.18590099, 0.29067373], [-0.06596464, 0.09642025, 0.29067373], [0.34670317, 0.3787…</td><td>[0.08]</td></tr>\n",
"\n",
"<tr><td>example_timeline</td><td>2025-11-06T21:17:24.803855616</td><td>0</td><td>2025-11-06T21:17:24.348671</td><td>9</td><td>6</td><td>1</td><td>5</td><td>null</td><td>null</td><td>null</td><td>[4284769535]</td><td>[[-0.4672499, -0.22554186, 0.28660095], [-0.09134703, 0.10415047, 0.28660095], [0.28455582, 0.43384…</td><td>[0.08]</td></tr>\n",
"\n",
"<tr><td>example_timeline</td><td>2025-11-06T21:17:24.903855872</td><td>0</td><td>2025-11-06T21:17:24.348710</td><td>10</td><td>7</td><td>1</td><td>6</td><td>null</td><td>null</td><td>null</td><td>[4284769535]</td><td>[[-0.45239466, -0.26595744, 0.2818118], [-0.118663244, 0.10636411, 0.2818118], [0.21506816, 0.47868…</td><td>[0.08]</td></tr>\n",
"\n",
"<tr><td>example_timeline</td><td>2025-11-06T21:17:25.003855616</td><td>0</td><td>2025-11-06T21:17:24.348748</td><td>11</td><td>8</td><td>1</td><td>7</td><td>null</td><td>null</td><td>null</td><td>[4284769535]</td><td>[[-0.43352523, -0.30684474, 0.2763183], [-0.14676525, 0.102751054, 0.2763183], [0.13999476, 0.51234…</td><td>[0.08]</td></tr>\n",
"\n",
"<tr><td>example_timeline</td><td>2025-11-06T21:17:25.103855872</td><td>0</td><td>2025-11-06T21:17:24.348783</td><td>12</td><td>9</td><td>1</td><td>8</td><td>null</td><td>null</td><td>null</td><td>[4284769535]</td><td>[[-0.410129, -0.3477429, 0.27013412], [-0.17446484, 0.09323601, 0.27013412], [0.061199345, 0.534214…</td><td>[0.08]</td></tr>\n",
"\n",
"</tbody>\n",
"\n",
" </table>\n",
" </div>\n",
" \n",
"<div>Data truncated due to size.</div>"
],
"text/plain": [
"┌────────────────────┬───────────────────────────────┬───────────────────────────┬────────────────────────────┬──────────────────────┬──────────────────────┬──────────────────────┬───────────────────┬─────────────────────────────────────┬────────────────────────────────────────────┬────────────────────────────────────┬────────────────────────────────────────┬──────────────────────────────────────────────────────────────────────────────────────────────────────┬───────────────────────────────────────┐\n",
"│ rerun_partition_id ┆ simulation_time ┆ obstacle_time ┆ log_time ┆ log_tick ┆ imu_time ┆ gps_time ┆ frame ┆ /drone/gps_position:Points3D:colors ┆ /drone/gps_position:Points3D:positions ┆ /drone/gps_position:Points3D:radii ┆ /drone/imu_orientation:Points3D:colors ┆ /drone/imu_orientation:Points3D:positions ┆ /drone/imu_orientation:Points3D:radii │\n",
"│ --- ┆ --- ┆ --- ┆ --- ┆ --- ┆ --- ┆ --- ┆ --- ┆ --- ┆ --- ┆ --- ┆ --- ┆ --- ┆ --- │\n",
"│ type: Utf8 ┆ type: Timestamp(ns) ┆ type: i64 ┆ type: Timestamp(ns) ┆ type: i64 ┆ type: i64 ┆ type: i64 ┆ type: i64 ┆ type: List[nullable u32] ┆ type: List[nullable FixedSizeList[f32; 3]] ┆ type: List[nullable f32] ┆ type: List[nullable u32] ┆ type: List[nullable FixedSizeList[f32; 3]] ┆ type: List[nullable f32] │\n",
"│ ┆ index_name: simulation_time ┆ index_name: obstacle_time ┆ index_name: log_time ┆ index_name: log_tick ┆ index_name: imu_time ┆ index_name: gps_time ┆ index_name: frame ┆ archetype: Points3D ┆ archetype: Points3D ┆ archetype: Points3D ┆ archetype: Points3D ┆ archetype: Points3D ┆ archetype: Points3D │\n",
"│ ┆ kind: index ┆ kind: index ┆ kind: index ┆ kind: index ┆ kind: index ┆ kind: index ┆ kind: index ┆ component: Points3D:colors ┆ component: Points3D:positions ┆ component: Points3D:radii ┆ component: Points3D:colors ┆ component: Points3D:positions ┆ component: Points3D:radii │\n",
"│ ┆ ┆ ┆ ┆ ┆ ┆ ┆ ┆ component_type: Color ┆ component_type: Position3D ┆ component_type: Radius ┆ component_type: Color ┆ component_type: Position3D ┆ component_type: Radius │\n",
"│ ┆ ┆ ┆ ┆ ┆ ┆ ┆ ┆ entity_path: /drone/gps_position ┆ entity_path: /drone/gps_position ┆ entity_path: /drone/gps_position ┆ entity_path: /drone/imu_orientation ┆ entity_path: /drone/imu_orientation ┆ entity_path: /drone/imu_orientation │\n",
"│ ┆ ┆ ┆ ┆ ┆ ┆ ┆ ┆ kind: data ┆ kind: data ┆ kind: data ┆ kind: data ┆ kind: data ┆ kind: data │\n",
"╞════════════════════╪═══════════════════════════════╪═══════════════════════════╪════════════════════════════╪══════════════════════╪══════════════════════╪══════════════════════╪═══════════════════╪═════════════════════════════════════╪════════════════════════════════════════════╪════════════════════════════════════╪════════════════════════════════════════╪══════════════════════════════════════════════════════════════════════════════════════════════════════╪═══════════════════════════════════════╡\n",
"│ example_timeline ┆ 2025-11-06T21:17:24.203855872 ┆ null ┆ 2025-11-06T21:17:24.348310 ┆ 1 ┆ 0 ┆ 0 ┆ null ┆ [1694459135] ┆ [[2.0, 0.0, 0.5]] ┆ [0.12] ┆ [4284769535] ┆ [[-0.5, 0.0, 0.3], [0.0, 0.0, 0.3], [0.5, 0.0, 0.3]] ┆ [0.08] │\n",
"├╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┤\n",
"│ example_timeline ┆ 2025-11-06T21:17:24.303855616 ┆ 0 ┆ 2025-11-06T21:17:24.348429 ┆ 3 ┆ 1 ┆ 0 ┆ 0 ┆ null ┆ null ┆ null ┆ [4284769535] ┆ [[-0.49927434, -0.036054105, 0.29962507], [-0.0028700293, 0.023802, 0.29962507], [0.4935343, 0.0836… ┆ [0.08] │\n",
"├╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┤\n",
"│ example_timeline ┆ 2025-11-06T21:17:24.403855872 ┆ 0 ┆ 2025-11-06T21:17:24.348476 ┆ 4 ┆ 2 ┆ 0 ┆ 1 ┆ null ┆ null ┆ null ┆ [4284769535] ┆ [[-0.4970301, -0.07242577, 0.29850125], [-0.011361107, 0.046425547, 0.29850125], [0.4743079, 0.1652… ┆ [0.08] │\n",
"├╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┤\n",
"│ example_timeline ┆ 2025-11-06T21:17:24.503855616 ┆ 0 ┆ 2025-11-06T21:17:24.348518 ┆ 5 ┆ 3 ┆ 0 ┆ 2 ┆ null ┆ null ┆ null ┆ [4284769535] ┆ [[-0.49306935, -0.109397575, 0.29663134], [-0.025120953, 0.06673954, 0.29663134], [0.44282746, 0.24… ┆ [0.08] │\n",
"├╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┤\n",
"│ example_timeline ┆ 2025-11-06T21:17:24.603855872 ┆ 0 ┆ 2025-11-06T21:17:24.348558 ┆ 6 ┆ 4 ┆ 0 ┆ 3 ┆ null ┆ null ┆ null ┆ [4284769535] ┆ [[-0.48707554, -0.14718391, 0.29401997], [-0.043578085, 0.083705686, 0.29401997], [0.39991936, 0.31… ┆ [0.08] │\n",
"├╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┤\n",
"│ example_timeline ┆ 2025-11-06T21:17:24.703855872 ┆ 0 ┆ 2025-11-06T21:17:24.348635 ┆ 8 ┆ 5 ┆ 1 ┆ 4 ┆ [1694459135] ┆ [[1.910673, 0.59104043, 0.5596008]] ┆ [0.12] ┆ [4284769535] ┆ [[-0.47863245, -0.18590099, 0.29067373], [-0.06596464, 0.09642025, 0.29067373], [0.34670317, 0.3787… ┆ [0.08] │\n",
"├╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┤\n",
"│ example_timeline ┆ 2025-11-06T21:17:24.803855616 ┆ 0 ┆ 2025-11-06T21:17:24.348671 ┆ 9 ┆ 6 ┆ 1 ┆ 5 ┆ null ┆ null ┆ null ┆ [4284769535] ┆ [[-0.4672499, -0.22554186, 0.28660095], [-0.09134703, 0.10415047, 0.28660095], [0.28455582, 0.43384… ┆ [0.08] │\n",
"├╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┤\n",
"│ example_timeline ┆ 2025-11-06T21:17:24.903855872 ┆ 0 ┆ 2025-11-06T21:17:24.348710 ┆ 10 ┆ 7 ┆ 1 ┆ 6 ┆ null ┆ null ┆ null ┆ [4284769535] ┆ [[-0.45239466, -0.26595744, 0.2818118], [-0.118663244, 0.10636411, 0.2818118], [0.21506816, 0.47868… ┆ [0.08] │\n",
"├╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┤\n",
"│ example_timeline ┆ 2025-11-06T21:17:25.003855616 ┆ 0 ┆ 2025-11-06T21:17:24.348748 ┆ 11 ┆ 8 ┆ 1 ┆ 7 ┆ null ┆ null ┆ null ┆ [4284769535] ┆ [[-0.43352523, -0.30684474, 0.2763183], [-0.14676525, 0.102751054, 0.2763183], [0.13999476, 0.51234… ┆ [0.08] │\n",
"├╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┤\n",
"│ example_timeline ┆ 2025-11-06T21:17:25.103855872 ┆ 0 ┆ 2025-11-06T21:17:24.348783 ┆ 12 ┆ 9 ┆ 1 ┆ 8 ┆ null ┆ null ┆ null ┆ [4284769535] ┆ [[-0.410129, -0.3477429, 0.27013412], [-0.17446484, 0.09323601, 0.27013412], [0.061199345, 0.534214… ┆ [0.08] │\n",
"└────────────────────┴───────────────────────────────┴───────────────────────────┴────────────────────────────┴──────────────────────┴──────────────────────┴──────────────────────┴───────────────────┴─────────────────────────────────────┴────────────────────────────────────────────┴────────────────────────────────────┴────────────────────────────────────────┴──────────────────────────────────────────────────────────────────────────────────────────────────────┴───────────────────────────────────────┘\n",
"Data truncated due to size."
]
},
"execution_count": 72,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"dataset.dataframe_query_view(index=\"imu_time\", contents=\"/drone/**\").df()"
]
},
{
"cell_type": "code",
"execution_count": 30,
"id": "23558d7a-4def-414f-8f1e-84354c68765a",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"/drone/imu_orientation:Points3D:positions\n"
]
}
],
"source": [
"drone_imu_view = dataset.dataframe_query_view(index=\"imu_time\", contents=\"/**\")\\\n",
" .fill_latest_at().df()\\\n",
" .unnest_columns(kc(\"drone imu positions\"))"
]
},
{
"cell_type": "code",
"execution_count": 31,
"id": "3610e6e0-fba2-4ee4-9651-7df62f310349",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>rerun_partition_id</th>\n",
" <th>simulation_time</th>\n",
" <th>obstacle_time</th>\n",
" <th>log_time</th>\n",
" <th>log_tick</th>\n",
" <th>imu_time</th>\n",
" <th>gps_time</th>\n",
" <th>frame</th>\n",
" <th>/drone/gps_position:Points3D:colors</th>\n",
" <th>/drone/gps_position:Points3D:positions</th>\n",
" <th>/drone/gps_position:Points3D:radii</th>\n",
" <th>/drone/imu_orientation:Points3D:colors</th>\n",
" <th>/drone/imu_orientation:Points3D:positions</th>\n",
" <th>/drone/imu_orientation:Points3D:radii</th>\n",
" <th>/environment/detected_obstacles:Points3D:colors</th>\n",
" <th>/environment/detected_obstacles:Points3D:positions</th>\n",
" <th>/environment/detected_obstacles:Points3D:radii</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>example_timeline</td>\n",
" <td>2025-11-06 21:17:24.203855872</td>\n",
" <td>0</td>\n",
" <td>2025-11-06 21:17:24.348369</td>\n",
" <td>2</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>NaN</td>\n",
" <td>[1694459135]</td>\n",
" <td>[[2.0, 0.0, 0.5]]</td>\n",
" <td>[0.12]</td>\n",
" <td>[4284769535]</td>\n",
" <td>[-0.5, 0.0, 0.3]</td>\n",
" <td>[0.08]</td>\n",
" <td>[4288033535, 4288033535, 4288033535]</td>\n",
" <td>[[3.0, 0.0, 0.2], [-1.7669613, 3.0212328, 0.5]...</td>\n",
" <td>[0.15]</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>example_timeline</td>\n",
" <td>2025-11-06 21:17:24.203855872</td>\n",
" <td>0</td>\n",
" <td>2025-11-06 21:17:24.348369</td>\n",
" <td>2</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>NaN</td>\n",
" <td>[1694459135]</td>\n",
" <td>[[2.0, 0.0, 0.5]]</td>\n",
" <td>[0.12]</td>\n",
" <td>[4284769535]</td>\n",
" <td>[0.0, 0.0, 0.3]</td>\n",
" <td>[0.08]</td>\n",
" <td>[4288033535, 4288033535, 4288033535]</td>\n",
" <td>[[3.0, 0.0, 0.2], [-1.7669613, 3.0212328, 0.5]...</td>\n",
" <td>[0.15]</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>example_timeline</td>\n",
" <td>2025-11-06 21:17:24.203855872</td>\n",
" <td>0</td>\n",
" <td>2025-11-06 21:17:24.348369</td>\n",
" <td>2</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>NaN</td>\n",
" <td>[1694459135]</td>\n",
" <td>[[2.0, 0.0, 0.5]]</td>\n",
" <td>[0.12]</td>\n",
" <td>[4284769535]</td>\n",
" <td>[0.5, 0.0, 0.3]</td>\n",
" <td>[0.08]</td>\n",
" <td>[4288033535, 4288033535, 4288033535]</td>\n",
" <td>[[3.0, 0.0, 0.2], [-1.7669613, 3.0212328, 0.5]...</td>\n",
" <td>[0.15]</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>example_timeline</td>\n",
" <td>2025-11-06 21:17:24.303855616</td>\n",
" <td>0</td>\n",
" <td>2025-11-06 21:17:24.348429</td>\n",
" <td>3</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0.0</td>\n",
" <td>[1694459135]</td>\n",
" <td>[[2.0, 0.0, 0.5]]</td>\n",
" <td>[0.12]</td>\n",
" <td>[4284769535]</td>\n",
" <td>[-0.49927434, -0.036054105, 0.29962507]</td>\n",
" <td>[0.08]</td>\n",
" <td>[4288033535, 4288033535, 4288033535]</td>\n",
" <td>[[3.0, 0.0, 0.2], [-1.7669613, 3.0212328, 0.5]...</td>\n",
" <td>[0.15]</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>example_timeline</td>\n",
" <td>2025-11-06 21:17:24.303855616</td>\n",
" <td>0</td>\n",
" <td>2025-11-06 21:17:24.348429</td>\n",
" <td>3</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0.0</td>\n",
" <td>[1694459135]</td>\n",
" <td>[[2.0, 0.0, 0.5]]</td>\n",
" <td>[0.12]</td>\n",
" <td>[4284769535]</td>\n",
" <td>[-0.0028700293, 0.023802, 0.29962507]</td>\n",
" <td>[0.08]</td>\n",
" <td>[4288033535, 4288033535, 4288033535]</td>\n",
" <td>[[3.0, 0.0, 0.2], [-1.7669613, 3.0212328, 0.5]...</td>\n",
" <td>[0.15]</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" rerun_partition_id simulation_time obstacle_time \\\n",
"0 example_timeline 2025-11-06 21:17:24.203855872 0 \n",
"1 example_timeline 2025-11-06 21:17:24.203855872 0 \n",
"2 example_timeline 2025-11-06 21:17:24.203855872 0 \n",
"3 example_timeline 2025-11-06 21:17:24.303855616 0 \n",
"4 example_timeline 2025-11-06 21:17:24.303855616 0 \n",
"\n",
" log_time log_tick imu_time gps_time frame \\\n",
"0 2025-11-06 21:17:24.348369 2 0 0 NaN \n",
"1 2025-11-06 21:17:24.348369 2 0 0 NaN \n",
"2 2025-11-06 21:17:24.348369 2 0 0 NaN \n",
"3 2025-11-06 21:17:24.348429 3 1 0 0.0 \n",
"4 2025-11-06 21:17:24.348429 3 1 0 0.0 \n",
"\n",
" /drone/gps_position:Points3D:colors /drone/gps_position:Points3D:positions \\\n",
"0 [1694459135] [[2.0, 0.0, 0.5]] \n",
"1 [1694459135] [[2.0, 0.0, 0.5]] \n",
"2 [1694459135] [[2.0, 0.0, 0.5]] \n",
"3 [1694459135] [[2.0, 0.0, 0.5]] \n",
"4 [1694459135] [[2.0, 0.0, 0.5]] \n",
"\n",
" /drone/gps_position:Points3D:radii /drone/imu_orientation:Points3D:colors \\\n",
"0 [0.12] [4284769535] \n",
"1 [0.12] [4284769535] \n",
"2 [0.12] [4284769535] \n",
"3 [0.12] [4284769535] \n",
"4 [0.12] [4284769535] \n",
"\n",
" /drone/imu_orientation:Points3D:positions \\\n",
"0 [-0.5, 0.0, 0.3] \n",
"1 [0.0, 0.0, 0.3] \n",
"2 [0.5, 0.0, 0.3] \n",
"3 [-0.49927434, -0.036054105, 0.29962507] \n",
"4 [-0.0028700293, 0.023802, 0.29962507] \n",
"\n",
" /drone/imu_orientation:Points3D:radii \\\n",
"0 [0.08] \n",
"1 [0.08] \n",
"2 [0.08] \n",
"3 [0.08] \n",
"4 [0.08] \n",
"\n",
" /environment/detected_obstacles:Points3D:colors \\\n",
"0 [4288033535, 4288033535, 4288033535] \n",
"1 [4288033535, 4288033535, 4288033535] \n",
"2 [4288033535, 4288033535, 4288033535] \n",
"3 [4288033535, 4288033535, 4288033535] \n",
"4 [4288033535, 4288033535, 4288033535] \n",
"\n",
" /environment/detected_obstacles:Points3D:positions \\\n",
"0 [[3.0, 0.0, 0.2], [-1.7669613, 3.0212328, 0.5]... \n",
"1 [[3.0, 0.0, 0.2], [-1.7669613, 3.0212328, 0.5]... \n",
"2 [[3.0, 0.0, 0.2], [-1.7669613, 3.0212328, 0.5]... \n",
"3 [[3.0, 0.0, 0.2], [-1.7669613, 3.0212328, 0.5]... \n",
"4 [[3.0, 0.0, 0.2], [-1.7669613, 3.0212328, 0.5]... \n",
"\n",
" /environment/detected_obstacles:Points3D:radii \n",
"0 [0.15] \n",
"1 [0.15] \n",
"2 [0.15] \n",
"3 [0.15] \n",
"4 [0.15] "
]
},
"execution_count": 31,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"drone_imu_view.head().to_pandas()"
]
},
{
"cell_type": "code",
"execution_count": 32,
"id": "4af8c786-3fa0-42a7-aaed-f478a08086d3",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"/environment/detected_obstacles:Points3D:positions\n",
"/drone/imu_orientation:Points3D:positions\n"
]
},
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>rerun_partition_id</th>\n",
" <th>simulation_time</th>\n",
" <th>obstacle_time</th>\n",
" <th>log_time</th>\n",
" <th>log_tick</th>\n",
" <th>imu_time</th>\n",
" <th>gps_time</th>\n",
" <th>frame</th>\n",
" <th>/drone/gps_position:Points3D:colors</th>\n",
" <th>/drone/gps_position:Points3D:positions</th>\n",
" <th>/drone/gps_position:Points3D:radii</th>\n",
" <th>/drone/imu_orientation:Points3D:colors</th>\n",
" <th>/drone/imu_orientation:Points3D:positions</th>\n",
" <th>/drone/imu_orientation:Points3D:radii</th>\n",
" <th>/environment/detected_obstacles:Points3D:colors</th>\n",
" <th>/environment/detected_obstacles:Points3D:positions</th>\n",
" <th>/environment/detected_obstacles:Points3D:radii</th>\n",
" <th>num_obstacles</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>example_timeline</td>\n",
" <td>2025-11-06 21:17:24.203855872</td>\n",
" <td>0</td>\n",
" <td>2025-11-06 21:17:24.348369</td>\n",
" <td>2</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>NaN</td>\n",
" <td>[1694459135]</td>\n",
" <td>[[2.0, 0.0, 0.5]]</td>\n",
" <td>[0.12]</td>\n",
" <td>[4284769535]</td>\n",
" <td>[-0.5, 0.0, 0.3]</td>\n",
" <td>[0.08]</td>\n",
" <td>[4288033535, 4288033535, 4288033535]</td>\n",
" <td>[[3.0, 0.0, 0.2], [-1.7669613, 3.0212328, 0.5]...</td>\n",
" <td>[0.15]</td>\n",
" <td>3</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>example_timeline</td>\n",
" <td>2025-11-06 21:17:24.303855616</td>\n",
" <td>0</td>\n",
" <td>2025-11-06 21:17:24.348429</td>\n",
" <td>3</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0.0</td>\n",
" <td>[1694459135]</td>\n",
" <td>[[2.0, 0.0, 0.5]]</td>\n",
" <td>[0.12]</td>\n",
" <td>[4284769535]</td>\n",
" <td>[-0.49927434, -0.036054105, 0.29962507]</td>\n",
" <td>[0.08]</td>\n",
" <td>[4288033535, 4288033535, 4288033535]</td>\n",
" <td>[[3.0, 0.0, 0.2], [-1.7669613, 3.0212328, 0.5]...</td>\n",
" <td>[0.15]</td>\n",
" <td>3</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>example_timeline</td>\n",
" <td>2025-11-06 21:17:24.303855616</td>\n",
" <td>0</td>\n",
" <td>2025-11-06 21:17:24.348429</td>\n",
" <td>3</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0.0</td>\n",
" <td>[1694459135]</td>\n",
" <td>[[2.0, 0.0, 0.5]]</td>\n",
" <td>[0.12]</td>\n",
" <td>[4284769535]</td>\n",
" <td>[-0.0028700293, 0.023802, 0.29962507]</td>\n",
" <td>[0.08]</td>\n",
" <td>[4288033535, 4288033535, 4288033535]</td>\n",
" <td>[[3.0, 0.0, 0.2], [-1.7669613, 3.0212328, 0.5]...</td>\n",
" <td>[0.15]</td>\n",
" <td>3</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>example_timeline</td>\n",
" <td>2025-11-06 21:17:24.403855872</td>\n",
" <td>0</td>\n",
" <td>2025-11-06 21:17:24.348476</td>\n",
" <td>4</td>\n",
" <td>2</td>\n",
" <td>0</td>\n",
" <td>1.0</td>\n",
" <td>[1694459135]</td>\n",
" <td>[[2.0, 0.0, 0.5]]</td>\n",
" <td>[0.12]</td>\n",
" <td>[4284769535]</td>\n",
" <td>[-0.4970301, -0.07242577, 0.29850125]</td>\n",
" <td>[0.08]</td>\n",
" <td>[4288033535, 4288033535, 4288033535]</td>\n",
" <td>[[3.0, 0.0, 0.2], [-1.7669613, 3.0212328, 0.5]...</td>\n",
" <td>[0.15]</td>\n",
" <td>3</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>example_timeline</td>\n",
" <td>2025-11-06 21:17:24.403855872</td>\n",
" <td>0</td>\n",
" <td>2025-11-06 21:17:24.348476</td>\n",
" <td>4</td>\n",
" <td>2</td>\n",
" <td>0</td>\n",
" <td>1.0</td>\n",
" <td>[1694459135]</td>\n",
" <td>[[2.0, 0.0, 0.5]]</td>\n",
" <td>[0.12]</td>\n",
" <td>[4284769535]</td>\n",
" <td>[-0.011361107, 0.046425547, 0.29850125]</td>\n",
" <td>[0.08]</td>\n",
" <td>[4288033535, 4288033535, 4288033535]</td>\n",
" <td>[[3.0, 0.0, 0.2], [-1.7669613, 3.0212328, 0.5]...</td>\n",
" <td>[0.15]</td>\n",
" <td>3</td>\n",
" </tr>\n",
" <tr>\n",
" <th>...</th>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>102</th>\n",
" <td>example_timeline</td>\n",
" <td>2025-11-06 21:17:29.703855872</td>\n",
" <td>5</td>\n",
" <td>2025-11-06 21:17:24.350747</td>\n",
" <td>73</td>\n",
" <td>55</td>\n",
" <td>11</td>\n",
" <td>54.0</td>\n",
" <td>[1694459135]</td>\n",
" <td>[[-1.9749595, -0.31549138, 0.74254894]]</td>\n",
" <td>[0.12]</td>\n",
" <td>[4284769535]</td>\n",
" <td>[-0.38617727, -0.42704368, -0.2772907]</td>\n",
" <td>[0.08]</td>\n",
" <td>[4288033535, 4288033535, 4288033535]</td>\n",
" <td>[[-1.2484405, 2.7278924, 0.2], [-2.0118837, -2...</td>\n",
" <td>[0.15]</td>\n",
" <td>3</td>\n",
" </tr>\n",
" <tr>\n",
" <th>103</th>\n",
" <td>example_timeline</td>\n",
" <td>2025-11-06 21:17:29.803855616</td>\n",
" <td>5</td>\n",
" <td>2025-11-06 21:17:24.350775</td>\n",
" <td>74</td>\n",
" <td>56</td>\n",
" <td>11</td>\n",
" <td>55.0</td>\n",
" <td>[1694459135]</td>\n",
" <td>[[-1.9749595, -0.31549138, 0.74254894]]</td>\n",
" <td>[0.12]</td>\n",
" <td>[4284769535]</td>\n",
" <td>[-0.32954693, -0.47605175, -0.2826667]</td>\n",
" <td>[0.08]</td>\n",
" <td>[4288033535, 4288033535, 4288033535]</td>\n",
" <td>[[-1.2484405, 2.7278924, 0.2], [-2.0118837, -2...</td>\n",
" <td>[0.15]</td>\n",
" <td>3</td>\n",
" </tr>\n",
" <tr>\n",
" <th>104</th>\n",
" <td>example_timeline</td>\n",
" <td>2025-11-06 21:17:29.903855872</td>\n",
" <td>5</td>\n",
" <td>2025-11-06 21:17:24.350807</td>\n",
" <td>75</td>\n",
" <td>57</td>\n",
" <td>11</td>\n",
" <td>56.0</td>\n",
" <td>[1694459135]</td>\n",
" <td>[[-1.9749595, -0.31549138, 0.74254894]]</td>\n",
" <td>[0.12]</td>\n",
" <td>[4284769535]</td>\n",
" <td>[-0.26776332, -0.51597375, -0.28733617]</td>\n",
" <td>[0.08]</td>\n",
" <td>[4288033535, 4288033535, 4288033535]</td>\n",
" <td>[[-1.2484405, 2.7278924, 0.2], [-2.0118837, -2...</td>\n",
" <td>[0.15]</td>\n",
" <td>3</td>\n",
" </tr>\n",
" <tr>\n",
" <th>105</th>\n",
" <td>example_timeline</td>\n",
" <td>2025-11-06 21:17:30.003855616</td>\n",
" <td>5</td>\n",
" <td>2025-11-06 21:17:24.350839</td>\n",
" <td>76</td>\n",
" <td>58</td>\n",
" <td>11</td>\n",
" <td>57.0</td>\n",
" <td>[1694459135]</td>\n",
" <td>[[-1.9749595, -0.31549138, 0.74254894]]</td>\n",
" <td>[0.12]</td>\n",
" <td>[4284769535]</td>\n",
" <td>[-0.20238401, -0.5464155, -0.29128745]</td>\n",
" <td>[0.08]</td>\n",
" <td>[4288033535, 4288033535, 4288033535]</td>\n",
" <td>[[-1.2484405, 2.7278924, 0.2], [-2.0118837, -2...</td>\n",
" <td>[0.15]</td>\n",
" <td>3</td>\n",
" </tr>\n",
" <tr>\n",
" <th>106</th>\n",
" <td>example_timeline</td>\n",
" <td>2025-11-06 21:17:30.103855872</td>\n",
" <td>5</td>\n",
" <td>2025-11-06 21:17:24.350872</td>\n",
" <td>77</td>\n",
" <td>59</td>\n",
" <td>11</td>\n",
" <td>58.0</td>\n",
" <td>[1694459135]</td>\n",
" <td>[[-1.9749595, -0.31549138, 0.74254894]]</td>\n",
" <td>[0.12]</td>\n",
" <td>[4284769535]</td>\n",
" <td>[-0.13496032, -0.567257, -0.29451066]</td>\n",
" <td>[0.08]</td>\n",
" <td>[4288033535, 4288033535, 4288033535]</td>\n",
" <td>[[-1.2484405, 2.7278924, 0.2], [-2.0118837, -2...</td>\n",
" <td>[0.15]</td>\n",
" <td>3</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>107 rows × 18 columns</p>\n",
"</div>"
],
"text/plain": [
" rerun_partition_id simulation_time obstacle_time \\\n",
"0 example_timeline 2025-11-06 21:17:24.203855872 0 \n",
"1 example_timeline 2025-11-06 21:17:24.303855616 0 \n",
"2 example_timeline 2025-11-06 21:17:24.303855616 0 \n",
"3 example_timeline 2025-11-06 21:17:24.403855872 0 \n",
"4 example_timeline 2025-11-06 21:17:24.403855872 0 \n",
".. ... ... ... \n",
"102 example_timeline 2025-11-06 21:17:29.703855872 5 \n",
"103 example_timeline 2025-11-06 21:17:29.803855616 5 \n",
"104 example_timeline 2025-11-06 21:17:29.903855872 5 \n",
"105 example_timeline 2025-11-06 21:17:30.003855616 5 \n",
"106 example_timeline 2025-11-06 21:17:30.103855872 5 \n",
"\n",
" log_time log_tick imu_time gps_time frame \\\n",
"0 2025-11-06 21:17:24.348369 2 0 0 NaN \n",
"1 2025-11-06 21:17:24.348429 3 1 0 0.0 \n",
"2 2025-11-06 21:17:24.348429 3 1 0 0.0 \n",
"3 2025-11-06 21:17:24.348476 4 2 0 1.0 \n",
"4 2025-11-06 21:17:24.348476 4 2 0 1.0 \n",
".. ... ... ... ... ... \n",
"102 2025-11-06 21:17:24.350747 73 55 11 54.0 \n",
"103 2025-11-06 21:17:24.350775 74 56 11 55.0 \n",
"104 2025-11-06 21:17:24.350807 75 57 11 56.0 \n",
"105 2025-11-06 21:17:24.350839 76 58 11 57.0 \n",
"106 2025-11-06 21:17:24.350872 77 59 11 58.0 \n",
"\n",
" /drone/gps_position:Points3D:colors \\\n",
"0 [1694459135] \n",
"1 [1694459135] \n",
"2 [1694459135] \n",
"3 [1694459135] \n",
"4 [1694459135] \n",
".. ... \n",
"102 [1694459135] \n",
"103 [1694459135] \n",
"104 [1694459135] \n",
"105 [1694459135] \n",
"106 [1694459135] \n",
"\n",
" /drone/gps_position:Points3D:positions \\\n",
"0 [[2.0, 0.0, 0.5]] \n",
"1 [[2.0, 0.0, 0.5]] \n",
"2 [[2.0, 0.0, 0.5]] \n",
"3 [[2.0, 0.0, 0.5]] \n",
"4 [[2.0, 0.0, 0.5]] \n",
".. ... \n",
"102 [[-1.9749595, -0.31549138, 0.74254894]] \n",
"103 [[-1.9749595, -0.31549138, 0.74254894]] \n",
"104 [[-1.9749595, -0.31549138, 0.74254894]] \n",
"105 [[-1.9749595, -0.31549138, 0.74254894]] \n",
"106 [[-1.9749595, -0.31549138, 0.74254894]] \n",
"\n",
" /drone/gps_position:Points3D:radii /drone/imu_orientation:Points3D:colors \\\n",
"0 [0.12] [4284769535] \n",
"1 [0.12] [4284769535] \n",
"2 [0.12] [4284769535] \n",
"3 [0.12] [4284769535] \n",
"4 [0.12] [4284769535] \n",
".. ... ... \n",
"102 [0.12] [4284769535] \n",
"103 [0.12] [4284769535] \n",
"104 [0.12] [4284769535] \n",
"105 [0.12] [4284769535] \n",
"106 [0.12] [4284769535] \n",
"\n",
" /drone/imu_orientation:Points3D:positions \\\n",
"0 [-0.5, 0.0, 0.3] \n",
"1 [-0.49927434, -0.036054105, 0.29962507] \n",
"2 [-0.0028700293, 0.023802, 0.29962507] \n",
"3 [-0.4970301, -0.07242577, 0.29850125] \n",
"4 [-0.011361107, 0.046425547, 0.29850125] \n",
".. ... \n",
"102 [-0.38617727, -0.42704368, -0.2772907] \n",
"103 [-0.32954693, -0.47605175, -0.2826667] \n",
"104 [-0.26776332, -0.51597375, -0.28733617] \n",
"105 [-0.20238401, -0.5464155, -0.29128745] \n",
"106 [-0.13496032, -0.567257, -0.29451066] \n",
"\n",
" /drone/imu_orientation:Points3D:radii \\\n",
"0 [0.08] \n",
"1 [0.08] \n",
"2 [0.08] \n",
"3 [0.08] \n",
"4 [0.08] \n",
".. ... \n",
"102 [0.08] \n",
"103 [0.08] \n",
"104 [0.08] \n",
"105 [0.08] \n",
"106 [0.08] \n",
"\n",
" /environment/detected_obstacles:Points3D:colors \\\n",
"0 [4288033535, 4288033535, 4288033535] \n",
"1 [4288033535, 4288033535, 4288033535] \n",
"2 [4288033535, 4288033535, 4288033535] \n",
"3 [4288033535, 4288033535, 4288033535] \n",
"4 [4288033535, 4288033535, 4288033535] \n",
".. ... \n",
"102 [4288033535, 4288033535, 4288033535] \n",
"103 [4288033535, 4288033535, 4288033535] \n",
"104 [4288033535, 4288033535, 4288033535] \n",
"105 [4288033535, 4288033535, 4288033535] \n",
"106 [4288033535, 4288033535, 4288033535] \n",
"\n",
" /environment/detected_obstacles:Points3D:positions \\\n",
"0 [[3.0, 0.0, 0.2], [-1.7669613, 3.0212328, 0.5]... \n",
"1 [[3.0, 0.0, 0.2], [-1.7669613, 3.0212328, 0.5]... \n",
"2 [[3.0, 0.0, 0.2], [-1.7669613, 3.0212328, 0.5]... \n",
"3 [[3.0, 0.0, 0.2], [-1.7669613, 3.0212328, 0.5]... \n",
"4 [[3.0, 0.0, 0.2], [-1.7669613, 3.0212328, 0.5]... \n",
".. ... \n",
"102 [[-1.2484405, 2.7278924, 0.2], [-2.0118837, -2... \n",
"103 [[-1.2484405, 2.7278924, 0.2], [-2.0118837, -2... \n",
"104 [[-1.2484405, 2.7278924, 0.2], [-2.0118837, -2... \n",
"105 [[-1.2484405, 2.7278924, 0.2], [-2.0118837, -2... \n",
"106 [[-1.2484405, 2.7278924, 0.2], [-2.0118837, -2... \n",
"\n",
" /environment/detected_obstacles:Points3D:radii num_obstacles \n",
"0 [0.15] 3 \n",
"1 [0.15] 3 \n",
"2 [0.15] 3 \n",
"3 [0.15] 3 \n",
"4 [0.15] 3 \n",
".. ... ... \n",
"102 [0.15] 3 \n",
"103 [0.15] 3 \n",
"104 [0.15] 3 \n",
"105 [0.15] 3 \n",
"106 [0.15] 3 \n",
"\n",
"[107 rows x 18 columns]"
]
},
"execution_count": 32,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"drone_imu_view.with_column(\"num_obstacles\", f.array_length(kc(\"obstacles position\",as_col=True)[0]))\\\n",
" .filter(c('num_obstacles') > l(1))\\\n",
" .filter(kc(\"drone imu positions\", as_col=True)[0] < l(0.0))\\\n",
" .to_pandas()"
]
},
{
"cell_type": "code",
"execution_count": 33,
"id": "42e72fb9-739c-47f3-9fe9-41fe578cb578",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"/drone/gps_position:Points3D:positions\n"
]
},
{
"data": {
"text/html": [
"\n",
" <div style=\"width: 100%; overflow: auto; border: 1px solid #ccc;\">\n",
" <style>\n",
" .rerun-table.rerun-table table {\n",
" border-collapse: collapse;\n",
" min-width: 100%;\n",
" text-align: left;\n",
" }\n",
"\n",
" .rerun-table.rerun-table th {\n",
" font-weight: normal;\n",
" text-align: left;\n",
" }\n",
"\n",
" .rerun-table.rerun-table td {\n",
" text-align: left;\n",
" }\n",
" </style>\n",
" <table class=\"rerun-table\">\n",
" \n",
"<thead><tr><th><strong>example_timeline_dataframe_query_34eb439ccfd940f1893f4a3992d5d930./drone/gps_position:Points3D:positions[Int64(1)]</strong><br>FixedSizeList[f32; 3]</th></tr></thead>\n",
"<tbody\n",
"<tr><td>METADATA:<br>* version: 0.1.1</td></tr>\n",
"\n",
"<tr><td>┌────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐<br>│ example_timeline_dataframe_query_34eb439ccfd940f1893f4a3992d5d930./drone/gps_position:Points3D:positions[Int64(1)] │<br>│ --- │<br>│ type: FixedSizeList[f32; 3] │<br>╞════════════════════════════════════════════════════════════════════════════════════════════════════════════════════╡<br>│ [2.0, 0.0, 0.5] │<br>├╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┤<br>│ [1.910673, 0.59104043, 0.5596008] │<br>├╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┤<br>│ [1.6506712, 1.129285, 0.6168255] │<br>├╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┤<br>│ [1.24322, 1.5666538, 0.66939276] │<br>├╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┤<br>│ [0.72471553, 1.8640782, 0.7152068] │<br>├╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┤<br>│ [0.1414744, 1.99499, 0.7524413] │<br>├╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┤<br>│ [-0.45440418, 1.9476953, 0.7796117] │<br>├╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┤<br>│ [-1.0096922, 1.7264187, 0.7956349] │<br>├╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┤<br>│ [-1.4747875, 1.3509264, 0.7998721] │<br>├╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┤<br>│ [-1.8081443, 0.85475975, 0.7921543] │<br>└────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘</td></tr>\n",
"\n",
"</tbody>\n",
"\n",
" </table>\n",
" </div>\n",
" \n",
"<div>Data truncated due to size.</div>"
],
"text/plain": [
"┌────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐\n",
"│ METADATA: │\n",
"│ * version: 0.1.1 │\n",
"├╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┤\n",
"│ ┌────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐ │\n",
"│ │ example_timeline_dataframe_query_34eb439ccfd940f1893f4a3992d5d930./drone/gps_position:Points3D:positions[Int64(1)] │ │\n",
"│ │ --- │ │\n",
"│ │ type: FixedSizeList[f32; 3] │ │\n",
"│ ╞════════════════════════════════════════════════════════════════════════════════════════════════════════════════════╡ │\n",
"│ │ [2.0, 0.0, 0.5] │ │\n",
"│ ├╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┤ │\n",
"│ │ [1.910673, 0.59104043, 0.5596008] │ │\n",
"│ ├╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┤ │\n",
"│ │ [1.6506712, 1.129285, 0.6168255] │ │\n",
"│ ├╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┤ │\n",
"│ │ [1.24322, 1.5666538, 0.66939276] │ │\n",
"│ ├╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┤ │\n",
"│ │ [0.72471553, 1.8640782, 0.7152068] │ │\n",
"│ ├╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┤ │\n",
"│ │ [0.1414744, 1.99499, 0.7524413] │ │\n",
"│ ├╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┤ │\n",
"│ │ [-0.45440418, 1.9476953, 0.7796117] │ │\n",
"│ ├╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┤ │\n",
"│ │ [-1.0096922, 1.7264187, 0.7956349] │ │\n",
"│ ├╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┤ │\n",
"│ │ [-1.4747875, 1.3509264, 0.7998721] │ │\n",
"│ ├╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┤ │\n",
"│ │ [-1.8081443, 0.85475975, 0.7921543] │ │\n",
"│ └────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘ │\n",
"└────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘\n",
"Data truncated due to size."
]
},
"execution_count": 33,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"gps_df.select(kc(\"drone gps positions\", as_col=True)[0])"
]
},
{
"cell_type": "code",
"execution_count": 34,
"id": "a1d338ac-f13f-4708-b24e-b7ede6d79e11",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"/drone/gps_position:Points3D:positions\n"
]
},
{
"data": {
"text/html": [
"\n",
" <div style=\"width: 100%; overflow: auto; border: 1px solid #ccc;\">\n",
" <style>\n",
" .rerun-table.rerun-table table {\n",
" border-collapse: collapse;\n",
" min-width: 100%;\n",
" text-align: left;\n",
" }\n",
"\n",
" .rerun-table.rerun-table th {\n",
" font-weight: normal;\n",
" text-align: left;\n",
" }\n",
"\n",
" .rerun-table.rerun-table td {\n",
" text-align: left;\n",
" }\n",
" </style>\n",
" <table class=\"rerun-table\">\n",
" \n",
"<thead><tr><th><strong>array_to_string(arrow_cast(example_timeline_dataframe_query_34eb439ccfd940f1893f4a3992d5d930./drone/gps_position:Points3D:positions[Int64(1)],Utf8(\"List(Utf8)\")),Utf8(\",\"))</strong><br>Utf8</th></tr></thead>\n",
"<tbody\n",
"<tr><td>METADATA:<br>* version: 0.1.1</td></tr>\n",
"\n",
"<tr><td>┌──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐<br>│ array_to_string(arrow_cast(example_timeline_dataframe_query_34eb439ccfd940f1893f4a3992d5d930./drone/gps_position:Points3D:positions[Int64(1)],Utf8(\"List(Utf8)\")),Utf8(\",\")) │<br>│ --- │<br>│ type: Utf8 │<br>╞══════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════╡<br>│ 2.0,0.0,0.5 │<br>├╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┤<br>│ 1.910673,0.59104043,0.5596008 │<br>├╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┤<br>│ 1.6506712,1.129285,0.6168255 │<br>├╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┤<br>│ 1.24322,1.5666538,0.66939276 │<br>├╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┤<br>│ 0.72471553,1.8640782,0.7152068 │<br>├╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┤<br>│ 0.1414744,1.99499,0.7524413 │<br>├╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┤<br>│ -0.45440418,1.9476953,0.7796117 │<br>├╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┤<br>│ -1.0096922,1.7264187,0.7956349 │<br>├╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┤<br>│ -1.4747875,1.3509264,0.7998721 │<br>├╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┤<br>│ -1.8081443,0.85475975,0.7921543 │<br>└──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘</td></tr>\n",
"\n",
"</tbody>\n",
"\n",
" </table>\n",
" </div>\n",
" \n",
"<div>Data truncated due to size.</div>"
],
"text/plain": [
"┌──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐\n",
"│ METADATA: │\n",
"│ * version: 0.1.1 │\n",
"├╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┤\n",
"│ ┌──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐ │\n",
"│ │ array_to_string(arrow_cast(example_timeline_dataframe_query_34eb439ccfd940f1893f4a3992d5d930./drone/gps_position:Points3D:positions[Int64(1)],Utf8(\"List(Utf8)\")),Utf8(\",\")) │ │\n",
"│ │ --- │ │\n",
"│ │ type: Utf8 │ │\n",
"│ ╞══════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════╡ │\n",
"│ │ 2.0,0.0,0.5 │ │\n",
"│ ├╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┤ │\n",
"│ │ 1.910673,0.59104043,0.5596008 │ │\n",
"│ ├╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┤ │\n",
"│ │ 1.6506712,1.129285,0.6168255 │ │\n",
"│ ├╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┤ │\n",
"│ │ 1.24322,1.5666538,0.66939276 │ │\n",
"│ ├╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┤ │\n",
"│ │ 0.72471553,1.8640782,0.7152068 │ │\n",
"│ ├╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┤ │\n",
"│ │ 0.1414744,1.99499,0.7524413 │ │\n",
"│ ├╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┤ │\n",
"│ │ -0.45440418,1.9476953,0.7796117 │ │\n",
"│ ├╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┤ │\n",
"│ │ -1.0096922,1.7264187,0.7956349 │ │\n",
"│ ├╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┤ │\n",
"│ │ -1.4747875,1.3509264,0.7998721 │ │\n",
"│ ├╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┤ │\n",
"│ │ -1.8081443,0.85475975,0.7921543 │ │\n",
"│ └──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘ │\n",
"└──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘\n",
"Data truncated due to size."
]
},
"execution_count": 34,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"gps_df.select(f.array_to_string(f.arrow_cast(kc(\"drone gps positions\", as_col=True)[0], str_lit('List(Utf8)')), str_lit(',')))"
]
},
{
"cell_type": "code",
"execution_count": 35,
"id": "461e9591-11c5-4571-94b9-6682197a4a06",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"/drone/gps_position:Points3D:positions\n"
]
},
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>gps_time</th>\n",
" <th>counts</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>2</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>7</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>4</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>10</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>3</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6</th>\n",
" <td>5</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>7</th>\n",
" <td>6</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>8</th>\n",
" <td>8</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9</th>\n",
" <td>11</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>10</th>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>11</th>\n",
" <td>9</td>\n",
" <td>1</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" gps_time counts\n",
"0 2 1\n",
"1 7 1\n",
"2 4 1\n",
"3 10 1\n",
"4 0 1\n",
"5 3 1\n",
"6 5 1\n",
"7 6 1\n",
"8 8 1\n",
"9 11 1\n",
"10 1 1\n",
"11 9 1"
]
},
"execution_count": 35,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"gps_df.aggregate(c(\"gps_time\"), f.approx_distinct(f.array_to_string(f.arrow_cast(kc(\"drone gps positions\", as_col=True)[0], str_lit('List(Utf8)')), str_lit(','))).alias(\"counts\")).to_pandas()"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "b11cbf3c-f9a8-48e9-9ff5-86bddec9c394",
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"id": "7e362911-4915-4ea1-a87b-3c0e3109a614",
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3 (ipykernel)",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.13.5"
}
},
"nbformat": 4,
"nbformat_minor": 5
}
rerun data/droid-example.rrd
rerun server -d data/droid
rerun rerun+http://localhost:51234
rerun data/droid/droid-example.rrd data/droid/droid-blueprint.rbl
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment