tag:blogger.com,1999:blog-13006522226493085982017-06-24T20:11:22.399-04:00Kirk's Research BlogHere you'll find all of my latest ramblings on research interests and activities, personal endeavors, and overall enthusiasm for science.Kirk Northnoreply@blogger.comBlogger3125tag:blogger.com,1999:blog-1300652222649308598.post-66625033268888765692013-12-05T11:39:00.000-05:002016-07-05T10:40:08.577-04:00Cost Functional<h3>Introduction</h3>The proper specification of a cost functional, which is typically defined as a weighted sum of lack of fits to observations and other physical constraints, is essential for obtaining a satisfactory solution of an objective analysis problem (Legler and Navon 1991).<br /><br />The data that I am typically dealing with in my research is derived from scanning Doppler radars, e.g., measurements from X-band (95-GHz) and C-band (5.6-GHz) radars. These radars scan the atmosphere in the so-called <i>plan position indicator</i> (PPI) mode, which is best described by the spherical coordinate system as each gate location can be represented by the coordinate-triplet \((r, \phi, \theta)\). This data is usually then interpolated onto a more natural and intuitive 3-D Cartesian analysis domain. From here, numerous geophysical parameters can be estimated, e.g., the 3-D wind field \((\mathbf{u}, \mathbf{v}, \mathbf{w})\). And this is where a cost functional is often needed.<br /><br /><h3>The Cost Functional</h3>A cost functional \(J\) is typically defined as the sum of independent constraints, one of these relying on observations from one or more instruments, and more often than not some sort of constraint on the <i>smoothness</i> of the analysis. All of these individual constraints represent so-called lack of fits between observations or a priori assumptions. We arrive at our best estimate of the <i>truth</i> when the global minimum of \(J\) has been found. So for example, if we're attempting to estimate the 3-D wind field, we're looking for the simultaneous satisfaction of<br /><div><br />$$<br />\frac{\partial J}{\partial \mathbf{u}} = 0, \; \frac{\partial J}{\partial \mathbf{v}} = 0, \; \frac{\partial J}{\partial \mathbf{w}} = 0 .<br />$$</div><div><br /></div><div>As a result, we are expected to compute the gradient of the cost functional at one point or another, which, for some constraints is easily defined analytically, but for others (e.g., smoothness) not so much. So let's focus on the smoothness constraint.<br /><br /><h4>The Smoothness Constraint</h4></div><div>The smoothness constraint can be defined multiple different ways, e.g., using first-order or second-order partial derivatives. For the sake of this post, let's focus on the smoothness constraint defined in Potvin et al. (2012), in particular only the first term defined in equation (5). This term looks something like the following </div><br />$$<br />\begin{equation}<br />J_s = \frac{1}{2} \sum_{i,j,k} \lambda_s<br /> \left[\left(\frac{\Delta^2 u}{\Delta x^2}\right)^2 +<br /> \left(\frac{\Delta^2 u}{\Delta y^2}\right)^2 +<br /> \left(\frac{\Delta^2 v}{\Delta x^2}\right)^2 + <br /> \left(\frac{\Delta^2 v}{\Delta y^2}\right)^2 <br /> \right]<br />\label{Eq:1} <br />\end{equation}<br />$$<br /><br />The summation is over all the Cartesian grid points in the analysis domain, and \(\lambda_s\) represents the <i>weight</i> of this term on the entire analysis.<br /><br />For the sake of simplicity we'll assume \(u\) is only a function of \(x\), i.e. \(u_i = u(x_i)\). Therefore the second order partial derivative can be approximated by a <a href="http://en.wikipedia.org/wiki/Finite_difference" target="_blank">finite difference</a>,<br /><br />$$<br />\begin{equation} <br />\label{Eq:2} <br />\left( \frac{\partial^2 u}{\partial x^2} \right)_i^2 = \left( \frac{u_{i+1} - 2 u_i + u_{i-1}}{\Delta x^2} + \mathcal{O}( \Delta x^2) \right)^2<br />\end{equation}<br />$$<br /><br />Equation \(\ref{Eq:2}\) becomes an approximation when the \(\mathcal{O}(\Delta x^2)\) term is dropped. This is referred to as a centered difference scheme with second-order accuracy. Note how a scheme like this can only be used for <i>interior</i> grid points since it requires information from left and right grid points. Therefore forward or backward difference schemes must be employed at the grid boundaries.<br /><br />Now, since \(J_s\) is the summation of all these partial derivatives over all the Cartesian grid points, it is actually a function of several terms involving \(u_i\). To illustrate this, consider the following,<br /><br />\( \left( \frac{\partial^2 u}{\partial x^2} \right)_{i-2}^2 \approx \left( \frac{u_{i-1} - 2 u_{i-2} + u_{i-3}}{\Delta x^2} \right)^2 \)<br /><br />\( \left( \frac{\partial^2 u}{\partial x^2} \right)_{i-1}^2 \approx \left( \frac{u_{i} - 2 u_{i-1} + u_{i-2}}{\Delta x^2} \right)^2 \)<br /><br />\( \left( \frac{\partial^2 u}{\partial x^2} \right)_{i}^2 \approx \left( \frac{u_{i+1} - 2 u_{i} + u_{i-1}}{\Delta x^2} \right)^2 \)<br /><br />\( \left( \frac{\partial^2 u}{\partial x^2} \right)_{i+1}^2 \approx \left( \frac{u_{i+2} - 2 u_{i+1} + u_{i}}{\Delta x^2} \right)^2 \)<br /><br />\( \left( \frac{\partial^2 u}{\partial x^2} \right)_{i+2}^2 \approx \left( \frac{u_{i+3} - 2 u_{i+2} + u_{i+1}}{\Delta x^2} \right)^2 \)<br /><br />Notice how \(u_i\) manifests itself in three of the above equations. However, from the finite difference scheme we chose to approximate the partial derivative, we see that the <i>influence</i> of the \(u_i\) term vanishes when we move past the \(i - 2\) and \(i + 2\) derivatives. Therefore, in general for a second-order-accurate centered difference scheme, the partial derivative of \(J_s\) with respect to \(u\) at the \(i\)-th grid point is,<br /><br />$$<br />\begin{equation}<br />\label{Eq:3}<br />\left( \frac{\partial J_s}{\partial u} \right)_i^2 = \frac{\lambda_s}{\Delta x^2} \left[ \left(\frac{\partial^2 u}{\partial x^2}\right)_{i-1} - 2 \left(\frac{\partial^2 u}{\partial x^2}\right)_i + \left(\frac{\partial^2 u}{\partial x^2}\right)_{i+1} \right]<br />\end{equation}<br />$$<br /><br />As stated before, equation \(\ref{Eq:3}\) was derived using the second-order-accurate centered difference scheme we chose at the beginning. The <a href="http://en.wikipedia.org/wiki/Chain_rule" target="_blank">chain rule</a> has been used here to calculate the derivatives. Fundamentally, equation \(\ref{Eq:3}\) is highly dependent on the finite difference scheme we choose to approximate the partial derivatives. As a result we need to keep track of which finite difference schemes are being utilized. For example, for grid points at the boundaries of the grid, say at \(i = 1\), we now have to use a forward difference scheme because we only have information of \(u\) in the forward direction. Notice that now we would have,<br /><br />\( \left( \frac{\partial^2 u}{\partial x^2} \right)_{i=1}^2 \approx \left( \frac{u_{1} - 2 u_{2} + u_{3}}{\Delta x^2} \right)^2 \)<br /><br />\( \left( \frac{\partial^2 u}{\partial x^2} \right)_{i=2}^2 \approx \left( \frac{u_{3} - 2 u_{2} + u_{1}}{\Delta x^2} \right)^2 \)<br /><br />\( \left( \frac{\partial^2 u}{\partial x^2} \right)_{i=3}^2 \approx \left( \frac{u_{4} - 2 u_{3} + u_{2}}{\Delta x^2} \right)^2 \)<br /><br />where a forward difference scheme of \(\mathcal{O}(\Delta x)\) is used at \(i = 1\) and a centered difference scheme of \(\mathcal{O}(\Delta x^2)\) has been used for all subsequent derivatives. Notice how \(u_1\) manifests itself in two of the above equations, where its influence vanishes once we get past the second grid point \((i \gt 2)\). So now we would have a slightly different equation than that of equation \(\ref{Eq:3}\) to describe the derivative of \(J_s\) with respect to \(u\) at the boundary \(i = 1\),<br /><br />$$<br />\begin{equation}<br />\label{Eq:4}<br />\left( \frac{\partial J_s}{\partial u} \right)_{i=1}^2 = \frac{\lambda_s}{\Delta x^2} \left[ \left(\frac{\partial^2 u}{\partial x^2}\right)_{i=1} + \left(\frac{\partial^2 u}{\partial x^2}\right)_{i=2} \right]<br />\end{equation}<br />$$<br /><br /><br /><h3>Conclusions</h3><div><br /></div>Once again, please keep in mind that equations \(\ref{Eq:3}\) and \(\ref{Eq:4}\) have been produced using the particular finite difference schemes that we chose to approximate the partial derivatives. The take home message is that if a constraint cannot be expressed analytically, like the smoothness constraint which has to be approximated by finite differences, then in turn the derivative of that constraint is highly dependent on those finite difference schemes.<br /><br /><h4>References</h4><div><br /></div>Legler, D. M. and I. M. Navon, 1991: VARIATM - A Fortran program for objective analysis of pseudostress wind fields using large-scale conjugate-gradient minimization. <i>Computers</i> <i>& Geosciences</i>, <b>17</b>, pp. 1-21.Kirk Northhttps://plus.google.com/107889836305757931797noreply@blogger.com0tag:blogger.com,1999:blog-1300652222649308598.post-53673876601833246642013-08-02T18:12:00.001-04:002014-11-05T16:10:25.340-05:00Steiner Algorithm for Echo Classification<h3>Introduction</h3><div>I have been using the Steiner et. al (1995) algorithm for echo classification for some time now. It has its drawbacks, like any algorithm. For example, there are many <i>free</i> parameters that are region dependent, like the <i>automatic convection</i> parameter and the <i>peakedness </i>parameter (\(\Delta Z\)). These parameters, as one might suspect, would have entirely different values for convection near Darwin, Australia than convection near Oklahoma City, Oklahoma.<br /><br />This algorithm was designed and tuned for radar data collected in Darwin, Australia during February 1988. Therefore, if I want to apply this algorithm to data collected at <a href="http://www.arm.gov/" target="_blank">ARM</a>'s Southern Great Plains (SGP) site near Lamont, Oklahoma, I need to first check the results using the <i>default</i> parameters suggested by Steiner et al. (1995), and then tune these parameters accordingly if need be.<br /><br />It should be noted that this algorithm is applied to <i>gridded</i> reflectivity data at a height chosen to be below the melting layer. In the case of Steiner et al. (1995), they used grids 240 x 240 km in \(x\) and \(y\), with 2 km resolution in each dimension. Here I will be using 100 x 100 km grids in \(x\) and \(y\), with 500 m resolution in each dimension.<br /><br /><h3>Methodology</h3><div>The algorithm is based on <i>three</i> criteria: <i>intensity</i>, <i>peakedness</i>, and <i>surrounding area</i>. The intensity criterion is a simple threshold, where any grid point with a reflectivity of at least 40 dBZ is automatically convective. The peakedness criterion (\(\Delta Z\)) checks the difference between the grid point and the average reflectivity taken over the surrounding background (\(Z_{bg}\)). If this difference is greater than a certain value, then the grid point is labelled convective. Finally, any grid points within an intensity-dependent radius (\(R_{sa}\)) from those already labelled as convective by either the intensity or the peakedness criteria are also labelled convective.</div><br />The default parameters defined in Steiner et al. (1995) are as follows:<br /><br /><ol><li>Automatically convective: 40 dBZ.</li><li>Background radius: 11 km.</li><li> \(\Delta Z\) = \(\begin{cases} 10, & \mbox{if } Z_{bg} \lt 0 \newline 10 - \frac{Z_{bg}^2}{180}, & \mbox{if } 0 \le Z_{bg} \lt 42.43 \newline 0, & \mbox{if } Z_{bg} \ge 42.43 \end{cases}\)</li><li>There are <i>three</i> different relations for \(R_{sa}\), the <b>small</b>, <b>medium</b>, and <b>large</b> relations, but each has 1 km and 5 km as the smallest and largest radii, respectively.</li></ol><br /><h3>Results</h3><div>So let's first check how the algorithm, with its default parameters, classifies a squall line event during May 20th, 2011. Near 1033 UTC the squall line, with an axis slightly offset from a north-south direction, was located approximately in the middle of the analysis domain, as it moved through in a west-east direction. There was a leading anvil region to the east and a trailing stratiform region to the west. The results are shown in Fig. 1.</div><div><br /></div><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody><tr><td style="text-align: center;"><a href="http://2.bp.blogspot.com/-H5afOuKFjqE/UfwZhBTB9qI/AAAAAAAAAJw/LoTXLgozQoQ/s1600/echo_class_before.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="http://2.bp.blogspot.com/-H5afOuKFjqE/UfwZhBTB9qI/AAAAAAAAAJw/LoTXLgozQoQ/s640/echo_class_before.png" height="480" width="640" /></a></td></tr><tr><td class="tr-caption" style="text-align: center;">Fig. 1. C-SAPR reflectivity and corresponding echo classification at 1033 UTC on May 20th, 2011. The working level (or separation altitude) was a constant 1.5 km. The <i>medium</i> \(R_{sa}\) relation was used for this classification.</td></tr></tbody></table><div><br /></div><div class="separator" style="clear: both; text-align: center;"></div><div class="separator" style="clear: both; text-align: center;"></div><div class="separator" style="clear: both; text-align: center;"></div><br /><div class="separator" style="clear: both; text-align: center;"></div><div class="separator" style="clear: both; text-align: center;"></div>The algorithm does a decent job at classifying the convective squall line feature, however it does miss its leading edge to the east. The trailing stratiform region to the west is another story though. The algorithm is severely affected by brightband contamination here, and a large swath of this region is labelled convective.<br /><br />One obvious reason for some of the poor classification in the trailing stratiform region is due to the intensity criterion, which was set to 40 dBZ. This value is too weak for convection observed in Oklahoma, which consistently produces reflectivities of 55+ dBZ. Therefore, my first change will be to up this value to <b>45 dBZ</b>. Another, albeit less obvious reason for the poor classification in the stratiform region is due to the peakedness criterion. Examining the peakedness relation, which varies depending on the intensity of the background reflectivity \(Z_{bg}\), I see that it does not require a <i>sharp</i> enough gradient between the grid point and \(Z_{bg}\), and as a result, the brightband contamination, which has a <i>high</i> intensity but at the same time is <i>spatially smooth</i>, gets labelled convective. Therefore, I will use a new relation for \(\Delta Z\):<br /><br />$$ \Delta Z = \begin{cases} 14, & \mbox{if } Z_{bg} \lt 0 \newline 14 - \frac{Z_{bg}^2}{180}, & \mbox{if } 0 \le Z_{bg} \lt 42.43 \newline 4, & \mbox{if } Z_{bg} \ge 42.43 \end{cases} $$<br /><br />Basically I have shifted the \(\Delta Z\) curve up by 4 dBZ, or, in other words, a sharper gradient between the grid point and the background reflectivity is required. The results of these <i>two</i> changes are shown in Fig. 2.<br /><br /><br /><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody><tr><td style="text-align: center;"><a href="http://2.bp.blogspot.com/-vLZ__nZ01gU/UfwqwSH5L6I/AAAAAAAAAKA/wsemoKaF0U8/s1600/echo_class_after1.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="http://2.bp.blogspot.com/-vLZ__nZ01gU/UfwqwSH5L6I/AAAAAAAAAKA/wsemoKaF0U8/s640/echo_class_after1.png" height="480" width="640" /></a></td></tr><tr><td class="tr-caption" style="text-align: center;">Fig. 2. Same as Fig. 1 but tuning the intensity criterion and the peakedness criterion.</td></tr></tbody></table><div class="separator" style="clear: both; text-align: center;"></div><div><br /></div><h4>References</h4></div><div><br /></div><div>Steiner, M., and R. A. Houze Jr., and S. E. Yuter, 1995: Climatological Characterization of Three-Dimensional Storm Structure from Operational Radar and Rain Gauge Data. <i>J. Appl. Meteor.</i>, <b>34</b>, 1978-2007</div>Kirk Northhttps://plus.google.com/107889836305757931797noreply@blogger.com0tag:blogger.com,1999:blog-1300652222649308598.post-55193378152669502472013-07-27T15:57:00.000-04:002014-11-05T16:12:16.552-05:00Biggerstaff Algorithm for Echo Classification<h3>Introduction</h3><div>I recently took a look at the Biggerstaff and Listemaa (2000) algorithm for echo classification, which is supposed to be an improved scheme from the Steiner et al. (1995) algorithm. To examine this algorithm, I use reflectivity observations from a scanning <a href="http://www.arm.gov/" target="_blank">ARM</a> C-band radar (C-SAPR), and apply the algorithm to this data. All data used in this post was recorded during the Midlatitude Continental Convective Clouds Experiment, or MC3E for short. Furthermore, I will be using <i>gridded</i> (or interpolated) C-SAPR data, on a Cartesian grid 100 x 100 x 17 km in \(x\), \(y\), and \(z\), with a resolution of 500 m for each dimension.</div><div><br /></div><h3>Methodology</h3><div>This modified algorithm focuses on two estimates: the magnitude of horizontal reflectivity gradient \(\left(\left|\left|\nabla_h Z_e\right|\right|\right)\) at the <i>working level</i>, and the vertical lapse rate of reflectivity \(\left(\nabla_z Z_e\right)\). The vertical lapse rate of reflectivity is defined as the <i>decrease</i> in reflectivity with increasing height in a <i>3 km layer</i> directly above the height of maximum reflectivity.</div><div><br /></div><div>These two estimates are put through a thresholding, as described below:<br /><br /></div><div><ul><li>\(\left|\left|\nabla_h Z_e\right|\right| \ge\) 3 dB km<sup>-1</sup> \(\rightarrow\) grid point possibly <i>convective</i></li><li>\(\left|\nabla_z Z_e\right| \le\) 3.5 dB km<sup>-1</sup> \(\rightarrow\) grid point possibly <i>convective</i></li></ul></div><div><br /></div><div>I say <i>possibly</i> in the above criteria because there are some other criteria involved in this algorithm (e.g. brightband fraction and a 2-D window filter). These other criteria are ignored in this post.</div><div><br /></div><div>Since the vertical lapse rate is computed for a 3 km layer above the height of maximum reflectivity, I used the following equation for each column,</div><div><br /></div><div>$$\nabla_z Z_e \approx \frac{Z_e|_{\text{max}} - Z_e|_{+3 \; \text{km}}}{3 \; \text{km}}$$.</div><div><br />Note with the above equation that we should expect a <b>positive</b><b style="font-style: italic;"> </b>vertical reflectivity lapse rate to be computed, without taking the absolute value.<br /><br />Finally, note that finite differences used in the gradient calculation were that of 1st and 2nd-order accurate centered, forward, and backward differences.<br /><br /></div><h3>Results</h3><div>To test this algorithm, I want to look at the results of both the magnitude of horizontal reflectivity gradient and the vertical lapse rate of reflectivity, and see if these estimated values reflect the expected values described in Biggerstaff and Listemaa (2000). In order to do this, I picked an observation time during the passage of a <a href="http://en.wikipedia.org/wiki/Squall_line" target="_blank">squall line</a> which had well-defined anvil and stratiform regions.<br /><div class="separator" style="clear: both; text-align: center;"></div><br /><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody><tr><td style="text-align: center;"><a href="http://1.bp.blogspot.com/-1BnddSXuX5M/UfQrFx3MFPI/AAAAAAAAAIk/0MSU6R69ZLY/s1600/csapr_ze.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="http://1.bp.blogspot.com/-1BnddSXuX5M/UfQrFx3MFPI/AAAAAAAAAIk/0MSU6R69ZLY/s640/csapr_ze.png" height="480" width="640" /></a></td></tr><tr><td class="tr-caption" style="text-align: center;">Fig. 1. C-SAPR reflectivity at the working level (1.5 km) during 1040 UTC on May 20th 2011. Reflectivity values below 0 dBZ were masked.</td></tr></tbody></table><br /><br /><div class="separator" style="clear: both; text-align: center;"></div>The cross section of reflectivity shown in Fig. 1 shows a north-south squall line located in the middle of the analysis domain, which was moving west-east. There is an anvil region ahead of the squall line, as well as a trailing stratiform region. Since Fig. 1. is a cross section at 1.5 km altitude, the anvil region is largely not seen.<br /><br />First I will show the results of the lapse rate calculation.<br /><br /><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody><tr><td style="text-align: center;"><a href="http://2.bp.blogspot.com/-c5jUQDeY-3o/UfQcT9tcZzI/AAAAAAAAAIE/05qEpnKvQ3g/s1600/ze_lapse.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="http://2.bp.blogspot.com/-c5jUQDeY-3o/UfQcT9tcZzI/AAAAAAAAAIE/05qEpnKvQ3g/s640/ze_lapse.png" height="480" width="640" /></a></td></tr><tr><td class="tr-caption" style="text-align: center;">Fig. 2. Vertical reflectivity lapse rate within the 3 km layer above the height of maximum reflectivity for the same time as shown in Fig. 1.</td></tr></tbody></table><br /><br />Notice that the upper limit of the color bar in Fig. 2 is 3.5 dB km<sup>-1</sup>. From the criteria shown above, we expect all areas shown in red to <i>possibly</i> be stratiform, and the rest <i>possibly</i> convective. The minimum and maximum values computed were 0.02 and 30.3 dB km<sup>-1</sup>, respectively. The missing data seen around 97.5 W and 36.8 N is due to the cone of silence of the C-SAPR. Also, since the lapse rate was computed for each column, the anvil region has filled in because there is data above the working level.<br /><br />Now let's look at the results of the gradient calculation.<br /><br /><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody><tr><td style="text-align: center;"><a href="http://2.bp.blogspot.com/-YZARXOZjECo/UfQfZPuRULI/AAAAAAAAAIU/rKvgWbdnwks/s1600/ze_grad.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="http://2.bp.blogspot.com/-YZARXOZjECo/UfQfZPuRULI/AAAAAAAAAIU/rKvgWbdnwks/s640/ze_grad.png" height="480" width="640" /></a></td></tr><tr><td class="tr-caption" style="text-align: center;">Fig. 3. Magnitude of horizontal reflectivity gradient at the working level for the same time as shown in Fig. 1.</td></tr></tbody></table><br />Here I have set the upper limit of the color bar to highlight areas of possible convection. Any areas shaded in red are <i>possibly</i> convection according to Biggerstaff and Listemaa (2000). The minimum and maximum values computed were 0.001 and 14.1 dB km<sup>-1</sup>, respectively. Since this calculation is at the working level, the anvil region is once again not available.<br /><br /><h3>Discussion</h3></div><div>A first look at the results shows that most areas will not be well classified using these two criteria alone. By any standard the current implementation of the lapse rate estimation does a very poor job at highlighting both convective and stratiform grid points. The gradient criterion does not appear to fair much better, and is severely affected by poor attenuation correction (the ray-like features in Fig. 3). The gradient criterion does do a good job at classifying the leading edge of the squall line as convective, since the precipitation mass in this region would likely be a direct result of convective updrafts.</div><div><br /></div><div>Further analysis and discussion with colleagues is in order here!</div><div><br /></div><h4>References</h4><div>Biggerstaff, M. I., and S. A. Listemaa, 2000: An Improved Scheme for Convective/Stratiform Echo Classification Using Radar Reflectivity. <i>J. Appl. Meteor.</i>, <b>39</b>, 2129-2150</div><div><br /></div><div>Steiner, M., and R. A. Houze Jr., and S. E. Yuter, 1995: Climatological Characterization of Three-Dimensional Storm Structure from Operational Radar and Rain Gauge Data. <i>J. Appl. Meteor.</i>, <b>34</b>, 1978-2007</div><div class="separator" style="clear: both; text-align: center;"></div>Kirk Northhttps://plus.google.com/107889836305757931797noreply@blogger.com0