{ "info": { "author": "", "author_email": "", "bugtrack_url": null, "classifiers": [], "description": "xarray-simlab: xarray extension for computer model simulations\n==============================================================\n\n|Build Status| |Coverage| |Doc Status| |Zenodo|\n\nxarray-simlab is a Python library that provides both a generic\nframework for building computational models in a modular fashion and a\nxarray_ extension for setting and running simulations using the\nxarray's ``Dataset`` structure. It is designed for fast, interactive\nand exploratory modeling.\n\n.. _xarray: http://xarray.pydata.org\n.. |Build Status| image:: https://travis-ci.org/benbovy/xarray-simlab.svg?branch=master\n :target: https://travis-ci.org/benbovy/xarray-simlab\n :alt: Build Status\n.. |Coverage| image:: https://coveralls.io/repos/github/benbovy/xarray-simlab/badge.svg?branch=master\n :target: https://coveralls.io/github/benbovy/xarray-simlab?branch=master\n :alt: Coverage Status\n.. |Doc Status| image:: http://readthedocs.org/projects/xarray-simlab/badge/?version=latest\n :target: http://xarray-simlab.readthedocs.io/en/latest/?badge=latest\n :alt: Documentation Status\n.. |Zenodo| image:: https://zenodo.org/badge/93938479.svg\n :target: https://zenodo.org/badge/latestdoi/93938479\n :alt: Citation\n\nIn a nutshell\n-------------\n\nThe Conway's Game of Life example shown below is adapted from this\n`blog post `_\nby Jake VanderPlas.\n\n1. Create new model components by writing compact Python classes,\n i.e., very much like dataclasses_:\n\n.. code-block:: python\n\n import numpy as np\n import xsimlab as xs\n\n @xs.process\n class GameOfLife:\n world = xs.variable(dims=('x', 'y'), intent='inout')\n\n def run_step(self):\n nbrs_count = sum(\n np.roll(np.roll(self.world, i, 0), j, 1)\n for i in (-1, 0, 1) for j in (-1, 0, 1)\n if (i != 0 or j != 0)\n )\n self._world_next = (nbrs_count == 3) | (self.world & (nbrs_count == 2))\n\n def finalize_step(self):\n self.world[:] = self._world_next\n\n\n @xs.process\n class Glider:\n pos = xs.variable(dims='point_xy', description='glider position')\n world = xs.foreign(GameOfLife, 'world', intent='out')\n\n def initialize(self):\n x, y = self.pos\n\n kernel = [[1, 0, 0],\n [0, 1, 1],\n [1, 1, 0]]\n\n self.world = np.zeros((10, 10), dtype=bool)\n self.world[x:x+3, y:y+3] = kernel\n\n2. Create a new model just by providing a dictionary of model components:\n\n.. code-block:: python\n\n model = xs.Model({'gol': GameOfLife,\n 'init': Glider})\n\n3. Create an input ``xarray.Dataset``, run the model and get an output\n ``Dataset``:\n\n.. code-block:: python\n\n input_dataset = xs.create_setup(\n model=model,\n clocks={'step': np.arange(9)},\n input_vars={'init__pos': ('point_xy', [4, 5])},\n output_vars={'step': 'gol__world'}\n )\n\n output_dataset = input_dataset.xsimlab.run(model=model)\n\n.. code-block:: python\n\n >>> output_dataset\n \n Dimensions: (point_xy: 2, step: 9, x: 10, y: 10)\n Coordinates:\n * step (step) int64 0 1 2 3 4 5 6 7 8\n Dimensions without coordinates: point_xy, x, y\n Data variables:\n init__pos (point_xy) int64 4 5\n gol__world (step, x, y) bool False False False False ... False False False\n\n4. Perform model setup, pre-processing, run, post-processing and\n visualization in a functional style, using method chaining:\n\n.. code-block:: python\n\n import matplotlib.pyplot as plt\n\n with model:\n (input_dataset\n .xsimlab.update_vars(\n input_vars={'init__pos': ('point_xy', [2, 2])}\n )\n .xsimlab.run()\n .gol__world.plot.imshow(\n col='step', col_wrap=3, figsize=(5, 5),\n xticks=[], yticks=[],\n add_colorbar=False, cmap=plt.cm.binary)\n )\n\n.. image:: doc/_static/gol.png\n :width: 400px\n\n.. _dataclasses: https://docs.python.org/3/library/dataclasses.html\n\nDocumentation\n-------------\n\nDocumentation is hosted on ReadTheDocs:\nhttp://xarray-simlab.readthedocs.io\n\nLicense\n-------\n\n3-clause (\"Modified\" or \"New\") BSD license,\nsee `License file `__.\n\nxarray-simlab uses short parts of the code of the xarray_, pandas_ and\ndask_ libraries. Their licenses are reproduced in the \"licenses\"\ndirectory.\n\n.. _pandas: http://pandas.pydata.org/\n.. _dask: http://dask.pydata.org\n\nAcknowledgment\n--------------\n\nThis project is supported by the `Earth Surface Process Modelling`_\ngroup of the GFZ Helmholtz Centre Potsdam.\n\n.. _`Earth Surface Process Modelling`: http://www.gfz-potsdam.de/en/section/earth-surface-process-modelling/\n\nCitation\n--------\n\nIf you use xarray-simlab in a scientific publication, we would\nappreciate a `citation`_.\n\n.. _`citation`: http://xarray-simlab.readthedocs.io/en/latest/citation.html\n\n\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://github.com/benbovy/xarray-simlab", "keywords": "python xarray modelling simulation framework", "license": "BSD-Clause3", "maintainer": "Benoit Bovy", "maintainer_email": "benbovy@gmail.com", "name": "xarray-simlab", "package_url": "https://pypi.org/project/xarray-simlab/", "platform": "", "project_url": "https://pypi.org/project/xarray-simlab/", "project_urls": { "Homepage": "http://github.com/benbovy/xarray-simlab" }, "release_url": "https://pypi.org/project/xarray-simlab/0.3.0/", "requires_dist": [ "attrs (>=18.1.0)", "numpy", "xarray (>=0.10.0)" ], "requires_python": ">=3.5", "summary": "generic framework and xarray extension for computer model simulations", "version": "0.3.0" }, "last_serial": 5907437, "releases": { "0.0.9": [ { "comment_text": "", "digests": { "md5": "a32f4264791889212592639ae75fa02d", "sha256": "856ceedb16ce0df8a51ad58fd08a3a0f3fb101d71932df8ef0d0d11a38f6726b" }, "downloads": -1, "filename": "xarray_simlab-0.0.9-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "a32f4264791889212592639ae75fa02d", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=3.4", "size": 52579, "upload_time": "2017-06-19T21:37:48", "url": "https://files.pythonhosted.org/packages/5c/81/dd3ffd6b6ade81446bb0c3318bfd22acec71bd47cc702db6f45b80cfc7b3/xarray_simlab-0.0.9-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "8023bc39bd21717c8f937b6d3c655248", "sha256": "0ca6b6deed64d2b81df3796808cd28b29434116f328672dd416ef8e0a2651ec3" }, "downloads": -1, "filename": "xarray-simlab-0.0.9.tar.gz", "has_sig": false, "md5_digest": "8023bc39bd21717c8f937b6d3c655248", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.4", "size": 37966, "upload_time": "2017-06-19T21:26:26", "url": "https://files.pythonhosted.org/packages/1f/b9/96446f0b08d0299bb6671b46b2240422ae74a773d4c9c3e9d4b03b54b601/xarray-simlab-0.0.9.tar.gz" } ], "0.1.0": [ { "comment_text": "", "digests": { "md5": "7c2fb8b39475556f5d70c5e12daeda0e", "sha256": "615ebf90f360782ab27f045cdc2e2d8ff663c8758f7e30432e43e80458b2e0f8" }, "downloads": -1, "filename": "xarray_simlab-0.1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "7c2fb8b39475556f5d70c5e12daeda0e", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.4", "size": 30103, "upload_time": "2017-10-08T16:07:55", "url": "https://files.pythonhosted.org/packages/6a/18/2ba21aef5a3f9d6b4b1c8aea316120a51fd1a4721d214113d77b03c95eb4/xarray_simlab-0.1.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f3a4a121951b6d45bf093434255172be", "sha256": "cb9187e2eee21ef2fb61f0a691609b9ba9527f8145fb05f4dee1a0935c44ba76" }, "downloads": -1, "filename": "xarray-simlab-0.1.0.tar.gz", "has_sig": false, "md5_digest": "f3a4a121951b6d45bf093434255172be", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.4", "size": 39773, "upload_time": "2017-10-08T16:08:01", "url": "https://files.pythonhosted.org/packages/71/6a/e9033406011f60a05894e52d738a5973e5046b295236ad043fa71e30df13/xarray-simlab-0.1.0.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "0e7751d4ca025293c6b3ecf4ad89ae94", "sha256": "f68e894619126734d1e06e663027bd4809a0f8bda337e5e871696962ffd5184a" }, "downloads": -1, "filename": "xarray_simlab-0.1.1-py3-none-any.whl", "has_sig": false, "md5_digest": "0e7751d4ca025293c6b3ecf4ad89ae94", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.4", "size": 30154, "upload_time": "2017-11-20T12:54:53", "url": "https://files.pythonhosted.org/packages/c0/36/c3b5760dc5c6448d3c80954c8a1c6ce82a58ae9e32e1014b505a7c2726cd/xarray_simlab-0.1.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "81ecfc28d99e3f027f9918054e61db4d", "sha256": "94a36493a592bc745e6365ef66a5d8bb62a42ed3c4c22a454d41bdb1140b5770" }, "downloads": -1, "filename": "xarray-simlab-0.1.1.tar.gz", "has_sig": false, "md5_digest": "81ecfc28d99e3f027f9918054e61db4d", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.4", "size": 39816, "upload_time": "2017-11-20T12:54:54", "url": "https://files.pythonhosted.org/packages/50/96/f066f8f230e254361d9207a82bd1fce0f02b228bc93f6ddc71cac271a8f9/xarray-simlab-0.1.1.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "25a74be349c82764d1143733f77d1f80", "sha256": "f242d6d36fb011e587d84873e70a50be1e5d024f39d0bc89c1072820c203fc2a" }, "downloads": -1, "filename": "xarray-simlab-0.2.0.tar.gz", "has_sig": false, "md5_digest": "25a74be349c82764d1143733f77d1f80", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 3350092, "upload_time": "2018-05-09T09:54:42", "url": "https://files.pythonhosted.org/packages/7e/4f/d56c303067e9d73cb5619a4b10228512c577811fe55632b7371705899aff/xarray-simlab-0.2.0.tar.gz" } ], "0.2.1": [ { "comment_text": "", "digests": { "md5": "64ed804cdae4577c67bb6b9d2cfec702", "sha256": "d99c7e5ecffcc1a57a8bb5741f3962514db6f4122c1f8c13c635f5f0237ba890" }, "downloads": -1, "filename": "xarray-simlab-0.2.1.tar.gz", "has_sig": false, "md5_digest": "64ed804cdae4577c67bb6b9d2cfec702", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 3349749, "upload_time": "2018-11-07T11:45:11", "url": "https://files.pythonhosted.org/packages/54/bb/3adefe08a917904b17286d74c9a8cbf1403225ce70abf7df65ee4a17ee7d/xarray-simlab-0.2.1.tar.gz" } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "916b9645553e74cbb55dde8e6f6a43b6", "sha256": "0487609506639426180ca70fbe27e17d812976c6100f37a2acb9e34853766bdb" }, "downloads": -1, "filename": "xarray_simlab-0.3.0-py3-none-any.whl", "has_sig": false, "md5_digest": "916b9645553e74cbb55dde8e6f6a43b6", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 49259, "upload_time": "2019-09-30T15:20:49", "url": "https://files.pythonhosted.org/packages/2b/da/5c573f0e8dcb093002bf1de80242af26f73d702a3c5f432cdbf7e44c57f2/xarray_simlab-0.3.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "0c5a3950115fd2f2a70b642cbc100cdd", "sha256": "b1bef295a9c4bb0eb92e6fee0f0d196d702b9f50cfdd9a51706179282c345f2a" }, "downloads": -1, "filename": "xarray-simlab-0.3.0.tar.gz", "has_sig": false, "md5_digest": "0c5a3950115fd2f2a70b642cbc100cdd", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 3365396, "upload_time": "2019-09-30T15:21:00", "url": "https://files.pythonhosted.org/packages/7a/27/2ecb44b87f6b8b56406e34e6c638963da541dd46143e62c32a1b30d96b2d/xarray-simlab-0.3.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "916b9645553e74cbb55dde8e6f6a43b6", "sha256": "0487609506639426180ca70fbe27e17d812976c6100f37a2acb9e34853766bdb" }, "downloads": -1, "filename": "xarray_simlab-0.3.0-py3-none-any.whl", "has_sig": false, "md5_digest": "916b9645553e74cbb55dde8e6f6a43b6", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 49259, "upload_time": "2019-09-30T15:20:49", "url": "https://files.pythonhosted.org/packages/2b/da/5c573f0e8dcb093002bf1de80242af26f73d702a3c5f432cdbf7e44c57f2/xarray_simlab-0.3.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "0c5a3950115fd2f2a70b642cbc100cdd", "sha256": "b1bef295a9c4bb0eb92e6fee0f0d196d702b9f50cfdd9a51706179282c345f2a" }, "downloads": -1, "filename": "xarray-simlab-0.3.0.tar.gz", "has_sig": false, "md5_digest": "0c5a3950115fd2f2a70b642cbc100cdd", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 3365396, "upload_time": "2019-09-30T15:21:00", "url": "https://files.pythonhosted.org/packages/7a/27/2ecb44b87f6b8b56406e34e6c638963da541dd46143e62c32a1b30d96b2d/xarray-simlab-0.3.0.tar.gz" } ] }