PointcloudEpisodeAnnotationAPI

class PointcloudEpisodeAnnotationAPI[source]

Bases: supervisely.api.entity_annotation.entity_annotation_api.EntityAnnotationAPI

PointcloudEpisodeAnnotation for a point clouds episodes. PointcloudEpisodeAnnotationAPI 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")

dataset_id = 62664
ann_info = api.pointcloud_episode.annotation.download(dataset_id)
print(ann_info)

Methods

append

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

download

Download information about PointcloudEpisodeAnnotation by dataset ID from API.

download_bulk

Not supported for point cloud episodes.

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

get_list_idx_page_async

Get the list of items for a given page number.

get_list_page_generator_async

Yields list of images in dataset asynchronously page by page.

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(dataset_id, ann, frame_to_pointcloud_ids, key_id_map=None)[source]

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

Parameters
pointcloud_id : int

Point cloud ID in Supervisely.

ann : PointcloudEpisodeAnnotation

PointcloudEpisodeAnnotation object.

frame_to_pointcloud_ids : List[dict]

List of dictionaries with frame_id and name of pointcloud episodes

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()

pcd_episodes_id = 198704259
api.pointcloud_episode.annotation.append(pcd_episodes_id, pointcloud_ann)
download(dataset_id)[source]

Download information about PointcloudEpisodeAnnotation by dataset ID from API.

Parameters
dataset_id : int

Dataset ID in Supervisely.

Returns

Dictionary woth information about PointcloudEpisodeAnnotation in json format

Return type

dict

Usage example
import supervisely as sly

from pprint import pprint

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

dataset_id = 62664
ann_info = api.pointcloud_episode.annotation.download(dataset_id)
pprint(ann_info)

# Output: {
#     'datasetId': 62664,
#     'description': '',
#     'frames': [
#         {'figures': [{'classId': None,
#                     'createdAt': '2023-04-05T08:55:52.445Z',
#                     'description': '',
#                     'geometry': {'dimensions': {'x': 2.3652234,
#                                                 'y': 23.291742,
#                                                 'z': 3.326648},
#                                 'position': {'x': 86.29707472161449,
#                                             'y': -14.472597682830635,
#                                             'z': 0.8842007608554671},
#                                 'rotation': {'x': 0,
#                                             'y': 0,
#                                             'z': -1.6962800995995606}},
#                     'geometryType': 'cuboid_3d',
#                     'id': 87830452,
#                     'labelerLogin': 'almaz',
#                     'objectId': 5565741,
#                     'updatedAt': '2023-04-05T08:55:52.445Z'},
#                     {'classId': None,
#                     'createdAt': '2023-04-05T08:55:52.445Z',
#                     'description': '',
#                     'geometry': {'indices': [783,
#                                             784,
#                                             ...
#                                             28326,
#                                             30294]},
#                     'geometryType': 'point_cloud',
#                     'id': 87830456,
#                     'labelerLogin': 'almaz',
#                     'objectId': 5565740,
#                     'updatedAt': '2023-04-05T08:55:52.445Z'}],
#         'index': 0,
#         'pointCloudId': 19618654},...
#     ],
#     'tags': []
# }
download_bulk(dataset_id, entity_ids)[source]

Not supported for point cloud episodes.

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

async get_list_idx_page_async(method, data)

Get the list of items for a given page number. Page number is specified in the data dictionary.

Parameters
method : str

Method to call for listing items.

data : dict

Data to pass to the API method.

Returns

List of items.

Return type

Tuple[int, List[NamedTuple]]

async get_list_page_generator_async(method, data, pages_count=None, semaphore=None)

Yields list of images in dataset asynchronously page by page.

Parameters
method : str

Method to call for listing items.

data : dict

Data to pass to the API method.

pages_count : int, optional

Preferred number of pages to retrieve if used with a per_page limit. Will be automatically adjusted if the pagesCount differs from the requested number.

semaphore : asyncio.Semaphore, optional

Semaphore for limiting the number of simultaneous requests.

kwargs

Additional arguments.

Returns

List of images in dataset.

Return type

AsyncGenerator[List[ImageInfo]]

Usage example
import supervisely as sly
import asyncio

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

method = 'images.list'
data = {
    'datasetId': 123456
}

loop = sly.utils.get_or_create_event_loop()
images = loop.run_until_complete(api.image.get_list_generator_async(method, data))
static info_sequence()

Get list of all class field names.

static info_tuple_name()

Get string name of NamedTuple.