【IDL代码库】使用IDL可视化引力波数据

新年新气象,来点(看上去)高级的东西。

本文内容参考此文编写(http://www.codingpy.com/article/gwpy-ligo-analyze-gravitational-waves-data/,作者:EarlGrey@编程派)。引力波科普知识,以及Python可视化引力波数据的方法,可浏览上述文章。

本人是看完《三体》后开始对引力波感兴趣。纯属娱乐。o(∩_∩)o ~

 

我们直接在IDL中实现。代码如下:

PRO Gravitational_Wave_LIGO

 

 ;引力波数据下载网址

 url='http://www.ligo.org/science/GW100916/L-strain_hp30-968654552-10.txt'

 

 ;新建idlneturl对象,用于下载LIGO数据

 net IDLNETURL()

 

 ;LIGO数据下载路径,根据需要进行修改

  file = 'D:\LIGOdata.txt'

 ;如果数据不存在,则下载,如果已经下载,则直接进行可视化。

 IF ~FILE_TEST(file) THEN BEGIN

   PRINT, '正在下载LIGO数据, 请稍候...'

   !NULL = net.Get(url=url, filename=file)

   PRINT, '数据下载完成.'

 ENDIF

 

 ;获取数据行数,并初始化数组,用于存储LIGO数据

  lines = FILE_LINES(file)

 data=FLTARR(lines)

 ;读取LIGO数据

 OPENR,lun,file,/get_lun

 READF,lun,data

 FREE_LUN, lun

 

 ;可视化

 p=PLOT(data, XRANGE=[1,lines], COLOR = 'blue', $

   TITLE='LIGO Livingston Observatory data for GW100916', $

   XTITLE='Time[Seconds] from 2010-09-16 06:42:17 UTC (968654552.0)', $

   YTITLE='Gravitational-wave strain amplitude', $

   DIMENSIONS=[1000,500], /NO_TOOLBAR, $

   XTICKLEN=1, YTICKLEN=1, XGRIDSTYLE=1, YGRIDSTYLE=1, $

   XMAJOR = 11, YMAJOR=5, XMINOR=0, YMINOR=0, $

   XTICKNAME = STRTRIM(INDGEN(11),2), $

   FONT_SIZE=15, XTICKFONT_SIZE=13, YTICKFONT_SIZE=13)

 

 PRINT, '数据可视化完成.'

END

 

效果图如下:

图:IDL中可视化引力波数据

posted @ 2022-05-27 17:47  ENVI-IDL技术殿堂  阅读(397)  评论(0编辑  收藏  举报