Newer
Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
from .common import request, Result
import pickle
def search(ra: float,
dec: float,
radius: float,
catalog_name: str,
columns: tuple = ('*'),
min_mag: float = -1,
max_mag: float = -1,
obstime: int = 0,
limit: int = 0) -> Result:
"""
根据输入的赤经、赤纬、半径、星表名称、列名、最小星等、最大星等、观测时间和限制数量,
查询指定范围内的天体数据,并返回查询结果。
Args:
ra (float): 天体赤经(以度为单位)。
dec (float): 天体赤纬(以度为单位)。
radius (float): 查询半径(以度为单位)。
catalog_name (str): 星表名称。
columns (tuple, optional): 查询的列名,默认为 ('*')。表示查询所有列。
min_mag (float, optional): 最小星等,默认为 -1。表示无限制。
max_mag (float, optional): 最大星等,默认为 -1。表示无限制。
obstime (int, optional): 观测时间,默认为 0,暂无用。
limit (int, optional): 查询结果的数量限制,默认为 0。表示无限制。
Returns:
Result: 查询结果。
Raises:
Exception: 如果请求失败,将抛出异常。
"""
if not columns:
columns = ('*')
try:
datas = request.post('/api/catalog', {
'ra': ra,
'dec': dec,
'radius': radius,
'catalog_name': catalog_name,
'columns': columns,
'min_mag': min_mag,
'max_mag': max_mag,
'obstime': obstime,
'limit': limit
})
records = pickle.loads(datas._content)
df, total_count = records['records'], records['totalCount']
return Result.ok_data(data = df).append("totalCount", total_count)
except Exception as e:
return Result.error(str(e))