В связи с объявлением новой лунной программы в интернет-сообществе вновь оживился спор о том, была ли реализована первая лунная программа Аполлон. Среди множества аргументов pro et contra я недавно встретил попытку проанализировать известный видеоролик о движении ровера по «лунной» поверхности
https://glav.su/forum/1/682/messages/5122059/#message5122059 . Параметром для анализа являлась высота подбрасываемого колесами песка, которая достигает примерно 1.5 метра. Если видео не было искусственно замедлено, скорость ровера получается примерно 2.8 м/с, и тогда подобная высота подъема песка на Земле с ускорением g = 9.8 м/с не достижима. Однако, замедлить скорость видео несложно, поэтому подобный анализ ничего не доказывает.
На видео видно, что песок во время движения ровера вылетает разлетающимися кольцами, форма которых долго сохраняется. Я попробовал проанализировать динамику этих колец, чтобы решить вопрос о возможном наличии атмосферы в этих съемках. Хорошо известно, что трение при невысоких скоростях пропорционально скорости движения тела, поэтому траектория движения отличается от параболы, которая должна наблюдаться в отсутствие атмосферы. Траекторию движения легко определить по видео. Кроме того, есть еще один характерный момент. Скорость захваченных колесом частиц несколько варьирует, поэтому в отсутствие атмосферы быстрые частицы будут улететь дальше, а медленные отставать, так что «фронт» волны будет линейно расплываться со временем. Однако, в присутствии атмосферы быстрые частицы будут тормозиться сильнее, а медленные слабее. Кроме того, быстрые частицы, летящие первыми, захватывают с собою воздушный поток, который также облегчает движение последующих более медленных частиц. В результате фронт волны долго остается резким, и начинает расплываться только в самом конце, когда движение полностью тормозиться. По этим двум признакам можно надежно определить наличие атмосферы.
На ролике
https://youtu.be/8lERB9BPzC4 были выбраны кадры 1438-1470 (0:47 мин), их анализ я проводил в программе Matlab. Для каждого кадра были проведены вручную маркерные линии по характерным деталям рельефа (синие линии), которые служили осями координат. Для учета зума (он менялся в ходе съемок) была проведена вторая (фиолетовая) линия. Самое большое кольцо песка аппроксимировалось дугой окружности (желтая линия), координаты ее левого верхнего края анализировались.
Чтобы увеличить резкость, эту часть кадра я анализировал отдельно в небольшом квадрате размерном 201*201 пиксель. В этом квадрате строилось распределение плотности частиц по вертикальной и горизонтальной осям.
Масштаб в метрах определялся по диаметру колеса ровера, который равен 0.81 м.
На этом рисунке показан результат.
Таким образом, наличие атмосферы в миссии Apollo 16 является экспериментальным фактом.
Для желающих посмотреть профиль фронта (распределение плотности) на разных кадрах привожу код, исходные файлы вышлю по запросу, так как разместить их здесь не удается.
==============================================================
clear
clc
fname = 'videoplayback_mp4_01438_input.tif'; % original file
fname1 = 'videoplayback_mp4_01438_output.png'; % + coordinates markers
fname2 = 'videoplayback_mp4_01438_output_short.png'; % X-Y positions
nn = 1438:2:1470; % analyzed frames numbers
X = zeros(1,17);
Y = zeros(1,17);
T = 2*(0:16)/30;
for n = 1:17 % only 17 frames are used
fname(20:23) = num2str(nn(n),'%4i');
fname1(20:23) = num2str(nn(n),'%4i');
fname2(20:23) = num2str(nn(n),'%4i');
A = imread(fname);
B = A;
y0 = 630; % Y marker position (fixed for all frames)
n0 = 100; % size of the small probe square for precise analysis
sc1 = 0.81/128; % scaling factor m/pixel
xx = 105; % scaling factor for changing zoom
disp(nn(n))
switch nn(n)
case 1438
x0 = 1200 ; % X0 marker position
x1 = 1302 ; % X1 marker position
xc = x0-78; % X center of circle
yc = y0-90; % Y center of circle
f1 = -70; % low angle of arc
f2 = -10; % hig angle of arc
rr = 75; % circle radius
x9 = -2; % X correction for the left arc edge
y9 = 14; % Y correction for the left arc edge
case 1440
x0 = 1215 ;
x1 = 1320 ;
xc = x0-81;
yc = y0-93;
f1 = -65;
f2 = +14;
rr = 75;
x9 = -2;
y9 = 14;
case 1442
x0 = 1235 ;
x1 = 1340 ;
xc = x0-81;
yc = y0-95;
f1 = -45;
f2 = +25;
rr = 75;
x9 = -6;
y9 = 10;
case 1444
x0 = 1255 ;
x1 = 1359 ;
xc = x0-84;
yc = y0-95;
f1 = -40;
f2 = +45;
rr = 75;
x9 = -2;
y9 = 6;
case 1446
x0 = 1273 ;
x1 = 1379 ;
xc = x0-88;
yc = y0-108;
rr = 77;
f1 = -40;
f2 = +60;
x9 = +12;
y9 = 6;
case 1448
x0 = 1290 ;
x1 = 1397 ;
xc = x0-95;
yc = y0-115;
rr = 95;
f1 = -50;
f2 = +65;
x9 = +6;
y9 = 16;
case 1450
x0 = 1308 ;
x1 = 1415 ;
xc = x0-105;
yc = y0-127;
rr = 105;
f1 = -45;
f2 = +70;
x9 = 8;
y9 = 18;
case 1452
x0 = 1329 ;
x1 = 1436 ;
xc = x0-115;
yc = y0-130;
rr = 113;
f1 = -45;
f2 = +70;
x9 = +4;
y9 = 12;
case 1454
x0 = 1349 ;
x1 = 1456 ;
xc = x0-125;
yc = y0-135;
rr = 125;
f1 = -45;
f2 = +75;
x9 = 8;
y9 = 18;
case 1456
x0 = 1370 ;
x1 = 1477 ;
xc = x0-130;
yc = y0-142;
rr = 130;
f1 = -45;
f2 = +78;
x9 = 8;
y9 = 18;
case 1458
x0 = 1391 ;
x1 = 1498 ;
xc = x0-137;
yc = y0-149;
rr = 137;
f1 = -45;
f2 = +78;
x9 = 6;
y9 = 18;
case 1460
x0 = 1414 ;
x1 = 1521 ;
xc = x0-144;
yc = y0-150;
rr = 144;
f1 = -45;
f2 = +80;
x9 = 4;
y9 = 14;
case 1462
x0 = 1436 ;
x1 = 1546 ;
xc = x0-151;
yc = y0-150;
rr = 153;
f1 = -45;
f2 = +82;
x9 = 4;
y9 = 14;
case 1464
x0 = 1460 ;
x1 = 1574 ;
xc = x0-158;
yc = y0-150;
rr = 162;
f1 = -45;
f2 = +82;
x9 = 0;
y9 = 14;
case 1466
x0 = 1486 ;
x1 = 1602 ;
xc = x0-165;
yc = y0-150;
rr = 170;
f1 = -45;
f2 = +82;
x9 = -2;
y9 = 18;
case 1468
x0 = 1512 ;
x1 = 1631 ;
xc = x0-172;
yc = y0-150;
rr = 170;
f1 = -45;
f2 = +82;
x9 = -6;
y9 = 18;
case 1470
x0 = 1542 ;
x1 = 1658 ;
xc = x0-172;
yc = y0-144;
rr = 170;
f1 = -45;
f2 = +84;
x9 = -12;
y9 = 24;
otherwise
disp('other value')
end
% arc positions
for i=f1:f2
ix = floor(+rr*cos(pi*i/180) + xc);
iy = floor(-rr*sin(pi*i/180) + yc);
A(iy,ix,1:2) = 255;
end
% radius positions
for j=0:rr
jx = floor(+j*cos(pi*f1/180) + xc);
jy = floor(-j*sin(pi*f1/180) + yc);
A(jy,jx,1:2) = 255;
end
A(:,x0,1) = 0;
A(:,x1,2) = 0;
A(y0,:,1) = 0;
% coordinates of the arc left edge
X(n) = (ix + x9 - x0)*sc1*xx/(x1-x0);
Y(n) = (iy + y9 - y0)*sc1*xx/(x1-x0);
% probe square for precise analysis
C = B(iy-n0:iy+n0,ix-n0:ix+n0,:);
max1 = max(max(C(:,:,1))); min1 = min(min(C(:,:,1)));
max2 = max(max(C(:,:,2))); min2 = min(min(C(:,:,2)));
max3 = max(max(C(:,:,3))); min3 = min(min(C(:,:,3)));
D = C;
D(:,:,1) = (C(:,:,1)-min1)*(255/(max1-min1));
D(:,:,2) = (C(:,:,2)-min2)*(255/(max2-min2));
D(:,:,3) = (C(:,:,3)-min3)*(255/(max3-min3));
D(:,n0+x9,1:1) = 255;
D(n0+y9,:,2:2) = 255;
% dust density
L = -n0:n0;
P1 = mean(squeeze(D(n0+y9,:,1:3)),2);
P2 = mean(squeeze(D(:,n0+x9,1:3)),2);
figure(1)
subplot(1,2,1)
image(C)
subplot(1,2,2)
image(D)
figure(2)
image(A)
figure(3)
plot(L,P1,L,P2)
pause
% imwrite(A,fname1)
% imwrite(D,fname2)
end
%%
X = X(1)-X;
Y = Y(1)-Y;
%%
T1 = T;
G = 9.8 / 6;
V0 = 2.6;
Z = V0*T1 - 0.5*G*T1.^2;
figure(4)
plot(T1,X,'.-',T1,Y,'.-',T1,Z,'--')
% xlim([500 600])
% title('Synechococcus (DDM) 740 nm')
% title('Synechocystis T = 279 K Orth')
title('Траектория левого верхнего края дуги выброса ровера')
xlabel('Время / с'); ylabel('Расстояние / м');
legend('расстояние по горизонтали','высота подъема','оджидаемая параболическая траектория','Location','best','fontsize',12)