eddy_em: (Default)
eddy_em ([personal profile] eddy_em) wrote2022-10-05 05:50 pm

Еще одна полезная утилита

В следующий понедельник-вторник у нас запланировано испытание новой EM-CCD на Ц-1000 (Амирыч как раз закончил софт для управления; как обычно, "от производителя" вообще ничего нет), а чтобы, если таки будет 2 ночи хорошая погода, зря телескоп не простаивал, я решил еще свой TeA на Ц-1000 погонять (определить таки уже оптимальный вынос фокуса по аберрациям), да снять СКН.
Для TeA мне пока лень писать полноценный управляющий софт - буду вручную гонять его из терминала по командам протокола управления (а для автоматизации можно эти команды из bash-скрипта в /dev/ttyUSB0 отправлять, уже пройденный этап), но вот к сбору СКН нужно подготовиться. В прошлый раз у нас сдох SSD на zphot, в итоге модифицированные скрипты управления канули в Лету (не успел забэкапить). Нужно из того, что в бэкапах есть, опять сделать нормальные скрипты (жаль, конечно, что на пытхоне, но тут уж ничего не поделать). Ну и для начала таки сгенерировать правильную табличку с координатами.

В прошлый раз я отсортировал координаты по склонению, в результате чего купол местами очень долго приходилось ждать. Нужно не просто разбить на 2 таблички (без перекладки и с ней, т.к. система управления не делает перекладку автоматом — видимо, в целях безопасности), а еще и в каждой таблице отсортировать данные по азимуту. Написал утилиту, которая это будет делать. Аргументов у нее немного:
  -1, --hideA           hide first column (A)
  -2, --hideZ           hide second column (Z)
  -3, --hideHA          hide third column (HA)
  -4, --hideDec         hide fourth column (Dec)
  -Z, --maxz=arg        maximal Z (degrees) (default: 75.)
  -c, --scoord=arg      sort by this coordinate (A, Z, HA, Dec) (default: Z)
  -d, --delimeter=arg   coordinates delimeter string (default: ':')
  -h, --help            show this help
  -n, --npts=arg        max amount of points (default: 100)
  -o, --output=arg      output file name
  -s, --sorting=arg     sorting order (none, positive, negative)
  -z, --minz=arg        minimal Z (degrees) (default: 0.)

Табличку можно получать как в "умолчательном" виде с четырьмя колонками (A, Z, HA, Dec), так и выкидывать ненужные колонки. Сортировать можно по любому из этих столбцов как в восходящем, так и в нисходящем порядке (если бы координаты имели вид простых чисел, это можно было бы и средствами sort сделать, но для утилит управления телескопами нужно в виде HH:MM:SS или DDD:MM:SS). Еще можно выбросить ненужные точки по Z (для БТА, например, с Z<5°, да и в общем с Z>20°, т.к. на таких Z никто не наблюдает). Если задан отбор по Z, то в итоговой таблице точек будет меньше, чем задано параметром -n.
Теперь еще нужно скрипты на ненавистном мне пытхоне поковырять - проверить, насколько они неправильные. Ну и в режиме эмуляции заранее для цейсса заготовить список координат, отбросив точки, приходящиеся на запретные зоны (хотя, конечно, можно этого и не делать: просто телескоп не поедет на запрещенную точку, скрипт выдаст ошибку, и можно, пропустив экспозицию, переходить к следующей точке).