{ "info": { "author": "Mart\u00ed Bosch", "author_email": "marti.bosch@epfl.ch", "bugtrack_url": null, "classifiers": [ "License :: OSI Approved :: GNU Lesser General Public License v3 (LGPLv3)", "Programming Language :: Python", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.6" ], "description": "[![PyPI version fury.io](https://badge.fury.io/py/pylandstats.svg)](https://pypi.python.org/pypi/pylandstats/)\n[![Anaconda-Server Badge](https://anaconda.org/conda-forge/pylandstats/badges/version.svg)](https://anaconda.org/conda-forge/pylandstats)\n[![Documentation Status](https://readthedocs.org/projects/pylandstats/badge/?version=latest)](https://pylandstats.readthedocs.io/en/latest/?badge=latest)\n[![Build Status](https://travis-ci.org/martibosch/pylandstats.svg?branch=master)](https://travis-ci.org/martibosch/pylandstats)\n[![Coverage Status](https://coveralls.io/repos/github/martibosch/pylandstats/badge.svg?branch=master)](https://coveralls.io/github/martibosch/pylandstats?branch=master)\n[![GitHub license](https://img.shields.io/github/license/martibosch/pylandstats.svg)](https://github.com/martibosch/pylandstats/blob/master/LICENSE)\n\n# PyLandStats\n\nOpen-source Pythonic library to compute landscape metrics within the PyData stack (NumPy, pandas, matplotlib...)\n\n**Citation**: Bosch M. 2019. \"PyLandStats: An open-source Pythonic library to compute landscape metrics\". Preprint available at bioRxiv. https://doi.org/10.1101/715052\n\n## Features\n\nRead GeoTiff files of land use/cover\n\n```python\nimport pylandstats as pls\n\nls = pls.read_geotiff('data/vaud_g100_clc00_V18_5.tif')\n\nls.plot_landscape(legend=True)\n```\n\n![landscape-vaud](figures/landscape.png)\n\nCompute pandas DataFrames of landscape metrics at the patch, class and landscape level\n\n```python\npatch_metrics_df = ls.compute_patch_metrics_df()\npatch_metrics_df.head()\n```\n\n| patch_id | class_val | area | perimeter | perimeter_area_ratio | shape_index | fractal_dimension | euclidean_nearest_neighbor |\n| -------: | --------: | ---: | --------: | -------------------: | ----------: | ----------------: | -------------------------: |\n| 0 | 1 | 115 | 10600 | 92.17 | 2.409 | 1.130 | 1431.782 |\n| 1 | 1 | 13 | 2600 | 200.00 | 1.625 | 1.100 | 223.607 |\n| 2 | 1 | 2 | 600 | 300.00 | 1.000 | 1.012 | 223.607 |\n| 3 | 1 | 69 | 6000 | 86.96 | 1.765 | 1.088 | 316.228 |\n| 4 | 1 | 76 | 8800 | 115.79 | 2.444 | 1.137 | 316.228 |\n\n```python\nclass_metrics_df = ls.compute_class_metrics_df(metrics=['proportion_of_landscape', 'edge_density'])\nclass_metrics_df\n```\n\n| class_val | proportion_of_landscape | edge_density |\n| --------: | ----------------------: | -----------: |\n| 1 | 7.702 | 4.459 |\n| 2 | 92.298 | 4.459 |\n\nAlso analyze the spatio-temporal evolution of the landscape:\n\n```python\ninput_fnames = [\n 'data/vaud_g100_clc00_V18_5.tif',\n 'data/vaud_g100_clc06_V18_5a.tif',\n 'data/vaud_g100_clc12_V18_5a.tif'\n]\n\nsta = pls.SpatioTemporalAnalysis(\n input_fnames, metrics=[\n 'proportion_of_landscape',\n 'edge_density',\n 'fractal_dimension_am',\n 'landscape_shape_index',\n 'shannon_diversity_index'\n ], classes=[1], dates=[2000, 2006, 2012], \n)\n\nfig, axes = sta.plot_metrics(\n class_val=1,\n metrics=['proportion_of_landscape', 'edge_density', 'fractal_dimension_am'],\n num_cols=3)\nfig.suptitle('Class-level metrics (urban)')\n```\n\n![spatiotemporal-analysis](figures/spatiotemporal.png)\n\nSee the [documentation](https://pylandstats.readthedocs.io/en/latest/?badge=latest) and the [pylandstats-notebooks](https://github.com/martibosch/pylandstats-notebooks) repository for a more complete overview.\n\n## Installation\n\nThe easiest way to install PyLandStats is with conda:\n\n $ conda install -c conda-forge pylandstats\n\nwhich will install PyLandStats and all of its dependencies. Alternatively, you can install PyLandStats using pip:\n\n $ pip install pylandstats\n\n\nNevertheless, note that the `BufferAnalysis` and `SpatioTemporalBufferAnalysis` classes make use of [geopandas](https://github.com/geopandas/geopandas), which cannot be installed with pip. If you already have [the dependencies for geopandas](https://geopandas.readthedocs.io/en/latest/install.html#dependencies) installed in your system, you might then install PyLandStats with the `geo` extras as in:\n\n $ pip install pylandstats[geo]\n \nand you will be able to use the `BufferAnalysis` and `SpatioTemporalBufferAnalysis` classes (without having to use conda).\n\n## Acknowledgments\n\n* With the support of the \u00c9cole Polytechnique F\u00e9d\u00e9rale de Lausanne (EPFL)\n* The Corine Land Cover datasets used for the test datasets were produced with funding by the European Union", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/martibosch/pylandstats", "keywords": "", "license": "GPL-3.0", "maintainer": "", "maintainer_email": "", "name": "pylandstats", "package_url": "https://pypi.org/project/pylandstats/", "platform": "", "project_url": "https://pypi.org/project/pylandstats/", "project_urls": { "Homepage": "https://github.com/martibosch/pylandstats" }, "release_url": "https://pypi.org/project/pylandstats/1.1.1/", "requires_dist": null, "requires_python": "", "summary": "Open-source Python library to compute landscape metrics", "version": "1.1.1" }, "last_serial": 5903233, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "6f94d54478e4fa3b54ecc8ad0d89c533", "sha256": "fcd515ddeef8dc995a9236aa4c2116af74c7f126598005878b78e5b0d65ecbc2" }, "downloads": -1, "filename": "pylandstats-0.0.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "6f94d54478e4fa3b54ecc8ad0d89c533", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 28295, "upload_time": "2019-01-22T09:42:43", "url": "https://files.pythonhosted.org/packages/d3/ec/4228e32d99d9039c481e0a47c7aa8b39a52ce9a4e37af2a00f2a3fcdb325/pylandstats-0.0.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "0f4588412ca6d316fb392ce717b7af0f", "sha256": "d50f71f6b38325fb0fb380e8250e50e4024fb8c30967be43290b2011604e6b24" }, "downloads": -1, "filename": "pylandstats-0.0.1.tar.gz", "has_sig": false, "md5_digest": "0f4588412ca6d316fb392ce717b7af0f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15207, "upload_time": "2019-01-22T09:42:46", "url": "https://files.pythonhosted.org/packages/f8/6e/e54011edd8a977664b9ed27dda94e5cb9e588edaeacc17d9aa480634a918/pylandstats-0.0.1.tar.gz" } ], "0.1.0": [ { "comment_text": "", "digests": { "md5": "c0b4a15457a34742c25652770a727008", "sha256": "60dfae27fbdcdfe1f1e8aeba8e4292897f53609d9ff76487ea6f530e9641600c" }, "downloads": -1, "filename": "pylandstats-0.1.0.tar.gz", "has_sig": false, "md5_digest": "c0b4a15457a34742c25652770a727008", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16901, "upload_time": "2019-01-22T10:56:45", "url": "https://files.pythonhosted.org/packages/46/e0/2cf8ef26deb2348daa22576879c4beb1041bfa35e65fa47784fabb2debb2/pylandstats-0.1.0.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "3cbf1575ca5e1832e2fe87e25fdc54d0", "sha256": "7c5efd18c5f4749e87cd54929ed6995609dae71ebcb8acfdd5a89b9ba1038087" }, "downloads": -1, "filename": "pylandstats-0.1.1.tar.gz", "has_sig": false, "md5_digest": "3cbf1575ca5e1832e2fe87e25fdc54d0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16986, "upload_time": "2019-02-11T07:07:51", "url": "https://files.pythonhosted.org/packages/74/87/9c374e19f013e221c778e024c22fe25e40edf8d44d8eae09c28086959608/pylandstats-0.1.1.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "a1b4f295581bb6410aac52491e9e29f0", "sha256": "45adc4cc9cc48594998ee6da1aef8abc0433aa5d339a92c791a7aae4c8fb0769" }, "downloads": -1, "filename": "pylandstats-0.2.0.tar.gz", "has_sig": false, "md5_digest": "a1b4f295581bb6410aac52491e9e29f0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17910, "upload_time": "2019-03-18T16:52:12", "url": "https://files.pythonhosted.org/packages/75/10/609a780e514c8126650aabe3269b782e490cb6c07344c3c5569667eabcc9/pylandstats-0.2.0.tar.gz" } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "54214a5ff77fda078e3bb443a8698477", "sha256": "47dcdba83ed4a07664123a7c8150af4db625ffd4e2dbf6b0dd2fad4b19020b81" }, "downloads": -1, "filename": "pylandstats-0.3.0.tar.gz", "has_sig": false, "md5_digest": "54214a5ff77fda078e3bb443a8698477", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20816, "upload_time": "2019-03-28T18:34:03", "url": "https://files.pythonhosted.org/packages/c8/b2/cf2b8d5178c774ae0ea0d261d0071a1307977f21f99fc287d2bb5a0a3d81/pylandstats-0.3.0.tar.gz" } ], "0.3.1": [ { "comment_text": "", "digests": { "md5": "c4952401efaa98d51ce67d1130003a52", "sha256": "7684d1a9267ee9e11f967ccb573dbed0507c56270d4cbab4bb9f27b1da929962" }, "downloads": -1, "filename": "pylandstats-0.3.1.tar.gz", "has_sig": false, "md5_digest": "c4952401efaa98d51ce67d1130003a52", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20815, "upload_time": "2019-03-29T09:11:51", "url": "https://files.pythonhosted.org/packages/ad/b2/0fed21a12414f800d25e99af26084d964322c3b5ededa29d8f1d6b7b4875/pylandstats-0.3.1.tar.gz" } ], "0.4.0": [ { "comment_text": "", "digests": { "md5": "a925464c17dcf839fffefe9b13ddb105", "sha256": "44f8790f73b9c5a95c33d81c99aad3bd76dc2fad120c39031963acd53e0b1a38" }, "downloads": -1, "filename": "pylandstats-0.4.0.tar.gz", "has_sig": false, "md5_digest": "a925464c17dcf839fffefe9b13ddb105", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 21692, "upload_time": "2019-04-03T09:55:00", "url": "https://files.pythonhosted.org/packages/06/80/a747e0206163a6de7c34bd5eb1a54c268b8aa06d76e08e5f23a2c195dd7e/pylandstats-0.4.0.tar.gz" } ], "0.4.1": [ { "comment_text": "", "digests": { "md5": "c4f9970bd66f8045a7b15505cf8404c1", "sha256": "8c24fb1af883bd9f837db944f5b3daa7ce7fff3575dbc57a67fc0bf111466b6b" }, "downloads": -1, "filename": "pylandstats-0.4.1.tar.gz", "has_sig": false, "md5_digest": "c4f9970bd66f8045a7b15505cf8404c1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 22219, "upload_time": "2019-04-03T14:28:54", "url": "https://files.pythonhosted.org/packages/07/2d/6e83424397db00e21e5d3a05317a5af35bdb02ee53599dc0c39dffc8224b/pylandstats-0.4.1.tar.gz" } ], "0.5.0": [ { "comment_text": "", "digests": { "md5": "f41bb7f02654de847bfc12467f6e5ba4", "sha256": "71a14effcace8fbaca1fb78f3ee945a9a8797556505db9d7a0cf6124e6df55ba" }, "downloads": -1, "filename": "pylandstats-0.5.0.tar.gz", "has_sig": false, "md5_digest": "f41bb7f02654de847bfc12467f6e5ba4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 23690, "upload_time": "2019-05-28T16:12:13", "url": "https://files.pythonhosted.org/packages/12/00/d5f3aeb3c375499c43d9b741f8da9293c23f37f630f2fe3a27cd3f25670d/pylandstats-0.5.0.tar.gz" } ], "0.6.0": [ { "comment_text": "", "digests": { "md5": "0d4e35436f8439b98f24e0e2d8999fab", "sha256": "00e8128c5136bda6f0726a1ef82e9279c98d43449d597f7fa0fda0ff6560f3ff" }, "downloads": -1, "filename": "pylandstats-0.6.0.tar.gz", "has_sig": false, "md5_digest": "0d4e35436f8439b98f24e0e2d8999fab", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 27574, "upload_time": "2019-07-01T23:43:27", "url": "https://files.pythonhosted.org/packages/b5/b7/e407799c490a0c5e2bda479a35836fd8426210d4beaacc5e63e34fc06a2b/pylandstats-0.6.0.tar.gz" } ], "0.6.1": [ { "comment_text": "", "digests": { "md5": "e6ddec19a8cd2374e237a2a3c407713b", "sha256": "9521554b8da9970f9a8466066ae14698676dcb92ad99476bf985936767b1a1e5" }, "downloads": -1, "filename": "pylandstats-0.6.1.tar.gz", "has_sig": false, "md5_digest": "e6ddec19a8cd2374e237a2a3c407713b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 27682, "upload_time": "2019-07-02T23:28:39", "url": "https://files.pythonhosted.org/packages/25/a3/936f1db1075a9ae0d2ff09879c059fa47d00b58b741aaf4f6adef8c58571/pylandstats-0.6.1.tar.gz" } ], "1.0.0": [ { "comment_text": "", "digests": { "md5": "ec691db9fc9d998762e6cfe586a57c2d", "sha256": "801f8814e4484329462cff8f7db781ea4b097e2f08ef88ad61378b4a612b9223" }, "downloads": -1, "filename": "pylandstats-1.0.0.tar.gz", "has_sig": false, "md5_digest": "ec691db9fc9d998762e6cfe586a57c2d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 30836, "upload_time": "2019-07-18T09:39:56", "url": "https://files.pythonhosted.org/packages/0b/07/11df047d1f7bcec06300f51371c8bef3b4474b04810274c85968ed8ab99e/pylandstats-1.0.0.tar.gz" } ], "1.0.1": [ { "comment_text": "", "digests": { "md5": "3ec1d8ceb2103273ab7e42766225645a", "sha256": "c8c4e2ea412e08925f02be5c21d145cda12f0121cb6817b0d898e715a6d1a9f2" }, "downloads": -1, "filename": "pylandstats-1.0.1.tar.gz", "has_sig": false, "md5_digest": "3ec1d8ceb2103273ab7e42766225645a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 31055, "upload_time": "2019-07-24T20:02:52", "url": "https://files.pythonhosted.org/packages/02/f3/90ff8dc3e47889c77e66f7a2c6cc7d136372753cbf21f62aa4b58ec4234c/pylandstats-1.0.1.tar.gz" } ], "1.0.2": [ { "comment_text": "", "digests": { "md5": "8f1512dc39b29d598d2c9cb4e1aaff9a", "sha256": "1ea745213abb80563dbe52910ef5c77afb4ff531255a0f5a16b6340679c17a9c" }, "downloads": -1, "filename": "pylandstats-1.0.2.tar.gz", "has_sig": false, "md5_digest": "8f1512dc39b29d598d2c9cb4e1aaff9a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 43128, "upload_time": "2019-07-25T05:27:44", "url": "https://files.pythonhosted.org/packages/5b/3d/bf184c29ed413fe17a9df52234db5507c1c308992c7a4134da72477b2e59/pylandstats-1.0.2.tar.gz" } ], "1.1.0": [ { "comment_text": "", "digests": { "md5": "08941b4a661fc1eb5e505f3409ebd947", "sha256": "121e82be5f21d8b66a8c1b9d78ea997df88cf475066f05b44a2b0cf2a7deb5e7" }, "downloads": -1, "filename": "pylandstats-1.1.0.tar.gz", "has_sig": false, "md5_digest": "08941b4a661fc1eb5e505f3409ebd947", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 42707, "upload_time": "2019-09-17T08:50:32", "url": "https://files.pythonhosted.org/packages/6a/9c/b1fd7a22ed124c2819e31225ca29199ac3ea539c9967ba0f4113f63e1192/pylandstats-1.1.0.tar.gz" } ], "1.1.1": [ { "comment_text": "", "digests": { "md5": "b15165243939523ebaf6672327f816aa", "sha256": "b951c0399bb212f71cbec011f177bc4b2b9a214068a652d7c50620d7e874d20a" }, "downloads": -1, "filename": "pylandstats-1.1.1.tar.gz", "has_sig": false, "md5_digest": "b15165243939523ebaf6672327f816aa", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 42898, "upload_time": "2019-09-18T11:48:14", "url": "https://files.pythonhosted.org/packages/31/06/ad9d334c67780ab8e0ca915e68dcdbc38dadf5897be77269f26ca0addb7f/pylandstats-1.1.1.tar.gz" } ], "2.0.0a0": [ { "comment_text": "", "digests": { "md5": "6d2de33c5e413b444a48cca01c38e738", "sha256": "a8e37e212c36116d8f0ed5078446d92cc805a51d66fcd7ab5bd7c86e389171af" }, "downloads": -1, "filename": "pylandstats-2.0.0a0.tar.gz", "has_sig": false, "md5_digest": "6d2de33c5e413b444a48cca01c38e738", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 42530, "upload_time": "2019-09-20T08:12:18", "url": "https://files.pythonhosted.org/packages/13/3e/0e38042e03b291c256f997a5c496a3f419153fccc05ddc351f833dca8144/pylandstats-2.0.0a0.tar.gz" } ], "2.0.0a1": [ { "comment_text": "", "digests": { "md5": "36acd9310e12511aed3beeae414176b9", "sha256": "6823a190cc5875ff0e8c6ba666449f9543668e2916d99c8203cfe52d99e609d1" }, "downloads": -1, "filename": "pylandstats-2.0.0a1.tar.gz", "has_sig": false, "md5_digest": "36acd9310e12511aed3beeae414176b9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 42572, "upload_time": "2019-09-24T15:24:04", "url": "https://files.pythonhosted.org/packages/00/65/a9ce5d532e99c7df34d1cc7b03e65820bd06760d9b812fe644373e2832a0/pylandstats-2.0.0a1.tar.gz" } ], "2.0.0b0": [ { "comment_text": "", "digests": { "md5": "7fd4d42e3b28fff848c01deedd94e231", "sha256": "d4e52582704fa9fc8abbbb79383042e0ff06f4857419776bf64d8923cea92c5b" }, "downloads": -1, "filename": "pylandstats-2.0.0b0.tar.gz", "has_sig": false, "md5_digest": "7fd4d42e3b28fff848c01deedd94e231", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 42318, "upload_time": "2019-09-29T17:12:21", "url": "https://files.pythonhosted.org/packages/2c/91/f5df9bc81b8c805b6e1a3162a537a3054f06f5859295ddeb0a68e8fa577c/pylandstats-2.0.0b0.tar.gz" } ], "2.0.0b1": [ { "comment_text": "", "digests": { "md5": "6898d07c114007630bf4a3a984d50e63", "sha256": "ce1a1e5ea4f9f6d0729ead729d60de686ac08ce28bd8fa64cca082371236f7de" }, "downloads": -1, "filename": "pylandstats-2.0.0b1.tar.gz", "has_sig": false, "md5_digest": "6898d07c114007630bf4a3a984d50e63", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 42322, "upload_time": "2019-09-29T17:42:51", "url": "https://files.pythonhosted.org/packages/ea/ac/7aafb0e4ce627f9ebfabf9cf3c138f228f5803dd130235090ffa7043cb77/pylandstats-2.0.0b1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "b15165243939523ebaf6672327f816aa", "sha256": "b951c0399bb212f71cbec011f177bc4b2b9a214068a652d7c50620d7e874d20a" }, "downloads": -1, "filename": "pylandstats-1.1.1.tar.gz", "has_sig": false, "md5_digest": "b15165243939523ebaf6672327f816aa", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 42898, "upload_time": "2019-09-18T11:48:14", "url": "https://files.pythonhosted.org/packages/31/06/ad9d334c67780ab8e0ca915e68dcdbc38dadf5897be77269f26ca0addb7f/pylandstats-1.1.1.tar.gz" } ] }