ncore.data.v4 Package#
Package exposing methods related to NCore’s V4 data interaction APIs
- class ncore.data.v4.CameraSensorComponent#
Bases:
objectCamera sensor data component
- class Reader(
- component_instance_name: str,
- component_group: Group,
Bases:
BaseSensorComponentReaderCamera sensor data component reader
- class EncodedImageDataHandle(
- image_dataset: Array,
Bases:
objectReferences encoded image data without loading it
- get_data() EncodedImageData#
Loads the referenced encoded image data to memory
- get_frame_data(
- timestamp_us: int,
Returns the frame’s encoded image data
- get_frame_handle(
- timestamp_us: int,
Returns the frame’s encoded image data
- class Writer(
- component_group: Group,
- sequence_timestamp_interval_us: HalfClosedInterval,
Bases:
BaseSensorComponentWriterCamera sensor data component writer
- class ncore.data.v4.ComponentReader(
- component_instance_name: str,
- component_group: Group,
Bases:
ABCBase class for V4 component readers.
Subclasses must implement
get_component_name()andsupports_component_version(). The underlying zarr group is accessible asself._group; component metadata is available via theinstance_name,component_version, andgeneric_meta_dataproperties.- property generic_meta_data: Dict[str, types.JsonLike]#
Returns the generic meta data of the loaded component
- class ncore.data.v4.ComponentWriter(
- component_group: Group,
- sequence_timestamp_interval_us: HalfClosedInterval,
Bases:
ABCBase class for V4 component writers.
Subclasses must implement
get_component_name()andget_component_version(), and may overridefinalize()to flush buffered data. All timestamps stored by the writer must fall within the sequence’ssequence_timestamp_interval_ustime range (available asself._sequence_timestamp_interval_us).
- class ncore.data.v4.CuboidsComponent#
Bases:
objectData component representing cuboid track observations
- class Reader(
- component_instance_name: str,
- component_group: Group,
Bases:
ComponentReaderCuboid tracks component reader
- get_observations() Generator[types.CuboidTrackObservation]#
Returns all stored cuboid track observations
- class Writer(
- component_group: Group,
- sequence_timestamp_interval_us: HalfClosedInterval,
Bases:
ComponentWriterCuboid track observations component writer
- store_observations(
- cuboid_observations: List[CuboidTrackObservation],
- class ncore.data.v4.IntrinsicsComponent#
Bases:
objectSensor intrinsic calibration data component
- class Reader(
- component_instance_name: str,
- component_group: Group,
Bases:
ComponentReaderSensor intrinsics data component reader
- get_camera_model_parameters(
- camera_id: str,
Returns the camera model associated with the requested camera sensor
- get_lidar_model_parameters(
- lidar_id: str,
Returns the lidar model associated with the requested lidar sensor
- class Writer(
- component_group: Group,
- sequence_timestamp_interval_us: HalfClosedInterval,
Bases:
ComponentWriterSensor intrinsics data component writer
- static get_component_name() str#
Returns the base name of the current intrinsic calibration component
- static get_component_version() str#
Returns the version of the current intrinsic calibration component
- store_camera_intrinsics(
- camera_id: str,
- camera_model_parameters: FThetaCameraModelParameters | OpenCVPinholeCameraModelParameters | OpenCVFisheyeCameraModelParameters,
Store camera-associated intrinsics
- store_lidar_intrinsics(
- lidar_id: str,
- lidar_model_parameters: RowOffsetStructuredSpinningLidarModelParameters,
Store lidar-associated intrinsics
- class ncore.data.v4.LidarSensorComponent#
Bases:
objectLidar sensor data component
- class Reader(
- component_instance_name: str,
- component_group: Group,
Bases:
BaseRayBundleSensorComponentReaderLidar sensor data component reader
- class Writer(
- component_group: Group,
- sequence_timestamp_interval_us: HalfClosedInterval,
Bases:
BaseRayBundleSensorComponentWriterLidar sensor data component writer
- store_frame(
- direction: npt.NDArray[np.float32],
- timestamp_us: npt.NDArray[np.uint64],
- model_element: npt.NDArray[np.uint16] | None,
- distance_m: npt.NDArray[np.float32],
- intensity: npt.NDArray[np.float32],
- frame_timestamps_us: npt.NDArray[np.uint64],
- generic_data: Dict[str, npt.NDArray[Any]],
- generic_meta_data: Dict[str, types.JsonLike],
- class ncore.data.v4.MasksComponent#
Bases:
objectSensor masks data component
- class Reader(
- component_instance_name: str,
- component_group: Group,
Bases:
ComponentReaderSensor masks data component reader
- get_camera_mask_image( ) Image#
Returns constant named camera mask image
- class Writer(
- component_group: Group,
- sequence_timestamp_interval_us: HalfClosedInterval,
Bases:
ComponentWriterSensor masks data component writer
- class ncore.data.v4.PosesComponent#
Bases:
objectRepresents a generic set of static / dynamic poses (rigid transformations) between named coordinate frames
- class Reader(
- component_instance_name: str,
- component_group: Group,
Bases:
ComponentReader- get_dynamic_pose( ) Tuple[npt.NDArray[np.floating], npt.NDArray[np.uint64]]#
Returns dynamic poses (time-dependent rigid transformations) between two named coordinate frames, if available
- get_dynamic_poses() Generator[Tuple[Tuple[str, str], Tuple[npt.NDArray[np.floating], npt.NDArray[np.uint64]]]]#
Returns all dynamic poses (time-dependent rigid transformations) between named coordinate frames, if available
- get_static_pose( ) npt.NDArray[np.floating]#
Returns static pose (rigid transformation) between two named coordinate frames, if available
- class Writer(
- component_group: Group,
- sequence_timestamp_interval_us: HalfClosedInterval,
Bases:
ComponentWriterPoses data component writer
- finalize()#
Actually store the json-encoded pose data
- store_dynamic_pose(
- source_frame_id: str,
- target_frame_id: str,
- poses: npt.NDArray[np.floating],
- timestamps_us: npt.NDArray[np.uint64],
- require_sequence_time_coverage: bool = True,
Store a trajectory of dynamic poses (time-dependent rigid transformations) between two named coordinate frames.
Makes sure the inverse transformation is not already stored.
- class ncore.data.v4.RadarSensorComponent#
Bases:
objectRadar sensor data component
- class Reader(
- component_instance_name: str,
- component_group: Group,
Bases:
BaseRayBundleSensorComponentReaderRadar sensor data component reader
- class Writer(
- component_group: Group,
- sequence_timestamp_interval_us: HalfClosedInterval,
Bases:
BaseRayBundleSensorComponentWriterRadar sensor data component writer
- class ncore.data.v4.SequenceComponentGroupsReader(
- component_group_paths: List[UPath] | List[Path],
- open_consolidated: bool = True,
- max_threads: int | None = None,
Bases:
objectSequenceComponentReader manages data component groups for reading for NCore V4 / zarr data for a single NCore sequence
- static expand_component_group_paths( ) List[UPath]#
Expands possible sequence meta-data files in the given list of component group paths to the actual component group paths they reference
- get_sequence_meta() SequenceMeta#
Returns full sequence meta-data summary (json-serializable)
- open_component_readers(
- component_reader_type: Type[CR],
Instantiates all component readers for the given component of all associated stores, identified by the component instance names
- reload_resources() None#
Trigger a reload of each itar store - useful to re-initialize file objects in multi-process settings
- property sequence_timestamp_interval_us: HalfClosedInterval#
- class ncore.data.v4.SequenceComponentGroupsWriter(
- output_dir_path: UPath,
- store_base_name: str,
- sequence_id: str,
- sequence_timestamp_interval_us: HalfClosedInterval,
- generic_meta_data: Dict[str, types.JsonLike],
- store_type: Literal['itar', 'directory'] = 'itar',
Bases:
objectSequenceComponentGroupsWriter manages store groups for writing for NCore V4 / zarr data components for a single NCore sequence
- finalize() List[UPath]#
Validates all writers and closes all stores after consolidating their meta data.
Returns a list of the store paths
- static from_reader(
- output_dir_path: UPath,
- store_base_name: str,
- sequence_reader: SequenceComponentGroupsReader,
- store_type: Literal['itar', 'directory'] = 'itar',
Creates a SequenceComponentGroupsWriter from an existing SequenceComponentGroupsReader instance to share consistent per-sequence meta-data
- get_base_group( ) Group#
Lazily initializes ncore base-groups and underlying stores on demand
- register_component_writer(
- component_writer_type: Type[CW],
- component_instance_name: str,
- group_name: str | None = None,
- generic_meta_data: Dict[str, types.JsonLike] = {},
Instantiates a component writer instance for the given component type, component instance name, and group name. Additionally stores associated generic meta data
- property sequence_timestamp_interval_us: HalfClosedInterval#
- class ncore.data.v4.SequenceLoaderV4(
- reader: SequenceComponentGroupsReader,
- poses_component_group_name: str = 'default',
- intrinsics_component_group_name: str = 'default',
- masks_component_group_name: str | None = 'default',
- cuboids_component_group_name: str | None = 'default',
Bases:
SequenceLoaderProtocolSequenceLoader implementation for NCore V4 data.
Provides a unified interface to access V4 format sequence data including sensors, poses, intrinsics, masks, and cuboid annotations.
- Parameters:
reader – Component store reader for V4 data
poses_component_group_name – Name of the poses component group to load
intrinsics_component_group_name – Name of the intrinsics component group to load
masks_component_group_name – Name of the masks component group to load
cuboids_component_group_name – Name of the cuboids component group to load
- class CameraSensor(
- reader: Reader,
- mask_reader: Reader | None,
- model_parameters: FThetaCameraModelParameters | OpenCVPinholeCameraModelParameters | OpenCVFisheyeCameraModelParameters,
- pose_graph: PoseGraphInterpolator,
Bases:
Sensor,CameraSensorProtocolCamera sensor implementation for V4 data.
- Parameters:
reader – Camera component reader
mask_reader – Masks component reader for camera masks
model_parameters – Camera intrinsic model parameters
pose_graph – Pose graph interpolator for coordinate transformations
- get_frame_handle(
- frame_index: int,
Returns the frame’s encoded image data
- property model_parameters: FThetaCameraModelParameters | OpenCVPinholeCameraModelParameters | OpenCVFisheyeCameraModelParameters#
Returns parameters specific to the camera’s intrinsic model
- class LidarSensor(
- reader: Reader,
- pose_graph: PoseGraphInterpolator,
- model_parameters: RowOffsetStructuredSpinningLidarModelParameters | None,
Bases:
RayBundleSensor,LidarSensorProtocolLidar sensor implementation for V4 data.
- Parameters:
reader – Lidar component reader
pose_graph – Pose graph interpolator for coordinate transformations
model_parameters – Lidar intrinsic model parameters, if available
- get_frame_ray_bundle_model_element(
- frame_index: int,
Returns the per-ray model elements for a ray bundle for a specific frame, if available
- get_frame_ray_bundle_return_intensity( ) npt.NDArray[np.float32]#
Returns the per-ray measured intensities for a ray bundle return for a specific frame
- property model_parameters: RowOffsetStructuredSpinningLidarModelParameters | None#
Returns parameters specific to the lidar’s intrinsic model, if available
- class RadarSensor(
- reader: Reader,
- pose_graph: PoseGraphInterpolator,
Bases:
RayBundleSensor,RadarSensorProtocolRadar sensor implementation for V4 data.
- Parameters:
reader – Radar component reader
pose_graph – Pose graph interpolator for coordinate transformations
- class RayBundleSensor( )#
Bases:
Sensor,RayBundleSensorProtocolBase ray bundle sensor implementation for V4 data (lidar/radar).
- Parameters:
reader – Ray bundle sensor component reader (lidar or radar)
pose_graph – Pose graph interpolator for coordinate transformations and motion compensation
- get_frame_point_cloud( ) FramePointCloud#
Returns motion-compensated or non-motion-compensated point-cloud for a specific frame
- get_frame_ray_bundle_count(
- frame_index: int,
Returns the number of rays for a specific frame without decoding it
- get_frame_ray_bundle_direction(
- frame_index,
Returns the per-ray directions for the ray-bundle for a specific frame
- get_frame_ray_bundle_return_count(
- frame_index: int,
Returns the number of different ray returns for a specific frame without decoding it
- get_frame_ray_bundle_return_distance_m( ) npt.NDArray[np.float32]#
Returns the per-ray measured metric distances for the ray bundle return for a specific frame
- get_frame_ray_bundle_return_valid_mask( ) npt.NDArray[np.bool_]#
Returns the per-ray valid mask of the ray bundle returns for a specific frame
- get_frame_ray_bundle_timestamp_us(
- frame_index: int,
Returns the per-ray timestamps for the ray-bundle for a specific frame
- property ray_bundle_reader: BaseRayBundleSensorComponentReader#
- class Sensor( )#
Bases:
SensorProtocolBase sensor implementation for V4 data providing common sensor functionality.
- Parameters:
sensor_reader – Component reader for the sensor data
pose_graph – Pose graph interpolator for coordinate transformations
- property frames_timestamps_us: npt.NDArray[np.uint64]#
The start/end timestamps of the frames associated with the sensor [(N,2) array]
- get_frame_generic_data( ) npt.NDArray[Any]#
Returns generic frame-data for a specific frame and name
- get_frame_generic_meta_data(
- frame_index: int,
Returns generic frame meta-data for a specific frame
- property generic_meta_data: Dict[str, Dict[str, Dict[str, JsonLike] | List[JsonLike] | str | int | float | bool | None | List[int]] | List[Dict[str, JsonLike] | List[JsonLike] | str | int | float | bool | None | List[int]] | str | int | float | bool | None | List[int]]#
Generic meta-data associated with the sequence
- get_camera_sensor(
- sensor_id: str,
Returns a camera sensor instance for a given sensor id
- get_cuboid_track_observations(
- timestamp_interval_us: HalfClosedInterval | None = None,
Returns all available cuboid track observations in the sequence.
- Parameters:
timestamp_interval_us – If provided, only observations whose
timestamp_usfalls within this half-closed interval[start, stop)are returned. WhenNone(default), all observations are returned.
- get_lidar_sensor(
- sensor_id: str,
Returns a lidar sensor instance for a given sensor id
- get_radar_sensor(
- sensor_id: str,
Returns a radar sensor instance for a given sensor id
- get_sequence_meta() Dict[str, Dict[str, Dict[str, JsonLike] | List[JsonLike] | str | int | float | bool | None | List[int]] | List[Dict[str, JsonLike] | List[JsonLike] | str | int | float | bool | None | List[int]] | str | int | float | bool | None | List[int]]#
Returns sequence-wide meta-data summary (format is instance-dependent)
- property pose_graph: PoseGraphInterpolator#
The pose graph representing all static and dynamic transformations in the sequence
- reload_resources() None#
Reloads any resources used by the internal sequence loader (potentially required for multi-process data loading)
- property sequence_paths: List[UPath]#
List of all dataset paths comprising this sequence (shards / components)
- property sequence_timestamp_interval_us: HalfClosedInterval#
The time range of the sequence in microseconds