1 | #!/usr/bin/env python |
---|
2 | # -*- coding: utf-8 -*- |
---|
3 | import string |
---|
4 | import numpy as np |
---|
5 | import matplotlib.pyplot as plt |
---|
6 | from pylab import * |
---|
7 | from mpl_toolkits.basemap import Basemap |
---|
8 | from mpl_toolkits.basemap import shiftgrid, cm |
---|
9 | import netCDF4 |
---|
10 | import ffgrid2 |
---|
11 | |
---|
12 | |
---|
13 | ################ fichiers par mois - CH1 ################################################### |
---|
14 | |
---|
15 | f1 = '/net/dedale/usr/dedale/surf/lelod/ANTARC/SSMIS_CH' |
---|
16 | f3 = '_ANTARC_JUNE2010.DAT' |
---|
17 | #date=np.array(['JANUARY', 'FEBRUARY', 'MARCH', 'APRIL', 'MAY', 'JUNE', 'JULY']) |
---|
18 | channel = np.array([12, 13, 15, 16, 17, 18]) |
---|
19 | numlines = np.zeros([len(channel)],int) |
---|
20 | |
---|
21 | for ich in range (0, len(channel)): |
---|
22 | print channel[ich] |
---|
23 | f = f1 + str(channel[ich]) + f3 |
---|
24 | fichier = open(f, 'r') |
---|
25 | numlines[ich] = 0 |
---|
26 | for line in fichier: numlines[ich] += 1 |
---|
27 | |
---|
28 | |
---|
29 | fichier.close() |
---|
30 | |
---|
31 | ich = 2 # 37GHz, H polar |
---|
32 | fichier = open(f1 + str(channel[ich]) + f3, 'r') |
---|
33 | ssmis = np.zeros([18, numlines[ich]], float) |
---|
34 | for iligne in range (0,numlines[ich]): |
---|
35 | line = fichier.readline() |
---|
36 | liste = line.split() |
---|
37 | for j in range(0,18): |
---|
38 | ssmis[j,iligne] = float(liste[j]) |
---|
39 | |
---|
40 | |
---|
41 | fichier.close |
---|
42 | |
---|
43 | |
---|
44 | ssch15_JUN=ssmis |
---|
45 | lon15_JUN=ssch15_JUN[0,:] |
---|
46 | lat15_JUN=ssch15_JUN[1,:] |
---|
47 | jjr15_JUN=ssch15_JUN[4,:] |
---|
48 | ts15_JUN=ssch15_JUN[8,:] |
---|
49 | emis15_JUN=ssch15_JUN[14,:] |
---|
50 | tb15_JUN=ssch15_JUN[13,:] |
---|
51 | tup15_JUN=ssch15_JUN[16,:] |
---|
52 | tdn15_JUN=ssch15_JUN[15,:] |
---|
53 | trans15_JUN=ssch15_JUN[17,:] |
---|
54 | orog15_JUN=ssch15_JUN[11,:] |
---|
55 | |
---|
56 | |
---|
57 | ich = 3 # 37GHz, V polar |
---|
58 | fichier = open(f1 + str(channel[ich]) + f3, 'r') |
---|
59 | ssmis = np.zeros([18, numlines[ich]], float) |
---|
60 | for iligne in range (0,numlines[ich]): |
---|
61 | line = fichier.readline() |
---|
62 | liste = line.split() |
---|
63 | for j in range(0,18): |
---|
64 | ssmis[j,iligne] = float(liste[j]) |
---|
65 | |
---|
66 | |
---|
67 | fichier.close |
---|
68 | |
---|
69 | |
---|
70 | ssch16_JUN=ssmis |
---|
71 | lon16_JUN=ssch16_JUN[0,:] |
---|
72 | lat16_JUN=ssch16_JUN[1,:] |
---|
73 | jjr16_JUN=ssch16_JUN[4,:] |
---|
74 | ts16_JUN=ssch16_JUN[8,:] |
---|
75 | emis16_JUN=ssch16_JUN[14,:] |
---|
76 | tb16_JUN=ssch16_JUN[13,:] |
---|
77 | tup16_JUN=ssch16_JUN[16,:] |
---|
78 | tdn16_JUN=ssch16_JUN[15,:] |
---|
79 | trans16_JUN=ssch16_JUN[17,:] |
---|
80 | orog16_JUN=ssch16_JUN[11,:] |
---|
81 | |
---|
82 | |
---|
83 | ich = 0 # 19.35GHz, H polar |
---|
84 | fichier = open(f1 + str(channel[ich]) + f3, 'r') |
---|
85 | ssmis = np.zeros([18, numlines[ich]], float) |
---|
86 | for iligne in range (0,numlines[ich]-1): |
---|
87 | line = fichier.readline() |
---|
88 | liste = line.split() |
---|
89 | for j in range(0,18): |
---|
90 | ssmis[j,iligne] = float(liste[j]) |
---|
91 | |
---|
92 | |
---|
93 | fichier.close |
---|
94 | |
---|
95 | |
---|
96 | ssch12_JUN=ssmis |
---|
97 | lon12_JUN=ssch12_JUN[0,:] |
---|
98 | lat12_JUN=ssch12_JUN[1,:] |
---|
99 | jjr12_JUN=ssch12_JUN[4,:] |
---|
100 | ts12_JUN=ssch12_JUN[8,:] |
---|
101 | emis12_JUN=ssch12_JUN[14,:] |
---|
102 | tb12_JUN=ssch12_JUN[13,:] |
---|
103 | tup12_JUN=ssch12_JUN[16,:] |
---|
104 | tdn12_JUN=ssch12_JUN[15,:] |
---|
105 | trans12_JUN=ssch12_JUN[17,:] |
---|
106 | orog12_JUN=ssch12_JUN[11,:] |
---|
107 | |
---|
108 | |
---|
109 | ich = 1 # 19.35GHz, V polar |
---|
110 | fichier = open(f1 + str(channel[ich]) + f3, 'r') |
---|
111 | ssmis = np.zeros([18, numlines[ich]], float) |
---|
112 | for iligne in range (0,numlines[ich]-1): |
---|
113 | line = fichier.readline() |
---|
114 | liste = line.split() |
---|
115 | for j in range(0,18): |
---|
116 | ssmis[j,iligne] = float(liste[j]) |
---|
117 | |
---|
118 | |
---|
119 | fichier.close |
---|
120 | |
---|
121 | |
---|
122 | ssch13_JUN=ssmis |
---|
123 | lon13_JUN=ssch13_JUN[0,:] |
---|
124 | lat13_JUN=ssch13_JUN[1,:] |
---|
125 | jjr13_JUN=ssch13_JUN[4,:] |
---|
126 | ts13_JUN=ssch13_JUN[8,:] |
---|
127 | emis13_JUN=ssch13_JUN[14,:] |
---|
128 | tb13_JUN=ssch13_JUN[13,:] |
---|
129 | tup13_JUN=ssch13_JUN[16,:] |
---|
130 | tdn13_JUN=ssch13_JUN[15,:] |
---|
131 | trans13_JUN=ssch13_JUN[17,:] |
---|
132 | orog13_JUN=ssch13_JUN[11,:] |
---|
133 | |
---|
134 | |
---|
135 | ich = 4 # 91.66GHz, V polar |
---|
136 | fichier = open(f1 + str(channel[ich]) + f3, 'r') |
---|
137 | ssmis = np.zeros([18, numlines[ich]], float) |
---|
138 | for iligne in range (0,numlines[ich]-1): |
---|
139 | line = fichier.readline() |
---|
140 | liste = line.split() |
---|
141 | for j in range(0,18): |
---|
142 | ssmis[j,iligne] = float(liste[j]) |
---|
143 | |
---|
144 | |
---|
145 | fichier.close |
---|
146 | |
---|
147 | |
---|
148 | ssch17_JUN=ssmis |
---|
149 | lon17_JUN=ssch17_JUN[0,:] |
---|
150 | lat17_JUN=ssch17_JUN[1,:] |
---|
151 | jjr17_JUN=ssch17_JUN[4,:] |
---|
152 | ts17_JUN=ssch17_JUN[8,:] |
---|
153 | emis17_JUN=ssch17_JUN[14,:] |
---|
154 | tb17_JUN=ssch17_JUN[13,:] |
---|
155 | tup17_JUN=ssch17_JUN[16,:] |
---|
156 | tdn17_JUN=ssch17_JUN[15,:] |
---|
157 | trans17_JUN=ssch17_JUN[17,:] |
---|
158 | orog17_JUN=ssch17_JUN[11,:] |
---|
159 | |
---|
160 | |
---|
161 | ich = 5 # 91.66GHz, V polar |
---|
162 | fichier = open(f1 + str(channel[ich]) + f3, 'r') |
---|
163 | ssmis = np.zeros([18, numlines[ich]], float) |
---|
164 | for iligne in range (0,numlines[ich]-1): |
---|
165 | line = fichier.readline() |
---|
166 | liste = line.split() |
---|
167 | for j in range(0,18): |
---|
168 | ssmis[j,iligne] = float(liste[j]) |
---|
169 | |
---|
170 | |
---|
171 | fichier.close |
---|
172 | |
---|
173 | |
---|
174 | ssch18_JUN=ssmis |
---|
175 | lon18_JUN=ssch18_JUN[0,:] |
---|
176 | lat18_JUN=ssch18_JUN[1,:] |
---|
177 | jjr18_JUN=ssch18_JUN[4,:] |
---|
178 | ts18_JUN=ssch18_JUN[8,:] |
---|
179 | emis18_JUN=ssch18_JUN[14,:] |
---|
180 | tb18_JUN=ssch18_JUN[13,:] |
---|
181 | tup18_JUN=ssch18_JUN[16,:] |
---|
182 | tdn18_JUN=ssch18_JUN[15,:] |
---|
183 | trans18_JUN=ssch18_JUN[17,:] |
---|
184 | orog18_JUN=ssch18_JUN[11,:] |
---|
185 | |
---|
186 | ######################## |
---|
187 | # EVOLUTION TEMPORELLE # |
---|
188 | ######################## |
---|
189 | ## Autour de "Dome C" (lon=123.23;lat=-75.06) - mois: JUNE ## |
---|
190 | ## Autre zone de glace de mer / de continent (lon entre -40 et -60 // lat entre -75 et -85)## |
---|
191 | ## ch17 ## |
---|
192 | #bbzone_CH17_JUN = nonzero((lon17_JUN>=120.23)&(lon17_JUN<=126.23)&(lat17_JUN>=-78.06)&(lat17_JUN<=-72.06)) |
---|
193 | bbzone_CH17_JUN = nonzero((lon17_JUN >= -60.) & (lon17_JUN <= -40.) & (lat17_JUN >= -85.) & (lat17_JUN <= -75.)) |
---|
194 | emis17_JUN_moy = np.zeros([30],float) |
---|
195 | tb17_JUN_moy = np.zeros([30],float) |
---|
196 | ts17_JUN_moy = np.zeros([30],float) |
---|
197 | |
---|
198 | ## ch18 ## |
---|
199 | #bbzone_CH18_JUN = nonzero((lon18_JUN >= 120.23) & (lon18_JUN <= 126.23) & (lat18_JUN >= -78.06) & (lat18_JUN <= -72.06)) |
---|
200 | bbzone_CH18_JUN = nonzero((lon18_JUN >= -60.) & (lon18_JUN <= -40.) & (lat18_JUN >= -85.) & (lat18_JUN <= -75.)) |
---|
201 | emis18_JUN_moy = np.zeros([30],float) |
---|
202 | tb18_JUN_moy = np.zeros([30],float) |
---|
203 | ts18_JUN_moy = np.zeros([30],float) |
---|
204 | |
---|
205 | ## ch 16 ## |
---|
206 | #bbzone_CH16_JUN = nonzero((lon16_JUN >= 120.23) & (lon16_JUN <= 126.23) & (lat16_JUN >= -78.06) & (lat16_JUN <= -72.06)) |
---|
207 | #emis16_JUN_moy = np.zeros([30],float) |
---|
208 | #tb16_JUN_moy = np.zeros([30],float) |
---|
209 | #ts16_JUN_moy = np.zeros([30],float) |
---|
210 | |
---|
211 | for ijr in range (0,30): |
---|
212 | print 'jour=', ijr+1 |
---|
213 | ## ch17 ## |
---|
214 | ind_jr17 = np.where(jjr17_JUN[bbzone_CH17_JUN]==ijr+1)[0] |
---|
215 | a = emis17_JUN[bbzone_CH17_JUN][ind_jr17] |
---|
216 | b = tb17_JUN[bbzone_CH17_JUN][ind_jr17] |
---|
217 | c = ts17_JUN[bbzone_CH17_JUN][ind_jr17] |
---|
218 | emis17_JUN_moy[ijr] = mean(a[nonzero((a!=-500.)&(a<=1.))]) |
---|
219 | tb17_JUN_moy[ijr] = mean(b[nonzero((b!=-500.)&(b!=0.))]) |
---|
220 | ts17_JUN_moy[ijr] = mean(c[nonzero((c!=-500.)&(c!=0.))]) |
---|
221 | ## ch18 ## |
---|
222 | ind_jr18 = np.where(jjr18_JUN[bbzone_CH18_JUN]==ijr+1)[0] |
---|
223 | d = emis18_JUN[bbzone_CH18_JUN][ind_jr18] |
---|
224 | e = tb18_JUN[bbzone_CH18_JUN][ind_jr18] |
---|
225 | f = ts18_JUN[bbzone_CH18_JUN][ind_jr18] |
---|
226 | emis18_JUN_moy[ijr] = mean(d[nonzero((d != -500.) & (d <= 1.))]) |
---|
227 | tb18_JUN_moy[ijr] = mean(e[nonzero((e != -500.) & (e != 0.))]) |
---|
228 | ts18_JUN_moy[ijr] = mean(f[nonzero((f != -500.) & (f != 0.))]) |
---|
229 | ## ch16 ## |
---|
230 | # ind_jr16 = np.where(jjr16_JUN[bbzone_CH16_JUN]==ijr+1)[0] |
---|
231 | # g = emis16_JUN[bbzone_CH16_JUN][ind_jr16] |
---|
232 | # h = tb16_JUN[bbzone_CH16_JUN][ind_jr16] |
---|
233 | # l = ts16_JUN[bbzone_CH16_JUN][ind_jr16] |
---|
234 | # emis16_JUN_moy[ijr] = mean(g[nonzero((g != -500.) & (g <= 1.))]) |
---|
235 | # tb16_JUN_moy[ijr] = mean(h[nonzero((h != -500.) & (h != 0.))]) |
---|
236 | # ts16_JUN_moy[ijr] = mean(l[nonzero((l != -500.) & (l != 0.))]) |
---|
237 | |
---|
238 | |
---|
239 | ## ch17 - ch18 ## |
---|
240 | fig=plt.figure() |
---|
241 | plt.subplot(3,1,1) |
---|
242 | plt.plot(arange(0,30,1),emis17_JUN_moy,label='91.66GHz-V',c='r') |
---|
243 | plt.plot(arange(0,30,1),emis18_JUN_moy,label='91.66GHz-H',c='b') |
---|
244 | plt.xticks(arange(1,31,1)) |
---|
245 | grid(True) |
---|
246 | ylabel('emissivity') |
---|
247 | legend(loc=7) |
---|
248 | plt.title('SSMIS - JUNE 2010') |
---|
249 | plt.subplot(3,1,2) |
---|
250 | plt.plot(arange(0,30,1),tb17_JUN_moy,label='91.66GHz-V',c='r') |
---|
251 | plt.plot(arange(0,30,1),tb18_JUN_moy,label='91.66GHz-H',c='b') |
---|
252 | plt.xticks(arange(1,31,1)) |
---|
253 | grid(True) |
---|
254 | ylabel('brightness temperature') |
---|
255 | legend(loc=7) |
---|
256 | plt.subplot(3,1,3) |
---|
257 | plt.plot(arange(0,30,1),ts17_JUN_moy,label='91.66GHz-V',c='r') |
---|
258 | plt.plot(arange(0,30,1),ts18_JUN_moy,label='91.66GHz-H',c='b') |
---|
259 | plt.xticks(arange(1,31,1)) |
---|
260 | grid(True) |
---|
261 | ylabel('surface temperature') |
---|
262 | legend(loc=7) |
---|
263 | fig.show() |
---|
264 | |
---|
265 | ## ch16 ## |
---|
266 | fig=plt.figure() |
---|
267 | plt.subplot(3,1,1) |
---|
268 | plt.plot(arange(0,30,1),emis16_JUN_moy,label='37GHz-V',c='r') |
---|
269 | plt.plot(arange(0,30,1),emis17_JUN_moy,label='91.66GHz-V',c='g') |
---|
270 | plt.xticks(arange(1,31,1)) |
---|
271 | grid(True) |
---|
272 | ylabel('emissivity') |
---|
273 | legend(loc=7) |
---|
274 | plt.title('SSMIS - JUNE 2010') |
---|
275 | plt.subplot(3,1,2) |
---|
276 | plt.plot(arange(0,30,1),tb16_JUN_moy,label='37GHz-V',c='r') |
---|
277 | plt.plot(arange(0,30,1),tb17_JUN_moy,label='91.66GHz-V',c='g') |
---|
278 | plt.xticks(arange(1,31,1)) |
---|
279 | grid(True) |
---|
280 | ylabel('brightness temperature') |
---|
281 | legend(loc=7) |
---|
282 | plt.subplot(3,1,3) |
---|
283 | plt.plot(arange(0,30,1),ts16_JUN_moy,label='37GHz-V',c='r') |
---|
284 | plt.plot(arange(0,30,1),ts17_JUN_moy,label='91.66GHz-V',c='g') |
---|
285 | plt.xticks(arange(1,31,1)) |
---|
286 | grid(True) |
---|
287 | ylabel('surface temperature') |
---|
288 | legend(loc=7) |
---|
289 | fig.show() |
---|
290 | |
---|
291 | |
---|
292 | |
---|
293 | tb17_JUN_anom = np.zeros([30],float) |
---|
294 | tb18_JUN_anom = np.zeros([30],float) |
---|
295 | for ijr in range (0,30): |
---|
296 | print 'jour=', ijr + 1 |
---|
297 | tb17_JUN_anom[ijr]=tb17_JUN_moy[ijr]-tb17_JUN_moy.mean() |
---|
298 | tb18_JUN_anom[ijr]=tb18_JUN_moy[ijr]-tb18_JUN_moy.mean() |
---|
299 | |
---|
300 | |
---|
301 | fig=plt.figure() |
---|
302 | plt.plot(arange(0,30,1),tb17_JUN_anom,label='91.66Ghz-V',c='r') |
---|
303 | plt.plot(arange(0,30,1),tb18_JUN_anom,label='91.66GHz-H',c='b') |
---|
304 | plt.plot(arange(0,31,1),np.zeros([31]),'--',c='k') |
---|
305 | ylabel('Tb anomaly') |
---|
306 | legend() |
---|
307 | twinx().plot(arange(0,30,1),ts17_JUN_moy,label='surface temperature',c='g') |
---|
308 | ylabel('surface temperature') |
---|
309 | plt.xticks(arange(0, 30, 1), arange(1, 31, 1)) |
---|
310 | grid(True) |
---|
311 | plt.title('SSMIS - JUNE 2010') |
---|
312 | fig.show() |
---|
313 | |
---|
314 | |
---|
315 | |
---|
316 | |
---|
317 | ################ |
---|
318 | # CARTOGRAPHIE # |
---|
319 | ################ |
---|
320 | ## Etude sur l'Antarctique ## |
---|
321 | dx=5. |
---|
322 | dy=5. |
---|
323 | x0, x1 = -180, 180 |
---|
324 | y0, y1 = -90, -30 |
---|
325 | |
---|
326 | ## ch17 ## |
---|
327 | bbemis_ch17_JUN=nonzero((emis17_JUN!=-500.)&(emis17_JUN<1.)&(emis17_JUN>0.)) |
---|
328 | bbtb_ch17_JUN=nonzero((tb17_JUN!=-500.)&(tb17_JUN!=0.)) |
---|
329 | OUTZCH17_JUN = np.zeros([len(np.arange(y0, y1+1, dy)),len(np.arange(x0, x1+1, dx)),30], float) |
---|
330 | outzch17_JUN = np.zeros([len(np.arange(y0, y1+1, dy)),len(np.arange(x0, x1+1, dx))], float) |
---|
331 | lonch17_JUN=np.zeros([len(np.arange(x0, x1+1, dx))], float) |
---|
332 | latch17_JUN=np.zeros([len(np.arange(y0, y1+1, dy))], float) |
---|
333 | |
---|
334 | ## ch18 ## |
---|
335 | bbemis_ch18_JUN=nonzero((emis18_JUN!=-500.)&(emis18_JUN<1.)&(emis18_JUN>0.)) |
---|
336 | bbtb_ch18_JUN=nonzero((tb18_JUN!=-500.)&(tb18_JUN!=0.)) |
---|
337 | OUTZCH18_JUN = np.zeros([len(np.arange(y0, y1+1, dy)),len(np.arange(x0, x1+1, dx)),30], float) |
---|
338 | outzch18_JUN = np.zeros([len(np.arange(y0, y1+1, dy)),len(np.arange(x0, x1+1, dx))], float) |
---|
339 | lonch18_JUN=np.zeros([len(np.arange(x0, x1+1, dx))], float) |
---|
340 | latch18_JUN=np.zeros([len(np.arange(y0, y1+1, dy))], float) |
---|
341 | |
---|
342 | for ijr in range(0,30): |
---|
343 | print 'jour=', ijr+1 |
---|
344 | ## ch17 ## |
---|
345 | ind_jr17_JUN = np.where(jjr17_JUN[bbtb_ch17_JUN] == ijr+1)[0] |
---|
346 | xx = lon17_JUN[bbtb_ch17_JUN][ind_jr17_JUN] |
---|
347 | yy = lat17_JUN[bbtb_ch17_JUN][ind_jr17_JUN] |
---|
348 | zz = tb17_JUN[bbtb_ch17_JUN][ind_jr17_JUN] |
---|
349 | zz0 = min(zz) |
---|
350 | zz1 = max(zz) |
---|
351 | outz, outx, outy = ffgrid2.ffgrid(xx, yy, zz, dx, dy, x0, x1, y0, y1, zz0, zz1) |
---|
352 | outzch17_JUN = outz |
---|
353 | lonch17_JUN = outx |
---|
354 | latch17_JUN = outy |
---|
355 | OUTZCH17_JUN[:,:,ijr] = outzch17_JUN[:,:] |
---|
356 | ## ch18 ## |
---|
357 | ind_jr18_JUN = np.where(jjr18_JUN[bbtb_ch18_JUN] == ijr+1)[0] |
---|
358 | xx = lon18_JUN[bbtb_ch18_JUN][ind_jr18_JUN] |
---|
359 | yy = lat18_JUN[bbtb_ch18_JUN][ind_jr18_JUN] |
---|
360 | zz = tb18_JUN[bbtb_ch18_JUN][ind_jr18_JUN] |
---|
361 | zz0 = min(zz) |
---|
362 | zz1 = max(zz) |
---|
363 | outz, outx, outy = ffgrid2.ffgrid(xx, yy, zz, dx, dy, x0, x1, y0, y1, zz0, zz1) |
---|
364 | outzch18_JUN = outz |
---|
365 | lonch18_JUN = outx |
---|
366 | latch18_JUN = outy |
---|
367 | OUTZCH18_JUN[:,:,ijr] = outzch18_JUN[:,:] |
---|
368 | |
---|
369 | |
---|
370 | ## ch17 ## |
---|
371 | mean_outzch17_JUN = np.zeros([len(latch17_JUN), len(lonch17_JUN)], float) |
---|
372 | for ilon in range (0,len(lonch17_JUN)): |
---|
373 | for ilat in range (0,len(latch17_JUN)): |
---|
374 | mean_outzch17_JUN[ilat,ilon] = OUTZCH17_JUN[ilat,ilon,:].mean() |
---|
375 | |
---|
376 | |
---|
377 | ## ch18 ## |
---|
378 | mean_outzch18_JUN = np.zeros([len(latch18_JUN), len(lonch18_JUN)], float) |
---|
379 | for ilon in range (0,len(lonch18_JUN)): |
---|
380 | for ilat in range (0,len(latch18_JUN)): |
---|
381 | mean_outzch18_JUN[ilat,ilon] = OUTZCH18_JUN[ilat,ilon,:].mean() |
---|
382 | |
---|
383 | |
---|
384 | ## ch17 ## |
---|
385 | tbch17_anom_JUN = np.zeros([len(latch17_JUN),len(lonch17_JUN),30], float) |
---|
386 | for ijr in range (0,30): |
---|
387 | tbch17_anom_JUN[:,:,ijr] = OUTZCH17_JUN[:,:,ijr] - mean_outzch17_JUN[:,:] |
---|
388 | |
---|
389 | |
---|
390 | ## ch18 ## |
---|
391 | tbch18_anom_JUN = np.zeros([len(latch18_JUN),len(lonch18_JUN),30], float) |
---|
392 | for ijr in range (0,30): |
---|
393 | tbch18_anom_JUN[:,:,ijr] = OUTZCH18_JUN[:,:,ijr] - mean_outzch18_JUN[:,:] |
---|
394 | |
---|
395 | |
---|
396 | for ijr in range (23, 30): |
---|
397 | figure() |
---|
398 | plt.ion() |
---|
399 | m = Basemap(llcrnrlon=-60, urcrnrlon=-40, llcrnrlat=-85, urcrnrlat=-75, projection='cyl', resolution='c', fix_aspect=True) |
---|
400 | m.drawcoastlines(linewidth = 1) |
---|
401 | m.drawparallels(np.arange(-85., 75., 2)) |
---|
402 | m.drawmeridians(np.arange(-60., -40., 2)) |
---|
403 | #m.fillcontinents() |
---|
404 | clevs = arange(-25., 5., 0.1) |
---|
405 | xii,yii = m(*np.meshgrid(lonch17_JUN, latch17_JUN)) |
---|
406 | cs = m.contourf(xii, yii, tbch17_anom_JUN[:,:,ijr], clevs, cmap=cm.s3pcpn_l_r) |
---|
407 | cbar = colorbar(cs) |
---|
408 | cbar.set_label('Tb anomaly SSMIS CH17 - JUNE') |
---|
409 | xticks(np.arange(-60., -40., 2)) |
---|
410 | yticks(np.arange(-85., 75., 2)) |
---|
411 | plt.savefig('/usr/home/lahlod/twice_d/figures_output_ANTARC/SSMIS/mean_tb_anomaly_map_'+str(ijr+1)+'JUN_ch17_SSMIS_Zoom_zone2') |
---|
412 | |
---|
413 | |
---|
414 | figure() |
---|
415 | plt.ion() |
---|
416 | m = Basemap(llcrnrlon=-180, urcrnrlon=180, llcrnrlat=-90, urcrnrlat=-30, projection='cyl', resolution='c', fix_aspect=True) |
---|
417 | m.drawcoastlines(linewidth = 1) |
---|
418 | m.drawparallels(np.arange(-90., 90., 20)) |
---|
419 | m.drawmeridians(np.arange(-180., 180., 20)) |
---|
420 | #m.fillcontinents() |
---|
421 | xii,yii = m(*np.meshgrid(lonch17_JUN, latch17_JUN)) |
---|
422 | |
---|
423 | ## BIAIS ch17-ch18 ## |
---|
424 | biais_JUN = mean_outzch17_JUN - mean_outzch18_JUN |
---|
425 | clevs = arange(0., 45., 1.) |
---|
426 | cs = m.contourf(xii, yii, biais_JUN, clevs, cmap=cm.s3pcpn_l_r) |
---|
427 | cbar = colorbar(cs) |
---|
428 | cbar.set_label('Bias [CH17-CH18] of Mean Tb JUNE - SSMIS') |
---|
429 | |
---|
430 | ## VARIANCE ch17 - ch18 ## |
---|
431 | std1 = np.zeros([len(latch17_JUN), len(lonch17_JUN)], float) |
---|
432 | for ilat in range (0, len(latch17_JUN)): |
---|
433 | for ilon in range (0, len(lonch17_JUN)): |
---|
434 | std1[ilat, ilon] = (mean_outzch17_JUN[ilat, ilon]**2)-(mean_outzch18_JUN[ilat, ilon]**2) |
---|
435 | |
---|
436 | |
---|
437 | N = len(lonch17_JUN)*len(latch17_JUN) |
---|
438 | std_JUN = std1/N |
---|
439 | clevs = arange(0., 25., 0.1) |
---|
440 | cs = m.contourf(xii, yii, std_JUN, clevs, cmap=cm.s3pcpn_l_r) |
---|
441 | cbar = colorbar(cs) |
---|
442 | cbar.set_label('Stantard deviation [CH17-CH18] of Mean Tb JUNE - SSMIS') |
---|
443 | |
---|
444 | |
---|
445 | |
---|
446 | ########################## |
---|
447 | # DIAGRAMME DE HOVMOLLER # |
---|
448 | ########################## |
---|
449 | |
---|
450 | # shape(tbch17_anom_JUN) = [ilat, ilon, ijr] |
---|
451 | |
---|
452 | ## tranche de latitude étudiée ## |
---|
453 | #bbtranche17_JUN = nonzero((latch17_JUN == -75.)) |
---|
454 | bbtranche17_JUN = nonzero((latch17_JUN >= -85.) & (latch17_JUN <= -75)) |
---|
455 | #bbtranche17_JUN = nonzero((latch17_JUN >= -90.) & (latch17_JUN <= -85)) |
---|
456 | mean_tbch17_anom_JUN = np.zeros([len(lonch17_JUN), 30], float) |
---|
457 | for ilon in range (0, len(lonch17_JUN)): |
---|
458 | for ijr in range (0,30): |
---|
459 | mean_tbch17_anom_JUN[ilon,ijr] = tbch17_anom_JUN[bbtranche17_JUN][:,ilon,ijr].mean() |
---|
460 | |
---|
461 | |
---|
462 | y_time, x_space = m(*np.meshgrid(arange(0,30,1), lonch17_JUN)) |
---|
463 | fig = plt.figure() |
---|
464 | plt.pcolor(x_space, y_time, mean_tbch17_anom_JUN, cmap=cm.s3pcpn_l_r, vmin = -30., vmax = 25.) |
---|
465 | plt.axis([-180., 180., 0, 29]) |
---|
466 | cb = plt.colorbar() |
---|
467 | cb.set_label('Tb anomaly - SSMIS CH17') |
---|
468 | plt.xticks(arange(-180.,220.,40)) |
---|
469 | plt.yticks(arange(0, 30, 1), arange(1,31,1)) |
---|
470 | plt.xlabel('longitude') |
---|
471 | plt.ylabel('JUNE 2010') |
---|
472 | |
---|