hyrax.datasets.hats_dataset
===========================

.. py:module:: hyrax.datasets.hats_dataset


Classes
-------

.. autoapisummary::

   hyrax.datasets.hats_dataset.HyraxHATSDataset


Module Contents
---------------

.. py:class:: HyraxHATSDataset(config: dict, data_location: pathlib.Path = None)

   Bases: :py:obj:`hyrax.datasets.dataset_registry.HyraxDataset`


   Generic Hyrax dataset for HATS catalogs loaded through LSDB.

   .. rubric:: Notes

   This phase-1 implementation materializes the LSDB catalog to a pandas
   DataFrame and dynamically creates ``get_<column>`` methods for requested columns.

   .. py:method:: __init__

   Overall initialization for all Datasets which saves the config

   Subclasses of HyraxDataset ought call this at the end of their __init__ like:

   .. code-block:: python

       from hyrax.datasets import HyraxDataset

       class MyDataset(HyraxDataset):
           def __init__(config):
               <your code>
               super().__init__(config)

   If per tensor metadata is available, it is recommended that dataset authors create an
   astropy Table of that data, in the same order as their data and pass that `metadata_table`
   as shown below:

   .. code-block:: python

       from hyrax.datasets import HyraxDataset
       from astropy.table import Table

       class MyDataset(HyraxDataset):
           def __init__(config):
               <your code>
               metadata_table = Table(<Your catalog data goes here>)
               super().__init__(config, metadata_table)

   :param config: The runtime configuration for hyrax
   :type config: dict, Optional
   :param metadata_table: An Astropy Table with
                          1. the metadata columns desired for visualization AND
                          2. in the order your data will be enumerated.
   :type metadata_table: Optional[Table], optional
   :param object_id_column_name: The name of the column containing object IDs. If None, uses the default
                                 from config or creates one from the ids() method.
   :type object_id_column_name: Optional[str], optional


   .. py:attribute:: data_location
      :value: None



   .. py:attribute:: dataframe


   .. py:attribute:: column_names


   .. py:method:: _requested_columns_from_config(config: dict) -> list[str]


   .. py:method:: _open_catalog_kwargs_from_config(config: dict) -> dict


   .. py:method:: __len__() -> int


