py3dtiles.tilers.point.node package

class py3dtiles.tilers.point.node.DummyNode(_bytes: _DummyNodeDictType)[source]

Bases: object

class py3dtiles.tilers.point.node.Grid(node: Node, initial_count: int = 3)[source]

Bases: object

docstring for Grid

balance(aabb_size: ndarray[Any, dtype[float32]], aabmin: ndarray[Any, dtype[float32]], inv_aabb_size: ndarray[Any, dtype[float32]]) None[source]
cell_count
cells_classification
cells_intensity
cells_rgb
cells_xyz
get_point_count() int[source]
get_points(include_rgb: bool, include_classification: bool, include_intensity: bool) ndarray[Any, dtype[uint8]][source]
insert(aabmin: ndarray[Any, dtype[float32]], inv_aabb_size: ndarray[Any, dtype[float32]], xyz: ndarray[Any, dtype[float32]], rgb: ndarray[Any, dtype[uint8]], classification: ndarray[Any, dtype[uint8]], intensity: ndarray[Any, dtype[uint8]], force: bool = False) tuple[ndarray[Any, dtype[float32]], ndarray[Any, dtype[uint8]], ndarray[Any, dtype[uint8]], ndarray[Any, dtype[uint8]], bool][source]
property max_key_value: int
needs_balance() bool[source]
spacing
class py3dtiles.tilers.point.node.Node(name: bytes, aabb: ndarray[Any, dtype[float64 | float32]], spacing: float)[source]

Bases: object

docstring for Node

aabb
aabb_center
aabb_size
children: list[bytes] | None
dirty
dump_pending_points() list[tuple[bytes, bytes, int]][source]
flush_pending_points(catalog: NodeCatalog, scale: float) None[source]
get_child_names() Generator[bytes, None, None][source]
get_pending_points_count() int[source]
get_point_count(node_catalog: NodeCatalog, max_depth: int, depth: int = 0) int[source]
static get_points(data: Node | DummyNode, include_rgb: bool, include_classification: bool, include_intensity: bool) ndarray[Any, dtype[uint8]][source]
grid
insert(scale: float, xyz: ndarray[Any, dtype[float32]], rgb: ndarray[Any, dtype[uint8]], classification: ndarray[Any, dtype[uint8]], intensity: ndarray[Any, dtype[uint8]], make_empty_node: bool = False) None[source]
inv_aabb_size
load_from_bytes(byt: bytes) None[source]
name
needs_balance() bool[source]
pending_classification: list[ndarray[Any, dtype[uint8]]]
pending_intensity: list[ndarray[Any, dtype[uint8]]]
pending_rgb: list[ndarray[Any, dtype[uint8]]]
pending_xyz: list[ndarray[Any, dtype[float32]]]
points: list[tuple[ndarray[Any, dtype[float32]], ndarray[Any, dtype[uint8]], ndarray[Any, dtype[uint8]], ndarray[Any, dtype[uint8]]]]
save_to_bytes() bytes[source]
spacing
to_tileset(folder: Path, scale: ndarray[Any, dtype[float32]], parent_node: Node | None = None, depth: int = 0, pool_executor: ProcessPoolExecutor | None = None) Tile | None[source]
class py3dtiles.tilers.point.node.NodeCatalog(nodes: bytes, name: bytes, root_aabb: ndarray[Any, dtype[float64]], root_spacing: float)[source]

Bases: object

NodeCatalog is a store of Node objects.py3dtiles

Using a NodeCatalog allows to only store a children names in nodes, instead of storing a full recursive structure.

dump(name: bytes, max_depth: int) bytes[source]

Serialize the stored nodes to a bytes list

get_node(name: bytes) Node[source]

Returns the node mathing the given name

class py3dtiles.tilers.point.node.NodeProcess(node_catalog: NodeCatalog, scale: float, name: bytes, tasks: list[bytes], begin: float, log_file: TextIO | None)[source]

Bases: object

infer_depth_from_name() int[source]
run() Generator[tuple[bytes, bytes, int], None, None][source]
class py3dtiles.tilers.point.node.SharedNodeStore(folder: Path)[source]

Bases: object

A class that implements a compressed storage for arbitrary data, that is able to limit the amount of ram it uses by temporary storing part of the storage on disk for later retrieval.

The memory limit is not automatic at the moment, but instead is done by calling self.control_memory_usage.

control_memory_usage(max_size_mb: int, verbose: int) None[source]

Limit the memory usage of this instance.

get(name: bytes, stat_inc: int = 1) bytes[source]

Get a node storage.

Parameters:

name – the name of the node

print_statistics() None[source]
put(name: bytes, data: bytes) None[source]

Insert or change

remove(name: bytes) None[source]

Remove a node from this storage.

remove_oldest_nodes(percent: float = 100) tuple[int, int][source]

Submodules