Changeset 1816 in lmdz_wrf
- Timestamp:
- Mar 19, 2018, 6:45:03 PM (7 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/tools/nc_var_tools.py
r1815 r1816 18550 18550 Ndt = len(range(tini,tend)) 18551 18551 Ndy = len(range(yini,yend)) 18552 print 'Lluis before!!!!'18553 18552 varinterp = fin.module_forinterpolate.interp( data_in=varint,\ 18554 18553 pres_field=prest, interp_levels=interplevs, psfc=psfct, \ … … 18556 18555 extrapolate=extrap, geopt=isgeop, missing=gen.fillValueF, \ 18557 18556 ix=dimx, iy=Ndy, iz=dimz, it=Ndt, num_metgrid_levels=Nplevs) 18558 print 'Lluis done!!!!'18559 18557 newvar[tini:tend,:,yini:yend,:] = varinterp.transpose() 18558 if dimyfrac != dimy and yend != dimy-1: 18559 print ' finishing time-splitting:', yend, ', ', dimy 18560 varint = varin[tini:tend,:,yend:dimy,:].transpose() 18561 prest = pres[tini:tend,:,yend:dimy,:].transpose() 18562 psfct = psfc[tini:tend,yend:dimy,:].transpose() 18563 hgtt = hgt[yend:dimy].transpose() 18564 tempt = temp[tini:tend,:,yend:dimy,:].transpose() 18565 qvt = qv[tini:tend,:,yend:dimy,:].transpose() 18566 Nplevs = len(interplevs) 18567 Ndt = len(range(tini,tend)) 18568 Ndy = len(range(yend,dimy)) 18569 varinterpyl= fin.module_forinterpolate.interp(data_in=varint,\ 18570 pres_field=prest, interp_levels=interplevs, psfc=psfct, \ 18571 ter=hgtt, tk=tempt, qv=qvt, linlog=linloginterp, \ 18572 extrapolate=extrap, geopt=isgeop, missing=gen.fillValueF, \ 18573 ix=dimx, iy=Ndy, iz=dimz, it=Ndt, num_metgrid_levels=Nplevs) 18574 18575 newvar[tend:dimt,:,yend:dimy,:] = varinterpyl.transpose() 18560 18576 else: 18561 18577 varint = varin[tini:tend,:,:,:].transpose() … … 18567 18583 Nplevs = len(interplevs) 18568 18584 Ndt = len(range(tini,tend)) 18569 print 'Lluis before!!!!'18570 18585 varinterp = fin.module_forinterpolate.interp( data_in=varint, \ 18571 18586 pres_field=prest, interp_levels=interplevs, psfc=psfct, \ … … 18573 18588 extrapolate=extrap, geopt=isgeop, missing=gen.fillValueF, \ 18574 18589 ix=dimx, iy=dimy, iz=dimz, it=Ndt, num_metgrid_levels=Nplevs) 18575 print 'Lluis done!!!!'18576 18590 newvar[tini:tend,:,:,:] = varinterp.transpose() 18577 18591 18578 18592 if dimtfrac != dimt and tend != dimt-1: 18579 18593 print ' finishing time-splitting:', tend, ', ', dimt 18580 varint = varin[tend:dimt,:,:,:].transpose() 18581 prest = pres[tend:dimt,:,:,:].transpose() 18582 psfct = psfc[tend:dimt,:,:].transpose() 18583 hgtt = hgt.transpose() 18584 tempt = temp[tend:dimt,:,:,:].transpose() 18585 qvt = qv[tend:dimt,:,:,:].transpose() 18586 18587 varinterplast = fin.module_forinterpolate.interp( data_in=varint, \ 18588 pres_field=prest, interp_levels=interplevs, psfc=psfct, \ 18589 ter=hgtt, tk=tempt, qv=qvt, linlog=linloginterp, \ 18590 extrapolate=extrap, geopt=isgeop, missing=gen.fillValueF) 18591 18592 newvar[tend:dimt,:,:,:] = varinterplast.transpose() 18594 tini = tend 18595 tend = dimt 18596 if np.prod([dimt-tend+1, dimz, dimx, dimy]) > 150*150*39: 18597 dimyfrac = 50 18598 print warnmsg 18599 print ' ' + fname + ': variable to interpolate:', varin.shape, \ 18600 'too big!!' 18601 print ' p-interpolation will be done by yaxis-slices of 10 grid-points' 18602 print range(0,dimyfrac*int(dimy/dimyfrac),dimyfrac) 18603 for iyy in range(0,dimyfrac*int(dimy/dimyfrac),dimyfrac): 18604 yini = iyy 18605 yend = iyy + dimyfrac 18606 varint = varin[tini:tend,:,yini:yend,:].transpose() 18607 prest = pres[tini:tend,:,yini:yend,:].transpose() 18608 psfct = psfc[tini:tend,yini:yend,:].transpose() 18609 hgtt = hgt[yini:yend,:].transpose() 18610 tempt = temp[tini:tend,:,yini:yend,:].transpose() 18611 qvt = qv[tini:tend,:,yini:yend,:].transpose() 18612 Nplevs = len(interplevs) 18613 Ndt = len(range(tini,tend)) 18614 Ndy = len(range(yini,yend)) 18615 varinterp = fin.module_forinterpolate.interp( data_in=varint,\ 18616 pres_field=prest, interp_levels=interplevs, psfc=psfct, \ 18617 ter=hgtt, tk=tempt, qv=qvt, linlog=linloginterp, \ 18618 extrapolate=extrap, geopt=isgeop, missing=gen.fillValueF, \ 18619 ix=dimx, iy=Ndy, iz=dimz, it=Ndt, num_metgrid_levels=Nplevs) 18620 newvar[tini:tend,:,yini:yend,:] = varinterp.transpose() 18621 if dimyfrac != dimy and yend != dimy-1: 18622 print ' finishing time-splitting:', yend, ', ', dimy 18623 varint = varin[tini:tend,:,yend:dimy,:].transpose() 18624 prest = pres[tini:tend,:,yend:dimy,:].transpose() 18625 psfct = psfc[tini:tend,yend:dimy,:].transpose() 18626 hgtt = hgt[yend:dimy].transpose() 18627 tempt = temp[tini:tend,:,yend:dimy,:].transpose() 18628 qvt = qv[tini:tend,:,yend:dimy,:].transpose() 18629 Nplevs = len(interplevs) 18630 Ndt = len(range(tini,tend)) 18631 Ndy = len(range(yend,dimy)) 18632 varinterpyl= fin.module_forinterpolate.interp(data_in=varint,\ 18633 pres_field=prest, interp_levels=interplevs, psfc=psfct, \ 18634 ter=hgtt, tk=tempt, qv=qvt, linlog=linloginterp, \ 18635 extrapolate=extrap, geopt=isgeop, missing=gen.fillValueF, \ 18636 ix=dimx, iy=Ndy, iz=dimz, it=Ndt, num_metgrid_levels=Nplevs) 18637 18638 newvar[tend:dimt,:,yend:dimy,:] = varinterpyl.transpose() 18639 else: 18640 varint = varin[tend:dimt,:,:,:].transpose() 18641 prest = pres[tend:dimt,:,:,:].transpose() 18642 psfct = psfc[tend:dimt,:,:].transpose() 18643 hgtt = hgt.transpose() 18644 tempt = temp[tend:dimt,:,:,:].transpose() 18645 qvt = qv[tend:dimt,:,:,:].transpose() 18646 18647 varinterplast = fin.module_forinterpolate.interp( data_in=varint,\ 18648 pres_field=prest, interp_levels=interplevs, psfc=psfct, \ 18649 ter=hgtt, tk=tempt, qv=qvt, linlog=linloginterp, \ 18650 extrapolate=extrap, geopt=isgeop, missing=gen.fillValueF) 18651 18652 newvar[tend:dimt,:,:,:] = varinterplast.transpose() 18593 18653 18594 18654 for attrn in newvarattr.keys():
Note: See TracChangeset
for help on using the changeset viewer.