Changeset 2884 for inundation/pyvolution/least_squares.py
- Timestamp:
- May 16, 2006, 2:42:12 PM (19 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
inundation/pyvolution/least_squares.py
r2778 r2884 1132 1132 self.vertex_coordinates = vertex_coordinates 1133 1133 self.interpolation_points = interpolation_points 1134 self. T= time[:] # Time assumed to be relative to starttime1134 self.time = time[:] # Time assumed to be relative to starttime 1135 1135 self.index = 0 # Initial time index 1136 1136 self.precomputed_values = {} … … 1154 1154 1155 1155 m = len(self.interpolation_points) 1156 p = len(self. T)1156 p = len(self.time) 1157 1157 1158 1158 for name in quantity_names: … … 1169 1169 1170 1170 if verbose: print 'Interpolate' 1171 for i, t in enumerate(self. T):1171 for i, t in enumerate(self.time): 1172 1172 #Interpolate quantities at this timestep 1173 1173 if verbose and i%((p+10)/10)==0: … … 1199 1199 # #Return an average, making this a time series 1200 1200 # for name in quantity_names: 1201 # self.values[name] = zeros(len(self. T), Float)1201 # self.values[name] = zeros(len(self.time), Float) 1202 1202 # 1203 1203 # if verbose: print 'Compute mean values' 1204 # for i, t in enumerate(self. T):1205 # if verbose: print ' time step %d of %d' %(i, len(self. T))1204 # for i, t in enumerate(self.time): 1205 # if verbose: print ' time step %d of %d' %(i, len(self.time)) 1206 1206 # for name in quantity_names: 1207 1207 # self.values[name][i] = mean(quantities[name][i,:]) … … 1252 1252 1253 1253 1254 msg = 'Time interval [%s:%s]' %(self. T[0], self.T[1])1254 msg = 'Time interval [%s:%s]' %(self.time[0], self.time[-1]) 1255 1255 msg += ' does not match model time: %s\n' %t 1256 if t < self. T[0]: raise Exception(msg)1257 if t > self. T[-1]: raise Exception(msg)1256 if t < self.time[0]: raise Exception(msg) 1257 if t > self.time[-1]: raise Exception(msg) 1258 1258 1259 1259 oldindex = self.index #Time index 1260 1260 1261 1261 #Find current time slot 1262 while t > self. T[self.index]: self.index += 11263 while t < self. T[self.index]: self.index -= 11264 1265 if t == self. T[self.index]:1262 while t > self.time[self.index]: self.index += 1 1263 while t < self.time[self.index]: self.index -= 1 1264 1265 if t == self.time[self.index]: 1266 1266 #Protect against case where t == T[-1] (last time) 1267 1267 # - also works in general when t == T[i] … … 1269 1269 else: 1270 1270 #t is now between index and index+1 1271 ratio = (t - self. T[self.index])/\1272 (self. T[self.index+1] - self.T[self.index])1271 ratio = (t - self.time[self.index])/\ 1272 (self.time[self.index+1] - self.time[self.index]) 1273 1273 1274 1274 #Compute interpolated values … … 1333 1333 1334 1334 return res 1335 1336 def get_time(self): 1337 """Return model time as a vector of timesteps 1338 """ 1339 return self.time 1335 1340 1336 1341 … … 1356 1361 %(min(y), max(y), len(y)) 1357 1362 str += ' t in [%f, %f], len(t) == %d\n'\ 1358 %(min(self. T), max(self.T), len(self.T))1363 %(min(self.time), max(self.time), len(self.time)) 1359 1364 str += ' Quantities:\n' 1360 1365 for name in quantity_names: … … 1388 1393 # %(min(y), max(y), len(y)) 1389 1394 #print ' t in [%f, %f], len(t) == %d'\ 1390 # %(min(self. T), max(self.T), len(self.T))1395 # %(min(self.time), max(self.time), len(self.time)) 1391 1396 #print ' Quantities:' 1392 1397 #for name in quantity_names:
Note: See TracChangeset
for help on using the changeset viewer.