credit.ocean.samudra_data
=========================

.. py:module:: credit.ocean.samudra_data


Classes
-------

.. autoapisummary::

   credit.ocean.samudra_data.Normalize


Functions
---------

.. autoapisummary::

   credit.ocean.samudra_data.extract_wet_mask
   credit.ocean.samudra_data.get_inference_steps
   credit.ocean.samudra_data.convert_tensor_out_to_dict
   credit.ocean.samudra_data.get_norm_unnorm_dicts
   credit.ocean.samudra_data.compute_anomalies
   credit.ocean.samudra_data.rename_vars
   credit.ocean.samudra_data.validate_data


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

.. py:function:: extract_wet_mask(data, outputs, hist)

.. py:function:: get_inference_steps(time_config, time_delta=5, hist=1)

   Get the number of inference/rollout steps for the given time configuration.

   :param time_config: Time configuration
   :param time_delta: Time delta in days
   :param hist: Number of rollout steps

   :returns: Number of rollout steps
   :rtype: num_steps


.. py:function:: convert_tensor_out_to_dict(tensor_out: torch.Tensor) -> Dict[str, torch.Tensor]

.. py:function:: get_norm_unnorm_dicts(data: torch.Tensor, input_type: str = 'target', prognostic_channels: int = 0, hist: int = 1)

.. py:function:: compute_anomalies(data: xarray.Dataset, var: str) -> xarray.Dataset

   Compute the anomalies of a data variable.


.. py:function:: rename_vars(data: xarray.Dataset) -> xarray.Dataset

   Rename variables if required.


.. py:function:: validate_data(data: xarray.Dataset, data_mean: xarray.Dataset, data_std: xarray.Dataset) -> Tuple[xarray.Dataset, xarray.Dataset, xarray.Dataset]

   Validate the data such that we have the correct format for training/evaluation.


.. py:class:: Normalize

   .. py:attribute:: _instance
      :type:  Optional[Normalize]
      :value: None



   .. py:method:: get_instance() -> Normalize
      :classmethod:



   .. py:method:: init_instance(data_mean: xarray.Dataset, data_std: xarray.Dataset, prognostic_vars: str, boundary_vars: str, wet_mask: torch.Tensor) -> Normalize
      :classmethod:


      Initialize the singleton instance with normalization parameters.



   .. py:method:: _initialize(data_mean: xarray.Dataset, data_std: xarray.Dataset, prognostic_vars: str, boundary_vars: str, wet_mask: torch.Tensor) -> None

      Store normalization parameters and pre-compute numpy arrays.



   .. py:method:: _to_tensor(array: numpy.ndarray, device: torch.device) -> torch.Tensor

      Convert numpy array to tensor on specified device.



   .. py:method:: normalize_prognostics(data: xarray.Dataset, fill_nan=True, fill_value=0.0) -> xarray.Dataset

      Normalize input dataset.



   .. py:method:: normalize_boundary(data: xarray.Dataset, fill_nan=True, fill_value=0.0) -> xarray.Dataset

      Normalize boundary conditions.



   .. py:method:: unnormalize_prognostics(data: xarray.Dataset) -> xarray.Dataset

      Unnormalize output dataset.



   .. py:method:: normalize_tensor_prognostics(data: torch.Tensor, fill_nan=True, fill_value=0.0) -> torch.Tensor

      Normalize output tensor.



   .. py:method:: unnormalize_tensor_prognostics(data: torch.Tensor) -> torch.Tensor

      Unnormalize output tensor.



   .. py:method:: normalize_numpy_prognostics(data: numpy.ndarray, fill_nan=True, fill_value=0.0) -> numpy.ndarray

      Normalize output numpy array.



   .. py:method:: unnormalize_numpy_prognostics(data: numpy.ndarray) -> numpy.ndarray

      Unnormalize output numpy array.



