surfit это компьютерная
прогамма, предназначенная для построения поверхностей на основе разнородных
исходных данных: точек в пространстве, кривых, контуров, поверхностей,
разлинчных линейных ограничений и неравенств. Поверхность строится на
равномерной сетке. Для ее расчета пользователю необходимо задать т.н.
"правила гриддинга", описывающие способ учета того или иного
вида исходной информации. В surfit
реализован авторский метод расчета поверхностей, названные методом
последовательной минимизации функционалов (ПМФ).
surfit является
свободно распростаняемым (Free
Software) набором программ с открытым исходным кодом (Open
Source). Исходный код доступен бесплатно (нахаляву) и распространяется
по лицензии GPL.
surfit написан на языке программирования C++ с
использованием библиотеки STL. Особое внимание уделено вопросам
производительности (скорости счета). Основная цель данного проекта - это
создание высокопроизводительного набора программ для научных и инженерных
работников, имеющих дело с задачами построения различных карт (поверхностей).
Основные возможности surfit:
Позволяет пользователю создавать для построения поверхности определять
собственный алгоритм гриддинга, задавая т.н. "правила гриддинга". С
их помощью описывается способ учета исходной информации, используемой для
построения поверхности:
точки в простанстве (поврехность должна интерполировать/аппроксимировать
точки);
кривые (2Д) (поверхность должна
интерполировать/аппроксимировать кривую константой или значениями, взятыми по
кривой с другой поверхности);
области (значения поверхности внутри области должны
интерполировать/аппроксимировать константу или значения, взятые с другой
поверхности);
контура (3Д) (поврехность должна
интерполировать/аппроксимировать контура);
поверхности(повехрность должна
интерполировать/аппроксимировать другую поверхность);
неравенства (могут задаваться с помощью точек, кривых,
областей, и т.д.);
линейные ограничения (среднее/средневзвешенное значение
для области или всей поверхности).
Возможность обрабатывать ОГРОМНЫЕ массивы входных данных и
строить карты на ОГРОМНЫХ (и, конечно, равномерных!) сетках.
При определенном наборе "правил гриддинга" результат построения
сопоставим с результатами, полученными методом крайгинга или методом
MINC.
Возможно, набор скриншотов и
примеров даст более полное представление о возможностях surfit.