Approximate the structure factor of a stationary point process, test its effective hyperuniformity, and identify its class of hyperuniformity.
Project description
structure-factor
Approximate the structure factor of a stationary point process, test its effective hyperuniformity, and identify its class of hyperuniformity.
Introduction
Hyperuniformity is the study of stationary point processes with a sub-Poisson variance of the number of points in a large window. To study the hyperuniformity of a given point process, a common practice in statistical physics is to estimate a spectral measure called the structure factor, the behavior of which around zero is a sign of hyperuniformity. The structure factor of a point process is defined via the Fourier transform of its total correlation function, and a point process is hyperuniform if its structure factor vanishes at zero. This Python toolbox gathers many estimators of the structure factor, along with a numerical test of effective hyperuniformity and a test for identifying the possible hyperuniformity class.
structure-factor
is an open-source Python project which currently collects
-
Three estimators of the structure factor:
- the scattering intensity,
- an estimator using Ogata quadrature for approximating the Hankel transform,
- an estimator using Baddour and Chouinard Discrete Hankel transform.
-
Two ways to qualify hyperuniformity:
- effective hyperuniformity,
- classes of hyperuniformity.
Dependencies
-
R programming language, since we call the
spatstat
R package to estimate the pair correlation function of point processes usingspatstat-interface
. -
Python dependencies are listed in the
pyproject.toml
file. Note that they mostly correspond to the latest version.[tool.poetry.dependencies] python = ">=3.7.1,<3.10" numpy = "^1.20.3" scipy = "^1.6.3" matplotlib = "^3.4.2" pandas = "^1.2.4" spatstat-interface = "^0.1.0" # spatstat-interface https://github.com/For-a-few-DPPs-more/spatstat-interface requires rpy2 https://rpy2.github.io/
Installation
Once installed it can be called from
import structure_factor
from structure_factor import ...
Install the project as a dependency
-
Install the latest version published on
# activate your virtual environment an run poetry add structure-factor # pip install structure-factor
-
Install from source (this may be broken)
# activate your virtual environment and run poetry add git+https://github.com/For-a-few-DPPs-more/structure-factor.git # pip install git+https://github.com/For-a-few-DPPs-more/structure-factor.git
Install in editable mode and potentially contribute to the project
The package can be installed in editable mode using poetry
.
To do this, clone the repository:
-
if you considered forking the repository
git clone https://github.com/your_user_name/structure-factor.git
-
if you have not forked the repository
git clone https://github.com/For-a-few-DPPs-more/structure-factor.git
and install the package in editable mode
cd structure-factor
poetry shell # to create/activate local .venv (see poetry.toml)
poetry install
# poetry install --no-dev # to avoid installing the development dependencies
# poetry add -E docs -E notebook # to install extra dependencies
Documentation
- generated using Sphinx, and
- published via the GitHub workflow file .github/workflows/docs.yml.
Build the documentation
If you use poetry
-
install the documentation dependencies (see
[tool.poetry.extras]
inpyproject.toml
)cd structure-factor poetry shell # to create/activate local .venv (see poetry.toml) poetry install -E docs # (see [tool.poetry.extras] in pyproject.toml)
-
and run
# cd structure-factor # poetry shell # to create/activate local .venv (see poetry.toml) poetry run sphinx-build -b html docs docs/_build/html open _build/html/index.html
Otherwise, if you don't use poetry
-
install the documentation dependencies (listed in
[tool.poetry.extras]
inpyproject.toml
), and -
run
cd structure-factor sphinx-build -b html docs docs/_build/html open _build/html/index.html
Getting started
-
Jupyter notebooks that showcase
structure-factor
are available in the ./notebooks folder.-
if you use
poetry
cd structure-factor poetry shell # to create/activate local .venv (see poetry.toml) poetry install -E notebook # (see [tool.poetry.extras] in pyproject.toml) # open a notebook within VSCode for example
-
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for structure_factor-1.0.1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1209c567676e3bbb24a95e24a0385c850f9f7823d475d13a8177db1c2a0a9ea9 |
|
MD5 | 4933898e53bc2fc73921e0d97ab96f40 |
|
BLAKE2b-256 | 4229daf70ad5738ee0d1c309bb727a11b8b95a1958f6fbbdb7f6b6d0df008f2d |