pysteps.motion.vet.vet_cost_function

pysteps.motion.vet.vet_cost_function(sector_displacement_1d, input_images, blocks_shape, mask, smooth_gain, debug=False, gradient=False)

Variational Echo Tracking Cost Function.

This function is designed to be used with the scipy minimization. The function first argument is the variable to be used in the minimization procedure.

The sector displacement must be a flat array compatible with the dimensions of the input image and sectors shape (see parameters section below for more details).

Parameters:
sector_displacement_1d : ndarray

Array of displacements to apply to each sector. The dimensions are: sector_displacement_2d [ x (0) or y (1) displacement, i index of sector, j index of sector ]. The shape of the sector displacements must be compatible with the input image and the block shape. The shape should be (2, mx, my) where mx and my are the numbers of sectors in the x and the y dimension.

input_images : ndarray

Input images, sequence of 2D arrays, or 3D arrays. The first dimension represents the images time dimension.

The template_image (first element in first dimensions) denotes the reference image used to obtain the displacement (2D array). The second is the target image.

The expected dimensions are (2,nx,ny). Be aware the the 2D images dimensions correspond to (lon,lat) or (x,y).

blocks_shape : ndarray (ndim=2)

Number of sectors in each dimension (x and y). blocks_shape.shape = (mx,my)

mask : ndarray (ndim=2)

Data mask. If is True, the data is marked as not valid and is not used in the computations.

smooth_gain : float

Smoothness constrain gain

debug : bool, optional

If True, print debugging information.

gradient : bool, optional

If True, the gradient of the morphing function is returned.

Returns:
penalty or gradient values.
penalty : float

Value of the cost function

gradient_values : ndarray (float64 ,ndim = 3), optional

If gradient keyword is True, the gradient of the function is also returned.