cpic.py 2.38 KB
Newer Older
BO ZHANG's avatar
BO ZHANG committed
1
2
3
4
5
6
7
"""
Aim
---
Process an CPIC dataset, given a set of parameters.

Example
-------
BO ZHANG's avatar
BO ZHANG committed
8
9
python -m csst_dag.cli.cpic -h

BO ZHANG's avatar
BO ZHANG committed
10
11
python -m csst_dag.cli.cpic \
    --dataset=csst-cpic-c11-hip71681-v1 \
BO ZHANG's avatar
BO ZHANG committed
12
    --obs-group=hip71681 \
BO ZHANG's avatar
BO ZHANG committed
13
14
15
    --batch-id=csci-test-20250507 \
    --priority=1 \
    --initial-prc-status=-1024 \
BO ZHANG's avatar
BO ZHANG committed
16
17
    --final-prc-status=-2 \
    --demo
BO ZHANG's avatar
BO ZHANG committed
18
19
20
21
22
23
24
25
26
27
28
29
"""

from csst_dag.dag import CsstDAG
import argparse

parser = argparse.ArgumentParser(
    description="Scheduler for CPIC L1 pipeline.",
    formatter_class=argparse.ArgumentDefaultsHelpFormatter,
)

parser.add_argument("--dataset", type=str, help="Dataset name")
# parser.add_argument("--instrument", type=str, help="Instrument name", default="CPIC")
BO ZHANG's avatar
BO ZHANG committed
30
parser.add_argument("--obs-group", type=str, help="Observation group", default="none")
BO ZHANG's avatar
BO ZHANG committed
31
32
33
34
35
36
37
38
39
parser.add_argument("--obs-type", type=str, help="Observation type", default="")
parser.add_argument("--batch-id", type=str, help="Batch ID", default="default_batch")
parser.add_argument("--priority", type=str, help="Task priority", default=1)
parser.add_argument(
    "--initial-prc-status", type=int, help="Initial processing status", default=-1024
)
parser.add_argument(
    "--final-prc-status", type=int, help="Final processing status", default=-2
)
BO ZHANG's avatar
BO ZHANG committed
40
41
42
parser.add_argument(
    "--demo", action="store_true", help="Enable demo mode", default=False
)
BO ZHANG's avatar
BO ZHANG committed
43
44
45
46
47
48

args = parser.parse_args()
print("CLI parameters: ", args)

DAG_LOOP_MAP = {
    "SCI": ["csst-cpic-l1"],
BO ZHANG's avatar
BO ZHANG committed
49
50
    "DSF": ["csst-cpic-l1"],
    "CALS": ["csst-cpic-l1"],
BO ZHANG's avatar
BO ZHANG committed
51
52
53
    "BIAS": ["csst-cpic-l1-qc0"],
    "DARK": ["csst-cpic-l1-qc0"],
    "FLAT": ["csst-cpic-l1-qc0"],
BO ZHANG's avatar
BO ZHANG committed
54
55
    "BKG": ["csst-cpic-l1-qc0"],
    "LASER": ["csst-cpic-l1-qc0"],
BO ZHANG's avatar
BO ZHANG committed
56
57
58
59
60
61
62
63
64
65
66
67
68
}
if args.obs_type:
    assert args.obs_type in DAG_LOOP_MAP.keys(), f"Unknown obs_type: {args.obs_type}"
    DAG_LOOP_MAP = {args.obs_type: DAG_LOOP_MAP[args.obs_type]}

for obs_type, dag_ids in DAG_LOOP_MAP.items():
    print(f"* Processing {obs_type}")
    for dag_id in dag_ids:
        print(f"   - Scheduling `{dag_id}` -> ", end="")
        dag = CsstDAG.get_dag(dag_id=dag_id)
        msgs = dag.schedule(
            dataset=args.dataset,
            obs_type=obs_type,
BO ZHANG's avatar
BO ZHANG committed
69
            obs_group=args.obs_group,
BO ZHANG's avatar
BO ZHANG committed
70
71
72
73
74
75
76
            batch_id=args.batch_id,
            initial_prc_status=args.initial_prc_status,
            final_prc_status=args.final_prc_status,
            demo=True,
            priority=args.priority,
        )
        print(f"{len(msgs)} tasks.")