level1.md 5.29 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
# 1级数据接口使用说明

## 概述

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

## 函数列表

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

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

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

4. **sls_find_by_qc1_status**
   - 功能:通过QC1状态查询1级数据。
   - 参数:QC1状态、查询结果数量限制、批次ID。
   - 返回值:查询结果对象。

5. **update_qc1_status**
   - 功能:更新1级数据的QC1状态。
   - 参数:1级数据的ID、文件类型、QC1状态、批次ID。
   - 返回值:更新结果对象。

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

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

8. **generate_prc_msg**
   - 功能:生成流水线的处理消息。
   - 参数:模块ID、1级数据的ID、数据集、批次ID。
   - 返回值:处理消息生成的结果对象。

9. **process_list**
   - 功能:通过1级数据的ID查询1级数据处理记录。
   - 参数:1级数据的ID。
   - 返回值:查询结果对象。

10. **add_process**
Wei Shoulin's avatar
Wei Shoulin committed
55
56
57
   - 功能:添加1级数据处理记录。
   - 参数:1级数据的ID、管线ID、运行ID、数据集、批次ID、处理时间、处理状态、处理模块、处理消息。
   - 返回值:操作结果对象。
Wei Shoulin's avatar
docs  
Wei Shoulin committed
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

## 使用示例

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

```python
# 搜索1级数据文件记录
result = level1.find(obs_id='some_obs_id', module_id='MSC', page=1, limit=10)
print(result) # result.data为list类型,包含1级数据文件记录列表
```

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

```python
from csst_dfs_client import level1
result = level1.find_by_level1_id(level1_id='some_level1_id')
print(result) # result.data为list类型,包含1级数据文件记录列表
```

### 3. 通过brick的ID查询1级数据

```python
from csst_dfs_client import level1
result = level1.find_by_brick_id(brick_id=123456)
print(result) # result.data为list类型,包含1级数据文件记录列表
```

### 4. 通过QC1状态查询1级数据(SLS专用)

```python
from csst_dfs_client import level1
result = level1.sls_find_by_qc1_status(qc1_status='GOOD', limit=5)
print(result) # result.data为list类型,包含1级数据文件记录列表
```

### 5. 更新1级数据的QC1状态

```python
from csst_dfs_client import level1
Wei Shoulin's avatar
Wei Shoulin committed
97
result = level1.update_qc1_status(level1_id='some_level1_id', data_type='SCI', qc1_status=1, batch_id='some_batch_id')
Wei Shoulin's avatar
docs  
Wei Shoulin committed
98
99
100
101
102
103
104
print(result)
```

### 6. 更新1级数据的处理状态

```python
from csst_dfs_client import level1
Wei Shoulin's avatar
Wei Shoulin committed
105
result = level1.update_prc_status(level1_id='some_level1_id', data_type='SCI', prc_status=1, batch_id='some_batch_id')
Wei Shoulin's avatar
docs  
Wei Shoulin committed
106
107
108
109
110
111
112
113
114
115
116
117
print(result)
```

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

```python
from csst_dfs_client import level1

# 将本地的1级数据文件写入到DFS中
local_file_path = '/path/to/your/level1_data.fits'
module_id = 'MSC'
level1_id = 'some_level1_id'
Wei Shoulin's avatar
Wei Shoulin committed
118
data_type = 'SCI'
Wei Shoulin's avatar
docs  
Wei Shoulin committed
119
file_name = 'level1_data.fits'
120
dag_id = 'some_dag_id'
Wei Shoulin's avatar
docs  
Wei Shoulin committed
121
122
123
124
125
126
127
pmapname = 'some_pmapname'
build = 1
level0_id = 'some_level0_id'
dataset = 'default_dataset'
batch_id = 'default_batch_id'
qc1_status = 0

Wei Shoulin's avatar
Wei Shoulin committed
128
result = level1.write(local_file_path, module_id, level1_id, data_type, file_name, dag_id, pmapname, build, level0_id, dataset, batch_id, qc1_status)
Wei Shoulin's avatar
docs  
Wei Shoulin committed
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
print(result)

```

### 8. 生成流水线的处理消息

```python
from csst_dfs_client import level1
result = level1.generate_prc_msg(module_id='some_module_id', level1_id='some_level1_id', dataset='some_dataset', batch_id='some_batch_id')
print(result)
```

### 9. 通过1级数据的ID查询1级数据处理记录

```python
from csst_dfs_client import level1
result = level1.process_list(level1_id='some_level1_id')
print(result) # result.data为list类型,包含1级数据处理记录列表
```

### 10. 添加1级数据处理记录

```python
from csst_dfs_client import level1
result = level1.add_process(
      level1_id='some_level1_id', 
155
156
      dag_id='some_dag_id', 
      dag_run_id='some_dag_run_id', 
Wei Shoulin's avatar
docs  
Wei Shoulin committed
157
158
159
160
161
162
163
164
165
166
      batch_id='some_batch_id',
      dataset='default_dataset',
      prc_status=1,
      prc_time='2024-11-07 10:24:12',
      prc_module='some_function_name',
      message='some_message')
print(result)
```

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