nuscenes-data 0.4.0

NuScenes dataset loader in Rust
Documentation
use clap::Parser;
use nuscenes_data::{error::Result, DatasetLoader};
use std::path::PathBuf;

#[derive(Parser)]
struct Opts {
    pub version: String,
    pub data_dir: PathBuf,
    #[clap(long)]
    pub no_check: bool,
}

fn main() -> Result<()> {
    let opts = Opts::parse();

    // Change the path to your dataset directory
    let dataset = DatasetLoader {
        check: !opts.no_check,
        ..Default::default()
    }
    .load(&opts.version, &opts.data_dir)?;

    // Iterate over scenes chronologically
    for scene in dataset.scene_iter() {
        println!("read scene {}", scene.token);

        // Get associated log
        let log = scene.log();
        println!("captured at {}", log.date_captured);

        // Iterate over associated samples
        for sample in scene.sample_iter() {
            println!(
                "found sample {} in scene {} with timestamp {}",
                sample.token, scene.token, sample.timestamp
            );

            // Get the related scene back from sample
            assert_eq!(scene.token, sample.scene_token);

            // Iterate over associated annotations
            for annotation in sample.annotation_iter() {
                println!(
                    "found annotation {} in sample {}",
                    annotation.token, sample.token,
                );
            }

            // Iterate over associated data
            for sample_data in sample.sample_data_iter() {
                println!(
                    "found data {} in sample {}",
                    sample_data.token, sample.token
                );
            }
        }
    }

    Ok(())
}