На этом шаге мы начнем рассматривать фильтры.
Фильтры в pipeline Mayavi предназначены только для трансформации данных, они не производят визуализацию данных. Рассмотрим некоторые из фильтров, которые могут быть полезны в работе.
Вычисляет производные для входного набора данных (скалярные либо векторные данные), строит набор ячеек, значениями в которых будут производные.
Пример:
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) cell_drv = mlab.pipeline.cell_derivatives(src) mlab.pipeline.glyph(cell_drv, mode='cube') mlab.show()
Для изображения, представленного на рисунке 1, будет построено поле со значениями производных, изображённое на рисунке 2.
Рис.1. Исходное изображение
Рис.2. Демонстрация работы фильтра CellDerivatives
Преобразует cell атрибут с данными в point атрибут, значение для point определяется как среднее ячеек, к которым эта точка принадлежит. Существует обратный к нему фильтр PointToCellData.
Контурный фильтр для создания изоповерхностей.
Интерактивный фильтр с 3D-инструментом на сцене, который позволяет строить срезы для наборов данных.
Пример:
import numpy as np from mayavi import mlab x, y, z = np.ogrid[-7:7:0.5, -7:7:0.5, -1:7:0.5] scalars = x * x + y * y - z * z src = mlab.pipeline.scalar_field(scalars) cut_pl = mlab.pipeline.cut_plane(src) mlab.pipeline.surface(cut_pl) mlab.pipeline.iso_surface(src, contours=3, transparent=True) mlab.show()
Рис.3. Демонстрация работы фильтра CutPlane
На следующем шаге мы продолжим изучение этого вопроса.