kopia lustrzana https://github.com/OpenDroneMap/ODM
rodzic
e2bd8aac68
commit
c44566bdc0
|
@ -8,8 +8,7 @@ ExternalProject_Add(${_proj_name}
|
|||
STAMP_DIR ${_SB_BINARY_DIR}/stamp
|
||||
#--Download step--------------
|
||||
DOWNLOAD_DIR ${SB_DOWNLOAD_DIR}
|
||||
URL https://github.com/hobu/hexer/archive/2898b96b1105991e151696391b9111610276258f.tar.gz
|
||||
URL_MD5 e8f2788332ad212cf78efa81a82e95dd
|
||||
URL https://github.com/hobu/hexer/archive/bc748fc16b51c562f68f6641574b7af4244adfa2.tar.gz
|
||||
#--Update/Patch step----------
|
||||
UPDATE_COMMAND ""
|
||||
#--Configure step-------------
|
||||
|
|
|
@ -286,6 +286,11 @@ def config():
|
|||
default=False,
|
||||
help='Export the georeferenced point cloud in LAS format. Default: %(default)s')
|
||||
|
||||
parser.add_argument('--pc-ept',
|
||||
action='store_true',
|
||||
default=False,
|
||||
help='Export the georeferenced point cloud in Entwine Point Tile (EPT) format. Default: %(default)s')
|
||||
|
||||
parser.add_argument('--pc-filter',
|
||||
metavar='<positive float>',
|
||||
type=float,
|
||||
|
|
|
@ -145,7 +145,7 @@ class Cropper:
|
|||
|
||||
boundary_file_path = self.path('boundary.json')
|
||||
|
||||
run('pdal info --boundary --filters.hexbin.edge_length=1 --filters.hexbin.threshold=0 {0} > {1}'.format(decimated_pointcloud_path, boundary_file_path))
|
||||
run('pdal info --boundary --filters.hexbin.edge_size=1 --filters.hexbin.threshold=0 {0} > {1}'.format(decimated_pointcloud_path, boundary_file_path))
|
||||
|
||||
pc_geojson_boundary_feature = None
|
||||
|
||||
|
|
|
@ -219,6 +219,7 @@ def get_submodel_argv(project_name = None, submodels_path = None, submodel_name
|
|||
:return the same as argv, but removing references to --split,
|
||||
setting/replacing --project-path and name
|
||||
removing --rerun-from, --rerun, --rerun-all, --sm-cluster
|
||||
removing --pc-las, --pc-csv, --pc-ept flags (processing these is wasteful)
|
||||
adding --orthophoto-cutline
|
||||
adding --dem-euclidean-map
|
||||
adding --skip-3dmodel (split-merge does not support 3D model merging)
|
||||
|
@ -226,7 +227,7 @@ def get_submodel_argv(project_name = None, submodels_path = None, submodel_name
|
|||
"""
|
||||
assure_always = ['--orthophoto-cutline', '--dem-euclidean-map', '--skip-3dmodel']
|
||||
remove_always_2 = ['--split', '--split-overlap', '--rerun-from', '--rerun', '--gcp', '--end-with', '--sm-cluster']
|
||||
remove_always_1 = ['--rerun-all']
|
||||
remove_always_1 = ['--rerun-all', '--pc-csv', '--pc-las', '--pc-ept']
|
||||
|
||||
argv = sys.argv
|
||||
|
||||
|
|
|
@ -318,6 +318,9 @@ class ODM_Tree(object):
|
|||
# Split-merge
|
||||
self.submodels_path = io.join_paths(self.root_path, 'submodels')
|
||||
|
||||
# Tiles
|
||||
self.entwine_pointcloud = self.path("entwine_pointcloud")
|
||||
|
||||
def path(self, *args):
|
||||
return os.path.join(self.root_path, *args)
|
||||
|
||||
|
|
|
@ -9,7 +9,7 @@ from opendm import system
|
|||
from opendm import context
|
||||
from opendm.cropper import Cropper
|
||||
from opendm import point_cloud
|
||||
|
||||
from opendm import entwine
|
||||
|
||||
class ODMGeoreferencingStage(types.ODM_Stage):
|
||||
def process(self, args, outputs):
|
||||
|
@ -136,6 +136,11 @@ class ODMGeoreferencingStage(types.ODM_Stage):
|
|||
"-o \"{}\" ".format(
|
||||
tree.odm_georeferencing_model_laz,
|
||||
tree.odm_georeferencing_model_las))
|
||||
|
||||
# EPT point cloud output
|
||||
if args.pc_ept:
|
||||
log.ODM_INFO("Creating geo-referenced Entwine Point Tile output")
|
||||
entwine.build([tree.odm_georeferencing_model_laz], tree.entwine_pointcloud, max_concurrency=args.max_concurrency)
|
||||
|
||||
if args.crop > 0:
|
||||
log.ODM_INFO("Calculating cropping area and generating bounds shapefile from point cloud")
|
||||
|
|
|
@ -179,7 +179,7 @@ class ODMMergeStage(types.ODM_Stage):
|
|||
|
||||
try:
|
||||
# pdal.merge_point_clouds(all_point_clouds, tree.odm_georeferencing_model_laz, args.verbose)
|
||||
entwine.build(all_point_clouds, tree.path("entwine_pointcloud"), max_concurrency=args.max_concurrency)
|
||||
entwine.build(all_point_clouds, tree.entwine_pointcloud, max_concurrency=args.max_concurrency)
|
||||
except Exception as e:
|
||||
log.ODM_WARNING("Could not merge point cloud: %s (skipping)" % str(e))
|
||||
else:
|
||||
|
|
Ładowanie…
Reference in New Issue