wradlibhttps://wradlib.org/2019-03-29T08:00:00+01:00An Open Source Library for Weather Radar Data ProcessingRelease 1.32019-03-29T08:00:00+01:002019-03-29T08:00:00+01:00wradlibtag:wradlib.org,2019-03-29:/2019/03/wradlib_release_1_3_0/<p>We have now released version 1.3 of&nbsp;wradlib.</p> <p>This version contains more improvements and enhancements than&nbsp;bugfixes.</p> <p>Now, these are the most important&nbsp;changes:</p> <ul> <li> <p><strong>Python3 only</strong> With version 1.3 we dropped support for Python 2.7. The package is intensively tested with Python 3.6 and&nbsp;3.7 …</p></li></ul><p>We have now released version 1.3 of&nbsp;wradlib.</p> <p>This version contains more improvements and enhancements than&nbsp;bugfixes.</p> <p>Now, these are the most important&nbsp;changes:</p> <ul> <li> <p><strong>Python3 only</strong> With version 1.3 we dropped support for Python 2.7. The package is intensively tested with Python 3.6 and&nbsp;3.7.</p> </li> <li> <p><strong>New CfRadial/ODIM_H5 reader based on xarray</strong> Contains functions to read and write CfRadial1 and upcoming CfRadial2 standard as well as ODIM_H5 standard radar data files. Makes intensive use of <a href="(http://xarray.pydata.org/en/stable/)">xarray package</a>, see also our <a href="https://wradlib.org/2019/02/xarray_cfradial2_odimh5/">blog-post here</a>. Examples are available in the <a href="https://docs.wradlib.org/en/stable/notebooks/fileio/wradlib_xarray_radial_odim.html">wradlib&nbsp;documentation</a></p> </li> <li> <p><strong>xarray powered plotting</strong> The plotting routines have been completely revised and build upon wradlib xarray DataArray Accessor. Helper functions for DataArray creation are implemented as well. <a href="https://docs.wradlib.org/en/stable/plotting.html">Extensive tutorials</a> including map-making using cartopy are available&nbsp;too.</p> </li> <li> <p><strong>Revised Documentation</strong> The documentation structure has been reordered for better user&nbsp;experience.</p> </li> </ul> <p>For a complete list of changes refer to the <a href="https://github.com/wradlib/wradlib/commits/master">wradlib repository</a>.</p> <p>As all new enhancements and additions might introduce regressions please report any issues you experience. Bugfix releases will be rolled out shortly. We kept our commitment to semver to stay backwards compatible regarding current workflows. One thing though is abandoning Python 2.7 where we are in line with many major python packages (eg.&nbsp;matplotlib).</p>Utilizing xarray for CfRadial - ODIM_H5 interoperability2019-02-15T11:00:00+01:002019-02-15T11:00:00+01:00wradlibtag:wradlib.org,2019-02-15:/2019/02/xarray_cfradial2_odimh5/<p>We have just added a new feature for CfRadial2 - ODIM_H5 interoperability to&nbsp;wradlib.</p> <p>wradlib is now able to read data from netcdf-based CfRadial1, CfRadial2 and hdf5-based ODIM_H5 (and other hdf5-flavours (<span class="caps">GAMIC</span>)).</p> <p>wradlib is able to write data to CfRadial2 and ODIM_H5 files. This reader implementation&nbsp;uses</p> <ul> <li><a href="http://unidata.github.io/netcdf4-python/">netcdf4</a></li> <li><a href="https://www.h5py.org/">h5py</a>&nbsp;and</li> <li><a href="https://xarray.pydata.org/">xarray …</a></li></ul><p>We have just added a new feature for CfRadial2 - ODIM_H5 interoperability to&nbsp;wradlib.</p> <p>wradlib is now able to read data from netcdf-based CfRadial1, CfRadial2 and hdf5-based ODIM_H5 (and other hdf5-flavours (<span class="caps">GAMIC</span>)).</p> <p>wradlib is able to write data to CfRadial2 and ODIM_H5 files. This reader implementation&nbsp;uses</p> <ul> <li><a href="http://unidata.github.io/netcdf4-python/">netcdf4</a></li> <li><a href="https://www.h5py.org/">h5py</a>&nbsp;and</li> <li><a href="https://xarray.pydata.org/">xarray</a></li> </ul> <p>The data is claimed using netcdf4-Dataset in a diskless non-persistent&nbsp;mode:</p> <div class="highlight"><pre><span></span> :::python ncf = nc.Dataset(filename, diskless=True, persist=False) </pre></div> <p>Further the different netcdf/hdf groups are accessed via xarray opendataset and the&nbsp;NetCDF4DataStore:</p> <div class="highlight"><pre><span></span> :::python xr.open_dataset(xr.backends.NetCDF4DataStore(ncf), mask_and_scale=True) </pre></div> <p>For hdf5 data scaling/masking properties will be added to the datasets before decoding. For <span class="caps">GAMIC</span> compound data will be read via&nbsp;h5py.</p> <p>The data structure holds one <code>root</code> xarray dataset which corresponds to the CfRadial2 root-group and one or many <code>sweep_X</code> xarray datasets, holding the sweep data. Since for data handling xarray is utilized all xarray features can be exploited, like <strong>lazy-loading</strong>, <strong>pandas-like indexing</strong> on N-dimensional data and vectorized mathematical operations across multiple&nbsp;dimensions.</p> <p>Using <a href="https://scitools.org.uk/cartopy/">cartopy</a> and/or <a href="http://docs.dask.org/">dask</a> the possibilities seem&nbsp;endless.</p> <p>The writer implementation uses xarray for CfRadial2 output and relies on h5py for the ODIM_H5&nbsp;output.</p> <p>One word of warning, this implementation is considered experimental. Changes in the <span class="caps">API</span> should be&nbsp;expected.</p> <p>We welcome everybody to check it out and report back any bugs, feature requests or other&nbsp;comments.</p>Release 1.22018-10-31T08:00:00+01:002018-10-31T08:00:00+01:00wradlibtag:wradlib.org,2018-10-31:/2018/10/wradlib_release_1_2_0/<p>We have now released version 1.2 of&nbsp;wradlib.</p> <p>This version contains many bugfixes as well as improvements and enhancements. Most additions were pulled in within <a href="https://hacktoberfest.digitalocean.com/">Hacktoberfest</a>, the month-long celebration of open source software. Although this years Hacktoberfest is over, we encourage every wradlib user to join the party and …</p><p>We have now released version 1.2 of&nbsp;wradlib.</p> <p>This version contains many bugfixes as well as improvements and enhancements. Most additions were pulled in within <a href="https://hacktoberfest.digitalocean.com/">Hacktoberfest</a>, the month-long celebration of open source software. Although this years Hacktoberfest is over, we encourage every wradlib user to join the party and envision the Hacktoberfest&#8217;s 3 main&nbsp;mottos:</p> <ul> <li><strong><em>Everyone is&nbsp;welcome!</em></strong></li> <li><strong><em>Quantity is fun, Quality is&nbsp;key</em></strong></li> <li><strong><em>Short term action, long term&nbsp;impact</em></strong></li> </ul> <p>wradlib is building upon your support as users, feature requesters, bug reporters, collaborators and contributors. Thank you all, you&#8217;re more than&nbsp;welcome.</p> <p>Now, these are the most important&nbsp;changes:</p> <ul> <li> <p><strong>New <code>classify</code>-module</strong> Contains Hydrometeorclassification (<span class="caps">HMC</span>) using 2D membershipfunctions. For incorporation of temperature data to <span class="caps">HMC</span> <code>get_radiosonde</code> function was added to <code>io.misc</code>. An example notebook covering the <span class="caps">HMC</span> workflow was added <a href="https://docs.wradlib.org/en/1.2.0/notebooks/classify/wradlib_2d_hmc.html">to the documentation</a> (wradlib-notebooks). Other classification functions (clutter etc.) will be moved from <code>clutter</code>-module to <code>classify</code> in the next major version&nbsp;2.0.</p> </li> <li> <p><strong>Speed-up interpolation functions</strong> By using special keyword argument <code>balanced_tree = False</code> for SciPy&#8217;s <code>cKDTree</code> implementation the ipol-functions could be accelerated quite substantially (factor&nbsp;100).</p> </li> <li> <p><strong>Introduced new header tokens for <span class="caps">RADOLAN</span> products</strong> German weather service (<span class="caps">DWD</span>) introduced new products using new header tokens (<code>VR</code>, <code>U</code>). The reader functions were enabled to work with these new&nbsp;products.</p> </li> <li> <p><strong>Revised documentation structure and <span class="caps">CI</span> workflows</strong> The documentation has been revised in terms of conformance and consistency, links were updated, typos fixed and <span class="caps">CI</span> workflow&nbsp;improved.</p> </li> </ul> <p>For a complete list of changes refer to the <a href="https://github.com/wradlib/wradlib/commits/master">wradlib repository</a>.</p>Release 1.0.02018-04-01T07:00:00+02:002018-04-01T07:00:00+02:00wradlibtag:wradlib.org,2018-04-01:/2018/04/wradlib_release_1_0_0/<p>We have now released version 1.0.0 of&nbsp;wradlib. </p> <p>As some of you might be aware, version 1.x is generally considered as a major milestone, indicating that the software has all major features, and is considered reliable enough for general&nbsp;release.</p> <p>The first commit to wradlib is now …</p><p>We have now released version 1.0.0 of&nbsp;wradlib. </p> <p>As some of you might be aware, version 1.x is generally considered as a major milestone, indicating that the software has all major features, and is considered reliable enough for general&nbsp;release.</p> <p>The first commit to wradlib is now almost seven years ago. During these years, a lot of changes have been introduced in terms of algorithms, but also in terms of documentation and maintenance workflows. Yet, the <span class="caps">API</span> has become more and more stable, so we decided that wradlib is now mature enough for switching to a 1.x development&nbsp;line.</p> <p>At the same time, we wanted to use that opportunity to address a couple of issues that we considered important from a developer&#8217;s perspective. Addressing those issues will most likely break existing code and workflows. Yet, <em>this</em> is the time to do it, and doing it is vital to guarantee sustainable, efficient and reliable code development in the future. We cordially invite you to come along with us, and make use of version 1.0.0, even if it means that you might have to refactor your code. If you want to benefit from future improvements, this is the way to go! Limited resources will not allow us to further support the 0.x development line - from today on, it&#8217;ll be&nbsp;legacy.</p> <p>So, these are the most important&nbsp;changes:</p> <h1>Removing redundant and outdated&nbsp;code</h1> <p>A lot of functions had been accumulating over time which remained immature, redundant, or scarcely used. Those functions and (partly) modules have been entirely removed. If you <strong>really</strong> miss one of them, <a href="https://github.com/wradlib/wradlib/issues">raise an issue</a>. </p> <h1>Conform with <span class="caps">PEP</span>&nbsp;conventions</h1> <p>Lots of function, class and variable names have been renamed in order to conform with <a href="https://www.python.org/dev/peps/pep-0008/#naming-conventions"><span class="caps">PEP</span> conventions</a>. It might hurt, first, but we are confident that refactoring will be&nbsp;quick.</p> <h1>Revise&nbsp;georeferencing</h1> <p>Georeferencing has become more precise and transparent, making more use of gdal&#8217;s potential. You will most likely not feel the difference - but we like&nbsp;it!</p> <h1>Revise repository structure and <span class="caps">CI</span>&nbsp;workflows</h1> <p>In order to make developing and releasing more efficient, we fundamentally revised the repository structure: - the actual wradlib code remains under <a href="http://github.com/wradlib/wradlib">http://github.com/wradlib/wradlib</a> - the notebooks have been moved to <a href="https://github.com/wradlib/wradlib-notebooks">https://github.com/wradlib/wradlib-notebooks</a></p> <h1>Documentation&nbsp;pages</h1> <p>The doc pages will mostly look the same, but they are now available under <a href="http://docs.wradlib.org">http://docs.wradlib.org</a>.</p> <h1>For all&nbsp;developers</h1> <p>The pre-1.0 repository state is kept under <a href="https://github.com/wradlib/wradlib-old">https://github.com/wradlib/wradlib-old</a> (not recommended). If you want to keep up with the latest developments, just stick with https://github.com/wradlib/wradlib. There&#8217;s a small catch, though: if you want to base your development on the new wradlib/master, you need to merge it with brute force. On the local version of your current fork, you need&nbsp;to</p> <div class="highlight"><pre><span></span>$ git remote add upstream https://github.com/wradlib/wradlib.git $ git checkout master $ git fetch upstream $ git reset --hard upstream/master $ git push origin master --force </pre></div>Release 0.11.02017-11-15T16:00:00+01:002017-11-15T16:00:00+01:00wradlibtag:wradlib.org,2017-11-15:/2017/11/wradlib_release_0_11_0/<p>We are happy to announce the release of wradlib&nbsp;0.11.0.</p> <p>It introduces our first shot at reading <span class="caps">IRIS</span> (Sigmet) data - a feature that has been requested by quite a number users. Learn more about io.read_iris, and see it at work <a href="http://docs.wradlib.org/en/latest/notebooks/fileio/wradlib_radar_formats.html#Vaisala-Sigmet-IRIS">here</a>. We are looking forward to your …</p><p>We are happy to announce the release of wradlib&nbsp;0.11.0.</p> <p>It introduces our first shot at reading <span class="caps">IRIS</span> (Sigmet) data - a feature that has been requested by quite a number users. Learn more about io.read_iris, and see it at work <a href="http://docs.wradlib.org/en/latest/notebooks/fileio/wradlib_radar_formats.html#Vaisala-Sigmet-IRIS">here</a>. We are looking forward to your&nbsp;feedback!</p> <p>In addition, we redesigned the <code>io</code> and <code>georef</code> modules. As a user, you will hopefully not notice. As a developer, you will hopefully welcome a higher level of&nbsp;(sub-)modularization.</p> <p>For more details on the new release, please visit our <a href="http://docs.wradlib.org/en/latest/release_notes.html">release notes</a>.</p>