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

    На этом шаге мы начнем рассматривать фильтры.

    Фильтры в pipeline Mayavi предназначены только для трансформации данных, они не производят визуализацию данных. Рассмотрим некоторые из фильтров, которые могут быть полезны в работе.

 

CellDerivatives

    Вычисляет производные для входного набора данных (скалярные либо векторные данные), строит набор ячеек, значениями в которых будут производные.

    Пример:

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

 

CellToPointData

    Преобразует cell атрибут с данными в point атрибут, значение для point определяется как среднее ячеек, к которым эта точка принадлежит. Существует обратный к нему фильтр PointToCellData.

 

Contour

    Контурный фильтр для создания изоповерхностей.

 

CutPlane

    Интерактивный фильтр с 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

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




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