<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-6407040448341804380</id><updated>2012-01-06T17:34:15.377+01:00</updated><category term='gis'/><category term='windrose'/><category term='qgis'/><category term='python'/><category term='contours'/><title type='text'>You are a legend</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://youarealegend.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6407040448341804380/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://youarealegend.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Lionel Roubeyrie</name><uri>http://www.blogger.com/profile/11552330570446337100</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/-zv2sCFlXaXg/Td-i35NhPeI/AAAAAAAAATU/xeyB0TYCyiw/s220/bear'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>9</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-6407040448341804380.post-3597288948189754681</id><published>2011-10-10T14:05:00.000+02:00</published><updated>2011-10-10T14:05:12.894+02:00</updated><title type='text'>Contour plugin for QGIS, version 0.9.0</title><content type='html'>Based on the last matplotlib revision (1.0.1), the plugin can now directly handle irregular point grid, thanks to the new triangulation function. Beside this, in some situations (few sample points), a prelimary work is to be done on the input datas (look at resampling with spine algorithm or with a krigging function).&lt;br /&gt;In the same time, the plugin now can reuse existing contours plots, just have to select the right layer in the legend and launch the plugin!&lt;br /&gt;Also, you can now select the extend for the contours limits (neither, min, max or both), trying to avoid the errors messages complaining about invalid selected levels.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-jB7jo4JAGU4/TpLfIo_FZVI/AAAAAAAAAcE/FW6vdWdExMo/s1600/Capture-Contour.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="524" src="http://2.bp.blogspot.com/-jB7jo4JAGU4/TpLfIo_FZVI/AAAAAAAAAcE/FW6vdWdExMo/s640/Capture-Contour.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;As always, the plugin is available through the qgis plugin installer or directly on &lt;a href="http://www.pyqgis.org/"&gt;www.pyqgis.org&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6407040448341804380-3597288948189754681?l=youarealegend.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://youarealegend.blogspot.com/feeds/3597288948189754681/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6407040448341804380&amp;postID=3597288948189754681' title='20 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6407040448341804380/posts/default/3597288948189754681'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6407040448341804380/posts/default/3597288948189754681'/><link rel='alternate' type='text/html' href='http://youarealegend.blogspot.com/2011/10/contour-plugin-for-qgis-version-090.html' title='Contour plugin for QGIS, version 0.9.0'/><author><name>Lionel Roubeyrie</name><uri>http://www.blogger.com/profile/11552330570446337100</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/-zv2sCFlXaXg/Td-i35NhPeI/AAAAAAAAATU/xeyB0TYCyiw/s220/bear'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-jB7jo4JAGU4/TpLfIo_FZVI/AAAAAAAAAcE/FW6vdWdExMo/s72-c/Capture-Contour.png' height='72' width='72'/><thr:total>20</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6407040448341804380.post-7563667385532200674</id><published>2010-09-23T11:53:00.000+02:00</published><updated>2010-09-23T11:53:46.067+02:00</updated><title type='text'>Contour plot for QGIS - version 0.7.2</title><content type='html'>New options for the qgis contour plugin :&lt;br /&gt;- possibility to directly set the resulting layers' names (always in memory, don't forget to save them before qgis exit!)&lt;br /&gt;- a new level computation method : &lt;a href="http://en.wikipedia.org/wiki/Quantile"&gt;quantile&lt;/a&gt; (tired to manually set them :P)&lt;br /&gt;- new resulting attribute "label" with a precision setting, usefull to quickly display levels values on the map without the need to manually change default number precision (normally 10e-4). Really usefull with filled contours in categorized renderer symbology.&lt;br /&gt;As always, the plugin is available through the qgis plugin installer or directly on &lt;a href="http://www.pyqgis.org/"&gt;www.pyqgis.org&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6407040448341804380-7563667385532200674?l=youarealegend.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://youarealegend.blogspot.com/feeds/7563667385532200674/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6407040448341804380&amp;postID=7563667385532200674' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6407040448341804380/posts/default/7563667385532200674'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6407040448341804380/posts/default/7563667385532200674'/><link rel='alternate' type='text/html' href='http://youarealegend.blogspot.com/2010/09/contour-plot-for-qgis-version-072.html' title='Contour plot for QGIS - version 0.7.2'/><author><name>Lionel Roubeyrie</name><uri>http://www.blogger.com/profile/11552330570446337100</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/-zv2sCFlXaXg/Td-i35NhPeI/AAAAAAAAATU/xeyB0TYCyiw/s220/bear'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6407040448341804380.post-1317226598036491573</id><published>2010-07-27T09:36:00.000+02:00</published><updated>2010-07-27T09:36:45.807+02:00</updated><title type='text'>Contour plot for QGIS - version 0.7.1</title><content type='html'>&lt;div style="text-align: justify;"&gt;Just some minor changes in the code :&lt;br /&gt;0.6 : Pass contour.py Qt4 compliant and remove Qt3 signals handling&lt;br /&gt;0.7 : Add more acceptable datatypes (integer, float, ...) from PostgreSQL&lt;br /&gt;0.7.1 : Minor change for checking dependencies with the python plugin installer&lt;br /&gt;&lt;br /&gt;Please note : the natgrid package inside matplotlib was updated by Jeff Whitaker and now correctly handle identical points coordinates. No more crashes (I hope) \o/&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;Requirements:&lt;/span&gt;&lt;br /&gt;&lt;a href="http://matplotlib.sourceforge.net/"&gt;matplotlib&lt;/a&gt; and the &lt;a href="http://matplotlib.sourceforge.net/users/toolkits.html"&gt;natgrid  toolkit&lt;/a&gt; if the irregular points interpolation fails&lt;br /&gt;&lt;a href="http://www.scipy.org/NumPy"&gt;numpy&lt;/a&gt;&lt;br /&gt;&lt;a href="http://pypi.python.org/pypi/Shapely/"&gt;Shapely&lt;/a&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;Download&lt;/span&gt; : Use  the  internal Qgis plugin installer...&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6407040448341804380-1317226598036491573?l=youarealegend.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://youarealegend.blogspot.com/feeds/1317226598036491573/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6407040448341804380&amp;postID=1317226598036491573' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6407040448341804380/posts/default/1317226598036491573'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6407040448341804380/posts/default/1317226598036491573'/><link rel='alternate' type='text/html' href='http://youarealegend.blogspot.com/2010/07/contour-plot-for-qgis-version-071.html' title='Contour plot for QGIS - version 0.7.1'/><author><name>Lionel Roubeyrie</name><uri>http://www.blogger.com/profile/11552330570446337100</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/-zv2sCFlXaXg/Td-i35NhPeI/AAAAAAAAATU/xeyB0TYCyiw/s220/bear'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6407040448341804380.post-7011166689892638806</id><published>2010-03-11T22:51:00.002+01:00</published><updated>2010-03-15T15:57:29.921+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='gis'/><category scheme='http://www.blogger.com/atom/ns#' term='qgis'/><category scheme='http://www.blogger.com/atom/ns#' term='python'/><category scheme='http://www.blogger.com/atom/ns#' term='contours'/><title type='text'>Contour plot for QGIS - version 0.5</title><content type='html'>&lt;div style="text-align: justify;"&gt;The 0.5 is here! Comes with some great new options with the introduction of filled contours, and the possibility to modify each level individually (just double click in the levels list). Also, it's the first time for me to work with someone at the antipodes (or really near : &lt;a href="http://www.antipodr.com/?addr=limoges%2C+france&amp;amp;x=0&amp;amp;y=0"&gt;http://www.antipodr.com/?addr=limoges%2C+france&amp;amp;x=0&amp;amp;y=0&lt;/a&gt;), thanks Chris!&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;Requirements:&lt;/span&gt;&lt;br /&gt;&lt;a href="http://matplotlib.sourceforge.net/"&gt;matplotlib&lt;/a&gt; and the &lt;a href="http://matplotlib.sourceforge.net/users/toolkits.html"&gt;natgrid toolkit&lt;/a&gt; if the irregular points interpolation fails&lt;br /&gt;&lt;a href="http://www.scipy.org/NumPy"&gt;numpy&lt;/a&gt;&lt;br /&gt;&lt;a href="http://pypi.python.org/pypi/Shapely/"&gt;Shapely&lt;/a&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;div style="text-align: justify;"&gt;&lt;/div&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;Download&lt;/span&gt; : Use the  internal Qgis plugin installer...&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;Usage :&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;Just follow the included documentation :)&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_xaCvTl6Kka0/S5lln__mHyI/AAAAAAAAAOw/oslDL5mOEik/s1600-h/contour_dialog.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/_xaCvTl6Kka0/S5lln__mHyI/AAAAAAAAAOw/oslDL5mOEik/s320/contour_dialog.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_xaCvTl6Kka0/S5llwWDSQDI/AAAAAAAAAO4/Ce32EmRZZXM/s1600-h/contourslines0.5.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="264" src="http://3.bp.blogspot.com/_xaCvTl6Kka0/S5llwWDSQDI/AAAAAAAAAO4/Ce32EmRZZXM/s320/contourslines0.5.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_xaCvTl6Kka0/S5ll2tJ-GwI/AAAAAAAAAPA/J1duVrg1bfM/s1600-h/filledcontours0.5.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="264" src="http://4.bp.blogspot.com/_xaCvTl6Kka0/S5ll2tJ-GwI/AAAAAAAAAPA/J1duVrg1bfM/s320/filledcontours0.5.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6407040448341804380-7011166689892638806?l=youarealegend.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://youarealegend.blogspot.com/feeds/7011166689892638806/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6407040448341804380&amp;postID=7011166689892638806' title='19 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6407040448341804380/posts/default/7011166689892638806'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6407040448341804380/posts/default/7011166689892638806'/><link rel='alternate' type='text/html' href='http://youarealegend.blogspot.com/2010/03/0.html' title='Contour plot for QGIS - version 0.5'/><author><name>Lionel Roubeyrie</name><uri>http://www.blogger.com/profile/11552330570446337100</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/-zv2sCFlXaXg/Td-i35NhPeI/AAAAAAAAATU/xeyB0TYCyiw/s220/bear'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_xaCvTl6Kka0/S5lln__mHyI/AAAAAAAAAOw/oslDL5mOEik/s72-c/contour_dialog.png' height='72' width='72'/><thr:total>19</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6407040448341804380.post-1668642931285959698</id><published>2010-02-23T10:51:00.001+01:00</published><updated>2010-03-15T15:57:01.175+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='gis'/><category scheme='http://www.blogger.com/atom/ns#' term='qgis'/><category scheme='http://www.blogger.com/atom/ns#' term='python'/><category scheme='http://www.blogger.com/atom/ns#' term='contours'/><title type='text'>Contour plot for QGIS - version 0.4</title><content type='html'>&lt;div style="text-align: justify;"&gt;With the great help of Chris Crook, here is an update of the contour plugin for QGIS which now can handle irregular points grids. This is possible via the "griddata" module of the matplotlib package. Please note some pathologicals cases can't be processed with griddata, and you have to install the natgrid toolkit providing a more robust algorithm for triangulation and interpolation. Last but not least, the contour plugin now has a documentation!&lt;br /&gt;Many thanks for your work Chris.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;Requirements:&lt;/span&gt;&lt;br /&gt;&lt;a href="http://matplotlib.sourceforge.net/"&gt;matplotlib&lt;/a&gt; and the &lt;a href="http://matplotlib.sourceforge.net/users/toolkits.html"&gt;natgrid toolkit&lt;/a&gt; if the irregular points interpolation fails&lt;br /&gt;&lt;a href="http://www.scipy.org/NumPy"&gt;numpy&lt;/a&gt;&lt;br /&gt;&lt;a href="http://pypi.python.org/pypi/Shapely/"&gt;Shapely&lt;/a&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;div style="text-align: justify;"&gt;&lt;/div&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;Download&lt;/span&gt; : Use the  internal Qgis plugin installer...&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;Usage :&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;Just follow the included documentation :)&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_xaCvTl6Kka0/S4Ok8X0q9KI/AAAAAAAAAOg/EXDWq0A6BuM/s1600-h/contour_dialog.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/_xaCvTl6Kka0/S4Ok8X0q9KI/AAAAAAAAAOg/EXDWq0A6BuM/s320/contour_dialog.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6407040448341804380-1668642931285959698?l=youarealegend.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://youarealegend.blogspot.com/feeds/1668642931285959698/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6407040448341804380&amp;postID=1668642931285959698' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6407040448341804380/posts/default/1668642931285959698'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6407040448341804380/posts/default/1668642931285959698'/><link rel='alternate' type='text/html' href='http://youarealegend.blogspot.com/2010/02/contour-plot-for-qgis-version-04.html' title='Contour plot for QGIS - version 0.4'/><author><name>Lionel Roubeyrie</name><uri>http://www.blogger.com/profile/11552330570446337100</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/-zv2sCFlXaXg/Td-i35NhPeI/AAAAAAAAATU/xeyB0TYCyiw/s220/bear'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_xaCvTl6Kka0/S4Ok8X0q9KI/AAAAAAAAAOg/EXDWq0A6BuM/s72-c/contour_dialog.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6407040448341804380.post-2075573780876538081</id><published>2010-01-04T14:34:00.010+01:00</published><updated>2010-01-04T15:28:42.648+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='gis'/><category scheme='http://www.blogger.com/atom/ns#' term='python'/><category scheme='http://www.blogger.com/atom/ns#' term='contours'/><title type='text'>Contour plot for QGIS - version 0.3</title><content type='html'>&lt;div style="text-align: justify;"&gt;Here is an update of the contour plot plugin for Qgis. Now handle integer, double and real fields, with a new option for fixing the minimum and maximum contouring values.&lt;/div&gt;&lt;div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div style="text-align: justify; "&gt;&lt;span style="font-style: italic; font-weight: bold; "&gt;Requirements:&lt;/span&gt;&lt;br /&gt;&lt;a href="http://matplotlib.sourceforge.net/"&gt;matplotlib&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.scipy.org/NumPy"&gt;numpy&lt;/a&gt;&lt;br /&gt;&lt;a href="http://pypi.python.org/pypi/Shapely/"&gt;Shapely&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify; "&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;or for Debian based systems like Ubuntu, you can directly type in a terminal :&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;blockquote style="text-align: justify;"&gt;sudo apt-get install python-numpy python-matplotlib python-shapely&lt;/blockquote&gt;&lt;div style="text-align: justify; "&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-style: italic; font-weight: bold; "&gt;Download&lt;/span&gt; : Use the internal Qgis plugin installer...&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify; "&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold; "&gt;Usage :&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: justify; "&gt;Look at the first release or see this screencast :&lt;/div&gt;&lt;div style="text-align: justify; "&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;object width="640" height="532" class="BLOG_video_class" id="BLOG_video-993cb31f697cab79" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"&gt;&lt;param name="movie" value="http://www.youtube.com/get_player"&gt;&lt;param name="bgcolor" value="#FFFFFF"&gt;&lt;param name="allowfullscreen" value="true"&gt;&lt;param name="flashvars" value="flvurl=http://v23.nonxt8.googlevideo.com/videoplayback?id%3D993cb31f697cab79%26itag%3D5%26app%3Dblogger%26ip%3D0.0.0.0%26ipbits%3D0%26expire%3D1331151999%26sparams%3Did,itag,ip,ipbits,expire%26signature%3D7115DDD5BF598DF16381FD35D7E273B899BAB6F5.766B781F61AC7D1220C2FD63D96D34D7EC5A007A%26key%3Dck1&amp;amp;iurl=http://video.google.com/ThumbnailServer2?app%3Dblogger%26contentid%3D993cb31f697cab79%26offsetms%3D5000%26itag%3Dw160%26sigh%3Dn9HWXfkLNPylNVyPMF92fJFcyjQ&amp;amp;autoplay=0&amp;amp;ps=blogger"&gt;&lt;embed src="http://www.youtube.com/get_player" type="application/x-shockwave-flash"width="640" height="532" bgcolor="#FFFFFF"flashvars="flvurl=http://v23.nonxt8.googlevideo.com/videoplayback?id%3D993cb31f697cab79%26itag%3D5%26app%3Dblogger%26ip%3D0.0.0.0%26ipbits%3D0%26expire%3D1331151999%26sparams%3Did,itag,ip,ipbits,expire%26signature%3D7115DDD5BF598DF16381FD35D7E273B899BAB6F5.766B781F61AC7D1220C2FD63D96D34D7EC5A007A%26key%3Dck1&amp;iurl=http://video.google.com/ThumbnailServer2?app%3Dblogger%26contentid%3D993cb31f697cab79%26offsetms%3D5000%26itag%3Dw160%26sigh%3Dn9HWXfkLNPylNVyPMF92fJFcyjQ&amp;autoplay=0&amp;ps=blogger"allowFullScreen="true" /&gt;&lt;/object&gt;&lt;br /&gt;(sorry for the poor quality of this video, google seems to not like high quality :/ )&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6407040448341804380-2075573780876538081?l=youarealegend.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='enclosure' type='video/mp4' href='http://www.blogger.com/video-play.mp4?contentId=993cb31f697cab79&amp;type=video%2Fmp4' length='0'/><link rel='replies' type='application/atom+xml' href='http://youarealegend.blogspot.com/feeds/2075573780876538081/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6407040448341804380&amp;postID=2075573780876538081' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6407040448341804380/posts/default/2075573780876538081'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6407040448341804380/posts/default/2075573780876538081'/><link rel='alternate' type='text/html' href='http://youarealegend.blogspot.com/2010/01/contour-plot-for-qgis-version-03.html' title='Contour plot for QGIS - version 0.3'/><author><name>Lionel Roubeyrie</name><uri>http://www.blogger.com/profile/11552330570446337100</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/-zv2sCFlXaXg/Td-i35NhPeI/AAAAAAAAATU/xeyB0TYCyiw/s220/bear'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6407040448341804380.post-7102215682277018170</id><published>2009-11-08T23:30:00.009+01:00</published><updated>2009-11-08T23:50:55.515+01:00</updated><title type='text'>Conky on the desktop</title><content type='html'>&lt;div style="text-align: justify;"&gt;Conky is a highly configurable system monitor, with tons of options and an incredible rendering system (&lt;a href="http://conky.sourceforge.net/"&gt;http://conky.sourceforge.net&lt;/a&gt;). Here is my desktop with a minimal conky script :&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_xaCvTl6Kka0/SvdIdqK4nyI/AAAAAAAAAMI/XGYhH8JiPSc/s1600-h/Capture.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 256px;" src="http://4.bp.blogspot.com/_xaCvTl6Kka0/SvdIdqK4nyI/AAAAAAAAAMI/XGYhH8JiPSc/s320/Capture.png" alt="" id="BLOGGER_PHOTO_ID_5401865952427548450" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_xaCvTl6Kka0/SvdJT6EHoDI/AAAAAAAAAMY/coTtiduviEU/s1600-h/Capture-1.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 35px;" src="http://4.bp.blogspot.com/_xaCvTl6Kka0/SvdJT6EHoDI/AAAAAAAAAMY/coTtiduviEU/s400/Capture-1.png" alt="" id="BLOGGER_PHOTO_ID_5401866884407074866" border="0" /&gt;&lt;/a&gt;And here is the script to put in your ~/.conkyrc file :&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier;"&gt;&lt;br /&gt;own_window_hints undecorated,below,sticky,skip_taskbar,skip_pager&lt;br /&gt;use_xft yes&lt;br /&gt;xftfont Bitstream Vera Sans Mono:size=10&lt;br /&gt;xftalpha 0.8&lt;br /&gt;update_interval 1.0&lt;br /&gt;total_run_times 0&lt;br /&gt;own_window yes&lt;br /&gt;own_window_transparent yes&lt;br /&gt;double_buffer yes&lt;br /&gt;draw_shades no&lt;br /&gt;draw_outline no&lt;br /&gt;draw_borders no&lt;br /&gt;stippled_borders 8&lt;br /&gt;border_inner_margin 4&lt;br /&gt;border_outer_margin 4&lt;br /&gt;border_width 1&lt;br /&gt;default_color 4582B5&lt;br /&gt;default_shade_color black&lt;br /&gt;default_outline_color black&lt;br /&gt;alignment bottom_left&lt;br /&gt;gap_x 50&lt;br /&gt;gap_y 50&lt;br /&gt;no_buffers yes&lt;br /&gt;uppercase no&lt;br /&gt;cpu_avg_samples 2&lt;br /&gt;net_avg_samples 2&lt;br /&gt;override_utf8_locale no&lt;br /&gt;use_spacer none&lt;br /&gt;format_human_readable yes&lt;br /&gt;short_units yes&lt;br /&gt;default_bar_size 50 10&lt;br /&gt;default_graph_size 16 150&lt;br /&gt;minimum_size 1180 5&lt;br /&gt;maximum_width 1180&lt;br /&gt;show_graph_range no&lt;br /&gt;show_graph_scale no&lt;br /&gt;&lt;br /&gt;TEXT&lt;br /&gt;${color #e49c16}HOST   : ${color white}$nodename${tab 200}${color #e49c16}CPU : ${color #ffc11f}${cpubar cpu0}${color #FFFFFF} ${cpu cpu0}% at ${freq_g}GHz${tab 200}${color #e49c16}DOWNLOAD : ${color #ffc11f}${downspeedgraph eth0 16,150 8b4b0b ffc11f} ${color white} ${downspeed eth0} k/s&lt;br /&gt;${color #e49c16}DATE   : ${color white}${time %Y/%m/%d %H:%M:%S}${tab 200}${color #e49c16}RAM : ${color #ffc11f}${membar}${color #FFFFFF} $memperc% - $mem/$memmax&lt;br /&gt;${color #e49c16}KERNEL : ${color white}$kernel${tab 200}${color #e49c16}SWAP: ${color #ffc11f}${swapbar}${color #FFFFFF} $swapperc% - $swap/$swapmax${tab 200}${color #e49c16}UPLOAD   : ${color #ffc11f}${upspeedgraph eth0 16,150 ffc11f 8b4b0b} ${color white} ${upspeed eth0} k/s&lt;br /&gt;${color #e49c16}IP     : ${color white}${addr eth0}${tab 200}${color #e49c16}ROOT: ${color #ffc11f}${fs_bar /} ${color #FFFFFF}$fs_used_perc% - ${fs_free /}/${fs_size /}&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6407040448341804380-7102215682277018170?l=youarealegend.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://youarealegend.blogspot.com/feeds/7102215682277018170/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6407040448341804380&amp;postID=7102215682277018170' title='0 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6407040448341804380/posts/default/7102215682277018170'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6407040448341804380/posts/default/7102215682277018170'/><link rel='alternate' type='text/html' href='http://youarealegend.blogspot.com/2009/11/conky-on-desktop.html' title='Conky on the desktop'/><author><name>Lionel Roubeyrie</name><uri>http://www.blogger.com/profile/11552330570446337100</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/-zv2sCFlXaXg/Td-i35NhPeI/AAAAAAAAATU/xeyB0TYCyiw/s220/bear'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_xaCvTl6Kka0/SvdIdqK4nyI/AAAAAAAAAMI/XGYhH8JiPSc/s72-c/Capture.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6407040448341804380.post-1584806795976930926</id><published>2009-08-03T11:54:00.010+02:00</published><updated>2009-08-03T12:31:58.048+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='qgis'/><category scheme='http://www.blogger.com/atom/ns#' term='python'/><category scheme='http://www.blogger.com/atom/ns#' term='contours'/><title type='text'>Contour plot for QGIS</title><content type='html'>&lt;div style="text-align: justify;"&gt;Qgis plugin for creating contours lines from a regular points grid.&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;Requirements:&lt;/span&gt;&lt;br /&gt;&lt;a href="http://matplotlib.sourceforge.net/"&gt;matplotlib&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.scipy.org/NumPy"&gt;numpy&lt;/a&gt;&lt;br /&gt;&lt;a href="http://pypi.python.org/pypi/Shapely/"&gt;Shapely&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;Download&lt;/span&gt; : Use the internal Qgis plugin installer...&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;Usage :&lt;/span&gt;&lt;br /&gt;1 - After installing the contour plugin with the installer, go to the menu Plugins &gt; Manage plugins and activate it :&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_xaCvTl6Kka0/Sna3hTs7MOI/AAAAAAAAACM/E8HAqshoFlI/s1600-h/Plugin_Manager.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 219px;" src="http://1.bp.blogspot.com/_xaCvTl6Kka0/Sna3hTs7MOI/AAAAAAAAACM/E8HAqshoFlI/s320/Plugin_Manager.png" alt="" id="BLOGGER_PHOTO_ID_5365677788910792930" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;2 - Load input datas from a shapefile or whatever you want, but they must be of type &lt;span style="font-weight: bold;"&gt;point&lt;/span&gt; and on a &lt;span style="font-weight: bold;"&gt;regular grid&lt;/span&gt; :&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_xaCvTl6Kka0/Sna4wFobOfI/AAAAAAAAACU/1LMj3UFcrXE/s1600-h/input_datas.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 254px;" src="http://4.bp.blogspot.com/_xaCvTl6Kka0/Sna4wFobOfI/AAAAAAAAACU/1LMj3UFcrXE/s320/input_datas.png" alt="" id="BLOGGER_PHOTO_ID_5365679142343490034" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;3 - Open the contour plugin : menu Plugins &gt; Contour &gt; Contour&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_xaCvTl6Kka0/Sna5f__Wf4I/AAAAAAAAACc/kdhfnFrvWQc/s1600-h/activat.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 154px;" src="http://2.bp.blogspot.com/_xaCvTl6Kka0/Sna5f__Wf4I/AAAAAAAAACc/kdhfnFrvWQc/s320/activat.png" alt="" id="BLOGGER_PHOTO_ID_5365679965462757250" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;4 - In the Contour window, select the input layer and the data field  from which contours will be based, how many resulting contours levels you want. If you just want to "have a look" at the results, select the "in memory" option, else select storing in a shapefile (write on disk).&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_xaCvTl6Kka0/Sna7Dxx5NxI/AAAAAAAAACk/48lkbsGGwLQ/s1600-h/select.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 263px;" src="http://1.bp.blogspot.com/_xaCvTl6Kka0/Sna7Dxx5NxI/AAAAAAAAACk/48lkbsGGwLQ/s320/select.png" alt="" id="BLOGGER_PHOTO_ID_5365681679635134226" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;5 - Click "OK" and it's done :)&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_xaCvTl6Kka0/Sna7ZBoOIDI/AAAAAAAAACs/j5lrZAk9Ulo/s1600-h/output.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 254px;" src="http://3.bp.blogspot.com/_xaCvTl6Kka0/Sna7ZBoOIDI/AAAAAAAAACs/j5lrZAk9Ulo/s320/output.png" alt="" id="BLOGGER_PHOTO_ID_5365682044666781746" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6407040448341804380-1584806795976930926?l=youarealegend.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://youarealegend.blogspot.com/feeds/1584806795976930926/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6407040448341804380&amp;postID=1584806795976930926' title='5 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6407040448341804380/posts/default/1584806795976930926'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6407040448341804380/posts/default/1584806795976930926'/><link rel='alternate' type='text/html' href='http://youarealegend.blogspot.com/2009/08/contour-plot-for-qgis.html' title='Contour plot for QGIS'/><author><name>Lionel Roubeyrie</name><uri>http://www.blogger.com/profile/11552330570446337100</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/-zv2sCFlXaXg/Td-i35NhPeI/AAAAAAAAATU/xeyB0TYCyiw/s220/bear'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_xaCvTl6Kka0/Sna3hTs7MOI/AAAAAAAAACM/E8HAqshoFlI/s72-c/Plugin_Manager.png' height='72' width='72'/><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6407040448341804380.post-736868272462115493</id><published>2008-09-10T11:21:00.026+02:00</published><updated>2010-10-07T14:13:07.038+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='python'/><category scheme='http://www.blogger.com/atom/ns#' term='windrose'/><title type='text'>windrose</title><content type='html'>&lt;div style="text-align: justify;"&gt;A windrose, also known as a polar rose plot, is a special diagram for representing the distribution of meteorological datas, typically wind speeds by class and direction.&lt;br /&gt;This is a simple module for the matplotlib python library, which requires numpy for internal computation.&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;Requirements:&lt;/span&gt;&lt;br /&gt;&lt;a href="http://matplotlib.sourceforge.net/"&gt;matplotlib&lt;/a&gt; 0.98.3 or above&lt;br /&gt;&lt;a href="http://www.scipy.org/NumPy"&gt;numpy&lt;/a&gt; 1.0 or above&lt;br /&gt;and naturally &lt;a href="http://www.python.org/"&gt;python&lt;/a&gt; :-P&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;Download&lt;/span&gt; : &lt;a href="https://sourceforge.net/project/showfiles.php?group_id=239240&amp;amp;package_id=290902"&gt;windrose.zip&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;Example :&lt;/span&gt;&lt;br /&gt;Expecting the windrose.py file and all the necessary modules are in the PYTHONPATH, this example use randoms values for wind speed and direction(ws and wd variables). In situation, these variables are loaded with reals values (1-D array), from a database or directly from a text file (see the "load" facility from the matplotlib.pylab interface for that).&lt;/div&gt;&lt;br /&gt;&lt;div class="code"&gt;&lt;br /&gt;from windrose import WindroseAxes&lt;br /&gt;from matplotlib import pyplot as plt&lt;br /&gt;import matplotlib.cm as cm&lt;br /&gt;from numpy.random import random&lt;br /&gt;from numpy import arange&lt;br /&gt;&lt;br /&gt;#Create wind speed and direction variables&lt;br /&gt;ws = random(500)*6&lt;br /&gt;wd = random(500)*360&lt;br /&gt;&lt;br /&gt;#A quick way to create new windrose axes...&lt;br /&gt;def new_axes():&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;fig = plt.figure(figsize=(8, 8), dpi=80, facecolor='w', edgecolor='w')&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;rect = [0.1, 0.1, 0.8, 0.8]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ax = WindroseAxes(fig, rect, axisbg='w')&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;fig.add_axes(ax)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return ax&lt;br /&gt;&lt;br /&gt;#...and adjust the legend box&lt;br /&gt;def set_legend(ax):&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;l = ax.legend(axespad=-0.10)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;plt.setp(l.get_texts(), fontsize=8)&lt;/div&gt;&lt;br /&gt;A stacked histogram with normed (displayed in percent) results :&lt;br /&gt;&lt;div class="code"&gt;&lt;br /&gt;ax = new_axes()&lt;br /&gt;ax.bar(wd, ws, normed=True, opening=0.8, edgecolor='white')&lt;br /&gt;set_legend(ax)&lt;/div&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/_xaCvTl6Kka0/SMfCxUKJRlI/AAAAAAAAAAs/KBMYrlKaIok/s1600-h/bar.png" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5244374443576870482" src="http://4.bp.blogspot.com/_xaCvTl6Kka0/SMfCxUKJRlI/AAAAAAAAAAs/KBMYrlKaIok/s320/bar.png" style="cursor: pointer; display: block; margin: 0px auto 10px; text-align: center;" /&gt;&lt;/a&gt;&lt;br /&gt;Another stacked histogram representation, not normed, with bins limits&lt;br /&gt;&lt;div class="code"&gt;&lt;br /&gt;ax = new_axes()&lt;br /&gt;ax.box(wd, ws, bins=arange(0,8,1))&lt;br /&gt;set_legend(ax)&lt;/div&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/_xaCvTl6Kka0/SMfDiC9kHXI/AAAAAAAAAA0/yhdzOSR-B5s/s1600-h/box.png" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5244375280774290802" src="http://2.bp.blogspot.com/_xaCvTl6Kka0/SMfDiC9kHXI/AAAAAAAAAA0/yhdzOSR-B5s/s320/box.png" style="cursor: pointer; display: block; margin: 0px auto 10px; text-align: center;" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;A windrose in filled representation, with a controled colormap&lt;br /&gt;&lt;div class="code"&gt;&lt;br /&gt;ax = new_axes()&lt;br /&gt;ax.contourf(wd, ws, bins=arange(0,8,1), cmap=cm.hot)&lt;br /&gt;set_legend(ax)&lt;/div&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/_xaCvTl6Kka0/SMfEL1QrtuI/AAAAAAAAABE/cNytjKb_GBw/s1600-h/contourf.png" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5244375998650889954" src="http://4.bp.blogspot.com/_xaCvTl6Kka0/SMfEL1QrtuI/AAAAAAAAABE/cNytjKb_GBw/s320/contourf.png" style="cursor: pointer; display: block; margin: 0px auto 10px; text-align: center;" /&gt;&lt;/a&gt;&lt;br /&gt;Same as above, but with contours over each filled region...&lt;br /&gt;&lt;div class="code"&gt;&lt;br /&gt;ax = new_axes()&lt;br /&gt;ax.contourf(wd, ws, bins=arange(0,8,1), cmap=cm.hot)&lt;br /&gt;ax.contour(wd, ws, bins=arange(0,8,1), colors='black')&lt;br /&gt;set_legend(ax)&lt;/div&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_xaCvTl6Kka0/SMfEQhSP3lI/AAAAAAAAABM/Vi3FDEKDtbg/s1600-h/contourf-contour.png" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5244376079188090450" src="http://3.bp.blogspot.com/_xaCvTl6Kka0/SMfEQhSP3lI/AAAAAAAAABM/Vi3FDEKDtbg/s320/contourf-contour.png" style="cursor: pointer; display: block; margin: 0px auto 10px; text-align: center;" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;...or without filled regions&lt;br /&gt;&lt;div class="code"&gt;&lt;br /&gt;ax = new_axes()&lt;br /&gt;ax.contour(wd, ws, bins=arange(0,8,1), cmap=cm.hot, lw=3)&lt;br /&gt;set_legend(ax)&lt;/div&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_xaCvTl6Kka0/SMfEDioj9mI/AAAAAAAAAA8/LRqRMpCeZw8/s1600-h/contour.png" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5244375856211818082" src="http://3.bp.blogspot.com/_xaCvTl6Kka0/SMfEDioj9mI/AAAAAAAAAA8/LRqRMpCeZw8/s320/contour.png" style="cursor: pointer; display: block; margin: 0px auto 10px; text-align: center;" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;After that, you can have a look at the computed values used to plot the windrose with the ax._info dictionnary :&lt;br /&gt;ax._info['bins'] : list of bins (limits) used for wind speeds. If not set in the call, bins will be set to 6 parts between wind speed min and max.&lt;br /&gt;ax._info['dir'] : list of directions "bundaries" used to compute the distribution by wind direction sector. This can be set by the nsector parameter (see below).&lt;br /&gt;ax._info['table'] : the resulting table of the computation. It's a 2D histogram, where each line represents a wind speed class, and each column represents a wind direction class.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;So, to know the frequency of each wind direction, for all wind speeds, do:&lt;/div&gt;&lt;br /&gt;&lt;div class="code"&gt;&lt;br /&gt;ax.bar(wd, ws, normed=True, nsector=16)&lt;br /&gt;table = ax._info['table']&lt;br /&gt;wd_freq = np.sum(table, axis=0)&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;and to have a graphical representation of this result :&lt;/div&gt;&lt;br /&gt;&lt;div class="code"&gt;&lt;br /&gt;dir = ax._info['dir']&lt;br /&gt;wd_freq = np.sum(table, axis=0)&lt;br /&gt;plt.bar(arange(16), wd_freq, align='center')&lt;br /&gt;xlabels = ('N','','N-E','','E','','S-E','','S','','S-O','','O','','N-O','')&lt;br /&gt;xticks=arange(16)&lt;br /&gt;gca().set_xticks(xticks)&lt;br /&gt;draw()&lt;br /&gt;gca().set_xticklabels(xlabels)&lt;br /&gt;draw()&lt;/div&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/_xaCvTl6Kka0/SMjibmZhgTI/AAAAAAAAABU/50Z3n5sYAvY/s1600-h/histo_WD.png" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5244690729864888626" src="http://2.bp.blogspot.com/_xaCvTl6Kka0/SMjibmZhgTI/AAAAAAAAABU/50Z3n5sYAvY/s320/histo_WD.png" style="cursor: pointer; display: block; margin: 0px auto 10px; text-align: center;" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;In addition of all the standard pyplot parameters, you can pass special parameters to control the windrose production. For the stacked histogram windrose, calling help(ax.bar) will give :&lt;br /&gt;bar(self, dir, var, **kwargs) method of windrose.WindroseAxes instance&lt;br /&gt;&amp;nbsp;&amp;nbsp;Plot a windrose in bar mode. For each var bins and for each sector,&lt;br /&gt;&amp;nbsp;&amp;nbsp;a colored bar will be draw on the axes.&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;Mandatory:&lt;br /&gt;&amp;nbsp;&amp;nbsp;* dir : 1D array - directions the wind blows from, North centred&lt;br /&gt;&amp;nbsp;&amp;nbsp;* var : 1D array - values of the variable to compute. Typically the wind&lt;br /&gt;&amp;nbsp;&amp;nbsp;speeds&lt;br /&gt;&amp;nbsp;&amp;nbsp;Optional:&lt;br /&gt;&amp;nbsp;&amp;nbsp;* nsector: integer - number of sectors used to compute the windrose&lt;br /&gt;&amp;nbsp;&amp;nbsp;table. If not set, nsectors=16, then each sector will be 360/16=22.5°,&lt;br /&gt;&amp;nbsp;&amp;nbsp;and the resulting computed table will be aligned with the cardinals&lt;br /&gt;&amp;nbsp;&amp;nbsp;points.&lt;br /&gt;&amp;nbsp;&amp;nbsp;* bins : 1D array or integer- number of bins, or a sequence of&lt;br /&gt;&amp;nbsp;&amp;nbsp;bins variable. If not set, bins=6 between min(var) and max(var).&lt;br /&gt;&amp;nbsp;&amp;nbsp;* blowto : bool. If True, the windrose will be pi rotated,&lt;br /&gt;&amp;nbsp;&amp;nbsp;to show where the wind blow to (usefull for pollutant rose).&lt;br /&gt;&amp;nbsp;&amp;nbsp;* colors : string or tuple - one string color ('k' or 'black'), in this&lt;br /&gt;&amp;nbsp;&amp;nbsp;case all bins will be plotted in this color; a tuple of matplotlib&lt;br /&gt;&amp;nbsp;&amp;nbsp;color args (string, float, rgb, etc), different levels will be plotted&lt;br /&gt;&amp;nbsp;&amp;nbsp;in different colors in the order specified.&lt;br /&gt;&amp;nbsp;&amp;nbsp;* cmap : a cm Colormap instance from matplotlib.cm.&lt;br /&gt;&amp;nbsp;&amp;nbsp;  - if cmap == None and colors == None, a default Colormap is used.&lt;br /&gt;&amp;nbsp;&amp;nbsp;edgecolor : string - The string color each edge bar will be plotted.&lt;br /&gt;&amp;nbsp;&amp;nbsp;Default : no edgecolor&lt;br /&gt;&amp;nbsp;&amp;nbsp;* opening : float - between 0.0 and 1.0, to control the space between&lt;br /&gt;&amp;nbsp;&amp;nbsp;each sector (1.0 for no space)&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6407040448341804380-736868272462115493?l=youarealegend.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://youarealegend.blogspot.com/feeds/736868272462115493/comments/default' title='Publier les commentaires'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6407040448341804380&amp;postID=736868272462115493' title='28 commentaires'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6407040448341804380/posts/default/736868272462115493'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6407040448341804380/posts/default/736868272462115493'/><link rel='alternate' type='text/html' href='http://youarealegend.blogspot.com/2008/09/windrose.html' title='windrose'/><author><name>Lionel Roubeyrie</name><uri>http://www.blogger.com/profile/11552330570446337100</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/-zv2sCFlXaXg/Td-i35NhPeI/AAAAAAAAATU/xeyB0TYCyiw/s220/bear'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_xaCvTl6Kka0/SMfCxUKJRlI/AAAAAAAAAAs/KBMYrlKaIok/s72-c/bar.png' height='72' width='72'/><thr:total>28</thr:total></entry></feed>
