-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathcartopy_2map.py
More file actions
60 lines (47 loc) · 1.58 KB
/
cartopy_2map.py
File metadata and controls
60 lines (47 loc) · 1.58 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
import numpy as np
import matplotlib.pyplot as plt
import cartopy.crs as ccrs
from netCDF4 import Dataset
from cartopy.util import add_cyclic_point
d=Dataset('/glade/scratch/stepheba/archive/dflt/atm/hist/dflt.cam.h0.1979-01.nc')
variable1='SWCF'
variable2='TS'
units1='W/m$^2$'
units2='K'
lon=np.array(d.variables['lon'])
lat=np.array(d.variables['lat'])
var10=np.array(d.variables[variable1])
var20=np.array(d.variables[variable2])
#rearrange longitude so pacific is centered
var1=np.mean(var10[:,:,:],0)
var2=np.mean(var20[:,:,:],0)
varshft1=np.zeros((192,288))
varshft2=np.zeros((192,288))
for i in range(0,288):
if i<144:
varshft1[:,i]=var1[:,i+144]
varshft2[:,i]=var2[:,i+144]
else:
varshft1[:,i]=var1[:,i-144]
varshft2[:,i]=var2[:,i-144]
lon=lon-180
#print(lon.shape)
#print(dfltvarshft.shape)
varshft12, lon2 = add_cyclic_point(varshft1, coord=lon)
varshft22, lon2 = add_cyclic_point(varshft2, coord=lon)
#create plot
fig, axs = plt.subplots(2,1,subplot_kw={'projection': ccrs.PlateCarree(central_longitude=180)})
axs=axs.flatten()
mycmap='coolwarm'
cs=axs[0].contourf(lon2,lat,varshft12[:,:],transform = ccrs.PlateCarree(),cmap=mycmap,extend='both')
axs[0].set_title(variable1)
axs[0].coastlines()
cbar=fig.colorbar(cs,ax=axs[0])
cbar.set_label(units1)
cs=axs[1].contourf(lon2,lat,varshft22[:,:],transform = ccrs.PlateCarree(),cmap=mycmap,extend='both')
axs[1].set_title(variable2)
axs[1].coastlines()
cbar=fig.colorbar(cs,ax=axs[1])
cbar.set_label(units2)
#plt.savefig('/glade/u/home/stepheba/figs/'+variable+'.png',dpi=300,bbox_inches='tight')
plt.show()