Die Oberfläche ist lokalisiert; Skill-Beschreibungen und -Dokumente werden per KI automatisch in Ihre Sprache übersetzt. Code, Befehle, Pfade und Fachbegriffe bleiben im Original, maßgeblich ist das Dokument des Autors.
Skills entdecken
Daten und Forschung · SKILL.md

data-and-maps

data-and-maps

Use for nuPlan dataset roots and layout, SQLite/ORM queries, sensor blobs, map layers and objects, or scenario builder and scenario filter selection.

Independent GitHub snapshot · Automated classification · Original documentation governs

Skill-Dokumentation

GitHub

name: data-and-maps description: "Use for nuPlan dataset roots and layout, SQLite/ORM queries, sensor blobs, map layers and objects, or scenario builder and scenario filter selection." disable-model-invocation: true metadata: disco-role: operating license: NOASSERTION

nuPlan data and maps

Use this sub-skill when the task is about the local nuPlan dataset contract rather than model training, simulation metrics, or submission presentation. It covers DB discovery, schema-aware read queries, camera/lidar blob lookup, map API objects/layers, and NuPlanScenarioBuilder selection.

Route the request

  1. Establish the three roots before querying anything: NUPLAN_DATA_ROOT for DBs and sensor data, NUPLAN_MAPS_ROOT for maps, and NUPLAN_EXP_ROOT only for experiment/cache output. Do not use the experiment root as a dataset root.
  2. Select the split path (nuplan-v1.1/splits/mini, trainval, or the challenge test path) and confirm that it contains .db files.
  3. Run the bundled read-only validator first: python scripts/validate_nuplan_data_root.py --data-root "$NUPLAN_DATA_ROOT" --maps-root "$NUPLAN_MAPS_ROOT". Add --split mini, --db-limit N, or --json when a bounded report is preferable. A non-zero exit is actionable evidence, not a reason to fetch data automatically.
  4. For DB facts, prefer get_db_description, get_db_duration_in_us, get_db_log_duration, get_db_log_vehicles, and get_db_scenario_info. For custom reads use execute_one or execute_many with bound values; never interpolate user values into SQL.
  5. For map facts, construct the map DB with the requested map version, then use NuPlanMapFactory, get_maps_api, NuPlanMap, or the compatibility NuPlanMapWrapper described in maps and scenarios.
  6. For scenarios, keep DB selection and scenario filtering separate: construct NuPlanScenarioBuilder, create a complete ScenarioFilter, call get_scenarios, and inspect the count/type/map before expanding downstream processing.

Dataset contract

The documented local roots are:

VariableMeaningTypical derived paths
NUPLAN_DATA_ROOTRead-mostly dataset rootnuplan-v1.1/splits/<split>, nuplan-v1.1/sensor_blobs
NUPLAN_MAPS_ROOTMap package root<map_version>.json, <location>/<local-version>/map.gpkg
NUPLAN_EXP_ROOTWritable experiment/cache rootexp, cache

The standard map version is nuplan-maps-v1.0. Its metadata names four map locations: sg-one-north, us-ma-boston, us-nv-las-vegas-strip, and us-pa-pittsburgh-hazelwood. The location version below each location is not necessarily the map package version; read it from the metadata JSON.

A DB stores metadata, annotations, and relative blob keys; it does not embed JPEG images or point clouds. The sensor root must therefore resolve the image.filename_jpg and lidar_pc.filename keys. Camera channels normally include CAM_F0, CAM_B0, CAM_L0, CAM_L1, CAM_L2, CAM_R0, CAM_R1, and CAM_R2; merged lidar uses MergedPointCloud.

Read dataset layout for path resolution and split/version checks, and database and schema for tables, joins, tokens, and query helpers.

API selection

  • Use nuplan.database.nuplan_db.query_session.execute_many for streaming SQLite rows and execute_one for a query that must return at most one row.
  • Use nuplan.database.nuplan_db.db_cli_queries for DB description, duration, per-log duration/vehicle, and scenario-type counts. Those helpers are read-only and accept a DB filename.
  • Use NuPlanDB and its typed table properties (log, camera, lidar, ego_pose, image, lidar_pc, lidar_box, track, scene, scenario_tag, and traffic_light_status) for ORM-style access.
  • Use get_lidarpc_sensor_data() or get_camera_channel_sensor_data(channel) to define sensor queries. Sensor tokens are hex strings at the Python API boundary but are stored as SQLite BLOB values.
  • Use semantic map layers and object methods for geometric questions; do not treat a GeoPackage layer name as a SemanticMapLayer enum without checking the mapping.

Scenario selection checklist

ScenarioFilter requires all of these positional fields: scenario_types, scenario_tokens, log_names, map_names, num_scenarios_per_type, limit_total_scenarios, timestamp_threshold_s, ego_displacement_minimum_m, expand_scenarios, remove_invalid_goals, and shuffle. Optional fields are ego_start_speed_threshold, ego_stop_speed_threshold, speed_noise_tolerance, token_set_path, fraction_in_token_set_threshold, and ego_route_radius.

num_scenarios_per_type is a positive integer. limit_total_scenarios is a positive integer count or a float in (0, 1] (the implementation's float sampling path requires a value strictly below 1 when filtering). Filters are applied in builder order: per-type count, total count, timestamp spacing, non-stationary ego, start/stop speed, token-set fraction, and route presence. scenario_types, map_names, log_names, and tokens are applied while reading DB rows. remove_invalid_goals and include_cameras can remove rows before later filters. A zero result usually means a split, map name, log name, goal, route, or filter combination is wrong—not that the database is empty.

Boundaries and safety

  • Route metric, simulation, and evaluation questions to simulation-and-evaluation; route feature construction and training cache questions to training-and-preprocessing; route command formatting to submission-and-cli.
  • Treat S3/HTTP blob stores as optional. This sub-skill diagnoses local layout; it does not download data, set credentials, or promise remote availability.
  • Never mutate, purge, repair, or delete dataset files as part of diagnosis. Use the bundled validator and read-only queries, then report the missing data item and the smallest user-controlled recovery action.
  • Preserve the distinction between DB log.map_version (a location/map name in scenario queries) and the requested package map version (nuplan-maps-v1.0).
  • When data is missing, record the exact root, split, map version, DB basename, channel, and referenced blob key that failed. Do not silently substitute a different split or map.

For detailed joins, map conventions, scenario examples, and failure recovery, read the linked references before answering a complex request.

Gespeicherte Skills