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
File details
Details for the file structure-factor-1.0.1.tar.gz
.
File metadata
- Download URL: structure-factor-1.0.1.tar.gz
- Upload date:
- Size: 3.0 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.1.11 CPython/3.9.2 Darwin/20.5.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3a7d337acfbe0fccecafa5d4056bd13c2766810c4b78723a1e06ccb15d13f872 |
|
MD5 | 1b39020fb3ec05fe0aa91fdc65809406 |
|
BLAKE2b-256 | 9b1c2ca93e64567b02c55389943d937ee311e8ed155a78983c3131cf9977376e |
File details
Details for the file structure_factor-1.0.1-py3-none-any.whl
.
File metadata
- Download URL: structure_factor-1.0.1-py3-none-any.whl
- Upload date:
- Size: 3.0 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.1.11 CPython/3.9.2 Darwin/20.5.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1209c567676e3bbb24a95e24a0385c850f9f7823d475d13a8177db1c2a0a9ea9 |
|
MD5 | 4933898e53bc2fc73921e0d97ab96f40 |
|
BLAKE2b-256 | 4229daf70ad5738ee0d1c309bb727a11b8b95a1958f6fbbdb7f6b6d0df008f2d |