From 39f6c347bed72d9134550043705be05b9624a3ce Mon Sep 17 00:00:00 2001 From: Thor Date: Fri, 4 Apr 2025 17:49:53 -0400 Subject: [PATCH] save georeferenced point cloud in little endian mode; fix geomodel texture files name; remove tmp change --- configure.sh | 4 ++-- stages/mvstex.py | 7 ++++++- stages/odm_georeferencing.py | 5 ++++- 3 files changed, 12 insertions(+), 4 deletions(-) diff --git a/configure.sh b/configure.sh index 775c2770..93fa3299 100755 --- a/configure.sh +++ b/configure.sh @@ -25,9 +25,9 @@ check_version(){ } if [[ $2 =~ ^[0-9]+$ ]] ; then - processes=2 + processes=$2 else - processes=2 + processes=$(nproc) fi ensure_prereqs() { diff --git a/stages/mvstex.py b/stages/mvstex.py index 6afcb7f9..12de126e 100644 --- a/stages/mvstex.py +++ b/stages/mvstex.py @@ -90,10 +90,12 @@ class ODMMvsTexStage(types.ODM_Stage): if (r['nadir']): nadir = '--nadir_mode' + # mvstex definitions + # mtl and texture files would be the same between topo and proj geomodel, so create with the final name kwargs = { 'bin': context.mvstex_path, - 'out_dir': os.path.join(r['out_dir'], tree.odm_textured_model_obj_topo.split('.obj')[0]), + 'out_dir': os.path.join(r['out_dir'], 'odm_textured_model_geo'), 'model': r['model'], 'dataTerm': 'gmi', 'outlierRemovalType': 'gauss_clamping', @@ -124,6 +126,9 @@ class ODMMvsTexStage(types.ODM_Stage): '{nadirMode} ' '{labelingFile} ' '{maxTextureSize} '.format(**kwargs)) + + # update the obj file name to topo for further conversion + shutil.move(os.path.join(r['out_dir'], tree.odm_textured_model_obj), odm_textured_model_obj) if r['primary'] and (not r['nadir'] or args.skip_3dmodel): # GlTF? diff --git a/stages/odm_georeferencing.py b/stages/odm_georeferencing.py index 6ecf57db..813f5a65 100644 --- a/stages/odm_georeferencing.py +++ b/stages/odm_georeferencing.py @@ -133,7 +133,10 @@ class ODMGeoreferencingStage(types.ODM_Stage): reconstruction.georef.utm_east_offset, reconstruction.georef.utm_north_offset ) - pipeline = pdal.Writer.ply(tree.filtered_point_cloud).pipeline(arr) + pipeline = pdal.Writer.ply( + filename = tree.filtered_point_cloud, + storage_mode = "little endian", + ).pipeline(arr) pipeline.execute() else: shutil.copy(tree.filtered_point_cloud_topo, tree.filtered_point_cloud)