Back to report index

Step 6 maskclustering 3bd1d4e: AI3D-382 Derive separation channel dtypes from the record schema

Miroslav Simko <ms@iolabs.ch> 2026-09-01T14:53:04+02:00

Commit #112 ยท 2 snippets

 src/iolabs_point_cloud_mask_clustering/pipeline.py | 10 ++--------
 1 file changed, 2 insertions(+), 8 deletions(-)
Importance #1: src/iolabs_point_cloud_mask_clustering/pipeline.py @@ -17,9 +17,9 @@
17from ._config import MaskClusteringConfig17from ._config import MaskClusteringConfig
18from ._log_props import LOG_PROPS18from ._log_props import LOG_PROPS
19from .cluster_io import write_cluster_npz19from .cluster_io import write_cluster_npz
20from .geometry import component_geojson_geometry, mask_polygons_xy, write_prism_ply20from .geometry import component_geojson_geometry, mask_polygons_xy, write_prism_ply
21from .input_io import load_separation_arrays, load_step3_file21from .input_io import channel_dtypes_of, load_separation_arrays, load_step3_file
22from .intensity_separation import (22from .intensity_separation import (
23 ClusterSeparation,23 ClusterSeparation,
24 dilate_mask,24 dilate_mask,
25 separate_cluster,25 separate_cluster,
Importance #2: src/iolabs_point_cloud_mask_clustering/pipeline.py @@ -132,15 +132,9 @@
132 channel_dtypes: dict[str, np.dtype] | None = None132 channel_dtypes: dict[str, np.dtype] | None = None
133 for path in step3_paths:133 for path in step3_paths:
134 chunk = load_step3_file(path)134 chunk = load_step3_file(path)
135 source_count += len(chunk.points)135 source_count += len(chunk.points)
136 chunk_dtypes = {136 chunk_dtypes = channel_dtypes_of(chunk.data)
137 "intensity": chunk.data.intensity.dtype,
138 "red": chunk.data.red.dtype,
139 "green": chunk.data.green.dtype,
140 "blue": chunk.data.blue.dtype,
141 "scan_angle": chunk.data.scan_angle_rank.dtype,
142 }
143 if channel_dtypes is None:137 if channel_dtypes is None:
144 channel_dtypes = chunk_dtypes138 channel_dtypes = chunk_dtypes
145 else:139 else:
146 channel_dtypes = {140 channel_dtypes = {