.. image:: https://raw.githubusercontent.com/baptistehamon/lsapy/main/docs/logos/lsapy/LSAPy_Logo_FullColour.png
:class: dark-light
:align: center
:target: https://github.com/baptistehamon/lsapy
:width: 400px
:alt: LSAPy Logo
LSAPy: Land Suitability Analysis in Python
===========================================
|pypi| |python-versions| |status| |testing| |coverage| |ruff| |pre-commit| |docs| |question| |zenodo|
`LSAPy` stands for Land Suitability Analysis (LSA) in Python. Its objective is to make conducting
LSA in Python easier and more accessible to users. It provides a set of objects built around
`xarray`_ and operating together, making LSA's workflow straight forward and easy to understand.
.. _`xarray`: https://xarray.pydata.org/en/stable/
Quick Start
-------------
To install `LSAPy`, you can use `pip`:
.. code-block:: shell
pip install lsapy
You can now perform your LSA:
.. code-block:: python
# import modules
from lsapy import LandSuitabilityAnalysis, SuitabilityCriteria, SuitabilityFunction
# define your criteria
criteria = {
"crit1": SuitabilityCriteria(
name="criteria1",
indicator=indicator1, # xarray object
func=SuitabilityFunction(
name="function_name", params={"param1": value1, "param2": value2}
),
),
"crit2": SuitabilityCriteria(
name="criteria2",
indicator=indicator2, # xarray object
func=SuitabilityFunction(
name="another_function_name",
params={"param1": value1, "param2": value2},
),
),
# add all necessary criteria
}
# define your land suitability
lsa = LandSuitabilityAnalysis(
land_use="land_use_name",
criteria=criteria,
)
# run your analysis
lsa.run(params)
More detailed tutorials and examples can be found in the `User Guide`_.
.. _`User Guide`: https://lsapy.readthedocs.io/en/latest/notebooks/index.html
Contributing
------------
`LSAPy` is an open-source project and we welcome contributions from the community. If you are interested in contributing, please
refer to the `Contribution`_ section for guidelines on how to get started helping us improve the library.
.. _`Contribution`: https://lsapy.readthedocs.io/en/latest/community/contributing.html
Credits
-------
The development of `LSAPy` started as part of a PhD, funded by the `Food Transition 2050`_ Joint Postgraduate School and hosted
by the `University of Canterbury`_ in New Zealand.
|FT2050| |UC-white| |UC-black|
The Python package has been created following the `pyOpenSci Guidebook`_.
.. _`Food Transition 2050`: https://www.foodtransitions2050.ac.nz/
.. _`University of Canterbury`: https://www.canterbury.ac.nz/
.. _`pyOpenSci Guidebook`: https://www.pyopensci.org/python-package-guide/
.. |logo| image:: https://raw.githubusercontent.com/baptistehamon/lsapy/main/docs/logos/lsapy/LSAPy_Logo_FullColour.png
:class: dark-light
:target: https://github.com/baptistehamon/lsapy
:width: 400px
:alt: LSAPy Logo
.. |FT2050| image:: https://raw.githubusercontent.com/baptistehamon/lsapy/main/docs/logos/FT2050-full_colour.png
:class: dark-light
:target: https://www.foodtransitions2050.ac.nz/
:width: 200px
:alt: Food Transition 2050 Logo
.. |UC-white| image:: https://raw.githubusercontent.com/baptistehamon/lsapy/main/docs/logos/UCWhite.png
:class: only-dark
:target: https://www.canterbury.ac.nz/
:width: 100px
:alt: University of Canterbury Logo
.. |UC-black| image:: https://raw.githubusercontent.com/baptistehamon/lsapy/main/docs/logos/UCBlack.png
:class: only-light
:target: https://www.canterbury.ac.nz/
:width: 100px
:alt: University of Canterbury Logo
.. |pypi| image:: https://img.shields.io/pypi/v/lsapy.svg
:target: https://pypi.python.org/pypi/lsapy
:alt: Python Package Index Build
.. |status| image:: https://www.repostatus.org/badges/latest/active.svg
:target: https://www.repostatus.org/#active
:alt: Project Status: Active - The project has reached a stable, usable state and is being actively developed.
.. |zenodo| image:: https://zenodo.org/badge/DOI/10.5281/zenodo.15015111.svg
:target: https://doi.org/10.5281/zenodo.15015111
:alt: Zenodo DOI
.. |ruff| image:: https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/ruff/main/assets/badge/v2.json
:target: https://github.com/astral-sh/ruff
:alt: Ruff
.. |docs| image:: https://readthedocs.org/projects/lsapy/badge/
:target: https://lsapy.readthedocs.io/en/latest/
:alt: Documentation Status
.. |question| image:: https://img.shields.io/badge/Question_%3F-blue?style=social&logo=github
:target: https://github.com/baptistehamon/lsapy/labels/question
:alt: Link to question issues
.. |pre-commit| image:: https://results.pre-commit.ci/badge/github/baptistehamon/lsapy/main.svg
:target: https://results.pre-commit.ci/latest/github/baptistehamon/lsapy/main
:alt: pre-commit.ci status
.. |testing| image:: https://github.com/baptistehamon/lsapy/actions/workflows/testing.yml/badge.svg
:target: https://github.com/baptistehamon/lsapy/actions/workflows/testing.yml
:alt: Testing Status
.. |coverage| image:: https://coveralls.io/repos/github/baptistehamon/lsapy/badge.svg
:target: https://coveralls.io/github/baptistehamon/lsapy
:alt: Coverage Status (Coveralls)
.. |python-versions| image:: https://img.shields.io/pypi/pyversions/lsapy
:target: https://pypi.python.org/pypi/lsapy
:alt: Supported Python Versions
Raw data
{
"_id": null,
"home_page": null,
"name": "lsapy",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.10",
"maintainer_email": "Baptiste Hamon <baptiste.hamon@pg.canterbury.ac.nz>",
"keywords": "LSAPy, Land Suitability Analysis, Geospatial Analysis, GIS, Geography",
"author": null,
"author_email": "Baptiste Hamon <baptiste.hamon@pg.canterbury.ac.nz>",
"download_url": "https://files.pythonhosted.org/packages/b3/64/05af0c1ffb66aa815f75e62c37f9d409d6f2213d8cdc230aa427ed117418/lsapy-0.2.0.tar.gz",
"platform": null,
"description": ".. image:: https://raw.githubusercontent.com/baptistehamon/lsapy/main/docs/logos/lsapy/LSAPy_Logo_FullColour.png\n :class: dark-light\n :align: center\n :target: https://github.com/baptistehamon/lsapy\n :width: 400px\n :alt: LSAPy Logo\n\nLSAPy: Land Suitability Analysis in Python\n===========================================\n|pypi| |python-versions| |status| |testing| |coverage| |ruff| |pre-commit| |docs| |question| |zenodo|\n\n`LSAPy` stands for Land Suitability Analysis (LSA) in Python. Its objective is to make conducting\nLSA in Python easier and more accessible to users. It provides a set of objects built around\n`xarray`_ and operating together, making LSA's workflow straight forward and easy to understand.\n\n.. _`xarray`: https://xarray.pydata.org/en/stable/\n\nQuick Start\n-------------\nTo install `LSAPy`, you can use `pip`:\n\n.. code-block:: shell\n\n pip install lsapy\n\n\nYou can now perform your LSA:\n\n.. code-block:: python\n\n # import modules\n from lsapy import LandSuitabilityAnalysis, SuitabilityCriteria, SuitabilityFunction\n\n # define your criteria\n criteria = {\n \"crit1\": SuitabilityCriteria(\n name=\"criteria1\",\n indicator=indicator1, # xarray object\n func=SuitabilityFunction(\n name=\"function_name\", params={\"param1\": value1, \"param2\": value2}\n ),\n ),\n \"crit2\": SuitabilityCriteria(\n name=\"criteria2\",\n indicator=indicator2, # xarray object\n func=SuitabilityFunction(\n name=\"another_function_name\",\n params={\"param1\": value1, \"param2\": value2},\n ),\n ),\n # add all necessary criteria\n }\n\n # define your land suitability\n lsa = LandSuitabilityAnalysis(\n land_use=\"land_use_name\",\n criteria=criteria,\n )\n\n # run your analysis\n lsa.run(params)\n\nMore detailed tutorials and examples can be found in the `User Guide`_.\n\n.. _`User Guide`: https://lsapy.readthedocs.io/en/latest/notebooks/index.html\n\n\nContributing\n------------\n\n`LSAPy` is an open-source project and we welcome contributions from the community. If you are interested in contributing, please\nrefer to the `Contribution`_ section for guidelines on how to get started helping us improve the library.\n\n.. _`Contribution`: https://lsapy.readthedocs.io/en/latest/community/contributing.html\n\nCredits\n-------\n\nThe development of `LSAPy` started as part of a PhD, funded by the `Food Transition 2050`_ Joint Postgraduate School and hosted\nby the `University of Canterbury`_ in New Zealand.\n\n|FT2050| |UC-white| |UC-black|\n\nThe Python package has been created following the `pyOpenSci Guidebook`_.\n\n.. _`Food Transition 2050`: https://www.foodtransitions2050.ac.nz/\n.. _`University of Canterbury`: https://www.canterbury.ac.nz/\n.. _`pyOpenSci Guidebook`: https://www.pyopensci.org/python-package-guide/\n\n.. |logo| image:: https://raw.githubusercontent.com/baptistehamon/lsapy/main/docs/logos/lsapy/LSAPy_Logo_FullColour.png\n :class: dark-light\n :target: https://github.com/baptistehamon/lsapy\n :width: 400px\n :alt: LSAPy Logo\n\n.. |FT2050| image:: https://raw.githubusercontent.com/baptistehamon/lsapy/main/docs/logos/FT2050-full_colour.png\n :class: dark-light\n :target: https://www.foodtransitions2050.ac.nz/\n :width: 200px\n :alt: Food Transition 2050 Logo\n\n.. |UC-white| image:: https://raw.githubusercontent.com/baptistehamon/lsapy/main/docs/logos/UCWhite.png\n :class: only-dark\n :target: https://www.canterbury.ac.nz/\n :width: 100px\n :alt: University of Canterbury Logo\n\n.. |UC-black| image:: https://raw.githubusercontent.com/baptistehamon/lsapy/main/docs/logos/UCBlack.png\n :class: only-light\n :target: https://www.canterbury.ac.nz/\n :width: 100px\n :alt: University of Canterbury Logo\n\n.. |pypi| image:: https://img.shields.io/pypi/v/lsapy.svg\n :target: https://pypi.python.org/pypi/lsapy\n :alt: Python Package Index Build\n\n.. |status| image:: https://www.repostatus.org/badges/latest/active.svg\n :target: https://www.repostatus.org/#active\n :alt: Project Status: Active - The project has reached a stable, usable state and is being actively developed.\n\n.. |zenodo| image:: https://zenodo.org/badge/DOI/10.5281/zenodo.15015111.svg\n :target: https://doi.org/10.5281/zenodo.15015111\n :alt: Zenodo DOI\n\n.. |ruff| image:: https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/ruff/main/assets/badge/v2.json\n :target: https://github.com/astral-sh/ruff\n :alt: Ruff\n\n.. |docs| image:: https://readthedocs.org/projects/lsapy/badge/\n :target: https://lsapy.readthedocs.io/en/latest/\n :alt: Documentation Status\n\n.. |question| image:: https://img.shields.io/badge/Question_%3F-blue?style=social&logo=github\n :target: https://github.com/baptistehamon/lsapy/labels/question\n :alt: Link to question issues\n\n.. |pre-commit| image:: https://results.pre-commit.ci/badge/github/baptistehamon/lsapy/main.svg\n :target: https://results.pre-commit.ci/latest/github/baptistehamon/lsapy/main\n :alt: pre-commit.ci status\n\n.. |testing| image:: https://github.com/baptistehamon/lsapy/actions/workflows/testing.yml/badge.svg\n :target: https://github.com/baptistehamon/lsapy/actions/workflows/testing.yml\n :alt: Testing Status\n\n.. |coverage| image:: https://coveralls.io/repos/github/baptistehamon/lsapy/badge.svg\n :target: https://coveralls.io/github/baptistehamon/lsapy\n :alt: Coverage Status (Coveralls)\n\n.. |python-versions| image:: https://img.shields.io/pypi/pyversions/lsapy\n :target: https://pypi.python.org/pypi/lsapy\n :alt: Supported Python Versions\n\n",
"bugtrack_url": null,
"license": null,
"summary": "A Python package for Land Suitability Analysis.",
"version": "0.2.0",
"project_urls": {
"Homepage": "https://lsapy.readthedocs.io/en/stable/",
"Issues": "https://github.com/baptistehamon/lsapy/issues",
"Source": "https://github.com/baptistehamon/lsapy",
"Zenodo": "https://doi.org/10.5281/zenodo.15015110"
},
"split_keywords": [
"lsapy",
" land suitability analysis",
" geospatial analysis",
" gis",
" geography"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "57277bb0bdfcaadacfcd0f7f35c117d0e0aad68fccb0f751799f39f488e564d0",
"md5": "1fae7fbec673dbe29ba96e69a73fdf94",
"sha256": "b4f19f5381b6e775a2584224775335e19e34f307445adb9031b4484b2dabe0ec"
},
"downloads": -1,
"filename": "lsapy-0.2.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "1fae7fbec673dbe29ba96e69a73fdf94",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.10",
"size": 25757,
"upload_time": "2025-08-20T07:38:36",
"upload_time_iso_8601": "2025-08-20T07:38:36.417539Z",
"url": "https://files.pythonhosted.org/packages/57/27/7bb0bdfcaadacfcd0f7f35c117d0e0aad68fccb0f751799f39f488e564d0/lsapy-0.2.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "b36405af0c1ffb66aa815f75e62c37f9d409d6f2213d8cdc230aa427ed117418",
"md5": "b4c402ded0da8df47c23e9889bba8778",
"sha256": "507dca46d376453f76a46012f8f1d35967885abaccf7d4ab857c0ec16dc27d71"
},
"downloads": -1,
"filename": "lsapy-0.2.0.tar.gz",
"has_sig": false,
"md5_digest": "b4c402ded0da8df47c23e9889bba8778",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.10",
"size": 655538,
"upload_time": "2025-08-20T07:38:37",
"upload_time_iso_8601": "2025-08-20T07:38:37.776627Z",
"url": "https://files.pythonhosted.org/packages/b3/64/05af0c1ffb66aa815f75e62c37f9d409d6f2213d8cdc230aa427ed117418/lsapy-0.2.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-08-20 07:38:37",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "baptistehamon",
"github_project": "lsapy",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "lsapy"
}