xdem.coreg.ICP

Contents

xdem.coreg.ICP#

class xdem.coreg.ICP(max_iterations=100, tolerance=0.05, rejection_scale=2.5, num_levels=6, subsample=500000.0)[source]#

Iterative Closest Point DEM coregistration. Based on 3D registration of Besl and McKay (1992), https://doi.org/10.1117/12.57955.

Estimates a rigid transform (rotation + translation) between two DEMs.

Requires ‘opencv’ See opencv doc for more info: https://docs.opencv.org/master/dc/d9b/classcv_1_1ppf__match__3d_1_1ICP.html

__init__(max_iterations=100, tolerance=0.05, rejection_scale=2.5, num_levels=6, subsample=500000.0)[source]#

Instantiate an ICP coregistration object.

Parameters:
  • max_iterations (int) – The maximum allowed iterations before stopping.

  • tolerance (float) – The residual change threshold after which to stop the iterations.

  • rejection_scale (float) – The threshold (std * rejection_scale) to consider points as outliers.

  • num_levels (int) – Number of octree levels to consider. A higher number is faster but may be more inaccurate.

  • subsample (float | int) – Subsample the input for speed-up. <1 is parsed as a fraction. >1 is a pixel count.

Methods

__init__([max_iterations, tolerance, ...])

Instantiate an ICP coregistration object.

apply(elev[, bias_vars, resample, ...])

Apply the estimated transform to a DEM.

centroid()

Get the centroid of the coregistration, if defined.

copy()

Return an identical copy of the class.

error(reference_elev, to_be_aligned_elev[, ...])

Calculate the error of a coregistration approach.

fit(reference_elev, to_be_aligned_elev[, ...])

Estimate the coregistration transform on the given DEMs.

from_matrix(matrix)

Instantiate a generic Coreg class from a transformation matrix.

from_translation([x_off, y_off, z_off])

Instantiate a generic Coreg class from a X/Y/Z translation.

residuals(reference_elev, to_be_aligned_elev)

Calculate the residual offsets (the difference) between two DEMs after applying the transformation.

to_matrix()

Convert the transform to a 4x4 transformation matrix.

Attributes

is_affine

Check if the transform be explained by a 3D affine transform.