Git Product home page Git Product logo

windrose's Introduction

Documentation Status Latest Version Supported Python versions Wheel format License Development Status Requirements Status Code Health Codacy Badge Build Status DOI DOI

Windrose

A 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.

Windrose is a Python library to manage wind data, draw windroses (also known as polar rose plots), and fit Weibull probability density functions.

The 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.

It is also used by some contributors for teaching purpose.

Map overlay

Some others contributors have used it to make figures for a wind power plant control optimization study.

Some 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.

Install

Requirements

Option libraries:

Install latest release version via pip

A package is available and can be downloaded from PyPi and installed using:

$ pip install windrose

Install latest development version

$ pip install git+https://github.com/python-windrose/windrose

or

$ git clone https://github.com/python-windrose/windrose
$ python setup.py install

Examples

Let's generate random data for wind speed (ws) and wind direction (wd).

from windrose import WindroseAxes
from matplotlib import pyplot as plt
import matplotlib.cm as cm
import numpy as np

# Create wind speed and direction variables

ws = np.random.random(500) * 6
wd = np.random.random(500) * 360

The bar plot wind rose is the most common plot

-Windrose (bar) example

This kind of plot can be plot using:

ax = WindroseAxes.from_ax()
ax.bar(wd, ws, normed=True, opening=0.8, edgecolor='white')
ax.set_legend()

Contour plots are also possible

-Windrose (contourf-contour) example

Several windroses can be plotted using subplots to provide a plot per year with for example subplots per month

-Windrose subplots

Probability density functions may be plotted. Fitting Weibull distribution is enabled by Scipy. The 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

-pdf example

Documentation

Documentation Status Full documentation of library is available at http://windrose.readthedocs.io/

Community guidelines

You can help to develop this library.

Code of Conduct

If you are using Python Windrose and want to interact with developers, others users... we encourage you to follow our code of conduct.

Contributing

If you discover issues, have ideas for improvements or new features, please report them. CONTRIBUTING.md explains how to contribute to this project.

List of contributors and/or notable users

https://github.com/python-windrose/windrose/blob/master/CONTRIBUTORS.md

windrose's People

Contributors

fmaussion avatar jokva avatar kilojoules avatar mccannjb avatar mwheels avatar ocefpaf avatar petebachant avatar scls19fr avatar weber-s avatar xmnlab avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.