Skip to main content

单帧 soc bag 目录的发现与路径解析,仅返回路径信息,不提供文件读写

Project description

socbag-manager

单帧 soc bag 目录的发现与路径解析库,仅返回路径信息,不读取/写入文件内容。

输入模式(V0.0.4)

模式 输入含义 说明
multi base_paths + bag_path 与 V0.0.3 一致:在多数据根下按 priority 查找同一 bag。
single 单一路径(如 .../static_data 将该路径视为父目录,自动扫描其下符合约定的 soc 目录(可配置层级,见下),每个子目录即一个 bag 根。

single 模式输入示例/media/mini/T9/03_single_frame/AB6_HW3_XZB600019/static_data → 扫描该目录下符合约定的子目录作为 bag 根列表;对每个 bag 根可调用 resolve_frame_paths_from_bag_root 等 API,输出格式与 multi 模式一致(images / pcds 字典)。

可配置搜索层级discover_bags_under(parent_dir, ..., max_depth=1, min_size_mb=None) 中,max_depth=1 表示仅扫描第一层子目录;2 表示两层;-1 表示所有层级(全递归)。不要求文件夹名称,仅按规则判定(见下)。

目录约定与 soc 规则

  • soc 规则(multi/single 共用):目录被视为 soc bag 当且仅当:同时存在 camera/lidar/ 子目录,且该目录总大小 ≥ 阈值(默认 1MB)。不依赖文件夹名;名称模式 bag_name_pattern 为可选过滤。
  • bag 目录: {base_path}/{bag_path}/ 或 single 模式下直接为上述符合规则的子目录。
  • 相机图像: {bag_root}/camera/{camera_name}/data/{sequence}.png(或 .jpg)
  • 雷达点云: {bag_root}/lidar/{lidar_name}/pcd/{sequence}.pcd

安装

pip install socbag-manager

统一设置

所有 API 基于 SocbagManagerSettings,可从代码构造或 YAML 加载(兼容 C03 base_paths/priority_base_path 与 C04 data_dirs/default_main_dir):

from socbag_manager import SocbagManagerSettings

settings = SocbagManagerSettings(
    base_paths={"pandar": "/data/pandar", "at128": "/data/at128"},
    priority_source="pandar",
    bag_name_pattern="*_soc*",
)
# 或
settings = SocbagManagerSettings.from_yaml("/path/to/config.yaml")

主要 API

  • 发现(multi): get_ordered_base_paths, discover_bags, discover_bags_from_scan_root, discover_cameras, discover_lidars, discover_sequences
  • 发现(single): discover_bags_under(parent_dir, bag_name_pattern="*_soc*", max_depth=1, min_size_mb=None) — 按层级扫描(max_depth=1 仅第一层,-1 全部层级);discover_sequences_from_bag_root, discover_cameras_from_bag_root, discover_lidars_from_bag_root
  • 规则soc_rules.is_soc_bag_dir(dir_path, min_size_mb) — 判定目录是否符合 soc 解构(camera+lidar+大小)
  • 路径解析: resolve_camera_paths, resolve_lidar_paths, resolve_frame_paths(multi);resolve_frame_paths_from_bag_root(bag_root, sequence, ...)(single,输出格式同 resolve_frame_paths
  • 候选枚举: list_frame_candidates, choose_one_candidateCandidatePath
  • 目录树: TreeNode, build_folder_tree(settings, scope="roots"|"bags"|"sequences", ...)

使用示例

from socbag_manager import (
    SocbagManagerSettings,
    discover_bags,
    discover_sequences,
    resolve_frame_paths,
    build_folder_tree,
)

settings = SocbagManagerSettings.from_yaml("config.yaml")
bag_names = discover_bags(settings)
sequences = discover_sequences(settings, bag_names[0])
paths = resolve_frame_paths(settings, bag_names[0], sequences[0])
# paths["images"], paths["pcds"]

tree_roots = build_folder_tree(settings, scope="bags")
for root in tree_roots:
    for bag in root.children:
        print(bag.name, bag.path)

single 模式示例

from socbag_manager import (
    discover_bags_under,
    discover_sequences_from_bag_root,
    resolve_frame_paths_from_bag_root,
)

static_data_dir = "/media/mini/T9/03_single_frame/AB6_HW3_XZB600019/static_data"
bag_roots = discover_bags_under(static_data_dir, max_depth=1, min_size_mb=0)  # 第一层级;min_size_mb=0 仅按结构
for bag_root in bag_roots:
    sequences = discover_sequences_from_bag_root(bag_root)
    if sequences:
        paths = resolve_frame_paths_from_bag_root(bag_root, sequences[0])
        # paths["images"], paths["pcds"] 与 multi 模式格式一致

YAML 可选配置 single 模式入口:input_mode: singlestatic_data_dir: /path/to/static_data(加载后可用 discover_bags_under(settings.static_data_dir))。

约束

  • 所有接口仅返回路径(字符串或树节点中的 path),不读取/解析图像或点云文件。
  • 依赖:Python >=3.10,PyYAML。

开发与测试

pip install -e ".[dev]"
python -m pytest tests/ -v

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

socbag_manager-0.0.4.tar.gz (17.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

socbag_manager-0.0.4-py3-none-any.whl (15.7 kB view details)

Uploaded Python 3

File details

Details for the file socbag_manager-0.0.4.tar.gz.

File metadata

  • Download URL: socbag_manager-0.0.4.tar.gz
  • Upload date:
  • Size: 17.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.19

File hashes

Hashes for socbag_manager-0.0.4.tar.gz
Algorithm Hash digest
SHA256 80124e4c15ca9c883e87037633edcece0e92de57add226187b188e932337b628
MD5 bba41213d40afde8b8ff04c611088a12
BLAKE2b-256 5c048aa5b2398b4dbf7a299b4721e3c8dd15e44b9081b3e3ccdf013a254395f8

See more details on using hashes here.

File details

Details for the file socbag_manager-0.0.4-py3-none-any.whl.

File metadata

  • Download URL: socbag_manager-0.0.4-py3-none-any.whl
  • Upload date:
  • Size: 15.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.19

File hashes

Hashes for socbag_manager-0.0.4-py3-none-any.whl
Algorithm Hash digest
SHA256 fb284b67f021eec0fb8e6f45671b47e01c871c88d6ca18662a07138f49903e18
MD5 dc68972c8287c33d3bd9225b12ffd624
BLAKE2b-256 00b6e6e2eb20e07f00da732e21e842776235b0fcaece1b952056485c76b373dc

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page