Changeset 54 for trunk/src/scripts_Laura
- Timestamp:
- 08/13/14 19:00:17 (10 years ago)
- Location:
- trunk/src/scripts_Laura/ARCTIC/Travail_CEN
- Files:
-
- 1 added
- 7 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/scripts_Laura/ARCTIC/Travail_CEN/cartesian_grid_monthly.py
r41 r54 8 8 from mpl_toolkits.basemap import Basemap 9 9 from mpl_toolkits.basemap import shiftgrid, cm 10 import draw_map 10 11 11 12 12 #################################################### -
trunk/src/scripts_Laura/ARCTIC/Travail_CEN/choose_new_classified_points.py
r49 r54 44 44 ################################################################################################################## 45 45 # We devide the loop in two steps : 46 # - first loop concerns all months except for AUGUST and SEPTEMBER - use of AMSUA23GHz SPEC emissivity to seperate ice from no-ice zones47 # - second loop concerns AUGUST and SEPTEMBER - use of AMSUA30GHz SPEC emissivity to seperate ice from no_ice zones46 # - first loop concerns JANUARY, FEBRUARY, MARCH, APRIL, SEPTEMBER, OCTOBER, NOVEMBER, DECEMBER - use of AMSUA23GHz SPEC emissivity to seperate ice from no-ice zones 47 # - second loop concerns MAY, JUNE, JULY, AUGUST - use of AMSUA89GHz SPEC emissivity to seperate ice from no_ice zones 48 48 ################################################################################################################## 49 frequ = 23 # apply threshold on this frequency 50 # open .dat file to stack data (see end of loop) 51 #data_classif = open ('/net/argos/data/parvati/lahlod/ARCTIC/AMSUA_ice_class/sub_classification/AMSUA'+str(frequ)+'_data_classification_parameters_ice_no-ice_with_AMSUA23-and-30-spec_2009.dat', 'a') 49 frequ = 89 # apply threshold on this frequency 50 ''' 51 #open .dat file to stack data (see end of loop) 52 data_classif = open ('/net/argos/data/parvati/lahlod/ARCTIC/AMSUA_ice_class/sub_classification/AMSUA'+str(frequ)+'_data_classification_parameters_ice_no-ice_with_AMSUA23-and-30-spec_2009.dat', 'a') 52 53 bin = 50 53 54 55 # monthly mean parameter (2D-array) on ARCTIC area 56 spec_month = np.zeros([M, ny, nx], float) 57 lamb_month = np.zeros([M, ny, nx], float) 58 diff_month = np.zeros([M, ny, nx], float) 59 ratio_month = np.zeros([M, ny, nx], float) 60 # monthly mean parameter (2D-array) on ARCTIC SEA ICE area 61 spec_ice = np.zeros([M, ny, nx], float) 62 lamb_ice = np.zeros([M, ny, nx], float) 63 diff_ice = np.zeros([M, ny, nx], float) 64 ratio_ice = np.zeros([M, ny, nx], float) 54 ''' 55 56 57 # daily parameter (2D-array) on ARCTIC area 58 emis_spec = np.zeros([M, ny, nx, 31], float) 59 emis_lamb = np.zeros([M, ny, nx, 31], float) 60 emis_diff = np.zeros([M, ny, nx, 31], float) 61 emis_ratio = np.zeros([M, ny, nx, 31], float) 62 63 # daily parameter (2D-array) on ARCTIC SEA ICE area 64 daily_spec_ice = np.zeros([M, ny, nx, 31], float) 65 daily_lamb_ice = np.zeros([M, ny, nx, 31], float) 66 daily_diff_ice = np.zeros([M, ny, nx, 31], float) 67 daily_ratio_ice = np.zeros([M, ny, nx, 31], float) 68 69 ''' 65 70 # monthly mean parameter (1D-array) on ARCTIC SEA ICE area transformed into vector 66 71 spec_vec = np.zeros([M, ny * nx], float) … … 68 73 diff_vec = np.zeros([M, ny * nx], float) 69 74 ratio_vec = np.zeros([M, ny * nx], float) 75 70 76 # histogram distribution (intensity of occurence) of parameter in SEA ICE area (1D-array, bins = 200) 71 77 hist_vals_spec = np.zeros([M, bin], float) … … 73 79 hist_vals_diff = np.zeros([M, bin], float) 74 80 hist_vals_ratio = np.zeros([M, bin], float) 81 75 82 # histogram distribution (emissivity value) of parameter in SEA ICE area (1D-array, bins = 200) 76 83 corresp_emis_spec = np.zeros([M, bin], float) … … 78 85 corresp_emis_diff = np.zeros([M, bin], float) 79 86 corresp_emis_ratio = np.zeros([M, bin], float) 80 months1 = np.array([0, 1, 2, 3, 4, 5, 6, 9, 10, 11]) # use AMSUA 23GHz to delimit ice/no_ice for all months except for AUGUST and SEPTEMBER 87 ''' 88 months1 = np.array([0, 1, 2, 3, 8, 9, 10, 11]) # use AMSUA 23GHz to delimit ice/no_ice for JANUARY, FEBRUARY, MARCH, APRIL, SEPTEMBER, OCTOBER, NOVEMBER, DECEMBER 81 89 for imo in months1: 82 90 print 'month ' + month[imo] … … 94 102 print 'open emissivity to sub_classify file' 95 103 ## data of emis SPEC, LAMB, DIFF(SPEC-LAMB) 96 fichier_e = Dataset('/net/argos/data/parvati/lahlod/ARCTIC/monthly_GLACE/gridded_data/cartesian_grid/res_40/cartesian_grid_monthly_data_lamb_spec_near_nadir_AMSU A' + str(frequ) + '_' + str(month[imo]) + '2009.nc', 'r', format='NETCDF3_CLASSIC')104 fichier_e = 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') 97 105 day = fichier_e.variables['days'][:] 98 emis_spec = fichier_e.variables['e_spec'][:]99 emis_lamb = fichier_e.variables['e_lamb'][:]100 emis_diff = fichier_e.variables['e_spec_lamb'][:]106 emis_spec[imo, :, :, 0 : month_day[imo]] = fichier_e.variables['e_spec'][:] 107 emis_lamb[imo, :, :, 0 : month_day[imo]] = fichier_e.variables['e_lamb'][:] 108 emis_diff[imo, :, :, 0 : month_day[imo]] = fichier_e.variables['e_spec_lamb'][:] 101 109 fichier_e.close() 102 for ilon in range (0, nx): 103 for ilat in range (0, ny): 104 spec_month[imo, ilat, ilon] = mean(emis_spec[ilat, ilon, :][nonzero(isnan(emis_spec[ilat, ilon, :]) == False)]) 105 lamb_month[imo, ilat, ilon] = mean(emis_lamb[ilat, ilon, :][nonzero(isnan(emis_lamb[ilat, ilon, :]) == False)]) 106 diff_month[imo, ilat, ilon] = mean(emis_diff[ilat, ilon, :][nonzero(isnan(emis_diff[ilat, ilon, :]) == False)]) 107 ## data of emis RATIO 108 fichier_r = 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) + '_' + str(month[imo]) + '2009.nc', 'r', format='NETCDF3_CLASSIC') 109 ratio_month[imo, :, :] = fichier_r.variables['emis_ratio'][:] 110 fichier_r.close() 111 print 'compute matrix of parameter on SEA ICE area' 112 for ilon in range (0, nx): 113 for ilat in range (0, ny): 114 if (isnan(spec_lim[ilat, ilon]) == True): 115 spec_ice[imo, ilat, ilon] = NaN 116 lamb_ice[imo, ilat, ilon] = NaN 117 diff_ice[imo, ilat, ilon] = NaN 118 ratio_ice[imo, ilat, ilon] = NaN 119 else: 120 spec_ice[imo, ilat, ilon] = spec_month[imo, ilat, ilon] 121 lamb_ice[imo, ilat, ilon] = lamb_month[imo, ilat, ilon] 122 diff_ice[imo, ilat, ilon] = diff_month[imo, ilat, ilon] 123 ratio_ice[imo, ilat, ilon] = ratio_month[imo, ilat, ilon] 110 # calculate emis ratio daily 111 for ijr in range (0, month_day[imo]): 112 for ilon in range (0, nx): 113 for ilat in range (0, ny): 114 emis_ratio[imo, ilat, ilon, ijr] = ((emis_lamb[imo, ilat, ilon, ijr] - emis_spec[imo, ilat, ilon, ijr]) / emis_spec[imo, ilat, ilon, ijr]) * 100. 115 if (isnan(spec_lim[ilat, ilon]) == True): 116 daily_spec_ice[imo, ilat, ilon, ijr] = NaN 117 daily_lamb_ice[imo, ilat, ilon, ijr] = NaN 118 daily_diff_ice[imo, ilat, ilon, ijr] = NaN 119 daily_ratio_ice[imo, ilat, ilon, ijr] = NaN 120 else: 121 daily_spec_ice[imo, ilat, ilon, ijr] = emis_spec[imo, ilat, ilon, ijr] 122 daily_lamb_ice[imo, ilat, ilon, ijr] = emis_lamb[imo, ilat, ilon, ijr] 123 daily_diff_ice[imo, ilat, ilon, ijr] = emis_diff[imo, ilat, ilon, ijr] 124 daily_ratio_ice[imo, ilat, ilon, ijr] = emis_ratio[imo, ilat, ilon, ijr] 125 ''' 126 # ATTENTION : previous part of script has been modified ==> cannot be applied directly to this following part of script (modification of arrays and names.... 124 127 print 'compute SPEC distribution' 125 128 ######## … … 163 166 print 'start stacking in .dat file' 164 167 #data_classif = open ('/net/argos/data/parvati/lahlod/ARCTIC/AMSUB_ice_class/sub_classification/AMSUB'+str(frequ)+'_data_classification_parameters_ice_no-ice_with_AMSUA23-spec_2009.dat', 'a') 165 '''for ii in range (0, bin):168 for ii in range (0, bin): 166 169 data_classif.write(('%(months)10s %(hist_vals_spec)10.5f %(corresp_emis_spec)10.5f %(hist_vals_lamb)10.5f %(corresp_emis_lamb)10.5f %(hist_vals_diff)10.5f %(corresp_emis_diff)10.5f %(hist_vals_rate)10.5f %(corresp_emis_rate)10.5f \n' % { 167 170 'months':month[imo], … … 174 177 'hist_vals_rate':hist_vals_ratio[imo, ii], 175 178 'corresp_emis_rate':corresp_emis_ratio[imo, ii], 176 }))''' 179 })) 180 ''' 177 181 ######################## 178 182 # stack in netcdf file # 179 183 ######################## 180 184 print 'stack in file month ' + str(month[imo]) 181 rootgrp = Dataset('/net/argos/data/parvati/lahlod/ARCTIC/AMSUA_ice_class/sub_classification/cartesian_grid_map_sea_ice_extent_with-AMSUA23-and-30_' + month[imo] + '2009_AMSUA' + str(frequ) + '_spec_lamb_thresholds.nc', 'w', format='NETCDF3_CLASSIC') 182 rootgrp.createDimension('longitude', len(xvec)) 183 rootgrp.createDimension('latitude', len(yvec)) 185 rootgrp = Dataset('/net/argos/data/parvati/lahlod/ARCTIC/AMSUB_ice_class/sub_classification/cartesian_grid_map_sea_ice_extent_with-AMSUA23-and-89_' + month[imo] + '2009_AMSUB' + str(frequ) + '_spec_thresholds.nc', 'w', format='NETCDF3_CLASSIC') 186 rootgrp.createDimension('longitude', nx) 187 rootgrp.createDimension('latitude', ny) 188 rootgrp.createDimension('days', month_day[imo]) 184 189 nc_lon = rootgrp.createVariable('longitude', 'f', ('longitude',)) 185 190 nc_lat = rootgrp.createVariable('latitude', 'f', ('latitude',)) 186 nc_ice_spec = rootgrp.createVariable('spec_ice_area', 'f', ('latitude', 'longitude')) 187 nc_ice_lamb = rootgrp.createVariable('lamb_ice_area', 'f', ('latitude', 'longitude')) 188 nc_ice_diff = rootgrp.createVariable('diff_ice_area', 'f', ('latitude', 'longitude')) 189 nc_ice_ratio = rootgrp.createVariable('ratio_ice_area', 'f', ('latitude', 'longitude')) 191 nc_days = rootgrp.createVariable('days', 'f', ('days',)) 192 nc_ice_spec = rootgrp.createVariable('spec_ice_area', 'f', ('latitude', 'longitude', 'days')) 193 nc_ice_lamb = rootgrp.createVariable('lamb_ice_area', 'f', ('latitude', 'longitude', 'days')) 194 nc_ice_diff = rootgrp.createVariable('diff_ice_area', 'f', ('latitude', 'longitude', 'days')) 195 nc_ice_ratio = rootgrp.createVariable('ratio_ice_area', 'f', ('latitude', 'longitude', 'days')) 190 196 nc_lon[:] = xvec 191 197 nc_lat[:] = yvec 192 nc_ice_spec[:] = spec_ice[imo, :, :] 193 nc_ice_lamb[:] = lamb_ice[imo, :, :] 194 nc_ice_diff[:] = diff_ice[imo, :, :] 195 nc_ice_ratio[:] = ratio_ice[imo, :, :] 198 nc_days[:] = np.arange(0, month_day[imo]) 199 nc_ice_spec[:] = daily_spec_ice[imo, :, :, 0 : month_day[imo]] 200 nc_ice_lamb[:] = daily_lamb_ice[imo, :, :, 0 : month_day[imo]] 201 nc_ice_diff[:] = daily_diff_ice[imo, :, :, 0 : month_day[imo]] 202 nc_ice_ratio[:] = daily_ratio_ice[imo, :, :, 0 : month_day[imo]] 196 203 rootgrp.close() 197 204 198 205 199 months2 = np.array([7, 8])# use AMSUA 30GHz to delimit ice/no_ice for AUGUST and SEPTEMBER 206 207 208 months2 = np.array([4, 5, 6, 7])# use AMSUA 89GHz to delimit ice/no_ice for MAY, JUNE, JULY, AUGUST 200 209 for imo in months2: 201 210 print 'month ' + month[imo] … … 204 213 ################################################################################## 205 214 print 'open threshold file' 206 fichier_emis = Dataset('/net/argos/data/parvati/lahlod/ARCTIC/AMSUA_ice_class/cartesian_grid_map_ice_no-ice_' + str(month[imo]) + '2009_AMSUA 23_spec_lamb_thresholds.nc', 'r', format='NETCDF3_CLASSIC')215 fichier_emis = Dataset('/net/argos/data/parvati/lahlod/ARCTIC/AMSUA_ice_class/cartesian_grid_map_ice_no-ice_' + str(month[imo]) + '2009_AMSUA89_spec_lamb_thresholds.nc', 'r', format='NETCDF3_CLASSIC') 207 216 spec_lim = fichier_emis.variables['spec_ice_area'][:] 208 217 #lamb_lim = fichier_emis.variables['lamb_ice_area'][:] … … 213 222 print 'open emissivity to sub_classify file' 214 223 ## data of emis SPEC, LAMB, DIFF(SPEC-LAMB) 215 fichier_e = Dataset('/net/argos/data/parvati/lahlod/ARCTIC/monthly_GLACE/gridded_data/cartesian_grid/res_40/cartesian_grid_monthly_data_lamb_spec_near_nadir_AMSU A' + str(frequ) + '_' + str(month[imo]) + '2009.nc', 'r', format='NETCDF3_CLASSIC')224 fichier_e = 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') 216 225 day = fichier_e.variables['days'][:] 217 emis_spec = fichier_e.variables['e_spec'][:]218 emis_lamb = fichier_e.variables['e_lamb'][:]219 emis_diff = fichier_e.variables['e_spec_lamb'][:]226 emis_spec[imo, :, :, 0 : month_day[imo]] = fichier_e.variables['e_spec'][:] 227 emis_lamb[imo, :, :, 0 : month_day[imo]] = fichier_e.variables['e_lamb'][:] 228 emis_diff[imo, :, :, 0 : month_day[imo]] = fichier_e.variables['e_spec_lamb'][:] 220 229 fichier_e.close() 221 for ilon in range (0, nx): 222 for ilat in range (0, ny): 223 spec_month[imo, ilat, ilon] = mean(emis_spec[ilat, ilon, :][nonzero(isnan(emis_spec[ilat, ilon, :]) == False)]) 224 lamb_month[imo, ilat, ilon] = mean(emis_lamb[ilat, ilon, :][nonzero(isnan(emis_lamb[ilat, ilon, :]) == False)]) 225 diff_month[imo, ilat, ilon] = mean(emis_diff[ilat, ilon, :][nonzero(isnan(emis_diff[ilat, ilon, :]) == False)]) 226 ## data of emis RATIO 227 fichier_r = 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) + '_' + str(month[imo]) + '2009.nc', 'r', format='NETCDF3_CLASSIC') 228 ratio_month[imo, :, :] = fichier_r.variables['emis_ratio'][:] 229 fichier_r.close() 230 print 'compute matrix of parameter on SEA ICE area' 231 for ilon in range (0, nx): 232 for ilat in range (0, ny): 233 if (isnan(spec_lim[ilat, ilon]) == True): 234 spec_ice[imo, ilat, ilon] = NaN 235 lamb_ice[imo, ilat, ilon] = NaN 236 diff_ice[imo, ilat, ilon] = NaN 237 ratio_ice[imo, ilat, ilon] = NaN 238 else: 239 spec_ice[imo, ilat, ilon] = spec_month[imo, ilat, ilon] 240 lamb_ice[imo, ilat, ilon] = lamb_month[imo, ilat, ilon] 241 diff_ice[imo, ilat, ilon] = diff_month[imo, ilat, ilon] 242 ratio_ice[imo, ilat, ilon] = ratio_month[imo, ilat, ilon] 230 # calculate emis ratio daily 231 for ijr in range (0, month_day[imo]): 232 for ilon in range (0, nx): 233 for ilat in range (0, ny): 234 emis_ratio[imo, ilat, ilon, ijr] = ((emis_lamb[imo, ilat, ilon, ijr] - emis_spec[imo, ilat, ilon, ijr]) / emis_spec[imo, ilat, ilon, ijr]) * 100. 235 if (isnan(spec_lim[ilat, ilon]) == True): 236 daily_spec_ice[imo, ilat, ilon, ijr] = NaN 237 daily_lamb_ice[imo, ilat, ilon, ijr] = NaN 238 daily_diff_ice[imo, ilat, ilon, ijr] = NaN 239 daily_ratio_ice[imo, ilat, ilon, ijr] = NaN 240 else: 241 daily_spec_ice[imo, ilat, ilon, ijr] = emis_spec[imo, ilat, ilon, ijr] 242 daily_lamb_ice[imo, ilat, ilon, ijr] = emis_lamb[imo, ilat, ilon, ijr] 243 daily_diff_ice[imo, ilat, ilon, ijr] = emis_diff[imo, ilat, ilon, ijr] 244 daily_ratio_ice[imo, ilat, ilon, ijr] = emis_ratio[imo, ilat, ilon, ijr] 245 ''' 246 # ATTENTION : previous part of script has been modified ==> cannot be applied directly to this following part of script (modification of arrays and names.... 243 247 print 'compute SPEC distribution' 244 248 ######## … … 282 286 print 'start stacking in .dat file' 283 287 #data_classif = open ('/net/argos/data/parvati/lahlod/ARCTIC/AMSUB_ice_class/sub_classification/AMSUB'+str(frequ)+'_data_classification_parameters_ice_no-ice_with_AMSUA23-spec_2009.dat', 'a') 284 '''for ii in range (0, bin):288 for ii in range (0, bin): 285 289 data_classif.write(('%(months)10s %(hist_vals_spec)10.5f %(corresp_emis_spec)10.5f %(hist_vals_lamb)10.5f %(corresp_emis_lamb)10.5f %(hist_vals_diff)10.5f %(corresp_emis_diff)10.5f %(hist_vals_rate)10.5f %(corresp_emis_rate)10.5f \n' % { 286 290 'months':month[imo], … … 293 297 'hist_vals_rate':hist_vals_ratio[imo, ii], 294 298 'corresp_emis_rate':corresp_emis_ratio[imo, ii], 295 }))''' 299 })) 300 ''' 296 301 ######################## 297 302 # stack in netcdf file # 298 303 ######################## 299 304 print 'stack in file month ' + str(month[imo]) 300 rootgrp = Dataset('/net/argos/data/parvati/lahlod/ARCTIC/AMSUA_ice_class/sub_classification/cartesian_grid_map_sea_ice_extent_with-AMSUA23-and-30_' + month[imo] + '2009_AMSUA' + str(frequ) + '_spec_lamb_thresholds.nc', 'w', format='NETCDF3_CLASSIC') 301 rootgrp.createDimension('longitude', len(xvec)) 302 rootgrp.createDimension('latitude', len(yvec)) 305 rootgrp = Dataset('/net/argos/data/parvati/lahlod/ARCTIC/AMSUB_ice_class/sub_classification/cartesian_grid_map_sea_ice_extent_with-AMSUA23-and-89_' + month[imo] + '2009_AMSUB' + str(frequ) + '_spec_thresholds.nc', 'w', format='NETCDF3_CLASSIC') 306 rootgrp.createDimension('longitude', nx) 307 rootgrp.createDimension('latitude', ny) 308 rootgrp.createDimension('days', month_day[imo]) 303 309 nc_lon = rootgrp.createVariable('longitude', 'f', ('longitude',)) 304 310 nc_lat = rootgrp.createVariable('latitude', 'f', ('latitude',)) 305 nc_ice_spec = rootgrp.createVariable('spec_ice_area', 'f', ('latitude', 'longitude')) 306 nc_ice_lamb = rootgrp.createVariable('lamb_ice_area', 'f', ('latitude', 'longitude')) 307 nc_ice_diff = rootgrp.createVariable('diff_ice_area', 'f', ('latitude', 'longitude')) 308 nc_ice_ratio = rootgrp.createVariable('ratio_ice_area', 'f', ('latitude', 'longitude')) 311 nc_days = rootgrp.createVariable('days', 'f', ('days',)) 312 nc_ice_spec = rootgrp.createVariable('spec_ice_area', 'f', ('latitude', 'longitude', 'days')) 313 nc_ice_lamb = rootgrp.createVariable('lamb_ice_area', 'f', ('latitude', 'longitude', 'days')) 314 nc_ice_diff = rootgrp.createVariable('diff_ice_area', 'f', ('latitude', 'longitude', 'days')) 315 nc_ice_ratio = rootgrp.createVariable('ratio_ice_area', 'f', ('latitude', 'longitude', 'days')) 309 316 nc_lon[:] = xvec 310 317 nc_lat[:] = yvec 311 nc_ice_spec[:] = spec_ice[imo, :, :] 312 nc_ice_lamb[:] = lamb_ice[imo, :, :] 313 nc_ice_diff[:] = diff_ice[imo, :, :] 314 nc_ice_ratio[:] = ratio_ice[imo, :, :] 318 nc_days[:] = np.arange(0, month_day[imo]) 319 nc_ice_spec[:] = daily_spec_ice[imo, :, :, 0 : month_day[imo]] 320 nc_ice_lamb[:] = daily_lamb_ice[imo, :, :, 0 : month_day[imo]] 321 nc_ice_diff[:] = daily_diff_ice[imo, :, :, 0 : month_day[imo]] 322 nc_ice_ratio[:] = daily_ratio_ice[imo, :, :, 0 : month_day[imo]] 315 323 rootgrp.close() 316 324 … … 320 328 321 329 322 323 ''' 330 ''' 331 fichier = Dataset('/net/argos/data/parvati/lahlod/ARCTIC/AMSUA_ice_class/sub_classification/cartesian_grid_map_sea_ice_extent_with-AMSUA23-and-89_' + month[imo] + '2009_AMSUA' + str(frequ) + '_spec_thresholds.nc', 'r', format='NETCDF3_CLASSIC') 332 ice_spec = fichier.variables['spec_ice_area'][:] 333 ice_lamb = fichier.variables['lamb_ice_area'][:] 334 ice_ratio = fichier.variables['ratio_ice_area'][:] 335 fichier.close() 336 mean_ratio = np.zeros([ny, nx], float) 337 for ilon in range (0, nx): 338 for ilat in range (0, ny): 339 mean_ratio[ilat, ilon] = mean(ice_ratio[ilat, ilon, 0 : month_day[imo]][nonzero(isnan(ice_ratio[ilat, ilon, 0 : month_day[imo]]) == False)]) 340 341 342 ion() 343 x_ind, y_ind, z_ind, volume = arctic_map.arctic_map_lat50() 344 x_coast = x_ind 345 y_coast = y_ind 346 z_coast = z_ind 347 map_cartesian_grid.draw_map_cartes_l(x_coast, y_coast, z_coast, volume, xvec, yvec, mean_ratio[:, :], -3., 5., 0.1, cm.s3pcpn_l_r, 'test') 348 349 350 351 324 352 # test: 325 353 ion() -
trunk/src/scripts_Laura/ARCTIC/Travail_CEN/compare_ice_area_different_data.py
r48 r54 127 127 # plot time evolution of ice area # 128 128 ################################### 129 ion() 129 130 figure() 130 131 plot(AS[0, :], 'c', label = 'AMSUA spec_23GHz') … … 138 139 plot(area_s_B[:], 'b', label = 'AMSUB spec_89GHz') 139 140 plot(area_l_B[:], 'b--', label = 'AMSUB lamb_89GHz') 140 plot(area_osi , 'k', label = 'OSISAF')141 plot(area_osi + 1500000, 'k', label = 'OSISAF + 1.5e7 (correction)') 141 142 fontP = FontProperties() 142 143 fontP.set_size('small') … … 146 147 xlim(-1, M) 147 148 grid() 148 plt.savefig('/usr/home/lahlod/twice_d/fig_output_ARCTIC/fig_output_sea_ice_study/total_ice_area/compar_total_ice_area_AMSUA_AMSUB_SPEC_LAMB_ OSISAF_2009.png')149 plt.savefig('/usr/home/lahlod/twice_d/fig_output_ARCTIC/fig_output_sea_ice_study/total_ice_area/compar_total_ice_area_AMSUA_AMSUB_SPEC_LAMB_corrected_OSISAF_2009.png') 149 150 150 151 -
trunk/src/scripts_Laura/ARCTIC/Travail_CEN/ice_delimit_AMSUB_data.py
r47 r54 326 326 else: 327 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] + ')')328 map_cartesian_grid.draw_map_cartes_l(x_coast, y_coast, z_coast, volume, xdist, ydist, ice_zone_lamb[imo, :, :], 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 329 title(str(month[imo]) + ' 2009 - AMSUA ' + str(frequ) + 'GHz') 330 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') -
trunk/src/scripts_Laura/ARCTIC/Travail_CEN/ice_delimit_OSISAF_dat.py
r46 r54 52 52 osi_type = fichier_osisaf.variables['osi_ice_type'][:] 53 53 fichier_osisaf.close() 54 for ilon in range (0, len(xdist)):55 for ilat in range (0, len(ydist)):54 for ilon in range (0, nx): 55 for ilat in range (0, ny): 56 56 for ijr in range (0, month_day[imo]): 57 57 if ((xdist[ilon] >= -312.5) & (xdist[ilon] <= 328.5) & (ydist[ilat] >=-334.3) & (ydist[ilat] <= 338.5)): 58 58 osi_ice[imo, ijr, ilat, ilon] = 1. 59 59 else: 60 if (osi_type[ijr, ilat, ilon] > = 2.):60 if (osi_type[ijr, ilat, ilon] > 1.): 61 61 osi_ice[imo, ijr, ilat, ilon] = 1. 62 62 else: … … 64 64 osi_ice[imo, ijr, ilat, ilon] = NaN 65 65 else: 66 osi_ice[imo, ijr, ilat, ilon] = 0.66 osi_ice[imo, ijr, ilat, ilon] = NaN 67 67 68 68 69 69 # test: 70 ion() 70 71 x_ind, y_ind, z_ind, volume = arctic_map.arctic_map_lat50() 71 72 x_coast = x_ind … … 73 74 z_coast = z_ind 74 75 colormap = colors.ListedColormap(['0.5', 'cyan','blue', 'green']) 75 map_cartesian_grid.draw_map_cartes_l(x_coast, y_coast, z_coast, volume, xvec, yvec, osi_type[10, :, :], 0, 5, 1, colormap, 'ice_type') 76 map_cartesian_grid.draw_map_cartes_l(x_coast, y_coast, z_coast, volume, xvec, yvec, osi_ice[3, 7, :, :], -1., 2, 1, cm.s3pcpn_l_r, 'test') 77 78 79 76 map_cartesian_grid.draw_map_cartes_l(x_coast, y_coast, z_coast, volume, xvec, yvec, osi_type[1, :, :], 0, 5, 1, cm.s3pcpn_l_r, 'ice_type') 77 map_cartesian_grid.draw_map_cartes_l(x_coast, y_coast, z_coast, volume, xvec, yvec, osi_ice[0, 0, :, :], -1., 2, 1, cm.s3pcpn_l_r, 'test') 80 78 81 79 -
trunk/src/scripts_Laura/ARCTIC/Travail_CEN/param_anomaly.py
r49 r54 47 47 48 48 frequ = np.array(['23', '30', '50', '89']) 49 ice_spec = np.zeros([4, M, ny, nx], float) 50 ice_lamb = np.zeros([4, M, ny, nx], float) 51 ice_diff = np.zeros([4, M, ny, nx], float) 52 ice_ratio = np.zeros([4, M, ny, nx], float) 49 50 mean_ice_spec = np.zeros([4, M, ny, nx], float) 51 mean_ice_lamb = np.zeros([4, M, ny, nx], float) 52 mean_ice_diff = np.zeros([4, M, ny, nx], float) 53 mean_ice_ratio = np.zeros([4, M, ny, nx], float) 54 53 55 ice_spec_anom = np.zeros([4, M, ny, nx], float) 54 56 ice_lamb_anom = np.zeros([4, M, ny, nx], float) … … 59 61 for imo in range (0, M): 60 62 print 'month ' + month[imo] 61 fichier_ice = Dataset('/net/argos/data/parvati/lahlod/ARCTIC/AMSUA_ice_class/sub_classification/cartesian_grid_map_sea_ice_extent_with-AMSUA23-and- 30_' + month[imo] + '2009_AMSUA' + str(frequ[ifr]) + '_spec_lamb_thresholds.nc', 'r', format='NETCDF3_CLASSIC')62 ice_spec [ifr, imo, :, :]= fichier_ice.variables['spec_ice_area'][:]63 ice_lamb [ifr, imo, :, :]= fichier_ice.variables['lamb_ice_area'][:]64 ice_diff [ifr, imo, :, :]= fichier_ice.variables['diff_ice_area'][:]65 ice_ratio [ifr, imo, :, :]= fichier_ice.variables['ratio_ice_area'][:]63 fichier_ice = Dataset('/net/argos/data/parvati/lahlod/ARCTIC/AMSUA_ice_class/sub_classification/cartesian_grid_map_sea_ice_extent_with-AMSUA23-and-89_' + month[imo] + '2009_AMSUA' + str(frequ[ifr]) + '_spec_thresholds.nc', 'r', format='NETCDF3_CLASSIC') 64 ice_spec = fichier_ice.variables['spec_ice_area'][:] 65 ice_lamb = fichier_ice.variables['lamb_ice_area'][:] 66 ice_diff = fichier_ice.variables['diff_ice_area'][:] 67 ice_ratio = fichier_ice.variables['ratio_ice_area'][:] 66 68 fichier_ice.close() 67 a = reshape(ice_spec[ifr, imo, :, :], size(ice_spec[ifr, imo, :, :])) 68 b = reshape(ice_lamb[ifr, imo, :, :], size(ice_lamb[ifr, imo, :, :])) 69 c = reshape(ice_diff[ifr, imo, :, :], size(ice_diff[ifr, imo, :, :])) 70 d = reshape(ice_ratio[ifr, imo, :, :], size(ice_ratio[ifr, imo, :, :])) 69 for ilat in range (0, ny): 70 for ilon in range (0, nx): 71 mean_ice_spec[ifr, imo, ilat, ilon] = mean(ice_spec[ilat, ilon, 0 : month_day[imo]][nonzero(isnan(ice_spec[ilat, ilon, 0 : month_day[imo]]) == False)]) 72 mean_ice_lamb[ifr, imo, ilat, ilon] = mean(ice_lamb[ilat, ilon, 0 : month_day[imo]][nonzero(isnan(ice_lamb[ilat, ilon, 0 : month_day[imo]]) == False)]) 73 mean_ice_diff[ifr, imo, ilat, ilon] = mean(ice_diff[ilat, ilon, 0 : month_day[imo]][nonzero(isnan(ice_diff[ilat, ilon, 0 : month_day[imo]]) == False)]) 74 mean_ice_ratio[ifr, imo, ilat, ilon] = mean(ice_ratio[ilat, ilon, 0 : month_day[imo]][nonzero(isnan(ice_ratio[ilat, ilon, 0 : month_day[imo]]) == False)]) 75 a = reshape(mean_ice_spec[ifr, imo, :, :], size(mean_ice_spec[ifr, imo, :, :])) 76 b = reshape(mean_ice_lamb[ifr, imo, :, :], size(mean_ice_lamb[ifr, imo, :, :])) 77 c = reshape(mean_ice_diff[ifr, imo, :, :], size(mean_ice_diff[ifr, imo, :, :])) 78 d = reshape(mean_ice_ratio[ifr, imo, :, :], size(mean_ice_ratio[ifr, imo, :, :])) 71 79 print 'calculate anomaly' 72 80 for ilat in range (0, ny): 73 81 for ilon in range (0, nx): 74 ice_spec_anom[ifr, imo, ilat, ilon] = ice_spec[ifr, imo, ilat, ilon] - mean(a[nonzero(isnan(a) == False)])75 ice_lamb_anom[ifr, imo, ilat, ilon] = ice_lamb[ifr, imo, ilat, ilon] - mean(b[nonzero(isnan(b) == False)])76 ice_diff_anom[ifr, imo, ilat, ilon] = ice_diff[ifr, imo, ilat, ilon] - mean(c[nonzero(isnan(c) == False)])77 ice_ratio_anom[ifr, imo, ilat, ilon] = ice_ratio[ifr, imo, ilat, ilon] - mean(d[nonzero(isnan(d) == False)])82 ice_spec_anom[ifr, imo, ilat, ilon] = mean_ice_spec[ifr, imo, ilat, ilon] - mean(a[nonzero(isnan(a) == False)]) 83 ice_lamb_anom[ifr, imo, ilat, ilon] = mean_ice_lamb[ifr, imo, ilat, ilon] - mean(b[nonzero(isnan(b) == False)]) 84 ice_diff_anom[ifr, imo, ilat, ilon] = mean_ice_diff[ifr, imo, ilat, ilon] - mean(c[nonzero(isnan(c) == False)]) 85 ice_ratio_anom[ifr, imo, ilat, ilon] = mean_ice_ratio[ifr, imo, ilat, ilon] - mean(d[nonzero(isnan(d) == False)]) 78 86 ######################## 79 87 # stack in netcdf file # 80 88 ######################## 81 89 print 'stack in file month ' + str(month[imo]) 82 rootgrp = Dataset('/net/argos/data/parvati/lahlod/ARCTIC/AMSUA_ice_class/sub_classification/cartesian_grid_map_sea_ice_extent_with-AMSUA23-and- 30_param_anomaly_' + month[imo] + '2009_AMSUA' + str(frequ[ifr]) + '.nc', 'w', format='NETCDF3_CLASSIC')83 rootgrp.createDimension('longitude', len(xvec))84 rootgrp.createDimension('latitude', len(yvec))90 rootgrp = Dataset('/net/argos/data/parvati/lahlod/ARCTIC/AMSUA_ice_class/sub_classification/cartesian_grid_map_sea_ice_extent_with-AMSUA23-and-89_param_anomaly_' + month[imo] + '2009_AMSUA' + str(frequ[ifr]) + '.nc', 'w', format='NETCDF3_CLASSIC') 91 rootgrp.createDimension('longitude', nx) 92 rootgrp.createDimension('latitude', ny) 85 93 nc_lon = rootgrp.createVariable('longitude', 'f', ('longitude',)) 86 94 nc_lat = rootgrp.createVariable('latitude', 'f', ('latitude',)) … … 109 117 for ifr in range (0, 2): 110 118 for imo in range (0, M): 111 map_cartesian_grid.draw_map_cartes_l(x_coast, y_coast, z_coast, volume, xvec, yvec, ice_ diff_anom[ifr, imo, :, :], ice_diff_anom[nonzero(isnan(ice_diff_anom) == False)].min(), ice_diff_anom[nonzero(isnan(ice_diff_anom) == False)].max(), 0.0001, cm.s3pcpn_l_r, 'Emissivity diff anomaly')119 map_cartesian_grid.draw_map_cartes_l(x_coast, y_coast, z_coast, volume, xvec, yvec, ice_ratio_anom[ifr, imo, :, :], ice_ratio_anom[nonzero(isnan(ice_ratio_anom) == False)].min(), ice_ratio_anom[nonzero(isnan(ice_ratio_anom) == False)].max(), 0.0001, cm.s3pcpn_l_r, 'Emissivity diff anomaly') 112 120 title('AMSUA ' + str(frequ) + ' - ' + str(month[imo]) + ' 2009') 113 121 plt.savefig('/usr/home/lahlod/twice_d/fig_output_ARCTIC/fig_output_sea_ice_study/ice_class_AMSUA/sub_classification/maps_sea_ice_extent/emiss_diff_anomaly_map_AMSUA'+str(frequ[ifr])+'_with_AMSUA23-and-30-spec_'+str(month[imo])+'_2009.png') -
trunk/src/scripts_Laura/ARCTIC/Travail_CEN/read_IFREMER_products.py
r42 r54 9 9 from netCDF4 import Dataset 10 10 import scipy.special 11 import ffgrid212 import map_ffgrid13 11 from matplotlib import colors 14 12 import cartesian_grid_monthly … … 30 28 # grid parameters # 31 29 ################### 32 #x0 = -3000. # min limit of grid33 #x1 = 2500. # max limit of grid34 #dx = 40. 35 #xvec = np.arange(x0, x1+dx, dx)36 #nx = len(xvec)37 #y0 = -3000. # min limit of grid38 #y1 = 3000. # max limit of grid39 #dy = 40. 40 #yvec = np.arange(y0, y1+dy, dy)41 #ny = len(yvec)30 x0 = -3000. # min limit of grid 31 x1 = 2500. # max limit of grid 32 dx = 12.5 33 xvec = np.arange(x0, x1+dx, dx) 34 nx = len(xvec) 35 y0 = -3000. # min limit of grid 36 y1 = 3000. # max limit of grid 37 dy = 12.5 38 yvec = np.arange(y0, y1+dy, dy) 39 ny = len(yvec) 42 40 43 41 … … 53 51 print 'date : ' + str(DAY[ijr]) + '_' + str(month[imo]) + '_2009' 54 52 # Concentration 55 ifremer_conc = Dataset('/net/argos/data/parvati/lahlod/ARCTIC/CERSAT-IFREMER/sea_ice_concentration/2009 ' + MONTH[imo] + DAY[ijr] + '.nc', 'r', format='NETCDF3_CLASSIC')56 conc = reshape(ifremer_conc.variables['concentration'][:], 608*896)53 ifremer_conc = Dataset('/net/argos/data/parvati/lahlod/ARCTIC/CERSAT-IFREMER/sea_ice_concentration/20090101.nc', 'r', format='NETCDF3_CLASSIC') 54 conc = ifremer_conc.variables['concentration'][:] 57 55 ifremer_conc.close() 58 56 # Backscatter 59 ifremer_back = Dataset('/net/argos/data/parvati/lahlod/ARCTIC/CERSAT-IFREMER/sea_ice_backscatter/ASCAT_2009 ' + MONTH[imo] + DAY[ijr] + '.nc', 'r', format='NETCDF3_CLASSIC')60 lon = reshape(ifremer_back.variables['longitude'][:], 608*896)61 lat = reshape(ifremer_back.variables['latitude'][:], 608*896)62 back = reshape(ifremer_back.variables['sigma_40'][:], 608*896)57 ifremer_back = Dataset('/net/argos/data/parvati/lahlod/ARCTIC/CERSAT-IFREMER/sea_ice_backscatter/ASCAT_20090101.nc', 'r', format='NETCDF3_CLASSIC') 58 lon = ifremer_back.variables['longitude'][:] 59 lat = ifremer_back.variables['latitude'][:] 60 back = ifremer_back.variables['sigma_40'][:] 63 61 ifremer_back.close() 64 62 bb = nonzero((lon >= -180.) & (lon <= 180.)) … … 66 64 llat = lat[bb] 67 65 bback = back[bb] 66 67 68 ion() 69 figure() 70 m = Basemap(width=15.e6,height=15.e6,\ 71 projection='gnom',lat_0=60.,lon_0=-30.) 72 m.drawcoastlines(linewidth=1) 73 cs=m.contourf(lon[0, :, :], lat[0, :, :], back[0, :, :], clevs, cmap = cm.s3pcpn_l_r) 74 75 m = Basemap(llcrnrlon=-180,urcrnrlon=180,llcrnrlat=30,urcrnrlat=90,projection='cyl',resolution='c',fix_aspect=True) 76 xii, yii = m(*np.meshgrid(x,y)) 77 clevs=arange(-0.06,0.06,0.001) 78 79 emissivity 80 cbar =colorbar(cs) 81 cbar.set_label('test', color='k') 82 83 84 85 68 86 69 87 contourf(llon, llat, bback, cm.s3pcpn_l_r)
Note: See TracChangeset
for help on using the changeset viewer.