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 | |
---|
11 | |
---|
12 | ######################## |
---|
13 | # EVOLUTION TEMPORELLE # |
---|
14 | ######################## |
---|
15 | |
---|
16 | ## Autour de "Dome C" (lon=123.23;lat=-75.06) - mois: JUNE ## |
---|
17 | |
---|
18 | nb_jr = np.array([31, 28, 31]) |
---|
19 | ## ch1 = 89 GHz - V ## |
---|
20 | bbzone_CH1_JAN = nonzero((lon1_JAN >= 120.23) & (lon1_JAN <= 126.23) & (lat1_JAN >= -78.06) & (lat1_JAN <= -72.06)) |
---|
21 | bbzone_CH1_FEB = nonzero((lon1_FEB >= 120.23) & (lon1_FEB <= 126.23) & (lat1_FEB >= -78.06) & (lat1_FEB <= -72.06)) |
---|
22 | bbzone_CH1_MAR = nonzero((lon1_MAR >= 120.23) & (lon1_MAR <= 126.23) & (lat1_MAR >= -78.06) & (lat1_MAR <= -72.06)) |
---|
23 | tb1_JAN_moy = np.zeros([nb_jr[0]],float) |
---|
24 | tb1_FEB_moy = np.zeros([nb_jr[1]],float) |
---|
25 | tb1_MAR_moy = np.zeros([nb_jr[2]],float) |
---|
26 | ## ch2 = 150 GHz - V ## |
---|
27 | bbzone_CH2_JAN = nonzero((lon2_JAN >= 120.23) & (lon2_JAN <= 126.23) & (lat2_JAN >= -78.06) & (lat2_JAN <= -72.06)) |
---|
28 | bbzone_CH2_FEB = nonzero((lon2_FEB >= 120.23) & (lon2_FEB <= 126.23) & (lat2_FEB >= -78.06) & (lat2_FEB <= -72.06)) |
---|
29 | bbzone_CH2_MAR = nonzero((lon2_MAR >= 120.23) & (lon2_MAR <= 126.23) & (lat2_MAR >= -78.06) & (lat2_MAR <= -72.06)) |
---|
30 | tb2_JAN_moy = np.zeros([nb_jr[0]],float) |
---|
31 | tb2_FEB_moy = np.zeros([nb_jr[1]],float) |
---|
32 | tb2_MAR_moy = np.zeros([nb_jr[2]],float) |
---|
33 | |
---|
34 | imo = 0 # JANUARY |
---|
35 | for ijr in range (0,nb_jr[imo]): |
---|
36 | print 'jour=', ijr+1 |
---|
37 | ## ch1 ## |
---|
38 | ind_jr1 = np.where(jjr1_JAN[bbzone_CH1_JAN]==ijr+1)[0] |
---|
39 | b = tb1_JAN[bbzone_CH1_JAN][ind_jr1] |
---|
40 | tb1_JAN_moy[ijr] = mean(b[nonzero((b!=-500.)&(b!=0.))]) |
---|
41 | ## ch2 ## |
---|
42 | ind_jr2 = np.where(jjr2_JAN[bbzone_CH2_JAN]==ijr+1)[0] |
---|
43 | e = tb2_JAN[bbzone_CH2_JAN][ind_jr2] |
---|
44 | tb2_JAN_moy[ijr] = mean(e[nonzero((e != -500.) & (e != 0.))]) |
---|
45 | |
---|
46 | |
---|
47 | imo = 1 # FEBUARY |
---|
48 | for ijr in range (0,nb_jr[imo]): |
---|
49 | print 'jour=', ijr+1 |
---|
50 | ## ch1 ## |
---|
51 | ind_jr1 = np.where(jjr1_FEB[bbzone_CH1_FEB]==ijr+1)[0] |
---|
52 | b = tb1_FEB[bbzone_CH1_FEB][ind_jr1] |
---|
53 | tb1_FEB_moy[ijr] = mean(b[nonzero((b!=-500.)&(b!=0.))]) |
---|
54 | ## ch2 ## |
---|
55 | ind_jr2 = np.where(jjr2_FEB[bbzone_CH2_FEB]==ijr+1)[0] |
---|
56 | e = tb2_FEB[bbzone_CH2_FEB][ind_jr2] |
---|
57 | tb2_FEB_moy[ijr] = mean(e[nonzero((e != -500.) & (e != 0.))]) |
---|
58 | |
---|
59 | |
---|
60 | imo = 2 # MARCH |
---|
61 | for ijr in range (0,nb_jr[imo]): |
---|
62 | print 'jour=', ijr+1 |
---|
63 | ## ch1 ## |
---|
64 | ind_jr1 = np.where(jjr1_MAR[bbzone_CH1_MAR]==ijr+1)[0] |
---|
65 | b = tb1_MAR[bbzone_CH1_MAR][ind_jr1] |
---|
66 | tb1_MAR_moy[ijr] = mean(b[nonzero((b!=-500.)&(b!=0.))]) |
---|
67 | ## ch2 ## |
---|
68 | ind_jr2 = np.where(jjr2_MAR[bbzone_CH2_MAR]==ijr+1)[0] |
---|
69 | e = tb2_MAR[bbzone_CH2_MAR][ind_jr2] |
---|
70 | tb2_MAR_moy[ijr] = mean(e[nonzero((e != -500.) & (e != 0.))]) |
---|
71 | |
---|
72 | |
---|
73 | ## plot tb en fonction du temps - ch1 et ch2 ## |
---|
74 | tb1 = np.append(tb1_JAN_moy, tb1_FEB_moy) |
---|
75 | tb1_month = np.append(tb1, tb1_MAR_moy) |
---|
76 | tb2 = np.append(tb2_JAN_moy, tb2_FEB_moy) |
---|
77 | tb2_month = np.append(tb2, tb2_MAR_moy) |
---|
78 | vec_jours = np.arange(0,90,1) |
---|
79 | fig = plt.figure() |
---|
80 | plt.subplot(2,1,1) |
---|
81 | plt.plot(vec_jours, tb1_month, label = '89GHz-V', c = 'r') |
---|
82 | plt.plot(vec_jours, tb2_month, label = '150GHz-V', c = 'b') |
---|
83 | plt.xticks(np.array([0, 31, 59, 90]), np.array(['JAN', 'FEB', 'MAR'])) |
---|
84 | grid(True) |
---|
85 | ylabel('brightness temperature') |
---|
86 | legend() |
---|
87 | plt.title('AMSUB - 2010') |
---|
88 | ## plot grain-index en fonction du temps ## |
---|
89 | imo = 0 # JANUARY |
---|
90 | grain_ind = 1 - (tb2_month / tb1_month) |
---|
91 | plt.subplot(2,1,2) |
---|
92 | plt.plot(vec_jours, grain_ind, c = 'k') |
---|
93 | plt.xticks(np.array([0, 31, 59, 90]), np.array(['JAN', 'FEB', 'MAR'])) |
---|
94 | grid(True) |
---|
95 | ylabel('Grain-index') |
---|
96 | fig.show() |
---|
97 | |
---|
98 | |
---|
99 | ## difference entre CH1 et CH2 ## |
---|
100 | std_1_2 = np.zeros([len(vec_jours)], float) |
---|
101 | for ijr in range (0, len(vec_jours)): |
---|
102 | std_1_2[ijr] = sqrt((tb1_month[ijr]**2 - tb2_month[ijr]**2) / len(vec_jours)) |
---|
103 | |
---|
104 | |
---|
105 | fig = plt.figure() |
---|
106 | plt.plot(vec_jours, std_1_2, c = 'k') |
---|
107 | fig.show() |
---|