{ "info": { "author": "Lucas Fr\u00e9rot", "author_email": "lucas.frerot@epfl.ch", "bugtrack_url": null, "classifiers": [ "Intended Audience :: Science/Research", "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python :: 3", "Topic :: Scientific/Engineering :: Visualization" ], "description": "UVW - Universal VTK Writer\n==========================\n\nUVW is a small utility library to write VTK files from data contained in Numpy arrays. It handles fully-fledged `ndarrays` defined over {1, 2, 3}-d domains, with arbitrary number of components. There are no constraints on the particular order of components, although copy of data can be avoided if the array is Fortran contiguous, as VTK files are written in Fortran order. Future developments will include multi-process write support.\n\n## Getting Started\n\nHere is how to install and use `uvw`.\n\n### Prerequisites\n\n* Python 3. It may work with python 2, but it hasn't been tested.\n* [Numpy](http://www.numpy.org/). This code has been tested with Numpy version 1.14.3.\n\n### Installing\n\nThis library can be installed with `pip`:\n\n```\npip install --user uvw\n```\n\n### Writing Numpy arrays\n\nAs a first example, let us write a multi-component numpy array into a rectilinear grid:\n\n```python\nimport numpy as np\nfrom uvw import RectilinearGrid, DataArray\n\n# Creating coordinates\nx = np.linspace(-0.5, 0.5, 10)\ny = np.linspace(-0.5, 0.5, 20)\nz = np.linspace(-0.9, 0.9, 30)\n\n# Creating the file\ngrid = RectilinearGrid('grid.vtr', (x, y, z))\n\n# A centered ball\nx, y, z = np.meshgrid(x, y, z, indexing='ij')\nr = np.sqrt(x**2 + y**2 + z**2)\nball = r < 0.3\n\n# Some multi-component multi-dimensional data\ndata = np.zeros([10, 20, 30, 3, 3])\ndata[ball, ...] = np.array([[0, 1, 0],\n [1, 0, 0],\n [0, 1, 1]])\n\n\n# Adding the point data (see help(DataArray) for more info)\ngrid.addPointData(DataArray(data, range(3), 'data'))\ngrid.write()\n```\n\nUVW also supports writing data on 2D and 1D physical domains, for example:\n\n```python\nimport numpy as np\nfrom uvw import RectilinearGrid, DataArray\n\n# Creating coordinates\nx = np.linspace(-0.5, 0.5, 10)\ny = np.linspace(-0.5, 0.5, 20)\n\n# A centered disk\nxx, yy = np.meshgrid(x, y, indexing='ij')\nr = np.sqrt(xx**2 + yy**2)\nR = 0.3\ndisk = r < R\n\ndata = np.zeros([10, 20])\ndata[disk] = np.sqrt(1-(r[disk]/R)**2)\n\n# File object can be used as a context manager\nwith RectilinearGrid('grid.vtr', (x, y)) as grid:\n grid.addPointData(DataArray(data, range(2), 'data'))\n```\n\n## List of features\n\nHere is a list of what is available in UVW:\n\n### VTK file formats\n\n- Image data (`.vti`)\n- Rectilinear grid (`.vtr`)\n- Structured grid (`.vts`)\n\n### Data representation\n\n- ASCII\n- Base64 (uncompressed)\n\n### Planned developments\n\nHere is a list of future developments:\n\n- [x] Image data\n- [ ] Unstructured grid\n- [x] Structured grid\n- [ ] Parallel writing (multi-process)\n- [ ] Benchmarking + performance comparison with [pyevtk](https://bitbucket.org/pauloh/pyevtk)\n\n\n## Developing\n\nThese instructions will get you a copy of the project up and running on your local machine for development and testing purposes.\n\n### Git repository\n\nFirst clone the git repository:\n\n```\ngit clone https://c4science.ch/source/uvw.git\n```\n\nThen you can use pip in development mode (possibly in [virtualenv](https://virtualenv.pypa.io/en/stable/)):\n\n```\npip install --user -e .\n```\n\n## Running the tests\n\nThe tests can be run using [pytest](https://docs.pytest.org/en/latest/):\n\n```\ncd tests; pytest\n```\n\n## License\n\nThis project is licensed under the MIT License - see the LICENSE.md file for details.\n\n## Acknowledgments\n\n* [@PurpleBooth](https://github.com/PurpleBooth)'s [README-Template](https://gist.github.com/PurpleBooth/109311bb0361f32d87a2)\n\n\n", "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/prs513rosewood/uvw", "keywords": "", "license": "", "maintainer": "", "maintainer_email": "", "name": "uvw", "package_url": "https://pypi.org/project/uvw/", "platform": "", "project_url": "https://pypi.org/project/uvw/", "project_urls": { "Homepage": "https://github.com/prs513rosewood/uvw" }, "release_url": "https://pypi.org/project/uvw/0.0.7/", "requires_dist": [ "numpy" ], "requires_python": "", "summary": "Universal VTK Writer", "version": "0.0.7" }, "last_serial": 5104171, "releases": { "0.0.3": [ { "comment_text": "", "digests": { "md5": "c4113ebe09122bbb8b1ba1fdca2671f5", "sha256": "39bd57a7567d695a4eaac5f21b157596ff39ce2aeb7c23d08593ecaa91bd11d4" }, "downloads": -1, "filename": "uvw-0.0.3-py3-none-any.whl", "has_sig": false, "md5_digest": "c4113ebe09122bbb8b1ba1fdca2671f5", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 6249, "upload_time": "2018-09-09T12:52:01", "url": "https://files.pythonhosted.org/packages/8b/8b/73366eeeb3191f5beed6d2d5b3173031d9496ad6f1ca5d6b8f3d6bb5db91/uvw-0.0.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "987a1dbdb07369c3207aa534b01119a9", "sha256": "86b34597d40676bc87033b0a330a6f70f040d1c65074da52d173a162bbd034b7" }, "downloads": -1, "filename": "uvw-0.0.3.tar.gz", "has_sig": false, "md5_digest": "987a1dbdb07369c3207aa534b01119a9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5637, "upload_time": "2018-09-09T12:52:03", "url": "https://files.pythonhosted.org/packages/37/2c/badb44825f885fbad3e0765a8b43e1548e0bfe8ffb79284afe6562aa3ab0/uvw-0.0.3.tar.gz" } ], "0.0.4": [ { "comment_text": "", "digests": { "md5": "6e9549a5da47e876d630d123dfaa1580", "sha256": "481ff9f1f6e90e803e3eb59c14e484c6982d6c9ae0380512a73a57c70c8c810a" }, "downloads": -1, "filename": "uvw-0.0.4-py3-none-any.whl", "has_sig": false, "md5_digest": "6e9549a5da47e876d630d123dfaa1580", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 6287, "upload_time": "2018-09-13T08:50:46", "url": "https://files.pythonhosted.org/packages/97/95/68f97a6836460ba99d25770ecab4fd83150c2e3a934421d6895431bf22bc/uvw-0.0.4-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d92a54fa9c15f0a1fb29bfcd77883404", "sha256": "9560816df0feebf4937abbee107ae07a87950d4955338e9e35d540e9af15ed20" }, "downloads": -1, "filename": "uvw-0.0.4.tar.gz", "has_sig": false, "md5_digest": "d92a54fa9c15f0a1fb29bfcd77883404", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5702, "upload_time": "2018-09-13T08:50:48", "url": "https://files.pythonhosted.org/packages/86/c6/82da3af881e0c95242797db5b0dd88a6c11db614c0a3467f6c54aa825a36/uvw-0.0.4.tar.gz" } ], "0.0.5": [ { "comment_text": "", "digests": { "md5": "d244be2489d6ff0ae99e14dbce209527", "sha256": "27045971b9e1d2723284bf558b83945c820e9a80a0b79121c56a18bb40db8ce5" }, "downloads": -1, "filename": "uvw-0.0.5-py3-none-any.whl", "has_sig": false, "md5_digest": "d244be2489d6ff0ae99e14dbce209527", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 7202, "upload_time": "2019-03-02T14:47:17", "url": "https://files.pythonhosted.org/packages/ad/e0/700e01c0c8f4048747a705190c254735cf24f8a6b1bda25a7e9582188c4a/uvw-0.0.5-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "2ebdba221bfb503be7472fd700c0c560", "sha256": "cb34ea480c0bbe9d825e04fdef64737208f26bbb25dd751a70a980904b0d0041" }, "downloads": -1, "filename": "uvw-0.0.5.tar.gz", "has_sig": false, "md5_digest": "2ebdba221bfb503be7472fd700c0c560", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5718, "upload_time": "2019-03-02T14:47:19", "url": "https://files.pythonhosted.org/packages/00/21/58e2ee59763b8b3ad8b033f817af601f26e8233bc0e0a8a049db53de7a7d/uvw-0.0.5.tar.gz" } ], "0.0.6": [ { "comment_text": "", "digests": { "md5": "64eb924f7c3e04dfb17f856867731272", "sha256": "5a011919f3b7024220c5a4ed19a031655da46114cf99b996b9bf7791eac20e04" }, "downloads": -1, "filename": "uvw-0.0.6-py3-none-any.whl", "has_sig": false, "md5_digest": "64eb924f7c3e04dfb17f856867731272", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 7244, "upload_time": "2019-03-02T14:54:20", "url": "https://files.pythonhosted.org/packages/3c/23/ad61751fd2c7ae9190c59114900ed2d5bd69ddcfd6c2a2412ccc65ce5e6e/uvw-0.0.6-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "76c5839f653e4cbc8c5ecdffb8a2d467", "sha256": "ca41c50a0f0fe97bf43888684ccf33acd1138c6d3fbde34dcac32aaad4bb6e32" }, "downloads": -1, "filename": "uvw-0.0.6.tar.gz", "has_sig": false, "md5_digest": "76c5839f653e4cbc8c5ecdffb8a2d467", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5755, "upload_time": "2019-03-02T14:54:23", "url": "https://files.pythonhosted.org/packages/74/33/b522616287c686c0a37b8a4617a6cc74ce8d96fed34d056da99187914f21/uvw-0.0.6.tar.gz" } ], "0.0.7": [ { "comment_text": "", "digests": { "md5": "d1e6d61c1759113b01d13d2ffbc5ccae", "sha256": "0a38ad38dce1ddb7013599316012bfbaa895c99cb055ac76735696770c8c95b8" }, "downloads": -1, "filename": "uvw-0.0.7-py3-none-any.whl", "has_sig": false, "md5_digest": "d1e6d61c1759113b01d13d2ffbc5ccae", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 7254, "upload_time": "2019-04-05T15:04:22", "url": "https://files.pythonhosted.org/packages/13/c0/d19ec69d75af026299478a858ab41fc7a084f4b79f165db18e53ad1b39c0/uvw-0.0.7-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "0bbf03b69fb3f4a9930797640aa9967a", "sha256": "4bcb77cf9655f0dcd5f38f024210ac5ad7ebc6fcfb45f898468d29a927bcb7a5" }, "downloads": -1, "filename": "uvw-0.0.7.tar.gz", "has_sig": false, "md5_digest": "0bbf03b69fb3f4a9930797640aa9967a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5767, "upload_time": "2019-04-05T15:04:31", "url": "https://files.pythonhosted.org/packages/d1/bc/95d2236efed0c13be4584ed919b9e729bb023a9e43ea1fdaaa6310170f06/uvw-0.0.7.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "d1e6d61c1759113b01d13d2ffbc5ccae", "sha256": "0a38ad38dce1ddb7013599316012bfbaa895c99cb055ac76735696770c8c95b8" }, "downloads": -1, "filename": "uvw-0.0.7-py3-none-any.whl", "has_sig": false, "md5_digest": "d1e6d61c1759113b01d13d2ffbc5ccae", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 7254, "upload_time": "2019-04-05T15:04:22", "url": "https://files.pythonhosted.org/packages/13/c0/d19ec69d75af026299478a858ab41fc7a084f4b79f165db18e53ad1b39c0/uvw-0.0.7-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "0bbf03b69fb3f4a9930797640aa9967a", "sha256": "4bcb77cf9655f0dcd5f38f024210ac5ad7ebc6fcfb45f898468d29a927bcb7a5" }, "downloads": -1, "filename": "uvw-0.0.7.tar.gz", "has_sig": false, "md5_digest": "0bbf03b69fb3f4a9930797640aa9967a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5767, "upload_time": "2019-04-05T15:04:31", "url": "https://files.pythonhosted.org/packages/d1/bc/95d2236efed0c13be4584ed919b9e729bb023a9e43ea1fdaaa6310170f06/uvw-0.0.7.tar.gz" } ] }