интерполировать поверхность местности из рассеянных данных, используя уравнение теплопроводности - PullRequest
2 голосов
/ 24 декабря 2008

Это мой первый вопрос на этом форуме, поэтому, пожалуйста, потерпите меня, и я надеюсь, что я не нарушаю никаких правил. Я рассматриваю различные способы моделирования рассеянных трехмерных данных в виде функции с сеткой (поддержка xy, z = z (x, y)).

Отвечая на другой вопрос, Кориан был настолько хорош, что упомянул метод , использующий уравнение теплопроводности для интерполяции (аппроксимации) поверхности местности , о которой я слышал и которой хотелось научиться, или даже найти параллель реализация? Не могли бы вы, Кориан или кто-нибудь другой, указать мне на такую ​​реализацию, если она находится в свободном доступе, или хотя бы немного подробнее объяснить, как это делается.

Ответы [ 2 ]

2 голосов
/ 24 декабря 2008

Не уверен насчет тепловых уравнений, но я решаю эту проблему с помощью TIN моделирование . Прочтите Герберт Эдельсбруннерс книгу по теме Геометрия и топология для генерации сетки . Я бы прочитал это как обязательное прочтение. Также заслуживает внимания вычислительная геометрия Джозефа О'Руркса в C , которая, хотя и носит более общий характер, включает рабочие примеры и составляет полезную поваренную книгу.

С точки зрения открытого исходного кода, проверьте следующую Ссылку Code Guru и посмотрите на Paul Bourkes work.

1 голос
/ 24 декабря 2008

Ну, статья в Википедии, на которую он указал, - хорошее начало. Подумайте о том, чтобы положить кубик льда в стакан с горячим чаем: в первый момент градиент между ними будет крутым:

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

но тепло пересекает градиент пропорционально градиенту, поэтому он начинает быстро меняться, а затем со временем меняется медленнее. (Вот почему это параболическое уравнение в частных производных; скорость изменения меняется, поэтому у вас есть & part; & sup2; t там.) Таким образом, вы оцениваете точки, корректируя местность на каждом этапе, чтобы сгладить процесс. Делая это параллельно, просто вы можете передать каждую точку сетки и смежные значения в отдельный процесс для каждого шага; это ни от чего не зависит.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...