From f8da0da2aa3d7beb7e4f18ea0baf77132a7e15e9 Mon Sep 17 00:00:00 2001 From: shoulinwei Date: Sat, 19 Apr 2025 17:21:29 +0800 Subject: [PATCH] mv doc and module_id to instrument --- csst_dfs_client/level0.py | 15 ++-- csst_dfs_client/level1.py | 21 ++--- csst_dfs_client/level2.py | 12 +-- docs/catalog.md | 39 --------- docs/common.md | 62 -------------- docs/level0.md | 150 ---------------------------------- docs/level1.md | 166 -------------------------------------- docs/level2.md | 110 ------------------------- docs/model.md | 133 ------------------------------ docs/plan.md | 97 ---------------------- docs/readme.md | 1 + docs/usage.md | 24 ------ tests/test_level0.py | 6 +- tests/test_level1.py | 4 +- tests/test_level2.py | 2 +- 15 files changed, 34 insertions(+), 808 deletions(-) delete mode 100644 docs/catalog.md delete mode 100644 docs/common.md delete mode 100644 docs/level0.md delete mode 100644 docs/level1.md delete mode 100644 docs/level2.md delete mode 100644 docs/model.md delete mode 100644 docs/plan.md create mode 100644 docs/readme.md delete mode 100644 docs/usage.md diff --git a/csst_dfs_client/level0.py b/csst_dfs_client/level0.py index 97b68c3..8deb07f 100644 --- a/csst_dfs_client/level0.py +++ b/csst_dfs_client/level0.py @@ -6,9 +6,10 @@ DateTimeTuple = Tuple[str, str] def find(project_id: Optional[str] = None, obs_id: Optional[str] = None, - module_id: Literal['MSC', 'IFS', 'MCI', 'HSTDM', 'CPIC'] = 'MSC', + intrument: Literal['MSC', 'IFS', 'MCI', 'HSTDM', 'CPIC'] = 'MSC', detector_no: Optional[str] = None, file_type: Optional[str] = None, + obs_type: Optional[str] = None, filter: Optional[str] = None, obs_time: Optional[DateTimeTuple] = None, create_time: Optional[DateTimeTuple] = None, @@ -28,9 +29,10 @@ def find(project_id: Optional[str] = None, Args: project_id (Optional[str], optional): 项目ID. Defaults to None. obs_id (Optional[str], optional): 观测ID. Defaults to None. - module_id (Optional[str], optional): 模块ID,如'MSC', 'IFS'. Defaults to 'MSC'. + intrument (Optional[str], optional): 设备,如'MSC', 'IFS'. Defaults to 'MSC'. detector_no (Optional[str], optional): 探测器编号. Defaults to None. file_type (Optional[str], optional): 文件类型,如'SCI'. Defaults to None. + obs_type (Optional[str], optional): 观测类型,如'01'. Defaults to None. filter (Optional[str], optional): 滤光片. Defaults to None. obs_time (Optional[DateTimeTuple], optional): 观测时间范围. Defaults to None. create_time (Optional[DateTimeTuple], optional): 创建时间范围. Defaults to None. @@ -53,9 +55,10 @@ def find(project_id: Optional[str] = None, params = { 'project_id': project_id, 'obs_id': obs_id, - 'module_id': module_id, + 'intrument': intrument, 'detector_no': detector_no, 'file_type': file_type, + 'obs_type': obs_type, 'filter': filter, 'qc0_status': qc0_status, 'prc_status': prc_status, @@ -187,7 +190,7 @@ def write_cat(local_file: str, raise FileNotFoundError(local_file) return request.post_file("/api/level0/cat/file", local_file, params) -def generate_prc_msg(module_id: Literal['MSC', 'IFS', 'MCI', 'HSTDM', 'CPIC'], +def generate_prc_msg(intrument: Literal['MSC', 'IFS', 'MCI', 'HSTDM', 'CPIC'], obs_id: str, detector_no: str, level0_id: str, @@ -197,7 +200,7 @@ def generate_prc_msg(module_id: Literal['MSC', 'IFS', 'MCI', 'HSTDM', 'CPIC'], 生成流水线的处理消息 Args: - module_id (str): 模块ID + intrument (str): 模块ID obs_id (str): 观测ID detector_no (str): 探测器编号 level0_id (str): 0级数据ID @@ -216,7 +219,7 @@ def generate_prc_msg(module_id: Literal['MSC', 'IFS', 'MCI', 'HSTDM', 'CPIC'], "level0_id": level0_id, } - return request.put(f"/api/level0/prc/{module_id}", params) + return request.put(f"/api/level0/prc/{intrument}", params) def process_list(level0_id: str) -> Result: """ diff --git a/csst_dfs_client/level1.py b/csst_dfs_client/level1.py index a9826af..fe7455c 100644 --- a/csst_dfs_client/level1.py +++ b/csst_dfs_client/level1.py @@ -7,9 +7,10 @@ DateTimeTuple = Tuple[str, str] def find(project_id: Optional[str] = None, obs_id: Optional[str] = None, level0_id: Optional[str] = None, - module_id: Literal['MSC', 'IFS', 'MCI', 'HSTDM', 'CPIC'] = 'MSC', + intrument: Literal['MSC', 'IFS', 'MCI', 'HSTDM', 'CPIC'] = 'MSC', detector_no: Optional[str] = None, data_type: Optional[str] = None, + obs_type: Optional[str] = None, filter: Optional[str] = None, obs_time: Optional[DateTimeTuple] = None, create_time: Optional[DateTimeTuple] = None, @@ -32,9 +33,10 @@ def find(project_id: Optional[str] = None, Args: project_id (Optional[str], optional): 项目ID. Defaults to None. obs_id (Optional[str], optional): 观测ID. Defaults to None. - module_id (Optional[str], optional): 模块ID,如'MSC', 'IFS'. Defaults to None. + intrument (Optional[str], optional): 模块ID,如'MSC', 'IFS'. Defaults to None. detector_no (Optional[str], optional): 探测器编号. Defaults to None. data_type (Optional[str], optional): 数据类型,如'csst-msc-l1-mbi'. Defaults to None. + obs_type (Optional[str], optional): 观测类型,如'01'. Defaults to None. filter (Optional[str], optional): 滤光片. Defaults to None. obs_time (Optional[DateTimeTuple], optional): 观测时间范围. Defaults to None. create_time (Optional[DateTimeTuple], optional): 创建时间范围. Defaults to None. @@ -61,9 +63,10 @@ def find(project_id: Optional[str] = None, 'project_id': project_id, 'level0_id': level0_id, 'obs_id': obs_id, - 'module_id': module_id, + 'intrument': intrument, 'detector_no': detector_no, 'data_type': data_type, + 'obs_type': obs_type, 'filter': filter, 'qc1_status': qc1_status, 'prc_status': prc_status, @@ -153,7 +156,7 @@ def update_prc_status(level1_id: str, data_type: str, prc_status: int, batch_id: return request.put(f"/api/level1/prc_status/{level1_id}", {'data_type': data_type, 'prc_status': prc_status, 'batch_id': batch_id}) def write(local_file: Union[IO, str], - module_id: Literal['MSC', 'IFS', 'MCI', 'HSTDM', 'CPIC'], + intrument: Literal['MSC', 'IFS', 'MCI', 'HSTDM', 'CPIC'], level1_id: str, data_type: str, file_name: str, @@ -170,7 +173,7 @@ def write(local_file: Union[IO, str], Args: local_file (Union[IO, str]): 文件路径或文件对象 - module_id ['MSC', 'IFS', 'MCI', 'HSTDM', 'CPIC']其中一个,代表: 模块ID + intrument ['MSC', 'IFS', 'MCI', 'HSTDM', 'CPIC']其中一个,代表: 模块ID level0_id (Optional[str]): 0级数据的ID默认为 None level1_id (str): 1级数据的ID data_type (str): 数据类型 @@ -187,7 +190,7 @@ def write(local_file: Union[IO, str], Result: 操作的结果对象,包含操作是否成功以及相关的错误信息,成功返回data为1级数据对象 ''' params = { - 'module_id': module_id, + 'intrument': intrument, 'level0_id': level0_id, 'level1_id': level1_id, 'data_type': data_type, @@ -210,7 +213,7 @@ def write(local_file: Union[IO, str], return request.post_file("/api/level1/file", local_file, params) return request.post_bytesio("/api/level1/file", local_file, params) -def generate_prc_msg(module_id: Literal['MSC', 'IFS', 'MCI', 'HSTDM', 'CPIC'], +def generate_prc_msg(intrument: Literal['MSC', 'IFS', 'MCI', 'HSTDM', 'CPIC'], level1_id: str, dataset: str = constants.DEFAULT_DATASET, batch_id: str = constants.DEFAULT_BATCH_ID) -> Result: @@ -218,7 +221,7 @@ def generate_prc_msg(module_id: Literal['MSC', 'IFS', 'MCI', 'HSTDM', 'CPIC'], 生成流水线的处理消息 Args: - module_id (str): 模块ID + intrument (str): 模块ID level1_id (str): 1级数据的ID dag_id (str): 流水管线ID,默认为空字符串 dataset (str): 数据集 @@ -234,7 +237,7 @@ def generate_prc_msg(module_id: Literal['MSC', 'IFS', 'MCI', 'HSTDM', 'CPIC'], 'level1_id': level1_id, } - return request.put(f"/api/level1/prc/{module_id}", params) + return request.put(f"/api/level1/prc/{intrument}", params) def process_list(level1_id: str) -> Result: """ diff --git a/csst_dfs_client/level2.py b/csst_dfs_client/level2.py index 6433b56..655b98c 100644 --- a/csst_dfs_client/level2.py +++ b/csst_dfs_client/level2.py @@ -8,7 +8,7 @@ DateTimeTuple = Tuple[str, str] def find( project_id: Optional[str] = None, obs_id: Optional[str] = None, - module_id: Literal['MSC', 'IFS', 'MCI', 'HSTDM', 'CPIC'] = 'MSC', + intrument: Literal['MSC', 'IFS', 'MCI', 'HSTDM', 'CPIC'] = 'MSC', detector_no: Optional[str] = None, data_type: Optional[str] = None, filter: Optional[str] = None, @@ -28,7 +28,7 @@ def find( Args: project_id (Optional[str], optional): 项目ID. Defaults to None. obs_id (Optional[str], optional): 观测ID. Defaults to None. - module_id (Optional[str], optional): 模块ID,如'MSC', 'IFS'. Defaults to None. + intrument (Optional[str], optional): 模块ID,如'MSC', 'IFS'. Defaults to None. detector_no (Optional[str], optional): 探测器编号. Defaults to None. data_type (Optional[str], optional): 文件类型,如'csst-msc-l2-mbi-cat'. Defaults to None. filter (Optional[str], optional): 滤光片. Defaults to None. @@ -51,7 +51,7 @@ def find( params = { 'project_id': project_id, 'obs_id': obs_id, - 'module_id': module_id, + 'intrument': intrument, 'detector_no': detector_no, 'data_type': data_type, 'filter': filter, @@ -146,7 +146,7 @@ def update_prc_status_by_file_name(file_name: str, prc_status: int, batch_id: st return request.put(f"/api/level2/prc_status/file/{file_name}", {'prc_status': prc_status, 'batch_id': batch_id}) def write(local_file: Union[IO, str], - module_id: Literal['MSC', 'IFS', 'MCI', 'HSTDM', 'CPIC'], + intrument: Literal['MSC', 'IFS', 'MCI', 'HSTDM', 'CPIC'], level2_id: str, data_type: str, file_name: str, @@ -164,7 +164,7 @@ def write(local_file: Union[IO, str], Args: local_file (Union[IO, str]): 文件路径 或 文件对象 - module_id ['MSC', 'IFS', 'MCI', 'HSTDM', 'CPIC']其中一个,代表: 模块ID + intrument ['MSC', 'IFS', 'MCI', 'HSTDM', 'CPIC']其中一个,代表: 模块ID level2_id (str): 2级数据的ID data_type (str): 数据类型,如'csst-msc-l2-mbi-cat' file_name (str): 2级数据文件名 @@ -184,7 +184,7 @@ def write(local_file: Union[IO, str], """ params = { - 'module_id': module_id, + 'intrument': intrument, 'level0_id': level0_id, 'level1_id': level1_id, 'level2_id': level2_id, diff --git a/docs/catalog.md b/docs/catalog.md deleted file mode 100644 index e35e5fa..0000000 --- a/docs/catalog.md +++ /dev/null @@ -1,39 +0,0 @@ -# 星表数据查询 - -## 概述 - -`csst_dfs_client.catalog` 模块提供了一个 `search` 函数,用于根据给定的参数,使用锥形检索指定范围内的天体数据。 - -## 使用示例 - -```python -from csst_dfs_client import catalog - -# 查询参数 -ra = 90 # 天体赤经(以度为单位) -dec = 24.5 # 天体赤纬(以度为单位) -radius = 0.21 # 查询半径(以度为单位) -catalog_name = 'gaia3' # 星表名称 -columns = ['ref_epoch', 'ra', 'ra_error', 'dec', 'dec_error', 'parallax', 'parallax_error', 'pmra', 'pmra_error', 'pmdec', 'pmdec_error', 'phot_g_mean_mag', 'source_id'] # 查询的列名 -min_mag = -1 # 最小星等,默认为 -1(无限制) -max_mag = -1 # 最大星等,默认为 -1(无限制) -obstime = -1 # 观测时间,默认为 0(暂无用) -limit = 10 # 查询结果的数量限制,默认为 0(无限制) - -# 调用 search 函数进行查询 -result = catalog.search(ra=ra, - dec=dec, - radius=radius, - catalog_name=catalog_name, - columns=columns, - min_mag=min_mag, - max_mag=max_mag, - obstime=obstime, - limit=limit - ) -# 打印查询结果 -print(result.data) #result.data为pd.DataFrame对象 -``` - -- [其他接口](./usage.md) - \ No newline at end of file diff --git a/docs/common.md b/docs/common.md deleted file mode 100644 index 9ee4bcd..0000000 --- a/docs/common.md +++ /dev/null @@ -1,62 +0,0 @@ -# 通用接口使用说明 - -## 概述 - -该模块包含了从指定路径下载文件、读取文件、获取文件头信息的函数。 - -## 函数列表 - -1. **download_file** - - 功能: 从指定路径下载文件。 - - 参数: 文件相对路径。 - - 返回值:字节。 - -2. **read_file** - - 功能: 读取指定路径的文件。 - - 参数: 文件相对路径。 - - 返回值:io.BytesIO。 - -3. **get_free_header** - - 功能: 获取指定文件路径的文件头信息。 - - 参数: 文件相对路径。 - - 返回值:dict。 - -## 示例 - -### 1. `download_file` 函数 - -```python -from csst_dfs_client import download_file - -try: - file_content = download_file("path/to/your/file") - print(type(file_content)) -except AppError as e: - print(f"Error: {e}") -``` - -### 2. `read_file` 函数 - -```python -from csst_dfs_client import read_file - -try: - file_io = read_file("path/to/your/file.txt") - print(file_io.getvalue()) -except AppError as e: - print(f"Error: {e}") -``` - -### 3. `get_free_header` 函数 - -```python -from csst_dfs_client import get_free_header - -try: - header_info = get_free_header("path/to/your/file.txt") - print(header_info) -except AppError as e: - print(f"Error: {e}") -``` - -- [其他接口](./usage.md) diff --git a/docs/level0.md b/docs/level0.md deleted file mode 100644 index 3bebd0d..0000000 --- a/docs/level0.md +++ /dev/null @@ -1,150 +0,0 @@ -# 0级数据接口使用说明 - -## 概述 - -0级数据接口模块是 `csst_dfs_client.level0`。该模块包含了搜索0级数据文件记录、将本地文件写入DFS等功能的函数。 - -## 函数列表 - -1. **find** - - 功能:根据给定的参数搜索0级数据文件记录。 - - 参数:包括项目ID、观测ID、模块ID、探测器编号、文件类型、滤光片、观测时间范围、创建时间范围等。 - - 返回值:搜索结果对象。 - -2. **get_by_id** - - 功能:通过0级数据内部ID获取对应的0级数据文件记录。 - - 参数:0级数据内部ID。 - - 返回值:查询结果对象。 - -3. **find_by_level0_id** - - 功能:通过0级数据ID获取对应的0级数据文件记录。 - - 参数:0级数据ID。 - - 返回值:查询结果对象。 - -4. **update_qc0_status** - - 功能:更新0级数据的QC0状态。 - - 参数:0级数据ID、文件类型、QC0状态、数据集名称(可选)。 - - 返回值:操作结果对象,包含操作是否成功以及相关的错误信息。 - -5. **update_prc_status** - - 功能:更新0级数据的处理状态。 - - 参数:0级数据ID、文件类型、处理状态、数据集名称(可选)。 - - 返回值:操作结果对象,包含操作是否成功以及相关的错误信息。 - -6. **write** - - 功能:将本地文件写入DFS中。 - - 参数:本地文件路径、数据集名称(可选)、其他可选的关键字参数。 - - 返回值:操作结果对象,包含操作是否成功以及相关的错误信息。 - -7. **write_cat** - - 功能:将主巡天仿真数据的星表本地文件写入DFS中。 - - 参数:本地文件路径、数据集名称(可选)、其他可选的关键字参数。 - - 返回值:操作结果对象,包含操作是否成功以及相关的错误信息。 - -8. **process_list** - - 功能:通过0级数据ID获取对应的0级数据处理记录。 - - 参数:0级数据ID。 - - 返回值:查询结果对象。 - -9. **add_process** - - 功能:添加0级数据处理记录。 - - 参数:0级数据ID、管线ID、运行ID、数据集名称(可选) - - 返回值:操作结果对象,包含操作是否成功以及相关的错误信息。 - -## 使用示例 - -### 1.搜索0级数据文件记录 - -```python -from csst_dfs_client import level0 - -# 搜索0级数据文件记录 -result = level0.find(obs_id='some_obs_id', module_id='MSC', page=1, limit=10) -print(result) # result.data为list类型,包含0级数据文件记录列表 -``` - -### 2. 通过0级数据内部ID获取对应的0级数据文件记录 - -```python -from csst_dfs_client import level0 -result = level0.get_by_id(_id='some_internal_id') -print(result) # result.data为0级数据文件单条记录 -``` - -### 3. 通过0级数据ID获取对应的0级数据 - -```python - -from csst_dfs_client import level0 -result = level0.find_by_level0_id(level0_id='some_level0_id') -print(result) # result.data为list类型,包含0级数据的列表 -``` - -### 4. 更新0级数据的QC0状态 - -```python -from csst_dfs_client import level0 -result = level0.update_qc0_status(level0_id='some_level0_id', file_type='SCI', qc0_status=1) -print(result) -``` - -### 5. 更新0级数据的处理状态 - -```python -from csst_dfs_client import level0 -result = level0.update_prc_status(level0_id='some_level0_id', file_type='SCI', prc_status=1, dag_run_id='some_dag_run_id', dataset='dataset_name') -print(result) -``` - -### 6.将本地文件写入DFS - -```python -from csst_dfs_client import level0 - -# 将本地文件写入DFS -local_file_path = 'path/to/your/level0_data.fits' -dataset = 'default_dataset' # 可选参数,默认为None -result = level0.write(local_file_path, dataset=dataset) -print(result) -``` - -### 7.将主巡天仿真数据的星表本地文件写入DFS - -```python -from csst_dfs_client import level0 - -# 将主巡天仿真数据的星表本地文件写入DFS -local_catalog_file_path = 'path/to/your/catalog.cat' -dataset = 'default_dataset' # 可选参数,默认为None -result = level0.write_cat(local_catalog_file_path, dataset=dataset) -print(result) -``` - -### 8. 通过0级数据ID获取对应的0级数据处理记录 - -```python -from csst_dfs_client import level0 -result = level0.process_list(level0_id='some_level0_id') -print(result)# result.data为list类型,包含0级数据处理记录列表 - -``` - -### 9. 添加0级数据处理记录 - -```python - -from csst_dfs_client import level0 -result = level0.add_process( - level0_id='some_level0_id', - dag_id='some_dag_id', - dag_run_id='some_dag_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) diff --git a/docs/level1.md b/docs/level1.md deleted file mode 100644 index b40f7d5..0000000 --- a/docs/level1.md +++ /dev/null @@ -1,166 +0,0 @@ -# 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', data_type='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', data_type='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' -data_type = 'SCI' -file_name = 'level1_data.fits' -dag_id = 'some_dag_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, data_type, file_name, dag_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', - dag_id='some_dag_id', - dag_run_id='some_dag_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) diff --git a/docs/level2.md b/docs/level2.md deleted file mode 100644 index 78b367e..0000000 --- a/docs/level2.md +++ /dev/null @@ -1,110 +0,0 @@ -# 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='csst-msc-l2-mbi', 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='csst-msc-l2-mbi', 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' -data_type = 'csst-msc-l2-mbi-cat' -file_name = 'level2_data.fits' -dag_id = 'some_dag_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, data_type, file_name, dag_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) diff --git a/docs/model.md b/docs/model.md deleted file mode 100644 index fd4f7a3..0000000 --- a/docs/model.md +++ /dev/null @@ -1,133 +0,0 @@ -# DFS数据模型 - -## 0级数据 - -| 列名 | 类型 | 说明 | -|------------|-------------------------|-------------------| -| level0_id | str | 0级数据的ID | -| project_id | str | Project的ID | -| obs_id | str | 观测的ID | -| detector_no | str | 探测器的编号 | -| file_type | str | 观测文件的类型 | -| module_id | str | 模块的ID | -| filter | str | 滤光片 | -| obs_time | datetime | 观测时间 | -| exp_start | float | 曝光开始时间) | -| exp_time | float | 曝光时间 | -| file_name | str | 文件名 | -| file_path | str | 文件路径 | -| file_size | int | 文件大小(以字节为单位) | -| qc0_status | int | QC0状态 | -| qc0_time | datetime | QC0时间 | -| prc_status | int | 处理状态,默认为-1024未处理 | -| prc_time | datetime | 处理时间 | -| dataset | str | 数据集标识 | -| create_time | datetime | 创建时间 | - -**附加的头部信息**:('RA_OBJ', 'DEC_OBJ', 'CRPIX1', 'CRPIX2', 'CRVAL1', 'CRVAL2', 'CTYPE1', 'CTYPE2', 'CD1_1', 'CD1_2', 'CD2_1', 'CD2_2', 'FILTER', 'OBJECT') - -## 0级数据处理记录 - -| 列名 | 类型 | 说明 | -|------------|-------------------------|----------------------| -| level0_id | str | 0级数据的ID | -| dag_id | str | 流水线的ID | -| dag_run_id | str | run ID | -| batch_id | str | 批次ID | -| dataset | str | 数据集标识 | -| prc_status | int | 处理状态 | -| prc_time | datetime | 处理时间 | -| prc_module | str | 处理模块 | -| message | str | 消息 | - -## 1级数据 - -| 列名 | 类型 | 说明 | -|-------------|-------------------------|---------------------| -| project_id | str | 项目ID | -| level0_id | str | 0级数据ID | -| level1_id | str | 1级数据ID | -| obs_id | str | 观测ID | -| detector_no | str | 探测器编号 | -| data_type | str | 数据类型 | -| module_id | str | 模块ID | -| filter | str | 滤光片 | -| obs_time | datetime | 观测时间 | -| file_name | str | 文件名称 | -| file_path | str | 文件路径 | -| file_size | int | 文件大小 | -| qc1_status | int | QC1状态,默认为0 | -| qc1_time | datetime | QC1的时间 | -| prc_status | int | 处理状态,默认为-1024未处理 | -| prc_time | datetime | 处理时间 | -| dag_id | str | 处理管线ID | -| pmapname | str | ccds pmap的名称 | -| build | int | 构建版本编号 | -| dag_run_id | str | 运行ID | -| batch_id | str | 运行批次ID | -| dataset | str | 数据集标识 | -| create_time | datetime | 创建时间 | - -**附加的头部信息**: - -这里按模块区分,每个模块有其对应的头部信息: - -'MSC': ('FILTER','RA_OBJ','DEC_OBJ','V_WCS','T_WCS','S_WCS','WCSAXE','CTYPE1','CTYPE2','CUNIT1','CUNIT2','CRVAL1','CRVAL2','CRPIX1','CRPIX2','CD1_1','CD1_2','CD2_1','CD2_2','PV1_0','PV1_1','PV1_2','PV1_3','PV1_4','PV1_5','PV1_6','PV1_7','PV1_8','PV1_9','PV1_10','PV1_11','PV1_12','PV1_13','PV1_14','PV1_15','PV1_16','PV1_17','PV1_18','PV1_19','PV1_20','PV1_21','PV1_22','PV1_23','PV2_0','PV2_1','PV2_2','PV2_3','PV2_4','PV2_5','PV2_6','PV2_7','PV2_8','PV2_9','PV2_10','PV2_11','PV2_12','PV2_13','PV2_14','PV2_15','PV2_16','PV2_17','PV2_18','PV2_19','PV2_20','PV2_21','PV2_22','PV2_23','RA_CEN','DEC_CEN','ASTRMED1','ASTRMED2','ASTRRMS1','ASTRRMS2','NS_WCS','EQUINOX','NAXIS','NAXIS1','NAXIS2','RADECSYS','MIN_RA','MAX_RA','MIN_DEC','MAX_DEC','BRICK_ID', -'RADESYS','AST_IMC','AST_REF','BIAS_RA','STD_RA','BIAS_DEC','STD_DEC','OFF_PIS','MAT_STA','M_R_RAT') - -'IFS': ('RA_OBJ', 'DEC_OBJ', 'OBJECT', 'RSS_VER', 'PROCESS','DATE_PROC', 'OBJ_ID', 'CUBE_VER', 'WCS_VER', 'FILE_VER', 'CTYPE3', 'NEXP', 'EXP_TIME'), - -'MCI': ('RA_OBJ', 'DEC_OBJ', 'OBJECT'), - -'CPIC': ('RA_OBJ', 'DEC_OBJ', 'OBJECT'), - -'HSTDM': ('RA_OBJ', 'DEC_OBJ', 'OBJECT') - -## 1级数据处理记录 - -| 列名 | 类型 | 说明 | -|------------|-------------------------|----------------| -| level1_id | str | 1级数据的ID | -| dag_id | str | 流水线的ID | -| dag_run_id | str | run的ID | -| dataset | str | 数据集 | -| batch_id | str | 批次ID | -| prc_status | int | 处理状态 | -| prc_time | datetime | 处理时间 | -| prc_module | str | 处理模块 | -| message | str | 消息 | - -## 2级数据 - -| 列名 | 类型 | 说明 | -|-------------|-------------------------|--------------------| -| project_id | str | 项目ID | -| level0_id | str | 0级数据ID | -| level1_id | str | 1级数据ID | -| level2_id | str | 2级数据ID | -| brick_id | int | 天区ID | -| obs_id | str | 观测ID | -| detector_no | str | 探测器编号 | -| data_type | str | 数据的类型 | -| module_id | str | 模块ID | -| filter | str | 滤光片 | -| obs_time | datetime | 观测时间 | -| file_name | str | 文件的名称 | -| file_path | str | 文件在文件系统中的路径 | -| file_size | int | 文件的大小(以字节为单位) | -| qc2_status | int | QC2状态,默认为0 | -| qc2_time | datetime | QC2时间 | -| prc_status | int | 处理状态,默认为-1024 | -| prc_time | datetime | 数据处理时间 | -| dag_id | str | 处理管道ID | -| build | int | 软件构建版本的编号 | -| dag_run_id | str | 运行ID | -| dataset | str | 数据集标识 | -| batch_id | str | 批次ID | -| create_time | datetime | 创建的时间 | - -**注释**: -暂无其他信息 - - -- [接口](./usage.md) diff --git a/docs/plan.md b/docs/plan.md deleted file mode 100644 index d2a1f56..0000000 --- a/docs/plan.md +++ /dev/null @@ -1,97 +0,0 @@ -# CSST-DFS 编排接口使用说明 - -## 概述 - -编排接口模块是 `csst_dfs_client.plan` ,用于与DFS(分布式文件系统)中的编排(plan)数据进行交互。该模块用于搜索、获取、写入和新建编排数据。 - -## 函数列表 - -1. **find** - - 功能:根据给定的参数在DFS中搜索编排数据。 - - 参数:包括观测模式、观测ID、后端模块ID等。 - - 返回值:搜索结果对象。 - -2. **get_by_id** - - 功能:通过编排ID获取对应的编排数据。 - - 参数:编排ID。 - - 返回值:查询结果对象。 - -3. **find_by_opid** - - 功能:通过编排的opid查询对应的编排数据。 - - 参数:opid。 - - 返回值:查询结果对象。 - -4. **write_file** - - 功能:将本地的JSON文件或JSON数据流写入DFS中。 - - 参数:本地文件路径或文件对象,以及其他可选的关键字参数。 - - 返回值:操作结果对象。 - -5. **new** - - 功能:新建编排数据。 - - 参数:编排数据的字典表示。 - - 返回值:操作结果对象。 - -## 使用示例 - -以下是一些使用 `plan` 模块的示例代码。 - -### 1. 搜索编排数据 - -```python -from csst_dfs_client import plan - -# 搜索编排数据 -result = plan.find(mode='SCIENCE', backend='MSC', page=1, limit=10) -print(result) -``` - -### 2. 通过编排数据中的ID获取编排数据 - -```python -from csst_dfs_client import plan - -# 通过编排ID获取编排数据 -_id = 12345 -result = plan.get_by_id(_id) -print(result) -``` - -### 3. 通过编排数据中的opid查询编排数据 - -```python -from csst_dfs_client import plan - -# 通过opid查询编排数据 -opid = 'some_opid' -result = plan.find_by_opid(opid) -print(result) -``` - -### 4. 批量写入编排的JSON数据到DFS - -```python -from csst_dfs_client import plan - -# 写入编排数据到DFS -local_file_path = '/path/to/your/plan_data.json' -result = plan.write_file(local_file_path) -print(result) -``` - -### 5. 写入单条编排数据 - -```python -from csst_dfs_client import plan - -# 写入单条编排数据 -plan_data = { - 'id': 67890, - 'opid': 'new_opid', - 'backend': 'MSC', - # 其他编排数据字段 -} -result = plan.new(plan_data) -print(result) -``` - -- [其他接口](./usage.md) diff --git a/docs/readme.md b/docs/readme.md new file mode 100644 index 0000000..996dfee --- /dev/null +++ b/docs/readme.md @@ -0,0 +1 @@ +[Pipeline Docs](https://csst-tb.bao.ac.cn/pipeline/devops/dfs/index.html) \ No newline at end of file diff --git a/docs/usage.md b/docs/usage.md deleted file mode 100644 index 7ca814d..0000000 --- a/docs/usage.md +++ /dev/null @@ -1,24 +0,0 @@ -# CSST DFS数据服务客户端 - -## 安装与配置 - -- [安装与配置](../README.md) - -## 使用说明 - -- [通用方法](./common.md) -- [0级数据](./level0.md) -- [1级数据](./level1.md) -- [2级数据](./level2.md) -- [星表数据](./catalog.md) -- [编排数据](./plan.md) - -## 返回数据 - -所有接口的返回数据为csst_dfs_client.common.Result对象 - -Result包含3个属性 - -- success (bool): True表示成功,False表示失败。 -- message (str): 错误信息(如果失败)。 -- data (any): 数据(如果成功)。 diff --git a/tests/test_level0.py b/tests/test_level0.py index 572fb92..ea0317b 100644 --- a/tests/test_level0.py +++ b/tests/test_level0.py @@ -9,10 +9,10 @@ class Level0TestCase(unittest.TestCase): def test_find(self): start_time = time.time() - result = level0.find(module_id='MSC', dataset="msc-v093") + result = level0.find(intrument='MSC', dataset="msc-v093") print(f"1操作执行时间: {time.time() - start_time} 秒") start_time = time.time() - result = level0.find(module_id='MSC', + result = level0.find(intrument='MSC', ra_obj = 170, dec_obj = -24, radius = 1) @@ -48,7 +48,7 @@ class Level0TestCase(unittest.TestCase): def test_generate_prc_message(self): result = level0.generate_prc_msg( - module_id='MSC', + intrument='MSC', level0_id="1060940003452930", obs_id="10609400034529", detector_no="30") diff --git a/tests/test_level1.py b/tests/test_level1.py index 8c0a43f..b8183ec 100644 --- a/tests/test_level1.py +++ b/tests/test_level1.py @@ -8,7 +8,7 @@ class Level1TestCase(unittest.TestCase): pass def test_find(self): - result = level1.find(module_id='MSC', obs_time=("2024-01-01 12:12:12", "2024-06-30 12:12:12"), dataset='msc-v093') + result = level1.find(intrument='MSC', obs_time=("2024-01-01 12:12:12", "2024-06-30 12:12:12"), dataset='msc-v093') print(result) self.assertEqual(result.code, 200, "error code: " + str(result.code)) self.assertIsNotNone(result.data, "error message: " + result.message) @@ -40,7 +40,7 @@ class Level1TestCase(unittest.TestCase): # file_path = BytesIO(file.read()) result = level1.write(local_file = file_path, - module_id = "MSC", + intrument = "MSC", level0_id="1010910015799127", level1_id = "1010910015799127", dag_id = "csst-msc-l1-mbi", diff --git a/tests/test_level2.py b/tests/test_level2.py index b30392a..897f711 100644 --- a/tests/test_level2.py +++ b/tests/test_level2.py @@ -42,7 +42,7 @@ class Level2TestCase(unittest.TestCase): def test_write(self): file_path = "/Users/wsl/temp/csst/import/CSST_MSC_MS_SCI_20310423084104_20310423084334_10109400638867_12_L2_V01_CATMIX.fits" result = level2.write(local_file = file_path, - module_id = "MSC", + intrument = "MSC", level0_id="1010940063886712", level1_id = "1010940063886712", level2_id = "1010940063886712", -- GitLab