PointcloudAnnotationAPI

class PointcloudAnnotationAPI[source]

Bases: supervisely.api.entity_annotation.entity_annotation_api.EntityAnnotationAPI

PointcloudAnnotation for a single point cloud. PointcloudAnnotationAPI object is immutable.

Parameters
api : Api

API connection to the server.

Usage example
import os
from dotenv import load_dotenv

import supervisely as sly

# Load secrets and create API object from .env file (recommended)
# Learn more here: https://developer.supervisely.com/getting-started/basics-of-authentication
if sly.is_development():
    load_dotenv(os.path.expanduser("~/supervisely.env"))
api = sly.Api.from_env()

# Pass values into the API constructor (optional, not recommended)
# api = sly.Api(server_address="https://app.supervise.ly", token="4r47N...xaTatb")

pointcloud_id = 19618685
ann_info = api.pointcloud.annotation.download(src_pointcloud_id)

Methods

append

Loads an PointcloudAnnotation to a given point cloud ID in the API.

download

Download information about PointcloudAnnotation by point cloud ID from API.

download_bulk

Download a list of content (annotations with given ids from dataset with given id).

exists

Checks if an entity with the given parent_id and name exists

get_free_name

Generates a free name for an entity with the given parent_id and name.

get_info_by_id

Get information about an entity by its ID from the Supervisely server.

get_info_by_name

Get information about an entity by its name from the Supervisely server.

get_list

Get list of entities in parent entity with given parent ID.

get_list_all_pages

Get list of all or limited quantity entities from the Supervisely server.

get_list_all_pages_generator

This generator function retrieves a list of all or a limited quantity of entities from the Supervisely server, yielding batches of entities as they are retrieved

info_sequence

Get list of all class field names.

info_tuple_name

Get string name of NamedTuple.

Attributes

MAX_WAIT_ATTEMPTS

Maximum number of attempts that will be made to wait for a certain condition to be met.

WAIT_ATTEMPT_TIMEOUT_SEC

Number of seconds for intervals between attempts.

append(pointcloud_id, ann, key_id_map=None)[source]

Loads an PointcloudAnnotation to a given point cloud ID in the API.

Parameters
pointcloud_id : int

Point cloud ID in Supervisely.

ann : PointcloudAnnotation

PointcloudAnnotation object.

key_id_map : KeyIdMap, optional

KeyIdMap object.

Returns

None

Return type

NoneType

Usage example
import supervisely as sly

os.environ['SERVER_ADDRESS'] = 'https://app.supervisely.com'
os.environ['API_TOKEN'] = 'Your Supervisely API Token'
api = sly.Api.from_env()

pointcloud_id = 198704259
api.pointcloud.annotation.append(pointcloud_id, pointcloud_ann)
download(pointcloud_id)[source]

Download information about PointcloudAnnotation by point cloud ID from API.

Parameters
pointcloud_id : int

Point cloud ID in Supervisely.

Returns

Information about PointcloudAnnotation in json format

Return type

dict

Usage example
import supervisely as sly

os.environ['SERVER_ADDRESS'] = 'https://app.supervisely.com'
os.environ['API_TOKEN'] = 'Your Supervisely API Token'
api = sly.Api.from_env()

pointcloud_id = 19618685
ann_info = api.pointcloud.annotation.download(src_pointcloud_id)
print(ann_info)

# Output: {
#     'datasetId': 62664,
#     'description': '',
#     'frames': [{'figures': [{'classId': None,
#                             'createdAt': '2023-04-05T08:55:52.526Z',
#                             'description': '',
#                             'geometry': {'dimensions': {'x': 1.6056261,
#                                                         'y': 3.8312221,
#                                                         'z': 1.8019634},
#                                         'position': {'x': 10.181290418102629,
#                                                     'y': 9.033275311626847,
#                                                     'z': -0.9065660704238034},
#                                         'rotation': {'x': 0,
#                                                     'y': 0,
#                                                     'z': 1.5985649758590998}},
#                             'geometryType': 'cuboid_3d',
#                             'id': 87830573,
#                             'labelerLogin': 'almaz',
#                             'objectId': 5565738,
#                             'updatedAt': '2023-04-05T08:55:52.526Z'},
#                             {'classId': None,
#                             'createdAt': '2023-04-05T08:55:52.526Z',
#                             'description': '',
#                             'geometry': {'dimensions': {'x': 2.3652234,
#                                                         'y': 23.291742,
#                                                         'z': 3.326648},
#                                         'position': {'x': 77.40255111910977,
#                                                     'y': -9.582723835261527,
#                                                     'z': 1.0131292020311293},
#                                         'rotation': {'x': 0,
#                                                     'y': 0,
#                                                     'z': -1.5823898471886868}},
#                             'geometryType': 'cuboid_3d',
#                             'id': 87830574,
#                             'labelerLogin': 'almaz',
#                             'objectId': 5565741,
#                             'updatedAt': '2023-04-05T08:55:52.526Z'}],
#                 'index': 0,
#                 'pointCloudId': 19618685}],
#     'framesCount': 1,
#     'objects': [{'classId': 683259,
#                 'classTitle': 'Car',
#                 'createdAt': '2023-04-05T08:55:52.384Z',
#                 'datasetId': 62664,
#                 'entityId': None,
#                 'id': 5565737,
#                 'labelerLogin': 'almaz',
#                 'tags': [],
#                 'updatedAt': '2023-04-05T08:55:52.384Z'}],
#     'tags': []
# }
download_bulk(dataset_id, entity_ids)

Download a list of content (annotations with given ids from dataset with given id).

Parameters
dataset_id : int

int

entity_ids : List[int]

list of integers

Return type

Dict

Returns

list of content(annotations with given ids from dataset with given id), received after execution post request

exists(parent_id, name)

Checks if an entity with the given parent_id and name exists

Parameters
parent_id : int

ID of the parent entity.

name : str

Name of the entity.

Returns

Returns True if entity exists, and False if not

Return type

bool

Usage example
import supervisely as sly

# You can connect to API directly
address = 'https://app.supervise.ly/'
token = 'Your Supervisely API Token'
api = sly.Api(address, token)

# Or you can use API from environment
os.environ['SERVER_ADDRESS'] = 'https://app.supervisely.com'
os.environ['API_TOKEN'] = 'Your Supervisely API Token'
api = sly.Api.from_env()


name = "IMG_0315.jpeg"
dataset_id = 55832
exists = api.image.exists(dataset_id, name)
print(exists) # True
get_free_name(parent_id, name)

Generates a free name for an entity with the given parent_id and name. Adds an increasing suffix to original name until a unique name is found.

Parameters
parent_id : int

ID of the parent entity.

name : str

Name of the entity.

Returns

Returns free name.

Return type

str

Usage example
import supervisely as sly

# You can connect to API directly
address = 'https://app.supervise.ly/'
token = 'Your Supervisely API Token'
api = sly.Api(address, token)

# Or you can use API from environment
os.environ['SERVER_ADDRESS'] = 'https://app.supervisely.com'
os.environ['API_TOKEN'] = 'Your Supervisely API Token'
api = sly.Api.from_env()


name = "IMG_0315.jpeg"
dataset_id = 55832
free_name = api.image.get_free_name(dataset_id, name)
print(free_name) # IMG_0315_001.jpeg
get_info_by_id(id)

Get information about an entity by its ID from the Supervisely server.

Parameters
id : int

ID of the entity.

get_info_by_name(parent_id, name, fields=[])

Get information about an entity by its name from the Supervisely server.

Parameters
parent_id : int

ID of the parent entity.

name : str

Name of the entity for which the information is being retrieved.

fields : List[str]

The list of api fields which will be returned with the response.

Usage example
import supervisely as sly

# You can connect to API directly
address = 'https://app.supervise.ly/'
token = 'Your Supervisely API Token'
api = sly.Api(address, token)

# Or you can use API from environment
os.environ['SERVER_ADDRESS'] = 'https://app.supervisely.com'
os.environ['API_TOKEN'] = 'Your Supervisely API Token'
api = sly.Api.from_env()


dataset_id = 55832
name = "IMG_0315.jpeg"
info = api.image.get_info_by_name(dataset_id, name)
print(info)
# Output: ImageInfo(id=19369643, name='IMG_0315.jpeg', ...)
get_list(parent_id, filters=None)

Get list of entities in parent entity with given parent ID.

Parameters
parent_id : int

parent ID in Supervisely.

filters : List[Dict[str, str]], optional

List of parameters to sort output entities.

Usage example
import supervisely as sly

# You can connect to API directly
address = 'https://app.supervise.ly/'
token = 'Your Supervisely API Token'
api = sly.Api(address, token)

# Or you can use API from environment
os.environ['SERVER_ADDRESS'] = 'https://app.supervisely.com'
os.environ['API_TOKEN'] = 'Your Supervisely API Token'
api = sly.Api.from_env()


dataset_id = 55832
images = api.image.get_list(dataset_id)
print(images)
# Output: [
    ImageInfo(id=19369642, ...)
    ImageInfo(id=19369643, ...)
    ImageInfo(id=19369644, ...)
]
get_list_all_pages(method, data, progress_cb=None, convert_json_info_cb=None, limit=None, return_first_response=False)

Get list of all or limited quantity entities from the Supervisely server.

Parameters
method : str

Request method name

data : dict

Dictionary with request body info

progress_cb : Progress, optional

Function for tracking download progress.

convert_json_info_cb : Callable, optional

Function for convert json info

limit : int, optional

Number of entity to retrieve

return_first_response : bool, optional

Specify if return first response

get_list_all_pages_generator(method, data, progress_cb=None, convert_json_info_cb=None, limit=None, return_first_response=False)

This generator function retrieves a list of all or a limited quantity of entities from the Supervisely server, yielding batches of entities as they are retrieved

Parameters
method : str

Request method name

data : dict

Dictionary with request body info

progress_cb : Progress, optional

Function for tracking download progress.

convert_json_info_cb : Callable, optional

Function for convert json info

limit : int, optional

Number of entity to retrieve

return_first_response : bool, optional

Specify if return first response

static info_sequence()

Get list of all class field names.

static info_tuple_name()

Get string name of NamedTuple.