task: metadata: install: pip install -e .[dev]
patch: diff --git a/docs/history.md b/docs/history.md
index c45f272..bff2bfd 100644
--- a/docs/history.md
+++ b/docs/history.md
@@ -7,6 +7,7 @@
 * MNT: use CODECOV token ({pull}`155`) by [@kmuehlbauer](https://github.com/kmuehlbauer).
 * MNT: fix path for notebook coverage ({pull}`157`) by [@kmuehlbauer](https://github.com/kmuehlbauer).
 * ADD: NEXRAD Level2 structured reader ({pull}`158`) by [@kmuehlbauer](https://github.com/kmuehlbauer) and [@mgrover1](https://github.com/mgrover1).
+* FIX: Add the proper elevation angle to fixed angle ({pull}`162`) by [@mgrover1](https://github.com/mgrover1).
 
 ## 0.4.3 (2024-02-24)
 
diff --git a/xradar/io/backends/nexrad_level2.py b/xradar/io/backends/nexrad_level2.py
index a2a0e4d..74bb8a0 100644
--- a/xradar/io/backends/nexrad_level2.py
+++ b/xradar/io/backends/nexrad_level2.py
@@ -1359,7 +1359,7 @@ class NexradLevel2Store(AbstractDataStore):
         prt_mode = "not_set"
         follow_mode = "not_set"
 
-        fixed_angle = self.root.msg_5["elevation_data"][self._group]
+        fixed_angle = self.root.msg_5["elevation_data"][self._group]["elevation_angle"]
 
         coords = {
             "azimuth": Variable((dim,), azimuth, get_azimuth_attrs(), encoding),

problem_statement: BUG: Expand Sweep Fixed Mode Variables in NEXRAD Reader
### Description

As of now, the elevation angle, variable thresholds, etc. are condensed into an ordered dictionary in the `sweep_fixed_mode` data variable in the individual sweep dataset.

For example,

```python
import xradar as xd
from open_radar_data import DATASETS

filename = "../../../../Downloads/KDMX20200810_154746_V06"
ds = xr.open_dataset(filename, group="sweep_0", engine="nexradlevel2")
print(ds.sweep_fixed_angle.values)
```

```python
array(OrderedDict([('elevation_angle', 0.4833984375), ('channel_config', 2),
('waveform_type', 1), ('super_resolution', 11), ('prf_number', 1), ('prf_pulse_count', 15),
('azimuth_rate', 15400), ('ref_thresh', 16), ('vel_thresh', 16), ('sw_thresh', 16),
('zdr_thres', 16), ('phi_thres', 16), ('rho_thres', 16), ('edge_angle_1', 0),
('dop_prf_num_1', 0), ('dop_prf_pulse_count_1', 0), ('edge_angle_2', 0),
('dop_prf_num_2', 0), ('dop_prf_pulse_count_2', 0), ('edge_angle_3', 0),
('dop_prf_num_3', 0), ('dop_prf_pulse_count_3', 0)]), dtype=object)
```

### What we should do

We should expand this dictionary, and add these as additional variables in the `xr.Variable` fields in the given `xr.Dataset`.

What are your thoughts here @kmuehlbauer ? I think this would make it easier to then aggregate given an elevation angle, instead of opening an ordered dictionary in numpy array

repo: openradar/xradar
test_cmd: pytest --no-header -rA --tb=line --color=no -p no:cacheprovider -W ignore::DeprecationWarning
test_patch: diff --git a/tests/io/test_nexrad_level2.py b/tests/io/test_nexrad_level2.py
index ce3f8ee..54307be 100644
--- a/tests/io/test_nexrad_level2.py
+++ b/tests/io/test_nexrad_level2.py
@@ -6,6 +6,7 @@
 
 from collections import OrderedDict
 
+import numpy as np
 import pytest
 import xarray
 
@@ -26,6 +27,7 @@ def test_open_nexradlevel2_datatree(nexradlevel2_files):
     assert ds["DBZH"].shape == (720, 1832)
     assert ds["DBZH"].dims == ("azimuth", "range")
     assert int(ds.sweep_number.values) == 0
+    np.testing.assert_almost_equal(ds.sweep_fixed_angle.values, 0.4833984)
 
 
 @pytest.mark.parametrize(