1. 程式人生 > 其它 >【IDL程式碼庫】使用IDL視覺化引力波資料

【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中視覺化引力波資料