Personal tools

Difference between revisions of "ASAR Shape, texture and orientation descriptors for atmospheric structure detection"

From hpcwiki

Jump to: navigation, search
(Approximation to the curl of the vector field)
 
Line 1: Line 1:
{{#allow-groups:hpclab|uned|utadeo|unacional}}
+
 
 
'''TODO'''
 
'''TODO'''
  

Latest revision as of 11:35, 8 March 2019

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

[edit] 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..)

[edit] 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).

[edit] 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}

[edit] 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);

[edit] 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);