pysteps.nowcasts.sprog.forecast

pysteps.nowcasts.sprog.forecast(R, V, n_timesteps, n_cascade_levels=6, R_thr=None, extrap_method='semilagrangian', decomp_method='fft', bandpass_filter_method='gaussian', ar_order=2, conditional=False, probmatching_method='mean', num_workers=1, fft_method='numpy', extrap_kwargs=None, filter_kwargs=None, measure_time=False)

Generate a nowcast by using the Spectral Prognosis (S-PROG) method.

Parameters:
R : array-like

Array of shape (ar_order+1,m,n) containing the input precipitation fields ordered by timestamp from oldest to newest. The time steps between the inputs are assumed to be regular, and the inputs are required to have finite values.

V : array-like

Array of shape (2,m,n) containing the x- and y-components of the advection field. The velocities are assumed to represent one time step between the inputs. All values are required to be finite.

n_timesteps : int

Number of time steps to forecast.

n_cascade_levels : int, optional

The number of cascade levels to use.

R_thr : float, optional

Specifies the threshold value for minimum observable precipitation intensity. Required if mask_method is not None or conditional is True.

extrap_method : str, optional

Name of the extrapolation method to use. See the documentation of pysteps.extrapolation.interface.

decomp_method : {‘fft’}, optional

Name of the cascade decomposition method to use. See the documentation of pysteps.cascade.interface.

bandpass_filter_method : {‘gaussian’, ‘uniform’}, optional

Name of the bandpass filter method to use with the cascade decomposition. See the documentation of pysteps.cascade.interface.

ar_order : int, optional

The order of the autoregressive model to use. Must be >= 1.

conditional : bool, optional

If set to True, compute the statistics of the precipitation field conditionally by excluding pixels where the values are below the threshold R_thr.

probmatching_method : {‘cdf’,’mean’,None}, optional

Method for matching the conditional statistics of the forecast field (areas with precipitation intensity above the threshold R_thr) with those of the most recently observed one. ‘cdf’=map the forecast CDF to the observed one, ‘mean’=adjust only the mean value, None=no matching applied.

num_workers : int, optional

The number of workers to use for parallel computation. Applicable if dask is enabled or pyFFTW is used for computing the FFT. When num_workers>1, it is advisable to disable OpenMP by setting the environment variable OMP_NUM_THREADS to 1. This avoids slowdown caused by too many simultaneous threads.

fft_method : str, optional

A string defining the FFT method to use (see utils.fft.get_method). Defaults to ‘numpy’ for compatibility reasons. If pyFFTW is installed, the recommended method is ‘pyfftw’.

extrap_kwargs : dict, optional

Optional dictionary containing keyword arguments for the extrapolation method. See the documentation of pysteps.extrapolation.

filter_kwargs : dict, optional

Optional dictionary containing keyword arguments for the filter method. See the documentation of pysteps.cascade.bandpass_filters.py.

measure_time : bool

If set to True, measure, print and return the computation time.

Returns:
out : ndarray

A three-dimensional array of shape (n_timesteps,m,n) containing a time series of forecast precipitation fields. The time series starts from t0+timestep, where timestep is taken from the input precipitation fields R. If measure_time is True, the return value is a three-element tuple containing the nowcast array, the initialization time of the nowcast generator and the time used in the main loop (seconds).

References

[See03]