2

This is my first question in this forum, so please bear with me and I hope I'm not violating any rules. I am looking at different ways to model scattered 3d data as a gridded function (over xy support, z=z(x,y)).

Answering another question, coryan was so nice as to mention the method using heat equation to interpolate (approximate) a terrain surface which I've heard about and been eager to learn, or even find a parallel implementation? Could please coryan or anybody else point me to such an implementation, if it's in public domain, or at least to explain a bit further how it is done.

Community
  • 1
  • 1
rychphd
  • 21
  • 2

2 Answers2

2

Not sure about heat eqautions, but the way that I solve this problem is via TIN modelling. Check out Herbert Edelsbrunners book on the topic, Geometry and Topology for Mesh Generation. I would have it down as a must read. Also well worthwhile is Joeseph O'Rourkes Computational Geometry in C which while more general does include worked examples and makes a useful cookbook.

In terms of open source, check the following Code Guru link and have a look at Paul Bourkes work.

SmacL
  • 22,555
  • 12
  • 95
  • 149
1

Well, the Wikipedia article he pointed to is a good start. Think about putting an ice cube in a glass of hot tea: the first instant, the gradient between them is steep:

     +-----
     |
-----+

but heat crosses the gradient in proportion to the gradient, so it starts changing quickly, and then changes more slowly over time. (That's why it's a parabolic partial differential equation; the rate of change is changing, so you have ∂²t in there.) So you evaluate the points, adjusting the terrain at each step, to smooth the process. Doing it in parallel is simply that you can hand each grid point and its adjacent values to a separate process for each step; it doesn't depend on anything else.

Charlie Martin
  • 110,348
  • 25
  • 193
  • 263