Source code for mangadap.config.defaults

# Licensed under a 3-clause BSD style license - see LICENSE.rst
# -*- coding: utf-8 -*-
r"""
Provides a set of functions that define and return defaults used by the
MaNGA DAP, such as paths and file names.

----        

.. include license and copyright
.. include:: ../include/copy.rst

----

.. include common links, assuming primary doc root is up one directory
.. include:: ../include/links.rst
"""

from pathlib import Path
from pkg_resources import resource_filename


[docs]def dap_source_dir(): from pkg_resources import resource_filename return Path(resource_filename('mangadap', '')).resolve()
[docs]def dap_data_root(): """Return the root directory with the DAP data.""" return Path(resource_filename('mangadap', 'data')).resolve()
[docs]def dap_config_root(): """Return the root directory with the DAP config data.""" return Path(resource_filename('mangadap', 'config')).resolve()
[docs]def sdss_maskbits_file(): """Return the path to the sdss maskbits yanny file.""" maskbits_file = dap_data_root() / 'sdss' / 'sdssMaskbits.par' return maskbits_file if maskbits_file.exists() else None
# USED BY: # - scripts/dapall_qa.py # - scripts/find_repeat_observations.py # - survey/dapall.py
[docs]def dapall_file(drpver=None, dapver=None, analysis_path=None): """ Return the path to the DAPall file. Args: drpver (:obj:`str`, optional): DRP version. Default is to use :func:`drp_version`. dapver (:obj:`str`, optional): DAP version. Default is to use :func:`dap_version`. analysis_path (:obj:`str`, optional): Path to the root analysis directory. Default is to use :func:`dap_analysis_path` Returns: :obj:`str`: Full path to the DAPall fits file. """ _drpver = drp_version() if drpver is None else drpver _dapver = dap_version() if dapver is None else dapver _analysis_path = dap_analysis_path(drpver=_drpver, dapver=_dapver) \ if analysis_path is None else Path(analysis_path).resolve() return _analysis_path / f'dapall-{_drpver}-{_dapver}.fits'
# USED BY: # - scripts/rundap.py
[docs]def dap_file_root(plate, ifudesign, mode=None): """ Generate the root name of the MaNGA DAP parameter and script files for a given plate/ifudesign/mode. Args: plate (:obj:`int`): Plate number ifudesign (:obj:`int`): IFU design number mode (:obj:`str`, optional): Mode of the DRP reduction; either ``RSS`` or ``CUBE``. If None, the mode is excluded from the file root. Returns: :obj:`str`: Root name for the DAP file: ``mangadap-[PLATE]-[IFUDESIGN]`` or ``mangadap-[PLATE]-[IFUDESIGN]-LOG[MODE]`` """ return f'mangadap-{plate}-{ifudesign}' if mode is None else \ f'mangadap-{plate}-{ifudesign}-LOG{mode}'
# USED BY: # - scripts/rundap.py
[docs]def dap_config(plate, ifudesign, drpver=None, dapver=None, analysis_path=None, directory_path=None): """ Return the full path to the DAP configuration file. The configuration file provides the input data necessary to instantiate a :class:`mangadap.datacube.manga.MaNGADataCube`. Args: plate (:obj:`int`): Plate number ifudesign (:obj:`int`): IFU design number drpver (:obj:`str`, optional): DRP version. Default is to use :func:`drp_version`. dapver (:obj:`str`, optional): DAP version. Default is to use :func:`dap_version`. analysis_path (:obj:`str`, optional): Path to the root analysis directory. Default is to use :func:`dap_analysis_path`. directory_path (:obj:`str`, optional): Path to the directory with the DAP output files. Default is to use :func:`dap_common_path` Returns: :obj:`str`: Full path to the DAP par file """ # Make sure the directory path is defined _directory_path = dap_common_path(plate=plate, ifudesign=ifudesign, drpver=drpver, dapver=dapver, analysis_path=analysis_path) \ if directory_path is None else Path(directory_path).resolve() # Set the name of the par file; put this in its own function? return _directory_path / f'{dap_file_root(plate, ifudesign, "CUBE")}.ini'