0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

哈佛学生写的Python模块,进入Github飙升榜TOP 3,超过1000星

DPVg_AI_era 来源:lp 2019-04-19 11:31 次阅读

哈佛学生写的Python模块,用于模拟和操作VLBI数据并使用正则化最大似然法生成图像,模拟黑洞成像的算法。进入Github飙升榜TOP3,超过1000星。

为了拍到本次的黑洞照片,科学家总共使用了8台亚毫米射电望远镜,构建成超级“虚拟”望远镜——事件视界望远镜(EHT),分别在南极、智利、墨西哥、美国夏威夷、美国亚利桑那州、西班牙同时对黑洞展开观测。

8台望远镜组成的EHT口径13000公里,约等于地球直径。而EHT能够实现,则要归功于甚长基线干涉测量VLBI(Very-long-baselineinterferometry)。

VLBI是什么

VLBI是一种在电波天文学中使用的天文干涉测量方法。简单来说就是使用多个天文望远镜,同时观测一个天然的射电天体或有无线电信标的人造天体,从而得以模拟出一个巨形望远镜获得的观测效果。

接下来,各观测站将观测数据实时传送或记录在磁盘上运送到VLBI数据处理中心,然后进行数据回放和互相关计算;再利用得到的互相关谱数据,计算得到信号到达各观测站的时间差(时延观测值)及其变化率(时延率观测值);最后利用这些VLBI观测值计算目标的角位置(赤经和赤纬)。

VLBI的测量精度可以达到百分之几角秒、千分之几角秒甚至更高。对于人造天体,如人造地球卫星、绕月卫星和深空探测器等的VLBI测轨,则利用VLBI观测值,综合测距、测速数据,进行精确的轨道测定。

VLBI在天体物理方面主要应用于类星体、射电星系核、星际脉泽源等致密射电源毫角秒级的精细结构研究和精确定位等。在天体和大地测量中,它在建立天球参考系、测定地球自转全部参数和地面参考系的基准点等方面具有不可取代的作用。

我国在VLBI领域有哪些成果

根据中科院报道,以我国学者为首,在国际合作中用VLBI测量银河系中心黑洞的边界和银河系精细结构的工作,近年来取得重大进展,赢得国际同行瞩目;在天球和地面参考系建立方面,上海和乌鲁木齐VLBI站多年以来是亚洲大陆的基准站之一。

中科院VLBI天文测量系统由上海(25米天线)、北京(50米天线)、昆明(40米天线)、乌鲁木齐(25米天线)四个VLBI观测站和上海VLBI数据处理中心组成。

中科院上海天文台自上世纪90年代起,也开始了VLBI应用于深空探测的研究,参加了多次国际合作的深空探测,如欧空局的惠更斯探测器与卡西尼宇宙飞船分离后飞向土卫六过程的VLBI测量。

用Python模拟和操作VLBI数据

听起来好像里我们非常遥远。不过,感谢Github,我们普通人也有机会接触VLBI。

哈佛大学物理系EHT理论和计算天体物理学研究生、博士生候选人AndrewChael,在Github上创建了ehtim(eht-imaging)项目。

Andrew目前在BlackHoleInitiative工作,主要研究领域是使用新的尖端方法来模拟和成像EHT的黑洞目标人马座A*(SgrA*,后面的星号读作“star”或“星”)和室女A星系(也称为梅西尔87、M87或NGC4486)。

ehtim主要通过一些Python模块来模拟和操作VLBI数据,并使用正则化最大似然法生成图像。包含几个用于加载、模拟和操作VLBI数据的主类。

主要的类有Image、Array、Obsdata、Imager和Caltable,提供了加载图像和数据的工具,并从真实的uv轨道生成模拟数据、校准、检查和绘制数据,以及从各种数据集生成图像,使用各种数据术语和正则化器进行极化。

安装过程非常简单,首先clone该项目

git clonehttps://github.com/achael/eht-imaging.git

然后进入项目根目录,运行

pip install .

此时应该会自动安装大多数所需的库,例如astropy,ephem,future,h5py,html,networkx,numpy,pandas,matplotlib,requests,scipy,skimage。

如需使用快速傅里叶变换,必须单独安装NFFT及其pynnft包装器。最简单的方法是使用conda来安装:

conda install -c conda-forge pynfft

或者,首先按照NFFT说明安装NFFT,**这里一定要确保在编译时使用**:

--enable-openmp

然后再用pip安装pynfft,按照README的教程将安装链接到NFFT的位置;最后,重新安装ehtim。pynfft的安装地址:

https://github.com/ghisvail/pyNFFT

注意事项

用于读写.oifits文件的oifits_new代码是PaulBoley的软件包的略微修改版本,该功能目前仍在开发中,可能无法与所有版本的python或astropy一起使用。

oifits项目地址:

http://astro.ins.urfu.ru/pages/~pboley/oifits

同时这个项目版本较旧,如有任何问题请邮件联系:

achael@cfa.harvard.edu

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 探测器
    +关注

    关注

    14

    文章

    2439

    浏览量

    72060
  • python
    +关注

    关注

    51

    文章

    4675

    浏览量

    83465
  • GitHub
    +关注

    关注

    3

    文章

    457

    浏览量

    15918

原文标题:第一张黑洞照片全靠VLBI,这个Github项目教你用Python实现

文章出处:【微信号:AI_era,微信公众号:新智元】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    Python夺冠!GitHub 2023年度编程语言排行榜

    2023 年,Python 仍然是使用 GitHub 的开发者中最受欢迎的选择之一,占据了几乎 18% 的份额,在所有编程语言中保持领先地位,连续第四年增长 0.5%,巩固了其作为最受欢迎语言的地位。
    的头像 发表于 12-18 14:51 1955次阅读
    <b class='flag-5'>Python</b>夺冠!<b class='flag-5'>GitHub</b> 2023年度编程语言排行榜

    python自带的idle怎么进入

    将详细介绍Python的IDLE的各个方面,包括如何进入IDLE、IDLE的功能和特点以及如何使用IDLE进行编程和调试等。 首先,进入Python的IDLE非常简单。对于Window
    的头像 发表于 11-29 14:51 936次阅读

    python如何导入模块

    Python是一种强大的编程语言,它支持模块化编程,使得开发者可以将代码分解为可重用且独立的模块模块是一个包含函数、类和变量等定义的文件,我们可以使用import语句将这些
    的头像 发表于 11-22 14:46 530次阅读

    top命令如何进入选项

    top命令是一个常用的Linux系统性能监控工具,可以实时地监视系统的整体运行情况。通过使用top命令,我们可以查看系统的负载情况、进程的CPU和内存使用情况等。想要进入top命令的选
    的头像 发表于 11-17 10:27 502次阅读

    Python监控Github项目如何更新并自动下载

    让我们 用Python监控Github项目是否有更新,如果有的话自动下载该更新 ! 1.统一文件名格式 为了能够获取github上的项目的更新时间,我们需要调用github的一个API
    的头像 发表于 11-03 15:45 471次阅读
    <b class='flag-5'>Python</b>监控<b class='flag-5'>Github</b>项目如何更新并自动下载

    如何让Python和Go互相调度

    我们曾经研究过如何让Python和Go互相调度,当时发现,将Go语言写的模块打包成动态链接库,就能在Python中进行调度: 优劣互补! Python+Go结合开发的探讨 Go的优势很
    的头像 发表于 11-02 11:24 247次阅读
    如何让<b class='flag-5'>Python</b>和Go互相调度

    Python 梯度计算模块如何实现一个逻辑回归模型

    AutoGrad 是一个老少皆宜的 Python 梯度计算模块。 对于初高中生而言,它可以用来轻易计算一条曲线在任意一个点上的斜率。 对于大学生、机器学习爱好者而言,你只需要传递给它Numpy这样
    的头像 发表于 10-21 11:01 287次阅读
    <b class='flag-5'>Python</b> 梯度计算<b class='flag-5'>模块</b>如何实现一个逻辑回归模型

    python如何使用wifi模块

    python如何使用wifi模块?我USB能接收到串口助手发送的AT,但是发送给WIFI模块之后没有反应!(附代码)
    发表于 09-13 08:26

    【芒果派MangoPi MQ Pro】+ 失败的Python 3尝试

    有完整的Python 3,正好可以测试一下。 把讯飞星火提供的示例程序运行了一下,发现缺少Websocket库,结果发现板子上并没有安装pip,所以先需要安装pip: sudo apt-get
    发表于 07-28 19:44

    Visual Studio中python使用pip命令安装模块

    Visual Studio中python使用pip命令安装模块
    的头像 发表于 07-27 11:42 907次阅读
    Visual Studio中<b class='flag-5'>python</b>使用pip命令安装<b class='flag-5'>模块</b>

    动态库封装成python模块的方法

    之前的文章 将静态库封装成 python 模块中讲解了如何将静态库封装成 python 模块,静态库封装相对来说还是有点复杂,今天来介绍下动态库封装成
    发表于 07-13 15:24 378次阅读

    59.Github 被黑了?No Access?Why?

    GitHub
    充八万
    发布于 :2023年07月11日 23:15:16

    Python怎么实现自动驾驶

    一、安装环境 gym是用于开发和比较强化学习算法的工具包,在python中 安装gym库和其中子场景都较为简便。 安装gym: pip install gym 安装自动驾驶模块,这里使用Edouard Leurent发布在gi
    发表于 06-07 14:35 0次下载
    <b class='flag-5'>Python</b>怎么实现自动驾驶

    Python实现自动驾驶

    简便。 安装gym:pip install gym 安装自动驾驶模块,这里使用Edouard Leurent发布在github上的包highway-env(链接:https://github.com/e
    发表于 06-06 10:43 1次下载
    <b class='flag-5'>Python</b>实现自动驾驶

    Python中telnetlib模块的基本使用

    telnetlib 是 Python 标准库中的一个模块,它提供了 Telnet 协议的客户端功能。使用 telnetlib 模块,我们可以在 Python 中编写脚本来自动化 Tel
    的头像 发表于 05-04 14:27 6456次阅读