Global Index (all files) (short | long) | Local Index (files in subdir) (short | long)
hh = dc2(dat, colr, pn);
dc2(data, colr, pn); This function pcolors the NaN's of data
| This function calls | |
|---|---|
function hh = dc2(dat, colr, pn);
dat = squeeze(dat);
if nargin <= 1; colr = 0.35; end;
if nargin <= 2; pn = 1; end;
data = repmat(NaN, size(dat));
data(find(isnan(dat))) = 1;
global XAX YAX FRAME
if (size(YAX,1)==1); YAX = YAX'; end;
if (size(XAX,1)==1); XAX = XAX'; end;
%[xk, yk] = keep_var(FRAME, XAX, YAX);
xk = 1:length(XAX);
yk = 1:length(YAX);
if (FRAME(2)-FRAME(1) == 360);
data2 = [data(yk,:) data(yk,1:2)];
XAX2 = [XAX; (XAX(1:2)+360)];
YAX2 = YAX(yk);
else
data2 = data(yk,xk);
XAX2 = XAX(xk);
YAX2 = YAX(yk);
end
XAX2 = XAX2 - mean(diff(XAX2))/2;
YAX2 = YAX2 - mean(diff(YAX2))/2;
hold on;
cax = newplot;
hold_state = ishold;
global FRAME COASTWIDTH COASTTYPE COASTGRID GRDX_SPACING GRDY_SPACING
global USE_LANDMASK
gridx = GRDX_SPACING;
gridy = GRDY_SPACING;
lgrd=':k';
xl=get(gca,'xlim'); yl=get(gca,'ylim');
x0=xl(1); x1=xl(2); y0=yl(1); y1=yl(2);
if ~USE_LANDMASK
xticks = sort([ 0:-gridx:x0 gridx:gridx:x1 ]);
xticks = sort(xticks(xticks >= FRAME(1) & xticks <= FRAME(2)));
if (FRAME(4) == 90.1) & (FRAME(3) == -90.1);
yticks = sort( [ 0:-gridy:(y0+gridy) gridy:gridy:(y1-gridy) ] );
elseif FRAME(4) == 90.1;
yticks = sort( [ 0:-gridy:y0 gridy:gridy:(y1 - gridy) ] );
elseif FRAME(3) == -90.1;
yticks = sort( [ 0:-gridy:(y0 + gridy) gridy:gridy:y1 ] );
else
yticks = sort( [ 0:-gridy:y0 gridy:gridy:y1 ] );
end
yticks = sort(yticks(yticks >= FRAME(3) & yticks <= FRAME(4)));
manual_ticks('x',xticks,label_eastwest(xticks));
manual_ticks('y',yticks,label_northsouth(yticks));
end
hh = surface(XAX2, YAX2, pn*ones(size(data2)), data2);
colormap(colr*[1 1 1]);
%set(hh, 'facecolor', colr*[1 1 1]);
shading flat
box on
if lgrd
child = get(gca, 'Children');
maxz = [];
for nchild = 1:length(child);
maxz = max([maxz; max(max(get(child(nchild), 'ZData')))]);
end
maxz1 = (maxz+1)*ones(length(xticks), 2);
maxz2 = (maxz+1)*ones(length(yticks), 2);
if FRAME(4) == 90 & FRAME(3) == -90;
vline(xticks,lgrd, [min(yticks)-gridy/2 max(yticks)+gridy/2], maxz1);
elseif FRAME(4) == 90;
vline(xticks,lgrd, [FRAME(3) max(yticks)+gridy/2], maxz1);
elseif FRAME(3) == -90;
vline(xticks,lgrd, [min(yticks)-gridy/2 FRAME(4)], maxz1);
else
vline(xticks,lgrd,[FRAME(3) FRAME(4)], maxz1);
end
hline(yticks, lgrd, [FRAME(1) FRAME(2)], maxz2);
end;
hold off;