星系形成建模-Illustris
专用API
服务商:
ILLUSTRIS
【更新时间: 2024.07.17】
Illustris API 当然是面向空间的,但它可能是整个组中概念最高的 API。该 API 是作为访问核心服务的另一种方式提供的,允许高数据量处理、搜索、提取、分析和可视化。
咨询
去服务商官网采购>
|
服务星级:2星
浏览次数
10
采购人数
0
试用次数
0
SLA: N/A
响应: N/A
适用于个人&企业
收藏
×
完成
取消
×
书签名称
确定
|
- API详情
- 使用指南
- 常见 FAQ
- 关于我们
- 相关推荐
什么是Illustris的星系形成建模?
“Illustris星系形成建模API” 是一个用于模拟和研究宇宙中星系形成和演化的工具。该API依托于Illustris项目,利用高分辨率和物理模型,进行大规模宇宙学模拟。通过该API,研究人员可以访问模拟数据,进行复杂的分析和可视化,探讨星系的形成机制及其在宇宙中的分布和演化过程。
什么是Illustris的星系形成建模?
Illustris的星系形成建模有哪些核心功能?
- 朔望模拟:迈向星系形成的预测理论。
- 移动网格上的星系形成:以前所未有的物理保真度模拟宇宙体积。
- 填充哈勃序列:恢复星系形态的多样性。
- 宇宙学背景:将星系尺度与宇宙大尺度结构联系起来。
Illustris的星系形成建模的核心优势是什么?
- 高分辨率:提供前所未有的高分辨率模拟数据,使研究更加精确。
- 综合物理模型:结合多种物理模型,提供对星系形成和演化的全面理解。
- 大规模数据:模拟了大量的星系和宇宙结构,提供丰富的数据资源供研究使用。
在哪些场景会用到Illustris的星系形成建模?
学术研究 研究人员可以利用该API获取星系和宇宙结构的详细数据,进行星系形成和演化机制的深入研究。
|
|
教育培训 通过可视化工具,教育工作者可以向学生展示宇宙结构的形成过程,帮助理解复杂的天文概念。 |
API入门指南
首先,启动您选择的接口并定义一个helper函数,其目的是向指定的URL(“端点”)发出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根发出请求。
>>> 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/
并发送请求。或者,我们可以简单地遵循我们已经到达相同位置的 url
字段。
详情参考:https://www.illustris-project.org/data/docs/api/
API入门指南
首先,启动您选择的接口并定义一个helper函数,其目的是向指定的URL(“端点”)发出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根发出请求。
>>> 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/
并发送请求。或者,我们可以简单地遵循我们已经到达相同位置的 url
字段。
详情参考:https://www.illustris-project.org/data/docs/api/