diff --git a/csst_common/dfs.py b/csst_common/dfs.py index 86edb0347a7d60dfb24f885869c203b7356b830c..ce5cb7d8e7e66ec229d6a24925eefa01fb5aabd9 100644 --- a/csst_common/dfs.py +++ b/csst_common/dfs.py @@ -9,8 +9,9 @@ Modified-History: 2023-07-11, Bo Zhang, updated DFS 2023-12-08, Bo Zhang, tweaks 2023-12-20, Bo Zhang, do nothing in DFS.__init__() + 2023-12-28, Bo Zhang, add DFS.rec_to_table and DFS.rec_to_dlist """ - +from astropy.table import Table from csst_dfs_api.common.catalog import CatalogApi from csst_dfs_api.facility import ( Level0DataApi, @@ -48,6 +49,10 @@ class DFS: def L2DataApi(self): return Level2DataApi() + @property + def L2TypeApi(self): + return Level2TypeApi() + @property def OtherDataApi(self): return OtherDataApi() @@ -55,3 +60,16 @@ class DFS: @property def CatApi(self): return CatalogApi() + + @staticmethod + def rec_to_table(rec): + assert rec["code"] == 0, rec + data = list(zip(*rec["data"])) + colnames = rec["columns"] + return Table(data=data, names=colnames) + + @staticmethod + def rec_to_dlist(rec): + assert rec["code"] == 0, rec + colnames = rec["columns"] + return [dict(zip(colnames, _)) for _ in rec["data"]]