I сильно подозревают, что проблема здесь связана с данными, а не с технологией визуализации. Но в целом, проблема одна или несколько из следующих действий:
1) У вас нет достаточно данных, чтобы захватить основные динамики (динамика в пространстве работает на более высокую пространственную частоте, чем вы отобранные)
2) Данные слишком зашумлены для количества собранных данных.
3) Поток в основном турбулентный, и, следовательно, надеясь на хороший ламинарноподобный сюжет не произойдет.
Если у вас возникли проблемы с визуализацией данных, первое эмпирическое правило всегда должно отбрасывать любую визуализацию, которая пытается каким-либо образом аппроксимировать производную (или градиент). Причина в том, что, когда вы пытаетесь аппроксимировать производную реальными данными, шум почти всегда делает эту оценку бессмысленной. Например, давайте предположим, что у нас есть косинус, который получает поврежден какой-то шум, и мы пытаемся численно оценить производную от данных
figure
% Create a signal
dt = .1;
t = 0:.1:10;
x = cos(t);
% Add some noise
y = x + .5 * randn(size(x));
% Compute the first order approximation of the derivatives of the signals
dx = diff(x)/dt;
dy = diff(y)/dt;
% Plot everything
subplot(2,1,1)
plot(t,x,t,y)
axis tight
subplot(2,1,2)
plot(t(2:end),dx,t(2:end),dy)
axis tight
В первом участке, который показывает исходные данные, шум не выглядит плохим, но когда мы смотрим на производную оценку! Ой ... Шум действительно усиливается. Поэтому забудьте о свойствах более высокого порядка потока, таких как завиток и завихренность, которые требуют градиентов данных.
Итак, что мы можем сделать в таких случаях? По сути, просто посмотрите на необработанные данные. Если есть образец, он проявит себя.Например, давайте посмотрим на ваши сырья векторов скорости от 3-х различных точек зрения:
data = dlmread('data.csv','\s')
x = data(:,1);
y = data(:,2);
z = data(:,3);
vx = data(:,4);
vy = data(:,5);
vz = data(:,6);
close all
figure
subplot(1,3,1);
quiver3(x,y,z,vx,vy,vz);
view([1,0,0])
subplot(1,3,2);
quiver3(x,y,z,vx,vy,vz);
view([0,1,0])
subplot(1,3,3);
quiver3(x,y,z,vx,vy,vz);
view([0,0,1])
Единственное, что выглядит даже немного структурировано, что последний участок. Однако этот сюжет говорит нам, что мы, вероятно, также испытываем турбулентность (в дополнение к шуму), с которой можно бороться.
В частности, из вида 3, похоже, вы делаете измерения скорости в потоке, который плотно обнимает объект. В этом случае ваши измерения, вероятно, слишком плотные, хотя ... и, вероятно, в пограничном слое. Если это так (измерения находятся в пограничном слое), то вы можете получать изменяющиеся во времени эффекты в потоке, а это значит, что нет смысла смотреть на что угодно, не имея также компонент времени. «Хорошие» сюжеты, которые у вас есть в вашем ответе, действительно очень полезны, когда поток ламинарный, где мы видим эти приятные последовательные линии потока. Если это турбулентно, то в потоке нет заметной картины, независимо от того, как сильно вы выглядите.
Итак, в заключение я не думаю, что вы сможете найти хорошую визуализацию для своих данных, потому что либо датчики, которые вы использовали, были слишком шумными, либо поток был слишком бурным.
Как и в стороне ... что происходит, когда мы смотрим на сырье векторов скорости из ваших «хороших» набора данных:
Это, мой друг, хорошо обученный дом животное. У тебя на руках дикий горный лев.
Пожалуйста, постарайтесь, чтобы ваши изменения были существенными. Если вы делаете много мелких изменений, чтобы привлечь внимание к своему вопросу, не делайте этого. – Undo
@Undo, я делаю изменения, поэтому я получу качественный ответ и избегаю ответов низкого качества, которые не затрагивают ни одной из моих основных проблем: как построить данные, как показать завихрение, как сделать график выглядит хорошо. – 0x90
Не могли бы вы добавить график ваших данных, а не только идеальные данные. Я думаю, это поможет читателям понять, почему традиционные сюжеты ломаются. –