Синтез радиоизображений с помощью пакета srhdata
Установка
Для установки требуется ОС Linux/MacOS. В библиотеке используются пакеты casatools и casatasks, которые не выпускаются для Windows.
Рекомендуется использовать с Anaconda/Miniconda. Для начала нужно создать среду с версией Python 3.12:
conda create -n myenv python=3.12
Затем нужно активировать среду и установить srhdata c github:
conda activate myenv
pip install git+https://github.com/maria-globa/srhdata
python -m casaconfig --update-all
Для удобства в среду можно установить spyder (при установке среда должна быть активирована):
conda install spyder -c conda-forge
Для проверки выполнить следующие строки:
import srhdata
import ftplib
ftp = ftplib.FTP('ftp.rao.istp.ac.ru', 'anonymous', 'anonymous')
ftp.cwd('SRH/SRH0612/2023/06/12')
filename = 'srh_0612_20230612T030033.fit'
with open( filename, 'wb' ) as file :
ftp.retrbinary('RETR %s' % filename, file.write)
file.close()
srh_fits = srhdata.open(file)filename)
Здесь происходит скачивание файла с сырыми данными СРГ с ftp-сервера и создание объекта srh_fits, содержащего данные из файла. Веб-версия архива с данными доступна по ссылке: https://ftp.rao.istp.ac.ru/SRH/. Можно скачать любой другой файл из папок SRH0306, SRH0612 или SRH1224.
Построение изображений
Чтобы построить изображение, нужно вызвать метод makeImage:
srh_fits.makeImage(path = './', scan = 0, average = 20, frequency=0)
После выполнения в рабочей директории должны появиться файлы srh_*_I.fit srh_*_V.fit
Параметры метода makeImage:
path (string = './')- путь для сохранения готовых изображенийfrequency (int = 0)- индекс частоты (от 0 до 15)scan (int = 0)- номер скана (от 0 до 19)average (int = 0)- количество сканов для усредненияRL (bool = False)- еслиTrue, то готовые изображения будут построены для левой и правой поляризации, в противном случае I,V.calibtable (string = '')- путь к калибровочной таблице, файл с расширением .JSON или .HDF5clean_disk (bool = True)- опция для чистки диска, по умолчаниюTruecalibrate (bool = True)- параметр, позволяющий отключить калибровку данных. При передачи таблицы вcalibtableэтот параметр не учитываетсяnaxis (int = 512)- размер готовых изображенийcdelt (float = 4.9)- вес пиксела в угловых секундахremove_tables (bool = True)- при построении изображений создается ряд промежуточных файлов (uvfits, Measurement Set и изображения, которые создаетtclean()), которые удаляются после завершения чистки. Если поставить эту опцию вFalse, эти файлы не будут удалятьсяsave_model (bool = False)- сохранить модель, используемую при чистке, в отдельные фалйы .fituse_mask (bool = True)- использовать маску при чистке для того, чтобы чистились только яркие источникиniter (int = 100000)- количетво итераций чисткиthreshold (float = 40000)- порог чистки**kwargs- аргументы, передаваемые в функциюtclean(). Полный список аргументов по ссылке: https://casadocs.readthedocs.io/en/stable/api/tt/casatasks.imaging.tclean.html