pysteps.motion.vet.morph

Contents

pysteps.motion.vet.morph#

pysteps.motion.vet.morph(image, displacement, gradient=False)#

Morph image by applying a displacement field (Warping).

The new image is created by selecting for each position the values of the input image at the positions given by the x and y displacements. The routine works in a backward sense. The displacement vectors have to refer to their destination.

For more information in Morphing functions see Section 3 in Beezley and Mandel (2008).

Beezley, J. D., & Mandel, J. (2008). Morphing ensemble Kalman filters. Tellus A, 60(1), 131-140.

The displacement field in x and y directions and the image must have the same dimensions.

The morphing is executed in parallel over x axis.

The value of displaced pixels that fall outside the limits takes the value of the nearest edge. Those pixels are indicated by values greater than 1 in the output mask.

Parameters:
  • image (ndarray (ndim = 2)) – Image to morph

  • displacement (ndarray (ndim = 3)) –

    Displacement field to be applied (Warping). The first dimension corresponds to the coordinate to displace.

    The dimensions are: displacement [ i/x (0) or j/y (1) , i index of pixel, j index of pixel ]

  • gradient (bool, optional) – If True, the gradient of the morphing function is returned.

Returns:

  • image (ndarray (float64 ,ndim = 2)) – Morphed image.

  • mask (ndarray (int8 ,ndim = 2)) – Invalid values mask. Points outside the boundaries are masked. Values greater than 1, indicate masked values.

  • gradient_values (ndarray (float64 ,ndim = 3), optional) – If gradient keyword is True, the gradient of the function is also returned.