Changeset 17598
- Timestamp:
- 03/28/14 12:18:11 (11 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk-jpl/src/m/interp/interp.py
r17596 r17598 36 36 assert len(kwargs)==0, 'error, unexpected or misspelled kwargs' 37 37 38 points=npy.array([x,y]).T 38 # create sub-vectors that just cover the limits of xi and yi 39 dx=x[1]-x[0] 40 dy=y[1]-y[0] 41 xlim=[min(xi)-dx,max(xi)+dx] 42 ylim=[min(yi)-dy,max(yi)+dy] 43 xflag=npy.logical_and(x>xlim[0],x<xlim[1]) 44 yflag=npy.logical_and(y>ylim[0],y<ylim[1]) 45 bothind=npy.nonzero(npy.logical_and(xflag,yflag)) 46 subdata=data[bothind] 47 subx=x[bothind] 48 suby=y[bothind] 49 points=npy.array([subx,suby]).T 50 51 # mask out any nan's in the data and corresponding coordinate points 52 mask=npy.isnan(subdata) 53 ind=npy.nonzero(mask)[0] 54 if len(ind): 55 print "WARNING: input data grid contains nan values. Spline interpolation may be questionable." 56 subdata=npy.delete(subdata,ind) 57 points=npy.delete(points,ind,axis=0) 39 58 40 59 if maxiter: 41 curvy=CloughTocher2DInterpolator(points,data,tol,maxiter=maxiter)60 spline=CloughTocher2DInterpolator(points,subdata,tol,maxiter=maxiter) 42 61 else: 43 curvy=CloughTocher2DInterpolator(points,data,tol)62 spline=CloughTocher2DInterpolator(points,subdata,tol) 44 63 45 interpdata= curvy(xi,yi)64 interpdata=spline(xi,yi) 46 65 47 66 return interpdata … … 99 118 mask=npy.isnan(flatsubdata) 100 119 ind=npy.nonzero(mask)[0] 101 if float(len(ind))/float(len(flatsubdata)) > 0.1:102 print "WARNING: over 10% ofdata grid contains nan values. Spline interpolation may be questionable."120 if len(ind): 121 print "WARNING: input data grid contains nan values. Spline interpolation may be questionable." 103 122 flatsubdata=npy.delete(flatsubdata,ind) 104 123 points=npy.delete(points,ind,axis=0) 105 124 106 125 # create spline and index spline at mesh points 107 spl =CloughTocher2DInterpolator(points,flatsubdata)108 interpdata=spl (xi,yi)126 spline=CloughTocher2DInterpolator(points,flatsubdata) 127 interpdata=spline(xi,yi) 109 128 110 129 return interpdata
Note:
See TracChangeset
for help on using the changeset viewer.