Personal tools

ASAR Shape, texture and orientation descriptors for atmospheric structure detection

From hpcwiki

Jump to: navigation, search

TODO

  • Complete descriptor list
  • Create a wiki entry for each possible descriptor
  • State each descriptor formally
  • Start tests over current WRF data
  • Look for real atmospheric data and test descriptors

Contents

Approximation to differential operators for the wind velocity field

In meteorological tasks (exploration, observation, analysis, segmentation of particular patterns, correlation of pattern occurrence, etc.), it is common to use a 2D projection of the 3D fields corresponding to physical variables describing a particular state of the atmosphere (it is important to remark that this 2D projection usually maps to a isobaric layer of the atmosphere rather than to a geometrical layer “parallel” to the sea-level surface of the Earth..)

Approximation to divergence of the vector field

Given \nabla=\left(\frac{\partial}{\partial x},\frac{\partial}{\partial y}\right) and \mathbf{v}=(u,v) (a vector field representing two dimensional projection of winds), the divergence of \mathbf{v} is defined as \nabla\cdot\mathbf{v}=\frac{\partial u}{\partial x}+\frac{\partial v}{\partial y}.

Since this is an interior product, divergence is a scalar field. A naïve numerical approximation to this expression can be achieved by using the basic centered finite difference approximation to each partial derivative in the equation. A simple discrete version of a two-dimensional \mathbf{v} is the matrix V=\left\{ (u,v)_{ij}\right\} _{M\times N} where i=1,2,\dots,M is the index pointing to each row and j=1,2,\dots,N the index pointing to each column of the matrix. Then

\left.\frac{\partial u}{\partial x}+\frac{\partial v}{\partial y}\right|_{\begin{array}{ccc} x & = & jh\\ y & = & ih \end{array}}\approx\frac{u_{i+1,j}-u_{i-1,j}}{2h}+\frac{v_{i,j+1}-v_{i,j-1}}{2h}

where h is the discretization step (here the same for both horizontal and vertical directions, i.e. h_{x}=h_{y}=h).

Approximation to the curl of the vector field

Physically, the curl of a vector field determines how much could the vectors within the dominion under study “rotate” around each particular position. A well known recipe to state the curl of a vector field in the 3D case --having \mathbf{v}=(u,v,w) -- uses the notation and computation of a special determinant as follows

\nabla\times\mathbf{v}=\left|\begin{matrix}\hat{x} & \hat{y} & \hat{z}\\ \frac{\partial}{\partial x} & \frac{\partial}{\partial y} & \frac{\partial}{\partial z}\\  u & v & w\end{matrix}\right|

which yields the expression

\nabla\times\mathbf{v}=\left(\frac{\partial w}{\partial y}-\frac{\partial v}{\partial z}\right)\hat{x}+\left(\frac{\partial u}{\partial z}-\frac{\partial w}{\partial x}\right)\hat{y}+\left(\frac{\partial v}{\partial x}-\frac{\partial u}{\partial y}\right)\hat{z}


The 2D case is easily build by taking into account only the third term, i.e. the rotation on the xy plane. Then \nabla\times\mathbf{v}=\frac{\partial v}{\partial x}-\frac{\partial u}{\partial y}

which, therefore, is always perpendicular to that plane. The simplest numerical approximation, analogously to the divergence case, is as follows:

\frac{\partial v}{\partial x}-\frac{\partial u}{\partial y}\approx\frac{v_{i+1,j}-v_{i-1,j}}{2h}+\frac{u_{i,j+1}-u_{i,j-1}}{2h}

Numerical computation of the partial derivatives

%% wind components in the 2D projection, U and V
Us = U(:,:,3);
Vs = V(:,:,3);

lat = -15:0.5:45;
lon = -100:0.5:-30;

%% Finite Difference approximation in the horizontal (x) direction 
dx = 1;
for i = 1:length(lon)
    for j = 2:length(lat)
        if j == length(lat)
            Ux(i,j) = Ux(i,j-1);
            Vx(i,j) = Vx(i,j-1);
        else
            Ux(i,j) = (Us(i,j+1)-Us(i,j-1))/(2*dx); 
            Vx(i,j) = (Vs(i,j+1)-Vs(i,j-1))/(2*dx); 
        end
        
    end
end
%% Finite Difference approximation in the vertical (y) direction 
dy = 1;
for i = 1:length(lat)
    for j = 2:length(lon)
        if j == length(lon)
            Uy(j,i) = Uy(j-1,i);
            Vy(j,i) = Vy(j-1,i);
        else
            Uy(j,i) = (Us(j+1,i)-Us(j-1,i))/(2*dy); 
            Vy(j,i) = (Vs(j+1,i)-Vs(j-1,i))/(2*dy); 
        end  
    end
end

Then, it is immediate the estimation of divergence and curl for the wind velocity field

% Divergence
divs = Ux + (Vy);

% Curl 
curlzs = (Vx) - (Uy);

Matlab equivalents

[X Y] =  meshgrid(lat,lon);

% Divergence
div1 = divergence(Us,Vs);
div = divergence(X,Y,Us,Vs);

% Curl
[curlz1,cav1] = curl(Us,Vs);
[curlz,cav] = curl(X,Y,Us,Vs);