Hello all,
I came to the conclusion that local interpolation is better suited than the current approach of generating an 'interpolation object' using scipy.
This is for two reasons: (1) It will be easier to integrate into the module. (2) Anecdotally, I had problems with interpolation creating local minima in arrival times in which path finding got stuck. I hope that more careful numerics can avoid that problem by using what we know about the the matrix of travel times (e.g., that there are no local minima of travel times).
In his book, Sethian states: "We do so by using second order Heun's method to integrate the ordinary differential equation. Starting from an initial point P0, we take one step using Euler's method to compute a temporary value. We then evaluate [nabla] T at this point by bilinear interpolation from the values of the gradient at each corner of the cell which contains the particular. These gradient values at cell corners are found by straightforward upwind differences using neighboring values. Once the gradient is evaluated at the temporary point, Heun's method is used to construct an average gradient. This is used to advance the position of the point, and the process is repeated."
I have two questions:
(1) Does anybody know of an alternative description (but see below)?
(2) Does anybody have a better understanding on 'straightforward upwind differences'? I know the concept is part of FMM, but I am, at the moment, not well versed in the different approximation schemes that exist.
Thanks,
Wolfram
---
For completness:
In the 1998 paper on triangulated surfaces, Kimmel and Sethian write: "We use second order
Huen’s integration method on the triangulated surface with a switch to a first order scheme at sonic points in the gradient. When integrating within a given triangle, its three neighboring
triangles support the computation and are used to interpolate T as a second order polynomial whose six coefficients are computed from those given T values at the vertices."