| 1 |
function [Winfo]=nortek_specmultiplot(dateinfo1,dateinfo2,timestep) |
|---|
| 2 |
|
|---|
| 3 |
%NOTE: This function is for the Nortek AWAC profiler! |
|---|
| 4 |
|
|---|
| 5 |
%where dateinfo1 and 2 are the strings of the first and last date extension |
|---|
| 6 |
%of the pressure,range,etc files and timestep is the time in hours between |
|---|
| 7 |
%each burst |
|---|
| 8 |
|
|---|
| 9 |
%This function takes the pressure, range, orbit and sysinfo files created |
|---|
| 10 |
%in python and outputs a Winfo data structure with the sig wave height, |
|---|
| 11 |
%peak period, direction of peak period and dominant dir. It also generates |
|---|
| 12 |
%polar plots and 2d freq and directional plots of a variety of different |
|---|
| 13 |
%estimation methods, resolutions and the nortek quickwave output. |
|---|
| 14 |
|
|---|
| 15 |
|
|---|
| 16 |
%first set up the time vector going from dateinfo1 to dateinfo2 |
|---|
| 17 |
Winfo.time=[]; |
|---|
| 18 |
|
|---|
| 19 |
date1=datevec(dateinfo1, 'yymmddHHMM'); |
|---|
| 20 |
date2=datevec(dateinfo2,'yymmddHHMM'); |
|---|
| 21 |
|
|---|
| 22 |
if date1 == date2 |
|---|
| 23 |
Winfo.time=[datenum(date1)]; |
|---|
| 24 |
else |
|---|
| 25 |
Winfo.time=[datenum(date1)]; |
|---|
| 26 |
newdate=date1; |
|---|
| 27 |
while datenum(newdate) ~= datenum(date2) |
|---|
| 28 |
newdate=newdate+[0 0 0 timestep 0 0]; |
|---|
| 29 |
Winfo.time=[horzcat(Winfo.time,datenum(newdate))]; |
|---|
| 30 |
end |
|---|
| 31 |
end |
|---|
| 32 |
|
|---|
| 33 |
%Make a directory for the data |
|---|
| 34 |
mkdir('tempdir'); |
|---|
| 35 |
|
|---|
| 36 |
%set up time, which is Winfo.time as date str in the yymmddHHMM format |
|---|
| 37 |
time=datestr(Winfo.time, 'yymmddHHMM'); |
|---|
| 38 |
|
|---|
| 39 |
%set up data structure for wave info |
|---|
| 40 |
Winfo.setup={'IMLM'}'; |
|---|
| 41 |
Winfo.hsig=[]; |
|---|
| 42 |
Winfo.hconf=[]; |
|---|
| 43 |
Winfo.peakP=[]; |
|---|
| 44 |
Winfo.dirP=[]; |
|---|
| 45 |
Winfo.Ddir=[]; |
|---|
| 46 |
Winfo.Spectrum=[]; |
|---|
| 47 |
|
|---|
| 48 |
%load the wave data from the nortek quick wave software |
|---|
| 49 |
%wavedata=load('BPWave01.wap'); |
|---|
| 50 |
|
|---|
| 51 |
%Load the data and run the script |
|---|
| 52 |
for i=1:length(time(:,1)) |
|---|
| 53 |
dateinfo=time(i,:); |
|---|
| 54 |
|
|---|
| 55 |
pressure=strcat('pressure_',dateinfo,'.txt'); |
|---|
| 56 |
range=strcat('range_',dateinfo,'.txt'); |
|---|
| 57 |
orbit=strcat('orbit_',dateinfo,'.txt'); |
|---|
| 58 |
sysinfo=strcat('sysinfo_',dateinfo,'.txt'); |
|---|
| 59 |
%nortekspec=strcat('nortekspec_',dateinfo,'.txt'); |
|---|
| 60 |
|
|---|
| 61 |
pressure=load(pressure); |
|---|
| 62 |
range=load(range); |
|---|
| 63 |
orbit=load(orbit); |
|---|
| 64 |
sysinfo=load(sysinfo); |
|---|
| 65 |
%nortekspec=load(nortekspec); |
|---|
| 66 |
|
|---|
| 67 |
%set up data with standard AST freq at 0.01 and dir at 2 |
|---|
| 68 |
[ID,SM,EP]=nortek_radialtouvw(pressure,range,orbit,sysinfo,1); |
|---|
| 69 |
|
|---|
| 70 |
%For IMLM |
|---|
| 71 |
EP.method='IMLM'; |
|---|
| 72 |
EP.iter=50; |
|---|
| 73 |
[I_F01_D2, ~]=dirspec(ID,SM,EP,{'PLOTTYPE',0,'MESSAGE',0}); |
|---|
| 74 |
|
|---|
| 75 |
|
|---|
| 76 |
%Use waveplot to plot the polar, freq and dir plots of the spectra |
|---|
| 77 |
|
|---|
| 78 |
%[E_WI,I_WI,nortek_WI,fig1,fig2]=nortek_waveplot(E_F01_D2,I_F01_D2,sysinfo,nortekspec); |
|---|
| 79 |
[I_WI,fig1,fig2]=nortek_waveplot(I_F01_D2); |
|---|
| 80 |
|
|---|
| 81 |
saveas(fig1,['polar1_' dateinfo '.fig']); |
|---|
| 82 |
saveas(fig2,['dirfreq1_' dateinfo '.fig']); |
|---|
| 83 |
|
|---|
| 84 |
movefile(['polar1_' dateinfo '.fig'],'tempdir'); |
|---|
| 85 |
movefile(['dirfreq1_' dateinfo '.fig'],'tempdir'); |
|---|
| 86 |
|
|---|
| 87 |
close all; |
|---|
| 88 |
|
|---|
| 89 |
%Fill up the Winfo data structure |
|---|
| 90 |
|
|---|
| 91 |
hsig=[I_WI.hsig]; |
|---|
| 92 |
hconf=[I_WI.hconf]; |
|---|
| 93 |
peakP=[I_WI.tp]; |
|---|
| 94 |
dirP=[I_WI.dtp]; |
|---|
| 95 |
Ddir=[I_WI.dp]; |
|---|
| 96 |
|
|---|
| 97 |
Winfo.hsig=[horzcat(Winfo.hsig,hsig)]; |
|---|
| 98 |
Winfo.hconf=[horzcat(Winfo.hconf,hconf)]; |
|---|
| 99 |
Winfo.peakP=[horzcat(Winfo.peakP,peakP)]; |
|---|
| 100 |
Winfo.dirP=[horzcat(Winfo.dirP,dirP)]; |
|---|
| 101 |
Winfo.Ddir=[horzcat(Winfo.Ddir,Ddir)]; |
|---|
| 102 |
Winfo.Spectrum=[cat(3,Winfo.Spectrum,I_F01_D2.S)]; |
|---|
| 103 |
end |
|---|
| 104 |
|
|---|
| 105 |
save(['specdata_' dateinfo],'Winfo'); |
|---|
| 106 |
movefile(['specdata_' dateinfo '.mat'],'tempdir'); |
|---|
| 107 |
|
|---|
| 108 |
movefile('tempdir',strcat('procdata_',dateinfo)); |
|---|
| 109 |
|
|---|
| 110 |
%now create the time series plots of the wave info |
|---|
| 111 |
%[fig_sigh,fig_pp,fig_dp,fig_dd]=nortek_Winfo_plot(Winfo); |
|---|
| 112 |
|
|---|
| 113 |
%saveas(fig_sigh,['sigh_' dateinfo '.fig']); |
|---|
| 114 |
%saveas(fig_pp,['peakp_' dateinfo '.fig']); |
|---|
| 115 |
%saveas(fig_dp,['dirpeak_' dateinfo '.fig']); |
|---|
| 116 |
%saveas(fig_dd,['domdir_' dateinfo '.fig']); |
|---|
| 117 |
|
|---|
| 118 |
close all; |
|---|
| 119 |
|
|---|
| 120 |
|
|---|
| 121 |
|
|---|