Generate Point Clouds and DSM Tutorial
Use the Generate Point Clouds and DSM by Dense Image Matching tool to create point clouds in LAS format from two or more images taken from different view points. This tool also creates a digital surface model (DSM) image.
The image-matching algorithm identifies corresponding points in at least two images. For a given point in one image, it searches a two-dimensional grid of points in the second image. By having orientation data, the search is reduced to one dimension: along an epipolar line in the second image. The coarse DEM imposes a constraint on the range of heights in the matching area, which constrains the length of the epipolar line. This reduces both the risk of false matches and the time in matching by reducing the search space. The success of the algorithm depends on the intersection angle and similarity between the images. A good starting point is to use images from the same season during a given year.
You can also write a script to generate point clouds using the GeneratePointCloudsByDenseImageMatching task.
This tool has been tested with the following types of stereo imagery:
- ENVI format with a generic RPC sensor model
- GeoEye-1 in DigitalGlobe format (.til) and PVL format
For tiled image products from Airbus Defence and DigitalGlobe, open the tiled images in ENVI and save the combined image extent to ENVI format (.dat). Then select the .dat file(s) for the input rasters.
Follow these steps:
- From the Toolbox, select Terrain > Generate Point Clouds and DSM by Dense Image Matching.
Select two or more input rasters:
- They should have enough parallax, for example, stereo and tri-stereo images collected by sensors from different view points.
- They must overlap by at least the percentage specified in the Minimum Overlap parameter. The default value is 55 percent.
- They must contain rational polynomial coefficients (RPCs) or physical sensor models. For satellite images, RPCs are preferred over physical models.
- They must have the same number of bands. Select two or more panchromatic datasets, or select two or more multispectral datasets that have the same number of bands.
- For other sensors not listed above, open the individual image files (TIFF, JPEG2000, or NITF) if available.
- Select an input digital elevation model (DEM) where data values represent orthometric heights (not ellipsoidal). If you do not select a DEM, ENVI uses the global DEM named GMTED2010.jp2 that is provided with your ENVI installation under the INSTALL_DIR\envixx\data folder. The Global Multi-resolution Terrain Elevation Data 2010 (GMTED2010) dataset has a mean resolution of 30 arc seconds.
- Select whether or not to perform a Block Adjustment before creating point clouds. A block, or bundle, adjustment is used to refine the 3D coordinates that describe the scene geometry. It finds a set of parameters that most accurately predict the locations of the observed points in a set of images, thus minimizing the reprojection error between image locations of observed and predicted image points. ENVI does not use known ground control points (GCPs) for block adjustment, but rather automatically generated tie points that yield a relative orientation. Applying a block adjustment for satellite images refines the image geometry to improve the quality of the generated point clouds. If the images have already been adjusted, disable this option.
- Select the type of terrain that the input image represents from the Terrain Type drop-down list. The options are Flat or Mountainous.
- Enter a Minimum Overlap percentage (0 to 100), indicating the minimum overlap area between two images, for matching to occur. Image pairs with a smaller overlap than the specified value are ignored. The default value is 55 percent overlap.
- Enter a Matching Threshold value. The match threshold sets a limit to the difference between matching windows. A value of 0 means no difference (a perfect match). Set this property to a lower value to increase confidence and to decrease mismatches. Set it to a higher value to capture finer details at the possible cost of more mismatches. The default value is 15.
Tip: For best results with mountainous terrain, decrease the Matching Threshold value to approximately 10 and increase the Quality Threshold value to approximately 80.
- Specify an Edge Threshold value between 0 and 100. Set a lower value to include more mismatches in areas with poor contrast. Set a higher value to force rich texture and edge information in accepted matches. The default value is 5.
- Enter a Quality Threshold value between 0 and 100. Each pixel is assigned a quality measure, which is based on the similarity between windows around the pixel in the stereo images at the matched position. The quality measure improves if the pixel is on the edge of a feature. Setting this threshold to 0 will result in an estimated height for all matched pixels, resulting in large LAS files and some redundant or erroneous 3D points. Increasing the threshold yields fewer matching points (and smaller LAS files), but the quality of the 3D points is better. The default value of 60 is a reasonable value to export high-quality points. Setting this value any higher produces fewer (but more reliable) point clouds, but gaps with no data may occur.
- Select an option for Refine Point Clouds. If set to Yes, the point clouds will have smoothed height values but will not contain any intensity or color information.
- Select an output directory in which to save the LAS point cloud files.
- Select the output filename for the digital surface model (DSM) image.
- Enable the Display result check box to display the DSM in the Image window when processing is complete.
- To run the process on a local or remote ENVI Server, click the down arrow and select Run Task in the Background or Run Task on remote ENVI Server name. The ENVI Server Job Console will show the progress of the job and will provide a link to display the result when processing is complete. See the ENVI Servers topic in ENVI Help for more information.
- Click OK. ENVI writes the point clouds in LAS format (and the DSM in TIFF format) to the specified directories.
- Use ENVI LiDAR or another 3D point cloud application to open the LAS files. You can access ENVI LiDAR by selecting LiDAR > Launch ENVI LiDAR from the ENVI Toolbox.
- The DSM image should load into the Image window if you selected the Display result option. Otherwise, click and drag the DSM image from the Data Manager to the Image window. The DSM represents orthometric heights.
Note: If you receive a "Failed to generate point clouds" error message, look for and remove the _JAVA_OPTIONS environment variable from your Windows system. In the Windows Start menu, type environment in the search bar. Select edit the system environment variables. Under the Advanced tab in the System Properties dialog, click the Environment Variables button. Select _JAVA_OPTIONS in the System variables list, and click the Delete button.
Tips for Generating Point Clouds
Generating point clouds uses a significant amount of memory. We recommend a minimum of 8 GB of RAM. Consider increasing the amount of RAM on your system if performance is an issue.
The time span between registered images should be relatively short. Many modern satellite scenes are available in stereo or tri-stereo configuration. You can combine images from different years or sensors, but the quality of point clouds will be lower compared to dedicated stereo registrations from the same time of year.
The number of point cloud files may vary when you run this tool more than once using the same set of stereo images, when Block Adjustment is enabled.
Image matching is less reliable over water bodies and may produce undesirable results in point cloud coverage over these areas. You can eliminate erroneous points by selecting a higher Quality Threshold value.
Use panchromatic or pan-sharpened images for point cloud generation, if they are available. These generate point clouds with a higher density and better quality, compared to lower-resolution multispectral images.
If you generated point clouds from multispectral datasets, the Color by RGB option is selected by default in the ENVI LiDAR application when you view the point clouds. They are colored according to their associated image RGB value.