Как получить кадр с камеры (Linux+Python+INDI)?

Скажем, перед вами возникла задача… такая же, как когда-то передо мною. Или похожая. Задача получения кадра изображения с камеры, подключенной к мини-компу типа Raspberry Pi / Orange Pi и т.п. клона.

Все эти мини-компы (пока что), уверенно работают под разными клонами Linux. Я привык к RH-way дистрибутивам, поэтому с удовольствием установил не самую обновляемую Fedora 22 на мой Orange Pi компик.

Мне нравится идея универсализации, создания некой абстрактной прослойки меж астрооборудованием ил астрософтом. На винде это ASCOM (пусть он трижды кривой и тормозной, но свою функцию «универсализатора» он выполняет). На юниксах и, в частности, на Linux — это INDI.

Я довольно неплохо знаю ASCOM, писал и драйвера, и в клиентских прогах использовал как монтировку, так и камеры. Если не брать во внимание, что мне не нравится dotnet и win-программирование (да и сама винда как ось) в целом, то идеология ASCOM мне близка. Скажем, наша задача получения кадра с камеры решается так:

  • есть аском. Он просто есть. Он есть центр этой вселенной. Всё общение происходит через него;
  • есть драйвер камеры. Скажем, QHY5 камерки. Или симулятор. Или Starlight Oculus (именно её кадры я получал на Orange Pi), или … В этом и суть, что все драйвера всех камер реализуют ASCOM.iCamera интерфейс. Он декларирует, что все дрова должны поддерживать таки и такие вызовы;
  • есть софтина, которую я пишу. Например, «получалка одного кадра длительностью 1с». В этой софтине я подключаюсь к COM-объекту ASCOM.Camera (написание не точное, лишь чтобы предать суть), то есть создаю экземпляр нужного класса. И у этого объекта уже есть методы/свойства задания выдержки, экспозиции и получения массива кадра. С виду всё логично.

В инди всё … по-Индийски, я думаю. Нисколько не хотя обидеть индусов, встреченные мною программисты часто из них … (нет-нет, я не буду ругаться матом сейчас) :).

  • первым делом запускается INDI-сервер для моей камеры:
    /usr/bin/indiserver -v -m 100 indi_sx_ccd
    Можно сказать, что ASCOM сам это делает, подгружая нужный «драйвер».
    То есть в INDI, в отличии от ASCOM, нет центра. Есть один процесс под эту камеру. Второй — под другую. Третий под монти и т.п. В этом есть смысл, но есть и геморой, кмк;
  • теперь на выбранном языке программирования (я выбрал Python) мы пишем INDI-Клиент. Это класс! Не в смысле, как классно, что мы пишем клиент, а в смысле, это именно объявление ООП-класса 🙂
    Собственно, экземпляр этого класса и общается с камерой… через callback’и.

import PyIndi
class IndiClient(PyIndi.BaseClient):
… и понеслось

Создаём экземпляр класса, запускаем коннект и дальше объект живёт своей жизнью:

  • инди-сервер вызывает метод newDevice, типа появилось новое устройство;
  • инди-сервер вызывает метод newProperty, передаёт им свойства. Все, что сам сочтёт нужным в последовательности, которую сам сочтёт нужным. В объёме, который именно ему будет интересен. Как в седьмом классе школы — тебе не интересно учить площадь треугольников, но никого это не волнует — тебе всё равно перечисляют все свойства треугольника и не только эту ненужную сейчас информацию;
  • чтобы начать экспозицию, мы в newProperty получаем факт подключения и заполнения нужных свойств, даём команду серверу «смени число в свойстве CCD_EXPOSURE». Подняв его выше 0, начинается экспозиция. Правда, нужно крепко обкуриться в ГОА, чтобы так перевернуть простую клиент-серверную логику?
  • получение кадра изображения — через callback вызов экземпляра класса, метод newBLOB. Типа ура, новый бинарник пришёл.

Мой исходник Python+INDI+Starlight Oculus AllSky камеры, чутка замусоренный в процессе поиска рабочего решения, я выложу сюда:
http://download.milantiev.com/astro/INDI/allsky.py.

И да, там огромный простор для чистки, оптимизации и улучшений. Но … мне хватило трёх дней борьбы с INDI, чтобы получив первый кадр больше не лезть в эту программу целый месяц. Нижняя часть программы вовсе не используется, но показывает неплохой диагностический пример использования INDI. Мопед не мой, моя адаптация под задачу.

Перефлетнулся? Разфлетнись! :)

Предыстория:

Случилось так, что компьютер, управляющий моим ньютоном 250ф4.6, до недавнего времени был расположен в десятке метров от астрографа. Это было вызвано тем, что одновременно комп управлял ещё одним астрографом. И вот, тот второй ушёл на свой отдельный комп и я переставил свой комп поближе. Попутно выкинул один USB-10м удлинитель (который, по сути, хаб) и, быть может ещё и воткнул шнурок системного usb-хаба в другой порт компа. Впрочем, это не важно. Хватило выкинутого удлинителя. И началось…

… Я люблю камеры QHY. Серьёзно и без балды. Никакого сарказма. В своё время лучше них были только очень-очень-очень дорогие сбиги и ещё более дорогие FLI. QHY взорвали рынок и лет так этак десять назад позволили любителям ощутить вкус настоящих астрокамер.

Но блин, как я ненавижу камеры QHY сейчас в 2017м году, когда я успел насмотреться на другие камеры. Как меня бесит это мерзкое глючное [………]. Мне пришлось 4 раза перезагрузить комп и таки воткнуть камеру в другой порт, пока я добился стабильной работы QHY9 и еёшного же колеса.

Ну и после примерно 2-3-ей перезагрузки я ещё и драйвера переставлял. Всё, что под руку попалось: аском платформу, wdm, ascom-драйвер камеры. Это привело к тому, что gain / offset слетели и я выставил их по памяти. Выставил неверно. Вместо 109 офсета поставил 125 (значение запомнил на своей QHY8L).

 

История:

Отснял я чуть лайтов с кривым офсетом. Робот (скрипт к пиксу) откалибровал их и получил ЭТО:

flat was 768x570 - Перефлетнулся? Разфлетнись! :)

Знакомая до боли перекоррекция флетом. Уж не знаю, почему, но пикс часто косячил  и перекорректировал флет на снимках из-под QHY8L. На девятке было чётко, пока я сам не напортачил.

Взял pixelMath и подобрал коэффициент коррекции флета, применив который проблема ушла. К сожалению, значение зависит от освещённости лайта и оптимальное значение в моём случае лежало от 1.5 до 3.

flat pixelMath - Перефлетнулся? Разфлетнись! :)

После чего тот же фит уже выглядел человеком

flat now 768x608 - Перефлетнулся? Разфлетнись! :)

 

Планы на будущее:

Осталось, как найду чуть времени отвлечься от Годзиллы, написать в пиксе автопоиск этого значения.

Я думаю сделать так:

  • найти центр яркости флета (усреднением с базой в 5% пикселей по ширине);
  • вычислить этот коэффициент, исходя из среднего по квадрату 5х5% кадра, расположенного в центре яркости флета;
  • натравить скрипт на пачку фитов. Неплохо бы создать простенький интерфейс по аналогии с чужими скриптами пикса. Потом можно использовать эти наработки для моего калибровочного робота;
  • наверное, нужно учитывать CFA (цветные камеры).

… но пока что, первым делом самолёты Годзилы!

astroGodzilla!!! Первая публичная бета-версия автоматизатора

Не понимаю, как я жил раньше. Наверняка, ночи мои были тусклы, а звёзды если и светили, то явно не мне. Не то, что сейчас. Не то, что с моей Годзиллой! 🙂

Речь о написанной мною программе автоматизации съёмки дипская, комет, астероидов, переменных звёзд и чего там ещё можно снимать средними и длинными выдержками через телескоп на монтировке. Вот небольшой видеоролик о текущей бета-версии программы:


(включайте субтитры)

Годзилла доступна для свободного скачивания здесь.

Описание в гуглдоке стараюсь дополнять в меру свободного от разработки времени.

А здесь, в гуглформе, можно прокомментировать найденную проблему беты, задать вопрос или внести предложение о будущем развитии.

Новая переменная звезда? ВаСТ из даст? :)

Случайно в форуме мне подсказали программу поиска переменных звёзд — VaST. Давно слышал о какой-то программе, которая анализирует яркости всех звёзд в серии снимков и строит кривые отклонения, помогая искать переменки. И сегодня установил её.

VaST, конечно же, не единственная программа подобной направленности, вот хорошая статья о некоторых подобных инструментах поиска переменных.

 

VaST — установка «на винду»

Программа только под Unix. Причём она графическая. А я, хоть и давно линуксоид, но как раз именно давно и решил для себя — винда для рабочей станции, юниксы для серверов. На винде нет веб-сервера, на юниксе нет графической среды. Возможно, моё разделение условно и надумано, но … в общем, нет у меня под рукой компа с линухом.

Но есть виртуалка. А в ней Cenos 7. Мне так удобно работать, я же веб-программист, в основном. И так, на компе с виндой установлен VirtualBox. В котором живёт минимальный Linux дистрибутив, достаточный для работы. В нём нет ни иксов, ни громоздких оконных менеджеров и хромов со скайпами, только веб-сервер, база и прочий серверный софт. Я так привык, мне так удобно.

Ещё не зная, что VaST не консольная программа, я установил его, благо ставится он просто — make и, если зависимости удовлетворены, за пять минут собирается в бинарники. Здесь о том подробно.

Запускаю. Даю васту фиты. Тот думает-думает, ожесточённо мусоря в консоль и … говорит дисплей мол у меня недоступен. В смысле, X-Сервер на локальном компе (внутри виртуалки) не запущен. Дык. Его там и нет. Путь раньше уже пройденный. Качаю XMING — это X-Сервер под винду. В юниксе в плане графики чуть непривычный подход. Мы не из графической среды запускаем программы, а наоборот, программам говорим: «Ты будешь отображаться на 127.0.0.1. А ты — на 192.168.56.1». Вот я и попросил VaST использовать DISPLAY=»192.168.56.1:0″, то есть 6000 порт на основном компе, первый (единственный) Х-Сервер на винде. Получил такую картинку:

vast 1 768x413 - Новая переменная звезда? ВаСТ из даст? :)

Терминал (xterm) и запущенный в нём VaST. Результат через pgplots выведен на том же X-Сервере в отдельном окне. Без оконного менеджера чуть неудобно, но для нечастого использования пойдёт. У меня работает так, но конечно можно просто в виртуалку воткнуть привычный Linux дистр с иксами и прочим мусором.

 

Новая переменная звезда

Итак, так или иначе VaST запущен. Кадры ему вскормлены и он выдал график. Вторая данная ему последовательность из 150 кадров показала интересный результат:

vast 2 e1507757963781 768x592 - Новая переменная звезда? ВаСТ из даст? :)

Этакая туфля на шпильке (каблуке) получилась! Прочёл описание. Стало понятно, что мне нужно искать точки на графике (звёзды), выбивающиеся из общего тренда. Здесь очевидно одна не легла на общее распределение, выбилась выше, отметилась голубеньким и требовала внимания.

Мусор в правой части туфли (тот самый каблук) объясним низким уровнем сигнала в низах. Яркость тёмных звёзд, расположенных в правой части этого графика, программа ожидаемо считает с большей ошибкой. Отклонение в одних звёздах слишком высокое, в других наоборот — ниже среднего. Мусор, одним словом. Туда не смотрим.

Отклонение яркости среднестатистической звезды в этом поле небольшое. Кликнув на любой видна похожая картинка:

vast 3 768x413 - Новая переменная звезда? ВаСТ из даст? :)

Тренд изменения яркости небольшой. Или звезда переменная и долгопериодичная, или же она не проявляет признаков переменности. Отнормированная яркость на всех кадрах лежит на почти что горизонтальной прямой. Плюс-минус пролетевшие тучки (а небо было очень «грязным»!), да ошибки монтировки.

 

Тынц на голубую звезду (надо, кстати, её спектр посмотреть, голубая ли она на самом деле? Вряд ли) 🙂

vast 4 768x413 - Новая переменная звезда? ВаСТ из даст? :)

Ну совсем другое дело. Очевидное увеличение яркости от времени. Тренд аж 2m изменения в сутки! Сейчас снимаю эту звезду в следующую от вчера ночь, отресолвлю кадры и завтра проанализирую ещё раз бОльший массив данных по этой звезде.

И тогда я надеюсь найти «горбы», выделить их и получить что-то похожее на график другой звезды этого же поля. Но с заметным изменением в пару m:

vast 5 768x485 - Новая переменная звезда? ВаСТ из даст? :)

 

Кстати (см. хелп в терминале), нажав «U» можно запустить процедуру ресолва движком astrometry.net на сервере разработчика — видимо, чтобы не тянуть гигабайты каталогов вместе с программой решили не ставить локальный движок. И, в случае успеха, найти звезду в разных каталогах. Очень полезно, жаль в прошлый раз я снимал кропом 1000х1000 и поле оказалось слишком мелким для автоматического ресолва. Сейчас снимаю то же поле полным кадром в 8 раз большим по площади, тот отресолвится на ура — пробовал неоднократно.

 

Ну а раз кадр не отресолвился сам, пришлось делать всё вручную. Я, на самом деле, хотел идентифицировать уже известную переменную и … очень удивился!

vast 6 768x410 - Новая переменная звезда? ВаСТ из даст? :)

Аладином подтянул несколько имеющихся там каталов, Gaia например. AAVSO спросил вебом, Vizer, Simbad и т.п. Пол часа с Антоном искали известные признаки переменности звезды — безуспешно. Сама звезда есть во многих каталогах, но везде «признаки переменности не выявлены». Ууууудивительно! То ли «новичкам везёт», то ли мы чего-то просмотрели.

Примечательно также, что переменка эта была найдена в кадрах по съёмка подтверждения кандидата гравитационной линзы. Я чувствую себя всё ближе к Космосу. Он, вопреки моим представлениям пятилетней давности, огромен, разнообразен, живой и удивительно неизученный. Нужно срочно исправлять это недоразумение!

 


Полезные ссылки:

GoogleDoc журнальчик отснятого

Спросил меня Женя Букликов, есть ли такой софт, чтобы записывать что когда ты отснял, а тот сам складывал и выводил суммы. Я сходу решил показать ему гуглдок, точнее гугл-таблицы. Это, если кто не в курсе, упрощённый аналог экселя, доступный с любой точки инета почти с любого современного устройства. Вот что получилось, здесь набросок начала журнала.

dss journal 768x364 - GoogleDoc журнальчик отснятого

В левой части сырой журнал. За сегодня отсняли такой-то объект, такие-то субы.

В правой части выжимка из журнала по объектам. Плюс «Итого», куда ж без него.

AstroGodzilla — шаг к Автоматизатору

Вчера, вместо работы, за пол дня набросал такую небольшую софтину:

acp 2017 10 10 02 - AstroGodzilla - шаг к Автоматизатору

Название, по совету друзей, подсказала уважаемая мною AstroTortilla, основанная на любимой мною astrometry.net. Вот так вот, всем в своих чувствах признался, можно продолжать 🙂

Я ж ещё не сделал полноценный Автоматизатор. Хоть и хорошо продвинулся в создании Планировщика. Но как в любой бесплатной работе, мне нужна подпитка чем-то нематериальным. Так что я решил сделать простой набросок процедуры съёмки. Наработки, конечно же, будут использованы в полноценном Автоматизаторе (Auto DeepSky Capturer). Позже.

Суть Годзиллы простая. Она подключается к:

  • ASCOM телескоп (@todo).
    Забыл телескоп подключить :). Но это просто, много раз общался с ASCOM через его COM-объекты;
  • PHD2 для гидирования.
    уже опробовал подключение сокетом на 4400 порт, получил стартовые сообщения и готов отправлять команды типа старт / стоп гида;
  • MaximDL для съёмки.
    Да, я знаю, что максим — sux и в полноценном Автоматизаторе он использовать не будет (даже если мне Difraction Limited заплатит… хотя, смотря сколько). Но в рамках «быстрого решения» его COM-объект работы с камерой, конечно же, очень привлекателен. Подключился, попробовал, работает;
  • FocusMax для фокусировки.
    Опять таки, использует максим. Ну да ладно, потом что-нибудь придумаю. Но сейчас FocusMax 3.8 у меня де-факто стандарт бесплатного, быстрого, точного фокуса. Подключился, опробовал получение температуры, разобрался в асинхронном процессе фокусировки через FocusAsync и get:FocusAsyncState;
  • Astrometry.net для привязки к небу.
    Так как мы на винде, то за основу взял AstroTortilla — это cygwin клон движка astrometry.net с GUI-обёрткой. Обёртку не использую, а вот настроенный cygwin (эмулятор unix под винду) — то что мне нужно. Пробовал ранее на linux, теперь опробовал запуск из-под командной строки винды. Закинул тестовый фит и при запуске программы уточняю его координаты. Пяток секунд и есть результат. Огонь!
  • acp 2017 10 10 01 150x150 - AstroGodzilla - шаг к АвтоматизаторуBright Star Catalog (BSC) — Йельский каталог ярких звёзд.
    Звёзды ярче 6.5m. Очень полезно для фокусировки. Так как у меня нет полного PinPoint для автоматического поиска звезды фокусмаксом, так как я и не хочу использовать платный PinPoint, написанный на бесплатном astrometry.net, то Годзилла сама будет подводить телескоп к ближайшей звезде в той же перекладке недалеко от объекта;
  • Листу наблюдений планетария Cartes Du Ceil.
    Это просто текстовик. Пока что хватит для начала. А там поглядим. Говорят, картес может передавать координаты по сети, пока не вникал. Сейчас это не важно, важно создать MVP (минимально рабочий продукт) и тогда только двигаться дальше.

Пока что запланировано три стадии работы программы:

  • старт.
    Подключается ко всему, ругается если что не так. Начинает холодить камеру в максиме до заданной в нём температуры;
  • основной цикл.
    Описан ниже;
  • стоп.
    Отключается и @todo убивает ненужное.
    Нагревает камеру и максима тоже убивает.

Основной цикл программы после нажатия на «Поехали!» заключается в чтении очередной строки из файла списка наблюдений и обработки её согласно процедуре:

  • BSC: поиск фокус-звезды рядом с целью в перекладке цели, в небольшом отдалении от меридиана с учётом выбранного фильтра (в узкополоснике ярче);
  • Telescope: переход на фокус-звезду;
  • Maxim: L-фильтр, кадр для привязки;
  • Astrometry: быстрый ресолв по известным координатам. Если не вышло, ресолв по всему небу;
  • Telescope: уточнение наведения на фокус-звезду;
  • Maxim: переключение фильтра, если не L;
  • FocusMax: а ну-ка сфокусируйся! Если  не вышло, то звезда бракуется в BSC и перехожу на следующую доступную (на п.1.);
  • Telescope: переход на цель;
  • Maxim: L-фильтр, кадр для уточнения положения телескопа;
  • Astrometry: быстрый ресолв по известным координатам. Если не вышло, ресолв по всему небу;
  • PHD: запусти-ка гид, дорогой;
  • Maxim: снимай-ка плиз в фильтре номер 1 количество экспозиций и длину, заданную в Cartes-списке. PHD, не забывай дизерить меж кадрами, если иной не задано в «Объект» минусом в начале названия.

Зачеркнули фильтр у цели. Если есть ещё, начали заново процедуру (с перефокусировкой!). Если больше фильтров у цели не осталось, зачеркнули цель, идём дальше.

… щас чуть поработаю и буду дописывать. Идея меня захватила. Я всё ближе к Автоматизатору!

AstroTortilla обёртка для Astrometry.net под винду

Не все в курсе, но достаточно частая задача привязки телескопа к небу решается очень просто, буквально в пару кликов.

Что за «задача привязки телескопа к небу»? Очень просто. Берём астрограф. Выставляем полярку или она выставлена со вчера и руками наводим «куда-то наверх в восточной (западной) перекладке». Включаем звёздное ведение и … и куда смотрит телескоп? На Вегу? Или на Артур? Или, скорее всего, где-то совсем не там где мы думаем. Ведь наводили не глядя в искатель. Да и в приличном астрографе вовсе нет искателя — лишний вес.

На помощь приходит сервис astrometry.net (сайт такой). В частности, http://nova.astrometry.net/upload . Сюда можно загрузить файл (жпег, фит, png и т.п.) и через небольшое время сервис выдаст: куда ж нацелен телескоп. Даст RA/DEC и другие параметры снимка. Но что делать если:

  • во-первых, инет не всегда есть, а порой он не так хорош, как хотелось бы;
  • во-вторых, приходится ждать своей очереди, пока Его Величество, сервер astrometry.net, предоставит свои услуги;
  • в-третьих, слишком много кликов. Лайт нужно снять, выбрав нужные параметры камеры, его нужно сохранить, в браузеер ввести адрес, загрузить фит, ждать, получить координаты, скопировать, синхронизировать … бр…

На помощь приходит … черепаха Тортилла! АстроТортилла! Вы без труда нагуглите эту прогу и я, когда буду в следующий раз её устанавливать, подробно остановлюсь на начальной установке и настройке. Сейчас же об её использовании.

 

AstroTortilla 1 768x596 - AstroTortilla обёртка для Astrometry.net под винду

Запускаем прогу

 

AstroTortilla 2 768x596 - AstroTortilla обёртка для Astrometry.net под винду

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

 

AstroTortilla 3 768x596 - AstroTortilla обёртка для Astrometry.net под винду

Нужно выбрать монти и нажать «ок».

 

AstroTortilla 4 768x596 - AstroTortilla обёртка для Astrometry.net под винду

Не забудь включить ведение в максиме (Observatory Control / Telescope / Sideral Track). А в тортилле включи чекбокс Sync Scope. Дави «Capture and Solve»

 

AstroTortilla 5 768x596 - AstroTortilla обёртка для Astrometry.net под винду

Ждём от 30 до 300 секунд. В первый раз дольше, потом в разы быстрее.

 

AstroTortilla 6 768x596 - AstroTortilla обёртка для Astrometry.net под винду

Успешный ресолв показывает найденные координаты и сам синхронизирует скоп по ним. Конечно же, если используешь EQMod, то нужен 1.22d, способный ресолвнуться по всему небу.

Вуаля 🙂

 


Полезные ссылки:

Ardu Focuser

С помощью одного ластронома с ластрономи.ру нарыл очень интересный наколенный проект дешёвого аском-фокусёра тут.

Собрал его. Примерный бюджет обозначен на фото 🙂

%25C0%25EB%25FC%25E1%25EE%25EC%25FB 2017 %25CE%25EB%25E5%25E3 %25C0%25F1%25F2%25F0%25EE %25C5%25E2%25E3%25E5%25ED%25E8%25E9 2017 09 19 5116 - Ardu Focuser

А вот его программа. Плюс есть аском-драйвер, что не только приятно, но и необходимо в современном любительском астро-мире.

myfocuser 768x361 - Ardu Focuser

… забыл припаять DS18b20. Вечером исправлю сиё досадное недоразумение и буду монтировать на ED80 Евгения Букликова, что хостится у меня.


Припаял ds18b20 и резистор. Те заработали. Фокусёр работает и на 9В успешно тянет ST35 моторчиком односкоростной крейфорд синты с QHY8L на нём.


Пришли ардуняшки… снял небольшой видеоролик на тему «из магазина к фокусёру»:


Уже на двух компах столкнулся с одной заморочкой. MyFocuser не подключается из-под FocusMax. В максиме работает на ура, а в фокусмаксе — нет! Понятное дело, что подключиться к одному ком-порту может лишь одна программа одновременно, так что я не подключал его в максиме… и всё равно провал. Вчера нашёл, как это обойти. Банально, но сработало:

  • maximdl, меню view / observatory control, закладка Setup, группа Focuser 1. Выбираем через Options > Choose фокусёр «Generic Hub»;
  • жмём Properties при выборе и в этом «хабе» выбираем myFocuserPro-чё-там-за-цифры-и-т-п;
  • в maximdl, меню view / observatory control, закладка Setup, группа Focuser жмём Connect;
  • идём там же, в observatory control, в закладку Focus — должны быть видны цифры в поле Position;
  • оставляя подключенным (важно), идём в focusmax и там выбираем тот же Generic Hub. Настраивать его не нужно, жмём сразу Connect.

Собственно и всё. Работает, автофокусируется. Вчера проверил.

Автоматизатор заговорил по-русски

Большое событие лично для меня. Мой долгострой, программа Auto DeepSky Capturer, по-русски кратко «Автоматизатор», наконец-то дал мне простой ответ на вопрос «Когда сегодня можно снимать М57?».

AutoAstro 2017 08 01 - Автоматизатор заговорил по-русски

Вроде бы клочок текста и не стоило сегодня пол дня сидеть у монитора. Но под внешней простотой скрыты многочисленные переборы, преобразования, подсчёты. Вот пример ответа на текущий статус Автоматизатора. Это JSON объект, полученный в JS и развёрнутый в отладчике браузера.

AutoAstro 2017 08 02 768x695 - Автоматизатор заговорил по-русски

Переводя на русский, Автоматизатор знает:

  • время начала и окончания:
    • не-Солнца (я так назвал время от заката до рассвета);
    • вечернее время для съёмки флетов — гражданские сумерки;
    • вечерние астросумерки — время для съёмки в узкополосниках и съёмки коротких LRGB;
    • астроночь;
    • утренние астросумерки;
    • утренние флеты (гражданские сумерки);
    • N периодов присутствия Луны на небе в не-Солнечном периоде.
  • количество файлов, объектов и время накопления за сегодня и всего. Эти данные находятся во временной SQLite таблице и могут быть получены разными sql-выборками и срезами;
  • планы на ночь, начиная с сейчас.

Последний пункт и занимал мои мысли почти уж почти что неделю.

Простой ответ «М57 можно снимать с такого-то по такое время» содержит в себе учёт:

  • разрешено ли снимать задачу при Луне;
  • если да, то при какой Луне? Фаза, высота и удалённость Луны от объекта учитываются;
  • в какой перекладке разрешено снимать объект;
  • на какой минимальной высоте должен находиться объект.

Ещё хочется реализовать прижатие плана съёмки к кульминации объекта, обеспечив его максимальную высоту и чёткость на снимке. Но это не в MVP (minimal viable product = минимально функциональный продукт), к которому я сейчас стремлюсь.

ASCOM драйвер крыши АстроХостела

Есть два класса устройств в рамках ASCOM, сообщающие программам статус неба и крыши / купола.

За часок набросал из шаблона, поставляемого вместе с ASCOM, драйвер купола крыши. Драйвер отсылает запрос к http://сервер-обсерватории/roof/status и, получив ответ «0» или «1» отдаёт эти данные запрашивающей программе.

astrohostel.roof .chooser - ASCOM драйвер крыши АстроХостела

astrohostel.roof .open  768x556 - ASCOM драйвер крыши АстроХостела

Пока что запрос идёт просто к тестовику. Надо будет сделать концевики и динамически выдавать их статус. Впрочем, это уже дело техники.

ASCOM Safety monitor тоже соберу на днях. Будет получать данные из того же источника — с Orange Pi обсерватории.