跳转到主要内容

一个基于Wirtinger的依赖方向的射电干涉仪校准软件包

项目描述

killMS

一个基于Wirtinger的依赖方向的射电干涉仪校准软件包

版权 (C) 2013-2021 Cyril Tasse, l'Observatoire de Paris, SKA South Africa, Rhodes University

本程序是自由软件;您可以在自由软件基金会发布的GNU通用公共许可证的条款下重新分发和/或修改它;许可证的第2版或(根据您的选择)任何较新版本。

本程序的分发是希望它有用,但没有保证;甚至没有关于其可销售性或适用于特定目的的暗示保证。有关更多信息,请参阅GNU通用公共许可证。

这个软件包是关于什么的?

方向依赖校准问题(也称为第三代校准)自然出现在射电干涉测量方程(RIME,Hamaker等人,1994年),但随着SKA前驱项目和探测器的建设,这个问题变得极为突出。解决DDE校准问题基本上涉及求解一系列非线性方程,而系统(i)非常大,(ii)通常处于不良条件。killMS的名称起源于LOFAR早期调试阶段,当时在测量集中理解干涉数据是一项真正的挑战。

Wirtinger DDE校准

killMS实现了两种非常高效的算法来解决方向依赖校准问题。软件的现状、用例(以及与其他软件如DDFacet的关联)总结如下

http://www.astron.nl/lowfrequencyobserving2017/Documents/Wednesday/LFO2017_Tasse.pdf

这两个算法(CohJones和Kafka)基于复杂的优化技术。它们利用复数(“Wirtinger”)雅可比的性质来利用算法捷径。将Wirtinger雅可比和Hessian应用于RIME以及相关实现算法的基本原理在以下文章中描述:

Tasse 2014: https://arxiv.org/abs/1410.8706

Smirnov & Tasse 2015: https://arxiv.org/abs/1502.06974

killMS还运行一个扩展卡尔曼滤波器,该滤波器使用Wirtinger(半)雅可比(待发表,类似方法在https://arxiv.org/abs/1403.6308中描述)

以下提供了初步文档。

安装KillMS

从源代码构建

virtualenv myvenv
source myvenv/bin/activate
(myvenv)$ pip install DDFacet # installs the latest DDF release from PyPI
(myvenv)$ pip install <path to checked out killMS>

如果您想以开发模式运行

(myvenv)$ pip install -e <path to checked out killMS>
(myvenv)$ cd <path to checked out killMS>
(myvenv)$ python setup.py build  #this rebuilds the backend

旧的构建系统仍然在位 - 您仍然可以这样做

cd Predict
make
cd ../Array/Dot
make
cd ../../Gridder
make

您将需要的DDE校准和成像的主要程序

  • kMS.py -> 使用LM(CohJones)或卡尔曼滤波器(KAFCA)进行DDE校准
  • DDF.py -> 在反卷积中应用DDE校准
  • MakeModel.py -> 对天空进行聚类等
  • MakeMask.py -> 构建掩模

获取文档

输入

kMS.py -h
MakeModel.py -h
DDF.py -h
MakeMask.py -h

使用killMS/DDFacet的数据减少示例

在一个.txt文件(这里为mslist.txt)中,放置您的MS路径,例如

/data/tasse/BootesObs/L374583/L374583_SB244_uv.dppp.pre-cal_127080C79t_121MHz.pre-cal.ms
/data/tasse/BootesObs/L374583/L374583_SB254_uv.dppp.pre-cal_127080C79t_123MHz.pre-cal.ms
/data/tasse/BootesObs/L374583/L374583_SB264_uv.dppp.pre-cal_127080C79t_125MHz.pre-cal.ms
/data/tasse/BootesObs/L374583/L374583_SB274_uv.dppp.pre-cal_127080C79t_127MHz.pre-cal.ms

策略

以下,我们做

  • 一个方向无关的图像称为"image_DI"
  • 我们在10个方向上聚类天空
  • 我们在10个方向上使用KAFCA求解器求解标量Jones矩阵,解决方案名为testKAFCA
  • 我们使用方向依赖的解决方案进行反卷积,并创建"image_DD"校正图像

做DI图像

DDF.py --Output-Name=image_DI --Data-MS mslist.txt --Deconv-PeakFactor 0.001000 --Data-ColName DATA --Parallel-NCPU=40 --Image-Mode=Clean --Deconv-CycleFactor=0 --Deconv-MaxMajorIter=3 --Deconv-Mode SSD --Weight-Robust -0.15 --Image-NPix=10000 --CF-wmax 100000 --CF-Nw 100 --Output-Also onNeds --Image-Cell 3 --Facets-NFacets=11 --SSDClean-NEnlargeData 0 --Freq-NDegridBand 1 --Beam-NBand 1 --Deconv-RMSFactor=3.000000 --Data-Sort 1 --Cache-Dir=. --Freq-NBand=2 --Mask-Auto=1 --Mask-SigTh=5.00 --Cache-Reset 0 --SSDClean-MinSizeInitHMP=10

在10个方向上聚类天空

MakeModel.py --BaseImageName image_DI --NCluster 10

-> 创建集群节点目录:image_DI.npy.ClusterCat.npy

从模型校准所有ms

kMS.py --MSName mslist.txt --SolverType KAFCA --PolMode Scalar --BaseImageName image_DI --dt 1 --NCPU 40 --OutSolsName testKAFCA --NChanSols 1 --InCol DATA --OutCol DATA --Weighting Natural --NodesFile image_DI.npy.ClusterCat.npy --MaxFacetSize 1.5

--> 在每个/killMS.testKAFCA.sols.npz中创建解决方案文件

考虑DDE的图像

DDF.py --Output-Name=image_DD --Data-MS mslist.txt --Deconv-PeakFactor 0.001000 --Data-ColName DATA --Parallel-NCPU=40 --Image-Mode=Clean --Deconv-CycleFactor=0 --Deconv-MaxMajorIter=3 --Deconv-Mode SSD --Weight-Robust -0.15 --Image-NPix=10000 --CF-wmax 100000 --CF-Nw 100 --Output-Also onNeds --Image-Cell 3 --Facets-NFacets=11 --SSDClean-NEnlargeData 0 --Freq-NDegridBand 1 --Beam-NBand 1 --Deconv-RMSFactor=3.000000 --Data-Sort 1 --Cache-Dir=. --Freq-NBand=2 --Mask-Auto=1 --Mask-SigTh=5.00 --Cache-Reset 0 --SSDClean-MinSizeInitHMP=10 --DDESolutions-DDSols testKAFCA --Predict-InitDicoModel image_DI.DicoModel --Facets-DiamMax 1.5 --Facets-DiamMin 0.1

项目详情


下载文件

下载适合您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源代码分发

killms-3.2.0.tar.gz (229.9 kB 查看散列值)

上传时间 源代码

支持