wradlib Documentation - Bitbucket
wradlib Documentation - Bitbucket
wradlib Documentation - Bitbucket
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
<strong>wradlib</strong> <strong>Documentation</strong>, Release 0.1.1<br />
2.1.1 Reading the data<br />
The binary encoding of many radar products is a major obstacle for many potential radar users. Often, decoder software<br />
is not easily available. <strong>wradlib</strong> support a couple of formats such as the OPERA BUFR and hdf5 implementations,<br />
NetCDF, and some formats used by the Germany Weather Service. We seek to continuously enhance the range of<br />
supported formats.<br />
The basic data type used in <strong>wradlib</strong> is a multi-dimensional array, the numpy.ndarray. Such an array might e.g. represent<br />
a polar or Cartesian grid, or a series of rain gage observations. Metadata are normally managed as Python dictionaries.<br />
In order to read the content of a data file into a numpy array, you would normally use the wradib.io module. In the<br />
following example, a local PPI from the German Weather Service, a DX file, is read:<br />
>>> data, metadata = <strong>wradlib</strong>.io.readDX("DX_sample_file")<br />
>>> <strong>wradlib</strong>.vis.polar_plot(data) # simple diagnostic plot<br />
The metadata object can be inspected via keywords. The data object contains the actual data, in this case a polar<br />
grid with 360 azimuth angles and 128 range bins.<br />
See Also:<br />
Get more info in the section Supported radar data formats and in the library reference section Raw Data I/O.<br />
2.1.2 Clutter removal<br />
Clutter are non-precipitation echos. They are caused by the radar beam hitting objects on the earth’s surface (e.g.<br />
mountain or hill tops, houses, wind turbines) or in the air (e.g. airplanes, birds). These objects can potentially cause<br />
high reflectivities due large scattering cross sections. Static clutter, if not efficiently removed by Doppler filters, can<br />
cause permanent echos which could introduce severe bias in quantitative applications. Thus, an efficient identification<br />
and removal of clutter is mandatory e.g. for hydrological studies. Clutter removal can be based on static maps or<br />
dynamic filters. Normally, static clutter becomes visible more clearly in rainfall accumulation maps over periods of<br />
weeks or months. We recommend such accumulations to create static clutter maps which can in turn be used to remove<br />
the static clutter from an image and fill the resulting gaps by interpolation. In the following example, the clutter filter<br />
published by Gabella and Notarpietro ([Gabella2002]) is applied to the single radar sweep of the above example.<br />
>>> clutter = <strong>wradlib</strong>.clutter.filter_gabella(data, tr1=12, n_p=6, tr2=1.1)<br />
>>> <strong>wradlib</strong>.vis.polar_plot(clutter,title=’Clutter Map’,colormap=pl.cm.gray)<br />
The resulting Boolean array clutter indicates the position of clutter. It can be used to interpolate the values at those<br />
positons from non-clutter values, as shown in the following line:<br />
>>> data_no_clutter = <strong>wradlib</strong>.ipol.interpolate_polar(data, clutter)<br />
It is generally recommended to remove the clutter before e.g. gridding the data because this might smear the clutter<br />
signal over multiple grid cells, and result into a decrease in identifiability.<br />
See Also:<br />
Get more info in the section Clutter correction and in the library reference section Clutter Identification.<br />
2.1.3 Attenuation correction<br />
Attenuation by wet radome and by heavy rainfall can cause serious underestimation of rainfall for C-Band and X-<br />
Band devices. For such radar devices, situations with heavy rainfall require a correction of attenuation effects. The<br />
general approach with single-polarized radars is to use a recursive gate-by-gate approach. See Kraemer and Verworn<br />
([Kraemer2008]) for an introduction to this concept. Basically, the specific attenuation k of the first range gate is<br />
computed via a so-called k-Z relationship. Based on k, the reflectivity of the second range gate is corrected and then<br />
used to compute the specific attenuation for the second range gate (and so on). The concept was first introduced by<br />
8 Chapter 2. Tutorials