source: trunk/src/scripts_Laura/XCPGR_SSMIS_test.py @ 45

Last change on this file since 45 was 19, checked in by lahlod, 10 years ago

nouveaux scripts

File size: 5.9 KB
Line 
1#!/usr/bin/env python
2# -*- coding: utf-8 -*-
3import string
4import numpy as np
5import matplotlib.pyplot as plt
6from pylab import *
7from mpl_toolkits.basemap import Basemap
8from mpl_toolkits.basemap import shiftgrid, cm
9import netCDF4
10import ffgrid2
11
12
13
14
15
16########################
17# EVOLUTION TEMPORELLE #
18########################
19## Autour d une zone de glace de mer (lon entre -70 et -90 ; lat entre -70 et -80) - mois: JUNE ##
20## ch12 ##
21bbzone_CH12_JUN = nonzero((lon12_JUN >= -90.) & (lon12_JUN <= -70.) & (lat12_JUN >= -80.) & (lat12_JUN <= -70.))
22tb12_JUN_moy = np.zeros([30],float)
23
24## ch13 ##
25bbzone_CH13_JUN = nonzero((lon13_JUN >= -90.) & (lon13_JUN <= -70.) & (lat13_JUN >= -80.) & (lat13_JUN <= -70.))
26tb13_JUN_moy = np.zeros([30],float)
27
28## ch15 ##
29bbzone_CH15_JUN = nonzero((lon15_JUN >= -90.) & (lon15_JUN <= -70.) & (lat15_JUN >= -80.) & (lat15_JUN <= -70.))
30tb15_JUN_moy = np.zeros([30],float)
31
32## ch 16 ##
33bbzone_CH16_JUN = nonzero((lon16_JUN >= -90.) & (lon16_JUN <= -70.) & (lat16_JUN >= -80.) & (lat16_JUN <= -70.))
34tb16_JUN_moy = np.zeros([30],float)
35
36for ijr in range (0,30):
37     print 'jour=', ijr+1
38     ## ch12 ##
39     ind_jr12 = np.where(jjr12_JUN[bbzone_CH12_JUN]==ijr+1)[0]
40     a = tb12_JUN[bbzone_CH12_JUN][ind_jr12]
41     tb12_JUN_moy[ijr] = mean(a[nonzero((a!=-500.)&(a!=0.))])
42     ## ch13 ##
43     ind_jr13 = np.where(jjr13_JUN[bbzone_CH13_JUN]==ijr+1)[0]
44     b = tb13_JUN[bbzone_CH13_JUN][ind_jr13]
45     tb13_JUN_moy[ijr] = mean(b[nonzero((b != -500.) & (b != 0.))])
46     ## ch15 ##
47     ind_jr15 = np.where(jjr15_JUN[bbzone_CH15_JUN]==ijr+1)[0]
48     c = tb15_JUN[bbzone_CH15_JUN][ind_jr15]
49     tb15_JUN_moy[ijr] = mean(c[nonzero((c != -500.) & (c != 0.))])
50     ## ch16 ##
51     ind_jr16 = np.where(jjr16_JUN[bbzone_CH16_JUN]==ijr+1)[0]
52     d = tb16_JUN[bbzone_CH16_JUN][ind_jr16]
53     tb16_JUN_moy[ijr] = mean(d[nonzero((d != -500.) & (d != 0.))])
54
55
56XCPGR = (tb12_JUN_moy - tb16_JUN_moy) / (tb12_JUN_moy + tb16_JUN_moy)
57
58## ch12 - ch13 // ch15 - ch16  ##
59fig=plt.figure()
60plt.subplot(2,1,1)
61plt.plot(arange(0,30,1), tb12_JUN_moy, label = '19.35GHz-H', c = 'r')
62plt.plot(arange(0,30,1), tb13_JUN_moy, label = '19.35GHz-V', c = 'b')
63plt.plot(arange(0,30,1), tb15_JUN_moy, label = '37GHz-H', c = 'm')
64plt.plot(arange(0,30,1), tb16_JUN_moy, label = '37GHz-V', c = 'g')
65plt.xticks(arange(0,30,1), arange(1,31,1))
66grid(True)
67ylabel('brightness temperature')
68legend(loc=7)
69plt.title('SSMIS - JUNE2010')
70plt.subplot(2,1,2)
71plt.plot(arange(0,30,1), XCPGR)
72plt.xticks(arange(0,30,1), arange(1,31,1))
73grid(True)
74ylabel('Cross polarized gradient ratio')
75fig.show()
76
77
78################
79# CARTOGRAPHIE #
80################
81## Etude sur l'Antarctique ##
82dx=5.
83dy=5.
84x0, x1 = -180, 180
85y0, y1 = -90, -30
86
87## ch12 ##
88bbtb_ch12_JUN=nonzero((tb12_JUN!=-500.)&(tb12_JUN!=0.))
89OUTZCH12_JUN = np.zeros([len(np.arange(y0, y1+1, dy)),len(np.arange(x0, x1+1, dx)),30], float)
90outzch12_JUN = np.zeros([len(np.arange(y0, y1+1, dy)),len(np.arange(x0, x1+1, dx))], float)
91lonch12_JUN=np.zeros([len(np.arange(x0, x1+1, dx))], float)
92latch12_JUN=np.zeros([len(np.arange(y0, y1+1, dy))], float)
93
94## ch16 ##
95bbtb_ch16_JUN=nonzero((tb16_JUN!=-500.)&(tb16_JUN!=0.))
96OUTZCH16_JUN = np.zeros([len(np.arange(y0, y1+1, dy)),len(np.arange(x0, x1+1, dx)),30], float)
97outzch16_JUN = np.zeros([len(np.arange(y0, y1+1, dy)),len(np.arange(x0, x1+1, dx))], float)
98lonch16_JUN=np.zeros([len(np.arange(x0, x1+1, dx))], float)
99latch16_JUN=np.zeros([len(np.arange(y0, y1+1, dy))], float)
100
101for ijr in range(0,30):
102    print 'jour=', ijr+1
103    ## ch12 ##
104    ind_jr12_JUN = np.where(jjr12_JUN[bbtb_ch12_JUN] == ijr+1)[0]
105    xx = lon12_JUN[bbtb_ch12_JUN][ind_jr12_JUN]
106    yy = lat12_JUN[bbtb_ch12_JUN][ind_jr12_JUN]
107    zz = tb12_JUN[bbtb_ch12_JUN][ind_jr12_JUN]
108    zz0 = min(zz)
109    zz1 = max(zz)
110    outz, outx, outy = ffgrid2.ffgrid(xx, yy, zz, dx, dy, x0,x1,y0,y1,zz0, zz1)
111    outzch12_JUN=outz
112    lonch12_JUN=outx
113    latch12_JUN=outy
114    OUTZCH12_JUN[:,:,ijr] = outzch12_JUN[:,:]
115    ## ch16 ##
116    ind_jr16_JUN = np.where(jjr16_JUN[bbtb_ch16_JUN] == ijr+1)[0]
117    xx = lon16_JUN[bbtb_ch16_JUN][ind_jr16_JUN]
118    yy = lat16_JUN[bbtb_ch16_JUN][ind_jr16_JUN]
119    zz = tb16_JUN[bbtb_ch16_JUN][ind_jr16_JUN]
120    zz0 = min(zz)
121    zz1 = max(zz)
122    outz, outx, outy = ffgrid2.ffgrid(xx, yy, zz, dx, dy, x0,x1,y0,y1,zz0, zz1)
123    outzch16_JUN=outz
124    lonch16_JUN=outx
125    latch16_JUN=outy
126    OUTZCH16_JUN[:,:,ijr] = outzch16_JUN[:,:]
127
128
129XCPGR = (OUTZCH12_JUN - OUTZCH16_JUN) / (OUTZCH12_JUN + OUTZCH16_JUN)
130
131for ijr in range (13,20):
132    figure()     
133    plt.ion()
134    m = Basemap(llcrnrlon=-180, urcrnrlon=180, llcrnrlat=-90, urcrnrlat=-30, projection='cyl', resolution='c', fix_aspect=True)
135    m.drawcoastlines(linewidth = 1)
136    m.drawparallels(np.arange(-90., 90., 20))
137    m.drawmeridians(np.arange(-180., 180., 20))
138    #m.fillcontinents()
139    xii,yii = m(*np.meshgrid(lonch12_JUN, latch12_JUN))
140    clevs = arange(-0.3, 0.01, 0.01)
141    cs = m.contourf(xii, yii, XCPGR[:,:,ijr], clevs, cmap=cm.s3pcpn_l_r)
142    cbar = colorbar(cs)
143    cbar.set_label('XCPGR SSMIS - JUNE')
144   
145
146##########################
147# DIAGRAMME DE HOVMOLLER #
148##########################
149## Etude sur une tranche de latitude (proche de la cote: entre lat0 = -80 et lat1 = -75 - mois: JUNE ##
150# shape(tbch17_anom_JUN) = [ilat, ilon, ijr]
151bbtranche12_JUN = nonzero((latch12_JUN >= -80.) & (latch12_JUN <= -75.))
152grad_ratio = np.zeros([len(lonch12_JUN), 30], float)
153for ilon in range (0, len(lonch12_JUN)):
154    for ijr in range (0,30):
155        grad_ratio[ilon, ijr] = XCPGR[bbtranche12_JUN][:, ilon, ijr].mean()
156
157
158y_time, x_space = m(*np.meshgrid(arange(0,30,1), lonch12_JUN))
159fig = plt.figure()
160plt.pcolor(x_space, y_time, grad_ratio, cmap=cm.s3pcpn_l_r, vmin = -0.3, vmax = 0.1)
161plt.axis([-180., 180., 0, 29])
162cb = plt.colorbar()
163cb.set_label('Cross polarization gradient ratio - SSMIS CH12-CH16')
164plt.xticks(arange(-180.,220.,40))
165plt.yticks(arange(0, 30, 1), arange(1,31,1))
166plt.xlabel('longitude')
167plt.ylabel('JUNE 2010')
168
Note: See TracBrowser for help on using the repository browser.