Generate Point Cloud (Data Management)

Summary

Computes 3D points from stereo pairs and outputs a point cloud as a set of LAS files.

The tiling of the LAS files is based on 1,000 by 1,000 ground spacing. The points in each LAS tile are computed by selecting pairs, based on user-defined criteria, and filter points from the selected pairs. The input of this tool is a mosaic dataset that contains a stereo model. The output of this tool can be used to generate a digital terrain model (DTM) or a digital surface model (DSM).

Usage

  • If this tool is run multiple times with the same input parameters, the output may be slightly different due to random sampling.

  • The order of the stereo pairs in the Number of Image Pairs parameter is first based on the values you define for Adjustment Quality Threshold, GSD Difference Threshold, and Omega/Phi Difference Threshold. Each of these thresholds will give a pair of images a score of 0 if it did not meet the threshold, or a score of 1 for each threshold that was met, for a maximum of 3. The highest scores will be ordered at the top of the priority list. Next, Overlap Area Threshold is taken into account for any pairs with the same scores, and the intersection angle between the image pairs will be used as the last criteria to order the list, where the larger intersection angle is ordered higher.

  • If you want a specific pair to be used for point cloud generation, set a high value for this pair in the Use field of the stereo table. To open the stereo table, right-click the mosaic layer in the Contents pane and click Open > Stereo.

Syntax

arcpy.management.GeneratePointCloud(in_mosaic_dataset, matching_method, out_folder, out_base_name, {object_size}, {ground_spacing}, {minimum_pairs}, {minimum_area}, {minimum_adjustment_quality}, {maximum_diff_gsd}, {maximum_diff_OP})
ParameterExplanationData Type
in_mosaic_dataset

The input mosaic dataset, which must have completed the block adjustment process and have a stereo model.

To block adjust the mosaic dataset, use the Apply Block Adjustment tool. To build a stereo model on the mosaic dataset, use the Build Stereo Model tool.

Mosaic Dataset; Mosaic Layer
matching_method

The method used to generate 3D points.

  • ETMA feature-based stereo matching in which the Harris operator is used in detecting feature points. Since less feature points are extracted, this method is fast and can be used for data with less terrain variations and detail.
  • SGMSemi-Global Matching (SGM) produces points that are denser and have more detailed terrain information. It can be used for images of urban areas. This is more computational intensive than ETM.1
  • MVMMulti-view image matching (MVM) is based on the SGM matching method followed by a fusion step in which the redundant depth estimations across a single stereo model are merged. It produces dense 3D points and is computationally efficient.2

References:

  1. Heiko Hirschmuller et al., "Memory Efficient Semi-Global Matching," ISPRS Annals of the Photogrammetry, Remote Sensing and Spatial Information Sciences, Volume 1–3, (2012): 371–376.
  2. Hirschmuller, H. "Stereo Processing by Semiglobal Matching and Mutual Information." Pattern Analysis and Machine Intelligence, (2008).

String
out_folder

The folder used to store the output LAS files.

If this tool is run multiple times with the same input parameters, the output may be slightly different due to random sampling.

Folder
out_base_name

A string used as a prefix to formulate the output LAS file names. For example, if name is used as the base, the output files will be named name1.las, name2.las, and so on.

String
object_size
(Optional)

A search radius within which surface objects, such as buildings or trees, will be identified. It is the linear size in map units.

Double
ground_spacing
(Optional)

The ground spacing, in meters, at which the 3D points are generated.

The default is five times the source image pixel size.

Double
minimum_pairs
(Optional)

The number of pairs used to generate 3D points. The default value is a minimum of 2 image pairs.

Sometimes a location may be covered with many image pairs. In this case, the tool will order the pairs based on the various threshold parameters specified in this tool. The pairs with the highest scores will be used to generate the points.

Double
minimum_area
(Optional)

Specify a minimum overlap threshold area that is acceptable, which is a percentage of overlap between a pair of images. Image pairs with overlap areas smaller than this threshold will receive a score of 0 for this criteria and will descend in the ordered list. The range of values for the threshold is from 0 to 1. The default threshold value is 0.6, which is equal to 60 percent.

Double
minimum_adjustment_quality
(Optional)

Specify the minimum adjustment quality that is acceptable. The threshold value will be compared to the adjustment quality value that is stored in the stereo model. Image pairs with an adjustment quality less than the specified threshold will receive a score of 0 for this criteria and will descend in the ordered list. The range of values for the threshold is from 0 to 1. The default value is 0.2, which is equal to 20 percent.

Double
maximum_diff_gsd
(Optional)

Specify the maximum allowable threshold for the ground sample distance (GSD) between two images in a pair. The resolution ratio between the two images will be compared to the threshold value. Image pairs with a ground sample ratio greater than this threshold will receive a score of 0 for this criteria and will descend in the ordered list. The default threshold ratio is 2.

Double
maximum_diff_OP
(Optional)

Specify the maximum threshold for the Omega\Phi difference between the two image pairs. The Omega values and Phi values for the image pairs are compared. Image pairs with an Omega or a Phi difference greater than this threshold will receive a score of 0 for this criteria and will descend in the ordered list. The default threshold difference for each comparison is 8.

Double

Code sample

GeneratePointCloud example 1 (Python window)

This is a Python sample for the GeneratePointCloud tool.

import arcpy
arcpy.GeneratePointCloud_management('c:/data/BD.gdb/SpringMD', 'ETM',
                                    'c:/data/output', 'SpringLAS', '10')

Licensing information

  • Basic: No
  • Standard: No
  • Advanced: Yes

Related topics