24.12.2013 Views

wradlib Documentation - Bitbucket

wradlib Documentation - Bitbucket

wradlib Documentation - Bitbucket

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!