Commit 128f1919 authored by BO ZHANG's avatar BO ZHANG 🏀
Browse files

added clear_dir option and updated get_aux methods

parent e778f976
...@@ -136,6 +136,7 @@ class CsstMsDataManager: ...@@ -136,6 +136,7 @@ class CsstMsDataManager:
_l0_post: str = "L0_1", _l0_post: str = "L0_1",
log_ppl="csst-l1ppl.log", log_ppl="csst-l1ppl.log",
log_mod="csst-l1mod.log", log_mod="csst-l1mod.log",
clear_dir=False,
): ):
# version # version
...@@ -200,6 +201,9 @@ class CsstMsDataManager: ...@@ -200,6 +201,9 @@ class CsstMsDataManager:
# change to working directory # change to working directory
os.chdir(self.dir_l1) os.chdir(self.dir_l1)
# clear dir_l1
if clear_dir:
self.clear_dir(self.dir_l1)
# pipeline logger # pipeline logger
self.logger_ppl = get_logger(name="CSST L1 Pipeline Logger", filename=os.path.join(dir_l1, log_ppl)) self.logger_ppl = get_logger(name="CSST L1 Pipeline Logger", filename=os.path.join(dir_l1, log_ppl))
...@@ -236,7 +240,7 @@ class CsstMsDataManager: ...@@ -236,7 +240,7 @@ class CsstMsDataManager:
raise DeprecationWarning("This method is deprecated, please directly use dm.target_detectors = detectors!") raise DeprecationWarning("This method is deprecated, please directly use dm.target_detectors = detectors!")
@staticmethod @staticmethod
def from_dfs(ver_sim="C5.2", datatype="mbi", exp_id=10000100, dir_l1="."): def from_dfs(expid, ver_sim="C5.2", datatype="mbi", dir_l1="."):
raise NotImplementedError("from_dfs is currently not available!") raise NotImplementedError("from_dfs is currently not available!")
@staticmethod @staticmethod
...@@ -364,24 +368,21 @@ class CsstMsDataManager: ...@@ -364,24 +368,21 @@ class CsstMsDataManager:
def get_bias(self, detector=6): def get_bias(self, detector=6):
""" get bias data """ """ get bias data """
if self.datatype == "mbi": if self.datatype == "mbi":
fp = glob.glob(self.path_aux.format("CLB", detector))[0] return glob.glob(self.path_aux.format("CLB", detector))[0]
return fits.getdata(fp)
else: else:
return self.path_aux.format(detector, "bias") return self.path_aux.format(detector, "bias")
def get_dark(self, detector=6): def get_dark(self, detector=6):
""" get dark data """ """ get dark data """
if self.datatype == "mbi": if self.datatype == "mbi":
fp = glob.glob(self.path_aux.format("CLD", detector))[0] return glob.glob(self.path_aux.format("CLD", detector))[0]
return fits.getdata(fp)
else: else:
return self.path_aux.format(detector, "dark") return self.path_aux.format(detector, "dark")
def get_flat(self, detector=6): def get_flat(self, detector=6):
""" get flat data """ """ get flat data """
if self.datatype == "mbi": if self.datatype == "mbi":
fp = glob.glob(self.path_aux.format("CLF", detector))[0] return glob.glob(self.path_aux.format("CLF", detector))[0]
return fits.getdata(fp)
else: else:
return self.path_aux.format(detector, "flat") return self.path_aux.format(detector, "flat")
...@@ -430,8 +431,10 @@ class CsstMsDataManager: ...@@ -430,8 +431,10 @@ class CsstMsDataManager:
return info return info
@staticmethod @staticmethod
def quickstart(ver_sim="C5.2", datatype="mbi", dir_l1=".", exposure_id=100, dfs_mode=False, dfs_node="kmust"): def quickstart(ver_sim="C5.2", datatype="mbi", dir_l1=".", exposure_id=100,
"""Quick dataset generator for tests on dandelion or PMO dfs_mode=False, dfs_node="kmust", clear_dir=False):
"""
Quick dataset generator for tests on dandelion or PML
Parameters Parameters
---------- ----------
...@@ -447,6 +450,8 @@ class CsstMsDataManager: ...@@ -447,6 +450,8 @@ class CsstMsDataManager:
If True, use DFS. If True, use DFS.
dfs_node : str dfs_node : str
The DFS node. Defaults to "kmust", could be "pml". The DFS node. Defaults to "kmust", could be "pml".
clear_dir : bool
If True, clear dir_l1.
Returns Returns
------- -------
...@@ -487,15 +492,15 @@ class CsstMsDataManager: ...@@ -487,15 +492,15 @@ class CsstMsDataManager:
def __repr__(self): def __repr__(self):
lines = "" lines = ""
lines += "<CsstMsDataManager>\n" lines += "<CsstMsDataManager>\n"
lines += f"Data type = {self.datatype}\n" lines += f"- Data type = {self.datatype}\n"
lines += f"Valid detectors = {self.valid_detectors}\n" lines += f"- Valid detectors = {self.valid_detectors}\n"
lines += f"Available detectors = {self.available_detectors}\n" lines += f"- Available detectors = {self.available_detectors}\n"
lines += f"Target detectors = {self.target_detectors}\n" lines += f"- Target detectors = {self.target_detectors}\n"
lines += f"dir_l0 = {self.dir_l0}\n" lines += f"- dir_l0 = {self.dir_l0}\n"
lines += f"dir_l1 = {self.dir_l1}\n" lines += f"- dir_l1 = {self.dir_l1}\n"
lines += f"dfs_mode = {self.dfs_mode}\n" lines += f"- dfs_mode = {self.dfs_mode}\n"
lines += f"dfs_node = {self.dfs_node}\n" lines += f"- dfs_node = {self.dfs_node}\n"
lines += f"CSST_DFS_GATEWAY = " + os.getenv("CSST_DFS_GATEWAY") + "\n" lines += f"- CSST_DFS_GATEWAY = " + os.getenv("CSST_DFS_GATEWAY") + "\n"
return lines return lines
def remove_files(self, fmt="*.fits"): def remove_files(self, fmt="*.fits"):
...@@ -523,8 +528,8 @@ class CsstMsDataManager: ...@@ -523,8 +528,8 @@ class CsstMsDataManager:
for k, v in DFS_CONF[dfs_node].items(): for k, v in DFS_CONF[dfs_node].items():
os.environ[k] = v os.environ[k] = v
@property @staticmethod
def dfs_is_available(self): def dfs_is_available():
""" Test if DFS works. """ """ Test if DFS works. """
try: try:
tbl = gaia_query_from_dfs(radius=0.001) tbl = gaia_query_from_dfs(radius=0.001)
...@@ -553,10 +558,10 @@ class CsstMsDataManager: ...@@ -553,10 +558,10 @@ class CsstMsDataManager:
""" Push SLS spectra to DFS. """ """ Push SLS spectra to DFS. """
pass pass
def dfs_l0_query(self): def dfs_l0_query(self, obs_id):
""" Query L0 data from DFS. """ """ Query L0 data from DFS. """
pass pass
def dfs_l1_query(self): def dfs_l1_query(self, obs_id, detector):
""" Query L1 data from DFS. """ """ Query L1 data from DFS. """
pass pass
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment