Skip to content

Commit

Permalink
refacto main_create_virtual_point.py with the new functon (add virtua…
Browse files Browse the repository at this point in the history
…l points by tiles)
  • Loading branch information
mdupaysign committed Sep 18, 2024
1 parent 3f530db commit 59031e8
Show file tree
Hide file tree
Showing 2 changed files with 21 additions and 3 deletions.
23 changes: 20 additions & 3 deletions lidro/main_create_virtual_point.py
Original file line number Diff line number Diff line change
Expand Up @@ -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,
)
Expand Down Expand Up @@ -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")

Expand Down
1 change: 1 addition & 0 deletions test/test_main_create_virtual_point.py
Original file line number Diff line number Diff line change
Expand Up @@ -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()

0 comments on commit 59031e8

Please sign in to comment.