Documentation of dc2


Global Index (all files) (short | long) | Local Index (files in subdir) (short | long)


Function Synopsis

hh = dc2(dat, colr, pn);

Help text


  dc2(data, colr, pn);

  This function pcolors the NaN's of data


Cross-Reference Information

This function calls

Listing of function dc2

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;