Шаг 186.
Язык Python. Визуализация данных.
Библиотека Mayavi. Работа с pipeline. Работа с фильтрами (еще продолжение)

    На этом шаге мы продолжим знакомство с фильтрами.

   

ExtractVectorNorm

    Фильтр вычисляет норму (длину) вектора. Применяется при работе с векторными данными. Например, если визуализировать векторные данные без построения длин, то результат будет таким:

import numpy as np
from mayavi import mlab

x, y, z = np.mgrid[0:3, 0:3, 0:3]
u = x * x
v = y
w = z

src = mlab.pipeline.vector_scatter(u, v, w)
mlab.pipeline.glyph(src, mode="2darrow")

mlab.show()
Архив с файлом можно взять здесь.


Рис.1. Исходная модель

    В этом случае мы видим только направления векторов. Добавим вычисление длин векторов:

import numpy as np
from mayavi import mlab

x, y, z = np.mgrid[0:3, 0:3, 0:3]
u = x * x
v = y
w = z

src = mlab.pipeline.vector_scatter(u, v, w)
norms = mlab.pipeline.extract_vector_norm(src)
mlab.pipeline.glyph(norms, mode="2darrow")

mlab.show()
Архив с файлом можно взять здесь.


Рис.2. Демонстрация работы фильтра ExtractVectorNorm

   

ExtractVectorComponents

    Извлекает компоненты векторов.

    Извлечём из переданных векторов у-компоненты:

import numpy as np
from mayavi import mlab

x, y, z = np.mgrid[0:3, 0:3, 0:3]
u = x * x
v = y
w = z

src = mlab.pipeline.vector_scatter(u, v, w)
comps = mlab.pipeline.extract_vector_components(src)
comps.component = 'y-component'
mlab.pipeline.glyph(comps, mode="2darrow")

mlab.show()
Архив с файлом можно взять здесь.


Рис.3. Демонстрация работы фильтра ExtractVectorComponents

   

GaussianSplatter

    Фильтр размещает точки в объеме с эллиптическим гауссовым распределением. Это полезно для оценки поля плотности по набору рассеянных точек.

    Возьмем набор, который выглядит так, как показано на рисунке 4.


Рис.4. Исходная модель

    Проведём предварительную обработку фильтром GaussianSplatter.

import numpy as np
from mayavi import mlab

x, y = np.mgrid[-2:2:0.1, -2:2:0.1]
z = np.cos(x * y) * np.sin(x * y)

src = mlab.pipeline.array2d_source(z)
gsp = mlab.pipeline.gaussian_splatter(src)
mlab.pipeline.glyph(gsp, mode='cone')

mlab.show()
Архив с файлом можно взять здесь.

    Получим следующую модель:


Рис.5. Демонстрация работы фильтра GaussianSplatter

    На следующем шаге мы продолжим изучение этого вопроса.




Предыдущий шаг Содержание Следующий шаг