|
| str | dir1 = "./sampledata/scale-5.4.5/scale-rm/test/tutorial/real/experiment/run/" |
| |
| str | ftype = "history" |
| |
| str | domainlabel = "_d01" |
| |
| str | timelabel = "" |
| |
| int | PRC_NUM_X = 2 |
| |
| int | PRC_NUM_Y = 2 |
| |
| str | dir_out = "./fig/" |
| |
| bool | savefig = True |
| |
| str | key2dname = "MSLP" |
| |
| str | key2dunit = "(Pa)" |
| |
| str | var2dname = "PREC" |
| |
| str | var2dunit = "(kg/m2/s)" |
| |
| str | var3dname = "RH" |
| |
| str | var3dunit = "(%)" |
| |
| | levels_var3d1 = np.linspace(0,100,21) |
| |
| str | cmap_var3d1 = "BrBG" |
| |
| int | blct = 1 |
| |
| int | blcy = 30 |
| |
| int | blcx = 30 |
| |
| | fpathlist = get_fpathlist(dir1,ftype,domainlabel,timelabel,PRC_NUM_X,PRC_NUM_Y) |
| |
| | xrvar = get_xrvar(fpathlist) |
| |
| | z = xrvar.coords["z"] |
| |
| | time = xrvar.coords["time"] |
| |
| | y = xrvar.coords["y"] |
| |
| | x = xrvar.coords["x"] |
| |
| | index |
| |
| | key2d |
| |
| | weights_sum_sorted |
| |
| | var2d_sorted = get_var2d_sorted_bykey2d(xrvar,var2dname,blct,blcy,blcx,index) |
| |
| | var3d_sorted = get_var3d_sorted_bykey2d(xrvar,var3dname,blct,blcy,blcx,index) |
| |
| | rhow_sorted = get_var3d_sorted_bykey2d(xrvar,"RHOW",blct,blcy,blcx,index) |
| |
| | key2dmean = np.average(key2d,weights=weights_sum_sorted,axis=0) |
| |
| | key2drank = np.arange(int(key2dmean.shape[0])) |
| |
| | psi3dmean = np.cumsum(np.sum(rhow_sorted*weights_sum_sorted[:,:,np.newaxis],axis=0),axis=0) / np.sum(np.sum(weights_sum_sorted[:,:,np.newaxis],axis=0),axis=0) |
| |
| | zsize = var3d_sorted.shape[2] |
| |
| | var3d1mean = np.average(var3d_sorted,weights=np.tile(weights_sum_sorted[:,:,np.newaxis],(1,1,zsize)),axis=0) |
| |
| | var2d1mean = np.average(var2d_sorted,weights=weights_sum_sorted,axis=0) |
| |
| | fig |
| |
| | ax |
| |
| | levels_psi = np.linspace(psi3dmean.min(),psi3dmean.max(),11) |
| |
| | CS = ax.contour(key2drank,z*1e-3,psi3dmean.T,levels=levels_psi) |
| |
| | inline |
| |
| | True |
| |
| | fontsize |
| |
| | cax = ax.contourf(key2drank,z*1e-3,var3d1mean.T,levels=levels_var3d1,cmap=cmap_var3d1) |
| |
| | cbar = plt.colorbar(cax,ax=ax) |
| |
Bretherton の流線関数
水平分布した変数(e.g., 可降水量)の水平ブロック平均値をキーに大気カラムを水平ソートし, 仮想的な水平軸に沿った物理量の分布や流れ場を定量化する.
- Author
- Tomoro Yanase, Team SCALE
- Note
- Reference
- Bretherton, C. S., Blossey, P. N., & Khairoutdinov, M. (2005). An energy-balance analysis of deep convective self-aggregation above uniform SST. Journal of the atmospheric sciences, 62(12), 4273-4292.
- Yanase, T., Nishizawa, S., Miura, H., Takemi, T., & Tomita, H. (2020). New critical length for the onset of self‐aggregation of moist convection.
Geophysical Research Letters, 47(16), e2020GL088763.