Skip to content

Commit ee46905

Browse files
committed
Add 'silent' parameter to get_sw_speed and suppress print statements
1 parent b44913d commit ee46905

File tree

1 file changed

+25
-13
lines changed

1 file changed

+25
-13
lines changed

solarmach/__init__.py

Lines changed: 25 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,7 @@ def print_body_list():
7979
return data
8080

8181

82-
def get_sw_speed(body, dtime, trange=1, default_vsw=400.0):
82+
def get_sw_speed(body, dtime, trange=1, default_vsw=400.0, silent=False):
8383
"""
8484
Obtains measured solar wind bulk speed. Downloads solar wind speed
8585
measurements for "body" from "trange" hours before "dtime" until "trange"
@@ -98,6 +98,8 @@ def get_sw_speed(body, dtime, trange=1, default_vsw=400.0):
9898
default_vsw : float
9999
Default solar wind bulk speed in km/s that is returned if no
100100
measurements can be obtained. Default value 400.0
101+
silent : bool, optional
102+
If True, suppresses most print statements. Default is False. Use at own risk!
101103
102104
Returns
103105
-------
@@ -140,10 +142,12 @@ def get_sw_speed(body, dtime, trange=1, default_vsw=400.0):
140142
# sw_key['Wind'] = '|v|' # |v|
141143

142144
if body in ['Earth', 'SEMB-L1']:
143-
print(f"Using 'ACE' measurements for '{body}'.")
145+
if not silent:
146+
print(f"Using 'ACE' measurements for '{body}'.")
144147
body = 'ACE'
145148
elif body not in dataset.keys():
146-
print(f"Body '{body}' not supported, assuming default Vsw value of {default_vsw} km/s.")
149+
if not silent:
150+
print(f"Body '{body}' not supported, assuming default Vsw value of {default_vsw} km/s.")
147151
return default_vsw
148152

149153
try:
@@ -167,13 +171,16 @@ def get_sw_speed(body, dtime, trange=1, default_vsw=400.0):
167171
if idx.values[0] >= 0.0:
168172
return idx.values[0]
169173
else:
170-
print(f"No Vsw data found for '{body}' on {dtime}, assuming default Vsw value of {default_vsw} km/s.")
174+
if not silent:
175+
print(f"No Vsw data found for '{body}' on {dtime}, assuming default Vsw value of {default_vsw} km/s.")
171176
return default_vsw
172177
else:
173-
print(f"No Vsw data found for '{body}' on {dtime}, assuming default Vsw value of {default_vsw} km/s.")
178+
if not silent:
179+
print(f"No Vsw data found for '{body}' on {dtime}, assuming default Vsw value of {default_vsw} km/s.")
174180
return default_vsw
175181
except AttributeError:
176-
print(f"No Vsw data found for '{body}' on {dtime}, assuming default Vsw value of {default_vsw} km/s.")
182+
if not silent:
183+
print(f"No Vsw data found for '{body}' on {dtime}, assuming default Vsw value of {default_vsw} km/s.")
177184
return default_vsw
178185

179186

@@ -419,9 +426,11 @@ class SolarMACH():
419426
Longitute of reference position at the Sun
420427
reference_lat: float, optional
421428
Latitude of referene position at the Sun
429+
silent : bool, optional
430+
If True, suppresses most print statements. Default is False. Use at own risk!
422431
"""
423432

424-
def __init__(self, date, body_list, vsw_list=[], reference_long=None, reference_lat=None, coord_sys='Carrington', default_vsw=400.0, **kwargs):
433+
def __init__(self, date, body_list, vsw_list=[], reference_long=None, reference_lat=None, coord_sys='Carrington', default_vsw=400.0, silent=False, **kwargs):
425434
if 'diff_rot' in kwargs.keys():
426435
self.diff_rot = kwargs['diff_rot']
427436
else:
@@ -453,8 +462,9 @@ def __init__(self, date, body_list, vsw_list=[], reference_long=None, reference_
453462
try:
454463
pos_E = get_horizons_coord(399, self.date, None) # (lon, lat, radius) in (deg, deg, AU)
455464
except (ValueError, RuntimeError):
456-
print('')
457-
print('!!! No ephemeris found for Earth for date {self.date} - there probably is a problem with JPL HORIZONS.')
465+
if not silent:
466+
print('')
467+
print('!!! No ephemeris found for Earth for date {self.date} - there probably is a problem with JPL HORIZONS.')
458468
if coord_sys=='Carrington':
459469
self.pos_E = pos_E.transform_to(frames.HeliographicCarrington(observer='Sun'))
460470
elif coord_sys=='Stonyhurst':
@@ -468,9 +478,10 @@ def __init__(self, date, body_list, vsw_list=[], reference_long=None, reference_
468478
vsw_list2 = copy.deepcopy(vsw_list)
469479

470480
if len(vsw_list2) == 0:
471-
print('No solar wind speeds defined, trying to obtain measurements...')
481+
if not silent:
482+
print('No solar wind speeds defined, trying to obtain measurements...')
472483
for body in body_list:
473-
vsw_list2.append(get_sw_speed(body=body, dtime=date, default_vsw=default_vsw))
484+
vsw_list2.append(get_sw_speed(body=body, dtime=date, default_vsw=default_vsw, silent=silent))
474485
# vsw_list = np.zeros(len(body_list)) + 400
475486

476487
random_cols = ['forestgreen', 'mediumblue', 'm', 'saddlebrown', 'tomato', 'olive', 'steelblue', 'darkmagenta',
@@ -539,8 +550,9 @@ def __init__(self, date, body_list, vsw_list=[], reference_long=None, reference_
539550
lat_sep = pos.lat.value - self.reference_lat
540551
latsep_list.append(lat_sep)
541552
except (ValueError, RuntimeError):
542-
print('')
543-
print('!!! No ephemeris for target "' + str(body) + '" for date ' + str(self.date))
553+
if not silent:
554+
print('')
555+
print('!!! No ephemeris for target "' + str(body) + '" for date ' + str(self.date))
544556
body_list.remove(body)
545557

546558
body_dict_short = {sel_key: bodies[sel_key] for sel_key in body_list}

0 commit comments

Comments
 (0)