ouster.sdk.core

Module contents

Copyright (c) 2021, Ouster, Inc. All rights reserved.

Core namespace provides core classes, functions, and utilities for working with Ouster lidar sensor data in Python. It covers packet and scan handling, data transformations, and various helpers for processing and managing lidar data.

ouster.sdk.core.clipped_scan_source

class ClippedScanSource(scan_source, fields, lower, upper)[source]

Bases: ScanSource

limits the values of the specified set of fields to within the range = [lower, upper], any value that exceeds this range is replaced by zero.

property sensor_info: List[SensorInfo]

Retrieve sensor information for all sensors in the scan source.

Returns:

A list of SensorInfo objects, each containing metadata about a sensor, such as serial number, firmware version, and calibration details.

property is_live: bool

Check if the scan source is live.

A live scan source indicates that it is actively receiving data from a sensor.

Returns:

True if the scan source is live, False otherwise.

Return type:

bool

property is_indexed: bool
property scans_num: List[int]
close()[source]
Return type:

None

ouster.sdk.core.core

Copyright (c) 2021, Ouster, Inc. All rights reserved.

This module contains wrappers for packet sources, frame borders, and pose validation. Defines how to read packets, manage frames, and check pose validity.

class Packets(it, metadata)[source]

Bases: PacketSource

Create a PacketSource from an existing iterator.

Parameters:
property sensor_info: List[SensorInfo]

Retrieve sensor information for all sensors in the packet source.

Returns:

A list of SensorInfo objects, each containing metadata about a sensor, such as serial number, firmware version, and calibration details.

close()[source]
Return type:

None

property is_live: bool

Check if the packet source is live.

class FrameBorder(meta, pred=<function FrameBorder.<lambda>>)[source]

Bases: object

Create callable helper that indicates the cross frames packets.

first_valid_column_pose(scan)[source]

Return first valid column pose of a LidarScan

Return type:

ndarray

last_valid_column_pose(scan)[source]

Return last valid column pose of a LidarScan

Return type:

ndarray

valid_packet_idxs(scan)[source]

Checks for valid packets that was used in in the scan construction

Return type:

ndarray

poses_present(scan)[source]

Check whether any of scan.pose in not identity

Return type:

bool

ouster.sdk.core.data

Copyright (c) 2021, Ouster, Inc. All rights reserved.

BufferT

Types that support the buffer protocol.

alias of Union[bytes, bytearray, memoryview, ndarray]

class ChanField[source]

Bases: object

RANGE = 'RANGE'
RANGE2 = 'RANGE2'
SIGNAL = 'SIGNAL'
SIGNAL2 = 'SIGNAL2'
REFLECTIVITY = 'REFLECTIVITY'
REFLECTIVITY2 = 'REFLECTIVITY2'
NEAR_IR = 'NEAR_IR'
FLAGS = 'FLAGS'
FLAGS2 = 'FLAGS2'
WINDOW = 'WINDOW'
ZONE = 'ZONE'
RAW_HEADERS = 'RAW_HEADERS'
RAW32_WORD1 = 'RAW32_WORD1'
RAW32_WORD2 = 'RAW32_WORD2'
RAW32_WORD3 = 'RAW32_WORD3'
RAW32_WORD4 = 'RAW32_WORD4'
RAW32_WORD5 = 'RAW32_WORD5'
RAW32_WORD6 = 'RAW32_WORD6'
RAW32_WORD7 = 'RAW32_WORD7'
RAW32_WORD8 = 'RAW32_WORD8'
RAW32_WORD9 = 'RAW32_WORD9'
NORMALS = 'NORMALS'
NORMALS2 = 'NORMALS2'
IMU_ACC = 'IMU_ACC'
IMU_GYRO = 'IMU_GYRO'
IMU_TIMESTAMP = 'IMU_TIMESTAMP'
IMU_MEASUREMENT_ID = 'IMU_MEASUREMENT_ID'
IMU_STATUS = 'IMU_STATUS'
IMU_PACKET_TIMESTAMP = 'IMU_PACKET_TIMESTAMP'
IMU_ALERT_FLAGS = 'IMU_ALERT_FLAGS'
POSITION_STRING = 'POSITION_STRING'
POSITION_LAT_LONG = 'POSITION_LAT_LONG'
POSITION_TIMESTAMP = 'POSITION_TIMESTAMP'
LIVE_ZONESET_HASH = 'LIVE_ZONESET_HASH'
ZONE_TIMESTAMP = 'ZONE_TIMESTAMP'
ZONE_PACKET_TIMESTAMP = 'ZONE_PACKET_TIMESTAMP'
ZONE_STATES = 'ZONE_STATES'
ZONE_ALERT_FLAGS = 'ZONE_ALERT_FLAGS'
class ColHeader(value)[source]

Bases: Enum

Column headers available in lidar data.

This definition is deprecated.

TIMESTAMP = 0
ENCODER_COUNT = 1
MEASUREMENT_ID = 2
STATUS = 3
FRAME_ID = 4
stagger(info, fields)[source]

Return a staggered copy of the provided fields.

In the default staggered representation, each column corresponds to a single timestamp. A destaggered representation compensates for the azimuth offset of each beam, returning columns that correspond to a single azimuth angle.

Parameters:
  • info (SensorInfo) – Sensor metadata associated with the provided data

  • fields (ndarray) – A numpy array of shape H X W or H X W X N

Return type:

ndarray

Returns:

A staggered numpy array of the same shape

destagger(info, fields, inverse=False)[source]

Return a destaggered copy of the provided fields.

In the default staggered representation, each column corresponds to a single timestamp. A destaggered representation compensates for the azimuth offset of each beam, returning columns that correspond to a single azimuth angle.

Parameters:
  • info (SensorInfo) – Sensor metadata associated with the provided data

  • fields (ndarray) – A numpy array of shape H X W or H X W X N

  • inverse – perform inverse “staggering” operation

Return type:

ndarray

Returns:

A destaggered numpy array of the same shape

XYZLut(info, use_extrinsics=False)[source]

Return a function that can project scans into Cartesian coordinates.

If called with a numpy array representing a range image, the range image must be in “staggered” form, where each column corresponds to a single measurement block. LidarScan fields are always staggered.

Internally, this will pre-compute a lookup table using the supplied intrinsic parameters. XYZ points are returned as a H x W x 3 array of doubles, where H is the number of beams and W is the horizontal resolution of the scan.

The coordinates are reported in meters in the sensor frame (when use_extrinsics is False, default) as defined in the sensor documentation.

However, the result is returned in the “extrinsics frame” if use_extrinsics is True, which makes additional transform from “sensor frame” to “extrinsics frame” using the homogeneous 4x4 transform matrix from info.extrinsic property.

Parameters:
  • info (SensorInfo) – sensor metadata

  • use_extrinsics (bool) – if True, applies the info.extrinsic transform to the resulting “sensor frame” coordinates and returns the result in “extrinsics frame”.

Return type:

Callable[[Union[LidarScan, ndarray]], ndarray]

Returns:

A function that computes a point cloud given a range image

XYZLutFloat(info, use_extrinsics=False)[source]
Return type:

Callable[[Union[LidarScan, ndarray]], ndarray]

packet_ts(packet)[source]

Return the packet timestamp in nanoseconds

Return type:

int

ouster.sdk.core.io_types

ouster.sdk.core.masked_scan_source

class MaskedScanSource(scan_source, fields, masks)[source]

Bases: ScanSource

property sensor_info: List[SensorInfo]

Retrieve sensor information for all sensors in the scan source.

Returns:

A list of SensorInfo objects, each containing metadata about a sensor, such as serial number, firmware version, and calibration details.

property is_live: bool

Check if the scan source is live.

A live scan source indicates that it is actively receiving data from a sensor.

Returns:

True if the scan source is live, False otherwise.

Return type:

bool

property is_indexed: bool
property scans_num: List[int]
close()[source]
Return type:

None

ouster.sdk.core.multi

class Scans(source, *, complete=False, cycle=False, fields=None, **_)[source]

Bases: ScanSource

Multi LidarScan source.

Parameters:
  • source (PacketSource) – packet multi source

  • complete (bool) – set to True to only release complete scans

  • cycle (bool) – repeat infinitely after iteration is finished is True. in case source refers to a live sensor then this parameter has no effect.

  • fields (Optional[List[List[FieldType]]]) – specify which channel fields to populate on LidarScans

property sensor_info: List[SensorInfo]

Retrieve sensor information for all sensors in the scan source.

Returns:

A list of SensorInfo objects, each containing metadata about a sensor, such as serial number, firmware version, and calibration details.

property is_live: bool

Check if the scan source is live.

A live scan source indicates that it is actively receiving data from a sensor.

Returns:

True if the scan source is live, False otherwise.

Return type:

bool

property is_indexed: bool
property fields: List[List[str]]
property field_types: List[List[FieldType]]
property scans_num: List[int]
close()[source]
Return type:

None

ouster.sdk.core.reduced_scan_source

class ReducedScanSource(scan_source, beams)[source]

Bases: ScanSource

Takes a regular ScanSource and reduces the beams count to the specified values.

property sensor_info: List[SensorInfo]

Retrieve sensor information for all sensors in the scan source.

Returns:

A list of SensorInfo objects, each containing metadata about a sensor, such as serial number, firmware version, and calibration details.

property is_live: bool

Check if the scan source is live.

A live scan source indicates that it is actively receiving data from a sensor.

Returns:

True if the scan source is live, False otherwise.

Return type:

bool

property is_indexed: bool
property scans_num: List[int]
close()[source]
Return type:

None

ouster.sdk.core.scan_ops

clip(scan, fields, lower, upper, invalid=0)[source]

limits the values of the specified set of fields to within the range = [lower, upper], any value that exceeds this range is replaced by the supplied invalid value (default is zero)

Return type:

None

filter_field(scan, field, lower, upper, invalid=0, filtered_fields=None)[source]

Filters out scan fields based on the specified axis and range. Values that falls in the range [lower, upper] are replaced by the supplied invalid value (default is zero).

Parameters: - scan: LidarScan - field: str; the field to be used as the filter - lower: float; lower bound - upper: float; upper bound - invalid: int; the invalid value to use default is 0 - filtered_fields: Optional[List[str]]; an optional list of fields to filter

Return type:

None

filter_uv(scan, coord_2d, lower, upper, invalid=0, filtered_fields=None)[source]

Filters the scan based on the specified image axis. Values that falls in the range [lower, upper] are replaced by the supplied invalid value (default is zero).

Parameters: - scan: LidarScan - field: str; the field to be used as the filter - lower: Union[int, float]; lower bound if float it is assumed a percentage - upper: Union[int, float]; upper bound if float it is assumed a percentage - invalid: int; the invalid value to use default is 0 - filtered_fields: Optional[List[str]]; an optional list of fields to filter

Return type:

None

filter_xyz(scan, xyzlut, axis_idx, lower=-inf, upper=inf, invalid=0, filtered_fields=None)[source]

Filters the scan based on the specified axis and range. Values below the lower bound or above the upper bound are replaced by the supplied invalid value (default is zero)

Parameters: - scan: LidarScan - xyzlut: Callable[[Union[LidarScan, np.ndarray]], np.ndarray] - axis_idx: int; can be 0, 1, or 2 - lower: float; lower bound - upper: float; upper bound - invalid: int; the invalid value to use default is 0 - filtered_fields: Optional[List[str]]; an optional list of fields to filter

Return type:

None

mask(scan, fields, mask)[source]

applies a mask/filter to all fields of the LidarScan mask should be of the same as size scan.PIXEL_FIELD

Return type:

None

reduce_by_factor_metadata(metadata, factor)[source]
Return type:

SensorInfo

reduce_by_factor(scan, factor, update_metadata=False)[source]

Vertically downsample the LidarScan by the supplied factor factor must by a divisor of the LidarScan height

Return type:

LidarScan

Severity

class Severity

Members:

OUSTER_WARNING

OUSTER_ERROR

OUSTER_ERROR = <Severity.OUSTER_ERROR: 1>
OUSTER_WARNING = <Severity.OUSTER_WARNING: 0>
__annotations__ = {}
__eq__()

Return self==value.

__getstate__()
__hash__()

Return hash(self).

__index__()
__init__()
__int__()
__members__ = {'OUSTER_ERROR': <Severity.OUSTER_ERROR: 1>, 'OUSTER_WARNING': <Severity.OUSTER_WARNING: 0>}
__module__ = 'ouster.sdk._bindings.client'
__ne__()

Return self!=value.

__repr__()

Return repr(self).

__setstate__()
__str__()

Return str(self).

property name
property value

SensorInfo

class SensorInfo(*args, **kwargs)

Sensor Info required to interpret UDP data streams.

See the sensor documentation for the meaning of each property.

Overloaded function.

  1. __init__(self: ouster.sdk._bindings.client.SensorInfo) -> None

    Construct an empty metadata.

  2. __init__(self: ouster.sdk._bindings.client.SensorInfo, json_string: str) -> None

    Args:

    json_string (str): json string to parse

__annotations__ = {}
__copy__(self: ouster.sdk._bindings.client.SensorInfo) ouster.sdk._bindings.client.SensorInfo
__deepcopy__(self: ouster.sdk._bindings.client.SensorInfo, arg0: dict) ouster.sdk._bindings.client.SensorInfo
__eq__(self: ouster.sdk._bindings.client.SensorInfo, arg0: ouster.sdk._bindings.client.SensorInfo) bool
__hash__ = None
__init__(*args, **kwargs)

Overloaded function.

  1. __init__(self: ouster.sdk._bindings.client.SensorInfo) -> None

    Construct an empty metadata.

  2. __init__(self: ouster.sdk._bindings.client.SensorInfo, json_string: str) -> None

    Args:

    json_string (str): json string to parse

__module__ = 'ouster.sdk._bindings.client'
__repr__(self: ouster.sdk._bindings.client.SensorInfo) str
property beam_altitude_angles

Beam altitude angles, useful for XYZ projection.

property beam_azimuth_angles

Beam azimuth angles, useful for XYZ projection.

property beam_to_lidar_transform

Homogenous transformation matrix reprsenting Beam to Lidar Transform

property build_date

Build date

property cal

sensor calibration

property config

sensor config

property extrinsic

Extrinsic Matrix.

property format

Describes the structure of a lidar packet. See class DataFormat.

static from_default(arg0: ouster.sdk._bindings.client.LidarMode) ouster.sdk._bindings.client.SensorInfo

Create gen-1 OS-1-64 SensorInfo populated with design values.

property fw_rev

Sensor firmware revision.

get_product_info(self: ouster.sdk._bindings.client.SensorInfo) ouster.sdk._bindings.client.ProductInfo

Get parsed product info

get_version(self: ouster.sdk._bindings.client.SensorInfo) ouster.sdk._bindings.client.Version

Get parsed sensor version

property h

returns the height of a frame (equivalent to format.pixels_per_column)

has_fields_equal(self: ouster.sdk._bindings.client.SensorInfo, arg0: ouster.sdk._bindings.client.SensorInfo) bool

Compare public fields”

property image_rev

Image rev

property imu_to_sensor_transform

Homogenous transformation matrix representing IMU offset to Sensor Coordinate Frame.

property init_id

Initialization id.

property lidar_origin_to_beam_origin_mm

Distance between lidar origin and beam origin in millimeters.

property lidar_to_sensor_transform

Homogeneous transformation matrix from Lidar Coordinate Frame to Sensor Coordinate Frame.

property prod_line

Product line, e.g., ‘OS-1-128’.

property prod_pn

Prod pn

property sn

Sensor serial number.

property status

sensor status

to_json_string(self: ouster.sdk._bindings.client.SensorInfo) str

Return metadata string made from current entries”

property user_data

sensor user data

property w

returns the width of a frame (equivalent to format.columns_per_frame)

property zone_set

zone monitor configuration

ProductInfo

class ProductInfo
__annotations__ = {}
__eq__(self: ouster.sdk._bindings.client.ProductInfo, arg0: ouster.sdk._bindings.client.ProductInfo) bool
__hash__ = None
__init__(*args, **kwargs)
__module__ = 'ouster.sdk._bindings.client'
__str__(self: ouster.sdk._bindings.client.ProductInfo) str
property beam_config

The beam configuration of the product..

Type:

string

property beam_count

Number of beams

Type:

int

property form_factor

The form factor of the product.

Type:

string

property full_product_info

The original full product info string.

Type:

string

property short_range

If the product is a short range make.

Type:

bool

DataFormat

class DataFormat(self: ouster.sdk._bindings.client.DataFormat)

Data Format of a packet coming from sensor

See sensor documentation for the meaning of each property

__annotations__ = {}
__eq__(self: ouster.sdk._bindings.client.DataFormat, arg0: ouster.sdk._bindings.client.DataFormat) bool
__hash__ = None
__init__(self: ouster.sdk._bindings.client.DataFormat) None

Data Format of a packet coming from sensor

See sensor documentation for the meaning of each property

__module__ = 'ouster.sdk._bindings.client'
property column_window

Firing window of sensor, set by config.azimuth_window

Type:

Tuple[int, int]

property columns_per_frame

Columns per frame in the lidar packet, corresponding with LidarMode

Type:

int

property columns_per_packet

Columns per packet in the lidar packet, typically 16

Type:

int

property fps

Frames per second, e.g., 10 for LidarMode 1024x10

Type:

int

property header_type

Lidar/IMU packet header profile

property imu_measurements_per_packet

Number of IMU measurements per IMU packet

Type:

int

property imu_packets_per_frame

Number of IMU packets per frame

Type:

int

lidar_packets_per_frame(self: ouster.sdk._bindings.client.DataFormat) int

Return the number of valid packets actually sent per frame of data with the column_window applied.

property pixel_shift_by_row

Shift of pixels by row to create natural images

Type:

List[int]

property pixels_per_column

Pixels per column in the lidar packet, synonymous with the number of beams of the sensor

Type:

int

property udp_profile_imu

IMU packet profile

property udp_profile_lidar

Lidar packet profile

valid_columns_per_frame(self: ouster.sdk._bindings.client.DataFormat) int

Return the number of valid columns per complete frame of data with the column_window applied.

property zone_monitoring_enabled

True if zone monitoring is enabled, otherwise False.

Type:

bool

LidarMode

class LidarMode(self: ouster.sdk._bindings.client.LidarMode, value: int)

Possible Lidar Modes of sensor.

Determines to horizontal and vertical resolution rates of sensor. See sensor documentation for details.

Members:

UNKNOWN

MODE_UNKNOWN

_512x10

MODE_512x10

_512x20

MODE_512x20

_1024x10

MODE_1024x10

_1024x20

MODE_1024x20

_2048x10

MODE_2048x10

_4096x5

MODE_4096x5

MODE_UNSPEC

UNSPECIFIED

MODE_1024x10 = <LidarMode._1024x10: 3>
MODE_1024x20 = <LidarMode._1024x20: 4>
MODE_2048x10 = <LidarMode._2048x10: 5>
MODE_4096x5 = <LidarMode._4096x5: 6>
MODE_512x10 = <LidarMode._512x10: 1>
MODE_512x20 = <LidarMode._512x20: 2>
MODE_UNKNOWN = <LidarMode.UNKNOWN: 0>
MODE_UNSPEC = <LidarMode.UNKNOWN: 0>
UNKNOWN = <LidarMode.UNKNOWN: 0>
UNSPECIFIED = <LidarMode.UNKNOWN: 0>
__annotations__ = {}
__eq__(self: object, other: object) bool
__getstate__(self: object) int
__hash__(self: object) int
__index__(self: ouster.sdk._bindings.client.LidarMode) int
__init__(self: ouster.sdk._bindings.client.LidarMode, value: int) None
__int__(self: ouster.sdk._bindings.client.LidarMode) int
__members__ = mappingproxy({'MODE_1024x10': <LidarMode._1024x10: 3>, 'MODE_1024x20': <LidarMode._1024x20: 4>, 'MODE_2048x10': <LidarMode._2048x10: 5>, 'MODE_4096x5': <LidarMode._4096x5: 6>, 'MODE_512x10': <LidarMode._512x10: 1>, 'MODE_512x20': <LidarMode._512x20: 2>, 'MODE_UNKNOWN': <LidarMode.UNKNOWN: 0>, 'UNKNOWN': <LidarMode.UNKNOWN: 0>, '_1024x10': <LidarMode._1024x10: 3>, '_1024x20': <LidarMode._1024x20: 4>, '_2048x10': <LidarMode._2048x10: 5>, '_4096x5': <LidarMode._4096x5: 6>, '_512x10': <LidarMode._512x10: 1>, '_512x20': <LidarMode._512x20: 2>})
__module__ = 'ouster.sdk._bindings.client'
__ne__(self: object, other: object) bool
__repr__(self: object) str
__setstate__(self: ouster.sdk._bindings.client.LidarMode, state: int) None
__str__(self: ouster.sdk._bindings.client.LidarMode) str
from_string(arg0: str) ouster.sdk._bindings.client.LidarMode

Create LidarMode from string.

property name

The name of the Enum member.

property value

The value of the Enum member.

values = <iterator object>

TimestampMode

class TimestampMode(self: ouster.sdk._bindings.client.TimestampMode, value: int)

Possible Timestamp modes of sensor.See sensor documentation for details.

Members:

UNKNOWN

TIME_FROM_INTERNAL_OSC

TIME_FROM_SYNC_PULSE_IN

TIME_FROM_PTP_1588

UNSPECIFIED

TIME_FROM_UNSPEC

TIME_FROM_INTERNAL_OSC = <TimestampMode.TIME_FROM_INTERNAL_OSC: 1>
TIME_FROM_PTP_1588 = <TimestampMode.TIME_FROM_PTP_1588: 3>
TIME_FROM_SYNC_PULSE_IN = <TimestampMode.TIME_FROM_SYNC_PULSE_IN: 2>
TIME_FROM_UNSPEC = <TimestampMode.UNKNOWN: 0>
UNKNOWN = <TimestampMode.UNKNOWN: 0>
UNSPECIFIED = <TimestampMode.UNKNOWN: 0>
__annotations__ = {}
__eq__(self: object, other: object) bool
__getstate__(self: object) int
__hash__(self: object) int
__index__(self: ouster.sdk._bindings.client.TimestampMode) int
__init__(self: ouster.sdk._bindings.client.TimestampMode, value: int) None
__int__(self: ouster.sdk._bindings.client.TimestampMode) int
__members__ = mappingproxy({'TIME_FROM_INTERNAL_OSC': <TimestampMode.TIME_FROM_INTERNAL_OSC: 1>, 'TIME_FROM_PTP_1588': <TimestampMode.TIME_FROM_PTP_1588: 3>, 'TIME_FROM_SYNC_PULSE_IN': <TimestampMode.TIME_FROM_SYNC_PULSE_IN: 2>, 'UNKNOWN': <TimestampMode.UNKNOWN: 0>})
__module__ = 'ouster.sdk._bindings.client'
__ne__(self: object, other: object) bool
__repr__(self: object) str
__setstate__(self: ouster.sdk._bindings.client.TimestampMode, state: int) None
__str__(self: ouster.sdk._bindings.client.TimestampMode) str
from_string(arg0: str) ouster.sdk._bindings.client.TimestampMode

Create TimestampMode from string.

property name

The name of the Enum member.

property value

The value of the Enum member.

values = <iterator object>

OperatingMode

class OperatingMode(self: ouster.sdk._bindings.client.OperatingMode, value: int)

Possible Operating modes of sensor.

See sensor documentation for details.

Members:

NORMAL

OPERATING_NORMAL

STANDBY

OPERATING_STANDBY

OPERATING_UNSPEC

NORMAL = <OperatingMode.NORMAL: 1>
OPERATING_NORMAL = <OperatingMode.NORMAL: 1>
OPERATING_STANDBY = <OperatingMode.STANDBY: 2>
OPERATING_UNSPEC = <OperatingMode.OPERATING_UNSPEC: 0>
STANDBY = <OperatingMode.STANDBY: 2>
__annotations__ = {}
__eq__(self: object, other: object) bool
__getstate__(self: object) int
__hash__(self: object) int
__index__(self: ouster.sdk._bindings.client.OperatingMode) int
__init__(self: ouster.sdk._bindings.client.OperatingMode, value: int) None
__int__(self: ouster.sdk._bindings.client.OperatingMode) int
__members__ = mappingproxy({'NORMAL': <OperatingMode.NORMAL: 1>, 'OPERATING_NORMAL': <OperatingMode.NORMAL: 1>, 'OPERATING_STANDBY': <OperatingMode.STANDBY: 2>, 'STANDBY': <OperatingMode.STANDBY: 2>})
__module__ = 'ouster.sdk._bindings.client'
__ne__(self: object, other: object) bool
__repr__(self: object) str
__setstate__(self: ouster.sdk._bindings.client.OperatingMode, state: int) None
__str__(self: ouster.sdk._bindings.client.OperatingMode) str
static from_string(arg0: str) object

Create enum value from string.

property name

The name of the Enum member.

property value

The value of the Enum member.

values = <iterator object>

MultipurposeIOMode

class MultipurposeIOMode(self: ouster.sdk._bindings.client.MultipurposeIOMode, value: int)

Mode of MULTIPURPOSE_IO pin.

See sensor documentation for details.

Members:

OFF

MULTIPURPOSE_OFF

INPUT_NMEA_UART

MULTIPURPOSE_INPUT_NMEA_UART

OUTPUT_FROM_INTERNAL_OSC

MULTIPURPOSE_OUTPUT_FROM_INTERNAL_OSC

OUTPUT_FROM_SYNC_PULSE_IN

MULTIPURPOSE_OUTPUT_FROM_SYNC_PULSE_IN

OUTPUT_FROM_PTP_1588

MULTIPURPOSE_OUTPUT_FROM_PTP_1588

OUTPUT_FROM_ENCODER_ANGLE

MULTIPURPOSE_OUTPUT_FROM_ENCODER_ANGLE

INPUT_NMEA_UART = <MultipurposeIOMode.INPUT_NMEA_UART: 2>
MULTIPURPOSE_INPUT_NMEA_UART = <MultipurposeIOMode.INPUT_NMEA_UART: 2>
MULTIPURPOSE_OFF = <MultipurposeIOMode.OFF: 1>
MULTIPURPOSE_OUTPUT_FROM_ENCODER_ANGLE = <MultipurposeIOMode.OUTPUT_FROM_ENCODER_ANGLE: 6>
MULTIPURPOSE_OUTPUT_FROM_INTERNAL_OSC = <MultipurposeIOMode.OUTPUT_FROM_INTERNAL_OSC: 3>
MULTIPURPOSE_OUTPUT_FROM_PTP_1588 = <MultipurposeIOMode.OUTPUT_FROM_PTP_1588: 5>
MULTIPURPOSE_OUTPUT_FROM_SYNC_PULSE_IN = <MultipurposeIOMode.OUTPUT_FROM_SYNC_PULSE_IN: 4>
OFF = <MultipurposeIOMode.OFF: 1>
OUTPUT_FROM_ENCODER_ANGLE = <MultipurposeIOMode.OUTPUT_FROM_ENCODER_ANGLE: 6>
OUTPUT_FROM_INTERNAL_OSC = <MultipurposeIOMode.OUTPUT_FROM_INTERNAL_OSC: 3>
OUTPUT_FROM_PTP_1588 = <MultipurposeIOMode.OUTPUT_FROM_PTP_1588: 5>
OUTPUT_FROM_SYNC_PULSE_IN = <MultipurposeIOMode.OUTPUT_FROM_SYNC_PULSE_IN: 4>
__annotations__ = {}
__eq__(self: object, other: object) bool
__getstate__(self: object) int
__hash__(self: object) int
__index__(self: ouster.sdk._bindings.client.MultipurposeIOMode) int
__init__(self: ouster.sdk._bindings.client.MultipurposeIOMode, value: int) None
__int__(self: ouster.sdk._bindings.client.MultipurposeIOMode) int
__members__ = mappingproxy({'INPUT_NMEA_UART': <MultipurposeIOMode.INPUT_NMEA_UART: 2>, 'MULTIPURPOSE_INPUT_NMEA_UART': <MultipurposeIOMode.INPUT_NMEA_UART: 2>, 'MULTIPURPOSE_OFF': <MultipurposeIOMode.OFF: 1>, 'MULTIPURPOSE_OUTPUT_FROM_ENCODER_ANGLE': <MultipurposeIOMode.OUTPUT_FROM_ENCODER_ANGLE: 6>, 'MULTIPURPOSE_OUTPUT_FROM_INTERNAL_OSC': <MultipurposeIOMode.OUTPUT_FROM_INTERNAL_OSC: 3>, 'MULTIPURPOSE_OUTPUT_FROM_PTP_1588': <MultipurposeIOMode.OUTPUT_FROM_PTP_1588: 5>, 'MULTIPURPOSE_OUTPUT_FROM_SYNC_PULSE_IN': <MultipurposeIOMode.OUTPUT_FROM_SYNC_PULSE_IN: 4>, 'OFF': <MultipurposeIOMode.OFF: 1>, 'OUTPUT_FROM_ENCODER_ANGLE': <MultipurposeIOMode.OUTPUT_FROM_ENCODER_ANGLE: 6>, 'OUTPUT_FROM_INTERNAL_OSC': <MultipurposeIOMode.OUTPUT_FROM_INTERNAL_OSC: 3>, 'OUTPUT_FROM_PTP_1588': <MultipurposeIOMode.OUTPUT_FROM_PTP_1588: 5>, 'OUTPUT_FROM_SYNC_PULSE_IN': <MultipurposeIOMode.OUTPUT_FROM_SYNC_PULSE_IN: 4>})
__module__ = 'ouster.sdk._bindings.client'
__ne__(self: object, other: object) bool
__repr__(self: object) str
__setstate__(self: ouster.sdk._bindings.client.MultipurposeIOMode, state: int) None
__str__(self: ouster.sdk._bindings.client.MultipurposeIOMode) str
static from_string(arg0: str) object

Create enum value from string.

property name

The name of the Enum member.

property value

The value of the Enum member.

values = <iterator object>

Polarity

class Polarity(self: ouster.sdk._bindings.client.Polarity, value: int)

Pulse Polarity.

Applicable to several Polarity settings on sensor.

Members:

ACTIVE_LOW

POLARITY_ACTIVE_LOW

ACTIVE_HIGH

POLARITY_ACTIVE_HIGH

ACTIVE_HIGH = <Polarity.ACTIVE_HIGH: 2>
ACTIVE_LOW = <Polarity.ACTIVE_LOW: 1>
POLARITY_ACTIVE_HIGH = <Polarity.ACTIVE_HIGH: 2>
POLARITY_ACTIVE_LOW = <Polarity.ACTIVE_LOW: 1>
__annotations__ = {}
__eq__(self: object, other: object) bool
__getstate__(self: object) int
__hash__(self: object) int
__index__(self: ouster.sdk._bindings.client.Polarity) int
__init__(self: ouster.sdk._bindings.client.Polarity, value: int) None
__int__(self: ouster.sdk._bindings.client.Polarity) int
__members__ = mappingproxy({'ACTIVE_HIGH': <Polarity.ACTIVE_HIGH: 2>, 'ACTIVE_LOW': <Polarity.ACTIVE_LOW: 1>, 'POLARITY_ACTIVE_HIGH': <Polarity.ACTIVE_HIGH: 2>, 'POLARITY_ACTIVE_LOW': <Polarity.ACTIVE_LOW: 1>})
__module__ = 'ouster.sdk._bindings.client'
__ne__(self: object, other: object) bool
__repr__(self: object) str
__setstate__(self: ouster.sdk._bindings.client.Polarity, state: int) None
__str__(self: ouster.sdk._bindings.client.Polarity) str
static from_string(arg0: str) object

Create enum value from string.

property name

The name of the Enum member.

property value

The value of the Enum member.

values = <iterator object>

NMEABaudRate

class NMEABaudRate(self: ouster.sdk._bindings.client.NMEABaudRate, value: int)

Expected baud rate sensor attempts to decode for NMEA UART input $GPRMC messages.

Members:

BAUD_9600

BAUD_115200

BAUD_115200 = <NMEABaudRate.BAUD_115200: 2>
BAUD_9600 = <NMEABaudRate.BAUD_9600: 1>
__annotations__ = {}
__eq__(self: object, other: object) bool
__getstate__(self: object) int
__hash__(self: object) int
__index__(self: ouster.sdk._bindings.client.NMEABaudRate) int
__init__(self: ouster.sdk._bindings.client.NMEABaudRate, value: int) None
__int__(self: ouster.sdk._bindings.client.NMEABaudRate) int
__members__ = mappingproxy({'BAUD_115200': <NMEABaudRate.BAUD_115200: 2>, 'BAUD_9600': <NMEABaudRate.BAUD_9600: 1>})
__module__ = 'ouster.sdk._bindings.client'
__ne__(self: object, other: object) bool
__repr__(self: object) str
__setstate__(self: ouster.sdk._bindings.client.NMEABaudRate, state: int) None
__str__(self: ouster.sdk._bindings.client.NMEABaudRate) str
static from_string(arg0: str) object

Create enum value from string.

property name

The name of the Enum member.

property value

The value of the Enum member.

values = <iterator object>

UDPProfileLidar

class UDPProfileLidar(self: ouster.sdk._bindings.client.UDPProfileLidar, value: int)

UDP lidar profile.

Members:

UNKNOWN

PROFILE_LIDAR_UNKNOWN

LEGACY

PROFILE_LIDAR_LEGACY

RNG19_RFL8_SIG16_NIR16_DUAL

PROFILE_LIDAR_RNG19_RFL8_SIG16_NIR16_DUAL

RNG19_RFL8_SIG16_NIR16

PROFILE_LIDAR_RNG19_RFL8_SIG16_NIR16

RNG15_RFL8_NIR8

PROFILE_LIDAR_RNG15_RFL8_NIR8

FIVE_WORD_PIXEL

PROFILE_LIDAR_FIVE_WORD_PIXEL

FUSA_RNG15_RFL8_NIR8_DUAL

PROFILE_LIDAR_FUSA_RNG15_RFL8_NIR8_DUAL

RNG15_RFL8_NIR8_DUAL

PROFILE_LIDAR_RNG15_RFL8_NIR8_DUAL

RNG15_RFL8_NIR8_ZONE16

PROFILE_LIDAR_RNG15_RFL8_NIR8_ZONE16

RNG19_RFL8_SIG16_NIR16_ZONE16

PROFILE_LIDAR_RNG19_RFL8_SIG16_NIR16_ZONE16

OFF

PROFILE_LIDAR_OFF

FIVE_WORD_PIXEL = <UDPProfileLidar.FIVE_WORD_PIXEL: 5>
FUSA_RNG15_RFL8_NIR8_DUAL = <UDPProfileLidar.FUSA_RNG15_RFL8_NIR8_DUAL: 6>
LEGACY = <UDPProfileLidar.LEGACY: 1>
OFF = <UDPProfileLidar.OFF: 100>
PROFILE_LIDAR_FIVE_WORD_PIXEL = <UDPProfileLidar.FIVE_WORD_PIXEL: 5>
PROFILE_LIDAR_FUSA_RNG15_RFL8_NIR8_DUAL = <UDPProfileLidar.FUSA_RNG15_RFL8_NIR8_DUAL: 6>
PROFILE_LIDAR_LEGACY = <UDPProfileLidar.LEGACY: 1>
PROFILE_LIDAR_OFF = <UDPProfileLidar.OFF: 100>
PROFILE_LIDAR_RNG15_RFL8_NIR8 = <UDPProfileLidar.RNG15_RFL8_NIR8: 4>
PROFILE_LIDAR_RNG15_RFL8_NIR8_DUAL = <UDPProfileLidar.RNG15_RFL8_NIR8_DUAL: 7>
PROFILE_LIDAR_RNG15_RFL8_NIR8_ZONE16 = <UDPProfileLidar.RNG15_RFL8_NIR8_ZONE16: 8>
PROFILE_LIDAR_RNG19_RFL8_SIG16_NIR16 = <UDPProfileLidar.RNG19_RFL8_SIG16_NIR16: 3>
PROFILE_LIDAR_RNG19_RFL8_SIG16_NIR16_DUAL = <UDPProfileLidar.RNG19_RFL8_SIG16_NIR16_DUAL: 2>
PROFILE_LIDAR_RNG19_RFL8_SIG16_NIR16_ZONE16 = <UDPProfileLidar.RNG19_RFL8_SIG16_NIR16_ZONE16: 9>
PROFILE_LIDAR_UNKNOWN = <UDPProfileLidar.UNKNOWN: 0>
RNG15_RFL8_NIR8 = <UDPProfileLidar.RNG15_RFL8_NIR8: 4>
RNG15_RFL8_NIR8_DUAL = <UDPProfileLidar.RNG15_RFL8_NIR8_DUAL: 7>
RNG15_RFL8_NIR8_ZONE16 = <UDPProfileLidar.RNG15_RFL8_NIR8_ZONE16: 8>
RNG19_RFL8_SIG16_NIR16 = <UDPProfileLidar.RNG19_RFL8_SIG16_NIR16: 3>
RNG19_RFL8_SIG16_NIR16_DUAL = <UDPProfileLidar.RNG19_RFL8_SIG16_NIR16_DUAL: 2>
RNG19_RFL8_SIG16_NIR16_ZONE16 = <UDPProfileLidar.RNG19_RFL8_SIG16_NIR16_ZONE16: 9>
UNKNOWN = <UDPProfileLidar.UNKNOWN: 0>
__annotations__ = {}
__eq__(self: object, other: object) bool
__getstate__(self: object) int
__hash__(self: object) int
__index__(self: ouster.sdk._bindings.client.UDPProfileLidar) int
__init__(self: ouster.sdk._bindings.client.UDPProfileLidar, value: int) None
__int__(self: ouster.sdk._bindings.client.UDPProfileLidar) int
__members__ = mappingproxy({'FIVE_WORD_PIXEL': <UDPProfileLidar.FIVE_WORD_PIXEL: 5>, 'FUSA_RNG15_RFL8_NIR8_DUAL': <UDPProfileLidar.FUSA_RNG15_RFL8_NIR8_DUAL: 6>, 'LEGACY': <UDPProfileLidar.LEGACY: 1>, 'OFF': <UDPProfileLidar.OFF: 100>, 'PROFILE_LIDAR_FIVE_WORD_PIXEL': <UDPProfileLidar.FIVE_WORD_PIXEL: 5>, 'PROFILE_LIDAR_FUSA_RNG15_RFL8_NIR8_DUAL': <UDPProfileLidar.FUSA_RNG15_RFL8_NIR8_DUAL: 6>, 'PROFILE_LIDAR_LEGACY': <UDPProfileLidar.LEGACY: 1>, 'PROFILE_LIDAR_OFF': <UDPProfileLidar.OFF: 100>, 'PROFILE_LIDAR_RNG15_RFL8_NIR8': <UDPProfileLidar.RNG15_RFL8_NIR8: 4>, 'PROFILE_LIDAR_RNG15_RFL8_NIR8_DUAL': <UDPProfileLidar.RNG15_RFL8_NIR8_DUAL: 7>, 'PROFILE_LIDAR_RNG15_RFL8_NIR8_ZONE16': <UDPProfileLidar.RNG15_RFL8_NIR8_ZONE16: 8>, 'PROFILE_LIDAR_RNG19_RFL8_SIG16_NIR16': <UDPProfileLidar.RNG19_RFL8_SIG16_NIR16: 3>, 'PROFILE_LIDAR_RNG19_RFL8_SIG16_NIR16_DUAL': <UDPProfileLidar.RNG19_RFL8_SIG16_NIR16_DUAL: 2>, 'PROFILE_LIDAR_RNG19_RFL8_SIG16_NIR16_ZONE16': <UDPProfileLidar.RNG19_RFL8_SIG16_NIR16_ZONE16: 9>, 'PROFILE_LIDAR_UNKNOWN': <UDPProfileLidar.UNKNOWN: 0>, 'RNG15_RFL8_NIR8': <UDPProfileLidar.RNG15_RFL8_NIR8: 4>, 'RNG15_RFL8_NIR8_DUAL': <UDPProfileLidar.RNG15_RFL8_NIR8_DUAL: 7>, 'RNG15_RFL8_NIR8_ZONE16': <UDPProfileLidar.RNG15_RFL8_NIR8_ZONE16: 8>, 'RNG19_RFL8_SIG16_NIR16': <UDPProfileLidar.RNG19_RFL8_SIG16_NIR16: 3>, 'RNG19_RFL8_SIG16_NIR16_DUAL': <UDPProfileLidar.RNG19_RFL8_SIG16_NIR16_DUAL: 2>, 'RNG19_RFL8_SIG16_NIR16_ZONE16': <UDPProfileLidar.RNG19_RFL8_SIG16_NIR16_ZONE16: 9>, 'UNKNOWN': <UDPProfileLidar.UNKNOWN: 0>})
__module__ = 'ouster.sdk._bindings.client'
__ne__(self: object, other: object) bool
__repr__(self: object) str
__setstate__(self: ouster.sdk._bindings.client.UDPProfileLidar, state: int) None
__str__(self: ouster.sdk._bindings.client.UDPProfileLidar) str
from_string(arg0: str) ouster.sdk._bindings.client.UDPProfileLidar | None

Create UDPProfileLidar from string.

property name

The name of the Enum member.

property value

The value of the Enum member.

values = <iterator object>

UDPProfileIMU

class UDPProfileIMU(self: ouster.sdk._bindings.client.UDPProfileIMU, value: int)

UDP imu profile.

Members:

LEGACY

PROFILE_IMU_LEGACY

ACCEL32_GYRO32_NMEA

PROFILE_IMU_ACCEL32_GYRO32_NMEA

OFF

PROFILE_IMU_OFF

ACCEL32_GYRO32_NMEA = <UDPProfileIMU.ACCEL32_GYRO32_NMEA: 2>
LEGACY = <UDPProfileIMU.LEGACY: 1>
OFF = <UDPProfileIMU.OFF: 100>
PROFILE_IMU_ACCEL32_GYRO32_NMEA = <UDPProfileIMU.ACCEL32_GYRO32_NMEA: 2>
PROFILE_IMU_LEGACY = <UDPProfileIMU.LEGACY: 1>
PROFILE_IMU_OFF = <UDPProfileIMU.OFF: 100>
__annotations__ = {}
__eq__(self: object, other: object) bool
__getstate__(self: object) int
__hash__(self: object) int
__index__(self: ouster.sdk._bindings.client.UDPProfileIMU) int
__init__(self: ouster.sdk._bindings.client.UDPProfileIMU, value: int) None
__int__(self: ouster.sdk._bindings.client.UDPProfileIMU) int
__members__ = mappingproxy({'ACCEL32_GYRO32_NMEA': <UDPProfileIMU.ACCEL32_GYRO32_NMEA: 2>, 'LEGACY': <UDPProfileIMU.LEGACY: 1>, 'OFF': <UDPProfileIMU.OFF: 100>, 'PROFILE_IMU_ACCEL32_GYRO32_NMEA': <UDPProfileIMU.ACCEL32_GYRO32_NMEA: 2>, 'PROFILE_IMU_LEGACY': <UDPProfileIMU.LEGACY: 1>, 'PROFILE_IMU_OFF': <UDPProfileIMU.OFF: 100>})
__module__ = 'ouster.sdk._bindings.client'
__ne__(self: object, other: object) bool
__repr__(self: object) str
__setstate__(self: ouster.sdk._bindings.client.UDPProfileIMU, state: int) None
__str__(self: ouster.sdk._bindings.client.UDPProfileIMU) str
static from_string(arg0: str) object

Create enum value from string.

property name

The name of the Enum member.

property value

The value of the Enum member.

values = <iterator object>

HeaderType

class HeaderType(self: ouster.sdk._bindings.client.HeaderType, value: int)

UDP header format profile.

Members:

STANDARD

HEADER_TYPE_STANDARD

FUSA

HEADER_TYPE_FUSA

FUSA = <HeaderType.FUSA: 2>
HEADER_TYPE_FUSA = <HeaderType.FUSA: 2>
HEADER_TYPE_STANDARD = <HeaderType.STANDARD: 1>
STANDARD = <HeaderType.STANDARD: 1>
__annotations__ = {}
__eq__(self: object, other: object) bool
__getstate__(self: object) int
__hash__(self: object) int
__index__(self: ouster.sdk._bindings.client.HeaderType) int
__init__(self: ouster.sdk._bindings.client.HeaderType, value: int) None
__int__(self: ouster.sdk._bindings.client.HeaderType) int
__members__ = mappingproxy({'FUSA': <HeaderType.FUSA: 2>, 'HEADER_TYPE_FUSA': <HeaderType.FUSA: 2>, 'HEADER_TYPE_STANDARD': <HeaderType.STANDARD: 1>, 'STANDARD': <HeaderType.STANDARD: 1>})
__module__ = 'ouster.sdk._bindings.client'
__ne__(self: object, other: object) bool
__repr__(self: object) str
__setstate__(self: ouster.sdk._bindings.client.HeaderType, state: int) None
__str__(self: ouster.sdk._bindings.client.HeaderType) str
static from_string(arg0: str) object

Create enum value from string.

property name

The name of the Enum member.

property value

The value of the Enum member.

values = <iterator object>

SensorConfig

class SensorConfig(*args, **kwargs)

Corresponds to sensor config parameters.

Please see sensor documentation for the meaning of each property.

Overloaded function.

  1. __init__(self: ouster.sdk._bindings.client.SensorConfig) -> None

Construct an empty SensorConfig.

  1. __init__(self: ouster.sdk._bindings.client.SensorConfig, config_string: str) -> None

    Construct a SensorConfig from a json string. Args:

    config_string (str): json string to parse

__annotations__ = {}
__copy__(self: ouster.sdk._bindings.client.SensorConfig) ouster.sdk._bindings.client.SensorConfig
__deepcopy__(self: ouster.sdk._bindings.client.SensorConfig, arg0: dict) ouster.sdk._bindings.client.SensorConfig
__eq__(self: ouster.sdk._bindings.client.SensorConfig, arg0: ouster.sdk._bindings.client.SensorConfig) bool
__hash__ = None
__init__(*args, **kwargs)

Overloaded function.

  1. __init__(self: ouster.sdk._bindings.client.SensorConfig) -> None

Construct an empty SensorConfig.

  1. __init__(self: ouster.sdk._bindings.client.SensorConfig, config_string: str) -> None

    Construct a SensorConfig from a json string. Args:

    config_string (str): json string to parse

__module__ = 'ouster.sdk._bindings.client'
__str__(self: ouster.sdk._bindings.client.SensorConfig) str
property accel_fsr

The accelerometer full scale measurement range to use. See sensor documentation for details.

property azimuth_window

Tuple representing the visible region of interest of the sensor in millidegrees, .e.g., (0, 360000) for full visibility.

property bloom_reduction_optimization

The type of bloom reduction optimization to use.

property columns_per_packet

Measurement blocks per UDP packet. See sensor documentation for details.

property extra_options

Extra configuration options on the sensor. Each value should be stringized json.

property gyro_fsr

The gyro full scale measurement range to use. See sensor documentation for details.

property header_type

Type of UDP packet header to use.

property imu_packets_per_frame

Number of IMU packets per lidar frame.

property lidar_frame_azimuth_offset

Origin angle for the sensor in millidegrees.

property lidar_mode

Horizontal and Vertical Resolution rate of sensor as mode, e.g., 1024x10. See class LidarMode.

property min_range_threshold_cm

The minimum detection range of the sensor in cm. See sensor documentation for details.

property multipurpose_io_mode

Mode of MULTIPURPOSE_IO pin. See class MultipurposeIOMode.

property nmea_baud_rate

Expected baud rate sensor attempts to decode for NMEA UART input $GPRMC messages.

property nmea_ignore_valid_char

NMEA Ignore Valid Char. True corresponds to 1 and False to 0 for property; see sensor documentation for details.

property nmea_in_polarity

Polarity of NMEA UART input $GPRMC messages. See sensor documentation for details.

property nmea_leap_seconds

Integer number of leap seconds that will be added to the UDP timetsamp when calculating seconds since Unix Epoch time. See sensor documentation for details.

property operating_mode

Operating Mode of sensor. See class OperatingMode.

property phase_lock_enable

Enable phase lock. See sensor documentation for more details.

property phase_lock_offset

Angle in Lidar Coordinate Frame that sensors are locked to, in millidegrees. See sensor documentation for details.

property return_order

The priority of sensor returns to output. See sensor documentation for details.

property signal_multiplier

Multiplier for signal strength of sensor, corresponding to maximum allowable azimuth_window. Gen 2 Only.

property sync_pulse_in_polarity

Polarity of SYNC_PULSE_IN pin. See sensor documentation for details.

property sync_pulse_out_angle

Polarity of SYNC_PULSE_OUT output. See sensor documentation for details.

property sync_pulse_out_frequency

SYNC_PULSE_OUT rate. See sensor documentation for details.

property sync_pulse_out_polarity

Polarity of SYNC_PULSE_OUT output. See sensor documentation for details.

property sync_pulse_out_pulse_width

SYNC_PULSE_OUT pulse width in ms. See sensor documentation for details.

property timestamp_mode

Timestamp mode of sensor. See class TimestampMode.

property udp_dest

Destination to which sensor sends lidar and IMU UDP traffic.

property udp_dest_zm

Destination to which sensor sends ZM UDP traffic.

property udp_multicast_ttl

Multicast TTL for IMU and lidar UDP traffic.

property udp_multicast_ttl_zm

Multicast TTL for ZM UDP traffic.

property udp_port_imu

Port on UDP destination to which IMU data will be sent.

property udp_port_lidar

Port on UDP destination to which lidar data will be sent.

property udp_port_zm

Port on UDP destination to which ZM data will be sent.

property udp_profile_imu

UDP packet format for imu data. See sensor documentation for details.

property udp_profile_lidar

UDP packet format for lidar data. See sensor documentation for details.

CalibrationStatus

class CalibrationStatus(self: ouster.sdk._bindings.client.CalibrationStatus)

Sensor Calibration in a Sensor Metadata, covering reflectivity calibration and more”

__annotations__ = {}
__eq__(self: ouster.sdk._bindings.client.CalibrationStatus, arg0: ouster.sdk._bindings.client.CalibrationStatus) bool
__hash__ = None
__init__(self: ouster.sdk._bindings.client.CalibrationStatus) None

Sensor Calibration in a Sensor Metadata, covering reflectivity calibration and more”

__module__ = 'ouster.sdk._bindings.client'
__str__(self: ouster.sdk._bindings.client.CalibrationStatus) str
property reflectivity_status

Reflectivity calibration status

property reflectivity_timestamp

Reflectivity timestamp

SensorHttp

class SensorHttp
__annotations__ = {}
__init__(*args, **kwargs)
__module__ = 'ouster.sdk._bindings.client'
active_config_params(self: ouster.sdk._bindings.client.SensorHttp, timeout_sec: int = 4) str
apply_zone_monitor_staged_config_to_active(self: ouster.sdk._bindings.client.SensorHttp, timeout_sec: int = 40) None
auto_detected_udp_dest(self: ouster.sdk._bindings.client.SensorHttp, timeout_sec: int = 4, original_destination: str | None = None) str
beam_intrinsics(self: ouster.sdk._bindings.client.SensorHttp, timeout_sec: int = 4) str
static create(hostname: str, timeout_sec: int = 40) ouster.sdk._bindings.client.SensorHttp
delete_static_ip(self: ouster.sdk._bindings.client.SensorHttp, timeout_sec: int = 4) None
delete_user_data(self: ouster.sdk._bindings.client.SensorHttp, timeout_sec: int = 4) None
delete_zone_monitor_staged_config(self: ouster.sdk._bindings.client.SensorHttp, timeout_sec: int = 40) None
diagnostics_dump(self: ouster.sdk._bindings.client.SensorHttp, timeout_sec: int = 40) bytes
firmware_version(self: ouster.sdk._bindings.client.SensorHttp) ouster.sdk._bindings.client.Version
get_config_params(self: ouster.sdk._bindings.client.SensorHttp, active: bool, timeout_sec: int = 4) str
static get_firmware_version(hostname: str, timeout_sec: int = 4) ouster.sdk._bindings.client.Version
get_user_data(self: ouster.sdk._bindings.client.SensorHttp, timeout_sec: int = 4) str
get_zone_monitor_config_zip(self: ouster.sdk._bindings.client.SensorHttp, staged: bool = False, timeout_sec: int = 40) bytes
get_zone_monitor_live_ids(self: ouster.sdk._bindings.client.SensorHttp, timeout_sec: int = 4) list[int]
hostname(self: ouster.sdk._bindings.client.SensorHttp) str
imu_intrinsics(self: ouster.sdk._bindings.client.SensorHttp, timeout_sec: int = 4) str
lidar_data_format(self: ouster.sdk._bindings.client.SensorHttp, timeout_sec: int = 4) str
lidar_intrinsics(self: ouster.sdk._bindings.client.SensorHttp, timeout_sec: int = 4) str
metadata(self: ouster.sdk._bindings.client.SensorHttp, timeout_sec: int = 4) str
network(self: ouster.sdk._bindings.client.SensorHttp, timeout_sec: int = 4) str
reinitialize(self: ouster.sdk._bindings.client.SensorHttp, timeout_sec: int = 4) None
restart(self: ouster.sdk._bindings.client.SensorHttp, timeout_sec: int = 40) None
save_config_params(self: ouster.sdk._bindings.client.SensorHttp, timeout_sec: int = 4) None
sensor_info(self: ouster.sdk._bindings.client.SensorHttp, timeout_sec: int = 4) str
set_config_param(self: ouster.sdk._bindings.client.SensorHttp, key: str, value: str, timeout_sec: int = 4) None
set_static_ip(*args, **kwargs)

Overloaded function.

  1. set_static_ip(self: ouster.sdk._bindings.client.SensorHttp, ip_address: str, timeout_sec: int = 4) -> None

  2. set_static_ip(self: ouster.sdk._bindings.client.SensorHttp, ip_address: str, gateway_address: str, timeout_sec: int = 4) -> None

set_udp_dest_auto(self: ouster.sdk._bindings.client.SensorHttp, timeout_sec: int = 4) None
set_user_data(self: ouster.sdk._bindings.client.SensorHttp, data: str, keep_on_config_delete: bool = True, timeout_sec: int = 4) None
set_zone_monitor_config_zip(self: ouster.sdk._bindings.client.SensorHttp, zip_bytes: str, timeout_sec: int = 40) None
set_zone_monitor_live_ids(self: ouster.sdk._bindings.client.SensorHttp, zone_ids: list[int], timeout_sec: int = 4) None
staged_config_params(self: ouster.sdk._bindings.client.SensorHttp, timeout_sec: int = 4) str

ShotLimitingStatus

class ShotLimitingStatus(self: ouster.sdk._bindings.client.ShotLimitingStatus, value: int)

Shot Limiting Status.

Members:

NORMAL

SHOT_LIMITING_NORMAL

IMMINENT

SHOT_LIMITING_IMMINENT

REDUCTION_0_10

SHOT_LIMITING_REDUCTION_0_10

REDUCTION_10_20

SHOT_LIMITING_REDUCTION_10_20

REDUCTION_20_30

SHOT_LIMITING_REDUCTION_20_30

REDUCTION_30_40

SHOT_LIMITING_REDUCTION_30_40

REDUCTION_40_50

SHOT_LIMITING_REDUCTION_40_50

REDUCTION_50_60

SHOT_LIMITING_REDUCTION_50_60

REDUCTION_60_70

SHOT_LIMITING_REDUCTION_60_70

REDUCTION_70_75

SHOT_LIMITING_REDUCTION_70_75

IMMINENT = <ShotLimitingStatus.IMMINENT: 1>
NORMAL = <ShotLimitingStatus.NORMAL: 0>
REDUCTION_0_10 = <ShotLimitingStatus.REDUCTION_0_10: 2>
REDUCTION_10_20 = <ShotLimitingStatus.REDUCTION_10_20: 3>
REDUCTION_20_30 = <ShotLimitingStatus.REDUCTION_20_30: 4>
REDUCTION_30_40 = <ShotLimitingStatus.REDUCTION_30_40: 5>
REDUCTION_40_50 = <ShotLimitingStatus.REDUCTION_40_50: 6>
REDUCTION_50_60 = <ShotLimitingStatus.REDUCTION_50_60: 7>
REDUCTION_60_70 = <ShotLimitingStatus.REDUCTION_60_70: 8>
REDUCTION_70_75 = <ShotLimitingStatus.REDUCTION_70_75: 9>
SHOT_LIMITING_IMMINENT = <ShotLimitingStatus.IMMINENT: 1>
SHOT_LIMITING_NORMAL = <ShotLimitingStatus.NORMAL: 0>
SHOT_LIMITING_REDUCTION_0_10 = <ShotLimitingStatus.REDUCTION_0_10: 2>
SHOT_LIMITING_REDUCTION_10_20 = <ShotLimitingStatus.REDUCTION_10_20: 3>
SHOT_LIMITING_REDUCTION_20_30 = <ShotLimitingStatus.REDUCTION_20_30: 4>
SHOT_LIMITING_REDUCTION_30_40 = <ShotLimitingStatus.REDUCTION_30_40: 5>
SHOT_LIMITING_REDUCTION_40_50 = <ShotLimitingStatus.REDUCTION_40_50: 6>
SHOT_LIMITING_REDUCTION_50_60 = <ShotLimitingStatus.REDUCTION_50_60: 7>
SHOT_LIMITING_REDUCTION_60_70 = <ShotLimitingStatus.REDUCTION_60_70: 8>
SHOT_LIMITING_REDUCTION_70_75 = <ShotLimitingStatus.REDUCTION_70_75: 9>
__annotations__ = {}
__eq__(self: object, other: object) bool
__getstate__(self: object) int
__hash__(self: object) int
__index__(self: ouster.sdk._bindings.client.ShotLimitingStatus) int
__init__(self: ouster.sdk._bindings.client.ShotLimitingStatus, value: int) None
__int__(self: ouster.sdk._bindings.client.ShotLimitingStatus) int
__members__ = mappingproxy({'IMMINENT': <ShotLimitingStatus.IMMINENT: 1>, 'NORMAL': <ShotLimitingStatus.NORMAL: 0>, 'REDUCTION_0_10': <ShotLimitingStatus.REDUCTION_0_10: 2>, 'REDUCTION_10_20': <ShotLimitingStatus.REDUCTION_10_20: 3>, 'REDUCTION_20_30': <ShotLimitingStatus.REDUCTION_20_30: 4>, 'REDUCTION_30_40': <ShotLimitingStatus.REDUCTION_30_40: 5>, 'REDUCTION_40_50': <ShotLimitingStatus.REDUCTION_40_50: 6>, 'REDUCTION_50_60': <ShotLimitingStatus.REDUCTION_50_60: 7>, 'REDUCTION_60_70': <ShotLimitingStatus.REDUCTION_60_70: 8>, 'REDUCTION_70_75': <ShotLimitingStatus.REDUCTION_70_75: 9>, 'SHOT_LIMITING_IMMINENT': <ShotLimitingStatus.IMMINENT: 1>, 'SHOT_LIMITING_NORMAL': <ShotLimitingStatus.NORMAL: 0>, 'SHOT_LIMITING_REDUCTION_0_10': <ShotLimitingStatus.REDUCTION_0_10: 2>, 'SHOT_LIMITING_REDUCTION_10_20': <ShotLimitingStatus.REDUCTION_10_20: 3>, 'SHOT_LIMITING_REDUCTION_20_30': <ShotLimitingStatus.REDUCTION_20_30: 4>, 'SHOT_LIMITING_REDUCTION_30_40': <ShotLimitingStatus.REDUCTION_30_40: 5>, 'SHOT_LIMITING_REDUCTION_40_50': <ShotLimitingStatus.REDUCTION_40_50: 6>, 'SHOT_LIMITING_REDUCTION_50_60': <ShotLimitingStatus.REDUCTION_50_60: 7>, 'SHOT_LIMITING_REDUCTION_60_70': <ShotLimitingStatus.REDUCTION_60_70: 8>, 'SHOT_LIMITING_REDUCTION_70_75': <ShotLimitingStatus.REDUCTION_70_75: 9>})
__module__ = 'ouster.sdk._bindings.client'
__ne__(self: object, other: object) bool
__repr__(self: object) str
__setstate__(self: ouster.sdk._bindings.client.ShotLimitingStatus, state: int) None
__str__(self: ouster.sdk._bindings.client.ShotLimitingStatus) str
static from_string(arg0: str) object

Create enum value from string.

property name

The name of the Enum member.

property value

The value of the Enum member.

values = <iterator object>

ThermalShutdownStatus

class ThermalShutdownStatus(self: ouster.sdk._bindings.client.ThermalShutdownStatus, value: int)

Thermal Shutdown Status.

Members:

NORMAL

THERMAL_SHUTDOWN_NORMAL

IMMINENT

THERMAL_SHUTDOWN_IMMINENT

IMMINENT = <ThermalShutdownStatus.IMMINENT: 1>
NORMAL = <ThermalShutdownStatus.NORMAL: 0>
THERMAL_SHUTDOWN_IMMINENT = <ThermalShutdownStatus.IMMINENT: 1>
THERMAL_SHUTDOWN_NORMAL = <ThermalShutdownStatus.NORMAL: 0>
__annotations__ = {}
__eq__(self: object, other: object) bool
__getstate__(self: object) int
__hash__(self: object) int
__index__(self: ouster.sdk._bindings.client.ThermalShutdownStatus) int
__init__(self: ouster.sdk._bindings.client.ThermalShutdownStatus, value: int) None
__int__(self: ouster.sdk._bindings.client.ThermalShutdownStatus) int
__members__ = mappingproxy({'IMMINENT': <ThermalShutdownStatus.IMMINENT: 1>, 'NORMAL': <ThermalShutdownStatus.NORMAL: 0>, 'THERMAL_SHUTDOWN_IMMINENT': <ThermalShutdownStatus.IMMINENT: 1>, 'THERMAL_SHUTDOWN_NORMAL': <ThermalShutdownStatus.NORMAL: 0>})
__module__ = 'ouster.sdk._bindings.client'
__ne__(self: object, other: object) bool
__repr__(self: object) str
__setstate__(self: ouster.sdk._bindings.client.ThermalShutdownStatus, state: int) None
__str__(self: ouster.sdk._bindings.client.ThermalShutdownStatus) str
static from_string(arg0: str) object

Create enum value from string.

property name

The name of the Enum member.

property value

The value of the Enum member.

values = <iterator object>

FieldClass

class FieldClass(self: ouster.sdk._bindings.client.FieldClass, value: int)

LidarScan field classes

Members:

PIXEL_FIELD

COLUMN_FIELD

PACKET_FIELD

SCAN_FIELD

COLUMN_FIELD = <FieldClass.COLUMN_FIELD: 2>
PACKET_FIELD = <FieldClass.PACKET_FIELD: 3>
PIXEL_FIELD = <FieldClass.PIXEL_FIELD: 1>
SCAN_FIELD = <FieldClass.SCAN_FIELD: 4>
__annotations__ = {}
__eq__(self: object, other: object) bool
__ge__(self: object, other: object) bool
__getstate__(self: object) int
__gt__(self: object, other: object) bool
__hash__(self: object) int
__index__(self: ouster.sdk._bindings.client.FieldClass) int
__init__(self: ouster.sdk._bindings.client.FieldClass, value: int) None
__int__(self: ouster.sdk._bindings.client.FieldClass) int
__le__(self: object, other: object) bool
__lt__(self: object, other: object) bool
__members__ = mappingproxy({'COLUMN_FIELD': <FieldClass.COLUMN_FIELD: 2>, 'PACKET_FIELD': <FieldClass.PACKET_FIELD: 3>, 'PIXEL_FIELD': <FieldClass.PIXEL_FIELD: 1>, 'SCAN_FIELD': <FieldClass.SCAN_FIELD: 4>})
__module__ = 'ouster.sdk._bindings.client'
__ne__(self: object, other: object) bool
__repr__(self: object) str
__setstate__(self: ouster.sdk._bindings.client.FieldClass, state: int) None
__str__(self: ouster.sdk._bindings.client.FieldClass) str
static from_string(arg0: str) object

Create enum value from string.

property name

The name of the Enum member.

property value

The value of the Enum member.

values = <iterator object>

FullScaleRange

class FullScaleRange(self: ouster.sdk._bindings.client.FullScaleRange, value: int)

IMU output scale range.

See sensor documentation for details.

Members:

NORMAL

FSR_NORMAL

EXTENDED

FSR_EXTENDED

EXTENDED = <FullScaleRange.EXTENDED: 1>
FSR_EXTENDED = <FullScaleRange.EXTENDED: 1>
FSR_NORMAL = <FullScaleRange.NORMAL: 0>
NORMAL = <FullScaleRange.NORMAL: 0>
__annotations__ = {}
__eq__(self: object, other: object) bool
__getstate__(self: object) int
__hash__(self: object) int
__index__(self: ouster.sdk._bindings.client.FullScaleRange) int
__init__(self: ouster.sdk._bindings.client.FullScaleRange, value: int) None
__int__(self: ouster.sdk._bindings.client.FullScaleRange) int
__members__ = mappingproxy({'EXTENDED': <FullScaleRange.EXTENDED: 1>, 'FSR_EXTENDED': <FullScaleRange.EXTENDED: 1>, 'FSR_NORMAL': <FullScaleRange.NORMAL: 0>, 'NORMAL': <FullScaleRange.NORMAL: 0>})
__module__ = 'ouster.sdk._bindings.client'
__ne__(self: object, other: object) bool
__repr__(self: object) str
__setstate__(self: ouster.sdk._bindings.client.FullScaleRange, state: int) None
__str__(self: ouster.sdk._bindings.client.FullScaleRange) str
static from_string(arg0: str) object

Create enum value from string.

property name

The name of the Enum member.

property value

The value of the Enum member.

values = <iterator object>

ReturnOrder

class ReturnOrder(self: ouster.sdk._bindings.client.ReturnOrder, value: int)

Sensor return order.

See sensor documentation for details.

Members:

STRONGEST_TO_WEAKEST

ORDER_STRONGEST_TO_WEAKEST

FARTHEST_TO_NEAREST

ORDER_FARTHEST_TO_NEAREST

NEAREST_TO_FARTHEST

ORDER_NEAREST_TO_FARTHEST

STRONGEST_RETURN_FIRST

ORDER_STRONGEST_RETURN_FIRST

LAST_RETURN_FIRST

ORDER_LAST_RETURN_FIRST

FARTHEST_TO_NEAREST = <ReturnOrder.FARTHEST_TO_NEAREST: 1>
LAST_RETURN_FIRST = <ReturnOrder.LAST_RETURN_FIRST: 4>
NEAREST_TO_FARTHEST = <ReturnOrder.NEAREST_TO_FARTHEST: 2>
ORDER_FARTHEST_TO_NEAREST = <ReturnOrder.FARTHEST_TO_NEAREST: 1>
ORDER_LAST_RETURN_FIRST = <ReturnOrder.LAST_RETURN_FIRST: 4>
ORDER_NEAREST_TO_FARTHEST = <ReturnOrder.NEAREST_TO_FARTHEST: 2>
ORDER_STRONGEST_RETURN_FIRST = <ReturnOrder.STRONGEST_RETURN_FIRST: 3>
ORDER_STRONGEST_TO_WEAKEST = <ReturnOrder.STRONGEST_TO_WEAKEST: 0>
STRONGEST_RETURN_FIRST = <ReturnOrder.STRONGEST_RETURN_FIRST: 3>
STRONGEST_TO_WEAKEST = <ReturnOrder.STRONGEST_TO_WEAKEST: 0>
__annotations__ = {}
__eq__(self: object, other: object) bool
__getstate__(self: object) int
__hash__(self: object) int
__index__(self: ouster.sdk._bindings.client.ReturnOrder) int
__init__(self: ouster.sdk._bindings.client.ReturnOrder, value: int) None
__int__(self: ouster.sdk._bindings.client.ReturnOrder) int
__members__ = mappingproxy({'FARTHEST_TO_NEAREST': <ReturnOrder.FARTHEST_TO_NEAREST: 1>, 'LAST_RETURN_FIRST': <ReturnOrder.LAST_RETURN_FIRST: 4>, 'NEAREST_TO_FARTHEST': <ReturnOrder.NEAREST_TO_FARTHEST: 2>, 'ORDER_FARTHEST_TO_NEAREST': <ReturnOrder.FARTHEST_TO_NEAREST: 1>, 'ORDER_LAST_RETURN_FIRST': <ReturnOrder.LAST_RETURN_FIRST: 4>, 'ORDER_NEAREST_TO_FARTHEST': <ReturnOrder.NEAREST_TO_FARTHEST: 2>, 'ORDER_STRONGEST_RETURN_FIRST': <ReturnOrder.STRONGEST_RETURN_FIRST: 3>, 'ORDER_STRONGEST_TO_WEAKEST': <ReturnOrder.STRONGEST_TO_WEAKEST: 0>, 'STRONGEST_RETURN_FIRST': <ReturnOrder.STRONGEST_RETURN_FIRST: 3>, 'STRONGEST_TO_WEAKEST': <ReturnOrder.STRONGEST_TO_WEAKEST: 0>})
__module__ = 'ouster.sdk._bindings.client'
__ne__(self: object, other: object) bool
__repr__(self: object) str
__setstate__(self: ouster.sdk._bindings.client.ReturnOrder, state: int) None
__str__(self: ouster.sdk._bindings.client.ReturnOrder) str
static from_string(arg0: str) object

Create enum value from string.

property name

The name of the Enum member.

property value

The value of the Enum member.

values = <iterator object>

FieldType

class FieldType(self: ouster.sdk._bindings.client.FieldType, name: str, dtype: object, extra_dims: tuple = (), field_class: int = <FieldClass.PIXEL_FIELD: 1>)

Describes a field.

Construct a FieldType.

Parameters:
  • name – name of the field

  • dt – data type of the field, e.g. np.uint8.

  • extra_dims – a tuple representing the number of elements. in the dimensions beyond width and height, for fields with three or more dimensions.

  • field_class – indicates whether the field has an entry per-packet, per-column, per-scan or per-pixel.

__annotations__ = {}
__eq__(self: ouster.sdk._bindings.client.FieldType, arg0: ouster.sdk._bindings.client.FieldType) bool
__hash__ = None
__init__(self: ouster.sdk._bindings.client.FieldType, name: str, dtype: object, extra_dims: tuple = (), field_class: int = <FieldClass.PIXEL_FIELD: 1>) None

Construct a FieldType.

Parameters:
  • name – name of the field

  • dt – data type of the field, e.g. np.uint8.

  • extra_dims – a tuple representing the number of elements. in the dimensions beyond width and height, for fields with three or more dimensions.

  • field_class – indicates whether the field has an entry per-packet, per-column, per-scan or per-pixel.

__lt__(self: ouster.sdk._bindings.client.FieldType, arg0: ouster.sdk._bindings.client.FieldType) bool
__module__ = 'ouster.sdk._bindings.client'
__repr__(self: ouster.sdk._bindings.client.FieldType) str
__str__(self: ouster.sdk._bindings.client.FieldType) str
property element_type

The data type (as a numpy dtype) of the field.

property extra_dims

A tuple representing the size of extra dimensions (if the field is greater than 2 dimensions.)

property field_class

“field_class - an enum that indicates whether the field has an entry per-packet, per-column, per-scan or per-pixel.

property name

The name of the field.

LidarScan

class LidarScan(*args, **kwargs)

Represents a single “scan” or “frame” of lidar data.

This is a “struct of arrays” representation of lidar data. Column headers are stored as contiguous W element arrays, while fields are WxH arrays. Channel fields are staggered, so the ith column header value corresponds to the ith column of data in each field.

Overloaded function.

  1. __init__(self: ouster.sdk._bindings.client.LidarScan, h: int, w: int) -> None

    Default constructor creates a 0 x 0 scan

    Args:

    height: height of scan width: width of scan

    Returns:

    New LidarScan of 0x0 expecting fields of the LEGACY profile

  2. __init__(self: ouster.sdk._bindings.client.LidarScan, h: int, w: int, profile: ouster::sdk::core::UDPProfileLidar, columns_per_packet: int = 16) -> None

    Initialize a scan with the default fields for a particular udp profile

    Args:

    height: height of LidarScan, i.e., number of channels width: width of LidarScan profile: udp profile

    Returns:

    New LidarScan of specified dimensions expecting fields of specified profile

  3. __init__(self: ouster.sdk._bindings.client.LidarScan, w: int, h: int, field_types: list[ouster.sdk._bindings.client.FieldType], columns_per_packet: int = 16) -> None

    Initialize a scan with a custom set of fields

    Args:

    height: height of LidarScan, i.e., number of channels width: width of LidarScan field_types: list of FieldType that specifies which fields should be present in the scan

    Returns:

    New LidarScan of specified dimensions expecting fields specified by dict

  4. __init__(self: ouster.sdk._bindings.client.LidarScan, sensor_info: ouster::sdk::core::SensorInfo) -> None

    Initialize a scan with defaults fields and size for a given sensor_info

    Args:

    sensor_info: SensorInfo to construct a scan for

    Returns:

    New LidarScan approprate for the sensor_info

  5. __init__(self: ouster.sdk._bindings.client.LidarScan, sensor_info: ouster::sdk::core::SensorInfo) -> None

    Initialize a scan with defaults fields and size for a given sensor_info

    Args:

    sensor_info: SensorInfo to construct a scan for

    Returns:

    New LidarScan approprate for the sensor_info

  6. __init__(self: ouster.sdk._bindings.client.LidarScan, sensor_info: ouster::sdk::core::SensorInfo, field_types: list[ouster.sdk._bindings.client.FieldType]) -> None

    Initialize a scan with defaults fields and size for a given sensor_info with only the specified fields

    Args:

    sensor_info: SensorInfo to construct a scan for field_types: list of fields to have in the new scan where keys are ChanFields

    and values are type, e.g., FieldType(client.ChanField.SIGNAL, np.uint32)

    Returns:

    New LidarScan approprate for the sensor_info

  7. __init__(self: ouster.sdk._bindings.client.LidarScan, source: ouster.sdk._bindings.client.LidarScan, field_types: list[ouster.sdk._bindings.client.FieldType]) -> None

    Initialize a lidar scan from another with only the indicated fields. Casts, zero pads or removes fields from the original scan if necessary.

    Args:

    source: LidarScan to copy data from field_types: list of fields to have in the new scan where keys are ChanFields

    and values are type, e.g., FieldType(client.ChanField.SIGNAL, np.uint32)

    Returns:

    New LidarScan with selected data copied over or zero padded

  8. __init__(self: ouster.sdk._bindings.client.LidarScan, source: ouster.sdk._bindings.client.LidarScan) -> None

    Initialize a lidar scan with a copy of the data from another.

    Args:

    source: LidarScan to copy

    Returns:

    New LidarScan with data copied over from provided scan.

__annotations__ = {}
__copy__(self: ouster.sdk._bindings.client.LidarScan) ouster.sdk._bindings.client.LidarScan
__deepcopy__(self: ouster.sdk._bindings.client.LidarScan, arg0: dict) ouster.sdk._bindings.client.LidarScan
__eq__(self: ouster.sdk._bindings.client.LidarScan, arg0: ouster.sdk._bindings.client.LidarScan) bool
__hash__ = None
__init__(*args, **kwargs)

Overloaded function.

  1. __init__(self: ouster.sdk._bindings.client.LidarScan, h: int, w: int) -> None

    Default constructor creates a 0 x 0 scan

    Args:

    height: height of scan width: width of scan

    Returns:

    New LidarScan of 0x0 expecting fields of the LEGACY profile

  2. __init__(self: ouster.sdk._bindings.client.LidarScan, h: int, w: int, profile: ouster::sdk::core::UDPProfileLidar, columns_per_packet: int = 16) -> None

    Initialize a scan with the default fields for a particular udp profile

    Args:

    height: height of LidarScan, i.e., number of channels width: width of LidarScan profile: udp profile

    Returns:

    New LidarScan of specified dimensions expecting fields of specified profile

  3. __init__(self: ouster.sdk._bindings.client.LidarScan, w: int, h: int, field_types: list[ouster.sdk._bindings.client.FieldType], columns_per_packet: int = 16) -> None

    Initialize a scan with a custom set of fields

    Args:

    height: height of LidarScan, i.e., number of channels width: width of LidarScan field_types: list of FieldType that specifies which fields should be present in the scan

    Returns:

    New LidarScan of specified dimensions expecting fields specified by dict

  4. __init__(self: ouster.sdk._bindings.client.LidarScan, sensor_info: ouster::sdk::core::SensorInfo) -> None

    Initialize a scan with defaults fields and size for a given sensor_info

    Args:

    sensor_info: SensorInfo to construct a scan for

    Returns:

    New LidarScan approprate for the sensor_info

  5. __init__(self: ouster.sdk._bindings.client.LidarScan, sensor_info: ouster::sdk::core::SensorInfo) -> None

    Initialize a scan with defaults fields and size for a given sensor_info

    Args:

    sensor_info: SensorInfo to construct a scan for

    Returns:

    New LidarScan approprate for the sensor_info

  6. __init__(self: ouster.sdk._bindings.client.LidarScan, sensor_info: ouster::sdk::core::SensorInfo, field_types: list[ouster.sdk._bindings.client.FieldType]) -> None

    Initialize a scan with defaults fields and size for a given sensor_info with only the specified fields

    Args:

    sensor_info: SensorInfo to construct a scan for field_types: list of fields to have in the new scan where keys are ChanFields

    and values are type, e.g., FieldType(client.ChanField.SIGNAL, np.uint32)

    Returns:

    New LidarScan approprate for the sensor_info

  7. __init__(self: ouster.sdk._bindings.client.LidarScan, source: ouster.sdk._bindings.client.LidarScan, field_types: list[ouster.sdk._bindings.client.FieldType]) -> None

    Initialize a lidar scan from another with only the indicated fields. Casts, zero pads or removes fields from the original scan if necessary.

    Args:

    source: LidarScan to copy data from field_types: list of fields to have in the new scan where keys are ChanFields

    and values are type, e.g., FieldType(client.ChanField.SIGNAL, np.uint32)

    Returns:

    New LidarScan with selected data copied over or zero padded

  8. __init__(self: ouster.sdk._bindings.client.LidarScan, source: ouster.sdk._bindings.client.LidarScan) -> None

    Initialize a lidar scan with a copy of the data from another.

    Args:

    source: LidarScan to copy

    Returns:

    New LidarScan with data copied over from provided scan.

__module__ = 'ouster.sdk._bindings.client'
__repr__(self: ouster.sdk._bindings.client.LidarScan) str
__str__(self: ouster.sdk._bindings.client.LidarScan) str
add_field(*args, **kwargs)

Overloaded function.

  1. add_field(self: ouster.sdk._bindings.client.LidarScan, name: str, dtype: type, shape: tuple = (), field_class: int = <FieldClass.PIXEL_FIELD: 1>) -> object

    Adds a new field under specified name

    Args:

    name: name of the field to add shape: tuple of ints, shape of the field to add dtype: dtype of field to add, e.g. np.uint32 field_class: class of the field to add, see field_class

    Returns:

    The field as a numpy array

  2. add_field(self: ouster.sdk._bindings.client.LidarScan, type: ouster.sdk._bindings.client.FieldType) -> object

    Adds a new field under specified name and type

    Args:

    type: FieldType of the field to add

    Returns:

    The field as a numpy array

  3. add_field(self: ouster.sdk._bindings.client.LidarScan, name: str, data: numpy.ndarray, field_class: int = <FieldClass.PIXEL_FIELD: 1>) -> numpy.ndarray

    Adds a new field under the specified name, with the given contents. IMPORTANT: this will deep copy the supplied data.

    Args:

    name: the name of the new field data: the contents of the new field field_class: class of the field to add, see field_class

    Returns:

    The field as a numpy array.

property alert_flags

The alert flags header as a numpy array with W/columns-per-packet entries.

complete(self: ouster.sdk._bindings.client.LidarScan, window: tuple[int, int] | None = None) bool
del_field(self: ouster.sdk._bindings.client.LidarScan, arg0: str) numpy.ndarray

Release a field from the LidarScan and return it to the user

Parameters:

name – name of the field to drop

Returns:

The specified field as a numpy array

field(self: ouster.sdk._bindings.client.LidarScan, arg0: str) object

Return a view of the specified channel field.

Parameters:

name – name of the field to return

Returns:

The specified field as a numpy array

field_class(self: ouster.sdk._bindings.client.LidarScan, arg0: str) ouster.sdk._bindings.client.FieldClass

Retrieve FieldClass of field

Parameters:

name – name of the field

Returns:

FieldClass of the field

property field_types

Return an list of available fields.

property fields

Return a list of available fields.

property frame_id

Corresponds to the frame id header in the packet format.

property frame_status

Information from the packet header which corresponds to a frame.

get_first_valid_column(self: ouster.sdk._bindings.client.LidarScan) int

Return first valid column index in the scan.

get_first_valid_column_timestamp(self: ouster.sdk._bindings.client.LidarScan) int

Return first valid column timestamp in the scan.

get_first_valid_packet_timestamp(self: ouster.sdk._bindings.client.LidarScan) int

Return first valid packet timestamp in the scan.

get_last_valid_column(self: ouster.sdk._bindings.client.LidarScan) int

Return last valid column index in the scan.

get_last_valid_column_timestamp(self: ouster.sdk._bindings.client.LidarScan) int

Return last valid column timestamp in the scan.

get_last_valid_packet_timestamp(self: ouster.sdk._bindings.client.LidarScan) int

Return last valid packet timestamp in the scan.

property h

Height or vertical resolution of the scan.

has_field(*args, **kwargs)

Overloaded function.

  1. has_field(self: ouster.sdk._bindings.client.LidarScan, name: str) -> bool

    Returns true if the LidarScan has a field with the given name

    Args:

    name: name of the field to check for

    Returns:

    True if the field exists in the scan, false otherwise

  2. has_field(self: ouster.sdk._bindings.client.LidarScan, arg0: str) -> bool

    Check if a field with a given name exists in the LidarScan.

    Args:

    name: name of the field

    Returns:

    True if the field is present in the LidarScan.

property measurement_id

The measurement id header as a W-element numpy array.

property packet_count

The number of packets used to produce a full scan given the width in pixels and the number of columns per packet.

property packet_timestamp

The host timestamp header as a numpy array with W/columns-per-packet entries.

property pose

The pose vector of 4x4 homogeneous matrices (per each timestamp).

property sensor_info

The SensorInfo associated with this LidarScan.

shot_limiting(self: ouster.sdk._bindings.client.LidarScan) ouster::sdk::core::ShotLimitingStatus

The frame shot limiting status.

property shot_limiting_countdown

Shot-limiting countdown. Please refer to the firmware documentation for more information.

property shutdown_countdown

Thermal shutdown countdown. Please refer to the firmware documentation for more information.

property status

The measurement status header as a W-element numpy array.

thermal_shutdown(self: ouster.sdk._bindings.client.LidarScan) ouster::sdk::core::ThermalShutdownStatus

The frame thermal shutdown status.

property timestamp

The measurement timestamp header as a W-element numpy array.

property w

Width or horizontal resolution of the scan.

property zones

Packet

class Packet
__annotations__ = {}
__copy__(self: ouster.sdk._bindings.client.Packet) ouster.sdk._bindings.client.Packet
__deepcopy__(self: ouster.sdk._bindings.client.Packet, arg0: dict) ouster.sdk._bindings.client.Packet
__init__(*args, **kwargs)
__module__ = 'ouster.sdk._bindings.client'
alert_flags(self: ouster.sdk._bindings.client.Packet) int
property buf
calculate_crc(self: ouster.sdk._bindings.client.Packet) int
countdown_shot_limiting(self: ouster.sdk._bindings.client.Packet) int
countdown_thermal_shutdown(self: ouster.sdk._bindings.client.Packet) int
crc(self: ouster.sdk._bindings.client.Packet) int | None
property format
frame_id(self: ouster.sdk._bindings.client.Packet) int
property host_timestamp
init_id(self: ouster.sdk._bindings.client.Packet) int
packet_type(self: ouster.sdk._bindings.client.Packet) int
prod_sn(self: ouster.sdk._bindings.client.Packet) int
shot_limiting(self: ouster.sdk._bindings.client.Packet) int
thermal_shutdown(self: ouster.sdk._bindings.client.Packet) int
property type
validate(*args, **kwargs)

Overloaded function.

  1. validate(self: ouster.sdk._bindings.client.Packet, arg0: ouster.sdk._bindings.client.SensorInfo, arg1: ouster.sdk._bindings.client.PacketFormat) -> ouster::sdk::core::PacketValidationFailure

  2. validate(self: ouster.sdk._bindings.client.Packet, arg0: ouster.sdk._bindings.client.SensorInfo) -> ouster::sdk::core::PacketValidationFailure

LidarPacket

class LidarPacket(self: ouster.sdk._bindings.client.LidarPacket, size: int = 65536)
__annotations__ = {}
__copy__(self: ouster.sdk._bindings.client.LidarPacket) ouster.sdk._bindings.client.LidarPacket
__deepcopy__(self: ouster.sdk._bindings.client.LidarPacket, arg0: dict) ouster.sdk._bindings.client.LidarPacket
__init__(self: ouster.sdk._bindings.client.LidarPacket, size: int = 65536) None
__module__ = 'ouster.sdk._bindings.client'

ImuPacket

class ImuPacket(self: ouster.sdk._bindings.client.ImuPacket, size: int = 65536)
__annotations__ = {}
__copy__(self: ouster.sdk._bindings.client.ImuPacket) ouster.sdk._bindings.client.ImuPacket
__deepcopy__(self: ouster.sdk._bindings.client.ImuPacket, arg0: dict) ouster.sdk._bindings.client.ImuPacket
__init__(self: ouster.sdk._bindings.client.ImuPacket, size: int = 65536) None
__module__ = 'ouster.sdk._bindings.client'
accel(self: ouster.sdk._bindings.client.ImuPacket) numpy.ndarray[numpy.float32[m, 3]]
accel_ts(self: ouster.sdk._bindings.client.ImuPacket) int
av_x(self: ouster.sdk._bindings.client.ImuPacket) float
av_y(self: ouster.sdk._bindings.client.ImuPacket) float
av_z(self: ouster.sdk._bindings.client.ImuPacket) float
gyro(self: ouster.sdk._bindings.client.ImuPacket) numpy.ndarray[numpy.float32[m, 3]]
gyro_ts(self: ouster.sdk._bindings.client.ImuPacket) int
la_x(self: ouster.sdk._bindings.client.ImuPacket) float
la_y(self: ouster.sdk._bindings.client.ImuPacket) float
la_z(self: ouster.sdk._bindings.client.ImuPacket) float
measurement_id(self: ouster.sdk._bindings.client.ImuPacket) numpy.ndarray[numpy.uint16[m, 1]]
nmea_sentence(self: ouster.sdk._bindings.client.ImuPacket) str
nmea_ts(self: ouster.sdk._bindings.client.ImuPacket) int
status(self: ouster.sdk._bindings.client.ImuPacket) numpy.ndarray[numpy.uint16[m, 1]]
sys_ts(self: ouster.sdk._bindings.client.ImuPacket) int
timestamp(self: ouster.sdk._bindings.client.ImuPacket) numpy.ndarray[numpy.uint64[m, 1]]

ZonePacket

class ZonePacket(self: ouster.sdk._bindings.client.ZonePacket, size: int = 65536)
__annotations__ = {}
__copy__(self: ouster.sdk._bindings.client.ZonePacket) ouster.sdk._bindings.client.ZonePacket
__deepcopy__(self: ouster.sdk._bindings.client.ZonePacket, arg0: dict) ouster.sdk._bindings.client.ZonePacket
__init__(self: ouster.sdk._bindings.client.ZonePacket, size: int = 65536) None
__module__ = 'ouster.sdk._bindings.client'

PacketValidationFailure

class PacketValidationFailure(self: ouster.sdk._bindings.client.PacketValidationFailure, value: int)

Members:

NONE

PACKET_SIZE

ID

ID = <PacketValidationFailure.ID: 2>
NONE = <PacketValidationFailure.NONE: 0>
PACKET_SIZE = <PacketValidationFailure.PACKET_SIZE: 1>
__annotations__ = {}
__eq__(self: object, other: object) bool
__ge__(self: object, other: object) bool
__getstate__(self: object) int
__gt__(self: object, other: object) bool
__hash__(self: object) int
__index__(self: ouster.sdk._bindings.client.PacketValidationFailure) int
__init__(self: ouster.sdk._bindings.client.PacketValidationFailure, value: int) None
__int__(self: ouster.sdk._bindings.client.PacketValidationFailure) int
__le__(self: object, other: object) bool
__lt__(self: object, other: object) bool
__members__ = {'ID': <PacketValidationFailure.ID: 2>, 'NONE': <PacketValidationFailure.NONE: 0>, 'PACKET_SIZE': <PacketValidationFailure.PACKET_SIZE: 1>}
__module__ = 'ouster.sdk._bindings.client'
__ne__(self: object, other: object) bool
__repr__(self: object) str
__setstate__(self: ouster.sdk._bindings.client.PacketValidationFailure, state: int) None
__str__(self: object) str
property name
property value

PacketFormat

class PacketFormat(self: ouster.sdk._bindings.client.PacketFormat, arg0: ouster.sdk._bindings.client.SensorInfo)
__annotations__ = {}
__init__(self: ouster.sdk._bindings.client.PacketFormat, arg0: ouster.sdk._bindings.client.SensorInfo) None
__module__ = 'ouster.sdk._bindings.client'
alert_flags(self: ouster.sdk._bindings.client.PacketFormat, arg0: Buffer) int
calculate_crc(self: ouster.sdk._bindings.client.PacketFormat, arg0: Buffer) int
property col_header_size
property col_size
property columns_per_packet
countdown_shot_limiting(self: ouster.sdk._bindings.client.PacketFormat, arg0: Buffer) int
countdown_thermal_shutdown(self: ouster.sdk._bindings.client.PacketFormat, arg0: Buffer) int
crc(self: ouster.sdk._bindings.client.PacketFormat, arg0: Buffer) int | None
field_bitness(self: ouster.sdk._bindings.client.PacketFormat, arg0: str) int
field_value_mask(self: ouster.sdk._bindings.client.PacketFormat, arg0: str) int
property fields

Return an iterator of available channel fields.

frame_id(self: ouster.sdk._bindings.client.PacketFormat, arg0: Buffer) int
static from_data_format(arg0: ouster.sdk._bindings.client.DataFormat) ouster.sdk._bindings.client.PacketFormat
static from_info(arg0: ouster.sdk._bindings.client.SensorInfo) ouster.sdk._bindings.client.PacketFormat
static from_metadata(arg0: ouster.sdk._bindings.client.SensorInfo) ouster.sdk._bindings.client.PacketFormat
imu_accel_ts(self: ouster.sdk._bindings.client.PacketFormat, arg0: Buffer) int
imu_av_x(self: ouster.sdk._bindings.client.PacketFormat, arg0: Buffer) float
imu_av_y(self: ouster.sdk._bindings.client.PacketFormat, arg0: Buffer) float
imu_av_z(self: ouster.sdk._bindings.client.PacketFormat, arg0: Buffer) float
imu_gyro_ts(self: ouster.sdk._bindings.client.PacketFormat, arg0: Buffer) int
imu_la_x(self: ouster.sdk._bindings.client.PacketFormat, arg0: Buffer) float
imu_la_y(self: ouster.sdk._bindings.client.PacketFormat, arg0: Buffer) float
imu_la_z(self: ouster.sdk._bindings.client.PacketFormat, arg0: Buffer) float
property imu_measurements_per_packet
property imu_packet_size
property imu_packets_per_frame
imu_sys_ts(self: ouster.sdk._bindings.client.PacketFormat, arg0: Buffer) int
init_id(self: ouster.sdk._bindings.client.PacketFormat, arg0: Buffer) int
property lidar_packet_size
property max_frame_id
packet_field(self: ouster.sdk._bindings.client.PacketFormat, arg0: str, arg1: Buffer) numpy.ndarray
packet_header(self: ouster.sdk._bindings.client.PacketFormat, arg0: object, arg1: Buffer) numpy.ndarray
property packet_header_size
packet_type(self: ouster.sdk._bindings.client.PacketFormat, arg0: Buffer) int
property pixels_per_column
prod_sn(self: ouster.sdk._bindings.client.PacketFormat, arg0: Buffer) int
shot_limiting(self: ouster.sdk._bindings.client.PacketFormat, arg0: Buffer) int
thermal_shutdown(self: ouster.sdk._bindings.client.PacketFormat, arg0: Buffer) int
property udp_profile_lidar
property zone_packet_size

PacketWriter

class PacketWriter
__annotations__ = {}
__init__(*args, **kwargs)
__module__ = 'ouster.sdk._bindings.client'
static from_data_format(arg0: ouster.sdk._bindings.client.DataFormat) ouster.sdk._bindings.client.PacketWriter
static from_info(arg0: ouster.sdk._bindings.client.SensorInfo) ouster.sdk._bindings.client.PacketWriter
set_alert_flags(self: ouster.sdk._bindings.client.PacketWriter, arg0: ouster::sdk::core::LidarPacket, arg1: int) None
set_col_measurement_id(self: ouster.sdk._bindings.client.PacketWriter, arg0: ouster::sdk::core::LidarPacket, arg1: int, arg2: int) None
set_col_status(self: ouster.sdk._bindings.client.PacketWriter, arg0: ouster::sdk::core::LidarPacket, arg1: int, arg2: int) None
set_col_timestamp(self: ouster.sdk._bindings.client.PacketWriter, arg0: ouster::sdk::core::LidarPacket, arg1: int, arg2: int) None
set_field(*args, **kwargs)

Overloaded function.

  1. set_field(self: ouster.sdk._bindings.client.PacketWriter, arg0: ouster::sdk::core::LidarPacket, arg1: str, arg2: numpy.ndarray[numpy.uint8]) -> None

  2. set_field(self: ouster.sdk._bindings.client.PacketWriter, arg0: ouster::sdk::core::LidarPacket, arg1: str, arg2: numpy.ndarray[numpy.uint16]) -> None

  3. set_field(self: ouster.sdk._bindings.client.PacketWriter, arg0: ouster::sdk::core::LidarPacket, arg1: str, arg2: numpy.ndarray[numpy.uint32]) -> None

  4. set_field(self: ouster.sdk._bindings.client.PacketWriter, arg0: ouster::sdk::core::LidarPacket, arg1: str, arg2: numpy.ndarray[numpy.uint64]) -> None

  5. set_field(self: ouster.sdk._bindings.client.PacketWriter, arg0: ouster::sdk::core::LidarPacket, arg1: str, arg2: numpy.ndarray[numpy.int8]) -> None

  6. set_field(self: ouster.sdk._bindings.client.PacketWriter, arg0: ouster::sdk::core::LidarPacket, arg1: str, arg2: numpy.ndarray[numpy.int16]) -> None

  7. set_field(self: ouster.sdk._bindings.client.PacketWriter, arg0: ouster::sdk::core::LidarPacket, arg1: str, arg2: numpy.ndarray[numpy.int32]) -> None

  8. set_field(self: ouster.sdk._bindings.client.PacketWriter, arg0: ouster::sdk::core::LidarPacket, arg1: str, arg2: numpy.ndarray[numpy.int64]) -> None

  9. set_field(self: ouster.sdk._bindings.client.PacketWriter, arg0: ouster::sdk::core::LidarPacket, arg1: str, arg2: numpy.ndarray[numpy.float32]) -> None

  10. set_field(self: ouster.sdk._bindings.client.PacketWriter, arg0: ouster::sdk::core::LidarPacket, arg1: str, arg2: numpy.ndarray[numpy.float64]) -> None

set_frame_id(self: ouster.sdk._bindings.client.PacketWriter, arg0: ouster::sdk::core::LidarPacket, arg1: int) None
set_shot_limiting_countdown(self: ouster.sdk._bindings.client.PacketWriter, arg0: ouster::sdk::core::LidarPacket, arg1: int) None
set_shutdown_countdown(self: ouster.sdk._bindings.client.PacketWriter, arg0: ouster::sdk::core::LidarPacket, arg1: int) None

Version

class Version(*args, **kwargs)

Overloaded function.

  1. __init__(self: ouster.sdk._bindings.client.Version) -> None

  2. __init__(self: ouster.sdk._bindings.client.Version, major: int, minor: int, patch: int) -> None

__annotations__ = {}
__eq__(self: ouster.sdk._bindings.client.Version, arg0: ouster.sdk._bindings.client.Version) bool
__hash__ = None
__init__(*args, **kwargs)

Overloaded function.

  1. __init__(self: ouster.sdk._bindings.client.Version) -> None

  2. __init__(self: ouster.sdk._bindings.client.Version, major: int, minor: int, patch: int) -> None

__le__(self: ouster.sdk._bindings.client.Version, arg0: ouster.sdk._bindings.client.Version) bool
__lt__(self: ouster.sdk._bindings.client.Version, arg0: ouster.sdk._bindings.client.Version) bool
__module__ = 'ouster.sdk._bindings.client'
property build
static from_string(arg0: str) ouster.sdk._bindings.client.Version
property machine
property major
property minor
property patch
property prerelease
property stage

ValidatorIssues

class ValidatorIssues
__annotations__ = {}
__init__(*args, **kwargs)
__module__ = 'ouster.sdk._bindings.client'
property critical

Critical validator issues.

property information

Information validator issues

property warning

Warning validator issues.

ValidatorEntry

class ValidatorEntry
__annotations__ = {}
__init__(*args, **kwargs)
__module__ = 'ouster.sdk._bindings.client'
__repr__(self: ouster.sdk._bindings.client.ValidatorEntry) str

Get the string representation of a ValidatorEntry

Returns:

returns the string representation of a ValidatorEntry

__str__(self: ouster.sdk._bindings.client.ValidatorEntry) str

Get the string representation of a ValidatorEntry

Returns:

returns the string representation of a ValidatorEntry

get_msg(self: ouster.sdk._bindings.client.ValidatorEntry) str

Get the message of the ValidatorEntry

Returns:

returns the message of the ValidatorEntry

get_path(self: ouster.sdk._bindings.client.ValidatorEntry) str

Get the entry path to the issue.

Returns:

returns the entry path to the issue.

ScanBatcher

class ScanBatcher(self: ouster.sdk._bindings.client.ScanBatcher, arg0: ouster.sdk._bindings.client.SensorInfo)
__annotations__ = {}
__call__(self: ouster.sdk._bindings.client.ScanBatcher, arg0: ouster.sdk._bindings.client.Packet, arg1: ouster.sdk._bindings.client.LidarScan) bool
__init__(self: ouster.sdk._bindings.client.ScanBatcher, arg0: ouster.sdk._bindings.client.SensorInfo) None
__module__ = 'ouster.sdk._bindings.client'
batched_packets(self: ouster.sdk._bindings.client.ScanBatcher) int
reset(self: ouster.sdk._bindings.client.ScanBatcher) None

ScanSource

class ScanSource(self: ouster.sdk._bindings.client.ScanSource)

ScanSource is a base class for reading point cloud data from various sources.

__annotations__ = {}
__enter__(self: ouster.sdk._bindings.client.ScanSource) None
__exit__(self: ouster.sdk._bindings.client.ScanSource, arg0: object, arg1: object, arg2: object) None
__getitem__(*args, **kwargs)

Overloaded function.

  1. __getitem__(self: ouster.sdk._bindings.client.ScanSource, arg0: int) -> ouster.sdk._bindings.client.LidarScanSet

  2. __getitem__(self: ouster.sdk._bindings.client.ScanSource, arg0: slice) -> ouster::sdk::core::Slicer

__init__(self: ouster.sdk._bindings.client.ScanSource) None
__iter__(self: ouster.sdk._bindings.client.ScanSource) ouster.sdk._bindings.client.scan_iterator
__len__(self: ouster.sdk._bindings.client.ScanSource) int
__length_hint__(self: ouster.sdk._bindings.client.ScanSource) int
__module__ = 'ouster.sdk._bindings.client'
clip(fields, lower, upper)

limits the values of the specified set of fields to within the range = [lower, upper], any value that exceeds this range is replaced by zero.

close(self: ouster.sdk._bindings.client.ScanSource) None
property full_index
property individual_index
property is_indexed
property is_live

Check if the scan source is live.

A live scan source indicates that it is actively receiving data from a sensor.

Returns:

True if the scan source is live, False otherwise.

Return type:

bool

mask(fields, masks)
reduce(beams)

Takes a regular ScanSource and reduces the beams count to the specified values.

Return type:

ScanSource

property scans_num
property sensor_info

Retrieve sensor information for all sensors in the scan source.

Returns:

A list of SensorInfo objects, each containing metadata about a sensor, such as serial number, firmware version, and calibration details.

single(self: ouster.sdk._bindings.client.ScanSource, arg0: int) ouster::sdk::core::Singler
single_iter(self: ouster.sdk._bindings.client.ScanSource, arg0: int) ouster.sdk._bindings.client.scan_iterator
slice(self: ouster.sdk._bindings.client.ScanSource, arg0: slice) ouster::sdk::core::Slicer

MultiScanSource

class MultiScanSource(self: ouster.sdk._bindings.client.MultiScanSource, sources: object)
__annotations__ = {}
__init__(self: ouster.sdk._bindings.client.MultiScanSource, sources: object) None
__module__ = 'ouster.sdk._bindings.client'

LidarScanSet

class LidarScanSet(*args, **kwargs)

Overloaded function.

  1. __init__(self: ouster.sdk._bindings.client.LidarScanSet) -> None

  2. __init__(self: ouster.sdk._bindings.client.LidarScanSet, arg0: list[ouster.sdk._bindings.client.LidarScan]) -> None

__annotations__ = {}
__copy__(self: ouster.sdk._bindings.client.LidarScanSet) ouster.sdk._bindings.client.LidarScanSet
__deepcopy__(self: ouster.sdk._bindings.client.LidarScanSet, arg0: dict) ouster.sdk._bindings.client.LidarScanSet
__eq__(self: ouster.sdk._bindings.client.LidarScanSet, arg0: ouster.sdk._bindings.client.LidarScanSet) bool
__getitem__(self: ouster.sdk._bindings.client.LidarScanSet, arg0: int) ouster.sdk._bindings.client.LidarScan
__hash__ = None
__init__(*args, **kwargs)

Overloaded function.

  1. __init__(self: ouster.sdk._bindings.client.LidarScanSet) -> None

  2. __init__(self: ouster.sdk._bindings.client.LidarScanSet, arg0: list[ouster.sdk._bindings.client.LidarScan]) -> None

__iter__(self: ouster.sdk._bindings.client.LidarScanSet) Iterator[ouster.sdk._bindings.client.LidarScan]
__len__(self: ouster.sdk._bindings.client.LidarScanSet) int
__module__ = 'ouster.sdk._bindings.client'
__repr__(self: ouster.sdk._bindings.client.LidarScanSet) str
add_field(*args, **kwargs)

Overloaded function.

  1. add_field(self: ouster.sdk._bindings.client.LidarScanSet, arg0: str, arg1: numpy.ndarray) -> numpy.ndarray

  2. add_field(self: ouster.sdk._bindings.client.LidarScanSet, name: str, dtype: type, shape: tuple = ()) -> numpy.ndarray

del_field(self: ouster.sdk._bindings.client.LidarScanSet, arg0: str) numpy.ndarray
field(self: ouster.sdk._bindings.client.LidarScanSet, arg0: str) object
property fields
has_field(self: ouster.sdk._bindings.client.LidarScanSet, arg0: str) bool
valid_indices(self: ouster.sdk._bindings.client.LidarScanSet) Iterator[int]

Return an iterator to the indices for scans that are valid.

valid_scans(self: ouster.sdk._bindings.client.LidarScanSet) Iterator[ouster.sdk._bindings.client.LidarScan]

Return an iterator for scans that are valid.

BloomReductionOptimization

class BloomReductionOptimization(self: ouster.sdk._bindings.client.BloomReductionOptimization, value: int)

Bloom Reduction Optimization.

Members:

BALANCED

MINIMIZE_FALSE_POSITIVES

BALANCED = <BloomReductionOptimization.BALANCED: 0>
MINIMIZE_FALSE_POSITIVES = <BloomReductionOptimization.MINIMIZE_FALSE_POSITIVES: 1>
__annotations__ = {}
__eq__(self: object, other: object) bool
__getstate__(self: object) int
__hash__(self: object) int
__index__(self: ouster.sdk._bindings.client.BloomReductionOptimization) int
__init__(self: ouster.sdk._bindings.client.BloomReductionOptimization, value: int) None
__int__(self: ouster.sdk._bindings.client.BloomReductionOptimization) int
__members__ = mappingproxy({'BALANCED': <BloomReductionOptimization.BALANCED: 0>, 'MINIMIZE_FALSE_POSITIVES': <BloomReductionOptimization.MINIMIZE_FALSE_POSITIVES: 1>})
__module__ = 'ouster.sdk._bindings.client'
__ne__(self: object, other: object) bool
__repr__(self: object) str
__setstate__(self: ouster.sdk._bindings.client.BloomReductionOptimization, state: int) None
__str__(self: ouster.sdk._bindings.client.BloomReductionOptimization) str
static from_string(arg0: str) object

Create enum value from string.

property name

The name of the Enum member.

property value

The value of the Enum member.

values = <iterator object>

init_logger

init_logger()

Initializes and configures ouster_client logs. This method should be invoked only once before calling any other method from the library if the user wants to direct the library log statements to a different medium (other than console which is the default).

Parameters:
  • client. (log_level Control the level of log messages outputed by the) – Valid options are (case-sensitive): “trace”, “debug”, “info”, “warning”, “error”, “critical” and “off”.

  • log_file_path (str) – Path to location where log files are stored. The path must be in a location that the process has write access to. If an empty string is provided then the logs will be directed to the console. When an empty string is passed then the rest of parameters are ignored.

  • rotating (bool) – Configure the log file with rotation, rotation rules are specified through the two following parameters max_size_in_bytes and max_files. If rotating is set to false the following parameters are ignored

  • max_size_in_bytes (int) – Maximum number of bytes to write to a rotating log file before starting a new file. ignored if rotating is set to False.

  • max_files (int) – Maximum number of rotating files to accumlate before re-using the first file. ignored if rotating is set to False.

Returns:

returns True on success, False otherwise.

get_field_types

get_field_types(*args, **kwargs)

Overloaded function.

  1. get_field_types(info: ouster::sdk::core::SensorInfo) -> list[ouster.sdk._bindings.client.FieldType]

    Extracts LidarScan fields with types for a given SensorInfo

    Args:

    info: sensor metadata for which to find fields types

    Returns:

    returns field types

  2. get_field_types(format: ouster::sdk::core::DataFormat, version: ouster::sdk::core::Version) -> list[ouster.sdk._bindings.client.FieldType]

    Extracts LidarScan fields with types for a given SensorInfo

    Args:

    info: sensor data format for which to find field types fw_version: sensor firmware version

    Returns:

    returns field types

  3. get_field_types(udp_profile_lidar: ouster::sdk::core::UDPProfileLidar) -> list[ouster.sdk._bindings.client.FieldType]

    Extracts LidarScan fields with types for a given udp_profile_lidar

    Args:

    udp_profile_lidar: lidar profile from which to get field types

    Returns:

    returns field types

parse_and_validate_metadata

parse_and_validate_metadata(arg0: str) tuple[Optional[ouster::sdk::core::SensorInfo], ouster.sdk._bindings.client.ValidatorIssues]

Parse and validate sensor metadata

Parameters:

metadata (str) – The metadata json to parse and validate.

Returns:

The list of issues that were encountered

and the parsed SensorInfo

Return type:

returns (ValidatorIssues, SensorInfo)

parse_and_validate_sensor_config

parse_and_validate_sensor_config(arg0: str) tuple[ouster.sdk._bindings.client.SensorConfig, ouster::sdk::core::ValidatorIssues]

dewarp

dewarp(*args, **kwargs)

Overloaded function.

  1. dewarp(points: numpy.ndarray[numpy.float64], poses: numpy.ndarray[numpy.float64]) -> numpy.ndarray[numpy.float64]

Applies a set of 4x4 pose transformations to a collection of 3D points. :param points: A NumPy array of shape (H, W, 3) representing the 3D points. :param poses: A NumPy array of shape (W, 4, 4) representing the 4x4 pose

Returns:

A NumPy array of shape (H, W, 3) containing the dewarped 3D points

  1. dewarp(points: numpy.ndarray[numpy.float32], poses: numpy.ndarray[numpy.float32]) -> numpy.ndarray[numpy.float32]

Applies a set of 4x4 pose transformations to a collection of 3D points (float precision). :param points: A NumPy array of shape (H, W, 3) representing the 3D points (float32). :param poses: A NumPy array of shape (W, 4, 4) representing the 4x4 pose (float32)

Returns:

A NumPy array of shape (H, W, 3) containing the dewarped 3D points (float32)

transform

transform(*args, **kwargs)

Overloaded function.

  1. transform(points: numpy.ndarray[numpy.float64], pose: numpy.ndarray[numpy.float64]) -> numpy.ndarray[numpy.float64]

    Applies a single of 4x4 pose transformations to a collection of 3D points. Args: points: A NumPy array of shape (H, W, 3), or (N, 3) pose: A NumPy array of shape (4, 4) representing the 4x4 pose

    Return: A NumPy array of shape (H, W, 3) or (N, 3) containing the transformed 3D points after applying the corresponding 4x4 transformation matrices to the points

  2. transform(points: numpy.ndarray[numpy.float32], pose: numpy.ndarray[numpy.float32]) -> numpy.ndarray[numpy.float32]

    Applies a single of 4x4 pose transformations to a collection of 3D points (float precision). Args: points: A NumPy array of shape (H, W, 3), or (N, 3) (float32) pose: A NumPy array of shape (4, 4) representing the 4x4 pose (float32)

    Return: A NumPy array of shape (H, W, 3) or (N, 3) containing the transformed 3D points (float32) after applying the corresponding 4x4 transformation matrices to the points

interp_pose

interp_pose(x_interp: numpy.ndarray[numpy.float64], x_known: numpy.ndarray[numpy.float64], poses_known: numpy.ndarray[numpy.float64]) numpy.ndarray[numpy.float64]

Interpolate 4x4 pose matrices at given x-coordinate values (double precision). :param x_interp: (N,) or (N,1) array of interpolation x values (float64) :param x_known: (M,) or (M,1) array of known x values (float64) :param poses_known: (M, 4, 4) array of known pose matrices (float64)

Returns:

(N, 4, 4) array of interpolated pose matrices (float64)

interp_pose_float

interp_pose_float(x_interp: numpy.ndarray[numpy.float64], x_known: numpy.ndarray[numpy.float64], poses_known: numpy.ndarray[numpy.float32]) numpy.ndarray[numpy.float32]

Interpolate 4x4 pose matrices at given x-coordinate values (float precision for poses). :param x_interp: (N,) or (N,1) array of interpolation x values (float64) :param x_known: (M,) or (M,1) array of known x values (float64) :param poses_known: (M, 4, 4) array of known pose matrices (float32)

Returns:

(N, 4, 4) array of interpolated pose matrices (float32)

euler_pose_to_matrix

euler_pose_to_matrix(arg0: numpy.ndarray[numpy.float64[6, 1]]) numpy.ndarray[numpy.float64[4, 4]]

Convert a pose given in Euler angles and translation to a 4x4 transformation matrix.

The pose vector should contain the following elements in order:

[roll, pitch, yaw, x, y, z]

where roll, pitch, and yaw are in radians.

Returns:

A 4x4 homogeneous transformation matrix.

quaternion_pose_to_matrix

quaternion_pose_to_matrix(arg0: numpy.ndarray[numpy.float64[7, 1]]) numpy.ndarray[numpy.float64[4, 4]]

Convert a pose given as a quaternion and translation to a 4x4 transformation matrix.

The pose vector should contain the following elements in order:

[qw, qx, qy, qz, x, y, z]

Returns:

A 4x4 homogeneous transformation matrix.

collate

collate(source: ouster.sdk._bindings.client.ScanSource, dt: int = 210000000) ouster.sdk._bindings.client.Collator

Collate scans from a scan source.

This function creates a Collator object that combines scans from a scan source.

Parameters:
  • source (ScanSource) – The scan source to collate.

  • dt (int) – The time delta in nanoseconds for collating scans. Default is 210000000.

Returns:

A collator object for the given scan source.

Return type:

Collator

read_pointcloud

read_pointcloud(arg0: str) numpy.ndarray[numpy.float32[m, 3]]

[BETA] Loads the 3D X Y and Z points from a PCD or PLY file and returns them as Nx3 matrix.

Parameters:

filename – filename to load

Returns:

Nx3 matrix of the resulting points.

Note

This is a beta feature and its API may change in future releases.

voxel_downsample

voxel_downsample(voxel_size: numpy.ndarray[numpy.float64], pts: numpy.ndarray[numpy.float64], attributes: numpy.ndarray[numpy.float64], min_points_per_voxel: int = 1) tuple[numpy.ndarray[numpy.float64[m, 3]], numpy.ndarray[numpy.float64[m, n]]]

[BETA] Downsample a pointcloud using a voxel grid of the requested resolution.

Parameters:
  • voxel_size – The size of the voxel grid.

  • pts – Nx3 matrix of points to downsample.

  • attributes – A dictionary of attributes to downsample.

  • min_points_per_voxel – Minimum number of points per voxel to keep.

Returns:

A tuple containing the downsampled points and attributes.

Note

This is a beta feature and its API may change in future releases.

add_custom_profile

add_custom_profile(arg0: int, arg1: str, arg2: list[tuple[str, ouster.sdk._bindings.client.FieldInfo]], arg3: int) None

normals

normals(*args, **kwargs)

Overloaded function.

  1. normals(xyz: numpy.ndarray, range: numpy.ndarray, sensor_origins_xyz: numpy.ndarray, pixel_search_range: int = 1, min_angle_of_incidence_rad: float = 0.017453292519943295, target_distance_m: float = 0.025) -> numpy.ndarray[numpy.float64]

Compute normals from destaggered XYZ/range arrays.

Parameters:
  • xyz – destaggered XYZ coordinates for the first return (H, W, 3)

  • range – destaggered range image for the first return (H, W)

  • sensor_origins_xyz – per-column sensor origins in the same frame as xyz/range, shape (W, 3). For world-frame xyz, use (scan.pose @ scan.sensor_info.extrinsic)[:, :3, 3]. For sensor-frame xyz, pass zeros with shape (W, 3) (e.g. np.zeros((w, 3))).

  • pixel_search_range – axial search radius (in pixels) when gathering neighbours

  • min_angle_of_incidence_rad – minimum allowable incidence angle between a beam and surface (radians) (default: 1 deg, ~0.01745 rad)

  • target_distance_m – target neighbour distance used when selecting candidate points

Returns:

A destaggered normal array of shape (H, W, 3) for the provided return.

  1. normals(xyz: numpy.ndarray, range: numpy.ndarray, xyz2: numpy.ndarray, range2: numpy.ndarray, sensor_origins_xyz: numpy.ndarray, pixel_search_range: int = 1, min_angle_of_incidence_rad: float = 0.017453292519943295, target_distance_m: float = 0.025) -> tuple[numpy.ndarray[numpy.float64], numpy.ndarray[numpy.float64]]

Compute normals for both first and second returns from destaggered XYZ/range arrays.

Parameters:
  • xyz – destaggered XYZ coordinates for the first return (H, W, 3)

  • range – destaggered range image for the first return (H, W)

  • xyz2 – destaggered XYZ coordinates for the second return (H, W, 3)

  • range2 – destaggered range image for the second return (H, W)

  • sensor_origins_xyz – per-column sensor origins in the same frame as xyz/range, shape (W, 3). For world-frame xyz, use (scan.pose @ scan.sensor_info.extrinsic)[:, :3, 3]. For sensor-frame xyz, pass zeros.

  • pixel_search_range – axial search radius (in pixels) when gathering neighbours

  • min_angle_of_incidence_rad – minimum allowable incidence angle between a beam and surface (radians) (default: 1 deg, ~0.01745 rad)

  • target_distance_m – target neighbour distance used when selecting candidate points

Returns:

A tuple of destaggered normal arrays (first_return_normals, second_return_normals).