Changeset 2521 in lmdz_wrf
- Timestamp:
- May 9, 2019, 1:18:48 AM (6 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/tools/nc_var_tools.py
r2520 r2521 29908 29908 rankABC = len(shapes) 29909 29909 29910 # dxB = osliceNAB.shape[1]29911 # dyB = osliceNAB.shape[0]29912 # dxA = osliceNAB.shape[3]29913 # dyA = osliceNAB.shape[2]29914 # dxyAB = osliceinAB.shape[1]29915 # dxC = osliceNC.shape[1]29916 # dyC = osliceNC.shape[0]29917 # dxyC = osliceinC.shape[1]29918 29919 29920 29910 NABdims = osliceNAB.dimensions 29921 29911 inABdims = osliceinAB.dimensions … … 29929 29919 Spgrid = [dn+'gridin'] + Srgrid 29930 29920 29931 # NpointsABC = np.zeros((dyC,dxC,dyB,dxB,dyA,dxA), dtype=int)29932 # pointsABC = np.zeros((2,dxyAB,dyC,dxC,dyB,dxB,dyA,dxA), dtype=int)29933 # inpointsAB = np.zeros((dxyAB,dyC,dxC,dyB,dxB,dyA,dxA), dtype=int)29934 # NpointsA = np.zeros((dyC,dxC,dyB,dxB,dyA,dxA), dtype=int)29935 # NpointsB = np.zeros((dyC,dxC,dyB,dxB,dyA,dxA), dtype=int)29936 # inpointsA = np.zeros((dxyAB,dyC,dxC,dyB,dxB,dyA,dxA), dtype=int)29937 # inpointsB = np.zeros((dxyAB,dyC,dxC,dyB,dxB,dyA,dxA), dtype=int)29938 # inpointsC = np.zeros((dxyAB,dyC,dxC,dyB,dxB,dyA,dxA), dtype=int)29939 29921 NpointsABC = np.zeros(tuple(shapes), dtype=int) 29940 29922 pointsABC = np.zeros(tuple(shapesptnew), dtype=int) … … 29945 29927 inpointsB = np.zeros(tuple(shapesnew), dtype=int) 29946 29928 inpointsC = np.zeros(tuple(shapesnew), dtype=int) 29947 29948 print ' Lluis shapes dims_______'29949 print ' NpointsABC:', shapes, Srgrid29950 print ' pointsABC:', shapesptnew, Sigrid29951 print ' inpointsABC:', shapesnew, Spgrid29952 29929 29953 29930 # Getting the slices to find the coincident points. It must be 2D … … 29964 29941 runpdims.append(NABdims[iid]) 29965 29942 29966 print ' Lluis rundims _______', runpdims29967 29968 29943 NABslices = gen.provide_slices(NABdims, NABshape, runNABdims) 29969 29944 inABslices = gen.provide_slices(inABdims, inABshape, runinABdims) … … 29971 29946 islices = gen.provide_slices(Sigrid, shapesptnew, runrdims) 29972 29947 pslices = gen.provide_slices(Spgrid, shapesnew, runrdims) 29973 29974 print ' Lluis number of slices: NAB', len(NABslices), 'inAB', \29975 len(inABslices), 'r', len(rslices), 'i', len(islices), 'p', len(pslices)29976 29977 # # Following B-slices29978 # for j in range(dyB):29979 # for i in range(dxB):29980 # sliceNAt = sliceNAB[j,i,:,:].transpose()29981 # sliceinAt = sliceinAB[:,:,j,i,:,:].transpose()29982 # sliceNBt = sliceNC.transpose()29983 # sliceinBt = sliceinC.transpose()29984 # NpointsABt, pointsABt, inpA, inpB = fsci.module_scientific.coincident_gridsin2d( \29985 # npointsa=sliceNAt, pointsa=sliceinAt, npointsb=sliceNBt, pointsb=sliceinBt, \29986 # dxa=dxA, dya=dyA, dxya=dxyAB, dxb=dxC, dyb=dyC, dxyb=dxyC)29987 # NpointsABC[:,:,j,i,:,:] = NpointsABt.transpose()29988 # pointsABC[:,:,:,:,j,i,:,:] = pointsABt.transpose()29989 # inpointsAB[:,:,:,j,i,:,:] = inpA.transpose()29990 # inpointsC[:,:,:,j,i,:,:] = inpB.transpose()29991 29992 # # Remembering that it is python (C-like...)29993 # inpointsAB[:,:,:,j,i,:,:] = inpointsAB[:,:,:,j,i,:,:]-129994 # inpointsC[:,:,:,j,i,:,:] = inpointsC[:,:,:,j,i,:,:]-129995 29948 29996 29949 # Following slices … … 30002 29955 islcv = islices[isc] 30003 29956 pslcv = pslices[isc] 30004 30005 print isc, ' Lluis slice shape______'30006 print ' NAB', NABslcv, sliceNAB[tuple(NABslcv)].shape30007 print ' inAB', inABslcv, sliceinAB[tuple(inABslcv)].shape30008 print ' r', rslcv, NpointsABC[tuple(rslcv)].shape30009 print ' i', islcv, pointsABC[tuple(islcv)].shape30010 print ' p', pslcv, inpointsAB[tuple(pslcv)].shape30011 29957 30012 29958 dxA = NABshape[NABrank-1] … … 30033 29979 inpointsC[tuple(pslcv)] = inpointsC[tuple(pslcv)]-1 30034 29980 30035 30036 29981 maxNpointsABC = np.max(NpointsABC) 30037 29982 … … 30072 30017 pnewvar.setncattr('coordinates',' '.join(Spgrid[::-1])) 30073 30018 30074 # ixA = -130075 # iyA = -130076 # ixB = -130077 # iyB = -130078 # ixC = -130079 # iyC = -130080 # for jA in range(dyA):30081 # for iA in range(dxA):30082 # for jB in range(dyB):30083 # for iB in range(dxB):30084 # for jC in range(dyC):30085 # for iC in range(dxC):30086 # Nin = NpointsABC[jC,iC,jB,iB,jA,iA]30087 # innewvar[:,0:Nin,jC,iC,jB,iB,jA,iA] = \30088 # pointsABC[:,0:Nin,jC,iC,jB,iB,jA,iA]30089 # aanewvar[jC,iC,jB,iB,jA,iA]= gen.fillValueF30090 # anewvar[:,jC,iC,jB,iB,jA,iA]= gen.fillValueF30091 # pnewvar[:,jC,iC,jB,iB,jA,iA]= gen.fillValueF30092 # slicearea = 0.30093 # for iv in range(Nin):30094 # ivAB = inpointsAB[iv,jC,iC,jB,iB,jA,iA]30095 # ivC = inpointsC[iv,jC,iC,jB,iB,jA,iA]30096 # pA = oslicepAB[ivAB,jB,iB,jA,iA]30097 # pB = oslicepC[ivC,jC,iC]30098 # aA = osliceaAB[ivAB,jB,iB,jA,iA]30099 # aB = osliceaC[ivC,jC,iC]30100 # ixAB = sliceinAB[1,ivAB,jB,iB,jA,iA]30101 # iyAB = sliceinAB[0,ivAB,jB,iB,jA,iA]30102 # ixC = sliceinC[1,ivC,jC,iC]30103 # iyC = sliceinC[0,ivC,jC,iC]30104 # anewvar[iv,jC,iC,jB,iB,jA,iA]= aA*pA*pB30105 # pnewvar[iv,jC,iC,jB,iB,jA,iA]= pA*pB30106 # slicearea = slicearea + aA*pA*pB30107 # if np.isnan(slicearea):30108 # print errormsg30109 # print ' ' + fname + ': Nan slice area for slice:', \30110 # jC, iC, jB, iB, jA, iA, 'N grids:', Nin,' !!'30111 # print ' #grid AB #grid grid_area ' + \30112 # 'grid_percen C # grid grid_area grid_percen____'30113 # for iv in range(Nin):30114 # print iv, inpointsAB[iv,jC,iC,jB,iB,jA,iA], \30115 # aA, pA, inpointsC[iv,jC,iC,jB,iB,jA,iA], \30116 # aB, pB30117 # quit(-1)30118 # aanewvar[jC,iC,jB,iB,jA,iA]= slicearea30119 30019 # Getting actual slice values 30120 30020 rslcvals = gen.provide_slices(Srgrid, shapes, Srgrid)
Note: See TracChangeset
for help on using the changeset viewer.