Skip to content
Back to skills

Pykitti

ASecurity

"Guide Python workflows for loading, validating, and interpreting

  • 247 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added September 8, 2026
testingpythonrustbashapi

Works with

  • api

Security analysis

A96/100
  • mediumInstalls packages at runtime which could introduce malicious dependencies

Pro scans all 20 files and shows the line behind each finding

Scanned September 8, 2026

npx -y skills add VectorSpaceLab/AREX-Skill --skill pykitti --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Pykitti?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Pykitti
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/vectorspacelab-pykitti/badge)](https://www.skillsdirectory.com/skills/vectorspacelab-pykitti)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: pykitti
description: "Guide Python workflows for loading, validating, and interpreting
  KITTI raw, odometry, and tracking data with pykitti."
disable-model-invocation: true
metadata:
  disco-role: operating
license: MIT
---

# pykitti

Use this skill when a task names **pykitti**, KITTI raw drives, odometry
benchmark sequences, Velodyne `.bin` scans, OXTS packets, KITTI calibration,
stereo camera streams, or KITTI tracking labels. It teaches the public
`pykitti==0.3.1` Python surface and safe validation patterns; it does not fetch
large datasets or run GUI demos.

## Install and inspect

Install the public package in the Python environment that will run the workflow:

```bash
python -m pip install pykitti
# Required by this release's eager tracking import:
python -m pip install opencv-python-headless
python -c "import pykitti; print(pykitti.raw, pykitti.odometry, pykitti.tracking)"
```

The declared runtime dependencies are NumPy, matplotlib, Pillow, and pandas.
OpenCV is not declared by the package metadata, but `pykitti.__init__` imports
`tracking.py`, which imports `cv2` eagerly. Read
[troubleshooting](references/troubleshooting.md) when top-level import fails.
Use [the install diagnostic](scripts/check_install.py) for a read-only import,
version, dependency, and signature check from an arbitrary working directory.

## Choose the route

| User request or data layout | Read next |
|---|---|
| Date/drive tree such as `2011_09_26/<date>_drive_<drive>_sync`, OXTS, raw cameras, raw Velodyne | [raw-data](sub-skills/raw-data/SKILL.md) |
| `sequences/<sequence>/calib.txt`, `times.txt`, optional `poses/<sequence>.txt` | [odometry](sub-skills/odometry/SKILL.md) |
| `label_02`, detection/label rows, object IDs, `DontCare`, per-frame boxes | [tracking](sub-skills/tracking/SKILL.md) |
| Shared rotations, calibration parsing, image or Velodyne primitives | [API overview](references/api-overview.md), then the owning route |
| Installation, missing files, dependency, alignment, or compatibility failure | [troubleshooting](references/troubleshooting.md) |

## Shared operating rules

1. Identify the KITTI distribution and exact root layout before constructing a
   loader. A raw drive tree is not an odometry sequence tree.
2. Validate metadata and compare sensor counts before synchronized processing.
   pykitti discovers files with sorted globs but does not reconcile stream
   lengths or numeric frame IDs.
3. Use `frames` as positional indices into sorted lists. Validate indices and
   list lengths yourself; do not assume a filename filter or alignment repair.
4. Use generator properties for sequential access and `get_*` methods for
   indexed access. Materialize one-pass generators when they must be reused.
5. Keep frame names explicit: `T_destination_origin` is a homogeneous 4x4
   transform, `K_camN` is a 3x3 intrinsic matrix, and Velodyne rows are
   `[x, y, z, reflectance]`.
6. Keep dataset acquisition, archive extraction, plotting, and GUI operations
   outside this runtime route. Prefer a trusted external data process and the
   bundled local fixture smokes for deterministic checks.

## Verification

Run the safe fixture smoke belonging to the selected route before using a real
archive. These scripts create temporary tiny fixtures and make no network or
GUI calls:

- Raw: `python sub-skills/raw-data/scripts/raw_fixture_smoke.py`
- Odometry: `python sub-skills/odometry/scripts/odometry_fixture_smoke.py`
- Labels: `python sub-skills/tracking/scripts/labels_fixture_smoke.py`

Read [repository provenance](references/repo-provenance.md) before deciding
whether this skill matches a later checkout or needs refreshing. The source
snapshot is intentionally separate from the review artifacts and local
inspection environment.

Files in this skill

  • SKILL.md3.7 KB
  • references/api-overview.md3.1 KB
  • references/repo-provenance.md1.5 KB
  • references/repo-routing-metadata.json337 B
  • references/troubleshooting.md3.5 KB
  • scripts/check_install.py2 KB
  • sub-skills/odometry/SKILL.md4.3 KB
  • sub-skills/odometry/references/api-reference.md5 KB
  • sub-skills/odometry/references/data-layout.md3.9 KB
  • sub-skills/odometry/references/troubleshooting.md5 KB
  • sub-skills/odometry/references/workflows.md4.7 KB
  • sub-skills/odometry/scripts/odometry_fixture_smoke.py8.6 KB
  • sub-skills/raw-data/SKILL.md4.6 KB
  • sub-skills/raw-data/references/api-reference.md6 KB
  • sub-skills/raw-data/references/data-layout.md4.2 KB
  • sub-skills/raw-data/references/opencv-stereo.md3.1 KB
  • sub-skills/raw-data/references/troubleshooting.md6.3 KB
  • sub-skills/raw-data/references/workflows.md5.7 KB
  • sub-skills/raw-data/scripts/raw_fixture_smoke.py8.6 KB
  • sub-skills/tracking/SKILL.md2.5 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.