level1.md 5.3 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
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
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
155
156
157
158
159
160
161
162
163
164
165
166
# 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**
  - 功能:添加1级数据处理记录。
  - 参数:1级数据的ID、管线ID、运行ID、数据集、批次ID、处理时间、处理状态、处理模块、处理消息。
  - 返回值:操作结果对象。

## 使用示例

### 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
result = level1.update_qc1_status(level1_id='some_level1_id', filetype='SCI', qc1_status=1, batch_id='some_batch_id')
print(result)
```

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

```python
from csst_dfs_client import level1
result = level1.update_prc_status(level1_id='some_level1_id', filetype='SCI', prc_status=1, batch_id='some_batch_id')
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'
file_type = 'SCI'
file_name = 'level1_data.fits'
pipeline_id = 'some_pipeline_id'
pmapname = 'some_pmapname'
build = 1
level0_id = 'some_level0_id'
dataset = 'default_dataset'
batch_id = 'default_batch_id'
qc1_status = 0

result = level1.write(local_file_path, module_id, level1_id, file_type, file_name, pipeline_id, pmapname, build, level0_id, dataset, batch_id, qc1_status)
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', 
      pipeline_id='some_pipeline_id', 
      run_id='some_run_id', 
      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)