pyROX.line_by_line.lbl_kurucz
=============================

.. py:module:: pyROX.line_by_line.lbl_kurucz


Classes
-------

.. autoapisummary::

   pyROX.line_by_line.lbl_kurucz.LBL_Kurucz


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

.. py:class:: LBL_Kurucz(config, **kwargs)

   Bases: :py:obj:`pyROX.line_by_line.lbl.LineByLine`


   Class for handling line-by-line cross-sections from Kurucz data.


   .. py:attribute:: parent_dir


   .. py:attribute:: atoms_info


   .. py:method:: download_data(config)

      Download data from Kurucz.

      :param config: Configuration object containing parameters.
      :type config: object



   .. py:method:: _read_configuration_parameters(config)

      Read parameters specific to Kurucz calculations from the configuration.

      :param config: Configuration object containing parameters.
      :type config: object



   .. py:method:: _read_impact_info(impact_info={})

      Read impact width/shift information from the configuration.

      :param impact_info: Dictionary containing impact information.
      :type impact_info: dict

      :returns: Updated impact information.
      :rtype: dict



   .. py:method:: _read_partition_function(T_grid=np.arange(1, 7001 + 1e-06, 1))

      Read the partition function from the configuration file.

      :param T_grid: Temperature grid for partition function calculation.
      :type T_grid: array



   .. py:method:: _read_kurucz_transitions(input_file)

      Read transitions from a Kurucz input file.

      :param input_file: Path to the input file.
      :type input_file: str

      :returns: Arrays of transition parameters (nu_0, E_low, A, g_up, gamma_vdW, gamma_N).
      :rtype: tuple



   .. py:method:: _read_vald_transitions(input_file)
      :abstractmethod:


      Read transitions from a VALD input file.

      :param input_file: Path to the input file.
      :type input_file: str

      :raises NotImplementedError: If the method is not implemented.



   .. py:method:: compute_vdw_broadening(P, T, E_low, nu_0)

      Calculate Van der Waals broadening.

      :param P: Pressure in Pa.
      :type P: float
      :param T: Temperature in Kelvin.
      :type T: float
      :param E_low: Lower state energies in Joules.
      :type E_low: array
      :param nu_0: Transition frequencies in s^-1.
      :type nu_0: array

      :returns: Van der Waals broadening in s^-1.
      :rtype: array



   .. py:method:: compute_natural_broadening(A)

      Calculate natural broadening.

      :param A: Einstein A-coefficient in s^-1.
      :type A: float

      :returns: Natural broadening in s^-1.
      :rtype: float



   .. py:method:: pressure_shift(P, T, nu_0, delta=None)

      Apply pressure shift to the transition frequency.

      :param P: Pressure in Pa.
      :type P: float
      :param T: Temperature in Kelvin.
      :type T: float
      :param nu_0: Transition frequencies in s^-1.
      :type nu_0: array
      :param delta: Pressure shift coefficient.
      :type delta: float, optional

      :returns: Pressure-shifted frequencies.
      :rtype: array



   .. py:method:: _apply_impact_Allard_ea_2023(P, T, nu_0, gamma=None)

      Apply impact width/shift (Allard et al. 2023).

      :param P: Pressure in Pa.
      :type P: float
      :param T: Temperature in Kelvin.
      :type T: float
      :param nu_0: Transition frequencies in s^-1.
      :type nu_0: array
      :param gamma: Line widths.
      :type gamma: array, optional

      :returns: Modified transition frequencies or line widths.
      :rtype: array



   .. py:method:: process_transitions(input_file, **kwargs)

      Read transitions from the input file and compute cross-sections.

      :param input_file: Path to the input file.
      :type input_file: str
      :param \*\*kwargs: Additional arguments.



