casa学习代码记录

标题

casa是专门用于处理VLA望远镜的集成软件,相应的教程对于干涉阵处理来说可谓是非常详细,甚至对于其他干涉阵的pipline来说,一些参数的意义甚至可以参考回来casa教程的的说明:以下记录一下相关的代码和主要的流程:

ps:很多具体到实际的物理意义我也说不清楚太多东西,以后可能理解深了,会尝试添加一下说明。

https://casaguides.nrao.edu/index.php/Karl_G._Jansky_VLA_Tutorials#Self-calibration_of_VLA_Data
这个网址是教程大全,还是要参考着官方的教程来看

https://data.nrao.edu/portal/#/
这里可以下载到开放的数据,选择你需要的项目的数据
下面开始全部流程

查看观测日志

https://www.vla.nrao.edu/cgi-bin/oplogs.cgi
先确定你数据的日期(可以先看(2)确定日期也可以在你下载数据那里点击scan也有一些信息),然后在这个网站上查询当天本项目望远镜的情况,例如下面写着data lost的那就记得要先flag掉(也有可能在你下载数据之前望远镜已经flag了)

例如这个就写着天线X在XX时间lost,你在后面的操作中就要flag掉这些数据

确定数据的各种信息

先对数据进行解压tar -xvf 文件名,获得.ms文件

msfile = 'spw6.ms'
listobs(vis=msfile)

一共有这些源,前面几个是校准源(建议记住这些源名字,虽然你可以使用filed0,1,2这些编号去索引,但是容易搞混)

G16.7+0.1(targe), J1331+3030, J1407+2827,J1822-0938(phase calibration),0137+331=3C48(flux calibration)

一共15个频率窗口,前面和后面是重复的

选择这个窗口spw6

阵列天线分布图,找到一个最中间作为参考天线,例如e25


plotants(vis=msfile,figfile='plotants_antenna_layout.png')

ea25

本教程只处理一个窗口的数据(当你数据量不大的时候,也可以全部窗口一些处理)

简单看看spw6的10~55通道数据的情况(因为每个spw前后的一些通道总是不太好)

plotms(vis =msfile, xaxis='time',yaxis='amp', correlation='RR,LL',coloraxis='field', avgchannel='64')plotms(vis =msfile, xaxis='channel',yaxis='amp', correlation='RR,LL',coloraxis='field', avgtime='1e8')

感觉这个窗口的数据还可以,先把他分出来成新的文件吧,减少文件的大小

split(vis=msfile,outputvis='XXX_spw6.ms',spw='6:10~55',datacolumn='all')
#这个spw的格式是6窗口的10到55通道
msfile = 'XXX_spw6.ms' #后面就用这个新的.ms文件了

Initi Flag

对数据进行一个基础的flag

flagdata(vis=msfile, mode='quack', quackinterval=5.0, quackmode='beg') 
flagdata(vis=msfile, mode='manual', antenna='ea13')
#flagdata(vis=msfile, mode='manual', scan='1')#分别是对每段时间的起始几秒的数据flag;对观测日志里面不好的数据进行flag;
#对第一个scan数据(从listobs中发现观测时间只有几秒)flag#对校准源的数据做一个更加细致的flag,flag掉那些一眼看上去的坏的数据点,以及标记看起来不好的数据点。通过plotms打开校准源。```python
plotms(vis=msfile,field='',xaxis='chan',yaxis='amp',correlation='RR,LL',avgtime='1e8',spw='', coloraxis='baseline', iteraxis='spw')plotms(vis=msfile,xaxis='time',yaxis='amp',correlation='RR,LL',avgchannel='64', coloraxis='field', iteraxis='spw')

利用下面的工具栏确定异常数据是来源是哪里(eg:天线?scan?时间?)

ps:flag之后的数据以修改的数据的格式存放在一个flag文件里面,每次做了flag或者校准命令都会保存,但是不显示具体实现了什么操作,你可以通过以下两个例子来给你当前flag状态的保存或者回溯到上一个flag,当然casa也会自动保存flag的版本,但是只有编号没有flag的信息。

flagmanager(vis = msfile,mode = 'save',versionname = 'initialflags',comment = 'initial flags, including quack',merge='replace')flagmanager(vis = msfile,mode = 'restore',versionname = 'flags.flagdata_2',merge='replace')# versionname就是flag的版本,第一个是保存,第二个是回溯。

Initial Flux Density Scaling

gencal(vis=msfile, caltable='spw6.antpos',caltype='antpos') 
# 天线的位置校准,有可能没有setjy(vis=msfile, listmodels=True)
setjy(vis=msfile, field='0137+331=3C48',standard='Perley-Butler 2017',model='3C48_C.im',usescratch=True,scalebychan=True,spw='')
#先看有那些模型,然后确定流量校准源的模型refantenna='ea25'

Initial Phase Calibration

gaincal(vis='spw6.ms', caltable='spw6.G0all',field='0137+331=3C48, J1822-0938', refant=refantenna, spw='0:27~36',gaintype='G',calmode='p', solint='int',minsnr=5,gaintable=['spw6.antpos'])
#实际上并没有用到这个输出的增益表,只是简单看看增益的情况plotms(vis='spw6.G0all', xaxis='time',yaxis='phase',
coloraxis='corr',iteraxis='antenna',plotrange=[-1,-1,-180,180])
#每个gain后面都值得plotms一下表格确定一下输出情况gaincal(vis='spw6.ms', caltable='spw6.G0',field='0137+331=3C48', refant=refantenna, spw='0:27~36', calmode='p', solint='int',minsnr=5, timerange='', gaintable=['spw6.antpos'])
#相位校准,3C138是流量校准源,这个时间的选择不一定需要,如果这个源有两端的观测,你可以像我一样用时间去限制只要前面一段的观测。plotms(vis='spw6.G0',xaxis='time',yaxis='phase',coloraxis='corr',iteraxis='antenna',plotrange=[-1,-1,-180,180])

Delay calibration

gaincal(vis=msfile, caltable='spw6.K0',field='0137+331=3C48',refant=refantenna,spw='0:10~55',gaintype='K',solint='inf',combine='scan',minsnr=5,gaintable=['spw6.antpos','spw6.G0'])plotms(vis='spw6.K0',xaxis='antenna1',yaxis='delay',coloraxis='baseline')

Bandpass calibration

bandpass(vis=msfile,caltable='spw6.B0',field='0137+331=3C48',spw='0:10~55',refant=refantenna,combine='scan',solint='inf',bandtype='B',gaintable=['spw6.antpos','spw6.G0','spw6.K0'])plotms(vis='spw6.B0',xaxis='chan',yaxis='amp',coloraxis='corr',gridrows=2,gridcols=2, spw='0:10~55',iteraxis='antenna')plotms(vis='spw6.B0',xaxis='chan',yaxis='phase',coloraxis='corr',gridrows=2,gridcols=2, spw='0:10~55',iteraxis='antenna',plotrange=[-1,-1,-180,180])flagdata(vis=msfile, mode='manual', antenna='ea04&ea25')

flag ea04&ea25?

Gain Calibration

gaincal(vis=msfile,caltable='spw6.G1',field='0137+331=3C48',spw='0:10~55',
solint='inf',refant=refantenna,gaintype='G',calmode='ap',solnorm=False,
gaintable=['spw6.antpos','spw6.K0','spw6.B0'],interp=['','','nearest'])gaincal(vis=msfile,caltable='spw6.G1',field='J1822-0938',spw='0:10~55',
solint='inf',refant=refantenna,gaintype='G',calmode='ap',gaintable=['spw6.antpos','spw6.K0','spw6.B0'],interp=['','','nearest'],solnorm=False,append=True)#照常看一下输出的情况
plotms(vis='spw6.G1',xaxis='time',yaxis='amp', correlation='/',coloraxis='baseline')
plotms(vis='spw6.G1',xaxis='time',yaxis='phase',correlation='/',coloraxis='baseline', plotrange=[-1,-1,-180,180])

Scaling the Amplitude Gains

myscale = fluxscale(vis='spw6.ms',caltable='spw6.G1',fluxtable='spw6.fluxscale1',reference='0137+331=3C48',transfer=['J1822-0938'],incremental=False)plotms(vis='spw6.fluxscale1',xaxis='time',yaxis='amp',
correlation='R',coloraxis='baseline')

https://science.nrao.edu/facilities/vla/docs/manuals/observing/callist

VLA公布的校准源流量密度等信息

Applying the Calibration

applycal(vis=msfile,field='0137+331=3C48',gaintable=['spw6.antpos','spw6.fluxscale1','spw6.K0','spw6.B0'],gainfield=['','0137+331=3C48','',''],interp=['','nearest','',''],calwt=False)applycal(vis=msfile,field='J1822-0938',gaintable=['spw6.antpos','spw6.fluxscale1','spw6.K0','spw6.B0'],gainfield=['','J1822-0938','',''],interp=['','nearest','',''],calwt=False)#对target
applycal(vis=msfile,field='G16.7+0.1',gaintable=['spw6.antpos','spw6.fluxscale1','spw6.K0','spw6.B0'],gainfield=['','J1822-0938','',''],interp=['','nearest','',''],calwt=False)

checking

plotms(vis='spw6.ms',field='*3C48',correlation='RR,LL',avgtime='60',xaxis='channel',yaxis='amp',ydatacolumn='corrected',coloraxis='corr', spw='0:10~55')plotms(vis='spw6.ms',field='*3C48',correlation='RR,LL',xaxis='time',yaxis='amp',ydatacolumn='corrected',coloraxis='corr', spw='0:10~55',avgchannel='64')#first flag !ea17&ea25#second flag scan134 ? ea25&ea28,ea25&ea26,ea24&ea25,ea25? 
#or change refantenna ea25 from targetbaseline,antenna,scan,channel,timeflagmanager(vis = msfile,mode = 'save',versionname = 'initialflag_1',comment='first flag',merge='replace')flagdata(vis=msfile, mode='manual', antenna='ea17&ea25')

mapping


split(vis=msfile,outputvis='spw6_cal.ms',datacolumn='corrected',field='0137+331=3C48,J1822-0938', spw='0:10~55')split(vis='spw6.ms',outputvis='spw6_target.ms',datacolumn='corrected',field='G16.7+0.1', spw='0:10~55')statwt(vis='spw6_target.ms',datacolumn='data')cleansource='M31_spw6_cal.ms'#计算cell可以使用
plotms(vis='spw6_target.ms',xaxis='uvwave',yaxis='amp',ydatacolumn='data', field='G16.7+0.1',avgtime='30',correlation='RR')plotms(vis='spw6_target.ms',xaxis='real',yaxis='imag',ydatacolumn='data', field='G16.7+0.1',avgtime='30',correlation='RR')plotms(vis='spw6_target.ms',xaxis='uwave',yaxis='vwave',ydatacolumn='data', field='G16.7+0.1',avgtime='30',correlation='RR')np.degrees(1/17500)*360011.7
11.7/53
tclean(vis='spw6_cal.ms',field='0137+331=3C48',imagename='cal_0137+331=3C48',specmode='mfs', datacolumn='data',imsize=100,cell=['3.0arcsec'],weighting='briggs',robust=0,niter=1000,interactive=True)tclean(vis='spw6_cal.ms',field='J1822-0938',imagename='cal_J1822-0938',specmode='mfs', datacolumn='data',imsize=100,cell=['3.0arcsec'],weighting='briggs',robust=0,niter=1000,interactive=True)tclean(vis='spw6_target.ms', imagename='SNR',specmode='mfs',niter=20000,gain=0.1, threshold='0.0mJy',deconvolver='multiscale',scales=[0, 5, 15, 45], smallscalebias=0.9,interactive=True,imsize=[200,200], cell=['3.0arcsec','3.0arcsec'],stokes='I',weighting='briggs',robust=0.5,pbcor=False,savemodel='modelcolumn')

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/829436.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

使用预训练模型构建自己的深度学习模型(迁移学习)

在深度学习的实际应用中,很少会去从头训练一个网络,尤其是当没有大量数据的时候。即便拥有大量数据,从头训练一个网络也很耗时,因为在大数据集上所构建的网络通常模型参数量很大,训练成本大。所以在构建深度学习应用时…

OS对软件的管理,进程,PCB、子进程

进程 可执行程序加载到内存中,操作系统为内个程序都形成一个PCB对象(结构体对象),PCB里存放着这个程序的所有的属性。进程可执行程序PCB ,CPU执行程序也是先通过该程序的PCB找到相应的程序代码,然后一条一…

ThinkPHP5 SQL注入漏洞敏感信息泄露漏洞

1 漏洞介绍 ThinkPHP是在中国使用极为广泛的PHP开发框架。在其版本5.0&#xff08;<5.1.23&#xff09;中,开启debug模式&#xff0c;传入的某参数在绑定编译指令的时候又没有安全处理&#xff0c;预编译的时候导致SQL异常报错。然而thinkphp5默认开启debug模式&#xff0c…

分享一些实用的工具

1、amCharts5&#xff1a;模拟航线飞行/业务分布图/k线/数据分析/地图等 网址&#xff1a; JavaScript mapping library: amCharts 5https://www.amcharts.com/javascript-maps/ Demo地址&#xff1a;Chart Demos - amChartshttps://www.amcharts.com/demos/#maps 他分为amC…

小龙虾优化算法(Crayfish Optimization Algorithm,COA)

小龙虾优化算法&#xff08;Crayfish Optimization Algorithm&#xff0c;COA&#xff09; 前言一、小龙虾优化算法的实现1.初始化阶段2.定义温度和小龙虾的觅食量3.避暑阶段&#xff08;探索阶段&#xff09;4.竞争阶段&#xff08;开发阶段&#xff09;5.觅食阶段&#xff08…

【誉天战报】3月HCIE战报火热来袭!新增45位同学通过认证!

2024年3月&#xff0c;誉天教育共有45名学员顺利通过了HCIE认证&#xff0c;其中&#xff1a;云计算20人、数通18人、存储5人、云服务2人。让我们一起祝贺他们吧~ 誉天教育是华为优选级授权培训合作伙伴&#xff0c;专业从事华为授权认证课程实战技能培训。连续13年荣获“华为优…

Node.js中fs模块实现配置文件的读写

Node.js中fs模块实现配置文件的读写 准备工作读取配置 在Node.js中&#xff0c; fs模块提供了对文件系统的访问功能&#xff0c;我们可以利用它来实现配置文件的读取和写入操作。正好用到&#xff0c;就记录一下。 准备工作 确保你的项目目录已经安装了做了npm或pnpm或yarn等…

SpringBoot项目如何实现热启动?

Spring Boot 可以通过开启 DevTools 实现热启动。DevTools 是 Spring Boot 提供的一个开发工具&#xff0c;可以加速应用的开发和调试过程。其中的热启动功能可以让你在开发过程中修改代码后&#xff0c;自动重新启动应用。 要实现热启动&#xff0c;可以按照以下步骤进行操作…

和林曦老师一起读书吧 | 愿我们:只生欢喜不生愁

今天&#xff0c;想和你一起来读书&#xff0c;林曦老师的《只生欢喜不生愁》。    这本书的名字很有意味&#xff0c;它来自于清代《养真集》中的一句话&#xff1a;自古神仙无别法&#xff0c;只生欢喜不生愁。      我们会羡慕这样的状态&#xff1a;只生欢喜不生愁…

018基于SSM的音乐系统网站

018基于SSM的音乐系统/网站 开发环境&#xff1a; Jdk7(8)Tomcat7(8)MysqlIntelliJ IDEA(Eclipse)Maven 数据库&#xff1a; MySQL 技术&#xff1a; SpringSpring mvcMybatisJqueryVideo jsJSPJSTLEasyUI 适用于&#xff1a; 课程设计&#xff0c;毕业设计&#xff0c;学习…

“你需要TrustedInstaller提供的权限才能对此文件进行更改” 解决方案

转载地址 【“你需要TrustedInstaller提供的权限才能对此文件进行更改” 解决方案-CSDN博客】

MySQL商城数据表(80-88)

80商品规格值表 DROP TABLE IF EXISTS xuge_spec_items; CREATE TABLE xuge_spec_items (itemId int(11) NOT NULL AUTO_INCREMENT COMMENT 自增ID,shopId int(11) NOT NULL DEFAULT 0 COMMENT 店铺ID,catId int(11) NOT NULL DEFAULT 0 COMMENT 类型ID,goodsId int(11) NOT N…

37.WEB渗透测试-信息收集-企业信息收集(4)

免责声明&#xff1a;内容仅供学习参考&#xff0c;请合法利用知识&#xff0c;禁止进行违法犯罪活动&#xff01; 内容参考于&#xff1a; 易锦网校会员专享课 上一个内容&#xff1a;36.WEB渗透测试-信息收集-企业信息收集&#xff08;3&#xff09;-CSDN博客 关于主域名收…

Git -- 运用总结

文章目录 1. Git2. 基础/查阅2.1 基础/查阅 - git2.2 仓库 - remote2.3 清理 - rm/clean2.4 版本回退 - reset 3. 分支3.1 分支基础 - branch3.2 分支暂存更改 - stash3.3 分支切换 - checkout 4. 代码提交/拉取4.1 代码提交 - push4.2 代码拉取 - pull 1. Git 2. 基础/查阅 2…

(学习日记)2024.05.07:UCOSIII第六十一节:User文件夹函数概览(uCOS-III->Source文件夹)第七部分

写在前面&#xff1a; 由于时间的不足与学习的碎片化&#xff0c;写博客变得有些奢侈。 但是对于记录学习&#xff08;忘了以后能快速复习&#xff09;的渴望一天天变得强烈。 既然如此 不如以天为单位&#xff0c;以时间为顺序&#xff0c;仅仅将博客当做一个知识学习的目录&a…

RISC-V CVA6 在 Linux 下相关环境下载与安装

RISC-V CVA6 在 Linux 下相关环境下载与安装 所需环境与源码下载 CVA6 源码下载 首先&#xff0c;我们可以直接从 GitHub 一次性拉取所有源码&#xff1a; git clone --recursive https://github.com/openhwgroup/cva6.git如果这里遇到网络问题&#xff0c;拉取失败&#x…

error while loading shared libraries: libstdc++.so.6

/home/rtlinux/Linux/arm-linux-gcc-4.4.3/opt/FriendlyARM/toolschain/4.4.3/bin/../libexec/gcc/arm-none-linux-gnueabi/4.4.3/cc1: error while loading shared libraries: libstdc.so.6: cannot open shared object file: No such file or directory 解决&#xff1a; s…

Fluent.Ribbon创建Office的RibbonWindow菜单

链接&#xff1a; Fluent.Ribbon文档 优势&#xff1a; 1. 可以创建类似Office办公软件的复杂窗口&#xff1b; 2. 可以应用自定义主题风格界面

实现 <el-cascader> 组件的回显功能

vue A页面&#xff0c;用户填写了el-cascader多层级数据&#xff0c;层级list数据从接口获取&#xff1b; vue B页面&#xff0c;多层级数据要进行回显&#xff0c;接口给到的数据是value值&#xff1b; 直接看demo <template><div><el-cascaderv-model"…

android studio 编译一直显示Download maven-metadata.xml

今天打开之前的项目的时候遇到这个问题:android studio 编译一直显示Download maven-metadata.xml, AI 查询 报错问题&#xff1a;"android studio 编译一直显示Download maven-metadata.xml" 解释&#xff1a; 这个错误通常表示Android Studio在尝试从Maven仓库…