eddy_em: (Default)
eddy_em ([personal profile] eddy_em) wrote2020-06-05 01:52 pm

О гидировании Ц-1000 боковым гидом

Наконец-то дообработал результаты прошлой ночи. Возникли проблемы с solve-field: он ругался на python и отваливался. Я уже и питон удалил старый (3.6), и обновил все, и установил последнюю версию solve-field… Благо, на форуме подсказали добавить в командную строку --no-remove-lines --uniformize 0, и все заработало.
Очередные лучи ненависти в адрес любителей питона!!! Уж до чего глючная штука: стоит хотя бы минорную версию не ту использовать — и кирдык… А этим товарищам нужен пакет astropy, который я не могу вкорячить в генту: даже в оверлее science он слишком старый и хочет питон 2.7, который уже давным-давно deprecated!

Когда уже разработчики научного ПО выкинут этот кусок сами знаете чего и будут писать исключительно на С/С++?

Итак, я провел три серии наблюдений: одновременно мониторил изображения с MMPP и атиковской камеры гида Zeiss-1000, чтобы понять, насколько велики расхождения между средними координатами полей. Далее при помощи solve-field вычислялась астрометрия. Как-то так для MMPP:
#!/bin/bash
for f in ZP20200603_03*.fits; do
    solve-field --no-remove-lines --uniformize 0 --use-sextractor -p -O --radius 0.15 --ra 18:15:55.55 --dec -25:43:28.58 -L 0.2 -H 0.25 -u arcsecperpix $f
done
rm -f *.axy *.corr *.xyls *.match *.rdls *.solved *.wcs

и для Atik:
#!/bin/bash
for f in obj*.fits; do
    solve-field --no-remove-lines --uniformize 0 --use-sextractor -p -O --radius 0.5 --ra 18:15:56 --dec -25:43:29 -L 1.1 -H 1.2 -u arcsecperpix $f
done
rm -f *.axy *.corr *.xyls *.match *.rdls *.solved *.wcs

(сначала натравил solve-field на пробный кадр серии вслепую, а потом из его выхлопа получил значения координат центра поляны, размера и масштаба). Масштаб у атика: 1.165''/pix, поле 27×20'; у MMPP 0.105''/pix и поле примерно 7.2×7.2'.
Дальше вот таким скриптом я получил таблички для времени (UNIX-time) и координат центра площадки MMPP:
#!/bin/bash

for idx in 1 2 3; do
> table_${idx}
for f in ZP20200603_0${idx}*.new; do
    TIME=$(fitshdr $f | grep "^JD " | awk '{print $3}')
    TM=$(echo "($TIME-2440587.5)*86400"| bc -l)
    echo "$TM $(xy2sky -d $f 1024 1024 | awk '{print $1 " " $2}')" >> table_${idx}
done
done

И вот таким — для атика:
#!/bin/bash

for idx in 1 2 3; do
    > table_${idx}
    ls Atik${idx} -1|while read f; do
        AF=Atik${idx}/$f
        TM=$(fitshdr $AF | grep ^UNIXTIME|awk '{print $2}')
        echo "$TM $(xy2sky -d $AF 696 520 | awk '{print $1 " " $2}')" >> table_${idx}
    done
done

Ну, и вот какие получились результаты.

Первая площадка, Z с 54° по 49°, центр: 18:44:19.8 +39:36:52.
Рассогласование по прямому восхождению

Рассогласование по склонению

Вторая площадка, Z с 20° по 28°, центр: 16:32:44.5, +23:08:57.
Рассогласование по прямому восхождению

Рассогласование по склонению

Третья площадка, Z с 69° по 74°, центр: 18:15:55.55, -25:43:28.58.
Рассогласование по прямому восхождению

Рассогласование по склонению

Результаты совсем ужасные. Я надеялся, что рассогласование не будет превосходить десятых долей секунды, а вона оно как! Особенно здоровое рассогласование для низко лежащей третьей площадки. Вот такое вот отсутствие изопланатизма! Мало того, что диаметр гида меньше среднего диаметра областей атмосферных неоднородностей (что приводит не к "размазыванию" изображения, а к его сдвигу как целого), так еще и явный тренд на последнем рисунке показывает, что, скорее всего, у трубы гида есть собственные гнутия.

Рассогласования координат центров площадок (гид минус фотометр). 1: dα=-9.5'', dδ=41.976''; 2: dα=-20.772'', dδ=42.462''; 3; dα=-8.82'', dδ=53.118''.


К сожалению, я не смог разобраться, как сделать перекладку трубы, чтобы и с перекладкой посмотреть, что будет, а звонить кому-то в 2 часа вечера не хотелось.
Скрипт для обработки табличных данных:
function procfile(n)
    close all;
    A = dlmread(sprintf("Atik_%d", n));
    Z = dlmread(sprintf("Zphot_%d", n));
    T0 = max(A(1,1), Z(1,1));
    Tlast = min(A(end,1), Z(end,1));
    A(find(A(:,1)>Tlast),:) = [];
    Z(find(Z(:,1)>Tlast),:) = [];
    A(find(A(:,1)<T0),:) = [];
    Z(find(Z(:,1)<T0),:) = [];
    A(:,1) -= T0;
    Z(:,1) -= T0;
    A(:, [2 3]) *= 3600;
    Z(:, [2 3]) *= 3600;
    Amed = median(A(:,[2 3]));
    Zmed = median(Z(:,[2 3]));
    printf("#%d, Dalpha=%g'', Ddelta=%g''\n", n, Amed(1)-Zmed(1), Amed(2)-Zmed(2));
    A(:, [2 3]) -= Amed;
    A(find(abs(A(:,2))>3),:) = [];
    A(find(abs(A(:,3))>3),:) = [];
    Z(:, [2 3]) -= Zmed;
    fg = figure;
    plot(A(:,1), A(:,2), Z(:,1), Z(:,2));
    xlabel("t, s"); ylabel("\\Delta\\alpha, ''");
    plotgr(sprintf("alpha_%d", n), fg);
    plot(A(:,1), A(:,3), Z(:,1), Z(:,3));
    xlabel("t, s"); ylabel("\\Delta\\delta, ''");
    plotgr(sprintf("delta_%d", n), fg);
    close all;
endfunction

И скрипт для построения графиков:
function plotgr(nm, h)
    l=legend("Atik", "Zeiss", "location", "north");
    H = 4; W = 8;
    set(h,'PaperUnits','inches')
    set(h,'PaperOrientation','landscape');
    set(h,'PaperSize',[W,H]);
    set(h,'PaperPosition',[0,0,W,H]);
    set(gca, 'fontsize', 8, 'fontweight', 'bold');
    print(h, '-dpdf', sprintf("%s.pdf", nm));
    print(h, '-dpng', sprintf("%s.png", nm));
endfunction


Как она ни плакала, а В.Л. Афанасьев был прав, утверждая, что нельзя гидировать Цейсс посредством бокового гида!

Post a comment in response:

This account has disabled anonymous posting.
If you don't have an account you can create one now.
HTML doesn't work in the subject.
More info about formatting

If you are unable to use this captcha for any reason, please contact us by email at support@dreamwidth.org