1 |
adcroft |
1.1 |
function [c] = cm_landwater(n,varargin) |
2 |
|
|
% [c] = cm_landwater(n) |
3 |
|
|
% [c] = cm_landwater(n,f) |
4 |
|
|
% |
5 |
|
|
% n - is size of color map |
6 |
|
|
% f is scalar fraction that should be water (default=0.5) |
7 |
|
|
% or vector [hmin hmax] from which f will be calculated |
8 |
|
|
% |
9 |
|
|
% e.g. |
10 |
|
|
% >> cm_landwater(64,caxis); |
11 |
|
|
% |
12 |
|
|
% Green-yellor land/blue water colormap |
13 |
|
|
|
14 |
jmc |
1.2 |
% $Header: $ |
15 |
|
|
% $Name: $ |
16 |
|
|
|
17 |
adcroft |
1.1 |
if nargin==1 |
18 |
|
|
f=0.5; |
19 |
|
|
else |
20 |
|
|
f=varargin{1}; |
21 |
|
|
end |
22 |
|
|
|
23 |
|
|
if prod(size(f))==2 |
24 |
|
|
hmin=f(1);hmax=f(2); |
25 |
|
|
f=-hmin/(hmax-hmin); |
26 |
|
|
f=max(0,f);f=min(1,f); |
27 |
|
|
end |
28 |
|
|
|
29 |
|
|
if mod(n,2)==0 |
30 |
|
|
nb=round(n*f(1)); |
31 |
|
|
ng=n-nb; |
32 |
|
|
nw=0; |
33 |
|
|
else |
34 |
|
|
nb=floor(n*f(1)); |
35 |
|
|
nw=1; |
36 |
|
|
ng=n-nb-nw; |
37 |
|
|
end |
38 |
|
|
b=bluewater(nb); |
39 |
|
|
g=greenland(ng); |
40 |
|
|
w=ones(nw,1)*[1 1 0.55]; |
41 |
|
|
|
42 |
|
|
c=[b' w' g']'; |
43 |
|
|
if nargout==0 |
44 |
|
|
colormap(c); |
45 |
|
|
end |
46 |
|
|
|
47 |
|
|
%subplot(211) |
48 |
|
|
%plot((0:(n-1))/(n-1),c(:,3:-1:1)) |
49 |
|
|
%subplot(212) |
50 |
|
|
%pcol([-1:.1/n:1]) |
51 |
|
|
%axis off |
52 |
|
|
|
53 |
|
|
% ---------------------------------------------------- |
54 |
|
|
function [c] = bluewater(n) |
55 |
|
|
% Blue colormap |
56 |
|
|
|
57 |
|
|
x=(0:n-1)'/(n-1); |
58 |
|
|
c=((.7-.7*x)*[1 1 0]+max(0,(1-.65*x))*[0 0 1]); |
59 |
|
|
c=c(end:-1:1,:); |
60 |
|
|
%colormap(c); |
61 |
|
|
% ---------------------------------------------------- |
62 |
|
|
function [c] = greenland(n) |
63 |
|
|
% Green land colormap |
64 |
|
|
|
65 |
|
|
x=(0:n-1)'/(n-1); |
66 |
|
|
r=max(0,(-.25+1.8*x)); |
67 |
|
|
g=.4*(1+2.5*x); |
68 |
|
|
b=0.5*max(0,(-.25+2.0*x)); |
69 |
|
|
i=find(r>1); |
70 |
|
|
r(i)=max( 1.7-1*x(i), b(i)); |
71 |
|
|
i=find(g>1); |
72 |
|
|
g(i)=max( 1.5-1*x(i), b(i)); |
73 |
|
|
c=r*[1 0 0]+g*[0 1 0]+b*[0 0 1]; |
74 |
|
|
c=min(max(0,c),1); |
75 |
|
|
%colormap(c); |
76 |
|
|
% ---------------------------------------------------- |