Ignore:
Timestamp:
07/30/14 18:21:31 (10 years ago)
Author:
lahlod
Message:

new_scripts

File:
1 edited

Legend:

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

    r46 r47  
    4141 
    4242 
     43frequ = 89 
    4344 
    4445##################### 
     
    5657    ### emissivity ### 
    5758    print 'open emissivity file' 
    58     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_AMSUA30_' + str(month[imo]) + '2009.nc', 'r', format='NETCDF3_CLASSIC') 
     59    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_AMSUB' + str(frequ) + '_' + str(month[imo]) + '2009.nc', 'r', format='NETCDF3_CLASSIC') 
    5960    xdist = fichier_emis.variables['longitude'][:] 
    6061    ydist = fichier_emis.variables['latitude'][:] 
     
    7071    ### monthly emissivity ratio ### 
    7172    print 'open emissivity ratio file' 
    72     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_AMSUA30_' + str(month[imo]) + '2009.nc', 'r', format='NETCDF3_CLASSIC') 
     73    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_AMSUB' + str(frequ) + '_' + str(month[imo]) + '2009.nc', 'r', format='NETCDF3_CLASSIC') 
    7374    xdist = fichier_ratio.variables['longitude'][:] 
    7475    ydist = fichier_ratio.variables['latitude'][:] 
     
    9495 
    9596c = np.array(['r', 'b', 'c', 'm', 'y', 'g']) 
    96 limit_coef_spec = np.array([0.6, 0.6, 0.7, 0.8, 0.75]) # i1 = AMSUA23GHz / i2 = AMSUA30GHz / i3 = AMSUA50GHz / i4 = AMSUA89GHz / i5 = AMSUB89GHz 
    97 limit_coef_lamb = np.array([0.6, 0.6, 0.8, 0.8, 0.77]) # i1 = AMSUA23GHz / i2 = AMSUA30GHz / i3 = AMSUA50GHz / i4 = AMSUA89GHz / i5 = AMSUB89GHz 
    98 idata = 1 
     97#limit_coef_spec = np.array([0.6, 0.6, 0.7, 0.8, 0.75]) # i1 = AMSUA23GHz / i2 = AMSUA30GHz / i3 = AMSUA50GHz / i4 = AMSUA89GHz / i5 = AMSUB89GHz 
     98#limit_coef_lamb = np.array([0.6, 0.6, 0.8, 0.8, 0.77]) # i1 = AMSUA23GHz / i2 = AMSUA30GHz / i3 = AMSUA50GHz / i4 = AMSUA89GHz / i5 = AMSUB89GHz 
     99#idata = 0 
     100fontP = FontProperties() 
     101fontP.set_size('small') 
    99102print 'distribution of emissivity values' 
    100103################################### 
     
    119122xlabel('emissivity SPEC') 
    120123ylabel('frequency of occurence') 
    121 fontP = FontProperties() 
    122 fontP.set_size('small') 
    123124legend(loc = 2, prop = fontP) 
    124 plt.savefig('/usr/home/lahlod/twice_d/fig_output_ARCTIC/fig_output_sea_ice_study/ice_class_AMSUA/emiss_spec_AMSUA30_JANUARY-JUNE_2009.png') 
     125#plt.savefig('/usr/home/lahlod/twice_d/fig_output_ARCTIC/fig_output_sea_ice_study/ice_class_AMSUA/emiss_spec_AMSUA' + str(frequ) + '_JANUARY-JUNE_2009.png') 
    125126## plot six following months of spec emissivity histograms ## 
    126127figure() 
     
    133134ylabel('frequency of occurence') 
    134135legend(loc = 9, prop = fontP) 
    135 plt.savefig('/usr/home/lahlod/twice_d/fig_output_ARCTIC/fig_output_sea_ice_study/ice_class_AMSUA/emiss_spec_AMSUA30_JULY-DECEMBER_2009.png') 
     136#plt.savefig('/usr/home/lahlod/twice_d/fig_output_ARCTIC/fig_output_sea_ice_study/ice_class_AMSUA/emiss_spec_AMSUA' + str(frequ) + '_JULY-DECEMBER_2009.png') 
    136137 
    137138# find the emissivity value corresponding to the threshold of ice/no_ice limit 
     
    139140for imo in range (0, M): 
    140141    print 'month ' + str(month[imo]) 
    141     bb = np.where((corresp_emis_spec[imo, :] < limit_coef_spec[idata]))[0] # only consider low emissivity values (open sea) // CHANGE EMISSIVITY VALUE ACCORDING TO FREQUENCY 
    142     aa = np.where(hist_vals_spec[imo, bb] < max(hist_vals_spec[imo, bb]) / 2.)[0] # of these latter values, only consider emissivity values lower than 1/4*peak emissivity 
    143     cc = np.where(hist_vals_spec[imo, bb] == max(hist_vals_spec[imo, bb]))[0] # which emissivity index corresponds to peak emissivity 
    144     dd = np.where(aa > cc[0])[0] 
    145     emis_lim_spec[imo] = corresp_emis_spec[imo, bb][aa][dd[0]] 
     142    bb = np.where((corresp_emis_spec[imo, :] > 0.7) & (corresp_emis_spec[imo, :] < 0.77))[0] # only consider low emissivity values (open sea) // CHANGE EMISSIVITY VALUE ACCORDING TO FREQUENCY 
     143    aa = np.where(hist_vals_spec[imo, bb] == min(hist_vals_spec[imo, bb]))[0] # of these latter values, only consider emissivity values lower than 1/4*peak emissivity 
     144    #cc = np.where(hist_vals_spec[imo, bb] == max(hist_vals_spec[imo, bb]))[0] # which emissivity index corresponds to peak emissivity 
     145    #dd = np.where(aa > cc[0])[0] 
     146    emis_lim_spec[imo] = corresp_emis_spec[imo, bb][aa][0] 
    146147 
    147148# plot monthly evolution of emissivity spec threshold used for delimitation 
     
    153154legend(loc = 2) 
    154155xlim(-1, M) 
    155 plt.savefig('/usr/home/lahlod/twice_d/fig_output_ARCTIC/fig_output_sea_ice_study/ice_class_AMSUA/emis_lim_frequ_SPEC_AMSUA30_2009.png') 
     156plt.savefig('/usr/home/lahlod/twice_d/fig_output_ARCTIC/fig_output_sea_ice_study/ice_class_AMSUB/emis_lim_frequ_SPEC_AMSUB' + str(frequ) + '_2009.png') 
    156157 
    157158 
     
    177178ylabel('frequency of occurence') 
    178179legend(loc = 2, prop = fontP) 
    179 plt.savefig('/usr/home/lahlod/twice_d/fig_output_ARCTIC/fig_output_sea_ice_study/ice_class_AMSUA/emiss_lamb_AMSUA30_JANUARY-JUNE_2009.png') 
     180#plt.savefig('/usr/home/lahlod/twice_d/fig_output_ARCTIC/fig_output_sea_ice_study/ice_class_AMSUA/emiss_lamb_AMSUA' + str(frequ) + '_JANUARY-JUNE_2009.png') 
    180181## plot six following months of spec emissivity histograms ## 
    181182figure() 
     
    188189ylabel('frequency of occurence') 
    189190legend(loc = 9, prop = fontP) 
    190 plt.savefig('/usr/home/lahlod/twice_d/fig_output_ARCTIC/fig_output_sea_ice_study/ice_class_AMSUA/emiss_lamb_AMSUA30_JULY-DECEMBER_2009.png') 
     191#plt.savefig('/usr/home/lahlod/twice_d/fig_output_ARCTIC/fig_output_sea_ice_study/ice_class_AMSUA/emiss_lamb_AMSUA' + str(frequ) + '_JULY-DECEMBER_2009.png') 
    191192 
    192193# find the emissivity value corresponding to the threshold of ice/no_ice limit 
     
    194195for imo in range (0, M): 
    195196    print 'month ' + str(month[imo]) 
    196     bb = np.where((corresp_emis_lamb[imo, :] < limit_coef_lamb[idata]))[0] # only consider low emissivity values (open sea) // CHANGE EMISSIVITY VALUE ACCORDING TO FREQUENCY 
    197     aa = np.where(hist_vals_lamb[imo, bb] < max(hist_vals_lamb[imo, bb]) / 2.)[0] # of these latter values, only consider emissivity values lower than 1/4*peak emissivity 
    198     cc = np.where(hist_vals_lamb[imo, bb] == max(hist_vals_lamb[imo, bb]))[0] # which emissivity index corresponds to peak emissivity 
    199     dd = np.where(aa > cc[0])[0] 
    200     emis_lim_lamb[imo] = corresp_emis_lamb[imo, bb][aa][dd[0]] 
     197    bb = np.where((corresp_emis_lamb[imo, :] > 0.72) & (corresp_emis_lamb[imo, :] < 0.8))[0] # only consider low emissivity values (open sea) // CHANGE EMISSIVITY VALUE ACCORDING TO FREQUENCY 
     198    aa = np.where(hist_vals_lamb[imo, bb] == min(hist_vals_lamb[imo, bb]))[0] # of these latter values, only consider emissivity values lower than 1/4*peak emissivity 
     199    #cc = np.where(hist_vals_lamb[imo, bb] == max(hist_vals_lamb[imo, bb]))[0] # which emissivity index corresponds to peak emissivity 
     200    #dd = np.where(aa > cc[0])[0] 
     201    emis_lim_lamb[imo] = corresp_emis_lamb[imo, bb][aa][0] 
    201202 
    202203# plot monthly evolution of emissivity spec threshold used for delimitation 
     
    208209legend(loc = 2) 
    209210xlim(-1, M) 
    210 plt.savefig('/usr/home/lahlod/twice_d/fig_output_ARCTIC/fig_output_sea_ice_study/ice_class_AMSUA/emis_lim_frequ_LAMB_AMSUA30_2009.png') 
     211plt.savefig('/usr/home/lahlod/twice_d/fig_output_ARCTIC/fig_output_sea_ice_study/ice_class_AMSUB/emis_lim_frequ_LAMB_AMSUB' + str(frequ) + '_2009.png') 
    211212 
    212213 
     
    233234ylabel('frequency of occurence') 
    234235legend(prop = fontP) 
    235 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') 
     236#plt.savefig('/usr/home/lahlod/twice_d/fig_output_ARCTIC/fig_output_sea_ice_study/ice_class_AMSUA/emiss_rate_AMSUA'+str(frequ)+'_JANUARY-JUNE_2009.png') 
    236237## plot six following months of spec emissivity histograms ## 
    237238figure() 
     
    244245ylabel('frequency of occurence') 
    245246legend(loc = 9, prop = fontP) 
    246 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') 
     247#plt.savefig('/usr/home/lahlod/twice_d/fig_output_ARCTIC/fig_output_sea_ice_study/ice_class_AMSUA/emiss_rate_AMSUA'+str(frequ)+'_JULY-DECEMBER_2009.png') 
    247248 
    248249# no definition of threshold for ICE / NO_ICE delimitation because no apparent distinction signal // use of this signal for internal ice classification 
     
    280281legend(loc = 2, prop = fontP) 
    281282xlim(-1, M) 
    282 plt.savefig('/usr/home/lahlod/twice_d/fig_output_ARCTIC/fig_output_sea_ice_study/ice_class_AMSUA/emis_lim_frequ_spec_and_lamb_AMSUA30_2009.png') 
     283plt.savefig('/usr/home/lahlod/twice_d/fig_output_ARCTIC/fig_output_sea_ice_study/ice_class_AMSUB/emis_lim_frequ_spec_and_lamb_AMSUB' + str(frequ) + '_2009.png') 
    283284 
    284285 
     
    304305            else: 
    305306                if (emis_spec_month[imo, ilat, ilon] <= emis_lim_spec[imo]): # use the monthly SPEC emissivity threshold  
    306                     ice_zone_spec[imo, ilat, ilon] = 0. 
     307                    ice_zone_spec[imo, ilat, ilon] = NaN 
    307308                else: 
    308                     ice_zone_spec[imo, ilat, ilon] = 1.    
    309     map_cartesian_grid.draw_map_cartes_l(x_coast, y_coast, z_coast, volume, xdist, ydist, ice_zone_spec[imo, :, :], -1, 2., 1., colors.ListedColormap(['0.5', 'blue']), 'Ice limit (threshold : emis_SPEC > ' + str(emis_lim_spec[imo])[0:6] + ')') 
    310     title(str(month[imo]) + ' 2009 - AMSUA 30GHz') 
    311     plt.savefig('/usr/home/lahlod/twice_d/fig_output_ARCTIC/fig_output_sea_ice_study/ice_class_AMSUA/AMSUA30_ice_emis_spec_thresh' + '_' + month[imo] + '2009.png') 
     309                    ice_zone_spec[imo, ilat, ilon] = emis_spec_month[imo, ilat, ilon]    
     310    map_cartesian_grid.draw_map_cartes_l(x_coast, y_coast, z_coast, volume, xdist, ydist, ice_zone_spec[8, :, :], 0.5, 1.02, 0.01,  cm.s3pcpn_l_r, 'Sea ice emissivity spec (threshold : emis_SPEC > ' + str(emis_lim_spec[imo])[0:6] + ')') 
     311    title(str(month[imo]) + ' 2009 - AMSUA ' + str(frequ) + 'GHz') 
     312    plt.savefig('/usr/home/lahlod/twice_d/fig_output_ARCTIC/fig_output_sea_ice_study/ice_class_AMSUA/AMSUA' + str(frequ) + '_ice_emis_spec_thresh' + '_' + month[imo] + '2009.png') 
    312313 
    313314#### LAMB emiss #### 
     
    322323            else: 
    323324                if (emis_lamb_month[imo, ilat, ilon] <= emis_lim_lamb[imo]): # use the monthly SPEC emissivity threshold  
    324                     ice_zone_lamb[imo, ilat, ilon] = 0. 
     325                    ice_zone_lamb[imo, ilat, ilon] = NaN 
    325326                else: 
    326                     ice_zone_lamb[imo, ilat, ilon] = 1.    
    327     map_cartesian_grid.draw_map_cartes_l(x_coast, y_coast, z_coast, volume, xdist, ydist, ice_zone_lamb[imo, :, :], -1, 2., 1., colors.ListedColormap(['0.5', 'blue']), 'Ice limit (threshold : emis_LAMB > ' + str(emis_lim_lamb[imo])[0:6] + ')') 
    328     title(str(month[imo]) + ' 2009 - AMSUA 30GHz') 
    329     plt.savefig('/usr/home/lahlod/twice_d/fig_output_ARCTIC/fig_output_sea_ice_study/ice_class_AMSUA/AMSUA30_ice_emis_lamb_thresh' + '_' + month[imo] + '2009.png') 
     327                    ice_zone_lamb[imo, ilat, ilon] = emis_lamb_month[imo, ilat, ilon]      
     328    map_cartesian_grid.draw_map_cartes_l(x_coast, y_coast, z_coast, volume, xdist, ydist, ice_zone_lamb[8, :, :], 0.5, 1.02, 0.01,  cm.s3pcpn_l_r, 'Sea ice emissivity lamb (threshold : emis_LAMB > ' + str(emis_lim_lamb[imo])[0:6] + ')') 
     329    title(str(month[imo]) + ' 2009 - AMSUA ' + str(frequ) + 'GHz') 
     330    plt.savefig('/usr/home/lahlod/twice_d/fig_output_ARCTIC/fig_output_sea_ice_study/ice_class_AMSUA/AMSUA' + str(frequ) + '_ice_emis_lamb_thresh' + '_' + month[imo] + '2009.png') 
    330331 
    331332 
     
    343344for imo in range (0, M): 
    344345    ice_spec = reshape(ice_zone_spec[imo, :, :], size(ice_zone_spec[imo, :, :])) 
    345     nb_pix_spec[imo] = len(np.where(ice_spec == 1.)[0]) 
     346    nb_pix_spec[imo] = len(np.where(isnan(ice_spec) == False)[0]) 
    346347    total_ice_area_spec[imo] = (pix_area * nb_pix_spec[imo]) + (926. * pix_area) 
    347348 
     
    353354for imo in range (0, M): 
    354355    ice_lamb = reshape(ice_zone_lamb[imo, :, :], size(ice_zone_lamb[imo, :, :])) 
    355     nb_pix_lamb[imo] = len(np.where(ice_lamb == 1.)[0]) 
     356    nb_pix_lamb[imo] = len(np.where(isnan(ice_lamb) == False)[0]) 
    356357    total_ice_area_lamb[imo] = (pix_area * nb_pix_lamb[imo]) + (926. * pix_area) 
    357358 
     
    364365###################### 
    365366print 'start stacking in .dat file' 
    366 data_classif = open ('/net/argos/data/parvati/lahlod/ARCTIC/AMSUA_ice_class/AMSUA30_data_classification_parameters_ice_no-ice_2009.dat', 'a') 
     367data_classif = open ('/net/argos/data/parvati/lahlod/ARCTIC/AMSUB_ice_class/AMSUB'+str(frequ)+'_data_classification_parameters_ice_no-ice_2009.dat', 'a') 
    367368for imo in range (0, M): 
    368369    for ii in range (0, 50): 
     
    391392for imo in range (0, M): 
    392393    print 'stack in file month ' + str(month[imo]) 
    393     rootgrp = Dataset('/net/argos/data/parvati/lahlod/ARCTIC/AMSUA_ice_class/cartesian_grid_map_ice_no-ice_' + month[imo] + '2009_AMSUA30_spec_lamb_thresholds.nc', 'w', format='NETCDF3_CLASSIC') 
     394    rootgrp = Dataset('/net/argos/data/parvati/lahlod/ARCTIC/AMSUB_ice_class/cartesian_grid_map_ice_no-ice_' + month[imo] + '2009_AMSUB' + str(frequ) + '_spec_lamb_thresholds.nc', 'w', format='NETCDF3_CLASSIC') 
    394395    rootgrp.createDimension('longitude', len(xdist)) 
    395396    rootgrp.createDimension('latitude', len(ydist)) 
Note: See TracChangeset for help on using the changeset viewer.