Metadata-Version: 2.1
Name: spatialstats
Version: 1.1.1
Summary: Statistical routines to analyze the spatial structure of 2D and 3D spatial fields and particle distributions.
Home-page: https://github.com/mjo22/spatialstats
Author: Michael O'Brien
License: MIT
Keywords: correlation-functions bispectrum statistical-mechanics particle-simulation
Platform: UNKNOWN
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: License :: OSI Approved :: MIT License
Requires-Python: >=3.7
Description-Content-Type: text/markdown
Requires-Dist: numpy
Provides-Extra: cpu
Requires-Dist: scipy ; extra == 'cpu'
Requires-Dist: numba (>=0.50) ; extra == 'cpu'
Requires-Dist: pyfftw ; extra == 'cpu'
Provides-Extra: full
Requires-Dist: scipy ; extra == 'full'
Requires-Dist: numba (>=0.50) ; extra == 'full'
Requires-Dist: cupy (>=8.0) ; extra == 'full'
Requires-Dist: pyfftw ; extra == 'full'
Provides-Extra: gpu
Requires-Dist: cupy (>=8.0) ; extra == 'gpu'

# spatialstats #
<tt>spatialstats</tt> is a collection of statistical tools and utility routines used to analyze the multi-scale structure of 2D and 3D spatial fields and particle distributions.

Routines are designed to work with large datasets and some include optional CuPy acceleration. Each routine aims to be independent from the rest of the package, so feel free to just pull out the routine that you need!

You can read the docs at https://spatialstats.readthedocs.io/.

If you have a routine that you think would fit in this package, please do reach out! I currently have no plans to implement specific routines--only ones that come up in my research. I hope that this project will grow through a community of cross-disciplinary contributors.

### polyspectra ###
Calculate the bispectrum and power spectrum of 2D and 3D grids.

### particles ###
Calculate statistics about the multi-scale structure of 2D and 3D particle distributions, like the spatial distribution function and structure factor.

## GPU usage ##

The following example demonstrates how to interact with the <tt>spatialstats</tt> configuration object to toggle gpu usage

```python
import numpy as np
import spatialstats as ss

ss.config.gpu = True

shape = (100, 100)
data = np.random.rand(*shape)
result = ss.polyspectra.bispectrum(data)
```

## Installation ##

### Option 1 ###

Clone from github and build by running

```shell
python setup.py install
```

### Option 2 ###

Install from PyPI

```shell
pip install spatialstats
```

#### Additional Dependencies ####

<tt>spatialstats</tt> does not load any of its routines until the time of import (lazy loading), so the only installation requirement is [numpy](https://github.com/numpy/numpy). This is to keep the flexibility of <tt>spatialstats</tt> as a package of disconnected routines. Users may need to add additional dependencies after installation, such as [scipy](https://github.com/scipy/scipy), [numba](https://github.com/numba/numba)>=0.50, [cupy](https://github.com/cupy/cupy)>=8.0, and [pyfftw](https://github.com/pyFFTW/pyFFTW).


