Tapered estimators
Collection of functions that compute tapered estimates of the structure factor \(S(k)\) of a stationary point process given one realization.
Some tapers (tapering function) are available in Tapers.
- structure_factor.tapered_estimators.scattering_intensity(k, point_pattern, debiased=False, direct=True)[source]
Compute the scattering intensity estimator \(\widehat{S}_{\mathrm{SI}}\) of the structure factor evaluated at at
k
, from one realization of a stationary point process encapsulated inpoint_pattern
.- Parameters
k (numpy.ndarray) – Array of size \(n \times d\), where \(d\) is the ambient dimension and \(n\) the number of points where the estimator is evaluated.
point_pattern (
PointPattern
) – Realization of the underlying stationary point process.debiased (bool, optional) – trigger the use of debiased tapered estimators. Defaults to False.
direct (bool, optional) – if
debiased
is True, trigger the use of the tapered direct/undirect debiased tapered estimators. Defaults to True.
- Returns
Vector of size \(n\) containing the evaluation of scattering intensity estimator \(\widehat{S}_{\mathrm{SI}}(k)\).
- Return type
numpy.ndarray
DefinitionThe scattering intensity estimator \(\widehat{S}_{\mathrm{SI}}, constructed from a realization :math:\){x_1, dots, x_N} subset mathbb{R}^d`, is defined by,
\[\widehat{S}_{\mathrm{SI}}(\mathbf{k}) = \frac{1}{N}\left\lvert \sum_{j=1}^N \exp(- i \left\langle \mathbf{k}, \mathbf{x_j} \right\rangle) \right\rvert^2 .\]For more details we refer to [HGBLachiezeR22], (Section 3.1).
See also
- structure_factor.tapered_estimators.allowed_k_scattering_intensity(d, L, k_max=5, meshgrid_shape=None)[source]
Return a subset of the d-dimensional allowed wavevectors corresponding to a cubic window of length
L
.- Parameters
d (int) – Dimension of the space containing the point process.
L (numpy.ndarray) – 1d array of size
d
, where each element correspond to the length of a side of the BoxWindow containing the point process realization.k_max (float, optional) – Supremum of the components of the allowed wavevectors on which the scattering intensity to be evaluated; i.e., for any allowed wavevector \(\mathbf{k}=(k_1,...,k_d)\), \(k_i \leq k\_max\) for all i. This implies that the maximum of the output vector
k_norm
will be approximately equal to the norm of the vector \((k\_max, ... k\_max)\). Defaults to 5.meshgrid_shape (tuple, optional) – Tuple of length d, where each element specifies the number of components over an axis. These axes are crossed to form a subset of \(\mathbb{Z}^d\) used to construct a set of allowed wavevectors. i.g., if d=2, setting meshgid_shape=(2,3) will construct a meshgrid of allowed wavevectors formed by a vector of 2 values over the x-axis and a vector of 3 values over the y-axis. Defaults to None, which will run the calculation over all the allowed wavevectors. Defaults to None.
- Returns
k : np.array with
d
columns where each row is an allowed wavevector.
- Return type
tuple (numpy.ndarray, list)
DefinitionThe set of the allowed wavevectors \(\{\mathbf{k}_i\}_i\) is defined by
\[\{\mathbf{k}_i\}_i = \{\frac{2 \pi}{L} \mathbf{n} ~ ; ~ \mathbf{n} \in (\mathbb{Z}^d)^\ast \}.\]Note that the maximum
n
and the number of output allowed wavevectors returned byallowed_k_scattering_intensity()
, are specified by the input parametersk_max
andmeshgrid_shape
.See also
- structure_factor.tapered_estimators.select_tapered_estimator(debiased, direct)[source]
Select the tapered estimator of the structure factor.
- Parameters
debiased (bool) – Trigger the use of a debiased tapered estimator.
direct (bool) – If
debiased
is True, trigger the use of the direct/undirect debiased tapered estimator.
- Returns
According to
debiased
anddirect
return- Return type
callable
- structure_factor.tapered_estimators.tapered_estimator_core(k, point_pattern, taper)[source]
Compute the tapered estimator \(S_{TP}(t, k)\) of the structure factor \(S(k)\) evaluated at
k
w.r.t. thetaper
\(t\) and the realizationpoint_pattern
of the underlying stationary point process.- Parameters
k (numpy.ndarray) – Array of size \(n \times d\), where \(d\) is the ambient dimension and \(n\) the number of points where the estimator is evaluated.
point_pattern (
PointPattern
) – Realization of the underlying stationary point process.taper (object) – Class with static method or instance with method
.taper(x, window)
corresponding to \(t(x, W)\).
- Returns
Evaluation of the tapered estimator \(S_{TP}(t, k)\) at
k
.- Return type
numpy.ndarray
DefinitionThe tapered estimator \(S_{TP}(t, k)\), constructed from a realization \(\{x_1, \dots, x_N\} \subset \mathbb{R}^d\), is defined by,
\[S_{TP}(t, k) = \frac{1}{\rho} \left\lvert \sum_{j=1}^N t(x_j, W) \exp(- i \left\langle k, x_j \right\rangle) \right\rvert^2,\]for \(k \in \mathbb{R}^d\).
- structure_factor.tapered_estimators.tapered_estimator_debiased_direct(k, point_pattern, taper)[source]
Compute the direct debiased tapered estimator \(S_{DDTP}(t, k)\) of the structure factor \(S(k)\) evaluated at
k
w.r.t. thetaper
\(t\) and the realizationpoint_pattern
of the underlying stationary point process.\[S_{DDTP}(t, k) = \frac{1}{\rho} \left\lvert \sum_{j=1}^N t(x_j, W) \exp(- i \left\langle k, x_j \right\rangle) - \rho F[t(\cdot, W)](k) \right\rvert^2\]where \(x_{1}, \dots, x_{N}\) corresponds to
point_pattern.points
, \(W\) corresponds to the windowpoint_pattern.window
and \(\rho\) is the intensity of the underlying stationary point process.The direct debiased estimator \(S_{DDTP}(t, k)\) is positive and asymptotically unbiased as the observation window \(W\) grows to \(\mathbb{R}^d\).
- Parameters
k (numpy.ndarray) – Array of size \(n \times d\), where \(d\) is the ambient dimension and \(n\) the number of points where the estimator is evaluated.
point_pattern (
PointPattern
) – Realization of the underlying stationary point process.taper (object) –
class instance with two methods:
.taper(x, window)
corresponding to the taper function \(t(x, W)\) such that \(\|t(\cdot, W)\|_2 = 1\)..ft_taper(k, window)
corresponding to the Fourier transform \(\mathcal{F}[t(\cdot, W)](k)\) of the taper function.
- Returns
Vector of size \(n\) containing the evaluation of the direct debiased estimator \(S_{DDTP}(t, k)\).
- Return type
numpy.ndarray
- structure_factor.tapered_estimators.tapered_estimator_debiased_undirect(k, point_pattern, taper)[source]
Compute the undirect debiased tapered estimator \(S_{UDTP}(t, k)\) of the structure factor \(S(k)\) evaluated at
k
w.r.t. thetaper
\(t\) and the realizationpoint_pattern
of the underlying stationary point process.\[S_{UDTP}(t, k) = \frac{1}{\rho} \left\lvert \sum_{j=1}^N t(x_j, W) \exp(- i \left\langle k, x_j \right\rangle) \right\rvert^2 - \rho \left\lvert F[t(\cdot, W)](k)) \right\rvert^2\]where \(x_{1}, \dots, x_{N}\) corresponds to
point_pattern.points
, \(W\) corresponds to the windowpoint_pattern.window
and \(\rho\) is the intensity of the underlying stationary point process.The undirect debiased estimator \(S_{UDTP}(t, k)\) is not guaranteed to be positive but is asymptotically unbiased as the observation window \(W\) grows to \(\mathbb{R}^d\).
- Parameters
k (numpy.ndarray) – Array of size \(n \times d\), where \(d\) is the ambient dimension and \(n\) the number of points where the estimator is evaluated.
point_pattern (
PointPattern
) – Realization of the underlying stationary point process.taper (object) –
class instance with two methods:
.taper(x, window)
corresponding to the taper function \(t(x, W)\) such that \(\|t(\cdot, W)\|_2 = 1\)..ft_taper(k, window)
corresponding to the Fourier transform \(\mathcal{F}[t(\cdot, W)](k)\) of the taper function.
- Returns
Vector of size \(n\) containing the evaluation of the direct debiased estimator \(S_{UDTP}(t, k)\).
- Return type
numpy.ndarray
- structure_factor.tapered_estimators.tapered_dft(k, point_pattern, taper)[source]
Compute the tapered discrete Fourier transform (tapered DFT) associated with
point_pattern
evaluated atk
, usingtaper
\(t\).\[\sum_{j=1}^N t(x_j, W) \exp(- i \langle k, x_j \rangle),\]where \(x_{1}, \dots, x_{N}\) corresponds to
point_pattern.points
and \(W\) corresponds to the windowpoint_pattern.window
.- Parameters
k (numpy.ndarray) – Array of size \(n \times d\), where \(d\) is the ambient dimension and \(n\) the number of points where the tapered DFT is evaluated.
point_pattern (
PointPattern
) – Realization of the underlying stationary point process.taper (object) – class with static method or instance with method
.taper(x, window)
corresponding to \(t(x, W)\) such that \(\|t(\cdot, W)\|_2 = 1\).
- Returns
Evaluation of the DFT of the taper h
- Return type
numpy.ndarray
- structure_factor.tapered_estimators.periodogram_from_dft(dft)[source]
Compute the square absolute value
abs(dft)**2
of the discrete Fourier transformdft
.\[\left\lvert \sum_{j=1}^N t(x_j) \exp(- i \langle k, x_j \rangle) \right\rvert ^ 2,\]- Parameters
dft (numpy.ndarray) – Discrete Fourier transform computed via
tapered_dft()
.- Returns
abs(dft)**2
.- Return type
numpy.ndarray