![]() |
星系形成建模-Illustris
專用API
【更新時間: 2024.07.17】
Illustris API 當然是面向空間的,但它可能是整個組中概念最高的 API。該 API 是作為訪問核心服務的另一種方式提供的,允許高數據量處理、搜索、提取、分析和可視化。
咨詢
去服務商官網采購>
|
瀏覽次數
19
采購人數
0
試用次數
0
收藏
×
完成
取消
×
書簽名稱
確定
|
- API詳情
- 使用指南
- 常見 FAQ
- 關于我們
- 相關推薦


什么是Illustris的星系形成建模?
“Illustris星系形成建模API” 是一個用于模擬和研究宇宙中星系形成和演化的工具。該API依托于Illustris項目,利用高分辨率和物理模型,進行大規(guī)模宇宙學模擬。通過該API,研究人員可以訪問模擬數據,進行復雜的分析和可視化,探討星系的形成機制及其在宇宙中的分布和演化過程。
什么是Illustris的星系形成建模接口?
Illustris的星系形成建模有哪些核心功能?
- 朔望模擬:邁向星系形成的預測理論。
- 移動網格上的星系形成:以前所未有的物理保真度模擬宇宙體積。
- 填充哈勃序列:恢復星系形態(tài)的多樣性。
- 宇宙學背景:將星系尺度與宇宙大尺度結構聯(lián)系起來。
Illustris的星系形成建模的核心優(yōu)勢是什么?
- 高分辨率:提供前所未有的高分辨率模擬數據,使研究更加精確。
- 綜合物理模型:結合多種物理模型,提供對星系形成和演化的全面理解。
- 大規(guī)模數據:模擬了大量的星系和宇宙結構,提供豐富的數據資源供研究使用。
在哪些場景會用到Illustris的星系形成建模?
學術研究 研究人員可以利用該API獲取星系和宇宙結構的詳細數據,進行星系形成和演化機制的深入研究。
|
|
教育培訓 通過可視化工具,教育工作者可以向學生展示宇宙結構的形成過程,幫助理解復雜的天文概念。 |
|


API入門指南
首先,啟動您選擇的接口并定義一個helper函數,其目的是向指定的URL(“端點”)發(fā)出HTTP GET請求,并驗證響應是否成功。如果響應類型是JSON,則自動將其解碼為類似dict的對象。
>>> import requests
>>>
>>> baseUrl = 'http://www.illustris-project.org/api/'
>>> headers = {"api-key":"INSERT_API_KEY_HERE"}
>>>
>>> def get(path, params=None):
>>> # make HTTP GET request to path
>>> r = requests.get(path, params=params, headers=headers)
>>>
>>> # raise exception if response code is not HTTP SUCCESS (200)
>>> r.raise_for_status()
>>>
>>> if r.headers['content-type'] == 'application/json':
>>> return r.json() # parse json responses automatically
>>> return r
向API根發(fā)出請求。
>>> r = get(baseUrl)
響應是一個帶有一個鍵 "simulations"
的字典對象,它是 N
(在本例中當前為18)可用運行的列表:
>>> r.keys()
['simulations']
>>> len(r['simulations'])
18
打印出第一個字段的所有字段,以及所有18個字段的名稱。
>>> r['simulations'][0]
{'name': 'Illustris-1',
'num_snapshots': 134,
'url': 'http://www.illustris-project.org/api/Illustris-1/'}
>>> names = [sim['name'] for sim in r['simulations']]
>>> names
['Illustris-1',
'Illustris-1-Dark',
'Illustris-2',
'Illustris-2-Dark',
'Illustris-3',
'Illustris-3-Dark',
'Illustris-1-Subbox0',
'Illustris-1-Subbox1',
'Illustris-1-Subbox2',
'Illustris-1-Subbox3',
'Illustris-2-Subbox0',
'Illustris-2-Subbox1',
'Illustris-2-Subbox2',
'Illustris-2-Subbox3',
'Illustris-3-Subbox0',
'Illustris-3-Subbox1',
'Illustris-3-Subbox2',
'Illustris-3-Subbox3']
正如預期的那樣,我們看到了Illustris的三個分辨率級別,三個暗物質運行,以及每個“完整物理”運行的四個子框。每個條目只有三個字段: name
、 num_snapshots
和 url
。我們可以通過向指定的 url
提交請求來檢索特定模擬的完整元數據。
讓我們通過確定它是 r
中的哪個條目,然后請求該條目的 url
字段來查看Illustris-3。
>>> i = names.index('Illustris-3')
>>> i
4
>>> sim = get( r['simulations'][i]['url'] )
>>> sim.keys()
['softening_dm_max_phys',
'omega_0',
'snapshots',
...
'softening_dm_comoving',
'softening_gas_comoving']
>>> sim['num_dm']
94196375
請注意,我們實際上并不需要手動構造URL。
一般來說,這是正確的:每當API響應引用另一個資源或端點時,它都使用絕對URL,可以直接跟蹤該URL以檢索該資源。這意味著,不需要知道API的結構就可以導航它。
在這種情況下,我們可以從本頁底部的引用表中看到,檢索給定模擬的完整元數據的端點是 /api/{sim_name}/
。因此,我們可以手動構造URL www.illustris-project.org/api/Illustris-3/
并發(fā)送請求。或者,我們可以簡單地遵循我們已經到達相同位置的 url
字段。
詳情參考:https://www.illustris-project.org/data/docs/api/






API入門指南
首先,啟動您選擇的接口并定義一個helper函數,其目的是向指定的URL(“端點”)發(fā)出HTTP GET請求,并驗證響應是否成功。如果響應類型是JSON,則自動將其解碼為類似dict的對象。
>>> import requests
>>>
>>> baseUrl = 'http://www.illustris-project.org/api/'
>>> headers = {"api-key":"INSERT_API_KEY_HERE"}
>>>
>>> def get(path, params=None):
>>> # make HTTP GET request to path
>>> r = requests.get(path, params=params, headers=headers)
>>>
>>> # raise exception if response code is not HTTP SUCCESS (200)
>>> r.raise_for_status()
>>>
>>> if r.headers['content-type'] == 'application/json':
>>> return r.json() # parse json responses automatically
>>> return r
向API根發(fā)出請求。
>>> r = get(baseUrl)
響應是一個帶有一個鍵 "simulations"
的字典對象,它是 N
(在本例中當前為18)可用運行的列表:
>>> r.keys()
['simulations']
>>> len(r['simulations'])
18
打印出第一個字段的所有字段,以及所有18個字段的名稱。
>>> r['simulations'][0]
{'name': 'Illustris-1',
'num_snapshots': 134,
'url': 'http://www.illustris-project.org/api/Illustris-1/'}
>>> names = [sim['name'] for sim in r['simulations']]
>>> names
['Illustris-1',
'Illustris-1-Dark',
'Illustris-2',
'Illustris-2-Dark',
'Illustris-3',
'Illustris-3-Dark',
'Illustris-1-Subbox0',
'Illustris-1-Subbox1',
'Illustris-1-Subbox2',
'Illustris-1-Subbox3',
'Illustris-2-Subbox0',
'Illustris-2-Subbox1',
'Illustris-2-Subbox2',
'Illustris-2-Subbox3',
'Illustris-3-Subbox0',
'Illustris-3-Subbox1',
'Illustris-3-Subbox2',
'Illustris-3-Subbox3']
正如預期的那樣,我們看到了Illustris的三個分辨率級別,三個暗物質運行,以及每個“完整物理”運行的四個子框。每個條目只有三個字段: name
、 num_snapshots
和 url
。我們可以通過向指定的 url
提交請求來檢索特定模擬的完整元數據。
讓我們通過確定它是 r
中的哪個條目,然后請求該條目的 url
字段來查看Illustris-3。
>>> i = names.index('Illustris-3')
>>> i
4
>>> sim = get( r['simulations'][i]['url'] )
>>> sim.keys()
['softening_dm_max_phys',
'omega_0',
'snapshots',
...
'softening_dm_comoving',
'softening_gas_comoving']
>>> sim['num_dm']
94196375
請注意,我們實際上并不需要手動構造URL。
一般來說,這是正確的:每當API響應引用另一個資源或端點時,它都使用絕對URL,可以直接跟蹤該URL以檢索該資源。這意味著,不需要知道API的結構就可以導航它。
在這種情況下,我們可以從本頁底部的引用表中看到,檢索給定模擬的完整元數據的端點是 /api/{sim_name}/
。因此,我們可以手動構造URL www.illustris-project.org/api/Illustris-3/
并發(fā)送請求。或者,我們可以簡單地遵循我們已經到達相同位置的 url
字段。
詳情參考:https://www.illustris-project.org/data/docs/api/





