Отображение дивергенции с потоковыми трубами

Что могут показать потоковые трубы

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

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

Этот пример использует следующие методы:

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

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

Входные параметры включают координаты объема, векторных полевых компонентов и стартовых местоположений для потоковых труб.

1. Загрузка данных и вычисление необходимых значений

Загрузите данные и вычислите, значения должны были сделать графики. Эти значения включают:

  • Местоположение плоскостей разбиения (максимальный x, минимальный y, и значение для высоты)

  • Минимальный x значение для запуска потоковых труб

  • Скорость ветра (величина векторного поля)

    load wind
    xmin = min(x(:));
    xmax = max(x(:));
    ymin = min(y(:));
    alt = 7.356; % z value for slice and streamtube plane
    wind_speed = sqrt(u.^2 + v.^2 + w.^2);
    

2. Рисование плоскостей разбиения

Чертите плоскости разбиения (slice) и набор surface свойства создать гладко цветной срез. Используйте 16 цветов от hsv colormap.

hslice = slice(x,y,z,wind_speed,xmax,ymin,alt);
set(hslice,'FaceColor','interp','EdgeColor','none')
colormap hsv(16)

3. Добавление линий контура к плоскостям разбиения

Добавьте линии контура (contourslice) к плоскостям разбиения. Настройте интервал контура, таким образом, линии совпадают с цветными контурами в плоскостях разбиения:

  • Вызвать caxis получить пределы текущего цвета.

  • Установите метод интерполяции, используемый contourslice к linear совпадать со значением по умолчанию, используемым slice.

    color_lim = caxis;
    cont_intervals = linspace(color_lim(1),color_lim(2),17);
    hcont = contourslice(x,y,z,wind_speed,xmax,ymin,...
       alt,cont_intervals,'linear');
    set(hcont,'EdgeColor',[.4 .4 .4],'LineWidth',1)
    

4. Создание потоковых труб

Использование meshgrid создать массивы для начальных точек для потоковых труб, которые начинаются в минимальном x значение, лежите в диапазоне от 20 до 50 в y, и лгите в одной плоскости в z (соответствие одной из плоскостей разбиения).

Потоковые трубы (streamtube) чертятся в заданных местоположениях и масштабируются, чтобы быть 1.25 раза шириной по умолчанию, чтобы подчеркнуть изменение расхождения (ширина). Второй элемент в векторе [1.25 30] задает число точек вдоль окружности трубы (значение по умолчанию равняется 20). Вы можете хотеть увеличить это значение, когда размер трубы увеличивается, чтобы обеспечить сглаженно выглядящую трубу.

Установите соотношение сторон данных (daspect) прежде, чем вызвать streamtube.

Потоковые трубы являются объектами подложки, поэтому можно управлять их внешним видом путем установки поверхностных свойств. Этот пример устанавливает поверхностные свойства дать ярко освещенную, красную поверхность.

[sx,sy,sz] = meshgrid(xmin,20:3:50,alt);
daspect([1,1,1]) % set DAR before calling streamtube
htubes = streamtube(x,y,z,u,v,w,sx,sy,sz,[1.25 30]);
set(htubes,'EdgeColor','none','FaceColor','r',...
   'AmbientStrength',.5)

5. Определение представления

Задайте представление и добавьте подсветку (view, axis volumebounds, Projection, camlight).

view(-100,30)
axis(volumebounds(x,y,z,wind_speed))
set(gca,'Projection','perspective')
camlight left