Changeset 51


Ignore:
Timestamp:
08/08/14 18:09:30 (10 years ago)
Author:
lahlod
Message:

new scripts

Location:
trunk/src/scripts_Laura/ARCTIC/Travail_CEN
Files:
5 added
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/scripts_Laura/ARCTIC/Travail_CEN/map_statistic_parameters.py

    r50 r51  
    211211# time evolution (monthly) in a given zone # 
    212212############################################ 
    213 # read monthly std of emis  
    214 ifr = 3 
    215 fichier_temporal_std = Dataset('/net/argos/data/parvati/lahlod/ARCTIC/monthly_GLACE/gridded_data/cartesian_grid/res_40/cartesian_grid_monthly_mean-std_data_lamb_spec_near_nadir_AMSUB' + str(frequ[ifr]) + '_' + month[imo] + '2009.nc', 'r', format='NETCDF3_CLASSIC') 
    216  
    217  
    218  
    219213#zone 1 : yi = 400. // yf = 720. // xi = -1080. // xf = -920. (Canadian Archipelago) 
    220214#zone 2 : yi = 920. // yf = 1280. // xi = -720. // xf = -560. (Chukchi Sea, Bering Detroit) 
  • trunk/src/scripts_Laura/ARCTIC/Travail_CEN/test.py

    r47 r51  
    1313import ffgrid2 
    1414import map_ffgrid 
     15from matplotlib import colors 
    1516from matplotlib.font_manager import FontProperties 
    1617import map_cartesian_grid 
    1718 
    1819 
    19  
    20  
    21  
    22  
     20############################### 
     21# time period characteristics # 
     22############################### 
    2323MONTH = np.array(['01', '02', '03', '04', '05', '06', '07', '08', '09', '10', '11', '12']) 
    2424month = np.array(['JANUARY', 'FEBRUARY', 'MARCH', 'APRIL', 'MAY', 'JUNE', 'JULY', 'AUGUST', 'SEPTEMBER', 'OCTOBER', 'NOVEMBER', 'DECEMBER']) 
     
    2727 
    2828 
    29  
    30  
    31  
    32 frequ = 23 
    33  
    34  
    35 ######################### 
    36 # emissivity thresholds # 
    37 ######################### 
    38 fichier = open('/net/argos/data/parvati/lahlod/ARCTIC/AMSUA_ice_class/AMSUA'+ str(frequ) + '_data_classification_parameters_ice_no-ice_2009.dat', 'r') 
    39 numlines = 0 
    40 for line in fichier: numlines += 1 
    41  
    42 fichier.close() 
    43  
    44 fichier=open('/net/argos/data/parvati/lahlod/ARCTIC/AMSUA_ice_class/AMSUA' + str(frequ) + '_data_classification_parameters_ice_no-ice_2009.dat','r') 
    45 nbtotal = numlines-1 
    46 iligne = 0 
    47 mois = np.zeros([nbtotal],object) 
    48 emis_lim_spec = np.zeros([nbtotal],float) 
    49 emis_lim_lamb = np.zeros([nbtotal],float)  
    50 while (iligne < nbtotal) : 
    51     line=fichier.readline() 
    52     liste = line.split() 
    53     mois[iligne] = str(liste[0]) 
    54     emis_lim_spec[iligne] = float(liste[7]) 
    55     emis_lim_lamb[iligne] = float(liste[8]) 
    56     iligne=iligne+1 
    57  
    58 fichier.close() 
    59 vec = np.arange(0, nbtotal + 1, 50) 
    60 lim_spec = np.zeros([M], float) 
    61 lim_lamb = np.zeros([M], float) 
    62 for imo in range (0, M): 
    63     lim_spec[imo] = emis_lim_spec[vec[imo]] 
    64     lim_lamb[imo] = emis_lim_lamb[vec[imo]] 
    65  
    66  
    67  
     29######################## 
     30# grid characteristics # 
     31######################## 
    6832x0 = -3000. # min limit of grid 
    6933x1 = 2500. # max limit of grid 
     
    7943 
    8044 
    81 emis_spec_moy = np.zeros([ny, nx, M], float) 
    82 emis_lamb_moy = np.zeros([ny, nx, M], float) 
    83 emis_diff = np.zeros([ny, nx, M], float) 
    84 emis_ratio = np.zeros([ny, nx, M], float) 
     45 
     46 
     47grad_rat = np.zeros([M, 31, ny, nx], float) 
     48spec23 = np.zeros([M, 31, ny, nx], float) 
     49spec89 = np.zeros([M, 31, ny, nx], float) 
     50ratio89 = np.zeros([M, 31, ny, nx], float) 
     51for imo in range (0, M):  
     52    # daily read gradient ratio file 
     53    print 'read daily gradient ratio for month ' + month[imo] 
     54    fichier_grad_ratio = Dataset('/net/argos/data/parvati/lahlod/ARCTIC/monthly_GLACE/gridded_data/cartesian_grid/res_40/cartesian_grid_daily_grad_ratio_spec_23-89_near_nadir_AMSUA_' + month[imo] + '2009.nc', 'r', format = 'NETCDF3_CLASSIC') 
     55    gr = fichier_grad_ratio.variables['grad_ratio'][:] 
     56    fichier_grad_ratio.close() 
     57    # read daily emis anomaly file for 23GHz 
     58    print 'read daily emis anomaly 23GHz for month ' + month[imo] 
     59    fichier_anom23 = Dataset('/net/argos/data/parvati/lahlod/ARCTIC/monthly_GLACE/gridded_data/cartesian_grid/res_40/cartesian_grid_daily_data_lamb_spec_ratio_anomaly_near_nadir_AMSUA23_' + month[imo] + '2009.nc', 'r', format = 'NETCDF3_CLASSIC') 
     60    sa_23 = fichier_anom23.variables['spec_anomaly'][:] 
     61    fichier_anom23.close() 
     62    # read daily emis anomaly file for 89GHz 
     63    print 'read daily emis anomaly 89GHz for month ' + month[imo] 
     64    fichier_anom89 = Dataset('/net/argos/data/parvati/lahlod/ARCTIC/monthly_GLACE/gridded_data/cartesian_grid/res_40/cartesian_grid_daily_data_lamb_spec_ratio_anomaly_near_nadir_AMSUA89_' + month[imo] + '2009.nc', 'r', format = 'NETCDF3_CLASSIC') 
     65    sa_89 = fichier_anom89.variables['spec_anomaly'][:] 
     66    ra_89 = fichier_anom89.variables['ratio_anomaly'][:] 
     67    fichier_anom89.close() 
     68    for ijr in range (0, month_day[imo]): 
     69        grad_rat[imo, ijr, :, :] = gr[ijr, :, :] 
     70        spec23[imo, ijr, :, :] = sa_23[ijr, :, :] 
     71        spec89[imo, ijr, :, :] = sa_89[ijr, :, :] 
     72        ratio89[imo, ijr, :, :] = ra_89[ijr, :, :] 
     73       
     74     
     75cumul = abs(grad_rat) + abs(spec23) + abs(spec89) 
     76cumul_month = np.zeros([M, ny, nx], float) 
    8577for imo in range (0, M): 
    86     print 'month ' + month[imo] 
    87     ############## 
    88     # emissivity # 
    89     ############## 
    90     print 'read file for emiss' 
    91     fichier_emis = Dataset('/net/argos/data/parvati/lahlod/ARCTIC/monthly_GLACE/gridded_data/cartesian_grid/res_40/cartesian_grid_monthly_data_lamb_spec_near_nadir_AMSUA' + str(frequ) + '_' + month[imo] + '2009.nc', 'r', format='NETCDF3_CLASSIC') 
    92     xdist = fichier_emis.variables['longitude'][:] 
    93     ydist = fichier_emis.variables['latitude'][:] 
    94     day = fichier_emis.variables['days'][:] 
    95     emis_spec = fichier_emis.variables['e_spec'][:] 
    96     emis_lamb = fichier_emis.variables['e_lamb'][:] 
    97     fichier_emis.close() 
    98     print 'calculation of monthly mean' 
    99     for ilon in range (0, nx): 
    100         for ilat in range (0, ny): 
    101             emis_spec_moy[ilat, ilon, imo] = mean(emis_spec[ilat, ilon, :][nonzero(isnan(emis_spec[ilat, ilon, :]) == False)]) 
    102             emis_lamb_moy[ilat, ilon, imo] = mean(emis_lamb[ilat, ilon, :][nonzero(isnan(emis_lamb[ilat, ilon, :]) == False)]) 
    103     print 'calculation of monthly mean difference lamb-spec' 
    104     emis_diff[:, :, imo] = emis_lamb_moy[:, :, imo] - emis_spec_moy[:, :, imo] 
    105     ######### 
    106     # ratio # 
    107     ######### 
    108     print 'read file for ratio' 
    109     fichier_ratio = Dataset('/net/argos/data/parvati/lahlod/ARCTIC/monthly_GLACE/gridded_data/cartesian_grid/res_40/cartesian_grid_monthly_lamb-spec_ratio_near_nadir_AMSUA' + str(frequ) + '_' + month[imo] + '2009.nc', 'r', format='NETCDF3_CLASSIC') 
    110     xdist = fichier_ratio.variables['longitude'][:] 
    111     ydist = fichier_ratio.variables['latitude'][:] 
    112     emis_ratio[:, :, imo] = fichier_ratio.variables['emis_ratio'][:] 
    113     fichier_ratio.close() 
     78    for ilat in range (0, ny): 
     79        for ilon in range (0, nx): 
     80            cumul_month[imo, ilat, ilon] = mean(cumul[imo, :, ilat, ilon][nonzero(isnan(cumul[imo, :, ilat, ilon]) == False)]) 
     81     
    11482 
    11583 
    11684 
    117 ########################################### 
    118 # emissivity distribution after filtering # 
    119 ########################################### 
     85ion() 
     86x_ind, y_ind, z_ind, volume = arctic_map.arctic_map_lat50() 
     87x_coast = x_ind 
     88y_coast = y_ind 
     89z_coast = z_ind 
     90for imo in range (0, M): 
     91    map_cartesian_grid.draw_map_cartes_l(x_coast, y_coast, z_coast, volume, xvec, yvec, cumul_month[imo, :, :], 0., 0.9, 0.01, cm.s3pcpn_l_r, 'cumul') 
     92    title(month[imo] + ' 2009') 
     93    #plt.savefig('/usr/home/lahlod/twice_d/fig_output_ARCTIC/fig_output_sea_ice_study/ice_class_AMSUA89_AMSUB89/maps/map_bias_AMSUA89-AMSUB89_arctic_' + month[imo] + '2009.png') 
    12094 
    121 hist_val_spec = np.zeros([50, M], float) 
    122 hist_val_lamb = np.zeros([50, M], float) 
    123 hist_val_ratio = np.zeros([50, M], float) 
    124 hist_val_diff = np.zeros([50, M], float) 
    125 corresp_val_spec = np.zeros([50, M], float) 
    126 corresp_val_lamb = np.zeros([50, M], float) 
    127 corresp_val_ratio = np.zeros([50, M], float) 
    128 corresp_val_diff = np.zeros([50, M], float) 
    129 emis_spec_f = np.zeros([7000, M], float) 
    130 emis_lamb_f = np.zeros([7000, M], float) 
    131 emis_ratio_f = np.zeros([7000, M], float) 
    132 emis_diff_f = np.zeros([7000, M], float) 
    133 X = np.zeros([7000, M], float) 
    134 Y = np.zeros([7000, M], float) 
    135 L_spec = np.zeros([M], int) 
    136 for imo in range (0, M): 
    137     print 'month ' + month[imo] 
    138     # choice of spec emissivity as the threshold for the study // definition of x and y index corresponding to the points which emissivity value is over threshold 
    139     y_index_spec = np.where(emis_spec_moy[:, :, imo] >= lim_spec[imo])[0]  
    140     Y[0 : len(y_index_spec), imo] = y_index_spec[:] 
    141     x_index_spec = np.where(emis_spec_moy[:, :, imo] >= lim_spec[imo])[1] 
    142     X[0 : len(x_index_spec), imo] = x_index_spec[:] 
    143     L_spec[imo] = len(x_index_spec) # = len(y_index) 
    144 #print 'length of x and y index ', L_spec[imo] 
    145 # definition of filtered values (vectors) with the previous threshold // values of filtered emissivity SPEC, LAMB, rate and difference LAMB-SPEC  
    146 for ii in range (0, L_spec[imo]): 
    147 emis_spec_f[ii, imo] = emis_spec_moy[y_index_spec[ii], x_index_spec[ii], imo] 
    148 emis_lamb_f[ii, imo] = emis_lamb_moy[y_index_spec[ii], x_index_spec[ii], imo] 
    149 emis_ratio_f[ii, imo] = emis_ratio[y_index_spec[ii], x_index_spec[ii], imo] 
    150 emis_diff_f[ii, imo] = emis_diff[y_index_spec[ii], x_index_spec[ii], imo] 
    151 # definition of their distribution within the new filtered values 
    152 hist_val_spec[:, imo] = hist(emis_spec_f, bins = 50, normed = True, histtype='step')[0] 
    153 hist_val_lamb[:, imo] = hist(emis_lamb_f, bins = 50, normed = True, histtype='step')[0] 
    154 hist_val_ratio[:, imo] = hist(emis_ratio_f, bins = 50, normed = True, histtype='step')[0] 
    155 hist_val_diff[:, imo] = hist(emis_diff_f, bins = 50, normed = True, histtype='step')[0] 
    156 for ibin in range (0, 50): 
    157 corresp_val_spec[ibin, imo] = mean(hist(emis_spec_f, bins = 50, normed = True, histtype='step')[1][ibin : ibin + 2]) 
    158 corresp_val_lamb[ibin, imo] = mean(hist(emis_lamb_f, bins = 50, normed = True, histtype='step')[1][ibin : ibin + 2]) 
    159 corresp_val_ratio[ibin, imo] = mean(hist(emis_ratio_f, bins = 50, normed = True, histtype='step')[1][ibin : ibin + 2]) 
    160 corresp_val_diff[ibin, imo] = mean(hist(emis_diff_f, bins = 50, normed = True, histtype='step')[1][ibin : ibin + 2]) 
    161  
    162  
    163 return(emis_spec_f, emis_lamb_f, emis_ratio_f, emis_diff_f, L_spec)   
    164  
    165  
    166  
    167 ''' 
    168 ######## 
    169 # plot # 
    170 ######## 
    171 c = np.array(['r', 'b', 'c', 'm', 'y', 'g']) 
    172 figure() 
    173 for imo in range (0, 6): 
    174 plot(corresp_val[:, imo], hist_val[:, imo], c = str(c[imo]), label = str(month[imo])) 
    175  
    176 grid() 
    177 xlim(corresp_val.min() - 0.02, corresp_val.max() + 0.02) 
    178 xlabel('emissivity parameter') 
    179 ylabel('frequency of occurence') 
    180 fontP = FontProperties() 
    181 fontP.set_size('small') 
    182 legend(prop = fontP) 
    183 #plt.savefig('/usr/home/lahlod/twice_d/fig_output_ARCTIC/fig_output_sea_ice_study/ice_class_AMSUA/emiss_rate_AMSUA30_JANUARY-JUNE_2009.png') 
    184 ## plot six following months of spec emissivity histograms ## 
    185 figure() 
    186 for imo in range (6, M): 
    187 plot(corresp_val[:, imo], hist_val[:, imo], c = str(c[imo - 6]), label = str(month[imo])) 
    188  
    189 grid() 
    190 xlim(corresp_val.min() - 0.02, corresp_val.max() + 0.02) 
    191 xlabel('emissivity parameter') 
    192 ylabel('frequency of occurence') 
    193 legend(loc = 1, prop = fontP) 
    194 #plt.savefig('/usr/home/lahlod/twice_d/fig_output_ARCTIC/fig_output_sea_ice_study/ice_class_AMSUA/emiss_rate_AMSUA30_JULY-DECEMBER_2009.png') 
    195 ''' 
Note: See TracChangeset for help on using the changeset viewer.