seppy 0.1.12__py3-none-any.whl → 0.1.14__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of seppy might be problematic. Click here for more details.

seppy/tools/__init__.py CHANGED
@@ -19,7 +19,7 @@ from seppy.loader.solo import epd_load
19
19
  from seppy.loader.stereo import calc_av_en_flux_HET as calc_av_en_flux_ST_HET
20
20
  from seppy.loader.stereo import calc_av_en_flux_SEPT, stereo_load
21
21
  from seppy.loader.wind import wind3dp_load
22
- from seppy.util import *
22
+ from seppy.util import bepi_sixs_load, calc_av_en_flux_sixs, custom_warning, flux2series, resample_df
23
23
 
24
24
 
25
25
  # This is to get rid of this specific warning:
@@ -92,10 +92,8 @@ class Event:
92
92
  # names from the dataframe.
93
93
  self.load_all_viewing()
94
94
 
95
- # JG: This is NOT enough to just check this at this position! This needs to be aborting the process if the specific combination is chosen!
96
- # JG: Removed here and moved to appropriate positions.
97
95
  # # Check that the data that was loaded is valid. If not, give a warning.
98
- # self.validate_data()
96
+ self.validate_data()
99
97
 
100
98
  # Download radio cdf files ONLY if asked to
101
99
  if self.radio_spacecraft is not None:
@@ -107,15 +105,21 @@ class Event:
107
105
  Provide an error msg if this object is initialized with a combination that yields invalid data products.
108
106
  """
109
107
 
110
- # Data products for SolO/STEP before 22 Oct 2021 are no reliable for non-Pixel Averaged data
108
+ # SolO/STEP data before 22 Oct 2021 is not supported yet for non-'Pixel averaged' viewing
109
+ warn_mess_step_pixels_old = "SolO/STEP data is not included yet for individual Pixels for dates preceding Oct 22, 2021. Only 'Pixel averaged' is supported."
111
110
  if self.spacecraft == "solo" and self.sensor == "step":
112
111
  if self.start_date < pd.to_datetime("2021-10-22").date():
113
112
  if not self.viewing == 'Pixel averaged':
114
- raise Warning("WARNING! SolO/STEP data is not included yet for individual Pixels for dates preceding Oct 22, 2021.")
113
+ # when 'viewing' is undefined, only give a warning; if it's wrong defined, abort with warning
114
+ if not self.viewing:
115
+ # warnings.warn(message=warn_mess_step_pixels_old)
116
+ custom_warning(message=warn_mess_step_pixels_old)
117
+ else:
118
+ raise Warning(warn_mess_step_pixels_old)
115
119
 
116
120
  # Electron data for SolO/STEP is removed for now (Feb 2024, JG)
117
121
  if self.spacecraft == "solo" and self.sensor == "step" and self.species.lower()[0] == 'e':
118
- raise Warning("WARNING! SolO/STEP electron data is not implemented yet!")
122
+ raise Warning("SolO/STEP electron data is not implemented yet!")
119
123
 
120
124
  def update_onset_attributes(self, flux_series, onset_stats, onset_found, peak_flux, peak_time, fig, bg_mean):
121
125
  """
@@ -269,6 +273,10 @@ class Event:
269
273
  meta = {"E5": "0.45 - 0.50 MeV",
270
274
  "E15": "0.70 - 1.10 MeV"}
271
275
 
276
+ # TODO:
277
+ # - add resample_df here?
278
+ # - add pos_timestamp here
279
+
272
280
  self.update_viewing(viewing)
273
281
  return df, meta
274
282
 
@@ -341,7 +349,8 @@ class Event:
341
349
  df, meta = bepi_sixs_load(startdate=self.start_date,
342
350
  enddate=self.end_date,
343
351
  side=viewing,
344
- path=self.data_path)
352
+ path=self.data_path,
353
+ pos_timestamp='center')
345
354
  df_i = df[[f"P{i}" for i in range(1, 10)]]
346
355
  df_e = df[[f"E{i}" for i in range(1, 8)]]
347
356
  return df_i, df_e, meta
@@ -472,7 +481,10 @@ class Event:
472
481
  self.update_viewing(viewing)
473
482
 
474
483
  if self.spacecraft == 'solo':
475
- if viewing == 'sun':
484
+ if not viewing:
485
+ raise Exception("For this operation, the instrument's 'viewing' direction must be defined in the call of 'Event'!")
486
+
487
+ elif viewing == 'sun':
476
488
 
477
489
  self.current_df_i = self.df_i_sun
478
490
  self.current_df_e = self.df_e_sun
@@ -1094,7 +1106,7 @@ class Event:
1094
1106
 
1095
1107
  if (self.spacecraft == 'solo' or self.spacecraft == 'psp'):
1096
1108
  plabel = AnchoredText(f"Onset time: {str(onset_stats[-1])[:19]}\n"
1097
- f"Peak flux: {df_flux_peak['flux'][0]:.2E}",
1109
+ f"Peak flux: {df_flux_peak['flux'].iloc[0]:.2E}",
1098
1110
  prop=dict(size=13), frameon=True,
1099
1111
  loc=(4))
1100
1112
  # if(self.spacecraft[:2].lower() == 'st' or self.spacecraft == 'soho' or self.spacecraft == 'wind'):
@@ -1178,8 +1190,9 @@ class Event:
1178
1190
  # Check if background is separated from plot range by over a day, issue a warning if so, but don't
1179
1191
  if (background_range[0] < xlim[0] - datetime.timedelta(days=1) and background_range[0] < xlim[1] - datetime.timedelta(days=1)) or \
1180
1192
  (background_range[1] > xlim[0] + datetime.timedelta(days=1) and background_range[1] > xlim[1] + datetime.timedelta(days=1)):
1181
- background_warning = "NOTICE that your background_range is separated from plot_range by over a day.\nIf this was intentional you may ignore this warning."
1182
- warnings.warn(message=background_warning)
1193
+ background_warning = "Your background_range is separated from plot_range by over a day. If this was intentional you may ignore this warning."
1194
+ # warnings.warn(message=background_warning)
1195
+ custom_warning(message=background_warning)
1183
1196
 
1184
1197
  if (self.spacecraft[:2].lower() == 'st' and self.sensor == 'sept') \
1185
1198
  or (self.spacecraft.lower() == 'psp' and self.sensor.startswith('isois')) \
@@ -1503,6 +1516,8 @@ class Event:
1503
1516
  return yaxis_bin_boundaries * y_multiplier
1504
1517
 
1505
1518
  def combine_grids_and_ybins(grid, grid1, y_arr, y_arr1):
1519
+ # TODO: Which bin exactly is removed here? HET? EPT? (JG)
1520
+
1506
1521
  # solo/het lowest electron channel partially overlaps with ept highest channel -> erase the "extra" bin where overlapping hapens
1507
1522
  if self.spacecraft == "solo" and (self.sensor == "het" or other.sensor == "het") and self.species in ("electrons", "electron", 'e'):
1508
1523
 
@@ -1545,6 +1560,8 @@ class Event:
1545
1560
  if self.spacecraft == "solo":
1546
1561
 
1547
1562
  if instrument == "step":
1563
+ # custom_warning('The lower STEP energy channels are partly overlapping, which is not correctly implemented at the moment!')
1564
+ raise Warning('SolO/STEP is not implemented yet in the dynamic spectrum tool!')
1548
1565
 
1549
1566
  # All viewings are contained in the same dataframe, choose the pixel (viewing) here
1550
1567
  pixel = self.viewing.split(' ')[1]
@@ -1599,8 +1616,13 @@ class Event:
1599
1616
  s_identifier = "protons"
1600
1617
  if instrument.lower() == "ephin":
1601
1618
  particle_data = self.current_df_e
1619
+ # Here drop the E300 channel altogether from the dataframe if the data is produced after Oct 4, 2017,
1620
+ # for it contains no valid data. Keyword axis==1 refers to the columns axis.
1621
+ if self.start_date > pd.to_datetime("2017-10-04").date():
1622
+ particle_data = particle_data.drop("E300", axis=1)
1623
+
1602
1624
  s_identifier = "electrons"
1603
- raise Warning('SOHO/EPHIN is not implemented yet in the dynamic spectrum tool!')
1625
+ # raise Warning('SOHO/EPHIN is not implemented yet in the dynamic spectrum tool!')
1604
1626
 
1605
1627
  if spacecraft == "psp":
1606
1628
  if instrument.lower() == "isois-epihi":
@@ -2285,11 +2307,11 @@ class Event:
2285
2307
  energy_ranges = self.current_energies["channels_dict_df_p"]["ch_strings"].values
2286
2308
  if self.sensor.lower() == "ephin":
2287
2309
  # Choose only the first 4 channels (E150, E300, E1300 and E3000)
2288
- # This are the only electron channels (rest p and He), and we
2310
+ # These are the only electron channels (rest are p and He), and we
2289
2311
  # use only electron data here.
2290
2312
  energy_ranges = [val for val in self.current_energies.values()][:4]
2291
2313
  if self.sensor.lower() in ("ephin-5", "ephin-15"):
2292
- energy_ranges = [value for key, value in self.current_energies.items()]
2314
+ energy_ranges = [value for _, value in self.current_energies.items()]
2293
2315
 
2294
2316
  if self.spacecraft == "psp":
2295
2317
  energy_dict = self.meta
@@ -2442,9 +2464,13 @@ class Event:
2442
2464
  from IPython.display import display
2443
2465
 
2444
2466
  # This has to be run first, otherwise self.current_df does not exist
2445
- # Note that PSP will by default have its viewing=="all", which does not yield proper dataframes
2446
- if self.viewing != "all":
2447
- self.choose_data(self.viewing)
2467
+ # Note that PSP will by default have its viewing=='all', which does not yield proper dataframes
2468
+ if self.viewing != 'all':
2469
+ if self.spacecraft == 'solo' and not self.viewing:
2470
+ raise Warning("For this operation the instrument's 'viewing' direction must be defined in the call of 'Event'! Please define and re-run.")
2471
+ return
2472
+ else:
2473
+ self.choose_data(self.viewing)
2448
2474
  else:
2449
2475
  if self.sensor == "isois-epihi":
2450
2476
  # Just choose data with either ´A´ or ´B´. I'm not sure if there's a difference
@@ -2521,6 +2547,7 @@ class Event:
2521
2547
  'display.max_columns', None,
2522
2548
  ):
2523
2549
  display(df)
2550
+ return
2524
2551
 
2525
2552
  def save_and_update_rcparams(self, plotting_function: str):
2526
2553
  """
seppy/tools/widgets.py CHANGED
@@ -61,7 +61,7 @@ radio_dict = {
61
61
  "None": None,
62
62
  "STEREO-A": ("ahead", "STEREO-A"),
63
63
  "STEREO-B": ("behind", "STEREO-B"),
64
- "WIND (Coming soon!)": ("wind", "WIND")
64
+ # "WIND (Coming soon!)": ("wind", "WIND") # TODO: re-add when supported!
65
65
  }
66
66
 
67
67
  # Drop-downs for dynamic particle spectrum:
seppy/util/__init__.py CHANGED
@@ -1,16 +1,33 @@
1
1
 
2
- import numpy as np
3
- import pandas as pd
2
+ import datetime
3
+ import warnings
4
+
4
5
  import astropy.constants as const
5
6
  import astropy.units as u
7
+ import numpy as np
8
+ import pandas as pd
6
9
  import sunpy.sun.constants as sconst
7
-
8
- import datetime
9
10
  from sunpy.coordinates import get_horizons_coord
10
11
 
11
12
  # Utilities toolbox, contains helpful functions
12
13
 
13
14
 
15
+ def custom_formatwarning(message, *args, **kwargs):
16
+ # ignore everything except the message
17
+ FAIL = '\033[91m'
18
+ ENDC = '\033[0m'
19
+ BOLD = "\033[1m"
20
+ return BOLD+FAIL+'WARNING: '+ENDC+ str(message) + '\n'
21
+
22
+
23
+ def custom_warning(message):
24
+ formatwarning_orig = warnings.formatwarning
25
+ warnings.formatwarning = custom_formatwarning
26
+ warnings.warn(message)
27
+ warnings.formatwarning = formatwarning_orig
28
+ return
29
+
30
+
14
31
  def resample_df(df, resample, pos_timestamp="center", origin="start"):
15
32
  """
16
33
  Resamples a Pandas Dataframe or Series to a new frequency.
@@ -25,8 +42,9 @@ def resample_df(df, resample, pos_timestamp="center", origin="start"):
25
42
  Controls if the timestamp is at the center of the time bin, or at
26
43
  the start of it
27
44
  origin : str, default 'start'
28
- Controls if the origin of resampling is at the start of the day
29
- (midnight) or at the first entry of the input dataframe/series
45
+ Controls if the origin of resampling is at the first entry of the
46
+ input dataframe/series (‘start’), or at the start of the day
47
+ (‘start_day’)
30
48
 
31
49
  Returns:
32
50
  ----------
@@ -75,7 +93,7 @@ def flux2series(flux, dates, cadence=None):
75
93
  return flux_series
76
94
 
77
95
 
78
- def bepicolombo_sixs_stack(path, date, side):
96
+ def bepicolombo_sixs_stack(path, date, side, pos_timestamp='center'):
79
97
  # side is the index of the file here
80
98
  try:
81
99
  try:
@@ -90,6 +108,26 @@ def bepicolombo_sixs_stack(path, date, side):
90
108
  times = [t.tz_convert(None) for t in times]
91
109
  df.index = np.array(times)
92
110
  df = df.drop(columns=['TimeUTC'])
111
+
112
+ # TODO: (as it's not really nicely done so far)
113
+ # careful!
114
+ # adjusting the position of the timestamp manually.
115
+ # requires knowledge of the original time resolution and timestamp position!
116
+ if type(date) is datetime.datetime:
117
+ change_date = pd.Timestamp(2022, 8, 29)
118
+ elif type(date) is datetime.date:
119
+ change_date = pd.Timestamp(2022, 8, 29).date()
120
+ if date < change_date:
121
+ cadence = 8
122
+ elif date >= change_date:
123
+ cadence = 24
124
+ #
125
+ if pos_timestamp == 'center':
126
+ df.index = df.index+pd.Timedelta(f'{cadence/2}s')
127
+ # warnings.warn("Assuming cadence of 8s before 2022-08-29 and 24s after!")
128
+ custom_warning("Assuming cadence of 8s before 2022-08-29 and 24s after!")
129
+ elif pos_timestamp == 'start':
130
+ pass
93
131
  except FileNotFoundError:
94
132
  print(f'Unable to open {filename}')
95
133
  df = pd.DataFrame()
@@ -97,14 +135,14 @@ def bepicolombo_sixs_stack(path, date, side):
97
135
  return df, filename
98
136
 
99
137
 
100
- def bepi_sixs_load(startdate, enddate, side, path):
138
+ def bepi_sixs_load(startdate, enddate, side, path, pos_timestamp='center'):
101
139
  dates = pd.date_range(startdate, enddate)
102
140
 
103
141
  # read files into Pandas dataframes:
104
- df, file = bepicolombo_sixs_stack(path, startdate, side=side)
142
+ df, file = bepicolombo_sixs_stack(path, startdate, side=side, pos_timestamp=pos_timestamp)
105
143
  if len(dates) > 1:
106
144
  for date in dates[1:]:
107
- t_df, file = bepicolombo_sixs_stack(path, date.date(), side=side)
145
+ t_df, file = bepicolombo_sixs_stack(path, date.date(), side=side, pos_timestamp=pos_timestamp)
108
146
  df = pd.concat([df, t_df])
109
147
 
110
148
  channels_dict = {"Energy_Bin_str": {'E1': '71 keV', 'E2': '106 keV', 'E3': '169 keV', 'E4': '280 keV', 'E5': '960 keV', 'E6': '2240 keV', 'E7': '8170 keV',
@@ -146,6 +184,9 @@ def calc_av_en_flux_sixs(df, channel, species):
146
184
  GEOMFACTOR_PROT_COMB89 = 3.34
147
185
  GEOMFACTOR_ELEC_COMB56 = 0.0972
148
186
 
187
+ if type(channel) is list and len(channel) == 1:
188
+ channel = channel[0]
189
+
149
190
  if species in ['p', 'protons']:
150
191
  if channel == [8, 9]:
151
192
  countrate = df['P8'] * GEOMFACTOR_PROT8 + df['P9'] * GEOMFACTOR_PROT9
@@ -313,7 +354,7 @@ def speed2energy(species, speed):
313
354
  mass_dict = {'p': const.m_p, 'e': const.m_e}
314
355
  gamma = 1/np.sqrt(1-speed**2/const.c**2)
315
356
  K = (gamma-1)*mass_dict[species]*const.c**2
316
- return K.to(u.MeV)
357
+ return K.to(u.MeV)
317
358
 
318
359
 
319
360
  def speed2momentum(species, speed):
seppy/version.py CHANGED
@@ -5,4 +5,4 @@ try:
5
5
  from setuptools_scm import get_version
6
6
  __version__ = get_version(root='..', relative_to=__file__)
7
7
  except Exception:
8
- __version__ = '0.1.12'
8
+ __version__ = '0.1.14'
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: seppy
3
- Version: 0.1.12
3
+ Version: 0.1.14
4
4
  Summary: SEPpy
5
5
  Home-page: https://github.com/serpentine-h2020/SEPpy
6
6
  Author: Jan Gieseler
@@ -14,34 +14,33 @@ Classifier: Programming Language :: Python
14
14
  Classifier: Programming Language :: Python :: 3.8
15
15
  Classifier: Programming Language :: Python :: 3.9
16
16
  Classifier: Programming Language :: Python :: 3.10
17
+ Classifier: Programming Language :: Python :: 3.11
18
+ Classifier: Programming Language :: Python :: 3.12
17
19
  Classifier: Topic :: Scientific/Engineering :: Physics
18
20
  Requires-Python: >=3.8
19
21
  License-File: licenses/LICENSE.rst
20
22
  Requires-Dist: astropy
23
+ Requires-Dist: astroquery
21
24
  Requires-Dist: bs4
22
25
  Requires-Dist: cdflib
23
- Requires-Dist: datetime
24
- Requires-Dist: drms
25
- Requires-Dist: h5netcdf
26
26
  Requires-Dist: ipykernel
27
27
  Requires-Dist: ipywidgets
28
- Requires-Dist: lxml
29
28
  Requires-Dist: matplotlib
29
+ Requires-Dist: mpl-animators>=1.0.0
30
30
  Requires-Dist: numpy
31
31
  Requires-Dist: pandas
32
32
  Requires-Dist: pooch
33
33
  Requires-Dist: requests
34
34
  Requires-Dist: solo-epd-loader
35
- Requires-Dist: sunpy >=4.1.0
36
- Requires-Dist: zeep
35
+ Requires-Dist: sunpy>=4.1.0
37
36
  Provides-Extra: all
38
37
  Provides-Extra: docs
39
- Requires-Dist: sphinx ; extra == 'docs'
40
- Requires-Dist: sphinx-automodapi ; extra == 'docs'
38
+ Requires-Dist: sphinx; extra == "docs"
39
+ Requires-Dist: sphinx-automodapi; extra == "docs"
41
40
  Provides-Extra: test
42
- Requires-Dist: pytest ; extra == 'test'
43
- Requires-Dist: pytest-doctestplus ; extra == 'test'
44
- Requires-Dist: pytest-cov ; extra == 'test'
41
+ Requires-Dist: pytest; extra == "test"
42
+ Requires-Dist: pytest-doctestplus; extra == "test"
43
+ Requires-Dist: pytest-cov; extra == "test"
45
44
 
46
45
  seppy
47
46
  =====
@@ -0,0 +1,29 @@
1
+ seppy/__init__.py,sha256=M8ZBbGj0r_XdNVLzaSXF38M4wyzAgUX32LXcSYh5O5A,254
2
+ seppy/version.py,sha256=Yt0zY5AwafNxgEo2ms3qwU0OMj3CY7uImiooX_Os2jQ,346
3
+ seppy/data/test/20230719_side0.csv,sha256=0htTQcdQydRc92bkO26lxK8tDRSeN6uov13VfsqmUFQ,72368
4
+ seppy/data/test/20230719_side1.csv,sha256=iHCfHmOIltJatncWpns_zq3ym_-2yRu0twmDvQDbmJw,72368
5
+ seppy/data/test/20230719_side2.csv,sha256=eYyEQX5fNDO4E57KwKN3bHs6u5-lHaAhIHt-3f20Urg,72368
6
+ seppy/data/test/epi21106.rl2,sha256=Fhq5A5D1pKqEfV9mx6T8tjEei4HmSfmWBR0XaLJl_JI,180858
7
+ seppy/data/test/sept_ahead_ele_sun_2006_318_1min_l2_v03.dat,sha256=ReZ7cvIcC4Z_nDJ-oJQ7lsKSziA_qlZsAG74F5n3M2o,167882
8
+ seppy/data/test/soho_erne-hed_l2-1min_20211028_v01.cdf,sha256=RX1XX6eQevCuXqc1tTAEjPsXtlgbDeP2DsmRFVbsGwg,278505
9
+ seppy/data/test/solo_l2_mag-rtn-normal-1-minute_20210712_v01.cdf,sha256=Tc_-3YQMVGDwJgN1td2iqTPGfCF7YwmuyYZ2G0NiSoY,59249
10
+ seppy/data/test/sta_l1_het_20211028_v01.cdf,sha256=429TIPXSQI5heQVNqyRYLF7HUDZPByzk-xYf9IzSJ0U,215082
11
+ seppy/data/test/wi_sfsp_3dp_00000000_v01.cdf,sha256=ifAM0FiB2tepHmlpsqbotJMyQqSB3bwpPcKD6VhukFA,30939
12
+ seppy/data/test/wi_sfsp_3dp_20200213_v01.cdf,sha256=UiKcBPcWZkh3KIBigoZubTJ3Fw90E8p7XhbA9uW6VWk,67008
13
+ seppy/loader/psp.py,sha256=PbxCEW-06d2I_JGIfIAqqXMU_uPdQFhmh-fUoXpzz9k,31535
14
+ seppy/loader/soho.py,sha256=EIFKde1dGpT9yU6bU-XtTsHUCvTEkzHhdPOOMtqVrDU,20262
15
+ seppy/loader/solo.py,sha256=Nst2ZJU2yH5NHsB6M_69ryVfzt978hbmqhxaHZJREVg,3054
16
+ seppy/loader/stereo.py,sha256=S0_IRIFbFxLH00bSIt1uZMflmuG5dAU5sKw0w9NL9oM,24583
17
+ seppy/loader/wind.py,sha256=3rWV_EOcY7sY69eqtCQCZxL5GxAQZuMm1-wpJJxrej8,18460
18
+ seppy/tests/__init__.py,sha256=1D-l3TVbwIZHY78A-sB7kc4ldldX8ZaEq-Ntph51WVw,108
19
+ seppy/tests/test_loader.py,sha256=mt52vrAeSEtJ-od4Cqt0HrscN_ykKNHklGZm8OTZjLs,7767
20
+ seppy/tests/test_tools.py,sha256=NrKXrlgCsy9RRx2V7fUGRtB1l8N0_CXasyGjoB_lSNU,31518
21
+ seppy/tools/__init__.py,sha256=Ge3lQ9zVRJ27aaHSet2I1wQ9tD4emVfjnn49pUGcoiY,116086
22
+ seppy/tools/swaves.py,sha256=OcohPXLko0ik9FLyYMVkYxI75W4XzOKvQ2Ylnwi-wlQ,3139
23
+ seppy/tools/widgets.py,sha256=atQj9vvus0UgrUV6vlPcTdjpaidnERUevOp6FUmGLSI,6820
24
+ seppy/util/__init__.py,sha256=0J3DNmOdh9X8a-uZy0yfFe1ubFSfcF5b7K4RMSJvGHA,15705
25
+ seppy-0.1.14.dist-info/LICENSE.rst,sha256=SxptLPCIHKdfDjyguGdC7ai6Eze-Vz_t1jdqC8h19js,1473
26
+ seppy-0.1.14.dist-info/METADATA,sha256=adiL7bpY08aZg2c5uC_o_8j5hTlWn-8nksTv8v9KEcU,4399
27
+ seppy-0.1.14.dist-info/WHEEL,sha256=HiCZjzuy6Dw0hdX5R3LCFPDmFS4BWl8H-8W39XfmgX4,91
28
+ seppy-0.1.14.dist-info/top_level.txt,sha256=G2Op1GREPmbCX81isNhYY_7ZZyLWLIm-MJC04J4Fgc4,6
29
+ seppy-0.1.14.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: bdist_wheel (0.42.0)
2
+ Generator: setuptools (72.2.0)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5
 
@@ -1,27 +0,0 @@
1
- seppy/__init__.py,sha256=M8ZBbGj0r_XdNVLzaSXF38M4wyzAgUX32LXcSYh5O5A,254
2
- seppy/version.py,sha256=BdI0483CKw5g6ZLk-JrMdNNQTyX9GkavgloDI4wsv2Y,346
3
- seppy/data/test/epi21106.rl2,sha256=Fhq5A5D1pKqEfV9mx6T8tjEei4HmSfmWBR0XaLJl_JI,180858
4
- seppy/data/test/psp_isois-epihi_l2-het-rates60_20210531_v15.cdf,sha256=u0XcZ9SpocPwuKAmu7w2qDU_yLXxg3eyf0VXvayWlT4,401828
5
- seppy/data/test/sept_ahead_ele_sun_2006_318_1min_l2_v03.dat,sha256=ReZ7cvIcC4Z_nDJ-oJQ7lsKSziA_qlZsAG74F5n3M2o,167882
6
- seppy/data/test/soho_erne-hed_l2-1min_20211028_v01.cdf,sha256=RX1XX6eQevCuXqc1tTAEjPsXtlgbDeP2DsmRFVbsGwg,278505
7
- seppy/data/test/solo_l2_mag-rtn-normal-1-minute_20210712_v01.cdf,sha256=Tc_-3YQMVGDwJgN1td2iqTPGfCF7YwmuyYZ2G0NiSoY,59249
8
- seppy/data/test/sta_l1_het_20211028_v01.cdf,sha256=429TIPXSQI5heQVNqyRYLF7HUDZPByzk-xYf9IzSJ0U,215082
9
- seppy/data/test/wi_sfsp_3dp_00000000_v01.cdf,sha256=ifAM0FiB2tepHmlpsqbotJMyQqSB3bwpPcKD6VhukFA,30939
10
- seppy/data/test/wi_sfsp_3dp_20200213_v01.cdf,sha256=UiKcBPcWZkh3KIBigoZubTJ3Fw90E8p7XhbA9uW6VWk,67008
11
- seppy/loader/psp.py,sha256=PbxCEW-06d2I_JGIfIAqqXMU_uPdQFhmh-fUoXpzz9k,31535
12
- seppy/loader/soho.py,sha256=j3cwsrJ2orWIMD_V5_bh0SUti1B53bOgUGu64lZj7o4,19466
13
- seppy/loader/solo.py,sha256=Nst2ZJU2yH5NHsB6M_69ryVfzt978hbmqhxaHZJREVg,3054
14
- seppy/loader/stereo.py,sha256=2dW62ZyzrJ3Rnz1dwqJEqN9kzPFJcc709PsKZsxByF8,24339
15
- seppy/loader/wind.py,sha256=JerMQ-hzfOwmdXbkhB-_6NE3lCB5dwzf-x4y2DHf4DA,18375
16
- seppy/tests/__init__.py,sha256=1D-l3TVbwIZHY78A-sB7kc4ldldX8ZaEq-Ntph51WVw,108
17
- seppy/tests/test_loader.py,sha256=KDWqRcO6X3Md0xjV1oRFtqRFH-6sqXAVE_R7ptPeqlg,7636
18
- seppy/tests/test_tools.py,sha256=ooGrnLZOdvUSCVaf-e1iiflE9U4ww_EaHrmyejoWsIE,23441
19
- seppy/tools/__init__.py,sha256=XhjbQRQJKBmHWw_AgngX-qc1RmRCxWhiH8Q-7zTXAp4,114474
20
- seppy/tools/swaves.py,sha256=OcohPXLko0ik9FLyYMVkYxI75W4XzOKvQ2Ylnwi-wlQ,3139
21
- seppy/tools/widgets.py,sha256=DNAkFNPGZP6AJgJIIg9TD97R2L0Ba39aiC98rEFF7kw,6786
22
- seppy/util/__init__.py,sha256=bYJi19iafNS3U6UbcdmbG079DR_DHphafoBQPzUln-4,14162
23
- seppy-0.1.12.dist-info/LICENSE.rst,sha256=SxptLPCIHKdfDjyguGdC7ai6Eze-Vz_t1jdqC8h19js,1473
24
- seppy-0.1.12.dist-info/METADATA,sha256=W1fuqlB9lniZxWtj1fGn3UeAgzIqQxosDjmC7m5D1HY,4349
25
- seppy-0.1.12.dist-info/WHEEL,sha256=oiQVh_5PnQM0E3gPdiz09WCNmwiHDMaGer_elqB3coM,92
26
- seppy-0.1.12.dist-info/top_level.txt,sha256=G2Op1GREPmbCX81isNhYY_7ZZyLWLIm-MJC04J4Fgc4,6
27
- seppy-0.1.12.dist-info/RECORD,,