Delaunay nn_interpolator hang

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

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

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 :slight_smile: ).

--See output in attached text file.
        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
            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'
                # 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 )
            # interpolate
            print 'interp'
                interp_extrap = ltri.nn_interpolator( array( data_values ) )
            except Exception, err:
                raise Exception, ( 'Interpolation failed ( %s )' % err )
        print 'end interp/extrap'

        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'

Python version: 2.6.4
MPL version: 0.99.1
Windows XP Pro SP3

Thanks for reading,
-Erik Schweller


View this message in context:
Sent from the matplotlib - users mailing list archive at