diff --git a/lidro/main_create_virtual_point.py b/lidro/main_create_virtual_point.py index 3e9ef544..365229a9 100644 --- a/lidro/main_create_virtual_point.py +++ b/lidro/main_create_virtual_point.py @@ -4,21 +4,25 @@ import ast import logging import os -import sys + import geopandas as gpd import hydra import pandas as pd from omegaconf import DictConfig from pyproj import CRS -sys.path.append('../lidro') - +from lidro.create_virtual_point.pointcloud.auto_tiling_from_las import ( + create_geojson_from_laz_files, +) from lidro.create_virtual_point.pointcloud.convert_list_points_to_las import ( list_points_to_las, ) from lidro.create_virtual_point.vectors.merge_skeleton_by_mask import ( merge_skeleton_by_mask, ) +from lidro.create_virtual_point.vectors.run_add_virtual_points_by_tile import ( + lauch_virtual_points_by_tiles, +) from lidro.create_virtual_point.vectors.run_create_virtual_points import ( launch_virtual_points_by_section, ) @@ -96,8 +100,21 @@ def process_points_knn(points_knn): for idx, row in gdf_merged.iterrows() ] logging.info("Calculate virtuals points by mask hydro and skeleton") + # Step 4 : Save the virtual points in a file (.LAZ) list_points_to_las(list_virtual_points, output_dir, crs, classes) + + # Step 5 : Clip virtual points file by LIDAR tiles + # Create the tiling of lidar tiles + json_tiles = os.path.join(output_dir, "tiles_from_las.GeoJSON") + input_dir_pointcloud = os.path.join(input_dir, "pointcloud") + create_geojson_from_laz_files( + [os.path.join(input_dir_pointcloud, file) for file in os.listdir(input_dir_pointcloud)], json_tiles, crs + ) + # Clip virtual points (3D point grid in LAZ format) by LIDAR tiles (tiling file) + virtul_points_file = os.path.join(output_dir, "virtual_points.laz") + lauch_virtual_points_by_tiles(virtul_points_file, json_tiles, input_dir_pointcloud, output_dir) + else: logging.error("Error when merged all points around skeleton by lidar tile") diff --git a/test/test_main_create_virtual_point.py b/test/test_main_create_virtual_point.py index add4a2ce..24be5a5d 100644 --- a/test/test_main_create_virtual_point.py +++ b/test/test_main_create_virtual_point.py @@ -54,3 +54,4 @@ def test_main_lidro_input_file(): ) main(cfg) assert (Path(output_dir) / "virtual_points.laz").is_file() + assert (Path(output_dir) / "tiles_from_las.GeoJSON").is_file()