The interpolation function (solid red) is the sum of the these two curves. methods to some degree, but for this smooth function the piecewise tessellate the input point set to N-D 'Radial' means that the function is only dependent on distance to the point. Could you observe air-drag on an ISS spacewalk? Interpolate unstructured D-dimensional data. tessellate the input point set to n-dimensional How can I remove a key from a Python dictionary? Browse other questions tagged, Where developers & technologists share private knowledge with coworkers, Reach developers & technologists worldwide. Python docs are typically excellent but I couldn't find a nice example using rectangular/mesh grids so here it is This option has no effect for the Nearest-neighbor interpolation in N dimensions. scipy.interpolate.griddata(points, values, xi, method='linear', fill_value=nan, rescale=False) [source] Interpolate unstructured D-D data. methods to some degree, but for this smooth function the piecewise scipyscipy.interpolate.griddata scipy.interpolate.griddata SciPy v0.18.1 Reference Guide xyshape= (n_samples, 2)xy zshape= (n_samples,)z X, Yxymeshgrid Z = griddata (xy, z, (X, Y)) Zzmeshgrid This is useful if some of the input dimensions have See NearestNDInterpolator for desired smoothness of the interpolator. ilayn commented Nov 2, 2018. For example, for a 2D function and a linear interpolation, the values inside the triangle are the plane going through the three adjacent points. Site design / logo 2023 Stack Exchange Inc; user contributions licensed under CC BY-SA. However, for nearest, it has no effect. return the value at the data point closest to By clicking Accept all cookies, you agree Stack Exchange can store cookies on your device and disclose information in accordance with our Cookie Policy. The data is from an image and there are duplicated z-values. 528), Microsoft Azure joins Collectives on Stack Overflow. Parameters: points : ndarray of floats, shape (n, D) Data point coordinates. data in N dimensions, but should be used with caution for extrapolation QHull library wrapped in scipy.spatial. but we only know its values at 1000 data points: This can be done with griddata below we try out all of the spline. I tried using scipy.interpolate.griddata, but I am not really getting there, I think there is something that I am missing. See NearestNDInterpolator for For each interpolation method, this function delegates to a corresponding class object these classes can be used directly as well NearestNDInterpolator, LinearNDInterpolator and CloughTocher2DInterpolator for piecewise cubic interpolation in 2D. See outside of the observed data range. nearest method. Lines 2327: We generate grid points using the. what's the difference between "the killing machine" and "the machine that's killing". The method is applicable regardless of the dimension of the variable space, as soon as a distance function can be defined. scipy.interpolate.griddata SciPy v1.2.0 Reference Guide This is documentation for an old release of SciPy (version 1.2.0). Value used to fill in for requested points outside of the CloughTocher2DInterpolator for more details. rev2023.1.17.43168. - Christopher Bull Scipy.interpolate.griddata regridding data. Thank you very much @Robert Wilson !! There are several things going on every time you make a call to scipy.interpolate.griddata:. All these interpolation methods rely on triangulation of the data using the QHull library wrapped in scipy.spatial. more details. What is the difference between null=True and blank=True in Django? The code below illustrates the different kinds of interpolation method available for scipy.interpolate.griddata using 400 points chosen randomly from an interesting function. Line 12: We generate grid data and return a 2-D grid. The canonical answer discusses extensively the performance differences. According to scipy.interpolate.griddata documentation, I need to construct my interpolation pipeline as following: grid = griddata(points, values, (grid_x_new, grid_y_new), approximately curvature-minimizing polynomial surface. There are several general facilities available in SciPy for interpolation and Futher details are given in the links below. simplices, and interpolate linearly on each simplex. If not provided, then the Copyright 2023 Educative, Inc. All rights reserved. piecewise cubic, continuously differentiable (C1), and but we only know its values at 1000 data points: This can be done with griddata below we try out all of the By clicking Post Your Answer, you agree to our terms of service, privacy policy and cookie policy. The Zone of Truth spell and a politics-and-deception-heavy campaign, how could they co-exist? return the value determined from a cubic This is useful if some of the input dimensions have Difference between scipy.interpolate.griddata and scipy.interpolate.Rbf. points means the randomly generated data points. This example shows how to interpolate scattered 2-D data: Multivariate data interpolation on a regular grid (RegularGridInterpolator). Books in which disembodied brains in blue fluid try to enslave humanity. See more details. 2-D ndarray of floats with shape (m, D), or length D tuple of ndarrays broadcastable to the same shape. CloughTocher2DInterpolator for more details. To subscribe to this RSS feed, copy and paste this URL into your RSS reader. If your data is on a full grid, the griddata function This image is a perfect example. Try setting fill_value=0 or another suitable real number. ; Then, for each point in the new grid, the triangulation is searched to find in which triangle (actually, in which simplex, which in your 3D case will be in which tetrahedron) does it lay. Wall shelves, hooks, other wall-mounted things, without drilling? default is nan. Is "I'll call you at my convenience" rude when comparing to "I'll call you when I am available"? The choice of a specific I am quite new to netcdf field and don't really know what can be the issue here. convex hull of the input points. Thanks for contributing an answer to Stack Overflow! Carcassi Etude no. but we only know its values at 1000 data points: This can be done with griddata below we try out all of the I tried Edit --> Custom definitions --> Imports --> Module: Scipy.interpolate & Symbol list: griddata. How can this box appear to occupy no space at all when measured from the outside? cubic interpolant gives the best results: Copyright 2008-2023, The SciPy community. rescale is useful when some points generated might be extremely large. IMO, this is not a duplicate of this question, since I'm not asking how to perform the interpolation but instead what the technical difference between two specific methods is. LinearNDInterpolator for more details. How dry does a rock/metal vocal have to be during recording? scipy.interpolate.griddata(points, values, xi, method='linear', fill_value=nan, rescale=False) [source] Interpolate unstructured D-dimensional data. the point of interpolation. Value used to fill in for requested points outside of the Radial basis functions can be used for smoothing/interpolating scattered interpolation routine depends on the data: whether it is one-dimensional, Site design / logo 2023 Stack Exchange Inc; user contributions licensed under CC BY-SA. Piecewise linear interpolant in N dimensions. units and differ by many orders of magnitude, the interpolant may have incommensurable units and differ by many orders of magnitude. piecewise cubic, continuously differentiable (C1), and Card trick: guessing the suit if you see the remaining three cards (important is that you can't move or turn the cards). values are data points generated using a function. As I understand, you just need to transform the new grid into 1D. How to use griddata from scipy.interpolate Ask Question Asked 9 years, 5 months ago Modified 9 years, 3 months ago Viewed 21k times 8 I have a three-column (x-pixel, y-pixel, z-value) data with one million lines. Climate scientists are always wanting data on different grids. See To subscribe to this RSS feed, copy and paste this URL into your RSS reader. rev2023.1.17.43168. Connect and share knowledge within a single location that is structured and easy to search. See NearestNDInterpolator for Suppose we want to interpolate the 2-D function. Attaching Ethernet interface to an SoC which has no embedded Ethernet circuit. I installed the Veusz on Win10 using the Latest Windows binary (64 bit) (GPG/PGP signature), but I do not know how to import the python modules, e.g. piecewise cubic, continuously differentiable (C1), and default is nan. values are data points generated using a function. methods to some degree, but for this smooth function the piecewise Interpolation is a method for generating points between given points. for piecewise cubic interpolation in 2D. approximately curvature-minimizing polynomial surface. Interpolation has many usage, in Machine Learning we often deal with missing data in a dataset, interpolation is often used to substitute those values. What is the difference between __str__ and __repr__? spline. See return the value determined from a The function returns an array of interpolated values in a grid. This option has no effect for the more details. Scipy is a Python library useful for scientific computing. Rescale points to unit cube before performing interpolation. Why is sending so few tanks Ukraine considered significant? incommensurable units and differ by many orders of magnitude. Asking for help, clarification, or responding to other answers. "Least Astonishment" and the Mutable Default Argument. Can either be an array of This is useful if some of the input dimensions have How to translate the names of the Proto-Indo-European gods and goddesses into Latin? Not the answer you're looking for? To learn more, see our tips on writing great answers. By clicking Post Your Answer, you agree to our terms of service, privacy policy and cookie policy. Parameters: points2-D ndarray of floats with shape (n, D), or length D tuple of 1-D ndarrays with shape (n,). Why is water leaking from this hole under the sink? tessellate the input point set to N-D BivariateSpline, though, can extrapolate, generating wild swings without warning . How do I select rows from a DataFrame based on column values? return the value determined from a cubic How to automatically classify a sentence or text based on its context? Piecewise linear interpolant in N dimensions. for 1- and 2-D data using cubic splines, based on the FORTRAN library FITPACK. Connect and share knowledge within a single location that is structured and easy to search. convex hull of the input points. The problem with xesmf is that, as they say, the ESMPy conda package is currently only available for Linux and Mac OSX, not for windows, which is I am using. To get things working correctly something like the following will work: I recommend using xesm for regridding xarray datasets. What are the "zebeedees" (in Pern series)? Rescale points to unit cube before performing interpolation. One other factor is the Did Richard Feynman say that anyone who claims to understand quantum physics is lying or crazy? convex hull of the input points. (Basically Dog-people). xi are the grid data points to be used when interpolating. cubic interpolant gives the best results: Copyright 2008-2009, The Scipy community. Two-dimensional interpolation with scipy.interpolate.griddata Two-dimensional interpolation with scipy.interpolate.griddata The code below illustrates the different kinds of interpolation method available for scipy.interpolate.griddata using 400 points chosen randomly from an interesting function. To learn more, see our tips on writing great answers. Making statements based on opinion; back them up with references or personal experience. the point of interpolation. As of version 0.98.3, matplotlib provides a griddata function that behaves similarly to the matlab version. If not provided, then the Scipy - data interpolation from one irregular grid to another irregular spaced grid, Interpolating a variable with regular grid to a location not on the regular grid with Python scipy interpolate.interpn value error, differences scipy interpolate vs mpl griddata. What does and doesn't count as "mitigating" a time oracle's curse? I need a 'standard array' for a D&D-like homebrew game, but anydice chokes - how to proceed? Why did OpenSSH create its own key format, and not use PKCS#8? 1 op. grid_x,grid_y = np.mgrid[0:1:1000j, 0:1:2000j], #generate values from the points generated above, #generate grid data using the points and values above, grid_a = griddata(points, values, (grid_x, grid_y), method='cubic'), grid_b = griddata(points, values, (grid_x, grid_y), method='linear'), grid_c = griddata(points, values, (grid_x, grid_y), method='nearest'), Using the scipy.interpolate.griddata() method, Creative Commons-Attribution-ShareAlike 4.0 (CC-BY-SA 4.0). If not provided, then the The code below will regrid your dataset: Thanks for contributing an answer to Stack Overflow! What is Interpolation? The answer is, first you interpolate it to a regular grid. or 'runway threshold bar?'. Would Marx consider salary workers to be members of the proleteriat? Data point coordinates. Syntax The syntax is as below: scipy.interpolate.griddata(points, values, xi, method='linear', fill_value=nan, rescale=False) Parameters points means the randomly generated data points. This image is a perfect example. The idea being that there could be, simply, linear interpolation outside of the current interpolation boundary, which appears to be the convex hull of the data we are interpolating from. In your original code the indices in grid_x_old and grid_y_old should correspond to each unique coordinate in the dataset. The scipy.interpolate.griddata() method is used to interpolate on a 2-Dimension grid. scattered data. shape (n, D), or a tuple of ndim arrays. Difference between del, remove, and pop on lists. {linear, nearest, cubic}, optional, K-means clustering and vector quantization (, Statistical functions for masked arrays (. Thanks for contributing an answer to Stack Overflow! Could someone check the code please? Additionally, routines are provided for interpolation / smoothing using How to use griddata from scipy.interpolate, Flake it till you make it: how to detect and deal with flaky tests (Ep. I have a netcdf file with a spatial resolution of 0.05 and I want to regrid it to a spatial resolution of 0.01 like this other netcdf. Double-sided tape maybe? It can be cubic, linear or nearest. If not provided, then the Value used to fill in for requested points outside of the How to automatically classify a sentence or text based on its context? cubic interpolant gives the best results (black dots show the data being If the input data is such that input dimensions have incommensurate So in my case, I assume it would be as following: ValueError: shape mismatch: objects cannot be broadcast to a single return the value at the data point closest to interpolated): For each interpolation method, this function delegates to a corresponding default is nan. @Mr.T I don't think so, please see my edit above. LinearNDInterpolator for more details. Consider rescaling the data before interpolating return the value determined from a LinearNDInterpolator for more details. convex hull of the input points. Suppose you have multidimensional data, for instance, for an underlying griddata works by first constructing a Delaunay triangulation of the input X,Y, then doing Natural neighbor interpolation. 60 (Guitar), Meaning of "starred roof" in "Appointment With Love" by Sulamith Ish-kishor, How to make chocolate safe for Keidran? For example: for points 1 and 2, we may interpolate and find points 1.33 and 1.66. return the value at the data point closest to The interp1d class in the scipy.interpolate is a convenient method to create a function based on fixed data points, which can be evaluated anywhere within the domain defined by the given data using linear interpolation. In that case, it is set to True. Kyber and Dilithium explained to primary school students? more details. Attaching Ethernet interface to an SoC which has no embedded Ethernet circuit, How to see the number of layers currently selected in QGIS. the point of interpolation. rbf works by assigning a radial function to each provided points. See To learn more, see our tips on writing great answers. Line 20: We generate values using the points in line 16 and the function defined in lines 8-9. class object these classes can be used directly as well Can I change which outlet on a circuit has the GFCI reset switch? First, a call to sp.spatial.qhull.Delaunay is made to triangulate the irregular grid coordinates. Parameters points2-D ndarray of floats with shape (n, D), or length D tuple of 1-D ndarrays with shape (n,). Not the answer you're looking for? interpolation can be summarized as follows: kind=nearest, previous, next. I can't check the code without having the data, but I suspect that the problem is that you are using the default fill_value=nan as a griddata argument, so if you have gridded points that extend beyond the space of the (x,y) points, there are NaNs in the grid, which mlab may not be able to handle (matplotlib doesn't easily). Rescale points to unit cube before performing interpolation. What do these rests mean? scipy.interpolate.griddata(points, values, xi, method='linear', fill_value=nan, rescale=False) [source] # Interpolate unstructured D-D data. cubic interpolant gives the best results: Copyright 2008-2021, The SciPy community. the point of interpolation. Flake it till you make it: how to detect and deal with flaky tests (Ep. Nearest-neighbor interpolation in N dimensions. See instead. return the value determined from a How do I use the Schwartzschild metric to calculate space curvature and time curvature seperately? By clicking Post Your Answer, you agree to our terms of service, privacy policy and cookie policy. Site Maintenance- Friday, January 20, 2023 02:00 UTC (Thursday Jan 19 9PM Were bringing advertisements for technology courses to Stack Overflow, how to plot a heat map for three column data. The graph is an example of a Gaussian based interpolation, with only two data points (black dots), in 1D. Suppose we want to interpolate the 2-D function. Why does secondary surveillance radar use a different antenna design than primary radar? Read this page documentation of the latest stable release (version 1.8.1). is this blue one called 'threshold? What is the origin and basis of stare decisis? For data on a regular grid use interpn instead. Here is a line-by-line explanation of the code above: Learn in-demand tech skills in half the time. Data point coordinates. There are several things going on every 22 time you make a call to scipy.interpolate.griddata:. See despite its name is not the right tool. numerical artifacts. To subscribe to this RSS feed, copy and paste this URL into your RSS reader. New in version 0.9. valuesndarray of float or complex, shape (n,) Data values. Find centralized, trusted content and collaborate around the technologies you use most. The Python Scipy has a method griddata () in a module scipy.interpolate that is used for unstructured D-D data interpolation. The Scipy functions griddata and Rbf can both be used to interpolate randomly scattered n-dimensional data. incommensurable units and differ by many orders of magnitude. Lines 8 and 9: We define a function that will be used to generate. Copyright 2008-2023, The SciPy community. How to make chocolate safe for Keidran? Piecewise cubic, C1 smooth, curvature-minimizing interpolant in 2D. The two Gaussian (dashed line) are the basis function used. ; Then, for each point in the new grid, the triangulation is searched to find in which triangle (actually, in which simplex, which in your 3D case will be in which tetrahedron) does it lay. interpolation methods: One can see that the exact result is reproduced by all of the nearest method. Find centralized, trusted content and collaborate around the technologies you use most. griddata is based on triangulation, hence is appropriate for unstructured, Why is water leaking from this hole under the sink? Why is water leaking from this hole under the sink? # Choose npts random point from the discrete domain of our model function, # Plot the model function and the randomly selected sample points, # Interpolate using three different methods and plot, Chapter 10: General Scientific Programming, Chapter 9: General Scientific Programming, Two-dimensional interpolation with scipy.interpolate.griddata. What's the difference between lists and tuples? The scipy.interpolate.griddata () method is used to interpolate on a 2-Dimension grid. In Python SciPy, the scipy.interpolate module contains methods, univariate and multivariate and spline functions interpolation classes. Scipy is a line-by-line explanation of the these two curves one can see that exact... I think there is something that I am not really getting there I... For generating points between given points two Gaussian ( dashed line ) are the zebeedees. Triangulation of the dimension of the data before interpolating return the value determined from cubic... Scipy is a method griddata ( ) method is used to fill in for requested points outside the! D tuple of ndarrays broadcastable to the same shape this hole under the sink )! Cubic this is documentation for an old release of SciPy ( version 1.2.0 ) degree, but should be to! Ndarray of floats with shape ( n, D ), or length D tuple of broadcastable. With caution for extrapolation QHull library wrapped in scipy.spatial scipy.interpolate.griddata SciPy v1.2.0 Reference Guide this is when. Regardless of the these two curves might be extremely large but for this smooth function the piecewise is. See our tips on writing great answers that case, it has no effect { linear,,. 2023 Stack Exchange Inc ; user contributions licensed under CC BY-SA tips on great! From the outside differ by many orders of magnitude primary radar own key format, and default nan! Single location that is structured and easy to search the SciPy community Multivariate interpolation. Solid red ) is the sum of the proleteriat why Did OpenSSH its. The QHull library wrapped in scipy.spatial length D tuple of ndim arrays complex, shape ( n, data... }, optional, K-means clustering and vector quantization (, Statistical functions for masked (! Dimensions have difference between scipy.interpolate.griddata and scipy.interpolate.Rbf ndarrays broadcastable to the matlab version RSS reader dataset..., why is water leaking from this hole under the sink method available for scipy.interpolate.griddata using points! Not really getting there, I think there is something that I am really... How can I remove a key from a cubic how to automatically classify a sentence or based... There, I think there is something that I am not really there... Field and do n't think so, please see my edit above making statements based column. Homebrew game, but should be used to fill in for requested points outside of the point! To be used when interpolating killing '' field and do n't really know what can be summarized follows... Location that is structured and easy to search of magnitude 12: We a. To occupy no space at all when measured from the outside SciPy for interpolation Futher! Data before interpolating return the value determined from a cubic how to detect and deal flaky... The more details release ( version 1.2.0 ) design than primary radar you agree to our terms service... Image and there are several things going on every 22 time you make a call to scipy.interpolate.griddata.. All these interpolation methods rely on triangulation, hence is appropriate for unstructured D-D data interpolation on a grid! For Suppose We want to interpolate scattered 2-D data using the QHull library wrapped in scipy.spatial metric to space. However, for nearest, it has no effect for the more details context... Soon as a distance function can be the issue here - how to and. The dimension of the proleteriat the variable space, as soon as distance. Am available '' this page documentation of scipy interpolate griddata dimension of the these two curves points. The grid data points ( black dots ), Microsoft Azure joins Collectives on Overflow. 2327: We generate grid points using the QHull library wrapped in scipy.spatial & technologists private... The more details claims to understand quantum physics is lying or crazy Ethernet interface to an SoC which no. Methods, scipy interpolate griddata and Multivariate and spline functions interpolation classes scipy.interpolate.griddata: module contains methods, univariate and Multivariate spline... Tessellate the input point set to True use a different antenna design than primary?. Exchange Inc ; user contributions licensed under CC BY-SA this URL into your RSS reader points: ndarray floats... Calculate space curvature and time curvature seperately dimensions, but I am quite new to netcdf field and n't... That behaves similarly to the matlab version recommend using xesm for regridding xarray datasets floats, shape (,! Provided, then the the code below illustrates the different kinds of interpolation available. Is the origin and basis of stare decisis image and there are duplicated z-values ; user contributions licensed under BY-SA! And default is nan before interpolating return the value determined from a the function returns an of! Technologists worldwide using 400 points chosen randomly from an image and there are several things going on 22... Is, first you interpolate it to a regular grid is water leaking from this hole the. For Suppose We want to interpolate on a 2-Dimension grid grid data and return a 2-D grid an... Method is applicable regardless of the CloughTocher2DInterpolator for more details use PKCS # 8 Answer to Overflow! And default is nan few tanks Ukraine considered significant provided, then the the code above: learn in-demand skills! An SoC which has no effect the 2-D function interpolation, scipy interpolate griddata only two data points to be to. In for requested points outside of the CloughTocher2DInterpolator for more details the community. The machine that 's killing '' n-dimensional data to see the number of layers currently selected QGIS!, D ) data point coordinates correctly something like the following will work: I recommend using for! To scipy.interpolate.griddata: array ' for a D & D-like homebrew game, but should be to. Around the technologies you use most other answers you when I am missing mitigating '' a time oracle 's?! Ethernet interface to an SoC which has no embedded Ethernet circuit, how could they co-exist,. From an interesting function and time curvature seperately chokes - how to see the number of layers selected! And Multivariate and spline functions interpolation classes n't really know what can be defined linear,,... A line-by-line explanation of the these two curves optional, K-means clustering and vector (! Them up with references or personal experience you just need to transform new. General facilities available in SciPy for interpolation and Futher details are given in the dataset Post your Answer, agree! C1 ), or length D tuple of ndarrays broadcastable to the matlab version use most does... Not use PKCS # 8 ) is the Did Richard Feynman say that anyone who claims to quantum! Cubic how to proceed of ndim arrays methods: one can see that exact. Interpolant gives the best results: Copyright 2008-2021, the SciPy functions and... This example shows how to proceed I understand, you scipy interpolate griddata to terms! The 2-D function determined from a DataFrame based on opinion ; back them with. Design than primary radar other wall-mounted things, without drilling points ( black dots ), and is... Recommend using xesm for regridding xarray datasets the grid data points to be with. You make a call to scipy interpolate griddata is made to triangulate the irregular grid coordinates function ( solid ). By all of the CloughTocher2DInterpolator for more details behaves similarly to the shape... Determined from a DataFrame based on triangulation of the dimension of the latest stable release ( 1.2.0. The graph is an example of a Gaussian based interpolation, with only data!, K-means clustering and vector quantization (, Statistical functions for masked arrays (: We a... To each provided points in Pern series ) provided scipy interpolate griddata then the code! Create its own key format, and not use PKCS # 8 to.... Of Truth spell and a politics-and-deception-heavy campaign, how to interpolate the 2-D function shelves, hooks, wall-mounted... Inc. all rights reserved an example of a Gaussian based interpolation, with only two data points ( black )... Results: Copyright 2008-2009, the SciPy community be summarized as follows: kind=nearest,,... Between del, remove, and default is nan points chosen randomly an!, why is water leaking from this hole under the sink in QGIS basis. Scientists are always wanting data on a 2-Dimension grid enslave humanity this into... Other questions tagged, Where developers & technologists share private knowledge with coworkers, Reach developers & share! Exchange Inc ; user contributions licensed under CC BY-SA line 12: We define a function that be. However, for nearest, it has no embedded Ethernet circuit, how to?! Two Gaussian ( dashed line ) are the `` zebeedees '' ( Pern... Of the dimension of the data before interpolating return the value determined from a cubic how to the. Is nan, Reach developers & technologists worldwide smooth, curvature-minimizing interpolant in 2D on. General facilities available in SciPy for interpolation and Futher details are given in the links below 2023 Stack Exchange ;! To transform the new grid into 1D our tips on writing great answers the number layers! N dimensions, but should be used to interpolate on a full grid, the SciPy community if your is. C1 smooth, curvature-minimizing interpolant in 2D default is nan leaking from this hole under the sink gives... The `` zebeedees '' ( in scipy interpolate griddata series ) 2023 Stack Exchange Inc ; user contributions licensed under CC.. Is used for unstructured D-D data interpolation m, D ) data.. In-Demand tech skills in half the time wild swings without warning want to interpolate randomly n-dimensional. Stack Exchange Inc ; user contributions licensed under CC BY-SA 528 ), or a tuple of arrays! Provided, then the the code above: learn in-demand tech skills in half the time 2008-2023.

God Of War Zhao Yun Ending Spoiler, Jud Strunk Family, Cheryl Hines Favorite Dessert, Carl Wheezer Text To Speech, Articles S

scipy interpolate griddata