pysteps.cascade¶
Methods for constructing bandpass filters and decomposing 2d precipitation fields into different spatial scales.
pysteps.cascade.interface¶
Interface for the cascade module.
get_method (name) |
Return a callable function for the bandpass filter or cascade decomposition method corresponding to the given name. |
pysteps.cascade.bandpass_filters¶
Bandpass filters for separating different spatial scales from two-dimensional images in the frequency domain.
The methods in this module implement the following interface:
filter_xxx(shape, n, optional arguments)
where shape is the shape of the input field, respectively, and n is the number of frequency bands to use.
The output of each filter function is a dictionary containing the following key-value pairs:
Key | Value |
---|---|
weights_1d | 2d array of shape (n, r) containing 1d filter weights for each frequency band k=1,2,…,n |
weights_2d | 3d array of shape (n, M, int(N/2)+1) containing the 2d filter weights for each frequency band k=1,2,…,n |
central_freqs | 1d array of shape n containing the central frequencies of the filters |
shape | the shape of the input field in the spatial domain |
where r = int(max(N, M)/2)+1
By default, the filter weights are normalized so that for any Fourier wavenumber they sum to one.
Available filters¶
filter_uniform (shape, n) |
A dummy filter with one frequency band covering the whole domain. |
filter_gaussian (shape, n[, l_0, …]) |
Implements a set of Gaussian bandpass filters in logarithmic frequency scale. |
pysteps.cascade.decomposition¶
Methods for decomposing two-dimensional fields into multiple spatial scales and recomposing the individual scales to obtain the original field.
The methods in this module implement the following interface:
decomposition_xxx(field, bp_filter, **kwargs)
recompose_xxx(decomp, **kwargs)
where field is the input field and bp_filter is a dictionary returned by a
filter method implemented in pysteps.cascade.bandpass_filters
. The
decomp argument is a decomposition obtained by calling decomposition_xxx.
Optional parameters can be passed in
the keyword arguments. The output of each method is a dictionary with the
following key-value pairs:
Key | Value |
---|---|
cascade_levels | three-dimensional array of shape (k,m,n), where k is the number of cascade levels and the input fields have shape (m,n) if domain is “spectral” and compact output is requested (see the table below), cascade_levels contains a list of one-dimensional arrays |
domain | domain of the cascade decomposition: “spatial” or “spectral” |
normalized | are the cascade levels normalized: True or False |
The following key-value pairs are optional. They are included in the output if **kwargs contains the “compute_stats” key with value set to True:
Key | Value |
---|---|
means | list of mean values for each cascade level |
stds | list of standard deviations for each cascade level |
The following key-value pairs are included in the output if **kwargs contains the key “output_domain” with value set to “spectral”: +——————-+———————————————————-+ | Key | Value | +===================+==========================================================+ | compact_output | True or False. If set to True, only the parts of the | | | Fourier spectrum with non-negligible filter weights are | | | stored. | +——————-+———————————————————-+ | weight_masks | Applicable if compact_output is True. Contains a list of | | | masks, where a True value indicates that the | | | corresponding Fourier wavenumber is included in the | | | decomposition | +——————-+———————————————————-+
Available methods¶
decomposition_fft (field, bp_filter, \*\*kwargs) |
Decompose a two-dimensional input field into multiple spatial scales by using the Fast Fourier Transform (FFT) and a set of bandpass filters. |
recompose_fft (decomp, \*\*kwargs) |
Recompose a cascade obtained with decomposition_fft by inverting the normalization and summing the cascade levels. |