Skip to content

Commit 58a2058

Browse files
authored
Fix for sunpy 7.0 (#179)
1 parent ebb6b8a commit 58a2058

File tree

3 files changed

+16
-5
lines changed

3 files changed

+16
-5
lines changed

changelog/179.bugfix.rst

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Updated GOES event list to account for change in the HEK results from sunpy 7.0.

sunkit_instruments/goes_xrs/goes_xrs.py

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@ def get_goes_event_list(timerange, goes_class_filter=None):
3737
A list of all the flares found for the given time range.
3838
"""
3939
# Importing hek here to avoid calling code that relies on optional dependencies.
40+
from sunpy import __version__ as sunpy_version
4041
from sunpy.net import attrs, hek
4142

4243
# use HEK module to search for GOES events
@@ -69,13 +70,17 @@ def get_goes_event_list(timerange, goes_class_filter=None):
6970
goes_event_list = []
7071

7172
for r in result:
73+
if sunpy_version < "7.0.0":
74+
event_coord = (r["event_coord1"], r["event_coord2"])
75+
else:
76+
event_coord = (r["event_coord"])
7277
goes_event = {
7378
"event_date": parse_time(r["event_starttime"]).strftime("%Y-%m-%d"),
7479
"start_time": parse_time(r["event_starttime"]),
7580
"peak_time": parse_time(r["event_peaktime"]),
7681
"end_time": parse_time(r["event_endtime"]),
7782
"goes_class": str(r["fl_goescls"]),
78-
"goes_location": (r["event_coord1"], r["event_coord2"]),
83+
"goes_location": (event_coord),
7984
"noaa_active_region": r["ar_noaanum"],
8085
}
8186
goes_event_list.append(goes_event)

sunkit_instruments/goes_xrs/tests/test_goes_xrs.py

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -148,21 +148,26 @@ def test_comparison_with_IDL_version(goes_files, idl_files):
148148
# Test the other GOES-XRS functionality
149149
@pytest.mark.remote_data
150150
def test_goes_event_list():
151+
from astropy.coordinates import SkyCoord
152+
153+
from sunpy import __version__ as sunpy_version
154+
151155
# Set a time range to search
152156
trange = TimeRange("2011-06-07 00:00", "2011-06-08 00:00")
153157
# Test case where GOES class filter is applied
154158
result = goes.get_goes_event_list(trange, goes_class_filter="M1")
159+
base_type = tuple if sunpy_version < "7.0.0" else SkyCoord
155160
assert isinstance(result, list)
156161
assert isinstance(result[0], dict)
157162
assert isinstance(result[0]["event_date"], str)
158-
assert isinstance(result[0]["goes_location"], tuple)
163+
assert isinstance(result[0]["goes_location"], base_type)
159164
assert isinstance(result[0]["peak_time"], Time)
160165
assert isinstance(result[0]["start_time"], Time)
161166
assert isinstance(result[0]["end_time"], Time)
162167
assert isinstance(result[0]["goes_class"], str)
163168
assert isinstance(result[0]["noaa_active_region"], np.int64)
164169
assert result[0]["event_date"] == "2011-06-07"
165-
assert result[0]["goes_location"] == (54, -21)
170+
assert result[0]["goes_location"] in [(54, -21), SkyCoord(54 * u.deg, -21 * u.deg, frame="heliographic_stonyhurst", obstime=result[0]["start_time"])]
166171
# float error
167172
assert is_time_equal(result[0]["start_time"], parse_time((2011, 6, 7, 6, 16)))
168173
assert is_time_equal(result[0]["peak_time"], parse_time((2011, 6, 7, 6, 41)))
@@ -174,14 +179,14 @@ def test_goes_event_list():
174179
assert isinstance(result, list)
175180
assert isinstance(result[0], dict)
176181
assert isinstance(result[0]["event_date"], str)
177-
assert isinstance(result[0]["goes_location"], tuple)
182+
assert isinstance(result[0]["goes_location"], base_type)
178183
assert isinstance(result[0]["peak_time"], Time)
179184
assert isinstance(result[0]["start_time"], Time)
180185
assert isinstance(result[0]["end_time"], Time)
181186
assert isinstance(result[0]["goes_class"], str)
182187
assert isinstance(result[0]["noaa_active_region"], np.int64)
183188
assert result[0]["event_date"] == "2011-06-07"
184-
assert result[0]["goes_location"] == (54, -21)
189+
assert result[0]["goes_location"] in [(54, -21), SkyCoord(54 * u.deg, -21 * u.deg, frame="heliographic_stonyhurst", obstime=result[0]["start_time"])]
185190
assert is_time_equal(result[0]["start_time"], parse_time((2011, 6, 7, 6, 16)))
186191
assert is_time_equal(result[0]["peak_time"], parse_time((2011, 6, 7, 6, 41)))
187192
assert is_time_equal(result[0]["end_time"], parse_time((2011, 6, 7, 6, 59)))

0 commit comments

Comments
 (0)