Warped Interpolation

I am a collaborator for the project GitHub - econ-ark/HARK: Heterogenous Agents Resources & toolKit

We are interested in N-D regular interpolators that work on non-rectilinear grids such as curvilinear grids. We have a strong intuition that there might be a way to exploit the structure of a regular grid even in a non-linear case such that we can avoid the expensive triangulation ( build and find simplex ) that happens in the N-D scattered scipy tools.

The notebook below describes the problem we are trying to solve.

To run the notebook interactively, you can use the link

but before running the notebook you have to open the terminal inside jupyterlab and do a pip install -e. to properly set up HARK.

We appreciate any insights you can provide regarding this problem.

1 Like

One quick addendum: We have implemented our preferred method (the first one mentioned) in python and numpy, and it works as we intend. We’ve also found some proprietary tools that seem to do this (though without seeing the code or better documentation, we can’t be sure what they are really doing in the background). But the Econ-ARK project is trying to move away from handmade tools to professional open-source tools, and we haven’t found anything that seems to handle this case directly.

In the link below I have collected a few sources that are related to this question.

I see you have radial basis functions in your list of references. Have you looked into that approach in more detail? It is typically well suited for irregular grid interpolation.

I think it is probably not really right for our case, which very much lives on a grid in Euclidian space.

Kamodo has the same problem. I try to get them on to this discussion, too. If the intervals between the coordinates are the same across the grid (e.g. a rectangular grid in longitude and latitude, but not necessarily at regular intervals), then SciPy’s regular grid interpolator works fine and doesn’t use triangulation. https://github.com/nasa/Kamodo.
The link to the notebook is broken.

1 Like

Here’s the notebook https://github.com/alanlujan91/SequentialEGM/blob/master/code/EGMN/example_WarpedInterpolation.ipynb