kopia lustrzana https://github.com/OpenDroneMap/ODM
Do not cap GSD for 2.5D mesh DEM
rodzic
4f660ffd44
commit
5259fd7007
|
@ -376,6 +376,6 @@ def window_filter_2d(arr, nodata, window, kernel_size, filter):
|
|||
def get_dem_radius_steps(stats_file, steps, resolution, multiplier = 1.0):
|
||||
radius_steps = [point_cloud.get_spacing(stats_file, resolution) * multiplier]
|
||||
for _ in range(steps - 1):
|
||||
radius_steps.append(radius_steps[-1] * math.sqrt(2)) # sqrt(2) is arbitrary, maybe there's a better value?
|
||||
radius_steps.append(radius_steps[-1] * math.sqrt(2))
|
||||
|
||||
return radius_steps
|
|
@ -41,18 +41,18 @@ class ODMeshingStage(types.ODM_Stage):
|
|||
if not io.file_exists(tree.odm_25dmesh) or self.rerun():
|
||||
|
||||
log.ODM_INFO('Writing ODM 2.5D Mesh file in: %s' % tree.odm_25dmesh)
|
||||
dsm_resolution = gsd.cap_resolution(args.orthophoto_resolution, tree.opensfm_reconstruction,
|
||||
ignore_gsd=args.ignore_gsd,
|
||||
ignore_resolution=(not reconstruction.is_georeferenced()) and args.ignore_gsd,
|
||||
has_gcp=reconstruction.has_gcp()) / 100.0
|
||||
|
||||
multiplier = math.pi / 2.0
|
||||
radius_steps = commands.get_dem_radius_steps(tree.filtered_point_cloud_stats, 3, args.orthophoto_resolution, multiplier=multiplier)
|
||||
dsm_resolution = radius_steps[0] / multiplier
|
||||
|
||||
log.ODM_INFO('ODM 2.5D DSM resolution: %s' % dsm_resolution)
|
||||
|
||||
if args.fast_orthophoto:
|
||||
dsm_resolution *= 8.0
|
||||
|
||||
log.ODM_INFO('ODM 2.5D DSM resolution: %s' % dsm_resolution)
|
||||
|
||||
mesh.create_25dmesh(tree.filtered_point_cloud, tree.odm_25dmesh,
|
||||
commands.get_dem_radius_steps(tree.filtered_point_cloud_stats, 3, dsm_resolution, multiplier=math.sqrt(2)),
|
||||
radius_steps,
|
||||
dsm_resolution=dsm_resolution,
|
||||
depth=self.params.get('oct_tree'),
|
||||
maxVertexCount=self.params.get('max_vertex'),
|
||||
|
|
Ładowanie…
Reference in New Issue