{ "info": { "author": "Lionel Roubeyrie", "author_email": "s.celles@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "Environment :: Console", "Intended Audience :: Developers", "License :: OSI Approved :: BSD License", "Operating System :: OS Independent", "Programming Language :: Cython", "Programming Language :: Python", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6" ], "description": "[![Documentation Status](https://readthedocs.org/projects/windrose/badge/?version=latest)](http://windrose.readthedocs.io/en/latest/?badge=latest)\n[![Latest Version](https://img.shields.io/pypi/v/windrose.svg)](https://pypi.python.org/pypi/windrose/)\n[![Supported Python versions](https://img.shields.io/pypi/pyversions/windrose.svg)](https://pypi.python.org/pypi/windrose/)\n[![Wheel format](https://img.shields.io/pypi/wheel/windrose.svg)](https://pypi.python.org/pypi/windrose/)\n[![License](https://img.shields.io/pypi/l/windrose.svg)](https://pypi.python.org/pypi/windrose/)\n[![Development Status](https://img.shields.io/pypi/status/windrose.svg)](https://pypi.python.org/pypi/windrose/)\n[![Requirements Status](https://requires.io/github/python-windrose/windrose/requirements.svg?branch=master)](https://requires.io/github/python-windrose/windrose/requirements/?branch=master)\n[![Code Health](https://landscape.io/github/python-windrose/windrose/master/landscape.svg?style=flat)](https://landscape.io/github/python-windrose/windrose/master)\n[![Codacy Badge](https://api.codacy.com/project/badge/Grade/0c8af4ef10064de09a49bbe933479228)](https://www.codacy.com/project/s-celles/windrose_2/dashboard?utm_source=github.com&utm_medium=referral&utm_content=python-windrose/windrose&utm_campaign=Badge_Grade_Dashboard)\n[![Build Status](https://travis-ci.org/python-windrose/windrose.svg?branch=master)](https://travis-ci.org/python-windrose/windrose)\n[![DOI](https://zenodo.org/badge/37549137.svg)](https://zenodo.org/badge/latestdoi/37549137)\n[![DOI](http://joss.theoj.org/papers/10.21105/joss.00268/status.svg)](https://doi.org/10.21105/joss.00268)\n\n# Windrose\n\nA [wind rose](https://en.wikipedia.org/wiki/Wind_rose) is a graphic tool used by meteorologists to give a succinct view of how wind speed and direction are typically distributed at a particular location. It can also be used to describe air quality pollution sources. The wind rose tool uses Matplotlib as a backend. Data can be passed to the package using Numpy arrays or a Pandas DataFrame.\n\nWindrose is a Python library to manage wind data, draw windroses (also known as polar rose plots), and fit Weibull probability density functions.\n\nThe initial use case of this library was for a technical report concerning pollution exposure and wind distributions analyzes. Data from local pollution measures and meteorologic informations from various sources like Meteo-France were used to generate a pollution source wind rose.\n\nIt is also used by some contributors for teaching purpose.\n\n![Map overlay](paper/screenshots/overlay.png)\n\nSome others contributors have used it to make figures for a [wind power plant control optimization study](https://www.nrel.gov/docs/fy17osti/68185.pdf).\n\nSome academics use it to track lightning strikes during high intensity storms. They are using it to visualize the motion of storms based on the relative position of the lightning from one strike to the next.\n\n## Install\n\n### Requirements\n\n- matplotlib http://matplotlib.org/\n- numpy http://www.numpy.org/\n- and naturally python https://www.python.org/ :-P\n\nOption libraries:\n\n- Pandas http://pandas.pydata.org/ (to feed plot functions easily)\n- Scipy http://www.scipy.org/ (to fit data with Weibull distribution)\n- ffmpeg https://www.ffmpeg.org/ (to output video)\n- click http://click.pocoo.org/ (for command line interface tools)\n\n### Install latest release version via pip\n\nA package is available and can be downloaded from PyPi and installed using:\n\n```bash\n$ pip install windrose\n```\n\n### Install latest development version\n\n```bash\n$ pip install git+https://github.com/python-windrose/windrose\n```\n\nor\n\n```bash\n$ git clone https://github.com/python-windrose/windrose\n$ python setup.py install\n```\n\n## Examples\n\nLet's generate random data for wind speed (`ws`) and wind direction (`wd`).\n\n```python\nfrom windrose import WindroseAxes\nfrom matplotlib import pyplot as plt\nimport matplotlib.cm as cm\nimport numpy as np\n\n# Create wind speed and direction variables\n\nws = np.random.random(500) * 6\nwd = np.random.random(500) * 360\n```\n\nThe bar plot wind rose is the most common plot\n\n-![Windrose (bar) example](docs/screenshots/bar.png)\n\nThis kind of plot can be plot using:\n\n```python\nax = WindroseAxes.from_ax()\nax.bar(wd, ws, normed=True, opening=0.8, edgecolor='white')\nax.set_legend()\n```\n\nContour plots are also possible\n\n-![Windrose (contourf-contour) example](docs/screenshots/contourf-contour.png)\n\nSeveral windroses can be plotted using subplots to provide a plot per year with for example subplots per month\n\n-![Windrose subplots](docs/screenshots/subplots.png)\n\nProbability density functions may be plotted. Fitting Weibull distribution is enabled by Scipy.\nThe Weibull distribution is used in weather forecasting and the wind power industry to describe wind speed distributions, as the natural distribution of wind speeds often matches the Weibull shape\n\n-![pdf example](docs/screenshots/pdf.png)\n\n## Documentation\n[![Documentation Status](https://readthedocs.org/projects/windrose/badge/?version=latest)](http://windrose.readthedocs.io/en/latest/?badge=latest)\nFull documentation of library is available at http://windrose.readthedocs.io/\n\n## Community guidelines\n\nYou can help to develop this library.\n\n### Code of Conduct\n\nIf you are using Python Windrose and want to interact with developers, others users...\nwe encourage you to follow our [code of conduct](https://github.com/python-windrose/windrose/blob/master/CODE_OF_CONDUCT.md).\n\n### Contributing\n\nIf you discover issues, have ideas for improvements or new features, please report them.\n[CONTRIBUTING.md](https://github.com/python-windrose/windrose/blob/master/CONTRIBUTING.md) explains\nhow to contribute to this project.\n\n### List of contributors and/or notable users\nhttps://github.com/python-windrose/windrose/blob/master/CONTRIBUTORS.md\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/python-windrose/windrose", "keywords": "python plot matplotlib numpy wind wind rose compass", "license": "CeCILL-B OR BSD-3-Clause", "maintainer": "", "maintainer_email": "", "name": "windrose", "package_url": "https://pypi.org/project/windrose/", "platform": "", "project_url": "https://pypi.org/project/windrose/", "project_urls": { "Homepage": "https://github.com/python-windrose/windrose" }, "release_url": "https://pypi.org/project/windrose/1.6.7/", "requires_dist": [ "matplotlib", "numpy", "pandas ; extra == 'advanced'", "scipy ; extra == 'advanced'", "check-manifest ; extra == 'dev'", "pytest ; extra == 'dev'", "coverage ; extra == 'test'", "pytest ; extra == 'test'" ], "requires_python": "", "summary": "Python Matplotlib, Numpy library to manage wind data, draw windrose (also known as a polar rose plot)", "version": "1.6.7" }, "last_serial": 5370527, "releases": { "1.4": [ { "comment_text": "", "digests": { "md5": "57416c1667b816e83ccdcddb13750dc5", "sha256": "9646760bb86816d21a861edaadaa0f9d7737c7eb44139237ffce09f84140a235" }, "downloads": -1, "filename": "windrose-1.4-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "57416c1667b816e83ccdcddb13750dc5", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 13169, "upload_time": "2015-06-18T05:35:22", "url": "https://files.pythonhosted.org/packages/d2/d2/3984b6d82b099c3576b751a7ae00bfd1f5b6fc70ddbd46035f35d80ecd34/windrose-1.4-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "9634a3e58c9f0acaec547228801dbebb", "sha256": "9611468316edd49d3d1a268bb5998d881367db6579242ce4772ca8e181cc0ecc" }, "downloads": -1, "filename": "windrose-1.4.tar.gz", "has_sig": false, "md5_digest": "9634a3e58c9f0acaec547228801dbebb", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11683, "upload_time": "2015-06-18T05:35:18", "url": "https://files.pythonhosted.org/packages/4d/b7/bc8fa931d179069f923cee0afd8f47f52c4a45e6f7e3442113a03a5c2433/windrose-1.4.tar.gz" } ], "1.5": [ { "comment_text": "", "digests": { "md5": "d64fb07732b9fce0220f9c15b4f60fc7", "sha256": "751adb6ea2b9386e75d972fdb6e653578143db3fc97c34992644c32e2d2c1af2" }, "downloads": -1, "filename": "windrose-1.5-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "d64fb07732b9fce0220f9c15b4f60fc7", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 15211, "upload_time": "2015-06-19T10:46:46", "url": "https://files.pythonhosted.org/packages/97/cf/e47497ea62afd14d16c31c98f3e73309e9160b2c5439cd2eaae54342c9e7/windrose-1.5-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b22c21b1215d95b85e6e3c6344cef160", "sha256": "956a9e79d887c16c4d3461bda658e05e98b5dff20e84d6b5774de76bfcc53cfd" }, "downloads": -1, "filename": "windrose-1.5.tar.gz", "has_sig": false, "md5_digest": "b22c21b1215d95b85e6e3c6344cef160", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13756, "upload_time": "2015-06-19T10:46:41", "url": "https://files.pythonhosted.org/packages/f3/93/0a1744f90f7ab86c50fbe9a6fefd01771dfbd6d24eabab295aa6b6f7f986/windrose-1.5.tar.gz" } ], "1.6": [ { "comment_text": "", "digests": { "md5": "555a548c56fab91a21c5704de1c67da1", "sha256": "987adb2e4c818e64ad860598f32ea1be1106d6c93e4df20f7f098d22a63d31f9" }, "downloads": -1, "filename": "windrose-1.6-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "555a548c56fab91a21c5704de1c67da1", "packagetype": "bdist_wheel", "python_version": "3.3", "requires_python": null, "size": 16079, "upload_time": "2015-07-07T18:42:04", "url": "https://files.pythonhosted.org/packages/a8/40/85481dfd902eeb57d57f9f498ab33827953f88d866b4fe0b6e2ae191fd56/windrose-1.6-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "6394781fae13fc36bd9b8523475e9e4d", "sha256": "cbeb0f178944f1838bc84e87bac177e6a8d98478703f559528f5d72aa1e888fa" }, "downloads": -1, "filename": "windrose-1.6.tar.gz", "has_sig": false, "md5_digest": "6394781fae13fc36bd9b8523475e9e4d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14603, "upload_time": "2015-07-07T18:42:00", "url": "https://files.pythonhosted.org/packages/5d/6e/3ad6fa05de518cdf0f3a66e6df3494d8208c6f33e46bdfee2bf58fa4c3b1/windrose-1.6.tar.gz" } ], "1.6.1": [ { "comment_text": "", "digests": { "md5": "b71e8d9dc3e62ce48ccbdc3d49c83e6f", "sha256": "91e8e41ab8439f2a91872887a1c6bf8c1d607fa1fb8991f1d52546ac24f8eabc" }, "downloads": -1, "filename": "windrose-1.6.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "b71e8d9dc3e62ce48ccbdc3d49c83e6f", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 18617, "upload_time": "2017-07-30T08:22:20", "url": "https://files.pythonhosted.org/packages/85/ce/f565b10d4eb3bcdedf08a91793b6fd4fd8bb13d934f2c1e95578e715dc02/windrose-1.6.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ed22e357cae60d8ef2b1bfa0505517e1", "sha256": "299134241fc5064f30a292c2049153f8dc1d4dbc1bef5092819c7e9a93feab5c" }, "downloads": -1, "filename": "windrose-1.6.1.tar.gz", "has_sig": false, "md5_digest": "ed22e357cae60d8ef2b1bfa0505517e1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17121, "upload_time": "2017-07-30T08:20:47", "url": "https://files.pythonhosted.org/packages/3f/eb/c89efaadbd6622e709fbb489ae99874559684a24ecc1cba5efd3af185b54/windrose-1.6.1.tar.gz" } ], "1.6.2": [ { "comment_text": "", "digests": { "md5": "c2a40f67dce3d8b0b3384373dc7d7df8", "sha256": "644851361648c1940fd4417ef05e7605faa8a6edfdef039b5fa2bd4b0e5ec54d" }, "downloads": -1, "filename": "windrose-1.6.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "c2a40f67dce3d8b0b3384373dc7d7df8", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 18591, "upload_time": "2017-08-02T21:05:45", "url": "https://files.pythonhosted.org/packages/89/6c/39cbe9180b4a28720101ca49a93799ed512919935ef1f8613f0cc4754983/windrose-1.6.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "8bd3377848df902ef4601fa0a7c9315b", "sha256": "9834a959efcd622ed77a9388d3fb38b78a5cd473eb78bd964c600413f914844d" }, "downloads": -1, "filename": "windrose-1.6.2.tar.gz", "has_sig": false, "md5_digest": "8bd3377848df902ef4601fa0a7c9315b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17139, "upload_time": "2017-08-02T21:05:42", "url": "https://files.pythonhosted.org/packages/4b/23/adfd03c8b47b02fc95f3d35bdf47597596f9342bf5257eea2a81880253c5/windrose-1.6.2.tar.gz" } ], "1.6.3": [ { "comment_text": "", "digests": { "md5": "ff7d2657c767415b15300847366051fc", "sha256": "2ffe22cb49941f9c3c70bc98afe278f82bc1456dfc0501199b415e7f60d9ed72" }, "downloads": -1, "filename": "windrose-1.6.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "ff7d2657c767415b15300847366051fc", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 18670, "upload_time": "2017-08-22T13:39:37", "url": "https://files.pythonhosted.org/packages/70/e8/23016e10d6b8a19f0984211a3e445b9d2e5f3cfbfcca5c3787d454e2748b/windrose-1.6.3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "dc52814c02c218ecad7bc55f80dba8f6", "sha256": "10a50ee2670085c572ffca1027b34d4a40c8cae79fe756f6d3a78c12d809112b" }, "downloads": -1, "filename": "windrose-1.6.3.tar.gz", "has_sig": false, "md5_digest": "dc52814c02c218ecad7bc55f80dba8f6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17178, "upload_time": "2017-08-22T13:39:34", "url": "https://files.pythonhosted.org/packages/1f/ec/75c4d42a70a6d702b1e1d7118eed5960f0613f070fcf151b639374410b44/windrose-1.6.3.tar.gz" } ], "1.6.4": [ { "comment_text": "", "digests": { "md5": "b80a8dc2be84c176911907214cfcfcfa", "sha256": "a4a4d0030f5839cbf0897287c45bc486ca257e8ace344b9c0e4c6c89ee0abe18" }, "downloads": -1, "filename": "windrose-1.6.4-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "b80a8dc2be84c176911907214cfcfcfa", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 11266, "upload_time": "2018-08-22T07:20:34", "url": "https://files.pythonhosted.org/packages/6a/90/4c54b26c09121ed994ac9c8b9eba76f8496ecb574ebc469e70b3afe13ae3/windrose-1.6.4-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "255127561bbccbb5ab510109d020e6b0", "sha256": "540b3dcb8a0cb62e549e1e82019e591c30f04e9794b21a5a456f1c9adff433cb" }, "downloads": -1, "filename": "windrose-1.6.4.tar.gz", "has_sig": false, "md5_digest": "255127561bbccbb5ab510109d020e6b0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14082, "upload_time": "2018-08-22T07:20:33", "url": "https://files.pythonhosted.org/packages/70/08/4e0a1ad755a7e12d18c7a4d6b23ce20a8935e5188ed7ff6bb881a5f90bd4/windrose-1.6.4.tar.gz" } ], "1.6.5": [ { "comment_text": "", "digests": { "md5": "173a31970c3a725592c4d3bebb939b04", "sha256": "308c144161262f41747e2a2b6c11fcac64153c76e4de95d6bd376bb4394ef925" }, "downloads": -1, "filename": "windrose-1.6.5-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "173a31970c3a725592c4d3bebb939b04", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 14810, "upload_time": "2018-08-30T20:36:36", "url": "https://files.pythonhosted.org/packages/6a/bc/5e84fa377d306cf39224dbc8552835705b166cfba2adbafe365046387c61/windrose-1.6.5-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "66aa045099fe87fbea844bc812e711ce", "sha256": "e53f26a7780b5d4b7c7767dda09970fc8cb93fa64adedd8930fdbf73863b1be8" }, "downloads": -1, "filename": "windrose-1.6.5.tar.gz", "has_sig": false, "md5_digest": "66aa045099fe87fbea844bc812e711ce", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13958, "upload_time": "2018-08-30T20:36:34", "url": "https://files.pythonhosted.org/packages/1f/22/203a5fc47dbf738c1eb53e84336b5aa93c8bb3d484ccdb410f4616feaa61/windrose-1.6.5.tar.gz" } ], "1.6.7": [ { "comment_text": "", "digests": { "md5": "70a7b3d72d43bf895d9131d2b88ab669", "sha256": "499117f670322adba78f33a32c312017e7bffd031eed8a6ea2017c2cf25d0ddc" }, "downloads": -1, "filename": "windrose-1.6.7-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "70a7b3d72d43bf895d9131d2b88ab669", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 20791, "upload_time": "2019-06-07T08:23:26", "url": "https://files.pythonhosted.org/packages/48/a6/9719a470b87ba125ba977857e7587a7d30c6deb3fb03b98fe2534490219d/windrose-1.6.7-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "69d5aa985028ac648e8bd401a3fa1e15", "sha256": "d9073d05d3972bb9b99d37bea72fbb1def55a0bac070a1a10799341ea6eacb61" }, "downloads": -1, "filename": "windrose-1.6.7.tar.gz", "has_sig": false, "md5_digest": "69d5aa985028ac648e8bd401a3fa1e15", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15017, "upload_time": "2019-06-07T08:23:28", "url": "https://files.pythonhosted.org/packages/97/01/649bc2a92d2c0b44540799e76a3f8c705c4873ebf29d1574165fab83fde2/windrose-1.6.7.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "70a7b3d72d43bf895d9131d2b88ab669", "sha256": "499117f670322adba78f33a32c312017e7bffd031eed8a6ea2017c2cf25d0ddc" }, "downloads": -1, "filename": "windrose-1.6.7-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "70a7b3d72d43bf895d9131d2b88ab669", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 20791, "upload_time": "2019-06-07T08:23:26", "url": "https://files.pythonhosted.org/packages/48/a6/9719a470b87ba125ba977857e7587a7d30c6deb3fb03b98fe2534490219d/windrose-1.6.7-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "69d5aa985028ac648e8bd401a3fa1e15", "sha256": "d9073d05d3972bb9b99d37bea72fbb1def55a0bac070a1a10799341ea6eacb61" }, "downloads": -1, "filename": "windrose-1.6.7.tar.gz", "has_sig": false, "md5_digest": "69d5aa985028ac648e8bd401a3fa1e15", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15017, "upload_time": "2019-06-07T08:23:28", "url": "https://files.pythonhosted.org/packages/97/01/649bc2a92d2c0b44540799e76a3f8c705c4873ebf29d1574165fab83fde2/windrose-1.6.7.tar.gz" } ] }