xdem.coreg.NuthKaab#
- class xdem.coreg.NuthKaab(max_iterations=10, offset_threshold=0.001, bin_before_fit=True, fit_optimizer=<function curve_fit>, bin_sizes=72, bin_statistic=<function nanmedian>, subsample=500000.0)[source]#
Nuth and Kääb (2011) coregistration, https://doi.org/10.5194/tc-5-271-2011.
Estimate horizontal and vertical translations by iterative slope/aspect alignment.
The translation parameters are stored in the self.meta[“outputs”][“affine”] keys “shift_x”, “shift_y” and “shift_z” (in georeferenced units for horizontal shifts, and unit of the elevation dataset inputs for the vertical shift), as well as in the “matrix” transform.
- __init__(max_iterations=10, offset_threshold=0.001, bin_before_fit=True, fit_optimizer=<function curve_fit>, bin_sizes=72, bin_statistic=<function nanmedian>, subsample=500000.0)[source]#
Instantiate a new Nuth and Kääb (2011) coregistration object.
- Parameters:
max_iterations (
int
) – The maximum allowed iterations before stopping.offset_threshold (
float
) – The residual offset threshold after which to stop the iterations (in pixels).bin_before_fit (
bool
) – Whether to bin data before fitting the coregistration function. For the Nuth and Kääb (2011) algorithm, this corresponds to bins of aspect to compute statistics on dh/tan(slope).fit_optimizer (
Callable
[...
,tuple
[ndarray
[Any
,dtype
[floating
[Any
]]],Any
]]) – Optimizer to minimize the coregistration function.bin_sizes (
int
|dict
[str
,Union
[int
,Iterable
[float
]]]) – Size (if integer) or edges (if iterable) for binning variables later passed in .fit().bin_statistic (
Callable
[[ndarray
[Any
,dtype
[floating
[Any
]]]],floating
[Any
]]) – Statistic of central tendency (e.g., mean) to apply during the binning.subsample (
int
|float
) – Subsample the input for speed-up. <1 is parsed as a fraction. >1 is a pixel count.
Methods
__init__
([max_iterations, offset_threshold, ...])Instantiate a new Nuth and Kääb (2011) 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.
fit_and_apply
(reference_elev, to_be_aligned_elev)Estimate and apply the coregistration to a pair of elevation data.
from_matrix
(matrix)Instantiate a generic Coreg class from a transformation matrix.
from_rotations
([x_rot, y_rot, z_rot])Instantiate a generic Coreg class from a X/Y/Z rotation.
from_translations
([x_off, y_off, z_off])Instantiate a generic Coreg class from a X/Y/Z translation.
info
([as_str])Summarize information about this coregistration.
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.
to_rotations
()Extract X/Y/Z euler rotations (extrinsic convention) from the affine transformation matrix.
to_translations
()Extract X/Y/Z translations from the affine transformation matrix.
Attributes
is_affine
Check if the transform be explained by a 3D affine transform.
is_translation
meta
Metadata dictionary of the coregistration.