Changeset 1999 in lmdz_wrf
- Timestamp:
- Aug 1, 2018, 4:46:58 PM (7 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/tools/diagnostics.py
r1980 r1999 830 830 diagout, diagoutd, diagoutvd = diag.compute_td(var0,var1,var2,dnamesvar,dvnamesvar) 831 831 832 # Removing the nonChecking variable-dimensions from the initial list 833 varsadd = [] 834 for nonvd in NONchkvardims: 835 if gen.searchInlist(dvnames,nonvd): diagoutvd.remove(nonvd) 836 varsadd.append(nonvd) 837 832 838 ncvar.insert_variable(ncobj, 'tdas', diagout, diagoutd, diagoutvd, newnc) 833 839 … … 843 849 diagout, diagoutd, diagoutvd = diag.compute_wds(var0,var1,dnamesvar,dvnamesvar) 844 850 851 # Removing the nonChecking variable-dimensions from the initial list 852 varsadd = [] 853 for nonvd in NONchkvardims: 854 if gen.searchInlist(dvnames,nonvd): diagoutvd.remove(nonvd) 855 varsadd.append(nonvd) 856 845 857 ncvar.insert_variable(ncobj, 'wds', diagout, diagoutd, diagoutvd, newnc) 846 858 … … 855 867 856 868 diagout, diagoutd, diagoutvd = diag.compute_wss(var0,var1,dnamesvar,dvnamesvar) 869 870 # Removing the nonChecking variable-dimensions from the initial list 871 varsadd = [] 872 for nonvd in NONchkvardims: 873 if gen.searchInlist(dvnames,nonvd): diagoutvd.remove(nonvd) 874 varsadd.append(nonvd) 857 875 858 876 ncvar.insert_variable(ncobj, 'wss', diagout, diagoutd, diagoutvd, newnc) … … 1121 1139 1122 1140 diagout = var0 + var1 1123 1124 ncvar.insert_variable(ncobj, 'pres', diagout, dnames, dvnames, newnc) 1141 diagoutd = list(ncobj.variables[depvars[0]].dimensions) 1142 diagoutvd = ncvar.var_dim_dimv(dnamesvar,dnames,dvnames) 1143 1144 # Removing the nonChecking variable-dimensions from the initial list 1145 varsadd = [] 1146 for nonvd in NONchkvardims: 1147 if gen.searchInlist(dvnames,nonvd): diagoutvd.remove(nonvd) 1148 varsadd.append(nonvd) 1149 1150 ncvar.insert_variable(ncobj, 'pres', diagout, diagoutd, diagoutvd, newnc) 1125 1151 1126 1152 # WRFpos … … 1262 1288 1263 1289 # un-staggering variables 1264 unstgdims = [var0.shape[0], var0.shape[1], var0.shape[2], var0.shape[3]-1] 1290 if len(var0.shape) == 4: 1291 unstgdims = [var0.shape[0], var0.shape[1], var0.shape[2], var0.shape[3]-1] 1292 elif len(var0.shape) == 3: 1293 # Asuming sunding point (dimt, dimz, dimstgx) 1294 unstgdims = [var0.shape[0], var0.shape[1]] 1295 1265 1296 ua = np.zeros(tuple(unstgdims), dtype=np.float) 1266 1297 unstgvar0 = np.zeros(tuple(unstgdims), dtype=np.float) 1267 1298 unstgvar1 = np.zeros(tuple(unstgdims), dtype=np.float) 1268 unstgvar0 = 0.5*(var0[:,:,:,0:var0.shape[3]-1] + var0[:,:,:,1:var0.shape[3]]) 1269 unstgvar1 = 0.5*(var1[:,:,0:var1.shape[2]-1,:] + var1[:,:,1:var1.shape[2],:]) 1270 1271 for iz in range(var0.shape[1]): 1272 ua[:,iz,:,:] = unstgvar0[:,iz,:,:]*var3 - unstgvar1[:,iz,:,:]*var2 1273 1274 dnamesvar = ['Time','bottom_top','south_north','west_east'] 1299 1300 if len(var0.shape) == 4: 1301 unstgvar0 = 0.5*(var0[:,:,:,0:var0.shape[3]-1] + var0[:,:,:,1:var0.shape[3]]) 1302 unstgvar1 = 0.5*(var1[:,:,0:var1.shape[2]-1,:] + var1[:,:,1:var1.shape[2],:]) 1303 1304 for iz in range(var0.shape[1]): 1305 ua[:,iz,:,:] = unstgvar0[:,iz,:,:]*var3 - unstgvar1[:,iz,:,:]*var2 1306 1307 dnamesvar = ['Time','bottom_top','south_north','west_east'] 1308 1309 elif len(var0.shape) == 3: 1310 unstgvar0 = 0.5*(var0[:,:,0] + var0[:,:,1]) 1311 unstgvar1 = 0.5*(var1[:,:,0] + var1[:,:,1]) 1312 for iz in range(var0.shape[1]): 1313 ua[:,iz] = unstgvar0[:,iz]*var3 - unstgvar1[:,iz]*var2 1314 1315 dnamesvar = ['Time','bottom_top'] 1316 1275 1317 dvnamesvar = ncvar.var_dim_dimv(dnamesvar,dnames,dvnames) 1276 1318 … … 1292 1334 1293 1335 # un-staggering variables 1294 unstgdims = [var0.shape[0], var0.shape[1], var0.shape[2], var0.shape[3]-1] 1336 if len(var0.shape) == 4: 1337 unstgdims = [var0.shape[0], var0.shape[1], var0.shape[2], var0.shape[3]-1] 1338 elif len(var0.shape) == 3: 1339 # Asuming sunding point (dimt, dimz, dimstgx) 1340 unstgdims = [var0.shape[0], var0.shape[1]] 1341 1295 1342 va = np.zeros(tuple(unstgdims), dtype=np.float) 1296 1343 unstgvar0 = np.zeros(tuple(unstgdims), dtype=np.float) 1297 1344 unstgvar1 = np.zeros(tuple(unstgdims), dtype=np.float) 1298 unstgvar0 = 0.5*(var0[:,:,:,0:var0.shape[3]-1] + var0[:,:,:,1:var0.shape[3]]) 1299 unstgvar1 = 0.5*(var1[:,:,0:var1.shape[2]-1,:] + var1[:,:,1:var1.shape[2],:]) 1300 for iz in range(var0.shape[1]): 1301 va[:,iz,:,:] = unstgvar0[:,iz,:,:]*var2 + unstgvar1[:,iz,:,:]*var3 1302 1303 dnamesvar = ['Time','bottom_top','south_north','west_east'] 1345 1346 if len(var0.shape) == 4: 1347 unstgvar0 = 0.5*(var0[:,:,:,0:var0.shape[3]-1] + var0[:,:,:,1:var0.shape[3]]) 1348 unstgvar1 = 0.5*(var1[:,:,0:var1.shape[2]-1,:] + var1[:,:,1:var1.shape[2],:]) 1349 1350 for iz in range(var0.shape[1]): 1351 va[:,iz,:,:] = unstgvar0[:,iz,:,:]*var2 + unstgvar1[:,iz,:,:]*var3 1352 1353 dnamesvar = ['Time','bottom_top','south_north','west_east'] 1354 1355 elif len(var0.shape) == 3: 1356 unstgvar0 = 0.5*(var0[:,:,0] + var0[:,:,1]) 1357 unstgvar1 = 0.5*(var1[:,:,0] + var1[:,:,1]) 1358 for iz in range(var0.shape[1]): 1359 va[:,iz] = unstgvar0[:,iz]*var2 + unstgvar1[:,iz]*var3 1360 1361 dnamesvar = ['Time','bottom_top'] 1362 1304 1363 dvnamesvar = ncvar.var_dim_dimv(dnamesvar,dnames,dvnames) 1305 1364 … … 1321 1380 1322 1381 # un-staggering variables 1323 unstgdims = [var0.shape[0], var0.shape[1], var0.shape[2], var0.shape[3]-1] 1382 if len(var0.shape) == 4: 1383 unstgdims = [var0.shape[0], var0.shape[1], var0.shape[2], var0.shape[3]-1] 1384 elif len(var0.shape) == 3: 1385 # Asuming sunding point (dimt, dimz, dimstgx) 1386 unstgdims = [var0.shape[0], var0.shape[1]] 1387 1324 1388 ua = np.zeros(tuple(unstgdims), dtype=np.float) 1325 1389 va = np.zeros(tuple(unstgdims), dtype=np.float) 1326 1390 unstgvar0 = np.zeros(tuple(unstgdims), dtype=np.float) 1327 1391 unstgvar1 = np.zeros(tuple(unstgdims), dtype=np.float) 1328 unstgvar0 = 0.5*(var0[:,:,:,0:var0.shape[3]-1] + var0[:,:,:,1:var0.shape[3]]) 1329 unstgvar1 = 0.5*(var1[:,:,0:var1.shape[2]-1,:] + var1[:,:,1:var1.shape[2],:]) 1330 1331 for iz in range(var0.shape[1]): 1332 ua[:,iz,:,:] = unstgvar0[:,iz,:,:]*var3 - unstgvar1[:,iz,:,:]*var2 1333 va[:,iz,:,:] = unstgvar0[:,iz,:,:]*var2 + unstgvar1[:,iz,:,:]*var3 1334 1335 dnamesvar = ['Time','bottom_top','south_north','west_east'] 1392 1393 if len(var0.shape) == 4: 1394 unstgvar0 = 0.5*(var0[:,:,:,0:var0.shape[3]-1] + var0[:,:,:,1:var0.shape[3]]) 1395 unstgvar1 = 0.5*(var1[:,:,0:var1.shape[2]-1,:] + var1[:,:,1:var1.shape[2],:]) 1396 1397 for iz in range(var0.shape[1]): 1398 ua[:,iz,:,:] = unstgvar0[:,iz,:,:]*var3 - unstgvar1[:,iz,:,:]*var2 1399 va[:,iz,:,:] = unstgvar0[:,iz,:,:]*var2 + unstgvar1[:,iz,:,:]*var3 1400 1401 dnamesvar = ['Time','bottom_top','south_north','west_east'] 1402 1403 elif len(var0.shape) == 3: 1404 unstgvar0 = 0.5*(var0[:,:,0] + var0[:,:,1]) 1405 unstgvar1 = 0.5*(var1[:,:,0] + var1[:,:,1]) 1406 for iz in range(var0.shape[1]): 1407 ua[:,iz] = unstgvar0[:,iz]*var3 - unstgvar1[:,iz]*var2 1408 va[:,iz] = unstgvar0[:,iz]*var2 + unstgvar1[:,iz]*var3 1409 1410 dnamesvar = ['Time','bottom_top'] 1411 1336 1412 dvnamesvar = ncvar.var_dim_dimv(dnamesvar,dnames,dvnames) 1337 1413 … … 1360 1436 elif diagn == 'ws': 1361 1437 1362 var0 = ncobj.variables[depvars[0]][:]1363 var1 = ncobj.variables[depvars[1]][:]1364 1438 # un-staggering variables 1365 unstgdims = [var0.shape[0], var0.shape[1], var0.shape[2], var0.shape[3]-1] 1439 if len(var0.shape) == 4: 1440 unstgdims = [var0.shape[0], var0.shape[1], var0.shape[2], var0.shape[3]-1] 1441 elif len(var0.shape) == 3: 1442 # Asuming sunding point (dimt, dimz, dimstgx) 1443 unstgdims = [var0.shape[0], var0.shape[1]] 1444 1445 ua = np.zeros(tuple(unstgdims), dtype=np.float) 1366 1446 va = np.zeros(tuple(unstgdims), dtype=np.float) 1367 1447 unstgvar0 = np.zeros(tuple(unstgdims), dtype=np.float) 1368 1448 unstgvar1 = np.zeros(tuple(unstgdims), dtype=np.float) 1369 unstgvar0 = 0.5*(var0[:,:,:,0:var0.shape[3]-1] + var0[:,:,:,1:var0.shape[3]]) 1370 unstgvar1 = 0.5*(var1[:,:,0:var1.shape[2]-1,:] + var1[:,:,1:var1.shape[2],:]) 1371 1372 dnamesvar = ['Time','bottom_top','south_north','west_east'] 1449 1450 if len(var0.shape) == 4: 1451 unstgvar0 = 0.5*(var0[:,:,:,0:var0.shape[3]-1] + var0[:,:,:,1:var0.shape[3]]) 1452 unstgvar1 = 0.5*(var1[:,:,0:var1.shape[2]-1,:] + var1[:,:,1:var1.shape[2],:]) 1453 1454 for iz in range(var0.shape[1]): 1455 ua[:,iz,:,:] = unstgvar0[:,iz,:,:]*var3 - unstgvar1[:,iz,:,:]*var2 1456 va[:,iz,:,:] = unstgvar0[:,iz,:,:]*var2 + unstgvar1[:,iz,:,:]*var3 1457 1458 dnamesvar = ['Time','bottom_top','south_north','west_east'] 1459 1460 elif len(var0.shape) == 3: 1461 unstgvar0 = 0.5*(var0[:,:,0] + var0[:,:,1]) 1462 unstgvar1 = 0.5*(var1[:,:,0] + var1[:,:,1]) 1463 for iz in range(var0.shape[1]): 1464 ua[:,iz] = unstgvar0[:,iz]*var3 - unstgvar1[:,iz]*var2 1465 va[:,iz] = unstgvar0[:,iz]*var2 + unstgvar1[:,iz]*var3 1466 1467 dnamesvar = ['Time','bottom_top'] 1468 1373 1469 diagout = np.sqrt(unstgvar0*unstgvar0 + unstgvar1*unstgvar1) 1374 1470
Note: See TracChangeset
for help on using the changeset viewer.