function tssviewing(mychoice) %A callback function that is called from cmgtssview.m, % cannot be run on its own. global yhand tssdata temper if nargin<1 help(mfilename);return;end; colordepth=100; delt=24*mean(diff(tssdata.time)); %hours plotlength=ceil(temper.wl/delt); midpoint=ceil(plotlength/2); [m,n]=size(tssdata.temper); if mod(n,2)==0 midbin=n/2; else midbin=ceil(n/2); end; set(yhand.ensambleslide,'sliderstep',[1/m,1/plotlength]); start=1+floor(m*get(yhand.ensambleslide,'value')); if start>=m-midpoint, start=m-midpoint; end; stop=start+plotlength-1; if stop>m, stop=m; end; switch mychoice case 1 pens=start+midpoint-1; axes(yhand.image); [junk,chand]=contourf(start:stop,tssdata.depth,... (tssdata.temper(start:stop,:)' - tssdata.mintemper)/(tssdata.range/colordepth),5,'EdgeColor','none'); set(chand,'HitTest','off'); yticks=1:n; set(gca,'buttondownfcn','tssviewing(2)',... 'ytick',tssdata.depth); ylabel('Water depth'); caxis([0 100]); axis ij; hold on; temper.vmarker=plot([pens pens],[tssdata.depth([1 end])],'w:','linewidth',3); temper.hmarker=plot([start stop],[tssdata.depth(midbin)*ones(1,2)],'w:','linewidth',3); hold off; hh=colorbar; ticks=[0:20:100]; set(hh,'ytick',ticks,'yticklabel',round(10*(ticks*tssdata.range/colordepth+tssdata.mintemper))/10); hhh=get(hh,'title'); set(hhh,'string',tssdata.label,'rotation',90,'pos',[-1 50 10]); axes(yhand.hprofile); temper.hps=plot(start:stop,tssdata.temper(start:stop,midbin)); ylabel(tssdata.unit); axis([start stop tssdata.mintemper tssdata.maxtemper]); pgreg=gregorian(tssdata.time(start)); pdate0=[num2str(pgreg(1)),'-',num2str(pgreg(2)),'-',num2str(pgreg(3))]; pgreg=gregorian(tssdata.time(stop)); pdate1=[num2str(pgreg(1)),'-',num2str(pgreg(2)),'-',num2str(pgreg(3))]; set(gca,'xtick',[start stop],'xticklabel',{pdate0 pdate1}); hold on; temper.vmarker2=plot([pens pens],[get(gca,'ylim')],'k:','linewidth',3); hold off; hh=colorbar; set(hh,'visible','off'); set(get(hh,'chil'),'visible','off'); axes(yhand.vprofile); if pens>=m, pens=m-1;end; temper.vps=plot(tssdata.temper(pens,:),tssdata.depth,'bs','erasemode','xor'); set(gca,'xlim',[floor(tssdata.mintemper) ceil(tssdata.maxtemper)]); set(gca,'xtick',[floor(tssdata.mintemper):ceil(tssdata.maxtemper-tssdata.mintemper)/2:ceil(tssdata.maxtemper)],... 'xgrid','on','ydir','reverse',... 'ytick',tssdata.depth,... 'xticklabel',[floor(tssdata.mintemper):ceil(tssdata.maxtemper-tssdata.mintemper)/2:ceil(tssdata.maxtemper)]); xlabel(tssdata.unit); pgreg=gregorian(tssdata.time(pens)); pdate=[num2str(pgreg(1)),'-',num2str(pgreg(2)),'-',num2str(pgreg(3))]; ptime=[num2str(pgreg(4)),':',num2str(pgreg(5)),':',num2str(pgreg(6))]; pens=num2str(pens); % set(yhand.tstamp,'string',{['Ensamble: ' pens],['Date: ' pdate],['Time: ' ptime]}); % axes(yhand.txtbox); % temper.txt=text(0.1,0.6,''); set(yhand.txt,'string',{['Ensamble: ' pens],['Date: ' pdate],['Time: ' ptime]}); case 2 pens=get(gca,'currentpoint'); indx=find(tssdata.depth>=pens(3)); if isempty(indx) indx=1; end; pbins=indx(1); pens=ceil(pens(1)); set(temper.vmarker,'xdata',[pens pens]); set(temper.vmarker2,'xdata',[pens pens]); set(temper.hmarker,'ydata',[tssdata.depth(pbins) * ones(1,2)]); set(temper.hps,'ydata',tssdata.temper(start:stop,pbins)); set(temper.vps,'xdata',tssdata.temper(pens,:)); pgreg=gregorian(tssdata.time(pens)); pdate=[num2str(pgreg(1)),'-',num2str(pgreg(2)),'-',num2str(pgreg(3))]; ptime=[num2str(pgreg(4)),':',num2str(pgreg(5)),':',num2str(pgreg(6))]; pens=num2str(pens); set(yhand.txt,'string',{['Ensamble: ' pens],['Date: ' pdate],['Time: ' ptime]}); case 4 pens=get(temper.vmarker,'xdata'); pens=pens(1); if gco==yhand.prenxt(1) pens=pens-1; if pens<1, pens=1;end; if pens=stop, set(yhand.prenxt(2),'enable','off'); end; if pens>start, set(yhand.prenxt(1),'enable','on'); end; end; set(temper.vmarker,'xdata',[pens pens]); set(temper.vmarker2,'xdata',[pens pens]); set(temper.vps,'xdata',tssdata.temper(pens,:)); pgreg=gregorian(tssdata.time(pens)); pdate=[num2str(pgreg(1)),'-',num2str(pgreg(2)),'-',num2str(pgreg(3))]; ptime=[num2str(pgreg(4)),':',num2str(pgreg(5)),':',num2str(pgreg(6))]; pens=num2str(pens); set(yhand.txt,'string',{['Ensamble: ' pens],['Date: ' pdate],['Time: ' ptime]}); case 10 wl=24*[3 1 7 15]; temper.wl=wl(get(yhand.windl,'value')); tssviewing(1); end; return;