spec_in2 = Dataset(path_ap2) # read in modeled CO, CH2O, NO2, O3, and OH spec[j,0,2*i,:,:,:] = spec_in.variables["IJ-AVG-S__CO"][:,:,:] spec[j,0,2*i+1,:,:,:] = spec_in2.variables["IJ-AVG-S__CO"][:,:,:] spec[j,1,2*i,:,:,:] = spec_in.variables["IJ-AVG-S__CH2O"][:,:,:] spec[j,1,2*i+1,:,:,:] = spec_in2.variables["IJ-AVG-S__CH2O"][:,:,:] spec[j,2,2*i,:38,:,:] = spec_in.variables["CHEM-L_S__NO2"][:,:,:] spec[j,2,2*i+1,:38,:,:] = spec_in2.variables["CHEM-L_S__NO2"][:,:,:] spec[j,3,2*i,:,:,:] = spec_in.variables["IJ-AVG-S__Ox"][:,:,:] spec[j,3,2*i+1,:,:,:] = spec_in2.variables["IJ-AVG-S__Ox"][:,:,:] spec[j,4,2*i,:38,:,:] = spec_in.variables["CHEM-L_S__OH"][:,:,:] spec[j,4,2*i+1,:38,:,:] = spec_in2.variables["CHEM-L_S__OH"][:,:,:] # convert altitude mean to isentropic mean on 3 critical levels for m in range(3): for k in range(5): spec_crt[j,k,2*i,m,:,:] = geos_interpolate(len1,lat,lon,spec[j,k,2*i,:,:,:],ps,pre_crt[m]) pres, spec_crt[j,k,2*i+1,m,:,:] = geos_interpolate(len1,lat,lon,spec[j,k,2*i+1,:,:,:],ps,pre_crt[m],pre_output=True) #spec_crt_mon[j,i,m,:,:] = np.mean(spec_crt[j,2*i:2*i+2,m,:,:],axis=0) #spec_crt_sea = np.zeros((len4,4,5,len2,len3)) # compute mean statistics of modeled abundances spec_crt_mean = np.mean(spec_crt,axis=2) spec_mean = np.mean(spec,axis=2) spec_diff = 100*(spec_mean - spec_mean[0,:,:,:,:])/spec_mean[0,:,:,:,:] spec_diff[0,:,:,:,:] = spec_mean[0,:,:,:,:] spec_diff_zonal = np.mean(spec_diff,axis=4) spec_crt_diff = 100*(spec_crt_mean - spec_crt_mean[0,:,:,:,:])/spec_crt_mean[0,:,:,:,:] spec_crt_diff[0,:,:,:,:] = spec_crt_mean[0,:,:,:,:] #spec_crt_diff[5,:,:,:,:] = spec_crt_diff[6,:,:,:,:] #spec_crt_sea[:,0,:,:,:] = (2*np.mean(spec_crt[:,0:4,:,:,:],axis=1)+np.mean(spec_crt[:,22:24,:,:,:],axis=1))/3 #spec_crt_sea[:,1,:,:,:] = np.mean(spec_crt[:,4:10,:,:,:],axis=1) #spec_crt_sea[:,2,:,:,:] = np.mean(spec_crt[:,10:16,:,:,:],axis=1)
NO2[2, 1, :, :, :] = allfile21.variables["CHEM-L_S__NO2"][:, :, :] NO2[2, 2, :, :, :] = allfile02.variables["CHEM-L_S__NO2"][:, :, :] NO2[2, 3, :, :, :] = allfile21.variables["CHEM-L_S__NO2"][:, :, :] NO2[2, 4, :, :, :] = allfile03.variables["CHEM-L_S__NO2"][:, :, :] NO2[2, 5, :, :, :] = allfile23.variables["CHEM-L_S__NO2"][:, :, :] NO2[2, 6, :, :, :] = allfile04.variables["CHEM-L_S__NO2"][:, :, :] NO2[2, 7, :, :, :] = allfile24.variables["CHEM-L_S__NO2"][:, :, :] NO2_trop[:, :, 0:38, :, :] = NO2 pre_mt = 500 CH2O_avg = np.mean(CH2O, axis=1) CH2O_mt = np.zeros((len4, len2, len3)) NO2_avg = 1e9 * np.mean(NO2_trop, axis=1) NO2_mt = np.zeros((len4, len2, len3)) for i in range(len4): CH2O_mt[i, :, :] = geos_interpolate(len1, lat, lon, CH2O_avg[i, :, :, :], ps, pre_mt) NO2_mt[i, :, :] = geos_interpolate(len1, lat, lon, NO2_avg[i, :, :, :], ps, pre_mt) pre_utls = 300 CH2O_utls = np.zeros((len4, len2, len3)) NO2_utls = np.zeros((len4, len2, len3)) for i in range(len4): CH2O_utls[i, :, :] = geos_interpolate(len1, lat, lon, CH2O_avg[i, :, :, :], ps, pre_utls) NO2_utls[i, :, :] = geos_interpolate(len1, lat, lon, NO2_avg[i, :, :, :], ps, pre_utls) figure(1, figsize=(14, 7.5)) ax = subplot(231)
pre_crt = np.array([800, 500, 300]) #pres = np.zeros((len1,len2,len3)) ps = infile00.variables["DAO-FLDS__PS-PBL"][0, :, :] for i in range(len(exp)): infile = Dataset(path + 'geos5_iasio3_0807_' + exp[i] + '/ctm.01.200807' + exp2[i] + '.nc') infile2 = Dataset(path + 'geos5_iasio3_0807_' + exp[i] + '/ctm.15.200807' + exp2[i] + '.nc') O3_gc[i, 0, :, :, :] = infile.variables["IJ-AVG-S__Ox"][:, :, :] O3_gc[i, 1, :, :, :] = infile2.variables["IJ-AVG-S__Ox"][:, :, :] for j in range(2): for m in range(3): pres, O3_crt[i, j, m, :, :] = geos_interpolate(len1, lat, lon, O3_gc[i, j, :, :, :], ps, pre_crt[m], pre_output=True) O3_avg = np.mean(O3_gc[:, :, :, lat_ini:lat_fin, lon_ini:lon_fin], axis=0) O3_avg_crt = np.mean(O3_crt[:, :, :, lat_ini:lat_fin, lon_ini:lon_fin], axis=0) O3_diff_crt = O3_avg_crt[1, :, :, :] - O3_avg_crt[0, :, :, :] O3_diff_avg = O3_avg[1, :, :, :] - O3_avg[0, :, :, :] O3_diff_zonal = np.mean(O3_diff_avg, axis=2) fig = plt.figure(1, figsize=(12, 7.5)) bond = 5 for i in range(3): ax = plt.subplot(221 + i) m1 = Basemap(lon_0=-90, llcrnrlat=10,
spec_in2 = Dataset(path_sf2) O3[j, 2 * i, :, :, :] = spec_in.variables["IJ-AVG-S__Ox"][:, :, :] O3[j, 2 * i + 1, :, :, :] = spec_in2.variables["IJ-AVG-S__Ox"][:, :, :] else: path_ap = path + mondir1 + '/ctm.00.2016' + month + '01.nc' path_ap2 = path + mondir2 + '/ctm.00.2016' + month + '16.nc' spec_ap = Dataset(path_ap) spec_ap2 = Dataset(path_ap2) O3[j, 2 * i, :, :, :] = spec_ap.variables["IJ-AVG-S__Ox"][:, :, :] O3[j, 2 * i + 1, :, :, :] = spec_ap2.variables["IJ-AVG-S__Ox"][:, :, :] for m in range(3): O3_crt[j, 2 * i, m, :, :] = geos_interpolate(len1, lat, lon, O3[j, 2 * i, :, :, :], ps, pre_crt[m]) O3_crt[j, 2 * i + 1, m, :, :] = geos_interpolate(len1, lat, lon, O3[j, 2 * i + 1, :, :, :], ps, pre_crt[m]) #O3_crt_mon[j,i,m,:,:] = np.mean(O3_crt[j,2*i:2*i+2,m,:,:],axis=0) O3_crt_sea = np.zeros((len4, 4, 5, len2, len3)) O3_crt_sea[:, 0, :, :, :] = (2 * np.mean(O3_crt[:, 0:4, :, :, :], axis=1) + np.mean(O3_crt[:, 22:24, :, :, :], axis=1)) / 3 O3_crt_sea[:, 1, :, :, :] = np.mean(O3_crt[:, 4:10, :, :, :], axis=1) O3_crt_sea[:, 2, :, :, :] = np.mean(O3_crt[:, 10:16, :, :, :], axis=1) O3_crt_sea[:, 3, :, :, :] = np.mean(O3_crt[:, 16:22, :, :, :], axis=1) O3_crt_ts = np.zeros((len4, 24, 5, 3)) O3_crt_ts[:, :, :, 0] = np.mean(np.mean(O3_crt[:, :, :, 4:15, :], axis=3), axis=3)
O3[1,7,:,:,:] = iasifile24.variables["IJ-AVG-S__Ox"][:,:,:] O3[2,0,:,:,:] = allfile01.variables["IJ-AVG-S__Ox"][:,:,:] O3[2,1,:,:,:] = allfile21.variables["IJ-AVG-S__Ox"][:,:,:] O3[2,2,:,:,:] = allfile02.variables["IJ-AVG-S__Ox"][:,:,:] O3[2,3,:,:,:] = allfile21.variables["IJ-AVG-S__Ox"][:,:,:] O3[2,4,:,:,:] = allfile03.variables["IJ-AVG-S__Ox"][:,:,:] O3[2,5,:,:,:] = allfile23.variables["IJ-AVG-S__Ox"][:,:,:] O3[2,6,:,:,:] = allfile04.variables["IJ-AVG-S__Ox"][:,:,:] O3[2,7,:,:,:] = allfile24.variables["IJ-AVG-S__Ox"][:,:,:] pre_mt = 700 O3_avg = np.mean(O3,axis=1) O3_mt = np.zeros((len4,len2,len3)) for i in range(len4): O3_mt[i,:,:] = geos_interpolate(len1,lat,lon,O3_avg[i,:,:,:],ps,pre_mt) pre_utls = 900 O3_utls = np.zeros((len4,len2,len3)) for i in range(len4): O3_utls[i,:,:] = geos_interpolate(len1,lat,lon,O3_avg[i,:,:,:],ps,pre_utls) figure(1,figsize=(14,7.5)) ax = subplot(231) title(r'$O_3$ concentrations CTRL: Jan-April 700 hPa[ppbv]') plot_data, lon = addcyclic(O3_mt[0,:,:],lon) #print plot_data[15,15] m1=Basemap(lon_0=0) m1.drawcoastlines()