Dense optical flow models¶
Here we will briefly describe and implement the models from the Dense group of the rainymotion library:
Dense model
DenseRotation model
The Dense group models’ implementation can be summarized as follows:
Calculate a continuous displacement field using a global DIS optical flow algorithm (Kroeger et al., 2016) based on the radar images at t-1 and t;
Use a constant-vector or a semi-Lagrangian scheme (Fig. 1) to advect each pixel according obtained displacement (velocity) field, in one single step for each lead time t+n;
Use the intensity of each displaced pixel at its new location at time t+n in order to interpolate the intensity at each grid point of the original (native) radar grid (Liu et al., 2015; Zahraei et al., 2012) (Fig. 2).
References: Kroeger, T., Timofte, R., Dai, D., & Van Gool, L. (2016, October). Fast optical flow using dense inverse search. In European Conference on Computer Vision (pp. 471-488). Springer, Cham.
Fig. 1. Advection
Fig. 2. Scheme of Dense group models
The Dense model¶
The Dense model usage example:
# import the model from the rainymotion library
from rainymotion.models import Dense
# initialize the model
model = Dense()
# upload data to the model instance
model.input_data = np.load("/path/to/data")
# run the model with default parameters
nowcast = model.run()
The DenseRotation model¶
The DenseRotation model usage example:
# import the model from the rainymotion library
from rainymotion.models import DenseRotation
# initialize the model
model = DenseRotation()
# upload data to the model instance
model.input_data = np.load("/path/to/data")
# run the model with default parameters
nowcast = model.run()