Commit ecf57a6b authored by BO ZHANG's avatar BO ZHANG 🏀
Browse files

added dfs interfaces

parent 469c08f8
Loading
Loading
Loading
Loading
+53 −39
Original line number Diff line number Diff line
@@ -23,7 +23,6 @@ from astropy.table import Table
from .dfs import gaia_query_from_dfs, get_l1api
from .params import CSST_PARAMS as CP
from .params import DFS_CONF
from .utils import remove_dir


class CsstMsDataManager:
@@ -201,18 +200,6 @@ class CsstMsDataManager:
            os.environ["LD_LIBRARY_PATH"] = ""
            os.environ["AXE_BINDIR"] = ""

    @property
    def dfs_node(self):
        return self._dfs_node

    @dfs_node.setter
    def dfs_node(self, dfs_node):
        # for DFS configuration, defaults to "local", could be "pml"
        assert dfs_node in DFS_CONF.keys()
        self._dfs_node = dfs_node
        for k, v in DFS_CONF[dfs_node].items():
            os.environ[k] = v

    @property
    def target_detectors(self):
        return self._target_detectors
@@ -480,26 +467,6 @@ class CsstMsDataManager:
            ver_sim=ver_sim, datatype=datatype, dir_l0=dir_l0, dir_l1=dir_l1, path_aux=path_aux,
            dfs_mode=dfs_mode, dfs_node=dfs_node)

    def query_rc(self, ra=180, dec=0, radius=2, min_mag=0, max_mag=30, obstime=-1, limit=-1):
        """ Query Reference Catalog (RC) from DFS """
        try:
            tbl = gaia_query_from_dfs(
                ra=ra, dec=dec, radius=radius, min_mag=min_mag, max_mag=max_mag, obstime=obstime, limit=limit)
            return tbl
        except:
            print("Error occurred during the query!")
            return None

    @property
    def dfs_available(self):
        """ Test if DFS works. """
        try:
            tbl = gaia_query_from_dfs(radius=0.001)
            assert len(tbl) == 0
            return True
        except:
            return False

    def __repr__(self):
        lines = ""
        lines += "<CsstMsDataManager>\n"
@@ -515,13 +482,60 @@ class CsstMsDataManager:
        return lines

    def remove_files(self, fmt="*.fits"):
        """ Remove L1 files conforming the format. """
        os.system(f"rm -rf {os.path.join(self.dir_l1, fmt)}")

    @staticmethod
    def remove_dir(path):
        remove_dir(path)
    def remove_dir(self, dir_name):
        """ Remove L1 (sub-)directory. """
        os.system(f"rm -rf {os.path.join(self.dir_l1, dir_name)}")

    # DFS interfaces
    @property
    def dfs_node(self):
        return self._dfs_node

    @dfs_node.setter
    def dfs_node(self, dfs_node):
        # for DFS configuration, defaults to "local", could be "pml"
        assert dfs_node in DFS_CONF.keys()
        self._dfs_node = dfs_node
        for k, v in DFS_CONF[dfs_node].items():
            os.environ[k] = v

    def dfs_push_l1(self):
        l1api = get_l1api()
        l1api.write()
    @property
    def dfs_is_available(self):
        """ Test if DFS works. """
        try:
            tbl = gaia_query_from_dfs(radius=0.001)
            assert len(tbl) == 0
            return True
        except:
            return False

    def dfs_rc_query(self, ra=180, dec=0, radius=2, min_mag=0, max_mag=30, obstime=-1, limit=-1):
        """ Query Reference Catalog (RC) from DFS. """
        try:
            tbl = gaia_query_from_dfs(
                ra=ra, dec=dec, radius=radius, min_mag=min_mag, max_mag=max_mag, obstime=obstime, limit=limit)
            return tbl
        except:
            print("Error occurred during the query!")
            return None

    def dfs_l1_push(self):
        """ Push MBI/SLS L1 data to DFS. """
        # l1api = get_l1api()
        # l1api.write()
        return

    def dfs_l2_push(self):
        """ Push SLS spectra to DFS. """
        pass

    def dfs_l0_query(self):
        """ Query L0 data from DFS. """
        pass

    def dfs_l1_query(self):
        """ Query L1 data from DFS. """
        pass