用Python繪制一個(gè)仿黑洞圖像
簡(jiǎn)介
黑洞圖像大家都知道,畢竟前幾年剛發(fā)布的時(shí)候曾火遍全網(wǎng),甚至都做成表情包了。
問(wèn)題在于,憑什么認(rèn)為這就是黑洞的照片,而不是一個(gè)甜甜圈啥的給整模糊了得到的呢?有什么理論依據(jù)嗎?
單位制
利用einsteinpy模塊中的Shadow類,可以實(shí)現(xiàn)黑洞吸積盤的發(fā)射強(qiáng)度,換言之,用理論模擬一下黑洞的照片應(yīng)該是什么樣子的。
22年5月份發(fā)布的是人馬座A*的照片,這個(gè)"黑洞"的質(zhì)量為8.26×1036kg,距離地球26673光年。
根據(jù)源碼推測(cè),einstenipy中采用幾何單位制,光速和萬(wàn)有引力常數(shù)設(shè)為1, 即c=G=1?,F(xiàn)設(shè)幾何單位制下的時(shí)間、距離以及質(zhì)量單位為S,M,KG,國(guó)際制單位為s,m,kg,若以時(shí)間單位秒為基本單位,即1s=1S,由于幾何單位制下光速Sc=1M/S,則可得到距離單位的換算關(guān)系
同理,根據(jù)萬(wàn)有引力常數(shù)可得到質(zhì)量單位的換算關(guān)系
所以質(zhì)量和距離可以分別表示為
觀測(cè)繪圖
盡管我們?cè)诘厍蛏嫌^測(cè)這個(gè)黑洞,但由于相機(jī)鏡頭等因素,實(shí)際上肯定不能用這么大的尺度來(lái)觀測(cè),所以稍微選一個(gè)差不多的距離就好
import astropy.units as u from einsteinpy.rays import Shadow mass = 1.98 * u.kg fov = 100 * u.km shadow = Shadow(mass=mass, fov=fov, n_rays=1000)
shadow就是其發(fā)射模型,其內(nèi)部用于繪圖的主要成員有
- fb1 x xx負(fù)半軸
- fb2 x xx正半軸
- intensity 發(fā)射強(qiáng)度
下面繪制一下不同距離處的發(fā)射強(qiáng)度
import matplotlib.pyplot as plt plt.plot(shadow.fb1, shadow.intensity, "r") plt.plot(shadow.fb2, shadow.intensity, "r") plt.xlabel("Impact Paramter (b)") plt.ylabel("Intensity (Emissivity)") plt.title("Intensity Plot") plt.grid() plt.show()
結(jié)果如下圖所示,果然中間凹了下去
einsteinpy
內(nèi)嵌了繪圖函數(shù),通過(guò)ShadowPlotter(shadow, is_line_plot=True)
可以更加方便地繪制上述圖像,如果將is_line_plot
設(shè)為False
,則可得到強(qiáng)度分布圖
from einsteinpy.plotting import ShadowPlotter obj = ShadowPlotter(shadow=shadow, is_line_plot=False) obj.plot() obj.show() plt.show()
這樣一看是不是覺(jué)得和前面的那個(gè)甜甜圈確有相似之處。
這個(gè)模型是根據(jù)Cosimo Bambi的文章編寫的,論文地址在這:Cosimo Bambi, 10.1103/PhysRevD.87.107501。本來(lái)合計(jì)著把這篇文章的公式啥的粘過(guò)來(lái)解讀一下,但考慮到貼在這也沒(méi)人看,想想還是算了。
到此這篇關(guān)于用Python繪制一個(gè)仿黑洞圖像的文章就介紹到這了,更多相關(guān)Python仿黑洞內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
詳解python OpenCV學(xué)習(xí)筆記之直方圖均衡化
本篇文章主要介紹了詳解python OpenCV學(xué)習(xí)筆記之直方圖均衡化,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-02-02pandas計(jì)數(shù) value_counts()的使用
這篇文章主要介紹了pandas計(jì)數(shù) value_counts()的使用,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-06-06編寫Python腳本批量下載DesktopNexus壁紙的教程
這篇文章主要介紹了編寫Python腳本批量下載DesktopNexus壁紙的教程,相較于普通的爬蟲抓取,本文的下載壁紙教程還包括了設(shè)置所要下載的分辨率等功能的實(shí)現(xiàn),需要的朋友可以參考下2015-05-05Python pydotplus安裝及可視化圖形創(chuàng)建教程
這篇文章主要為大家介紹了Python pydotplus安裝及可視化圖形創(chuàng)建教程示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-10-10Python使用Networkx實(shí)現(xiàn)復(fù)雜的人物關(guān)系圖
日常工作、生活中我們經(jīng)常會(huì)遇到一些復(fù)雜的事務(wù)關(guān)系,比如人物關(guān)系,那如何才能清楚直觀的看清楚這些任務(wù)關(guān)系呢?所以小編給大家介紹了Python如何使用Networkx實(shí)現(xiàn)復(fù)雜的人物關(guān)系圖,文中通過(guò)代碼示例講解的非常詳細(xì),需要的朋友可以參考下2023-11-11Python Web服務(wù)器Tornado使用小結(jié)
最近在做一個(gè)網(wǎng)站的后端開(kāi)發(fā)。因?yàn)槌跗谥挥形乙粋€(gè)人做,所以技術(shù)選擇上很自由。在 web 服務(wù)器上我選擇了 Tornado。雖然曾經(jīng)也讀過(guò)它的源碼,并做過(guò)一些小的 demo,但畢竟這是第一次在工作中使用,難免又發(fā)現(xiàn)了一些值得分享的東西2014-05-05利用Python實(shí)現(xiàn)Shp格式向GeoJSON的轉(zhuǎn)換方法
JSON(JavaScript Object Nonation)是利用鍵值對(duì)+嵌套來(lái)表示數(shù)據(jù)的一種格式,以其輕量、易解析的優(yōu)點(diǎn),這篇文章主要介紹了利用Python實(shí)現(xiàn)Shp格式向GeoJSON的轉(zhuǎn)換,需要的朋友可以參考下2019-07-07