Loading Makefile +8 −5 Original line number Diff line number Diff line all: git pull rm -rf ./build pip install . --no-deps --force-reinstall #git pull rm -rf build csst_dag.egg-info pip install -e . install: rm -rf ./build rm -rf build csst_dag.egg-info pip install . --no-deps --force-reinstall pull: Loading @@ -13,3 +13,6 @@ pull: compile: uv pip compile pyproject.toml -o requirements.txt rsync_zjlab: rsync -avrP . zjlab-harbor:/mnt/csst-dag No newline at end of file README.md +61 −115 Original line number Diff line number Diff line # `csst-dag` # Change log - [2025-09-15] 旧版csst-dag命令行工具安装方式 - `pip install git+https://csst-tb.bao.ac.cn/code/csst-cicd/csst-dag.git@7a0108f3 --force-reinstall` - [2025-09-09] csst-dag将被封装为Docker镜像,原有的基于`python -m csst_dag.cli`的命令行调用方式将被放弃 # Usages 运行之前,需要确定一个本地的 `.csst` 文件夹。 在 `.bashrc` 中加入以下代码 [//]: # (--pull=always) ```shell # 确定本地 .csst 文件夹路径 export DOT_CSST=~/.csst # 用自定义命令 alias csst='docker run --rm -v ${DOT_CSST}:/pipeline/app/.csst csu-harbor.csst.nao:10443/csst/csst-dag csst' ``` 使 `DOT_CSST` 和 `csst` 命令生效: ```shell source ~/.bashrc # or source ~/.zshrc ``` 创建 `.csst` 文件夹: ```shell # 创建`.csst`文件夹 mkdir -p ${DOT_CSST} ``` 测试 `csst` 命令是否可以执行: ```shell # 执行命令 csst --help # 查看版本 csst --version ``` 更新: ```shell docker pull csu-harbor.csst.nao:10443/csst/csst-dag:latest ``` 主要有以下几个命令组 - `csst env`: 预设环境变量 - `csst plan`: 编排数据查询 - `csst plan --obs-group=111` - `csst plan --dataset=111 --stats=obs_group --to-json` - `csst dag`: DAG任务操作 - `csst dag start --dataset=xxx --batch-id=xxx` - `csst dag cancel --dataset=xxx --batch-id=xxx` (需要Scalebox、DFS支持) - `csst dag status --dataset=xxx --batch-id=xxx` (需要Scalebox、DFS支持) - `csst dag logs --dataset=xxx --batch-id=xxx --status=0` (需要Scalebox、DFS支持) - `csst file`: 原始数据查询 - `csst data --data-model=raw --obs-id=10100000001 --stats=obs_group` - 查询原始数据,并按照obs_group进行统计 - `csst data --data-model=csst-msc-l1-mbi --obs-id=10100000001 --stats=obs_group` --output=json - 查询数据产品,并按照obs_group进行统计 - `csst catalog` DFS星表查询 - `csst catalog list` 列出可用的星表 - `csst catalog show --name=trilegal` 列出指定星表的具体信息 - `csst ccds`: CCDS - `csst ccds pmap?` ## 1. `csst env` 环境变量 ```shell # 1. 查看所有预定义环境变量 csst env list # 2. 查看环境变量 csst env show --name csu # 3. 保存环境变量到文件 预设name csst env set --name csu ``` ## 2. ``csst plan`` ```shell # 1. 查看编排数据 csst plan \ --dataset=csst-msc-c9-25sqdeg-v3 \ --instrument=MSC \ --obs-type=WIDE \ --obs-group=W1 \ --obs-id=10100232366 ``` ## ``csst dag`` ```shell 1. 发起任务 csst dag run **kwargs # 发起任务 2. 查看任务状态(批量) csst dag status **kwargs # 查看任务状态 3. 查看任务日志(批量和单个) csst dag log **kwargs # 查看任务日志 4. 取消任务(按条件批量取消,按任务ID取消,或者取消所有) csst dag cancel **kwargs # 取消任务 5. 0级数据查看 csst data --data-model=raw **kwargs # 查看原始数据 6. 数据产品查看 (可能要区分DFS1/2) csst data --data-model=csst-msc-l1-mbi **kwargs # 查看产品数据 # TODO: 增加一个--stats命令/选项,按照某些列来统计数据产品 # TODO: 增加一个--print-columns命令/选项,打印数据产品的列名 ```python from csst_dag import CSST_DAGS # define parameters test_kwargs = dict( dataset="csst-msc-c9-25sqdeg-v3", instrument="MSC", obs_type="WIDE", obs_group="W1", obs_id="10100100412", proposal_id=None, prc_status=-1024, ) # get DAG dag = CSST_DAGS.get("csst-msc-l1-mbi") # run with parameters dag_group_run, dag_run_list = dag.run( **test_kwargs, extra_kwargs={"a": 1}, ) # `dag_group_run` is a dict containing information of the DAG group run print(dag_group_run) # {'dag_group': 'default-dag-group', 'dag_group_run': 'b4352fdbc465fa81919176febd5a663a014a7f7f', 'batch_id': 'default-batch', 'priority': 1, 'created_time': '2025-09-22T06:39:29.077'} # `dag_run_list` is a list[dict], whose elements are `dag_run`s for dag_run in dag_run_list: print(dag_run) # {'dataset': 'csst-msc-c9-25sqdeg-v3', 'instrument': 'MSC', 'obs_type': 'WIDE', 'obs_group': 'W1', 'obs_id': '10100100412', 'detector': '06', 'filter': '', 'custom_id': '', 'batch_id': 'default-batch', 'pmapname': '', 'ref_cat': '', 'dag_group': 'default-dag-group', 'dag': 'csst-msc-l1-mbi', 'dag_group_run': 'b4352fdbc465fa81919176febd5a663a014a7f7f', 'dag_run': '7a81164c505efb9a13a7da166a6ad940df713238', 'priority': 1, 'data_list': [], 'extra_kwargs': {'a': 1}, 'created_time': '2025-09-22T06:39:29.077', 'rerun': -1, 'status_code': -1024, 'n_file_expected': 1, 'n_file_found': 1, 'object': '', 'proposal_id': ''} # {'dataset': 'csst-msc-c9-25sqdeg-v3', 'instrument': 'MSC', 'obs_type': 'WIDE', 'obs_group': 'W1', 'obs_id': '10100100412', 'detector': '07', 'filter': '', 'custom_id': '', 'batch_id': 'default-batch', 'pmapname': '', 'ref_cat': '', 'dag_group': 'default-dag-group', 'dag': 'csst-msc-l1-mbi', 'dag_group_run': 'b4352fdbc465fa81919176febd5a663a014a7f7f', 'dag_run': '7c22456c7a844dc165d095361089078a9c5f70c9', 'priority': 1, 'data_list': [], 'extra_kwargs': {'a': 1}, 'created_time': '2025-09-22T06:39:29.077', 'rerun': -1, 'status_code': -1024, 'n_file_expected': 1, 'n_file_found': 1, 'object': '', 'proposal_id': ''} # {'dataset': 'csst-msc-c9-25sqdeg-v3', 'instrument': 'MSC', 'obs_type': 'WIDE', 'obs_group': 'W1', 'obs_id': '10100100412', 'detector': '08', 'filter': '', 'custom_id': '', 'batch_id': 'default-batch', 'pmapname': '', 'ref_cat': '', 'dag_group': 'default-dag-group', 'dag': 'csst-msc-l1-mbi', 'dag_group_run': 'b4352fdbc465fa81919176febd5a663a014a7f7f', 'dag_run': 'b2a57d47fb8497690e7e2629699adc414ce1321a', 'priority': 1, 'data_list': [], 'extra_kwargs': {'a': 1}, 'created_time': '2025-09-22T06:39:29.077', 'rerun': -1, 'status_code': -1024, 'n_file_expected': 1, 'n_file_found': 1, 'object': '', 'proposal_id': ''} # {'dataset': 'csst-msc-c9-25sqdeg-v3', 'instrument': 'MSC', 'obs_type': 'WIDE', 'obs_group': 'W1', 'obs_id': '10100100412', 'detector': '09', 'filter': '', 'custom_id': '', 'batch_id': 'default-batch', 'pmapname': '', 'ref_cat': '', 'dag_group': 'default-dag-group', 'dag': 'csst-msc-l1-mbi', 'dag_group_run': 'b4352fdbc465fa81919176febd5a663a014a7f7f', 'dag_run': '45d6262e3974006f227101c7e44e70a58ddfbbf1', 'priority': 1, 'data_list': [], 'extra_kwargs': {'a': 1}, 'created_time': '2025-09-22T06:39:29.077', 'rerun': -1, 'status_code': -1024, 'n_file_expected': 1, 'n_file_found': 1, 'object': '', 'proposal_id': ''} # {'dataset': 'csst-msc-c9-25sqdeg-v3', 'instrument': 'MSC', 'obs_type': 'WIDE', 'obs_group': 'W1', 'obs_id': '10100100412', 'detector': '11', 'filter': '', 'custom_id': '', 'batch_id': 'default-batch', 'pmapname': '', 'ref_cat': '', 'dag_group': 'default-dag-group', 'dag': 'csst-msc-l1-mbi', 'dag_group_run': 'b4352fdbc465fa81919176febd5a663a014a7f7f', 'dag_run': 'd54c44a8522187b2fdadf68b1877cde1d068c2db', 'priority': 1, 'data_list': [], 'extra_kwargs': {'a': 1}, 'created_time': '2025-09-22T06:39:29.077', 'rerun': -1, 'status_code': -1024, 'n_file_expected': 1, 'n_file_found': 1, 'object': '', 'proposal_id': ''} # {'dataset': 'csst-msc-c9-25sqdeg-v3', 'instrument': 'MSC', 'obs_type': 'WIDE', 'obs_group': 'W1', 'obs_id': '10100100412', 'detector': '12', 'filter': '', 'custom_id': '', 'batch_id': 'default-batch', 'pmapname': '', 'ref_cat': '', 'dag_group': 'default-dag-group', 'dag': 'csst-msc-l1-mbi', 'dag_group_run': 'b4352fdbc465fa81919176febd5a663a014a7f7f', 'dag_run': '89c4658ab0e6b5115d7991b17cb91b0d78777f83', 'priority': 1, 'data_list': [], 'extra_kwargs': {'a': 1}, 'created_time': '2025-09-22T06:39:29.077', 'rerun': -1, 'status_code': -1024, 'n_file_expected': 1, 'n_file_found': 1, 'object': '', 'proposal_id': ''} # {'dataset': 'csst-msc-c9-25sqdeg-v3', 'instrument': 'MSC', 'obs_type': 'WIDE', 'obs_group': 'W1', 'obs_id': '10100100412', 'detector': '13', 'filter': '', 'custom_id': '', 'batch_id': 'default-batch', 'pmapname': '', 'ref_cat': '', 'dag_group': 'default-dag-group', 'dag': 'csst-msc-l1-mbi', 'dag_group_run': 'b4352fdbc465fa81919176febd5a663a014a7f7f', 'dag_run': 'c1b9273eafed4fdbac5e26c7b46110bebcd901ec', 'priority': 1, 'data_list': [], 'extra_kwargs': {'a': 1}, 'created_time': '2025-09-22T06:39:29.077', 'rerun': -1, 'status_code': -1024, 'n_file_expected': 1, 'n_file_found': 1, 'object': '', 'proposal_id': ''} # {'dataset': 'csst-msc-c9-25sqdeg-v3', 'instrument': 'MSC', 'obs_type': 'WIDE', 'obs_group': 'W1', 'obs_id': '10100100412', 'detector': '14', 'filter': '', 'custom_id': '', 'batch_id': 'default-batch', 'pmapname': '', 'ref_cat': '', 'dag_group': 'default-dag-group', 'dag': 'csst-msc-l1-mbi', 'dag_group_run': 'b4352fdbc465fa81919176febd5a663a014a7f7f', 'dag_run': '7a7237e135c8eb6aba622d1ef8ac74c2cecb4a77', 'priority': 1, 'data_list': [], 'extra_kwargs': {'a': 1}, 'created_time': '2025-09-22T06:39:29.077', 'rerun': -1, 'status_code': -1024, 'n_file_expected': 1, 'n_file_found': 1, 'object': '', 'proposal_id': ''} # {'dataset': 'csst-msc-c9-25sqdeg-v3', 'instrument': 'MSC', 'obs_type': 'WIDE', 'obs_group': 'W1', 'obs_id': '10100100412', 'detector': '15', 'filter': '', 'custom_id': '', 'batch_id': 'default-batch', 'pmapname': '', 'ref_cat': '', 'dag_group': 'default-dag-group', 'dag': 'csst-msc-l1-mbi', 'dag_group_run': 'b4352fdbc465fa81919176febd5a663a014a7f7f', 'dag_run': '42a25ecac49b1adb89b8c154a96a1443a9fc9ccc', 'priority': 1, 'data_list': [], 'extra_kwargs': {'a': 1}, 'created_time': '2025-09-22T06:39:29.077', 'rerun': -1, 'status_code': -1024, 'n_file_expected': 1, 'n_file_found': 1, 'object': '', 'proposal_id': ''} # {'dataset': 'csst-msc-c9-25sqdeg-v3', 'instrument': 'MSC', 'obs_type': 'WIDE', 'obs_group': 'W1', 'obs_id': '10100100412', 'detector': '16', 'filter': '', 'custom_id': '', 'batch_id': 'default-batch', 'pmapname': '', 'ref_cat': '', 'dag_group': 'default-dag-group', 'dag': 'csst-msc-l1-mbi', 'dag_group_run': 'b4352fdbc465fa81919176febd5a663a014a7f7f', 'dag_run': 'c7b6a5d88edb2ec001ceade7cf168bd64c5279f9', 'priority': 1, 'data_list': [], 'extra_kwargs': {'a': 1}, 'created_time': '2025-09-22T06:39:29.077', 'rerun': -1, 'status_code': -1024, 'n_file_expected': 1, 'n_file_found': 1, 'object': '', 'proposal_id': ''} # {'dataset': 'csst-msc-c9-25sqdeg-v3', 'instrument': 'MSC', 'obs_type': 'WIDE', 'obs_group': 'W1', 'obs_id': '10100100412', 'detector': '17', 'filter': '', 'custom_id': '', 'batch_id': 'default-batch', 'pmapname': '', 'ref_cat': '', 'dag_group': 'default-dag-group', 'dag': 'csst-msc-l1-mbi', 'dag_group_run': 'b4352fdbc465fa81919176febd5a663a014a7f7f', 'dag_run': '126a382659b205a2523364e0a90e96f78ea96d99', 'priority': 1, 'data_list': [], 'extra_kwargs': {'a': 1}, 'created_time': '2025-09-22T06:39:29.077', 'rerun': -1, 'status_code': -1024, 'n_file_expected': 1, 'n_file_found': 1, 'object': '', 'proposal_id': ''} # {'dataset': 'csst-msc-c9-25sqdeg-v3', 'instrument': 'MSC', 'obs_type': 'WIDE', 'obs_group': 'W1', 'obs_id': '10100100412', 'detector': '18', 'filter': '', 'custom_id': '', 'batch_id': 'default-batch', 'pmapname': '', 'ref_cat': '', 'dag_group': 'default-dag-group', 'dag': 'csst-msc-l1-mbi', 'dag_group_run': 'b4352fdbc465fa81919176febd5a663a014a7f7f', 'dag_run': 'da71a90621728cbf263247a1ae92827e13041717', 'priority': 1, 'data_list': [], 'extra_kwargs': {'a': 1}, 'created_time': '2025-09-22T06:39:29.077', 'rerun': -1, 'status_code': -1024, 'n_file_expected': 1, 'n_file_found': 1, 'object': '', 'proposal_id': ''} # {'dataset': 'csst-msc-c9-25sqdeg-v3', 'instrument': 'MSC', 'obs_type': 'WIDE', 'obs_group': 'W1', 'obs_id': '10100100412', 'detector': '19', 'filter': '', 'custom_id': '', 'batch_id': 'default-batch', 'pmapname': '', 'ref_cat': '', 'dag_group': 'default-dag-group', 'dag': 'csst-msc-l1-mbi', 'dag_group_run': 'b4352fdbc465fa81919176febd5a663a014a7f7f', 'dag_run': 'c7e1c71bee37ab33b0254a1046a761ad94a7ae91', 'priority': 1, 'data_list': [], 'extra_kwargs': {'a': 1}, 'created_time': '2025-09-22T06:39:29.077', 'rerun': -1, 'status_code': -1024, 'n_file_expected': 1, 'n_file_found': 1, 'object': '', 'proposal_id': ''} # {'dataset': 'csst-msc-c9-25sqdeg-v3', 'instrument': 'MSC', 'obs_type': 'WIDE', 'obs_group': 'W1', 'obs_id': '10100100412', 'detector': '20', 'filter': '', 'custom_id': '', 'batch_id': 'default-batch', 'pmapname': '', 'ref_cat': '', 'dag_group': 'default-dag-group', 'dag': 'csst-msc-l1-mbi', 'dag_group_run': 'b4352fdbc465fa81919176febd5a663a014a7f7f', 'dag_run': '1bbe6a5b7da28109a77c4e55f6789d70c24ae5d6', 'priority': 1, 'data_list': [], 'extra_kwargs': {'a': 1}, 'created_time': '2025-09-22T06:39:29.077', 'rerun': -1, 'status_code': -1024, 'n_file_expected': 1, 'n_file_found': 1, 'object': '', 'proposal_id': ''} # {'dataset': 'csst-msc-c9-25sqdeg-v3', 'instrument': 'MSC', 'obs_type': 'WIDE', 'obs_group': 'W1', 'obs_id': '10100100412', 'detector': '22', 'filter': '', 'custom_id': '', 'batch_id': 'default-batch', 'pmapname': '', 'ref_cat': '', 'dag_group': 'default-dag-group', 'dag': 'csst-msc-l1-mbi', 'dag_group_run': 'b4352fdbc465fa81919176febd5a663a014a7f7f', 'dag_run': '26b3ec23b8d18b41458906234e2aabfcbf558fd1', 'priority': 1, 'data_list': [], 'extra_kwargs': {'a': 1}, 'created_time': '2025-09-22T06:39:29.077', 'rerun': -1, 'status_code': -1024, 'n_file_expected': 1, 'n_file_found': 1, 'object': '', 'proposal_id': ''} # {'dataset': 'csst-msc-c9-25sqdeg-v3', 'instrument': 'MSC', 'obs_type': 'WIDE', 'obs_group': 'W1', 'obs_id': '10100100412', 'detector': '23', 'filter': '', 'custom_id': '', 'batch_id': 'default-batch', 'pmapname': '', 'ref_cat': '', 'dag_group': 'default-dag-group', 'dag': 'csst-msc-l1-mbi', 'dag_group_run': 'b4352fdbc465fa81919176febd5a663a014a7f7f', 'dag_run': 'abfea84182c387b8607f41f1eed84193f1063ade', 'priority': 1, 'data_list': [], 'extra_kwargs': {'a': 1}, 'created_time': '2025-09-22T06:39:29.077', 'rerun': -1, 'status_code': -1024, 'n_file_expected': 1, 'n_file_found': 1, 'object': '', 'proposal_id': ''} # {'dataset': 'csst-msc-c9-25sqdeg-v3', 'instrument': 'MSC', 'obs_type': 'WIDE', 'obs_group': 'W1', 'obs_id': '10100100412', 'detector': '24', 'filter': '', 'custom_id': '', 'batch_id': 'default-batch', 'pmapname': '', 'ref_cat': '', 'dag_group': 'default-dag-group', 'dag': 'csst-msc-l1-mbi', 'dag_group_run': 'b4352fdbc465fa81919176febd5a663a014a7f7f', 'dag_run': '6b218191ce462a25c12cc96fa38c38a3990f5293', 'priority': 1, 'data_list': [], 'extra_kwargs': {'a': 1}, 'created_time': '2025-09-22T06:39:29.077', 'rerun': -1, 'status_code': -1024, 'n_file_expected': 1, 'n_file_found': 1, 'object': '', 'proposal_id': ''} # {'dataset': 'csst-msc-c9-25sqdeg-v3', 'instrument': 'MSC', 'obs_type': 'WIDE', 'obs_group': 'W1', 'obs_id': '10100100412', 'detector': '25', 'filter': '', 'custom_id': '', 'batch_id': 'default-batch', 'pmapname': '', 'ref_cat': '', 'dag_group': 'default-dag-group', 'dag': 'csst-msc-l1-mbi', 'dag_group_run': 'b4352fdbc465fa81919176febd5a663a014a7f7f', 'dag_run': 'd49fbd2185b1330dbc4ffebe05cc998604837c4f', 'priority': 1, 'data_list': [], 'extra_kwargs': {'a': 1}, 'created_time': '2025-09-22T06:39:29.077', 'rerun': -1, 'status_code': -1024, 'n_file_expected': 1, 'n_file_found': 1, 'object': '', 'proposal_id': ''} # currently defined DAGs for dag in CSST_DAGS.keys(): print(dag) # csst-msc-l1-qc0 # csst-msc-l1-mbi # csst-msc-l1-ast # csst-msc-l1-sls # csst-msc-l1-ooc # csst-mci-l1 # csst-mci-l1-qc0 # csst-ifs-l1 # csst-cpic-l1 # csst-cpic-l1-qc0 # csst-hstdm-l1 ``` batch/msc-ooc/trigger-msc-ooc-v20241219-rdx-naoc-v1.py +1 −1 Original line number Diff line number Diff line Loading @@ -8,7 +8,7 @@ BATCH_ID = "msc-ooc-v20241219-rdx-naoc-v1" DATASET = "msc-ooc-v20241219" LOCATION = "naoc" # query for data in DFS # query for dlist in DFS result = level0.find( dataset=DATASET, file_type="SCI", Loading batch/msc-v096/trigger.py +1 −1 Original line number Diff line number Diff line Loading @@ -2,7 +2,7 @@ COSMOS """ # cd /nfsdata/share/simulation-collection/csst-dag # cd /nfsdata/share/simulation-collection/csst-dag_cfg # http://159.226.170.52:3000/scalebox/TaskList?app=csst-msc-l1-mbi.apps2 from csst_dag import get_redis, gen_level1_dag_message Loading batch/msc.md +12 −8 Original line number Diff line number Diff line Loading @@ -46,15 +46,18 @@ python -m csst_dag.cli.csst_msc_l1 \ - `25sqdeg-test-b1` : 测试版,只跑了W1一部分 - `25sqdeg-test-b2` : 第二版,跑了W1-5,但是没跑第一批已经处理的 - `25sqdeg-test-b3` : 第三版,跑了W5所有 - `25sqdeg-full-b1` : 测试版 - `25sqdeg-full-b2` : 修复了20号探测器wcs问题,重新做了0级入库 - `25sqdeg-full-b3` : 确认没问题,跑了W1-W5 成像 成像+光谱 ```bash python -m csst_dag.cli.run \ --dags csst-msc-l1-mbi csst-msc-l1-sls\ --dataset=csst-msc-c9-25sqdeg-v3 \ --instrument=MSC \ --obs-group=W5 \ --batch-id=25sqdeg-full-b2 \ --batch-id=25sqdeg-full-b3 \ --pmapname=csst_000094.pmap \ --ref-cat=trilegal_093 \ --verbose \ Loading @@ -65,7 +68,7 @@ python -m csst_dag.cli.inspect \ --dataset=csst-msc-c9-25sqdeg-v3 \ --instrument=MSC \ --data-model=csst-msc-l1-mbi \ --batch-id=25sqdeg-full-b1 --batch-id=25sqdeg-full-b3 ``` 光谱 Loading Loading @@ -94,23 +97,24 @@ python -m csst_dag.cli.inspect \ ``` ```bash # 第一版 试跑 python -m csst_dag.cli.run \ --dags csst-msc-l1-sls csst-msc-l1-mbi \ --dataset=csst-msc-c11-sls-v1 \ --instrument=MSC \ --batch-id=sls-cosmos-v1-b1 \ --batch-id=sls-cosmos-v1-b6 \ --ref-cat=trilegal_093 \ --pmapname=csst_000118.pmap \ --obs-group=W2 \ --obs-id=10100070335 \ --verbose \ --submit # 第二版, mbi修复了wcs,obs_group更新成了W2 python -m csst_dag.cli.run \ --dags csst-msc-l1-mbi \ --dags csst-msc-l1-mbi csst-msc-l1-sls \ --dataset=csst-msc-c11-sls-v1 \ --instrument=MSC \ --batch-id=sls-cosmos-v1-b2 \ --batch-id=sls-cosmos-v1-b4 \ --ref-cat=trilegal_093 \ --verbose \ --submit Loading Loading
Makefile +8 −5 Original line number Diff line number Diff line all: git pull rm -rf ./build pip install . --no-deps --force-reinstall #git pull rm -rf build csst_dag.egg-info pip install -e . install: rm -rf ./build rm -rf build csst_dag.egg-info pip install . --no-deps --force-reinstall pull: Loading @@ -13,3 +13,6 @@ pull: compile: uv pip compile pyproject.toml -o requirements.txt rsync_zjlab: rsync -avrP . zjlab-harbor:/mnt/csst-dag No newline at end of file
README.md +61 −115 Original line number Diff line number Diff line # `csst-dag` # Change log - [2025-09-15] 旧版csst-dag命令行工具安装方式 - `pip install git+https://csst-tb.bao.ac.cn/code/csst-cicd/csst-dag.git@7a0108f3 --force-reinstall` - [2025-09-09] csst-dag将被封装为Docker镜像,原有的基于`python -m csst_dag.cli`的命令行调用方式将被放弃 # Usages 运行之前,需要确定一个本地的 `.csst` 文件夹。 在 `.bashrc` 中加入以下代码 [//]: # (--pull=always) ```shell # 确定本地 .csst 文件夹路径 export DOT_CSST=~/.csst # 用自定义命令 alias csst='docker run --rm -v ${DOT_CSST}:/pipeline/app/.csst csu-harbor.csst.nao:10443/csst/csst-dag csst' ``` 使 `DOT_CSST` 和 `csst` 命令生效: ```shell source ~/.bashrc # or source ~/.zshrc ``` 创建 `.csst` 文件夹: ```shell # 创建`.csst`文件夹 mkdir -p ${DOT_CSST} ``` 测试 `csst` 命令是否可以执行: ```shell # 执行命令 csst --help # 查看版本 csst --version ``` 更新: ```shell docker pull csu-harbor.csst.nao:10443/csst/csst-dag:latest ``` 主要有以下几个命令组 - `csst env`: 预设环境变量 - `csst plan`: 编排数据查询 - `csst plan --obs-group=111` - `csst plan --dataset=111 --stats=obs_group --to-json` - `csst dag`: DAG任务操作 - `csst dag start --dataset=xxx --batch-id=xxx` - `csst dag cancel --dataset=xxx --batch-id=xxx` (需要Scalebox、DFS支持) - `csst dag status --dataset=xxx --batch-id=xxx` (需要Scalebox、DFS支持) - `csst dag logs --dataset=xxx --batch-id=xxx --status=0` (需要Scalebox、DFS支持) - `csst file`: 原始数据查询 - `csst data --data-model=raw --obs-id=10100000001 --stats=obs_group` - 查询原始数据,并按照obs_group进行统计 - `csst data --data-model=csst-msc-l1-mbi --obs-id=10100000001 --stats=obs_group` --output=json - 查询数据产品,并按照obs_group进行统计 - `csst catalog` DFS星表查询 - `csst catalog list` 列出可用的星表 - `csst catalog show --name=trilegal` 列出指定星表的具体信息 - `csst ccds`: CCDS - `csst ccds pmap?` ## 1. `csst env` 环境变量 ```shell # 1. 查看所有预定义环境变量 csst env list # 2. 查看环境变量 csst env show --name csu # 3. 保存环境变量到文件 预设name csst env set --name csu ``` ## 2. ``csst plan`` ```shell # 1. 查看编排数据 csst plan \ --dataset=csst-msc-c9-25sqdeg-v3 \ --instrument=MSC \ --obs-type=WIDE \ --obs-group=W1 \ --obs-id=10100232366 ``` ## ``csst dag`` ```shell 1. 发起任务 csst dag run **kwargs # 发起任务 2. 查看任务状态(批量) csst dag status **kwargs # 查看任务状态 3. 查看任务日志(批量和单个) csst dag log **kwargs # 查看任务日志 4. 取消任务(按条件批量取消,按任务ID取消,或者取消所有) csst dag cancel **kwargs # 取消任务 5. 0级数据查看 csst data --data-model=raw **kwargs # 查看原始数据 6. 数据产品查看 (可能要区分DFS1/2) csst data --data-model=csst-msc-l1-mbi **kwargs # 查看产品数据 # TODO: 增加一个--stats命令/选项,按照某些列来统计数据产品 # TODO: 增加一个--print-columns命令/选项,打印数据产品的列名 ```python from csst_dag import CSST_DAGS # define parameters test_kwargs = dict( dataset="csst-msc-c9-25sqdeg-v3", instrument="MSC", obs_type="WIDE", obs_group="W1", obs_id="10100100412", proposal_id=None, prc_status=-1024, ) # get DAG dag = CSST_DAGS.get("csst-msc-l1-mbi") # run with parameters dag_group_run, dag_run_list = dag.run( **test_kwargs, extra_kwargs={"a": 1}, ) # `dag_group_run` is a dict containing information of the DAG group run print(dag_group_run) # {'dag_group': 'default-dag-group', 'dag_group_run': 'b4352fdbc465fa81919176febd5a663a014a7f7f', 'batch_id': 'default-batch', 'priority': 1, 'created_time': '2025-09-22T06:39:29.077'} # `dag_run_list` is a list[dict], whose elements are `dag_run`s for dag_run in dag_run_list: print(dag_run) # {'dataset': 'csst-msc-c9-25sqdeg-v3', 'instrument': 'MSC', 'obs_type': 'WIDE', 'obs_group': 'W1', 'obs_id': '10100100412', 'detector': '06', 'filter': '', 'custom_id': '', 'batch_id': 'default-batch', 'pmapname': '', 'ref_cat': '', 'dag_group': 'default-dag-group', 'dag': 'csst-msc-l1-mbi', 'dag_group_run': 'b4352fdbc465fa81919176febd5a663a014a7f7f', 'dag_run': '7a81164c505efb9a13a7da166a6ad940df713238', 'priority': 1, 'data_list': [], 'extra_kwargs': {'a': 1}, 'created_time': '2025-09-22T06:39:29.077', 'rerun': -1, 'status_code': -1024, 'n_file_expected': 1, 'n_file_found': 1, 'object': '', 'proposal_id': ''} # {'dataset': 'csst-msc-c9-25sqdeg-v3', 'instrument': 'MSC', 'obs_type': 'WIDE', 'obs_group': 'W1', 'obs_id': '10100100412', 'detector': '07', 'filter': '', 'custom_id': '', 'batch_id': 'default-batch', 'pmapname': '', 'ref_cat': '', 'dag_group': 'default-dag-group', 'dag': 'csst-msc-l1-mbi', 'dag_group_run': 'b4352fdbc465fa81919176febd5a663a014a7f7f', 'dag_run': '7c22456c7a844dc165d095361089078a9c5f70c9', 'priority': 1, 'data_list': [], 'extra_kwargs': {'a': 1}, 'created_time': '2025-09-22T06:39:29.077', 'rerun': -1, 'status_code': -1024, 'n_file_expected': 1, 'n_file_found': 1, 'object': '', 'proposal_id': ''} # {'dataset': 'csst-msc-c9-25sqdeg-v3', 'instrument': 'MSC', 'obs_type': 'WIDE', 'obs_group': 'W1', 'obs_id': '10100100412', 'detector': '08', 'filter': '', 'custom_id': '', 'batch_id': 'default-batch', 'pmapname': '', 'ref_cat': '', 'dag_group': 'default-dag-group', 'dag': 'csst-msc-l1-mbi', 'dag_group_run': 'b4352fdbc465fa81919176febd5a663a014a7f7f', 'dag_run': 'b2a57d47fb8497690e7e2629699adc414ce1321a', 'priority': 1, 'data_list': [], 'extra_kwargs': {'a': 1}, 'created_time': '2025-09-22T06:39:29.077', 'rerun': -1, 'status_code': -1024, 'n_file_expected': 1, 'n_file_found': 1, 'object': '', 'proposal_id': ''} # {'dataset': 'csst-msc-c9-25sqdeg-v3', 'instrument': 'MSC', 'obs_type': 'WIDE', 'obs_group': 'W1', 'obs_id': '10100100412', 'detector': '09', 'filter': '', 'custom_id': '', 'batch_id': 'default-batch', 'pmapname': '', 'ref_cat': '', 'dag_group': 'default-dag-group', 'dag': 'csst-msc-l1-mbi', 'dag_group_run': 'b4352fdbc465fa81919176febd5a663a014a7f7f', 'dag_run': '45d6262e3974006f227101c7e44e70a58ddfbbf1', 'priority': 1, 'data_list': [], 'extra_kwargs': {'a': 1}, 'created_time': '2025-09-22T06:39:29.077', 'rerun': -1, 'status_code': -1024, 'n_file_expected': 1, 'n_file_found': 1, 'object': '', 'proposal_id': ''} # {'dataset': 'csst-msc-c9-25sqdeg-v3', 'instrument': 'MSC', 'obs_type': 'WIDE', 'obs_group': 'W1', 'obs_id': '10100100412', 'detector': '11', 'filter': '', 'custom_id': '', 'batch_id': 'default-batch', 'pmapname': '', 'ref_cat': '', 'dag_group': 'default-dag-group', 'dag': 'csst-msc-l1-mbi', 'dag_group_run': 'b4352fdbc465fa81919176febd5a663a014a7f7f', 'dag_run': 'd54c44a8522187b2fdadf68b1877cde1d068c2db', 'priority': 1, 'data_list': [], 'extra_kwargs': {'a': 1}, 'created_time': '2025-09-22T06:39:29.077', 'rerun': -1, 'status_code': -1024, 'n_file_expected': 1, 'n_file_found': 1, 'object': '', 'proposal_id': ''} # {'dataset': 'csst-msc-c9-25sqdeg-v3', 'instrument': 'MSC', 'obs_type': 'WIDE', 'obs_group': 'W1', 'obs_id': '10100100412', 'detector': '12', 'filter': '', 'custom_id': '', 'batch_id': 'default-batch', 'pmapname': '', 'ref_cat': '', 'dag_group': 'default-dag-group', 'dag': 'csst-msc-l1-mbi', 'dag_group_run': 'b4352fdbc465fa81919176febd5a663a014a7f7f', 'dag_run': '89c4658ab0e6b5115d7991b17cb91b0d78777f83', 'priority': 1, 'data_list': [], 'extra_kwargs': {'a': 1}, 'created_time': '2025-09-22T06:39:29.077', 'rerun': -1, 'status_code': -1024, 'n_file_expected': 1, 'n_file_found': 1, 'object': '', 'proposal_id': ''} # {'dataset': 'csst-msc-c9-25sqdeg-v3', 'instrument': 'MSC', 'obs_type': 'WIDE', 'obs_group': 'W1', 'obs_id': '10100100412', 'detector': '13', 'filter': '', 'custom_id': '', 'batch_id': 'default-batch', 'pmapname': '', 'ref_cat': '', 'dag_group': 'default-dag-group', 'dag': 'csst-msc-l1-mbi', 'dag_group_run': 'b4352fdbc465fa81919176febd5a663a014a7f7f', 'dag_run': 'c1b9273eafed4fdbac5e26c7b46110bebcd901ec', 'priority': 1, 'data_list': [], 'extra_kwargs': {'a': 1}, 'created_time': '2025-09-22T06:39:29.077', 'rerun': -1, 'status_code': -1024, 'n_file_expected': 1, 'n_file_found': 1, 'object': '', 'proposal_id': ''} # {'dataset': 'csst-msc-c9-25sqdeg-v3', 'instrument': 'MSC', 'obs_type': 'WIDE', 'obs_group': 'W1', 'obs_id': '10100100412', 'detector': '14', 'filter': '', 'custom_id': '', 'batch_id': 'default-batch', 'pmapname': '', 'ref_cat': '', 'dag_group': 'default-dag-group', 'dag': 'csst-msc-l1-mbi', 'dag_group_run': 'b4352fdbc465fa81919176febd5a663a014a7f7f', 'dag_run': '7a7237e135c8eb6aba622d1ef8ac74c2cecb4a77', 'priority': 1, 'data_list': [], 'extra_kwargs': {'a': 1}, 'created_time': '2025-09-22T06:39:29.077', 'rerun': -1, 'status_code': -1024, 'n_file_expected': 1, 'n_file_found': 1, 'object': '', 'proposal_id': ''} # {'dataset': 'csst-msc-c9-25sqdeg-v3', 'instrument': 'MSC', 'obs_type': 'WIDE', 'obs_group': 'W1', 'obs_id': '10100100412', 'detector': '15', 'filter': '', 'custom_id': '', 'batch_id': 'default-batch', 'pmapname': '', 'ref_cat': '', 'dag_group': 'default-dag-group', 'dag': 'csst-msc-l1-mbi', 'dag_group_run': 'b4352fdbc465fa81919176febd5a663a014a7f7f', 'dag_run': '42a25ecac49b1adb89b8c154a96a1443a9fc9ccc', 'priority': 1, 'data_list': [], 'extra_kwargs': {'a': 1}, 'created_time': '2025-09-22T06:39:29.077', 'rerun': -1, 'status_code': -1024, 'n_file_expected': 1, 'n_file_found': 1, 'object': '', 'proposal_id': ''} # {'dataset': 'csst-msc-c9-25sqdeg-v3', 'instrument': 'MSC', 'obs_type': 'WIDE', 'obs_group': 'W1', 'obs_id': '10100100412', 'detector': '16', 'filter': '', 'custom_id': '', 'batch_id': 'default-batch', 'pmapname': '', 'ref_cat': '', 'dag_group': 'default-dag-group', 'dag': 'csst-msc-l1-mbi', 'dag_group_run': 'b4352fdbc465fa81919176febd5a663a014a7f7f', 'dag_run': 'c7b6a5d88edb2ec001ceade7cf168bd64c5279f9', 'priority': 1, 'data_list': [], 'extra_kwargs': {'a': 1}, 'created_time': '2025-09-22T06:39:29.077', 'rerun': -1, 'status_code': -1024, 'n_file_expected': 1, 'n_file_found': 1, 'object': '', 'proposal_id': ''} # {'dataset': 'csst-msc-c9-25sqdeg-v3', 'instrument': 'MSC', 'obs_type': 'WIDE', 'obs_group': 'W1', 'obs_id': '10100100412', 'detector': '17', 'filter': '', 'custom_id': '', 'batch_id': 'default-batch', 'pmapname': '', 'ref_cat': '', 'dag_group': 'default-dag-group', 'dag': 'csst-msc-l1-mbi', 'dag_group_run': 'b4352fdbc465fa81919176febd5a663a014a7f7f', 'dag_run': '126a382659b205a2523364e0a90e96f78ea96d99', 'priority': 1, 'data_list': [], 'extra_kwargs': {'a': 1}, 'created_time': '2025-09-22T06:39:29.077', 'rerun': -1, 'status_code': -1024, 'n_file_expected': 1, 'n_file_found': 1, 'object': '', 'proposal_id': ''} # {'dataset': 'csst-msc-c9-25sqdeg-v3', 'instrument': 'MSC', 'obs_type': 'WIDE', 'obs_group': 'W1', 'obs_id': '10100100412', 'detector': '18', 'filter': '', 'custom_id': '', 'batch_id': 'default-batch', 'pmapname': '', 'ref_cat': '', 'dag_group': 'default-dag-group', 'dag': 'csst-msc-l1-mbi', 'dag_group_run': 'b4352fdbc465fa81919176febd5a663a014a7f7f', 'dag_run': 'da71a90621728cbf263247a1ae92827e13041717', 'priority': 1, 'data_list': [], 'extra_kwargs': {'a': 1}, 'created_time': '2025-09-22T06:39:29.077', 'rerun': -1, 'status_code': -1024, 'n_file_expected': 1, 'n_file_found': 1, 'object': '', 'proposal_id': ''} # {'dataset': 'csst-msc-c9-25sqdeg-v3', 'instrument': 'MSC', 'obs_type': 'WIDE', 'obs_group': 'W1', 'obs_id': '10100100412', 'detector': '19', 'filter': '', 'custom_id': '', 'batch_id': 'default-batch', 'pmapname': '', 'ref_cat': '', 'dag_group': 'default-dag-group', 'dag': 'csst-msc-l1-mbi', 'dag_group_run': 'b4352fdbc465fa81919176febd5a663a014a7f7f', 'dag_run': 'c7e1c71bee37ab33b0254a1046a761ad94a7ae91', 'priority': 1, 'data_list': [], 'extra_kwargs': {'a': 1}, 'created_time': '2025-09-22T06:39:29.077', 'rerun': -1, 'status_code': -1024, 'n_file_expected': 1, 'n_file_found': 1, 'object': '', 'proposal_id': ''} # {'dataset': 'csst-msc-c9-25sqdeg-v3', 'instrument': 'MSC', 'obs_type': 'WIDE', 'obs_group': 'W1', 'obs_id': '10100100412', 'detector': '20', 'filter': '', 'custom_id': '', 'batch_id': 'default-batch', 'pmapname': '', 'ref_cat': '', 'dag_group': 'default-dag-group', 'dag': 'csst-msc-l1-mbi', 'dag_group_run': 'b4352fdbc465fa81919176febd5a663a014a7f7f', 'dag_run': '1bbe6a5b7da28109a77c4e55f6789d70c24ae5d6', 'priority': 1, 'data_list': [], 'extra_kwargs': {'a': 1}, 'created_time': '2025-09-22T06:39:29.077', 'rerun': -1, 'status_code': -1024, 'n_file_expected': 1, 'n_file_found': 1, 'object': '', 'proposal_id': ''} # {'dataset': 'csst-msc-c9-25sqdeg-v3', 'instrument': 'MSC', 'obs_type': 'WIDE', 'obs_group': 'W1', 'obs_id': '10100100412', 'detector': '22', 'filter': '', 'custom_id': '', 'batch_id': 'default-batch', 'pmapname': '', 'ref_cat': '', 'dag_group': 'default-dag-group', 'dag': 'csst-msc-l1-mbi', 'dag_group_run': 'b4352fdbc465fa81919176febd5a663a014a7f7f', 'dag_run': '26b3ec23b8d18b41458906234e2aabfcbf558fd1', 'priority': 1, 'data_list': [], 'extra_kwargs': {'a': 1}, 'created_time': '2025-09-22T06:39:29.077', 'rerun': -1, 'status_code': -1024, 'n_file_expected': 1, 'n_file_found': 1, 'object': '', 'proposal_id': ''} # {'dataset': 'csst-msc-c9-25sqdeg-v3', 'instrument': 'MSC', 'obs_type': 'WIDE', 'obs_group': 'W1', 'obs_id': '10100100412', 'detector': '23', 'filter': '', 'custom_id': '', 'batch_id': 'default-batch', 'pmapname': '', 'ref_cat': '', 'dag_group': 'default-dag-group', 'dag': 'csst-msc-l1-mbi', 'dag_group_run': 'b4352fdbc465fa81919176febd5a663a014a7f7f', 'dag_run': 'abfea84182c387b8607f41f1eed84193f1063ade', 'priority': 1, 'data_list': [], 'extra_kwargs': {'a': 1}, 'created_time': '2025-09-22T06:39:29.077', 'rerun': -1, 'status_code': -1024, 'n_file_expected': 1, 'n_file_found': 1, 'object': '', 'proposal_id': ''} # {'dataset': 'csst-msc-c9-25sqdeg-v3', 'instrument': 'MSC', 'obs_type': 'WIDE', 'obs_group': 'W1', 'obs_id': '10100100412', 'detector': '24', 'filter': '', 'custom_id': '', 'batch_id': 'default-batch', 'pmapname': '', 'ref_cat': '', 'dag_group': 'default-dag-group', 'dag': 'csst-msc-l1-mbi', 'dag_group_run': 'b4352fdbc465fa81919176febd5a663a014a7f7f', 'dag_run': '6b218191ce462a25c12cc96fa38c38a3990f5293', 'priority': 1, 'data_list': [], 'extra_kwargs': {'a': 1}, 'created_time': '2025-09-22T06:39:29.077', 'rerun': -1, 'status_code': -1024, 'n_file_expected': 1, 'n_file_found': 1, 'object': '', 'proposal_id': ''} # {'dataset': 'csst-msc-c9-25sqdeg-v3', 'instrument': 'MSC', 'obs_type': 'WIDE', 'obs_group': 'W1', 'obs_id': '10100100412', 'detector': '25', 'filter': '', 'custom_id': '', 'batch_id': 'default-batch', 'pmapname': '', 'ref_cat': '', 'dag_group': 'default-dag-group', 'dag': 'csst-msc-l1-mbi', 'dag_group_run': 'b4352fdbc465fa81919176febd5a663a014a7f7f', 'dag_run': 'd49fbd2185b1330dbc4ffebe05cc998604837c4f', 'priority': 1, 'data_list': [], 'extra_kwargs': {'a': 1}, 'created_time': '2025-09-22T06:39:29.077', 'rerun': -1, 'status_code': -1024, 'n_file_expected': 1, 'n_file_found': 1, 'object': '', 'proposal_id': ''} # currently defined DAGs for dag in CSST_DAGS.keys(): print(dag) # csst-msc-l1-qc0 # csst-msc-l1-mbi # csst-msc-l1-ast # csst-msc-l1-sls # csst-msc-l1-ooc # csst-mci-l1 # csst-mci-l1-qc0 # csst-ifs-l1 # csst-cpic-l1 # csst-cpic-l1-qc0 # csst-hstdm-l1 ```
batch/msc-ooc/trigger-msc-ooc-v20241219-rdx-naoc-v1.py +1 −1 Original line number Diff line number Diff line Loading @@ -8,7 +8,7 @@ BATCH_ID = "msc-ooc-v20241219-rdx-naoc-v1" DATASET = "msc-ooc-v20241219" LOCATION = "naoc" # query for data in DFS # query for dlist in DFS result = level0.find( dataset=DATASET, file_type="SCI", Loading
batch/msc-v096/trigger.py +1 −1 Original line number Diff line number Diff line Loading @@ -2,7 +2,7 @@ COSMOS """ # cd /nfsdata/share/simulation-collection/csst-dag # cd /nfsdata/share/simulation-collection/csst-dag_cfg # http://159.226.170.52:3000/scalebox/TaskList?app=csst-msc-l1-mbi.apps2 from csst_dag import get_redis, gen_level1_dag_message Loading
batch/msc.md +12 −8 Original line number Diff line number Diff line Loading @@ -46,15 +46,18 @@ python -m csst_dag.cli.csst_msc_l1 \ - `25sqdeg-test-b1` : 测试版,只跑了W1一部分 - `25sqdeg-test-b2` : 第二版,跑了W1-5,但是没跑第一批已经处理的 - `25sqdeg-test-b3` : 第三版,跑了W5所有 - `25sqdeg-full-b1` : 测试版 - `25sqdeg-full-b2` : 修复了20号探测器wcs问题,重新做了0级入库 - `25sqdeg-full-b3` : 确认没问题,跑了W1-W5 成像 成像+光谱 ```bash python -m csst_dag.cli.run \ --dags csst-msc-l1-mbi csst-msc-l1-sls\ --dataset=csst-msc-c9-25sqdeg-v3 \ --instrument=MSC \ --obs-group=W5 \ --batch-id=25sqdeg-full-b2 \ --batch-id=25sqdeg-full-b3 \ --pmapname=csst_000094.pmap \ --ref-cat=trilegal_093 \ --verbose \ Loading @@ -65,7 +68,7 @@ python -m csst_dag.cli.inspect \ --dataset=csst-msc-c9-25sqdeg-v3 \ --instrument=MSC \ --data-model=csst-msc-l1-mbi \ --batch-id=25sqdeg-full-b1 --batch-id=25sqdeg-full-b3 ``` 光谱 Loading Loading @@ -94,23 +97,24 @@ python -m csst_dag.cli.inspect \ ``` ```bash # 第一版 试跑 python -m csst_dag.cli.run \ --dags csst-msc-l1-sls csst-msc-l1-mbi \ --dataset=csst-msc-c11-sls-v1 \ --instrument=MSC \ --batch-id=sls-cosmos-v1-b1 \ --batch-id=sls-cosmos-v1-b6 \ --ref-cat=trilegal_093 \ --pmapname=csst_000118.pmap \ --obs-group=W2 \ --obs-id=10100070335 \ --verbose \ --submit # 第二版, mbi修复了wcs,obs_group更新成了W2 python -m csst_dag.cli.run \ --dags csst-msc-l1-mbi \ --dags csst-msc-l1-mbi csst-msc-l1-sls \ --dataset=csst-msc-c11-sls-v1 \ --instrument=MSC \ --batch-id=sls-cosmos-v1-b2 \ --batch-id=sls-cosmos-v1-b4 \ --ref-cat=trilegal_093 \ --verbose \ --submit Loading