Changeset 807 in lmdz_wrf for trunk/tools
- Timestamp:
- Jun 7, 2016, 11:27:28 AM (9 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/tools/generic.py
r806 r807 18 18 cV = '@' 19 19 # List of available operations 20 operations=['grid_combinations', 'PolyArea', 'rmNOnum', \ 20 operations=['coincident_CFtimes', 'count_cond', 'grid_combinations', 'PolyArea', \ 21 'radial_points', \ 22 'rmNOnum', 'running_mean', \ 21 23 'significant_decomposition', 'squared_radial', \ 22 'unitsDate'] 23 24 'unitsDate', 'wdismean'] 25 26 hundredvals = '0' 27 for i in range(1,100): hundredvals = hundredvals + '@' + str(i) 28 29 vs100 = '0@1@2@3@4@5@6@7@8@9@10@11@12@13@14@15@16@17@18@19@20@21@22@23@24@25@26@27' 30 vs100 = vs100 + '@28@29@30@31@32@33@34@35@36@37@38@39@40@41@42@43@44@45@46@47@48@49' 31 vs100 = vs100 + '@50@51@52@53@54@55@56@57@58@59@60@61@62@63@64@65@66@67@68@69@70@71' 32 va100 = vs100 + '@72@73@74@75@76@77@78@79@80@81@82@83@84@85@86@87@88@89@90@91@92@93' 33 va100 = vs100 + '@94@95@96@97@98@99' 34 35 ## e.g. # generic.py -o 'coincident_CFtimes' -S '0@1@2@3@4@5@6@7@8@9,seconds since 1949-12-01 00:00:00,hours since 1949-12-01 00:00:00' 36 ## e.g. # generic.py -o count_cond -S 0@1@2@3@4@5@6@7@8@9,4,le 24 37 ## e.g. # generic.py -o grid_combinations -S 1,2 25 38 ## e.g. # generic.py -o PolyArea -S -0.5@0.5@0.5@-0.5,0.5@0.5@-0.5@-0.5 39 ## e.g. # generic.py -o radial_points -S 0.785398163397,5 26 40 ## e.g. # generic.py -o rmNOnum -S LMD123IPSL 27 41 ## e.g. # generic.py -o significant_decomposition -S 3.576,-2 28 42 ## e.g. # generic.py -o unitsDate -S '19490101000000,19760217082932,second' 43 ## e.g. # generic.py -o running_mean -S 0@1@2@3@4@5@6@7@8@9,10 29 44 ## e.g. # generic.py -o squared_radial -S 3 45 ## e.g. # generic.py -o wdismean -S 0.005@0.005,0.@1.@2.@3. 30 46 31 47 operationnames = "'" + gen.numVector_String(operations, "', '") + "'" … … 53 69 print getattr(object, opern).__doc__ 54 70 71 elif oper == 'coincident_CFtimes': 72 Nvals = 3 73 vals = opts.values.split(cS) 74 if vals[0] == 'h': 75 print gen.coincident_CFtimes.__doc__ 76 quit(-1) 77 else: 78 if len(vals) != Nvals: 79 print errormsg 80 print ' ' + main + ": operation '" + oper + "' requires", Nvals, 'and', \ 81 len(vals), ' has passed!!' 82 print gen.coincident_CFtimes.__doc__ 83 quit(-1) 84 vals0 = np.array(vals[0].split('@'), dtype=np.float) 85 print gen.coincident_CFtimes(vals0, vals[1], vals[2]) 86 87 elif oper == 'count_cond': 88 Nvals = 3 89 vals = opts.values.split(cS) 90 if vals[0] == 'h': 91 print gen.count_cond.__doc__ 92 quit(-1) 93 else: 94 if len(vals) != Nvals: 95 print errormsg 96 print ' ' + main + ": operation '" + oper + "' requires", Nvals, 'and', \ 97 len(vals), ' has passed!!' 98 print gen.count_cond.__doc__ 99 quit(-1) 100 vals0 = np.array(vals[0].split('@'), dtype=np.float) 101 print gen.count_cond(np.array(vals[0].split('@'), dtype=np.float), \ 102 np.float(vals[1]), vals[2]) 103 55 104 elif oper == 'grid_combinations': 56 105 Nvals = 2 … … 87 136 print gen.PolyArea(xvals, yvals) 88 137 138 elif oper == 'radial_points': 139 Nvals = 2 140 vals = opts.values.split(cS) 141 if vals[0] == 'h': 142 print gen.radial_points.__doc__ 143 quit(-1) 144 else: 145 if len(vals) != Nvals: 146 print errormsg 147 print ' ' + main + ": operation '" + oper + "' requires", Nvals, 'and', \ 148 len(vals), ' has passed!!' 149 print gen.radial_points.__doc__ 150 quit(-1) 151 print gen.radial_points(np.float(vals[0]), int(vals[1])) 152 89 153 elif oper == 'rmNOnum': 90 154 Nvals = 1 … … 102 166 print gen.rmNOnum(vals[0]) 103 167 168 elif oper == 'running_mean': 169 Nvals = 2 170 vals = opts.values.split(cS) 171 if vals[0] == 'h': 172 print gen.running_mean.__doc__ 173 quit(-1) 174 else: 175 if len(vals) != Nvals: 176 print errormsg 177 print ' ' + main + ": operation '" + oper + "' requires", Nvals, 'and', \ 178 len(vals), ' has passed!!' 179 print gen.running_mean.__doc__ 180 quit(-1) 181 print gen.running_mean(np.array(vals[0].split('@'), dtype=np.float), int(vals[1])) 182 104 183 elif oper == 'significant_decomposition': 105 184 Nvals = 2 … … 147 226 print gen.unitsDate(vals[0], vals[1], vals[2]) 148 227 228 elif oper == 'wdismean': 229 Nvals = 2 230 vals = opts.values.split(cS) 231 if vals[0] == 'h': 232 print gen.wdismean.__doc__ 233 quit(-1) 234 else: 235 if len(vals) != Nvals: 236 print errormsg 237 print ' ' + main + ": operation '" + oper + "' requires", Nvals, 'and', \ 238 len(vals), ' has passed!!' 239 print gen.wdismean.__doc__ 240 quit(-1) 241 vals0 = np.array(vals[0].split('@'), dtype=np.float) 242 vals1 = np.array(vals[1].split('@'), dtype=np.float).reshape(2,2) 243 244 print gen.wdismean(vals0, vals1) 245
Note: See TracChangeset
for help on using the changeset viewer.