Костерок

eddy_em


Емельянов Эдуард Владимирович


Previous Entry Share Next Entry
Набросок документации по системе архивации all-sky
Костерок
eddy_em
Оставлю это здесь, в этом случае проще будет найти в случае необходимости.

Так как датчик облачности и all-sky камера являются независимыми устройствами, разработанное ПО состоит из четырех частей, входящих в совместную клиент-серверную архитектуру:
  • (сервер) подключение по последовательному соединению к камере и выдача клиенту полученных изображений;

  • (сервер) подключение по последовательному соединению к датчику облачности и выдача клиенту данных;

  • (клиент) подключение к серверу камеры для сохранения (и возможной архивации) изображений в различных форматах (raw + гистограмма, fits, tiff), а также дебайеризация полученных снимков и сохранение их в формате jpeg;

  • (клиент) подключение к серверу датчика облачности, отслеживание обновлений файлов, сохраненных предыдущим клиентом, добавление в FITS-шапку файлов последних данных с датчика облачности и архивация их.

1. Камера all-sky


Программное обеспечение для работы с камерой использует следующие библиотеки:
  • cfitsio — для сохранения изображений в FITS-формате;

  • libtiff — для сохранения изображений в формате TIFF;

  • libraw — для дебайеризации изображений;

  • libgd — для добавления к изображениям надписей (время и дата получения изображения, длительность экспозиции) и сохранения файлов в формате JPEG.

Возможна условная сборка ПО без поддержки данных библиотек (и соответствующих форматов). Доступны следующие ключи make:
  • NOLIBRAW=1 — без поддержки библиотек libraw и libgd (соответственно, без сохранения дебайеризованных изображений);

  • NOTIFF=1 — не использовать библиотеку libtiff;

  • NOCFITSIO=1 — не использовать библиотеку cfitsio.

Данные опции позволяют минимизировать зависимости для сборки серверного демона для запуска его на любом одноплатном компьютере.
У make есть три цели сборки:
  • sbig340_daemon — основной демон сервера, подключающийся к камере и отдающий полученные снимки клиенту;

  • sbig340_client — клиент, забирающий по сетевому соединению снимки с сервера и сохраняющий их в указанном формате;

  • sbig340_standalone — автономное приложение, позволяющее запускать экспозицию отдельных снимков на машине, непосредственно подключенной к камере.

Сервер и автономное приложение имеют параметры командной строки, позволяющие задавать имя устройства последовательного соединения, длительность экспозиции, скорость соединения с камерой, включать/выключать подогрев камеры, открывать/закрывать затвор и выбирать параметры элемента изображения и/или биннинга.
Помимо прочего, сервер предоставляет возможность автоматического сохранения «темновых» кадров, давая возможность задавать интервал между сохранением «темновых» и минимальную экспозицию, при которой будут получаться «темновые».
Сервер и клиент позволяют выбрать порт соединения (по умолчанию 4444). Клиент может работать как в режиме демона, так и запускаться однократно.
Клиент и автономное приложение позволяют выбрать формат, в котором будут сохраняться изображения (возможно задание нескольких форматов) и префикса имени выходного файла. Файлы могут сохраняться как с замещением предыдущих, так и с добавлением временнóй метки.
Серверный демон на основе гистограммы распределения яркости в полученном изображении вычисляет время экспозиции для следующего снимка. Существует возможность получения «сырых» данных с сервера при помощи браузера.
Сервер передает данные клиенту в виде «параметр=значение», содержащем такие поля:
  • binning — значение биннинга,

  • exptime — время экспозиции (в секундах),

  • imtype — тип изображения: 0 — с автоматическим извлечением «темновых» (отсутствует для полнокадрового изображения), 1 — обычный режим, 2 — темновой кадр.

  • imW — ширина изображения,

  • imH — высота изображения,

  • exsposetime — время (UNIX time), когда была начата экспозиция,

  • imdata — само изображение (16-битное, little-endian).

Сохраняемое клиентом дебайеризованное изображение используется для вывода в веб-интерфейсе, отображающем состояние метеопараметров на ВНП.

2. Датчик облачности


Серверный демон для работы с датчиком облачности имеет наименьшее количество аргументов: задание имени устройства последовательного соединения, номера порта (по умолчанию 55555) и возможность работы в режиме терминала.
Так как параметры окружающей среды, получаемые датчиком, могут обрабатываться на соответствие пороговым величинам в любом внешнем ПО, нет необходимости аппаратно задавать пороги. Серверный демон лишь принимает данные от устройства и передает их клиенту. Данные передаются клиенту сразу в момент поступления по последовательному соединению (один раз в 2-3 секунды). Формат данных имеет следующий вид:
humidstatTempCode=0
rainCond=1
skyMinusAmbientTemperature=-2.9
ambientTemperature=18.9
windSpeed=0.0
wetState=0
relHumid=28
dewPointTemperature=0.3
caseTemperature=32.9
rainHeaterState=0
powerVoltage=24.4
anemometerTemeratureDiff=24.9
wetnessDrop=2
wetnessAvg=179
wetnessDry=180
daylightADC=613
tmsrment=1492697510

Значения параметров и их величин можно прочитать в файле Protocol.md.

3. Клиент-архиватор


Архивирующий клиент отслеживает (при помощи inotify) изменение указанного fits-файла и производит его архивацию по заданному в параметре командной строки пути в формате YYYY/MM/DD/hh:mm:ss.fits.gz, где YYYY — год, MM — месяц, DD — день месяца, hh — часы, mm — минуты, ss — секунды начала экспозиции.
В FITS-шапку архивируемых файлов добавляется вся информация с датчика облачности на момент архивации файла. Для этого клиент подключается к серверу датчика облачности по заданному в параметрах командной строки адресу и порту. Также в командной строке можно задать минимальный интервал архивации — обновления изображений внутри этого интервала архивироваться не будут. «Темновые» кадры архивируются независимо от значения этого интервала.

Боюсь, это так и останется единственной документацией (кроме комментариев в коде) к этим демонам.

Buy for 10 tokens
Оставлю это здесь, в этом случае проще будет найти в случае необходимости. Так как датчик облачности и all-sky камера являются независимыми устройствами, разработанное ПО состоит из четырех частей, входящих в совместную клиент-серверную архитектуру: (сервер) подключение по последовательному…

?

Log in

No account? Create an account