From 631ae61612e61cf88582f7ab8cef877d708ba901 Mon Sep 17 00:00:00 2001 From: BO ZHANG Date: Sun, 20 Nov 2022 21:23:27 +0800 Subject: [PATCH] added dm.dfs_l0_query() --- csst_common/data_manager.py | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/csst_common/data_manager.py b/csst_common/data_manager.py index 89b7603..beda5fe 100644 --- a/csst_common/data_manager.py +++ b/csst_common/data_manager.py @@ -18,6 +18,7 @@ import os import re from typing import Union +import numpy as np from astropy.io import fits from astropy.table import Table from csst_dfs_api.msc.calmerge import CalMergeApi @@ -570,9 +571,20 @@ class CsstMsDataManager: """ Push SLS spectra to DFS. """ pass - def dfs_l0_query(self, obs_id): + def dfs_l0_query(self, obs_id: str = "100000100"): """ Query L0 data from DFS. """ - pass + result = self.dfs_L0DataApi.find(obs_id=str(obs_id)) + print(f"{result.totalCount} entries returned from DFS.") + if not result.code == 0: + raise ValueError(f"DFS returns non-zero code! ({result.code})") + tbl = Table([_.__dict__ for _ in result.data]) + tbl.sort(["detector_no", "obs_type"]) + # Check if all 30 detectors are available + for detector in CP["all"]["detectors"]: + for obs_type in ["sci", "cosmic_ray"]: + if np.sum((tbl["detector_no"] == f"{detector:02d}") & (tbl["obs_type"] == obs_type)) == 0: + self.logger_ppl.warning(f"Record not found for detector {detector:02d} and obs_type {obs_type}") + return tbl def dfs_l1_query(self, obs_id, detector): """ Query L1 data from DFS. """ -- GitLab