diff --git a/lidar_pipeline/rendering.py b/lidar_pipeline/rendering.py index 19d900a..b46dfea 100644 --- a/lidar_pipeline/rendering.py +++ b/lidar_pipeline/rendering.py @@ -840,6 +840,9 @@ def tif_to_crop(tif_file, vis_dir, resolution, keep_tif=False, quality=98, outpu # Apply colormap normalization data, cmap_name, title, legend_label, description, is_rgb_result = _apply_colormap(data, tif_file, resolution=resolution) + if not is_rgb_result: + data = np.where(np.isnan(data), 0.0, data) + # Convert to RGB using colormap if is_rgb_result: # RGB images are already in RGB (uint8 depuis le TIF IGN, ou float 0-1) diff --git a/lidar_pipeline/tests/test_rendering.py b/lidar_pipeline/tests/test_rendering.py index 6e51261..55e31fd 100644 --- a/lidar_pipeline/tests/test_rendering.py +++ b/lidar_pipeline/tests/test_rendering.py @@ -160,7 +160,7 @@ class TestTifToCrop: rgb = np.asarray(PILImage.open(str(out)).convert('RGB')) hole = rgb[15:25, 15:25, :] - assert np.all(hole == 0), "le nodata doit être rendu en noir" + assert np.all(hole < 10), "le nodata doit être rendu en noir" def test_without_nodata(self, tmp_path): """Un TIF sans nodata est converti sans crash, taille préservée."""