Newer
Older
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
"""_summary_
"""
import os
from glob import glob
import mpi4py.MPI as MPI
from L1_pipeline.csst_msc_mbi_photometry.csst_photometry import core_msc_l1_mbi_phot
from typing import Optional
def run_csst_msc_mbi_photometry(image_path,
output_dir,
weight_path: str = None,
flag_path: str = None,
psf_ccds_path: Optional[str] = None,
plot_flag: bool = False,
getpsf_flag: bool = False,):
input_dir = os.path.dirname(image_path)
img_filename = os.path.basename(image_path)
if weight_path is None:
weight_path = os.path.join(
input_dir, img_filename.replace("img", "wht"))
if flag_path is None:
flag_path = os.path.join(input_dir, img_filename.replace("img", "flg"))
psf_local_path = os.path.join(
output_dir, img_filename.replace("img", "psf"))
flux_path = os.path.join(
output_dir, img_filename.replace("img", "flux"))
cat_path = os.path.join(
output_dir, img_filename.replace("img", "cat"))
seg_path = os.path.join(
output_dir, img_filename.replace("img", "seg"))
sky_path = os.path.join(
output_dir, img_filename.replace("img", "sky"))
core_msc_l1_mbi_phot(
image_path=image_path,
weight_path=weight_path,
flag_path=flag_path,
psf_ccds_path=None,
psf_local_path=psf_local_path,
flux_path=flux_path,
cat_path=cat_path,
seg_path=seg_path,
sky_path=sky_path,
plot_flag=plot_flag,
getpsf_flag=getpsf_flag)
def genearte_path_list_for_one_pointing(input_dir,
pointing_label,
chip_label_list=None):
"""_summary_
Args:
input_dir (_type_): _description_
pointing_label (_type_): _description_
chip_label_list (_type_, optional): _description_. Defaults to None.
Returns:
_type_: _description_
"""
pointing_dir = os.path.join(input_dir, pointing_label)
if chip_label_list is None:
image_path_list = glob(
pointing_dir + '/CSST_MSC_MS_SCIE_*_' + '*_img_*')
else:
image_path_list = []
for chip_label in chip_label_list:
image_path = glob(pointing_dir + '/CSST_MSC_MS_SCIE_*_' +
chip_label + '_img_*')[0]
image_path_list.append(image_path)
return image_path_list
def run_pointing_list(input_dir,
pointing_label_list,
output_dir,
chip_label_list=None):
image_path_list = []
output_path_list = []
try:
if not os.path.exists(output_dir):
os.makedirs(output_dir)
except OSError:
pass
for pointing_label in pointing_label_list:
output_pointing_dir = os.path.join(output_dir, pointing_label)
try:
if not os.path.exists(output_pointing_dir):
os.makedirs(output_pointing_dir)
except OSError:
pass
temp_img_path_list = genearte_path_list_for_one_pointing(input_dir=input_dir,
pointing_label=pointing_label,
chip_label_list=chip_label_list)
image_path_list = image_path_list + temp_img_path_list
output_path_list = output_path_list + \
[output_pointing_dir] * len(temp_img_path_list)
comm = MPI.COMM_WORLD
ind_thread = comm.Get_rank()
num_thread = comm.Get_size()
for i in range(len(image_path_list)):
if i % num_thread != ind_thread:
continue
image_path = image_path_list[i]
output_path = output_path_list[i]
run_csst_msc_mbi_photometry(image_path=image_path,
output_dir=output_path)
if __name__ == "__main__":
input_dir = "/public/home/fangyuedong/project/50sqDeg_L1_outputs"
# pointing_label_list = ["MSC_0000000", "MSC_0000001",
# "MSC_0000002", "MSC_0000003", "MSC_0000004", "MSC_0000005"]
# chip_label_list = None
pointing_label_list = ["MSC_0000000"]
chip_label_list = ["08"]
output_dir = "/public/home/fangyuedong/project/test_photometry"
run_pointing_list(input_dir=input_dir,
pointing_label_list=pointing_label_list,
output_dir=output_dir,
chip_label_list=chip_label_list)