level2.md 3.61 KB
Newer Older
Wei Shoulin's avatar
docs  
Wei Shoulin committed
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
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
# 2级数据接口使用说明

## 概述

2级数据接口模块是 `csst_dfs_client.level2`。该模块包含了搜索2级数据文件记录、更新2级数据状态、将本地文件写入DFS以及管理2级数据处理记录等功能的函数。

## 函数列表

1. **find**
   - 功能:根据给定的参数搜索2级数据文件记录。
   - 参数:包括项目ID、观测ID、模块ID、探测器编号、文件类型、滤光片、观测时间范围、创建时间范围、QC2状态、处理状态、文件名、目标赤经、目标赤纬、搜索半径、天体名称、RSS ID、Cube ID、数据集名称、批次ID、页码、每页数量等。
   - 返回值:搜索结果对象。

2. **find_by_level2_id**
   - 功能:通过2级数据的ID查询2级数据。
   - 参数:2级数据的ID。
   - 返回值:查询结果对象。

3. **update_qc2_status**
   - 功能:更新2级数据的QC2状态。
   - 参数:2级数据的ID、文件类型、QC2状态、批次ID。
   - 返回值:更新结果对象。

4. **update_prc_status**
   - 功能:更新2级数据的处理状态。
   - 参数:2级数据的ID、文件类型、处理状态、批次ID。
   - 返回值:操作结果对象。

5. **write**
   - 功能:将本地的2级数据文件写入到DFS中。
   - 参数:本地文件路径或文件对象、模块ID、2级数据的ID、文件类型、文件名、管线ID、构建号、0级数据的ID、1级数据的ID、数据集名称、批次ID、QC2状态等。
   - 返回值:操作的结果对象。

6. **catalog_query**
   - 功能:查询2级数据的星表数据。
   - 参数:SQL查询语句,limit参数限制查询结果的数量。
   - 返回值:查询结果对象, result.data为pd.DataFrame。

## 使用示例

### 1. 搜索2级数据文件记录

```python


# 搜索2级数据文件记录
result = level2.find(obs_id='some_obs_id', data_type='csst-msc-l2-mbi' module_id='MSC', page=1, limit=10)
print(result) # result.data为list类型,包含2级数据文件记录列表

```

### 2. 通过ID查询2级数据

```python
from csst_dfs_client import level2
result = level2.find_by_level2_id(level2_id='some_level2_id')
print(result) # result.data为list类型,包含2级数据文件记录列表
```

### 3. 更新2级数据的QC2状态

```python
from csst_dfs_client import level2
result = level2.update_qc2_status(level2_id='some_level2_id', data_type='SCI', qc2_status=1, batch_id='some_batch_id')
print(result)
```

### 4. 更新2级数据的处理状态

```python
from csst_dfs_client import level2
result = level2.update_prc_status(level2_id='some_level2_id', data_type='SCI', prc_status=1, batch_id='some_batch_id')
print(result)
```

### 5. 将本地文件写入DFS

```python
from csst_dfs_client import level2

# 将本地的2级数据文件写入到DFS中
local_file_path = '/path/to/your/level2_data.fits'
module_id = 'MSC'
level2_id = 'some_level2_id'
file_type = 'SCI'
file_name = 'level2_data.fits'
pipeline_id = 'some_pipeline_id'
build = 1
level0_id = 'some_level0_id'
level1_id = 'some_level1_id'
dataset = 'default_dataset'
batch_id = 'default_batch_id'
qc2_status = 0

result = level2.write(local_file_path, module_id, level2_id, file_type, file_name, pipeline_id, build, level0_id, level1_id, dataset, batch_id, qc2_status)
print(result)
```

### 6. 查询2级数据的星表数据

```python
from csst_dfs_client import level2
data_type = 'csst-msc-l2-mbi-cat'
table_name = data_type.replace('-', '_')
sql_query = f"SELECT * FROM {table_name}"
result = level2.catalog_query(sql_query, limit=10)
print(result) # result.data为pd.DataFrame类型,包含查询结果
```

- [其他接口](./usage.md)