Визуализация векторных данных объема

Строки, частицы, ленты, потоки, трубы и конусы

Векторные данные об объеме содержат больше информации, чем скалярные данные, потому что каждая координатная точка в наборе данных имеет три значения, сопоставленные с ним. Эти значения задают вектор, который представляет и величину и направление. Скорость потока жидкости является примером векторных данных.

Много методов полезны для визуализации векторных данных:

  • Линии потоков прослеживают путь, за которым следовала бы невесомая частица, погруженная в векторное поле.

  • Потоковые частицы являются маркерами, которые прослеживают линии потоков и полезны для создания анимаций линии потоков.

  • Потоковые ленты похожи на линии потоков, за исключением того, что ширина лент позволяет им указать на скручивание. Потоковые ленты полезны, чтобы указать на вихревую скорость вращения.

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

  • Конические графики представляют величину и направление данных в каждой точке путем отображения конического наконечника стрелки или стрелы.

Обычно имеет место, что эти функции лучше всего объясняют данные, когда используется в сочетании с другими методами визуализации, такими как контуры, плоскости разбиения и изоповерхности. Примеры в этом разделе иллюстрируют некоторые из этих методов.

Используя скалярные методы с векторными данными

Методы визуализации, такие как срезы контура, плоскости разбиения и изоповерхности требуют скалярных данных об объеме. Можно использовать эти методы с векторными данными путем взятия величины векторов. Например, wind набор данных возвращает три координатных массива и три векторных массива компонента, uVW. В этом случае величина векторов скорости равняется скорости ветра в каждой соответствующей координатной точке в объеме.

wind_speed = sqrt(u.^2 + v.^2 + w.^2);

Массив wind_speed содержит скалярные значения для данных об объеме. Полноценность информации, произведенной этим подходом, однако, зависит от того, какое физическое явление представлено величиной ваших векторных данных.

Определение отправных точек для потоковых графиков

Потоковые графики (линии потоков, ленты, трубы, и конусы или стрелы) иллюстрируют поток 3-D векторного поля. Потоковые функции построения графика MATLAB® (streamline, streamribbon, streamtube, coneplot, stream2, stream3) все требуют, чтобы вы задали точку, в которой вы хотите начать каждую потоковую трассировку.

Определение отправных точек

Обычно знание характеристик ваших данных помогает вам выбрать начальные точки. Информация, такая как первичное направление потока и область значений координат данных помогает вам решить, где оценить данные.

streamslice функция полезна для исследования ваших данных. Например, эти операторы чертят срез через векторное поле в значении z на полпути в области значений.

load wind
zmax = max(z(:)); zmin = min(z(:));
streamslice(x,y,z,u,v,w,[],[],(zmax-zmin)/2)

Этот потоковый график среза показывает, что поток находится в положительном направлении X и также позволяет вам выбрать начальные точки в обоих X и Y. Вы могли создать подобные графики, которые нарезают объем в x-z плоскости или y-z плоскости, чтобы получить дальнейшее понимание области значений и ориентации ваших данных.

Определение массивов координат отправной точки

Чтобы задать начальную точку для одной линии потоков, вам нужны x-, y-, и z-координаты точки. meshgrid команда обеспечивает удобный способ создать массивы начальных точек. Например, вы могли выбрать следующие начальные точки из данных о ветре, отображенных в предыдущем потоковом срезе.

[sx,sy,sz] = meshgrid(80,20:10:50,0:5:15);

Этот оператор задает начальные точки как всю ложь на x = 80, y в пределах от 20 - 50, и z в пределах от от 0 до 15. Можно использовать plot3 отобразить местоположения.

plot3(sx(:),sy(:),sz(:),'*r');
axis(volumebounds(x,y,z,u,v,w))
grid on 
set(gca,'BoxStyle','full','Box','on')
daspect([2 2 1])

Вы не должны использовать трехмерные массивы, такие как возвращенные meshgrid, но размер каждого массива должен быть тем же самым и meshgrid обеспечивает удобный способ сгенерировать массивы, когда у вас нет равного количества уникальных значений в каждой координате. Можно также задать массивы отправной точки как вектор-столбцы. Например, meshgrid возвращает трехмерные массивы:

[sx,sy,sz] = meshgrid(80,20:10:50,0:5:15);
whos
  Name      Size             Bytes  Class     Attributes

  sx        4x1x4              128  double              
  sy        4x1x4              128  double              
  sz        4x1x4              128  double      

Кроме того, вы могли использовать 16 1 вектор-столбцы с соответствующими элементами этих трех массивов, составляющих координаты каждой начальной точки. (Это - эквивалент индексации значений, возвращенных meshgrid как sx(:), sy(:), и sz(:).)

Например, добавление линий потоков к начальным точкам производит:

streamline(x,y,z,u,v,w,sx(:),sy(:),sz(:))

Доступ к подобластям данных объема

subvolume функция обеспечивает простой способ получить доступ к подобластям набора данных объема. subvolume позволяет вам выбрать необходимые области на основе пределов вместо того, чтобы использовать оператор двоеточия, чтобы индексировать в трехмерные массивы, которые задают объемы. Рассмотрите следующие два подхода к созданию данных для подобъема — индексирующий с оператором двоеточия и использующий subvolume.

Индексация с оператором двоеточия

Когда вы индексируете массивы, вы работаете со значениями, которые указывают элементы в каждой размерности массива.

load wind
xsub = x(1:10,20:30,1:7);
ysub = y(1:10,20:30,1:7);
zsub = z(1:10,20:30,1:7);
usub = u(1:10,20:30,1:7);
vsub = v(1:10,20:30,1:7);
wsub = w(1:10,20:30,1:7);

Используя Функцию подобъема

subvolume позволяет вам использовать координатные значения, которые можно считать из осей. Например:

lims = [100.64 116.67 17.25 28.75 -0.02 6.86];
[xsub,ysub,zsub,usub,vsub,wsub] = subvolume(x,y,z,u,v,w,lims);

Можно затем использовать данные о подобъеме в качестве входных параметров к любой функции, требующей векторных данных об объеме.