kopia lustrzana https://github.com/OpenDroneMap/ODM
				
				
				
			Merge branch 'master' of https://github.com/OpenDroneMap/ODM into win32
						commit
						dcd9c9f0f3
					
				| 
						 | 
				
			
			@ -24,7 +24,7 @@ opensfm_path = os.path.join(superbuild_path, "src/opensfm")
 | 
			
		|||
 | 
			
		||||
poisson_recon_path = os.path.join(superbuild_bin_path, 'PoissonRecon')
 | 
			
		||||
dem2mesh_path = os.path.join(superbuild_bin_path, 'dem2mesh')
 | 
			
		||||
dem2points_path = os.path.join(superbuild_path, 'dem2points')
 | 
			
		||||
dem2points_path = os.path.join(superbuild_bin_path, 'dem2points')
 | 
			
		||||
 | 
			
		||||
# define mvstex path
 | 
			
		||||
mvstex_path = os.path.join(superbuild_bin_path, "texrecon")
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -47,18 +47,10 @@ def build_entwine(input_point_cloud_files, tmpdir, output_path, max_concurrency=
 | 
			
		|||
        'outputdir': output_path
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    # Run scan to compute dataset bounds
 | 
			
		||||
    system.run('entwine scan --threads {threads} --tmp "{tmpdir}" {all_inputs} -o "{outputdir}"'.format(**kwargs))
 | 
			
		||||
    scan_json = os.path.join(output_path, "scan.json")
 | 
			
		||||
 | 
			
		||||
    if os.path.exists(scan_json):
 | 
			
		||||
        kwargs['input'] = scan_json
 | 
			
		||||
        for _ in range(len(input_point_cloud_files)):
 | 
			
		||||
            # One at a time
 | 
			
		||||
            system.run('entwine build --threads {threads} --tmp "{tmpdir}" -i "{input}" -o "{outputdir}" --run 1'.format(**kwargs))
 | 
			
		||||
    else:
 | 
			
		||||
        log.ODM_WARNING("%s does not exist, no point cloud will be built." % scan_json)
 | 
			
		||||
        
 | 
			
		||||
    # for _ in range(len(input_point_cloud_files)):
 | 
			
		||||
    #     # One at a time
 | 
			
		||||
    #     system.run('entwine build --threads {threads} --tmp "{tmpdir}" -i "{input}" -o "{outputdir}"'.format(**kwargs))
 | 
			
		||||
    system.run('entwine build --threads {threads} --tmp "{tmpdir}" {all_inputs} -o "{outputdir}"'.format(**kwargs))
 | 
			
		||||
 | 
			
		||||
def build_untwine(input_point_cloud_files, tmpdir, output_path, max_concurrency=8, rerun=False):
 | 
			
		||||
    kwargs = {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -317,29 +317,35 @@ def merge_ply(input_point_cloud_files, output_file, dims=None):
 | 
			
		|||
 | 
			
		||||
    system.run(' '.join(cmd))
 | 
			
		||||
 | 
			
		||||
def post_point_cloud_steps(args, tree):
 | 
			
		||||
def post_point_cloud_steps(args, tree, rerun=False):
 | 
			
		||||
    # XYZ point cloud output
 | 
			
		||||
    if args.pc_csv:
 | 
			
		||||
        log.ODM_INFO("Creating CSV file (XYZ format)")
 | 
			
		||||
        
 | 
			
		||||
        system.run("pdal translate -i \"{}\" "
 | 
			
		||||
            "-o \"{}\" "
 | 
			
		||||
            "--writers.text.format=csv "
 | 
			
		||||
            "--writers.text.order=\"X,Y,Z\" "
 | 
			
		||||
            "--writers.text.keep_unspecified=false ".format(
 | 
			
		||||
                tree.odm_georeferencing_model_laz,
 | 
			
		||||
                tree.odm_georeferencing_xyz_file))
 | 
			
		||||
        if not io.file_exists(tree.odm_georeferencing_xyz_file) or rerun:
 | 
			
		||||
            system.run("pdal translate -i \"{}\" "
 | 
			
		||||
                "-o \"{}\" "
 | 
			
		||||
                "--writers.text.format=csv "
 | 
			
		||||
                "--writers.text.order=\"X,Y,Z\" "
 | 
			
		||||
                "--writers.text.keep_unspecified=false ".format(
 | 
			
		||||
                    tree.odm_georeferencing_model_laz,
 | 
			
		||||
                    tree.odm_georeferencing_xyz_file))
 | 
			
		||||
        else:
 | 
			
		||||
            log.ODM_WARNING("Found existing CSV file %s" % tree.odm_georeferencing_xyz_file)
 | 
			
		||||
 | 
			
		||||
    # LAS point cloud output
 | 
			
		||||
    if args.pc_las:
 | 
			
		||||
        log.ODM_INFO("Creating LAS file")
 | 
			
		||||
        
 | 
			
		||||
        system.run("pdal translate -i \"{}\" "
 | 
			
		||||
            "-o \"{}\" ".format(
 | 
			
		||||
                tree.odm_georeferencing_model_laz,
 | 
			
		||||
                tree.odm_georeferencing_model_las))
 | 
			
		||||
        if not io.file_exists(tree.odm_georeferencing_model_las) or rerun:
 | 
			
		||||
            system.run("pdal translate -i \"{}\" "
 | 
			
		||||
                "-o \"{}\" ".format(
 | 
			
		||||
                    tree.odm_georeferencing_model_laz,
 | 
			
		||||
                    tree.odm_georeferencing_model_las))
 | 
			
		||||
        else:
 | 
			
		||||
            log.ODM_WARNING("Found existing LAS file %s" % tree.odm_georeferencing_xyz_file)
 | 
			
		||||
 | 
			
		||||
    # EPT point cloud output
 | 
			
		||||
    if args.pc_ept:
 | 
			
		||||
        log.ODM_INFO("Creating Entwine Point Tile output")
 | 
			
		||||
        entwine.build([tree.odm_georeferencing_model_laz], tree.entwine_pointcloud, max_concurrency=args.max_concurrency, rerun=False)
 | 
			
		||||
        entwine.build([tree.odm_georeferencing_model_laz], tree.entwine_pointcloud, max_concurrency=args.max_concurrency, rerun=rerun)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -64,7 +64,7 @@ class ODMGeoreferencingStage(types.ODM_Stage):
 | 
			
		|||
                log.ODM_INFO("Converting point cloud (non-georeferenced)")
 | 
			
		||||
                system.run(cmd + ' ' + ' '.join(stages) + ' ' + ' '.join(params))
 | 
			
		||||
        
 | 
			
		||||
            point_cloud.post_point_cloud_steps(args, tree)
 | 
			
		||||
            point_cloud.post_point_cloud_steps(args, tree, self.rerun())
 | 
			
		||||
        else:
 | 
			
		||||
            log.ODM_WARNING('Found a valid georeferenced model in: %s'
 | 
			
		||||
                            % tree.odm_georeferencing_model_laz)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -252,7 +252,7 @@ class ODMMergeStage(types.ODM_Stage):
 | 
			
		|||
                    
 | 
			
		||||
                    try:
 | 
			
		||||
                        point_cloud.merge(all_point_clouds, tree.odm_georeferencing_model_laz, rerun=self.rerun())
 | 
			
		||||
                        point_cloud.post_point_cloud_steps(args, tree)
 | 
			
		||||
                        point_cloud.post_point_cloud_steps(args, tree, self.rerun())
 | 
			
		||||
                    except Exception as e:
 | 
			
		||||
                        log.ODM_WARNING("Could not merge point cloud: %s (skipping)" % str(e))
 | 
			
		||||
                else:
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Ładowanie…
	
		Reference in New Issue