Simple Python interface with the spatial statistics R package spatstat using rpy2.
- R (programming language)
spatstatpackage, which has recently been split into multiple sub-packages and extensions. Warning: potential new splits may break your code!
- Python >= 3.7, with dependencies listed in the
pyproject.tomlfile. Note that they mostly correspond to the latest version.
You may consider using poetry to manage your whole project as described here https://github.com/guilgautier/template-python-project.
-
Install the latest version published on
# activate your virtual environment an run poetry add spatstat-interface # pip install spatstat-interface
-
Install from source (this may be broken)
# activate your virtual environment an run poetry add git+https://github.com/For-a-few-DPPs-more/spatstat-interface.git # pip install git+https://github.com/For-a-few-DPPs-more/spatstat-interface.git
You may consider forking the repository.
In any case, your can clone the repository
-
if you have forked the repository
git clone https://github.com/your_user_name/spatstat-interface.git
-
if you have not forked the repository
git clone https://github.com/For-a-few-DPPs-more/spatstat-interface.git
The package can be installed in editable mode along with
- main (non-optional) dependencies, see
[tool.poetry.dependencies]inpyproject.toml - development dependencies,
[tool.poetry.group.dev.dependencies]inpyproject.toml
cd spatstat-interface
# poetry shell # to create/activate local .venv (see poetry.toml)
poetry install
# poetry install --with dev
# poetry install --with dev --extras "notebook"Consider using pip>=21.3.1, when installing packages defined by a pyproject.toml file.
cd spatstat-interface
# activate your virtual environment and run
pip install --editable .
# pip install --editable ".[notebook]" to install notebook dependenciesSee also the pip install optional commands.
notebooksshowcase detailed examplesrpy2documentationspatstatdocumentation
The spatstat package has recently been split into multiple sub-packages and extensions.
Warning: potential new splits may break your code!
Using spatstat-interface, sub-packages and extensions are accessible in the following way
from spatstat_interface.interface import SpatstatInterface
spatstat = SpatstatInterface()
# spatstat.spatstat is None
# spatstat.model is None
# spatstat.explore is None
# spatstat.geom is None
# load/import sub-packages or extensions
spatstat.import_package("model", "explore", "geom", update=True)
spatstat.model
spatstat.explore
spatstat.geomTo call the R function.variant
# R code pcf.ppp
spatstat.explore::pcf.ppp(X)Replace . by _ to call function_variant in Python
# Python code pcf_ppp
spatstat.explore.pcf_ppp(X)Consider using Python dictionaries to pass keyword arguments. Below are a few examples.
-
dot keywords, for example passing
var.approxkeyword argument won't work in Python# R code spatstat.explore::pcf.ppp(X, kernel="epanechnikov", var.approx=False)
# Python code params = {"kernel": "epanechnikov", "var.approx": False} spatstat.explore.pcf_ppp(X, **params)
-
reserved keywords, for example
lambdais a reserved Python keyword; it can't be used as a keyword argument# R code spatstat.model::dppGauss(lambda=rho, alpha=alpha, d=d)
# Python code params = {"lambda": rho, "alpha": alpha, "d": d} spatstat.model.dppGauss(**params)