wradlibhttp://wradlib.org/2016-04-26T11:00:00+02:00introducing wradlib jupyter notebooks2016-04-26T11:00:00+02:00wradlibtag:wradlib.org,2016-04-26:2016/04/introducing-wradlib-jupyter-notebooks/<p>At a wradlib code-sprint early April, we thought about ways to make wradlib examples and tutorials more user-friendly, interactive and&nbsp;consistent.</p> <p>Therefore, we decided to harmonise online tutorials and recipes together with the examples from the source distribution. All of them will be transformed as ready-to-use <a href="http://jupyter.org/">jupyter</a> notebooks. These notebooks will be distributed along with wradlib, but they will also be rendered as tutorials/examples in the online documentation. In this ongoing process, all examples and tutorials will be reviewed and restructured if&nbsp;needed.</p> <p>As a result, <strong>wradlib users</strong> will be able to walk through the examples interactively by using <a href="http://jupyter.org/">jupyter</a> together with <a href="https://ipython.org/">IPython</a>. Interactively means that users can manipulate code and parameters on the fly and immediately evaluate the result. This is perfect for courses, lectures or tutorials. It will help users to better understand wradlib (as compared to just executing a&nbsp;script).</p> <p>Still, for users who just want to run examples as plain Python scripts, we will also include these in the source distribution. Finally, all notebooks will be rendered for the online&nbsp;documentation.</p> <p>For getting an idea about jupyter notebooks within wradlib have a look at these three (rendered)&nbsp;notebooks:</p> <ul> <li><a href="http://wradlib.org/wradlib-docs/latest/notebooks/radolan.html"><span class="caps">RADOLAN</span> - Radar Products from German Weather Service</a>,</li> <li><a href="http://wradlib.org/wradlib-docs/latest/notebooks/beamblockage/wradlib_beamblock.html">Beam Blockage Calculation using <span class="caps">DEM</span></a>&nbsp;and</li> <li><a href="http://wradlib.org/wradlib-docs/latest/notebooks/visualisation/wradlib_overlay.html">Plot Additional&nbsp;Data</a></li> </ul> <p>We are currently in the process of transition. Successively, we will migrate all tutorials and&nbsp;examples.</p> <p>Along the way, we decided to host our example datasets in the dedicated repository <a href="https://github.com/wradlib/wradlib-data">wradlib-data</a>. This way, we remove the &#8220;data overhead&#8221; from the source distribution. In order to run the examples locally, users need to carry out two&nbsp;steps:</p> <ol> <li>download the data to a local directory,&nbsp;and</li> <li>point to this directory by creating an environment variable <code>WRADLIB_DATA</code>.</li> </ol> <p>The example data is automagically pulled from this location and used in the examples and notebooks. Detailed instructions will be included in the&nbsp;documentation.</p> <p>From a <strong>wradlib developers&#8217;</strong> perspective, the advantages of the new approach are huge,&nbsp;too:</p> <blockquote> <p>We only write a notebook <strong>once</strong>.</p> </blockquote> <p>This notebook will serve as both as test code and user example, and it will automatically be rendered for online documentation. This way, all code examples will be consistent and in&nbsp;sync.</p> <p>The new wradlib notebook workflow in more&nbsp;detail:</p> <ul> <li>document code example or tutorial only once as jupyter&nbsp;notebook</li> <li>convert notebooks for wradlib tests in <span class="caps">CI</span> (<a href="https://github.com/wradlib/wradlib/blob/master/scripts/convert_notebooks.sh">convert_notebooks.sh</a>)</li> <li>render notebooks for wradlib docs in <span class="caps">CI</span> (<a href="https://github.com/wradlib/wradlib/blob/master/scripts/render_notebooks.sh">render_notebooks.sh</a>, <a href="https://github.com/spatialaudio/nbsphinx">nbsphinx</a>)</li> </ul> <p>If you have ideas and suggestions about extending the tutorials, notebooks or recipe sections, take your chance and contact&nbsp;us.</p>easy install using conda-forge2016-03-17T15:00:00+01:00wradlibtag:wradlib.org,2016-03-17:2016/03/easy-install-using-conda-forge/<p>With the help of an outstanding community effort named <a href="https://conda-forge.github.io/">conda-forge</a>, wradlib can now be more conveniently installed on <em><strong>linux</strong></em>, <em><strong>windows</strong></em> and <em><strong>osx</strong></em>.</p> <p>Until now, installing wradlib and its dependencies could be tricky, with each <span class="caps">OS</span> having its own issues. On Windows, we so far recommended to satisfy all depencies via <a href="https://python-xy.github.io/">Python(x,y)</a>. This was convenient; however, it limited users to Python 2.7, and, more importantly, to 32-bit Python. This was a serious drawback particularly for memory-intensive&nbsp;applications.</p> <p>With this post, we present a new installation approach that is harmonised across platforms. Using <a href="https://github.com/conda-forge/wradlib-feedstock">conda-forge/wradlib-feedstock</a>, we provide installable wradlib packages for all major <span class="caps">OS</span> (accounting for different python and numpy versions, and offering 32-bit builts for Windows, if desired). All builts are tested and uploaded to the <a href="https://anaconda.org/conda-forge/wradlib">conda-forge channel</a>.</p> <p>The default-conda channel provides many wradlib dependencies out of the box, but not all. Hence, we also contributed to the <a href="https://github.com/conda-forge/gdal-feedstock">conda-forge/gdal-feedstock</a> making it the first feedstock serving two different package versions (gdal 1.11.4 and&nbsp;2.0.2).</p> <p>As a result, wradlib can now be conveniently installed using the <a href="http://conda.pydata.org/docs/intro.html">conda package manager</a>. Windows users should be aware, though, that this approach is <strong>not</strong> compatible with Python(x,y). So you need to make a&nbsp;decision.</p> <p>So this is the basic walk&nbsp;through:</p> <ol> <li> <p>Install the <a href="https://www.continuum.io/downloads">Anaconda environment of your&nbsp;choice</a></p> </li> <li> <p>Clone the root environment or create one from&nbsp;scratch</p> <div class="codehilite"><pre><span></span>$ conda create --name wradlib --clone root or $ conda create --name wradlib <span class="nv">python</span><span class="o">=</span>2.7 </pre></div> </li> <li> <p>Add the conda-forge&nbsp;channel</p> <div class="codehilite"><pre><span></span>$ conda config --add channels conda-forge </pre></div> </li> <li> <p>Activate wradlib&nbsp;environment</p> <ul> <li> <p>Linux</p> <div class="codehilite"><pre><span></span>$ <span class="nb">source</span> activate wradlib </pre></div> </li> <li> <p>Windows</p> <div class="codehilite"><pre><span></span>&gt; activate wradlib </pre></div> </li> </ul> </li> <li> <p>Install wradlib (and&nbsp;dependencies)</p> <div class="codehilite"><pre><span></span><span class="o">(</span>wradlib<span class="o">)</span> $ conda install wradlib </pre></div> </li> <li> <p>Set GDAL_DATA environment variable (needed for&nbsp;georeferencing)</p> <ul> <li> <p>Linux/<span class="caps">OSX</span>&nbsp;bash</p> <div class="codehilite"><pre><span></span><span class="o">(</span>wradlib<span class="o">)</span> $ <span class="nb">export</span> <span class="nv">GDAL_DATA</span><span class="o">=</span>/path/to/anaconda/envs/wradlib/share/gdal </pre></div> </li> <li> <p>Windows <span class="caps">CMD</span>.exe</p> <div class="codehilite"><pre><span></span><span class="o">[</span>wradlib<span class="o">]</span> &gt; setx GDAL_DATA C:<span class="se">\p</span>ath<span class="se">\t</span>o<span class="se">\a</span>naconda<span class="se">\e</span>nvs<span class="se">\w</span>radlib<span class="se">\L</span>ibrary<span class="se">\s</span>hare<span class="se">\g</span>dal </pre></div> </li> </ul> </li> <li> <p>Optional dependencies can be installed <span class="caps">OS</span> independent with <code>pip</code></p> <div class="codehilite"><pre><span></span><span class="o">(</span>wradlib<span class="o">)</span> $ pip install xmltodict </pre></div> </li> </ol> <hr /> <p>We hope that this new approach will make the installation of wradlib more convenient, and, as a result, enhance its usability on all major platforms - thanks to <a href="https://www.continuum.io/why-anaconda">Anaconda</a> from Continuum(R) and the conda-forge community&nbsp;effort.</p>