/[MITgcm]/MITgcm/utils/matlab/plotcube.m
ViewVC logotype

Contents of /MITgcm/utils/matlab/plotcube.m

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph


Revision 1.3 - (show annotations) (download)
Thu Aug 30 15:29:26 2001 UTC (22 years, 8 months ago) by adcroft
Branch: MAIN
CVS Tags: checkpoint46n_post, checkpoint48f_post, checkpoint46k_post, checkpoint51k_post, checkpoint53f_post, checkpoint47j_post, checkpoint54a_pre, checkpoint55c_post, icebear2, checkpoint53b_pre, checkpoint48d_pre, checkpoint51l_post, checkpoint51j_post, branch-exfmods-tag, checkpoint47e_post, checkpoint57m_post, checkpoint44h_pre, release1_p12, checkpoint52l_pre, checkpoint48i_post, checkpoint52e_pre, hrcube4, hrcube5, release1_p10, checkpoint57h_done, release1_p16, checkpoint57g_pre, checkpoint52j_post, release1_p15, release1_p11, checkpoint47f_post, ecco_c44_e16, checkpoint48d_post, checkpoint51o_pre, checkpoint57f_post, checkpoint46j_post, checkpoint47c_post, checkpoint50e_post, checkpoint52e_post, checkpoint50c_post, checkpoint46i_post, checkpoint51n_pre, checkpoint47d_post, ecco_c44_e21, ecco_c44_e26, ecco_c44_e27, ecco_c44_e24, checkpoint57j_post, icebear5, icebear4, checkpoint44f_pre, checkpoint47a_post, icebear3, checkpoint57b_post, checkpoint46f_post, checkpoint52d_pre, ecco_c50_e33a, checkpoint53c_post, checkpoint53d_post, checkpoint57f_pre, checkpoint48a_post, checkpoint55d_pre, checkpoint51f_pre, release1_p13_pre, checkpoint46d_pre, checkpoint57g_post, checkpoint48e_post, checkpoint46e_post, checkpoint57a_post, checkpoint48h_post, checkpoint55j_post, checkpoint56b_post, checkpoint50c_pre, release1-branch_tutorials, checkpoint57h_pre, ecco_c50_e28, release1_p14, checkpoint44g_post, branchpoint-genmake2, checkpoint46h_pre, checkpoint44h_post, release1_p12_pre, checkpoint44e_post, checkpoint50b_pre, checkpoint52j_pre, checkpoint54a_post, checkpoint46e_pre, ecco-branch-mod4, checkpoint43a-release1mods, branch-netcdf, checkpoint50d_pre, checkpoint55h_post, checkpoint45d_post, checkpoint51r_post, checkpoint47i_post, checkpoint52b_pre, checkpoint52n_post, checkpoint54b_post, checkpoint46l_pre, checkpoint46j_pre, checkpoint45b_post, checkpoint46b_pre, checkpoint51i_post, checkpoint57e_post, checkpoint54d_post, checkpoint47h_post, checkpoint48c_post, checkpoint46l_post, chkpt44a_pre, release1-branch-end, checkpoint56c_post, checkpoint54e_post, release1_final_v1, checkpoint55b_post, ecco_c44_e19, checkpoint51e_post, checkpoint51b_post, checkpoint46, ecco_c44_e20, checkpoint51l_pre, checkpoint52m_post, checkpoint51c_post, ecco_c50_e32, checkpoint55, checkpoint53a_post, ecco_c50_e31, checkpoint55a_post, checkpoint57c_pre, checkpoint44, release1_p13, ecco_c44_e18, checkpoint48, checkpoint49, checkpoint44f_post, checkpoint47b_post, checkpoint53b_post, checkpoint57o_post, checkpoint55g_post, checkpoint57r_post, checkpoint51o_post, checkpoint48g_post, ecco_c44_e17, release1_p17, checkpoint57k_post, checkpoint57d_post, release1_b1, checkpoint44b_post, checkpoint55f_post, checkpoint57i_post, checkpoint51q_post, checkpoint52l_post, checkpoint52k_post, chkpt44c_post, ecco_c51_e34, chkpt44d_post, ecco_c50_e29, checkpoint57h_post, checkpoint42, release1_p9, checkpoint57a_pre, checkpoint54, checkpoint57, checkpoint56, checkpoint51, checkpoint50, checkpoint53, checkpoint52, release1_p8, checkpoint50d_post, checkpoint43, checkpoint52d_post, checkpoint46g_pre, release1_p2, release1_p3, release1_p4, checkpoint51b_pre, release1_p6, checkpoint52a_post, checkpoint46a_post, checkpoint47g_post, checkpoint52b_post, checkpoint53g_post, chkpt44a_post, checkpoint52f_post, checkpoint44b_pre, checkpoint57n_post, checkpoint52c_post, release1_p1, checkpoint46m_post, checkpoint57p_post, checkpoint51h_pre, checkpoint46a_pre, ecco_c51_e34e, ecco-branch-mod1, checkpoint50g_post, checkpoint45c_post, checkpoint57q_post, release1_p5, checkpoint44e_pre, checkpoint51g_post, ecco_c52_e35, chkpt44c_pre, checkpoint40pre9, release1_p7, ecco_ice2, ecco_ice1, checkpoint46b_post, checkpoint54f_post, checkpoint51f_post, checkpoint46d_post, ecco-branch-mod2, checkpoint48b_post, checkpoint50b_post, eckpoint57e_pre, checkpoint46g_post, checkpoint45a_post, ecco_c51_e34d, ecco_c51_e34f, ecco_c51_e34g, ecco_c51_e34a, ecco_c51_e34b, ecco_c51_e34c, checkpoint57c_post, checkpoint50f_post, checkpoint50a_post, checkpoint46c_pre, checkpoint50f_pre, checkpoint52a_pre, ecco-branch-mod3, ecco_c50_e33, checkpoint47d_pre, checkpoint51d_post, ecco_c50_e30, checkpoint48c_pre, ecco-branch-mod5, ecco_c44_e22, release1_beta1, ecco_c44_e23, checkpoint51m_post, checkpoint51t_post, checkpoint53d_pre, release1-branch_branchpoint, checkpoint47, checkpoint55e_post, checkpoint46c_post, checkpoint54c_post, checkpoint50h_post, checkpoint52i_post, checkpoint51a_post, checkpoint40, checkpoint45, checkpoint46h_post, checkpoint50e_pre, checkpoint50i_post, checkpoint51p_post, checkpoint51n_post, release1_chkpt44d_post, ecco_c44_e25, checkpoint55i_post, checkpoint51i_pre, checkpoint57l_post, checkpoint52i_pre, checkpoint51u_post, checkpoint52h_pre, checkpoint41, checkpoint52f_pre, hrcube_1, hrcube_2, hrcube_3, checkpoint56a_post, checkpoint51s_post, checkpoint55d_post
Branch point for: c24_e25_ice, netcdf-sm0, ecco-branch, branch-genmake2, branch-nonh, release1_coupled, icebear, tg2-branch, release1_final, checkpoint51n_branch, release1-branch, release1, release1_50yr, branch-exfmods-curt
Changes since 1.2: +54 -9 lines
Modified to use the geographic coordinates rather than the 3D cartesian
coordinates. This saves copying huge .mat files around.

1 function [] = plotcube(XX,YY,C)
2 % plotcube(x,y,c)
3 %
4 % Plots cubed-sphere data in 3D on sphere. (x,y) are
5 % coordinates, c is cell-centered scalar to be plotted.
6 % Dimensions should be N+1 x N+1 x 6 for (x,y)
7 % and N x N x 6 for c
8 %
9 % The default plotting mode is shading faceted. Using this or
10 % shading flat, (x,y) should be the coordinates of grid-corners
11 % and can legitimately have dimension (N+1)x(N+1)x6.
12 %
13 % If using shading interp, then (x,y) must be the coordinates of
14 % the cell centers with same dimensions as c.
15 %
16 % e.g.
17 %
18 % xg=rdmds('XG');
19 % yg=rdmds('YG');
20 % ps=rdmds('Eta.0000000000');
21 % plotube(xg,yg,ps);
22 %
23 % xc=rdmds('XC');
24 % yc=rdmds('YC');
25 % plotube(xg,yg,ps);shading interp
26
27 if max(max(max(YY)))-min(min(min(YY))) < 3*pi
28 X=tiles(XX*180/pi,1:6);
29 Y=tiles(YY*180/pi,1:6);
30 else
31 X=tiles(XX,1:6);
32 Y=tiles(YY,1:6);
33 end
34 Q=tiles(C,1:6);
35
36 % Assume model grid corner coordinates were provided.
37 if size(X,1)==size(Q,1)
38 X(end+1,:,:)=NaN;
39 X(:,end+1,:)=NaN;
40 X(end,:,[1 3 5])=X(1,:,[2 4 6]);
41 X(:,end,[2 4 6])=X(:,1,[3 5 1]);
42 X(:,end,[1 3 5])=squeeze(X(1,end:-1:1,[3 5 1]));
43 X(end,:,[2 4 6])=squeeze(X(end:-1:1,1,[4 6 2]));
44 Y(end+1,:,:)=NaN;
45 Y(:,end+1,:)=NaN;
46 Y(end,:,[1 3 5])=Y(1,:,[2 4 6]);
47 Y(:,end,[2 4 6])=Y(:,1,[3 5 1]);
48 Y(:,end,[1 3 5])=squeeze(Y(1,end:-1:1,[3 5 1]));
49 Y(end,:,[2 4 6])=squeeze(Y(end:-1:1,1,[4 6 2]));
50 end
51 [nx ny nt]=size(X);
52
53 z=sin(Y*pi/180);
54 x=cos(Y*pi/180).*cos(X*pi/180);
55 y=cos(Y*pi/180).*sin(X*pi/180);
56
57 surf(x(:,:,1),y(:,:,1),z(:,:,1),Q(:,:,1))
58 hold on
59 for j=2:6
60 surf(x(:,:,j),y(:,:,j),z(:,:,j),Q(:,:,j))
61 end
62 hold off
63 xlabel('X');
64 ylabel('Y');
65 zlabel('Z');

  ViewVC Help
Powered by ViewVC 1.1.22