Good day all,
I've hit an infinite loop/hang using the delaunay package. Unfortunately,
I haven't been able to reproduce the issue with a nice minimal dataset, so I
don't expect much help, but I did want to note it in case.
I've been working with the delaunay package, making contour plots from
mostly unstructured data. Unfortunately, I cannot use the natgrid version
due to licensing issues, so I've been using the included delunay with mixed
results.
I've attached a .txt file containing the data values and x,y arrays used to
create the triangulation as well as the x,y points for the grid to use for
the resulting interpolation/extrapolation results. Listing of pertinent code
is below.
The hang occurs in the call:
z = interp_extrap( x2, y2 )
which, in this case is a call to the triangulations nn_interpolator(
x2, y2 )
If I use the nn_extrapolator, the hang doesn't happen, but there is a nasty
artifact.
The size of the resulting grid does not appear to matter ( so I made it
small for simplicity ).
I assume that I'm the one doing something wrong, so if there are better
approaches to this problem, don't hesitate to correct me ( please :) ).
--See output in attached text file.
CODE:
print 'data values:'
print list( data_values )
print 'data x:'
print list( x_data_points )
print 'data y:'
print list( y_data_points )
print 'start tri'
# triangulate data (beware this can get cranky if given concave
shape)
try:
ltri = Triangulation( array( x_data_points ), array(
y_data_points ) )
except Exception, err:
raise Exception, ( 'Triangulation failed ( %s )' % err )
print 'end tri'
print 'start interp/extrap'
# it seems we want the extremes of the x and y, but double check
bbox = ( x_model_points_sorted[ 0 ], x_model_points_sorted[ -1 ], \
y_model_points_sorted[ 0 ], y_model_points_sorted[ -1 ] )
print 'bounding box:'
print bbox
if extrapolate:
# extrapolate
print 'extrap'
try:
# bounding out to region maximums for extrapolation - then
nn interpolation is applied
interp_extrap = ltri.nn_extrapolator( array( data_values ),
bbox = bbox )
except Exception, err:
raise Exception, ( 'Extrapolation/Interpolation failed ( %s
)' % err )
else:
# interpolate
print 'interp'
try:
interp_extrap = ltri.nn_interpolator( array( data_values ) )
except Exception, err:
raise Exception, ( 'Interpolation failed ( %s )' % err )
print 'end interp/extrap'
# OVERRIDE SMOOTHNESS FOR TESTING:
self.smoothness = 0
num_grid_points = int( self.smoothness * 200 )
if num_grid_points == 0:
num_grid_points = 20
if len( x_model_points_sorted ) > num_grid_points:
x_model_points_sorted = linspace( x_model_points_sorted[ 0 ],
x_model_points_sorted[ -1 ], num_grid_points )
if len( y_model_points_sorted ) > num_grid_points:
y_model_points_sorted = linspace( y_model_points_sorted[ 0 ],
y_model_points_sorted[ -1 ], num_grid_points )
x2,y2 = meshgrid( x_model_points_sorted, y_model_points_sorted ) #
model boundary region
print 'do the i/e'
print 'x2 shape and y2 shape:'
print x2.shape, ' ', y2.shape
print 'x, grid points:'
print x_model_points_sorted
print 'y, grid points:'
print y_model_points_sorted
# run the interp/extrap step out to the bounded region on the grid
z = interp_extrap( x2, y2 ) # HANG ON nn_interp, but not nn_extrap!
print 'done with i/e'
:END CODE
Python version: 2.6.4
MPL version: 0.99.1
Windows XP Pro SP3
Thanks for reading,
-Erik Schweller
http://old.nabble.com/file/p27026918/boom_mpl_delaunay_output.txt
boom_mpl_delaunay_output.txt
--
View this message in context: http://old.nabble.com/Delaunay-nn_interpolator-hang-tp27026918p27026918.html
Sent from the matplotlib - users mailing list archive at Nabble.com.
|