Home » Posts tagged 'Radar'
Tag Archives: Radar
Experimental Determination of a Geometric Form Factor in a Lidar Equation
In this example we experimentally determine a geometric form factor for an in-homogeneo atmosphere by using the technique described in the article [1] Sang Whoe Dho, Young Je Park, and Hong Jin Kong,”Experimental determination of a geometric form factor in a lidar equation for an inhomogeneous atmosphere. Link to the article http://lsrl.kaist.ac.kr/homepage/Publications/Papers_Files/0043.pdf
clear all;close all; clc;
% Load Lidar observation data load LidarD.mat % Load Data R_site = 0.418; % [km] dR = 0.03; % [km] Altitude step n_pow = 141; pow = 0; Rmin = 2.3; Rmax = 5.9; R = R_site:dR:15; % Alt [km] eps = 0.01; % Error Gr_alt = 0; % Overlap Altitude [km] figN = 1; % Figure Count n = 6; % Polynomial degree indm = round((Rmin - R_site)/dR + 1); indx = round((Rmax - R_site)/dR + 1); Pow_vec = {raw_mat1 raw_mat2 raw_mat3 raw_mat4}; clear raw_mat1 raw_mat2 raw_mat3 raw_mat4 labels = {'Parallel - Analog';'Parallel - Digital';... 'Perpendicular - Analog';'Perpendicular - Digital'}; for f_ind = 1:1
raw_mat = Pow_vec{1,f_ind}; %Calculating average power profile pow = 0; for i=1:n_pow pow = pow + raw_mat(1:indx,i); end pow = pow'/n_pow; % Average power profile plog = log(pow.*R(1:indx).^2); % Average log power profile %plog = log(R(1:indx).^2); % plog = log(R(1:indx).^2) figure(figN); plot(pow,R(1:indx),'.'); hold on; grid on; ylabel('Altitude [km] '); xlabel('Power'); title(['Average Power Profile(N = 141)' labels(f_ind,1)]); hold off; figN = figN + 1; % % Average log power profile % figure(figN); % plot(plog,R(1:indx),'.g'); % hold on; grid on; % ylabel('Altitude [km] '); % xlabel('log(P*R^2)'); % title(['Average Log Power Profile(N = 141) log(P*R^2)' labels(f_ind,1)]); % hold off; % figN = figN + 1;
Polynomial fit to the power profile
A = polyfit(R(indm:indx),pow(indm:indx),n); Pint = 0; for i =1:n+1 Pint = Pint + A(i)*R(1:indx).^(n+1-i); end figure(figN);hold on; grid on; plot(pow(indm:indx),R(indm:indx),'*b'); plot(Pint,R(1:indx),'.r'); ylabel('Altitude [km] '); xlabel('Power'); title(['Polynomial fit to average power profile' labels(f_ind,1)]); hold off; legend('Actual', 'Fit') figN = figN + 1;
Geometric factor derived from average power profile
S = log(R(1:indx).^2.*pow); Sint = log(R(1:indx).^2.*Pint); GR_int = exp(S - Sint); %Geometric factor,Overlap factor figure(figN);hold on; grid on; plot(R(1:indx),GR_int,'.r'); xlabel('Altitude [km] '); ylabel('Geometric factor G(R)'); title(['Geometric factor derived from average power profile'... labels(f_ind,1)]); grid on; hold off; figN = figN + 1;
Calculating geometric form factor for each power profile
for j = 1:n_pow pow = raw_mat(1:indx,j); pow = pow'; A = polyfit(R(indm:indx),pow(indm:indx),n); Pint = 0; for i = 1:n+1 Pint = Pint + A(i)*R(1:indx).^(n+1-i); end S = log(R(1:indx).^2.*pow); Sint = log(R(1:indx).^2.*Pint); GR_int = exp(S - Sint); %Geometric factor for k = 1:indx if (abs(GR_int(k) - 1.0) < eps ) Gr_alt(j) = R(k); break; end end end figure(figN); hist(Gr_alt,20); xlabel('Altitude [km]'); ylabel('Number of Power profiles'); title(['G(R) altitude variation for various power profiles',... labels(f_ind,1)]); figN = figN + 1; % %% Mean altitude overlapping occurs, Sea Level % mean_Gr_alt = mean(Gr_alt); % std_Gr_alt = std(Gr_alt); % display(labels(f_ind,1)); % fprintf('Overlap Alt = %4.2f +- %4.2f [km] \n\n',mean_Gr_alt,std_Gr_alt);
end
Mesosphere-Stratosphere-Troposphere(MST) Radar Data Analysis
In this example we analyse data from MST (mesosphere-stratosphere-troposphere) radar observations. MST radars used to do observation of the dynamics of the lower and middle atmosphere to study winds, waves, turbulence and instabilities generate irregularities in the atmosphere. The reflected radar signals from the random irregularities are collected by the receiver antenna. The return signal strength is highly depending on the refractive index which is a function of atmospheric parameters such as humidity, temperature, and pressure and electron density. Hence those parameters will highly affect the signal to noise ratio (SNR). Input data file structure {UT, Altitude,Signal amplitude (linear),Signal-to-noise ratio (SNR), dB, Zonal wind, m/s, Meridional wind, m/s}
clear all; clc; close all; % Data files name ID fl = {'150 m height resolutions'; '1200 m height resolutions'; 'Barker Coding'; 'Complementary Coding'; 'Uncoded Data'; }; % Files for three different observation days fid = { 'TXT_20061211_test1.fca','TXT_20071010_test1.fca',... 'TXT_20081014_test1.fca'; % 150 m height resolutions 'TXT_20061211_test2.fca','TXT_20071010_test2.fca',... 'TXT_20081014_test2.fca'; % 1200 m height resolutions 'TXT_20061211_test3.fca','TXT_20071010_test3.fca',... 'TXT_20081014_test3.fca'; % Barker coding 'TXT_20061211_test4.fca','TXT_20071010_test4.fca',... 'TXT_20081014_test4.fca'; % Complementary coding 'TXT_20061211_test5.fca','TXT_20071010_test5.fca',... 'TXT_20081014_test5.fca'; % Uncoded data }; dates = ['2006 Dec 11'; '2007 Oct 10'; '2008 Dec 14' ];
SNR value as a function of universal time and altitude for three different observation days
fs = size(fid,1); fd = size(fid,2); for jd = 1:fd for id = 1:fs clear SNR; fname = fid{id,jd}; data = load(fname); time = unique(data(:,1)); alt = unique(data(:,2)); size_t = size(time,1); size_a = size(alt,1); % Signal-to-noise ratio (SNR), dB for i = 1:size_a for j = 1:size_t SNR(i,j)= data(i+((j-1)*size_a),4); end end % Plot if(id > 2 ) FigHandle = figure(2); hold on; ii = id - 2; subplot(3,3,ii+(jd-1)*3); colormap(jet); pcolor(time,alt,SNR); shading flat; caxis([-25,30]); if(id == 5) colorbar; end if(id == 3) ylabel('Altitude [km]'); end if((id == 4)) xlabel(['UT/Date: ',dates(jd,:) ]); end if((jd == 1)&&(id == 4) ) title(['Signal-to-Noise Ratio(SNR) [dB]', fl(id)]); else if(jd == 1) title(fl(id)); end end set(FigHandle, 'Position', [100, 0, 800, 800]); else FigHandle = figure(1); hold on; subplot(3,2,id+(jd-1)*2); colormap(jet); pcolor(time,alt,SNR); shading flat; caxis([-25,30]); if(id == 2) colorbar; end if(id == 1) ylabel('Altitude [km]'); end xlabel(['UT/Date: ',dates(jd,:) ]); if((jd == 1)) title(['Signal-to-Noise Ratio(SNR) [dB]', fl(id)]); end set(FigHandle, 'Position', [100, 0, 600, 800]); end end end![]()
Magnitude and direction of horizontal winds
The figures below provide the horizontal wind variation over the altitude and universal time for three different days. The direction of the wind is mostly from west to east. The results are expected as the wind in this layer of atmosphere moves west to east because of the Coriolis acceleration due to force caused by the rotation of the earth.
clear all; clc; close all; dates = ['2006 Dec 11'; '2007 Oct 10'; '2008 Dec 14' ]; % Data files name ID fid = {'TXT_20061211_test4.fca','TXT_20071010_test4.fca',... 'TXT_20081014_test4.fca' }; % Complementary coding % Radar with Complementary coding for id = 1:3 data = load(fid{id}); time = unique(data(:,1)); alt = unique(data(:,2)); size_t = size(time,1); size_a = size(alt,1); % Signal-to-noise ratio (SNR), dB for i = 1:size_a for j = 1:size_t zWind(i,j)= data(i+((j-1)*size_a),5); % Zonal Wind, East mWind(i,j)= data(i+((j-1)*size_a),6); % Meridional Wind, North end end hWind = sqrt(zWind.^2 + zWind.^2); % Horizontal Wind [m/s] %dWind= atan2(zWind,mWind)*180/pi + 180; % Wind Direction angle, Zero in North direction a_max = 60; a_min = 30; FigHandle = figure(2 + id); set(FigHandle, 'Position', [100, 0, 800, 400]); subplot(2,2,[1 3]); colormap(cool); pcolor(time,alt(1:a_max),hWind(1:a_max,:)); shading flat; colorbar; xlabel(['UT/Date:',dates(id,:)]); ylabel('Altitude [km]'); title('Horizontal wind speed [m/s], Complementary coded signal'); subplot(2,2,[2 4]); hold on; whitebg([0.0 .0 .2]); quiver(time,alt(1:a_max),zWind(1:a_max,:),mWind(1:a_max,:),'r'); %contour(time,alt(1:a_max),hWind(1:a_max,:)); xlabel(['UT/Date:',dates(id,:)]); title('Horizontal wind direction(top - North,right - East)'); axis([min(time),max(time),min(alt(1:a_max)),max(alt(1:a_max))]); hold off; end