metr 51: scientific computing ii lecture 10: lidar plotting techniques 2
DESCRIPTION
Metr 51: Scientific Computing II Lecture 10: Lidar Plotting Techniques 2. Allison Charland 10 April 2012. Reminder. One week of Matlab left! Matlab Final will be on April 19 th Then on to HTML and creating a personal webpage. Doppler Lidar Theory. Movement of aerosols by wind. - PowerPoint PPT PresentationTRANSCRIPT
Metr 51: Scientific Computing II
Lecture 10: Lidar Plotting Techniques 2
Allison Charland10 April 2012
• One week of Matlab left!• Matlab Final will be on April 19th
• Then on to HTML and creating a personal webpage
Reminder
Emitted infrared light
Infrared light reflected from aerosols
Movement of aerosols by wind
The shift in frequency of the return echo is related to the movement of aerosols. The faster the aerosols move, the larger the shift in frequency. From this, the wind speed relative to the light beam can be measured.
Doppler Lidar Theory
Doppler wind lidar
• Halo Photonics, Ltd. Stream Line 75 • 1.5 micron• Eye-safe• 75 mm aperture all-sky optical scanner • Min Range: 80 m• Max Range: 10km• 550 user defined range gates (24 m)• Temporal resolution: 0.1-30 s• Measurements:
• Backscatter Intensity • Doppler Radial Velocity
Lidar Scanning Techniques
• Multiple elevation and azimuth angles can be adjusted to create different types of scans.• DBS (Doppler Beam Swinging):
• Wind Profile
• Stare: Vertically pointing beam• RHI (Range Height Indicator):
• Fixed azimuth angle with varying elevation angles
• PPI (Plan Position Indicator):• Fixed elevation angle with varying
azimuth angles
95o
30o
70o
dlmread
• M = dlmread(filename, delimiter, R, C)• dlmread will read a file with any type of delimiter from any row or
column.• M = dlmread(filename, delimiter, range)
• It can also be used to specifically read a range of different rows and columns.
• The delimiter can be expressed with a character string that responds to the type of delimiter.
• Use '\t' to specify a tab delimiter• If you want to specify an R, C, or range input, but not a delimiter, set the
delimiter argument to the empty string, (two consecutive single quotes with no spaces in between, ''). For example,
• M = dlmread('myfile.dat', '', 5, 2)
0 500 1000 1500 2000 2500 30000
500
1000
1500
X (m)
Z (
m)
Doppler Radial Velocity (m/s)
-8
-6
-4
-2
0
2
4
6
8
dlmread
• M = dlmread(filename, delimiter, R, C)• Reads data whose upper left corner is at row R and column C in the file.
Values R and C are zero-based, so that R=0, C=0 specifies the first value in the file.
• M = dlmread(filename, delimiter, range)• Reads the range specified by range = [R1 C1 R2 C2] where (R1,C1) is the
upper left corner of the data to read and (R2,C2) is the lower right corner
RHI DataDate & Time(UTC)
dist = 0:129; % Zero to number of gates - 1dist = (dist + 0.5)*24; %Create distance arraydist=dist'; %TransposeNote: This distance refers to the distance along the lidar beam at any angle. For the stare data, this corresponded to the height. It will be used later.
Create your distance array
dist
dist
RHI DataDate & Time(UTC)
• This file has a fixed azimuth angle of 145o and elevation angles ranging from 0o to 80o at intervals of 5o
• There will be 16 sets of data for each elevation angle. (for i = 1:16)
R_t = 17;for i = 1:16
time_range = [R_t 0 R_t 2];T(:,i) = dlmread(‘filename’,'',time_range);R_t = R_t + 131; %Set row range to the next%time row = num of gates +1
end %forSo now T will be a 3x16 array with the first row corresponding to the times (will not be needed), the second row should be the same azimuth values, and the third row is the changing elevation angles.
Read the time and angle row
Within the same loop as the time rangeR1_d = 18; %Row where velocity beginsR2_d = 147; %Row where velocity ends
for i = 1:16data_range = [R1_d 1 R2_d 1];
V(:,i) = dlmread(‘filename’,'',data_range);R1_d = R1_d + 131;
R2_d = R2_d + 131;end %forSo now V will be a 130x16 array with the rows corresponding to velocity at range gates and columns corresponding to changing elevation angles.
Read in velocity
Calculating x and z distances
%Calculate horizontal distances elev = T(3,:)*(pi/180); %Calculate x and y distances [a,b] = size(V); for j = 1:a for p = 1:b x(j,p) = dist(j)*cos(elev(p)); z(j,p) = dist(j)*sin(elev(p)); end end
lidar
Lidar sca
n- dist
Elev. angle
x
z
figure(1);clf; pcolor(x,z,V) shading flat xlabel('X (m AGL)'); ylabel('Z (m AGL)'); title('Doppler Radial Velocity (m/s)') colorbar
Plotting with pcolor
figure(1)
500 1000 1500 2000 2500 30000
500
1000
1500
2000
2500
3000
X (m AGL)
Z (
m A
GL)
Doppler Radial Velocity (m/s)
-15
-10
-5
0
5
10
15
Set any data within the first 100 m to be NaN
Filter the data so that if there is a velocity change of ±7 ms-1 between any two range gates, then any data after that is NaN.
Adjust the colorbar axis to show the range of velocities for your data.