1 |
% Plot shifted cube fields in six panel layout |
2 |
function [facet_list] = shift_lon() |
3 |
global bdata |
4 |
global facet_list |
5 |
global xCshift |
6 |
global nr nb ng |
7 |
|
8 |
% "facet" sizes table |
9 |
% llc |
10 |
nr=90; |
11 |
ng=90; |
12 |
nb=360; |
13 |
% cs32 |
14 |
%% nr=32; |
15 |
%% ng=32; |
16 |
%% nb=32; |
17 |
facet_list=[]; |
18 |
clear facet_list; |
19 |
facet_list(1).fsize=[nr nb]; |
20 |
facet_list(2).fsize=[ng nb]; |
21 |
facet_list(3).fsize=[nr ng]; |
22 |
facet_list(4).fsize=[nb nr]; |
23 |
facet_list(5).fsize=[nb ng]; |
24 |
facet_list(6).fsize=[ng nr]; |
25 |
|
26 |
|
27 |
% 1 - read in grid parameters from .mitgrid files |
28 |
% (use .nc files later) |
29 |
% llc |
30 |
bdir='.'; |
31 |
% cs32 |
32 |
%% bdir='cs32'; |
33 |
fl=dir(bdir); |
34 |
ngrid=0; |
35 |
for f=1:length(fl) |
36 |
n=fl(f).name; |
37 |
a=regexp(n,'.*\.mitgrid$','match'); |
38 |
if length(a) == 1 |
39 |
ngrid=ngrid+1; |
40 |
gl(ngrid)=a; |
41 |
end |
42 |
end |
43 |
ngrid; |
44 |
|
45 |
% |
46 |
% |
47 |
if length(gl) ~= length(facet_list) |
48 |
fprintf(1,'ERROR: Number of .mitgrid files does not match number of expected facets\n'); |
49 |
return |
50 |
end |
51 |
for g=1:length(gl) |
52 |
fn=sprintf('%s/%s',bdir,gl{g}); |
53 |
fid=fopen(fn,'r','ieee-be'); |
54 |
s1=facet_list(g).fsize(1); |
55 |
s2=facet_list(g).fsize(2); |
56 |
% Read the sixteen values |
57 |
% xc, xg, yc, yg, dxC, dyC, dxF, dyF, dxG, dyG, dxV, dyU, rA, rAz, rAw, rAs, AngleCS, AngleSN |
58 |
% xc, yc, dxF, dyF, rA, xG, yG, dxV, dyU, rAz, dxC, dyC, rAw, rAs, dxG, dyG, AngleCS, AngleSN |
59 |
facet_list(g).xC = fread(fid,[s1+1 s2+1],'float64'); |
60 |
facet_list(g).yC = fread(fid,[s1+1 s2+1],'float64'); |
61 |
facet_list(g).dxF = fread(fid,[s1+1 s2+1],'float64'); |
62 |
facet_list(g).dyF = fread(fid,[s1+1 s2+1],'float64'); |
63 |
facet_list(g).rA = fread(fid,[s1+1 s2+1],'float64'); |
64 |
facet_list(g).xG = fread(fid,[s1+1 s2+1],'float64'); |
65 |
facet_list(g).yG = fread(fid,[s1+1 s2+1],'float64'); |
66 |
facet_list(g).dxV = fread(fid,[s1+1 s2+1],'float64'); |
67 |
facet_list(g).dyU = fread(fid,[s1+1 s2+1],'float64'); |
68 |
facet_list(g).rAz = fread(fid,[s1+1 s2+1],'float64'); |
69 |
facet_list(g).dxC = fread(fid,[s1+1 s2+1],'float64'); |
70 |
facet_list(g).dyC = fread(fid,[s1+1 s2+1],'float64'); |
71 |
facet_list(g).rAw = fread(fid,[s1+1 s2+1],'float64'); |
72 |
facet_list(g).rAs = fread(fid,[s1+1 s2+1],'float64'); |
73 |
facet_list(g).dxG = fread(fid,[s1+1 s2+1],'float64'); |
74 |
facet_list(g).dyG = fread(fid,[s1+1 s2+1],'float64'); |
75 |
facet_list(g).AngleCS = fread(fid,[s1+1 s2+1],'float64'); |
76 |
facet_list(g).AngleSN = fread(fid,[s1+1 s2+1],'float64'); |
77 |
fclose(fid); |
78 |
end |
79 |
|
80 |
% Make grid plots to check things look good so far |
81 |
figure(1); clf |
82 |
%%% mkcubeplot( 'xc',{facet_list(:).xC} , 1. ); |
83 |
%%% mkcubeplot( 'yc',{facet_list(:).yC} , 1. ); |
84 |
%%% mkcubeplot('dxF',{facet_list(:).dxF}, 1./1e3 ); |
85 |
%%% mkcubeplot('dyF',{facet_list(:).dyF}, 1./1e3 ); |
86 |
%%% mkcubeplot( 'rA',{facet_list(:).rA} , 1./1e6 ) |
87 |
%%% mkcubeplot( 'xg',{facet_list(:).xG} , 1. ); |
88 |
%%% mkcubeplot( 'yg',{facet_list(:).yG} , 1. ); |
89 |
%%% mkcubeplot('dxV',{facet_list(:).dxV}, 1./1e3 ); |
90 |
%%% mkcubeplot('dyU',{facet_list(:).dyU}, 1./1e3 ); |
91 |
%%% mkcubeplot('rAz',{facet_list(:).rAz}, 1./1e6 ); |
92 |
%%% mkcubeplot('dxC',{facet_list(:).dxC}, 1./1e3 ); |
93 |
%%% mkcubeplot('dyC',{facet_list(:).dyC}, 1./1e3 ); |
94 |
%%% mkcubeplot('rAw',{facet_list(:).rAw}, 1./1e6 ); |
95 |
%%% mkcubeplot('rAs',{facet_list(:).rAs}, 1./1e6 ); |
96 |
%%% mkcubeplot('dxG',{facet_list(:).dxG}, 1./1e3 ); |
97 |
%%% mkcubeplot('dyG',{facet_list(:).dyG}, 1./1e3 ); |
98 |
|
99 |
a={facet_list(:).xC}; |
100 |
size(a,2) |
101 |
for ia=1:size(a,2) |
102 |
phi=a{ia}; |
103 |
phi=phi-37.; |
104 |
i180=find(phi>180.); |
105 |
phi(i180)=phi(i180)-360.; |
106 |
i180=find(phi<-180.); |
107 |
phi(i180)=phi(i180)+360.; |
108 |
a{ia}=phi; |
109 |
xCshift=a; |
110 |
end |
111 |
mkcubeplot( 'xCshift',a , 1. ); |
112 |
|
113 |
a={facet_list(:).xG}; |
114 |
size(a,2) |
115 |
for ia=1:size(a,2) |
116 |
phi=a{ia}; |
117 |
phi=phi-37.; |
118 |
i180=find(phi>180.); |
119 |
phi(i180)=phi(i180)-360.; |
120 |
i180=find(phi<-180.); |
121 |
phi(i180)=phi(i180)+360.; |
122 |
a{ia}=phi; |
123 |
xGshift=a; |
124 |
end |
125 |
mkcubeplot( 'xGshift',a , 1. ); |
126 |
|
127 |
for g=1:6 |
128 |
fn=sprintf('%s_%d.mitgrid','llc90x90x360_lonshift',g); |
129 |
fid=fopen(fn,'w','ieee-be'); |
130 |
s1=facet_list(g).fsize(1); |
131 |
s2=facet_list(g).fsize(2); |
132 |
%fwrite(fid,facet_list(g).xC, 'float64'); |
133 |
fwrite(fid,xCshift{g}, 'float64'); |
134 |
fwrite(fid,facet_list(g).yC, 'float64'); |
135 |
fwrite(fid,facet_list(g).dxF,'float64'); |
136 |
fwrite(fid,facet_list(g).dyF,'float64'); |
137 |
fwrite(fid,facet_list(g).rA, 'float64'); |
138 |
%fwrite(fid,facet_list(g).xG, 'float64'); |
139 |
fwrite(fid,xGshift{g}, 'float64'); |
140 |
fwrite(fid,facet_list(g).yG, 'float64'); |
141 |
fwrite(fid,facet_list(g).dxV,'float64'); |
142 |
fwrite(fid,facet_list(g).dyU,'float64'); |
143 |
fwrite(fid,facet_list(g).rAz,'float64'); |
144 |
fwrite(fid,facet_list(g).dxC,'float64'); |
145 |
fwrite(fid,facet_list(g).dyC,'float64'); |
146 |
fwrite(fid,facet_list(g).rAw,'float64'); |
147 |
fwrite(fid,facet_list(g).rAs,'float64'); |
148 |
fwrite(fid,facet_list(g).dxG,'float64'); |
149 |
fwrite(fid,facet_list(g).dyG,'float64'); |
150 |
fwrite(fid,facet_list(g).AngleCS,'float64'); |
151 |
fwrite(fid,facet_list(g).AngleSN,'float64'); |
152 |
% Read the sixteen values |
153 |
% xc, xg, yc, yg, dxC, dyC, dxF, dyF, dxG, dyG, dxV, dyU, rA, rAz, rAw, rAs, AngleCS, AngleSN |
154 |
% xc, yc, dxF, dyF, rA, xG, yG, dxV, dyU, rAz, dxC, dyC, rAw, rAs, dxG, dyG, AngleCS, AngleSN |
155 |
%% facet_list(g).xC = fread(fid,[s1+1 s2+1],'float64'); |
156 |
%% facet_list(g).yC = fread(fid,[s1+1 s2+1],'float64'); |
157 |
%% facet_list(g).dxF = fread(fid,[s1+1 s2+1],'float64'); |
158 |
%% facet_list(g).dyF = fread(fid,[s1+1 s2+1],'float64'); |
159 |
%% facet_list(g).rA = fread(fid,[s1+1 s2+1],'float64'); |
160 |
%% facet_list(g).xG = fread(fid,[s1+1 s2+1],'float64'); |
161 |
%% facet_list(g).yG = fread(fid,[s1+1 s2+1],'float64'); |
162 |
%% facet_list(g).dxV = fread(fid,[s1+1 s2+1],'float64'); |
163 |
%% facet_list(g).dyU = fread(fid,[s1+1 s2+1],'float64'); |
164 |
%% facet_list(g).rAz = fread(fid,[s1+1 s2+1],'float64'); |
165 |
%% facet_list(g).dxC = fread(fid,[s1+1 s2+1],'float64'); |
166 |
%% facet_list(g).dyC = fread(fid,[s1+1 s2+1],'float64'); |
167 |
%% facet_list(g).rAw = fread(fid,[s1+1 s2+1],'float64'); |
168 |
%% facet_list(g).rAs = fread(fid,[s1+1 s2+1],'float64'); |
169 |
%% facet_list(g).dxG = fread(fid,[s1+1 s2+1],'float64'); |
170 |
%% facet_list(g).dyG = fread(fid,[s1+1 s2+1],'float64'); |
171 |
%% facet_list(g).AngleCS = fread(fid,[s1+1 s2+1],'float64'); |
172 |
%% facet_list(g).AngleSN = fread(fid,[s1+1 s2+1],'float64'); |
173 |
fclose(fid); |
174 |
end |
175 |
|
176 |
end |
177 |
|
178 |
function [] = mkcubeplot(ptit,temp,sf) |
179 |
ploc=[9 10 6 7 3 4]; |
180 |
phil=[]; |
181 |
for g=1:length(temp) |
182 |
phi=temp{g}*sf; |
183 |
phil=[ phil phi(:)']; |
184 |
end |
185 |
for g=1:length(temp) |
186 |
phi=temp{g}*sf; |
187 |
phi=flipud(phi'); |
188 |
subplot(3,4,ploc(g)); |
189 |
imagesc(phi);caxis([min(phil) max(phil)]); |
190 |
end |
191 |
subplot(3,4,1); |
192 |
axis off |
193 |
caxis([min(phil) max(phil)]);colorbar; |
194 |
title(ptit); |
195 |
drawnow |
196 |
|
197 |
pnam=sprintf('%s.jpeg',ptit); |
198 |
print('-djpeg100',pnam); |
199 |
|
200 |
end |