Skip to content
This repository has been archived by the owner on Apr 18, 2023. It is now read-only.

AlexanderBBI144/PyRAO

Repository files navigation

Репозиторий больше не обновляется и помещен в архив.

PyRAO

Build Status

Описание

Проект состоит из трёх частей: integration, vizualization, analysis.

Integration отвечает за перевод данных обсерватории в международные форматы. Это позволит использовать готовые программные пакеты для анализа данных.

Vizualization - модуль для визуализации данных. Он содержит в себе сервер, ответственный за создание интерактивных графиков на сайте.

Analysis - модуль отвечает за преобразование данных в матрицу объекты-признаки и последующую классификацию этих объектов.

Для того, чтобы установить пакет локально, воспользуйтесь pip

pip install pyrao

Если нет возможности установить компилятор C и операционная система Windows, можно воспользоваться следующей командой:

pip install pyrao --install-option --no-cython-build

Быстрый старт

Для того чтобы прочитать и откалибровать файл, лежащий по адресу ./path/to/obs_N1.pnthr с помощью калибровочного файла, лежащего по адресу ./path/to/obs_N1.txt, нужно запустить следующий скрипт

from pyrao import BSAData

path1 = './path/to/obs_N1.pnthr'
path2 = './path/to/obs_N1.txt'

data = BSAData()
data.read(path1)
data.calibrate(path2)

data.data  # Итоговый массив с откалиброванными данными

Использование модуля интеграции

Базовый класс, представляющий полученные с телескопа сырые данные - BSAData.

from pyrao import BSAData

data = BSAData()

Для того, чтобы преобразовать данные в формат, распознаваемый сторонними программами необходимо вызвать метод convert. Он принимает на вход список, состоящий из путей к файлам данных наблюдений и калибровочных данных, а также пути к директории, куда требуется записать новый файл. Можно также указать параметры limits* и beams**, которые содержат соответственно диапазон времени наблюдений и лучи радиотелескопа, для которых необходимо выполнить конвертацию.

*Наблюдения отсчитываются от нуля. Каждое наблюдение представляет собой данные, полученные за единицу времени, равную разрешению радиотелескопа (12,5 миллисекунд для больших данных).

**Лучи отсчитываются от нуля вне зависимости от стойки, для которой выполняется конвертация.

path1 = './path/to/obs_N1.pnthr'
path2 = './path/to/obs_N1.txt'
path3 = './path/to/'

data.convert([path1, path2, path3])  # Read and write 48 .fil files from
data.convert([path1, path2, path3], limits=[10, 1000], beams=[4, 9])  # Read and write beams #5 and #10 with observations from 11-th to 1000-th

В будущем будет реализована возможность чтения напрямую из базы данных.

Можно проделать действия, которые автоматически выполняет метод convert, самостоятельно. Ниже описываются методы, которые позволят это сделать.

Чтение данных

Чтобы начать работать с данными, их необходимо прочитать. На текущий момент поддерживается чтение из файлов .pnt, .pnthr.

Для того, чтобы прочитать только часть временного интервала файла, нужно использовать параметр limits метода read. По умолчанию этот параметр равен None (метод читает файл полностью).

data.read(path1, limits=[0, 1000])

data.data  # numpy.ndarray с данными наблюдений

Во время чтения происходит автоматическая корректировка лучей, которые были перепутаны с 2014 по 2016 гг.

В будущем возможно будет реализовано чтение файлов напрямую из базы данных.

Калибровка данных

Сырые данные необходимо откалибровать.

data.calibrate(path2)

data.data  # numpy.ndarray с откалиброванными данными наблюдений

В будущем будет реализовано чтение таблицы эквивалентов напрямую из базы данных.

Запись данных

Для использования данных в дальнейшем анализе с помощью пакета PRESTO, необходимо преобразовать их в формат .fil, который распознаётся большинством нужных нам сторонних пакетов для обработки данных.

Метод write принимает на вход параметр beams, с помощью которого можно указать номера лучей радиотелескопа, которые необходимо записать в файлы. Каждый луч будет записан в отдельном файле. По умолчанию параметр beams равен None (записать все лучи).

data.write(path3, beams=[3], output_type='fil')  # Write .fil with beam #4
data.write(path3, beams=[0, 24], output_type='fil')  # Write .fil with beams #1 and #25
data.write(path3, beams=None, output_type='fil')  # Write 48 separate .fil files

В заголовок файла .fil записываются данные о прямом восхождении и склонении на момент начала наблюдений для центральной частоты (формат .fil не позволяет записать координаты для каждой частоты).

В будущем будет реализована запись в формат PSRFITS.

Модуль визуализации

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

Модуль анализа

Необходимо создать интерфейс, взаимодействующий с программами PRESTO и Pulsar Feature Lab. На вход подается .fil файл, на выход - матрица объекты-признаки.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published