E-P flux scaling
Hi,
I used ComputeEPfluxDivXr to calculate climatology E-P flux in the 1957-2002 DJF, and then I used PlotEPfluxArrows to plot it. Please look at my picture:
I found that the arrows in stratosphere is small, and I did a scaling referenced by NOAA. Like this:
Then my plot changes in stratosphere:
It looks better. However, I think the arrows still shows a little small. How could I improve it?
My code could be seen as follows:
f=glob('/mnt/e/wind_global/ERA5/monthly/*1957.nc')
u=xr.open_dataset(f[2]).u
v=xr.open_dataset(f[3]).v
t=xr.open_dataset(f[1]).t
gat=ComputeEPfluxDivXr(u,v,t,time='valid_time',ref='mean')
ep1,ep2=gat[0],gat[1]
lat,p=u.latitude,u.pressure_level
the (a) plot:
fig,ax=plt.subplots()
PlotEPfluxArrows(lat,p,ep1.mean('valid_time'),ep2.mean('valid_time'),fig,ax)
ax.set_xlim(0,90)
ax.set_ylim(1000,10)
ax.set_yscale("symlog")
ax.set_title('(a)',loc='left')
plt.savefig('EPflux1.jpg',format='jpg',dpi=300,bbox_inches='tight')
the (b) plot:
ep1,ep2=ep1*(1000/p)**(1/2),ep2*(1000/p)**(1/2)
fig,ax=plt.subplots()
PlotEPfluxArrows(lat,p,ep1.mean('valid_time'),ep2.mean('valid_time'),fig,ax)
ax.set_xlim(0,90)
ax.set_ylim(1000,10)
ax.set_yscale("symlog")
ax.set_title('(b)',loc='left')
plt.savefig('EPflux2.jpg',format='jpg',dpi=300,bbox_inches='tight')
By the way, could you please tell me what's the distinction between spherical coordinates, which is more normal, and cartesian (linear) coordinates you mentioned in your function? As far as I know, the flux in aostools is called E-vector, which is a little different from E-P flux.
Yang.