Skip to content

Commit

Permalink
more tutorial fixes
Browse files Browse the repository at this point in the history
  • Loading branch information
bhazelton committed Sep 24, 2024
1 parent 8aea76e commit abd978e
Showing 1 changed file with 18 additions and 4 deletions.
22 changes: 18 additions & 4 deletions docs/analytic_beam_tutorial.rst
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,11 @@ or :meth:`pyuvdata.analytic_beam.AnalyticBeam.power_eval` methods as appropriate
Evaluating an Airy Beam power response
**************************************

This code evaluates and plots an Airy beam power response. Note that we exclude
the cross polarizations, since this is an unpolarized the cross polarizations
are identical to the auto polarization power beams. If the cross polarizations
are included the array returned from the ``power_eval`` method will be complex.

.. code-block:: python
>>> import matplotlib.pyplot as plt
Expand Down Expand Up @@ -85,6 +90,12 @@ Evaluating an Airy Beam power response
Evaluating a Short Dipole Beam E-Field response
***********************************************

This code evaluates and plots a short (Herzian) dipole beam E-field response
(also called the Jones matrix). Since it is the E-Field response, we have 4
effective maps because we have the response to each polarization basis vector
for each feed. In the case of a short dipole, these maps do not have an imaginary
part, but in general E-Field beams can be complex, so a complex array is returned.

.. code-block:: python
>>> import matplotlib.pyplot as plt
Expand Down Expand Up @@ -239,10 +250,13 @@ actually calculate the response of the new beam:
- ``freq_array``: an array of frequencies in Hz at which to evaluate the beam.
Must be a 1D array.

and it must return a complex array of beam responses with the shape:
(1, ``Npols``, ``freq_array.size``, ``az_array.size``).
``Npols`` is equal to either ``Nfeeds`` squared if ``include_cross_pols``
is True (the default) or ``Nfeeds`` if ``include_cross_pols`` is False.
and it must return an array of beam responses with the shape:
(1, ``Npols``, ``freq_array.size``, ``az_array.size``). The array can be complex
if cross polarizations are included (if it is not complex it will be made
complex if the cross polarizations are included when it is called via the
``power_eval`` method on the base class). ``Npols`` is equal to either
``Nfeeds`` squared if ``include_cross_pols`` is True (the default) or
``Nfeeds`` if ``include_cross_pols`` is False.

Note that if you need to do some manipulation or validation of the fields after
they are specified by the user, you can use the dataclass's ``__post_init__``
Expand Down

0 comments on commit abd978e

Please sign in to comment.