From 30077805a2460bee363570a9939a71098f57cafe Mon Sep 17 00:00:00 2001 From: Christian-Palmroos Date: Tue, 3 Feb 2026 16:30:06 +0200 Subject: [PATCH] Fixed an issue where plot_pfss()-method would crash with reference_lon==int(0). Also fixed a minor bug where pfss_table would display the latitudinal separation between reference and the Earth as the Earth's magnetic footpoint if no reference latitude was given. --- solarmach/__init__.py | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/solarmach/__init__.py b/solarmach/__init__.py index cd92e8c..9206323 100644 --- a/solarmach/__init__.py +++ b/solarmach/__init__.py @@ -1446,9 +1446,9 @@ def plot_pfss(self, lon_sep_angles = np.append(lon_sep_angles, lon_sep) lat_sep_angles = np.append(lat_sep_angles, lat_sep) - if self.reference_long: + if self.reference_long is not None: ref_earth_sep_lon = earth_footpoint[0] - self.reference_long if earth_footpoint[0] - self.reference_long < 180 else earth_footpoint[0] - self.reference_long - 360 - ref_earth_sep_lat = earth_footpoint[1] - self.reference_lat if self.reference_lat else earth_footpoint[1] + ref_earth_sep_lat = earth_footpoint[1] - self.reference_lat if self.reference_lat is not None else np.nan lon_sep_angles = np.append(lon_sep_angles, ref_earth_sep_lon) lat_sep_angles = np.append(lat_sep_angles, ref_earth_sep_lat) @@ -1456,7 +1456,7 @@ def plot_pfss(self, self.pfss_table["Footpoint lat separation to Earth's footpoint lat"] = lat_sep_angles # Reference longitude and corresponding parker spiral arm - if self.reference_long: + if self.reference_long is not None: delta_ref = self.reference_long if delta_ref < 0.: delta_ref = delta_ref + 360. @@ -1523,7 +1523,9 @@ def plot_pfss(self, self.reference_long_max = max(varyref_objects_longitudes) # TODO: IMPROVE! - # The following is a rather severe if-statement because it renders situations with a real londitudinal spread of bigger than 180° unusable. Unfortunately, there is no better solution as of now. + # The following is a rather severe if-statement because it renders situations + # with a real londitudinal spread of bigger than 180° unusable. + # Unfortunately, there is no better solution as of now. if self.reference_long_max-self.reference_long_min > 180: varyref_objects_longitudes2 = [] for lon in varyref_objects_longitudes: @@ -1789,7 +1791,7 @@ def legend_arrow(width, height, **_): cb_ax.set_ylabel('Heliographic latitude [deg]', fontsize=16) # 20 # Add footpoints, magnetic polarities and the reach of reference_long flux tube to PFSS_table - if self.reference_long: + if self.reference_long is not None: photospheric_footpoints.append(self.reference_long) fieldline_polarities.append(ref_objects[0].polarity) self.pfss_table["Reference flux tube lon range"] = [np.nan if i