geospacelab 0.10.4__py3-none-any.whl → 0.11.0__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.
geospacelab/__init__.py CHANGED
@@ -6,7 +6,7 @@ __author__ = "Lei Cai"
6
6
  __copyright__ = "Copyright 2021, GeospaceLAB"
7
7
  __credits__ = ["Lei Cai"]
8
8
  __license__ = "BSD-3-Clause License"
9
- __version__ = "0.10.4"
9
+ __version__ = "0.11.0"
10
10
  __maintainer__ = "Lei Cai"
11
11
  __email__ = "lei.cai@oulu.fi"
12
12
  __status__ = "Developing"
@@ -461,9 +461,9 @@ class VariableBase(object):
461
461
  :return:
462
462
  """
463
463
  if issubclass(var_new.__class__, VariableBase):
464
- v = var_new.value
464
+ v = copy.deepcopy(var_new.value)
465
465
  else:
466
- v = var_new
466
+ v = copy.deepcopy(var_new)
467
467
 
468
468
  if self.value is None:
469
469
  self.value = v
@@ -121,6 +121,8 @@ class Dataset(datahub.DatasetSourced):
121
121
  self.orbit_id = self.orbit_id[0]
122
122
  if self.time_clip:
123
123
  self.time_filter_by_range()
124
+
125
+ del load_obj
124
126
 
125
127
  def get_time_ind(self, ut, time_res=20*60, var_datetime_name='DATETIME', edge_cutoff=False, **kwargs):
126
128
  ind = super().get_time_ind(ut, time_res=time_res, var_datetime_name=var_datetime_name, edge_cutoff=edge_cutoff, **kwargs)
@@ -21,92 +21,93 @@ class Loader(object):
21
21
  self.load_data()
22
22
 
23
23
  def load_data(self):
24
- dataset = netCDF4.Dataset(self.file_path)
25
24
  variables = {}
26
25
  metadata = {}
26
+ with netCDF4.Dataset(self.file_path) as dataset:
27
+
28
+ if self.pole == 'N':
29
+ pole = self.pole
30
+ pole_str = 'NORTH'
31
+ elif self.pole == 'S':
32
+ pole = self.pole
33
+ pole_str = 'SOUTH'
34
+ else:
35
+ raise ValueError
36
+ # Time and Position
37
+ # sectime = int(np.array(dataset.variables['TIME']).flatten()[0])
38
+ # doy = int(np.array(dataset.variables['DOY']).flatten()[0])
39
+ # year = int(np.array(dataset.variables['YEAR']).flatten()[0])
40
+ # dt0 = dttool.convert_doy_to_datetime(year, doy)
41
+ starting_time = datetime.datetime.strptime(dataset.STARTING_TIME, "%Y%j%H%M%S")
42
+ variables['STARTING_TIME'] = starting_time
43
+ stopping_time = datetime.datetime.strptime(dataset.STOPPING_TIME, "%Y%j%H%M%S")
44
+ variables['STOPPING_TIME'] = stopping_time
45
+ dt0 = dttool.get_start_of_the_day(starting_time)
46
+
47
+ variables['SC_LAT'] = np.array(dataset.variables['LATITUDE'])
48
+ variables['SC_LON'] = np.array(dataset.variables['LONGITUDE'])
49
+ variables['SC_ALT'] = np.array(dataset.variables['ALTITUDE'])
50
+
51
+ variables['GRID_MLAT'] = np.array(dataset.variables['LATITUDE_GEOMAGNETIC_GRID_MAP'])
52
+ variables['GRID_MLON'] = np.array(
53
+ dataset.variables['LONGITUDE_GEOMAGNETIC_' + pole_str + '_GRID_MAP'])
54
+ variables['GRID_MLT'] = np.array(dataset.variables['MLT_GRID_MAP'])
55
+ if self.pole == 'S':
56
+ variables['GRID_MLAT'] = - variables['GRID_MLAT']
57
+ variables['GRID_UT'] = np.array(dataset.variables['UT_' + pole])
58
+ lat = np.array(variables['GRID_MLAT'])
59
+ ut = np.array(variables['GRID_UT'])
60
+ lat = np.where(ut == 0, np.nan, lat)
61
+ if self.pole == 'N':
62
+ ind_mid_t = np.where(lat == np.nanmax(lat.flatten()))
63
+ else:
64
+ ind_mid_t = np.where(lat == np.nanmin(lat.flatten()))
65
+ sectime0 = variables['GRID_UT'][ind_mid_t][0] * 3600
66
+
67
+ diff_days = dttool.get_diff_days(starting_time, stopping_time)
68
+ if diff_days > 0 and sectime0 < 0.5 * 86400.:
69
+ dt = dt0 + datetime.timedelta(seconds=int(sectime0 + 86400))
70
+ else:
71
+ dt = dt0 + datetime.timedelta(seconds=int(sectime0))
72
+ variables['DATETIME'] = dt
73
+
74
+ invalid_ut_inds = np.where(ut == 0)
75
+ # Auroral map, #colors: 0: '1216', 1: '1304', 2: '1356', 3: 'LBHS', 4: 'LBHL'.
76
+ variables['EMISSION_SPECTRA'] = ['1216', '1304', '1356', 'LBHS', 'LBHL']
77
+ disk_aur = np.array(dataset.variables['DISK_RADIANCEDATA_INTENSITY_' + pole_str])
78
+ # disk_aur[:, invalid_ut_inds] = np.nan
79
+ disk_aur[disk_aur <= 0] = 0.1
80
+ variables['GRID_AUR_1216'] = disk_aur[0, ::]
81
+ variables['GRID_AUR_1216'][invalid_ut_inds] = np.nan
82
+ variables['GRID_AUR_1304'] = disk_aur[1, ::]
83
+ variables['GRID_AUR_1304'][invalid_ut_inds] = np.nan
84
+ variables['GRID_AUR_1356'] = disk_aur[2, ::]
85
+ variables['GRID_AUR_1356'][invalid_ut_inds] = np.nan
86
+ variables['GRID_AUR_LBHS'] = disk_aur[3, ::]
87
+ variables['GRID_AUR_LBHS'][invalid_ut_inds] = np.nan
88
+ variables['GRID_AUR_LBHL'] = disk_aur[4, ::]
89
+ variables['GRID_AUR_LBHL'][invalid_ut_inds] = np.nan
90
+
91
+ # Auroral oval boundary
92
+ variables['AOB_EQ_MLAT'] = np.array(dataset.variables[pole_str + '_GEOMAGNETIC_LATITUDE'])
93
+ variables['AOB_EQ_MLON'] = np.array(dataset.variables[pole_str + '_GEOMAGNETIC_LONGITUDE'])
94
+ variables['AOB_EQ_MLT'] = np.array(dataset.variables[pole_str + '_MAGNETIC_LOCAL_TIME'])
95
+
96
+ variables['AOB_PL_MLAT'] = np.array(dataset.variables[pole_str + '_POLAR_GEOMAGNETIC_LATITUDE'])
97
+ variables['AOB_PL_MLON'] = np.array(dataset.variables[pole_str + '_POLAR_GEOMAGNETIC_LONGITUDE'])
98
+ variables['AOB_PL_MLT'] = np.array(dataset.variables[pole_str + '_POLAR_MAGNETIC_LOCAL_TIME'])
99
+
100
+ variables['MAOB_EQ_MLAT'] = np.array(dataset.variables['MODEL_' + pole_str + '_GEOMAGNETIC_LATITUDE'])
101
+ variables['MAOB_EQ_MLON'] = np.array(dataset.variables['MODEL_' + pole_str + '_GEOMAGNETIC_LONGITUDE'])
102
+ variables['MAOB_EQ_MLT'] = np.array(dataset.variables['MODEL_' + pole_str + '_MAGNETIC_LOCAL_TIME'])
103
+
104
+ variables['MAOB_PL_MLAT'] = np.array(dataset.variables['MODEL_' + pole_str + '_POLAR_GEOMAGNETIC_LATITUDE'])
105
+ variables['MAOB_PL_MLON'] = np.array(dataset.variables['MODEL_' + pole_str + '_POLAR_GEOMAGNETIC_LONGITUDE'])
106
+ variables['MAOB_PL_MLT'] = np.array(dataset.variables['MODEL_' + pole_str + '_POLAR_MAGNETIC_LOCAL_TIME'])
107
+
108
+ metadata.setdefault('ORBIT_ID', dataset.STARTING_ORBIT_NUMBER)
27
109
 
28
- if self.pole == 'N':
29
- pole = self.pole
30
- pole_str = 'NORTH'
31
- elif self.pole == 'S':
32
- pole = self.pole
33
- pole_str = 'SOUTH'
34
- else:
35
- raise ValueError
36
- # Time and Position
37
- # sectime = int(np.array(dataset.variables['TIME']).flatten()[0])
38
- # doy = int(np.array(dataset.variables['DOY']).flatten()[0])
39
- # year = int(np.array(dataset.variables['YEAR']).flatten()[0])
40
- # dt0 = dttool.convert_doy_to_datetime(year, doy)
41
- starting_time = datetime.datetime.strptime(dataset.STARTING_TIME, "%Y%j%H%M%S")
42
- variables['STARTING_TIME'] = starting_time
43
- stopping_time = datetime.datetime.strptime(dataset.STOPPING_TIME, "%Y%j%H%M%S")
44
- variables['STOPPING_TIME'] = stopping_time
45
- dt0 = dttool.get_start_of_the_day(starting_time)
46
-
47
- variables['SC_LAT'] = np.array(dataset.variables['LATITUDE'])
48
- variables['SC_LON'] = np.array(dataset.variables['LONGITUDE'])
49
- variables['SC_ALT'] = np.array(dataset.variables['ALTITUDE'])
50
-
51
- variables['GRID_MLAT'] = np.array(dataset.variables['LATITUDE_GEOMAGNETIC_GRID_MAP'])
52
- variables['GRID_MLON'] = np.array(
53
- dataset.variables['LONGITUDE_GEOMAGNETIC_' + pole_str + '_GRID_MAP'])
54
- variables['GRID_MLT'] = np.array(dataset.variables['MLT_GRID_MAP'])
55
- if self.pole == 'S':
56
- variables['GRID_MLAT'] = - variables['GRID_MLAT']
57
- variables['GRID_UT'] = np.array(dataset.variables['UT_' + pole])
58
- lat = np.array(variables['GRID_MLAT'])
59
- ut = np.array(variables['GRID_UT'])
60
- lat = np.where(ut == 0, np.nan, lat)
61
- if self.pole == 'N':
62
- ind_mid_t = np.where(lat == np.nanmax(lat.flatten()))
63
- else:
64
- ind_mid_t = np.where(lat == np.nanmin(lat.flatten()))
65
- sectime0 = variables['GRID_UT'][ind_mid_t][0] * 3600
66
-
67
- diff_days = dttool.get_diff_days(starting_time, stopping_time)
68
- if diff_days > 0 and sectime0 < 0.5 * 86400.:
69
- dt = dt0 + datetime.timedelta(seconds=int(sectime0 + 86400))
70
- else:
71
- dt = dt0 + datetime.timedelta(seconds=int(sectime0))
72
- variables['DATETIME'] = dt
73
-
74
- invalid_ut_inds = np.where(ut == 0)
75
- # Auroral map, #colors: 0: '1216', 1: '1304', 2: '1356', 3: 'LBHS', 4: 'LBHL'.
76
- variables['EMISSION_SPECTRA'] = ['1216', '1304', '1356', 'LBHS', 'LBHL']
77
- disk_aur = np.array(dataset.variables['DISK_RADIANCEDATA_INTENSITY_' + pole_str])
78
- # disk_aur[:, invalid_ut_inds] = np.nan
79
- disk_aur[disk_aur <= 0] = 0.1
80
- variables['GRID_AUR_1216'] = disk_aur[0, ::]
81
- variables['GRID_AUR_1216'][invalid_ut_inds] = np.nan
82
- variables['GRID_AUR_1304'] = disk_aur[1, ::]
83
- variables['GRID_AUR_1304'][invalid_ut_inds] = np.nan
84
- variables['GRID_AUR_1356'] = disk_aur[2, ::]
85
- variables['GRID_AUR_1356'][invalid_ut_inds] = np.nan
86
- variables['GRID_AUR_LBHS'] = disk_aur[3, ::]
87
- variables['GRID_AUR_LBHS'][invalid_ut_inds] = np.nan
88
- variables['GRID_AUR_LBHL'] = disk_aur[4, ::]
89
- variables['GRID_AUR_LBHL'][invalid_ut_inds] = np.nan
90
-
91
- # Auroral oval boundary
92
- variables['AOB_EQ_MLAT'] = np.array(dataset.variables[pole_str + '_GEOMAGNETIC_LATITUDE'])
93
- variables['AOB_EQ_MLON'] = np.array(dataset.variables[pole_str + '_GEOMAGNETIC_LONGITUDE'])
94
- variables['AOB_EQ_MLT'] = np.array(dataset.variables[pole_str + '_MAGNETIC_LOCAL_TIME'])
95
-
96
- variables['AOB_PL_MLAT'] = np.array(dataset.variables[pole_str + '_POLAR_GEOMAGNETIC_LATITUDE'])
97
- variables['AOB_PL_MLON'] = np.array(dataset.variables[pole_str + '_POLAR_GEOMAGNETIC_LONGITUDE'])
98
- variables['AOB_PL_MLT'] = np.array(dataset.variables[pole_str + '_POLAR_MAGNETIC_LOCAL_TIME'])
99
-
100
- variables['MAOB_EQ_MLAT'] = np.array(dataset.variables['MODEL_' + pole_str + '_GEOMAGNETIC_LATITUDE'])
101
- variables['MAOB_EQ_MLON'] = np.array(dataset.variables['MODEL_' + pole_str + '_GEOMAGNETIC_LONGITUDE'])
102
- variables['MAOB_EQ_MLT'] = np.array(dataset.variables['MODEL_' + pole_str + '_MAGNETIC_LOCAL_TIME'])
103
-
104
- variables['MAOB_PL_MLAT'] = np.array(dataset.variables['MODEL_' + pole_str + '_POLAR_GEOMAGNETIC_LATITUDE'])
105
- variables['MAOB_PL_MLON'] = np.array(dataset.variables['MODEL_' + pole_str + '_POLAR_GEOMAGNETIC_LONGITUDE'])
106
- variables['MAOB_PL_MLT'] = np.array(dataset.variables['MODEL_' + pole_str + '_POLAR_MAGNETIC_LOCAL_TIME'])
107
-
108
- metadata.setdefault('ORBIT_ID', dataset.STARTING_ORBIT_NUMBER)
109
- dataset.close()
110
110
 
111
111
  self.variables = variables
112
112
  self.metadata = metadata
113
+
@@ -52,6 +52,8 @@ class Loader:
52
52
 
53
53
  self.variables = variables
54
54
  self.metadata.update(f_cdf.globalattsget())
55
+
56
+ del f_cdf
55
57
  self.done = True
56
58
 
57
59
 
@@ -60,6 +60,7 @@ class Loader:
60
60
  self.variables = variables
61
61
 
62
62
 
63
+
63
64
  if __name__ == "__main__":
64
65
  import pathlib
65
66
  fp = pathlib.Path("/Users/lcai/Downloads/gps200102g.002.hdf5")
@@ -5,6 +5,7 @@ import numpy as np
5
5
  import pathlib
6
6
  from matplotlib.axes import Axes
7
7
  from typing import Dict
8
+ import gc
8
9
  # import palettable
9
10
 
10
11
  from matplotlib.gridspec import GridSpec, SubplotSpec
@@ -15,6 +16,7 @@ from geospacelab.toolbox.utilities.pyclass import StrBase
15
16
  import geospacelab.toolbox.utilities.pybasic as pybasic
16
17
  from geospacelab.visualization.mpl._helpers import check_panel_ax
17
18
  import geospacelab.toolbox.utilities.pylogging as mylog
19
+
18
20
  # from geospacelab.visualization.mpl.dashboards import Dashboard
19
21
 
20
22
 
@@ -168,9 +170,10 @@ class DashboardBase(object):
168
170
  for ind_p in keys:
169
171
  self.remove_panel(ind_p)
170
172
  for ax in self.extra_axes.values():
171
- ax.remove()
173
+ ax.clear()
172
174
  self.extra_axes = {}
173
-
175
+ gc.collect()
176
+
174
177
 
175
178
  def set_layout(self, num_rows=None, num_cols=None, **kwargs):
176
179
  """
@@ -450,7 +453,7 @@ class PanelBase(object):
450
453
  self.figure = figure
451
454
  self.axes = {}
452
455
  self.label = kwargs.pop('label', None)
453
- self._current_ax = None
456
+ # self._current_ax_ref = None
454
457
  # self.objectives = kwargs.pop('objectives', {})
455
458
  if from_subplot:
456
459
  ax = self.figure.add_subplot(*args, **kwargs)
@@ -463,7 +466,7 @@ class PanelBase(object):
463
466
  ax = self.figure.add_axes(*args, **kwargs)
464
467
  self.axes['major'] = ax
465
468
  self.axes_overview[ax] = copy.deepcopy(self._ax_attr_model)
466
- self._current_ax = ax
469
+ self.sca(ax)
467
470
 
468
471
  def __call__(self, ax=None) -> Axes:
469
472
  """
@@ -483,10 +486,15 @@ class PanelBase(object):
483
486
  raise AttributeError
484
487
 
485
488
  def clear(self):
486
- for ax in self.axes.values():
487
- ax.remove()
489
+ self._current_ax_ref = None
490
+ self.axes_overview.clear()
491
+ for key, ax in self.axes.items():
492
+ ax.clear()
493
+ del ax
494
+ self.axes[key] = None
488
495
 
489
- self.axes = {}
496
+ self.axes.clear()
497
+ gc.collect()
490
498
 
491
499
  def sca(self, ax):
492
500
  """
@@ -495,7 +503,7 @@ class PanelBase(object):
495
503
  :param ax: the ax instance belong to the attribute axes.
496
504
  """
497
505
  plt.sca(ax)
498
- self._current_ax = ax
506
+ self._current_ax_ref = weakref.ref(ax)
499
507
 
500
508
  def gca(self):
501
509
  """
@@ -503,7 +511,7 @@ class PanelBase(object):
503
511
 
504
512
  :return: Axes instance.
505
513
  """
506
- return self._current_ax
514
+ return self._current_ax_ref()
507
515
 
508
516
  def add_axes(self, *args, major=False, label=None, **kwargs):
509
517
  """
@@ -555,13 +563,13 @@ class PanelBase(object):
555
563
  self.sca(ax)
556
564
  plt.grid(visible=visible, which=which, axis=axis, **kwargs)
557
565
 
558
- @check_panel_ax
559
- def clear_axes(self, ax=None, collection_names=('lines', 'collections', 'images', 'patches')):
560
- for cn in collection_names:
561
- cs = getattr(ax, cn)
562
- ncs = len(cs)
563
- for i in range(ncs):
564
- cs.pop(ncs-1-i)
566
+ # @check_panel_ax
567
+ # def clear_axes(self, ax=None, collection_names=('lines', 'collections', 'images', 'patches', 'spines')):
568
+ # for cn in collection_names:
569
+ # cs = getattr(ax, cn)
570
+ # ncs = len(cs)
571
+ # for i in range(ncs):
572
+ # cs.pop(ncs-1-i)
565
573
 
566
574
  def add_text(self, x, y, text, ax=None, **kwargs):
567
575
 
@@ -13,6 +13,7 @@ import datetime
13
13
  import cartopy.crs as ccrs
14
14
  import re
15
15
  import copy
16
+ import gc
16
17
  from cartopy.mpl.ticker import (
17
18
  LongitudeLocator, LatitudeLocator,
18
19
  LongitudeFormatter, LatitudeFormatter)
@@ -23,6 +24,8 @@ import matplotlib.colors as mcolors
23
24
  import matplotlib.cm as mcm
24
25
  from scipy.interpolate import interp1d, griddata
25
26
  import matplotlib.cm as cm
27
+ import cartopy.mpl.geoaxes as geoaxes
28
+ import weakref
26
29
  from cartopy.mpl.gridliner import LONGITUDE_FORMATTER, LATITUDE_FORMATTER
27
30
 
28
31
  import geospacelab.visualization.mpl as mpl
@@ -159,6 +162,12 @@ class PolarMapPanel(GeoPanel):
159
162
  if self.depend_mlt:
160
163
  cs2.coords.lon = self._transform_mlt_to_lon(cs2.coords.mlt)
161
164
  return cs2
165
+ def clear(self):
166
+ self.projection = None
167
+ self._proj_class = None
168
+ geoaxes._PATH_TRANSFORM_CACHE.clear()
169
+ gc.collect()
170
+ super().clear()
162
171
 
163
172
  def overlay_coastlines(self, linestyle='-', linewidth=0.5, color='#797A7D', zorder=100, alpha=0.7,
164
173
  resolution='110m', **kwargs):
@@ -202,7 +211,8 @@ class PolarMapPanel(GeoPanel):
202
211
  **kwargs)
203
212
  # self.ax.scatter(x_new, y_new, transform=self.default_transform,
204
213
  # marker='.', edgecolors='none', color='#C0C0C0', s=1)
205
-
214
+ del x_new, y_new
215
+ coords = None
206
216
  return
207
217
 
208
218
  def overlay_gridlines(self,
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: geospacelab
3
- Version: 0.10.4
3
+ Version: 0.11.0
4
4
  Summary: Collect, manage, and visualize geospace data.
5
5
  Home-page: https://github.com/JouleCai/geospacelab
6
6
  Author: Lei Cai
@@ -1,4 +1,4 @@
1
- geospacelab/__init__.py,sha256=Tx3_MLvH5gxz3rnhOR9f1xgoT9-rnljq7lh7wdGGPLU,801
1
+ geospacelab/__init__.py,sha256=o9UGHuHohTJI5hQ6S62CZ35dSnAnkD-M5-ayloaqsLU,801
2
2
  geospacelab/config/__init__.py,sha256=--F2bcKRCNIbPaFz4bySMkuxGg1ZxF1j1uyxMA0t3xA,660
3
3
  geospacelab/config/__mpl__.py,sha256=bO10-mtYDF1EhnRFuXX4H8TUU3esxOZe-qfTrzRhBk0,4705
4
4
  geospacelab/config/_preferences.py,sha256=VKXXWNvFzIMXGmvb7Udd900DoubMlqrcu-gLmzHmzMk,4754
@@ -16,7 +16,7 @@ geospacelab/datahub/__init_dataset.py,sha256=5k87VqEgYGr8F77gpKVeiHNPEsk9u2XmbQ-
16
16
  geospacelab/datahub/__init_metadata.py,sha256=sYBQFIbEZh-TWPvdbDBsTQYqlvwNw2iJloyXWYcVgE4,2996
17
17
  geospacelab/datahub/__init_variable.py,sha256=L11PK-eBOFbGv90sDgH70DGilOndnvQczG41ZNHy7Ks,25233
18
18
  geospacelab/datahub/__metadata_base__.py,sha256=AbMaV5iuonTekS9fLy9Eq2h3ixblPC3BpsaWEdZv7f0,2825
19
- geospacelab/datahub/__variable_base__.py,sha256=gvwB9CwF3VV_4uE5NDGDYzlPYTUGa3LDegl8Ke2Uwks,39090
19
+ geospacelab/datahub/__variable_base__.py,sha256=AkSbmsbjqXPjce7at_0BXpYkSCzZA3huh_04zUd6iBA,39120
20
20
  geospacelab/datahub/_dataset_base.py,sha256=Y0ntQ7FtRmnCND2AtEaehJ3DtgxVG_2pwS1B5Z9BOVw,11283
21
21
  geospacelab/datahub/_metadata_base.py,sha256=sYBQFIbEZh-TWPvdbDBsTQYqlvwNw2iJloyXWYcVgE4,2996
22
22
  geospacelab/datahub/_variable_base.py,sha256=dUm15Y012FQ0hAdeA48ky0tKEc9il59FHvOP7KncYWE,25050
@@ -26,13 +26,13 @@ geospacelab/datahub/sources/cdaweb/__init__.py,sha256=fP1ziTZFxTOz-HF07az67F5Afv
26
26
  geospacelab/datahub/sources/cdaweb/downloader.py,sha256=CIq6LjlfGM73ipxabFH7P22dV8ptKs1O18S5W1kKh94,5038
27
27
  geospacelab/datahub/sources/cdaweb/dmsp/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
28
28
  geospacelab/datahub/sources/cdaweb/dmsp/ssusi/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
29
- geospacelab/datahub/sources/cdaweb/dmsp/ssusi/edr_aur/__init__.py,sha256=iSpbLLA3gRrznsooSwsxeslYG2dSf7pEkKV56YDaxJk,8460
29
+ geospacelab/datahub/sources/cdaweb/dmsp/ssusi/edr_aur/__init__.py,sha256=44dlkn7t2HMcGBAhh0oj4ne4NP3LXCEQkS34qgh0f4E,8490
30
30
  geospacelab/datahub/sources/cdaweb/dmsp/ssusi/edr_aur/downloader.py,sha256=LCn0tupzAkir9Z_280tBulHEPlqoX6DWe8HKFk1h4IE,3191
31
- geospacelab/datahub/sources/cdaweb/dmsp/ssusi/edr_aur/loader.py,sha256=bQubqbZ54Qh6JzpU6yZmTCma8Qh5S1vTGaFAx3U849A,5322
31
+ geospacelab/datahub/sources/cdaweb/dmsp/ssusi/edr_aur/loader.py,sha256=U8ucK-rstKRSxf1gSTiduE5fZ6n9nfxheGpBJoI1D7Y,5603
32
32
  geospacelab/datahub/sources/cdaweb/dmsp/ssusi/edr_aur/variable_config.py,sha256=6-BMqRDSAxuND1WtiXD4_70hr4RbmbflvUBT61Fn7s8,4346
33
33
  geospacelab/datahub/sources/cdaweb/omni/__init__.py,sha256=Cx34OLYuX_zLIialhXlI6F0x4rXbCWLC7yCYBse6s2c,11529
34
34
  geospacelab/datahub/sources/cdaweb/omni/downloader.py,sha256=Rle46rGxWmnM46BMO6hGpZR16vLF6DusYacpH_eMjw0,4129
35
- geospacelab/datahub/sources/cdaweb/omni/loader.py,sha256=MVxzK9uMtxWK8OjnzHyJD-k0M-Sq7Fk4YbN_CkreQok,3207
35
+ geospacelab/datahub/sources/cdaweb/omni/loader.py,sha256=5ISQ9V2mMhf2JXVL9jUQlsQdsETgRd_KIc-CgBApFis,3234
36
36
  geospacelab/datahub/sources/cdaweb/omni/variable_config.py,sha256=WWVuuy28FSHV-DUAOx9hB80zCarTJJoObSgCbq7lgWM,12424
37
37
  geospacelab/datahub/sources/esa_eo/__init__.py,sha256=Z-X5gUc21PNcCSCHoaP4ieQjTUBtMft8cK0hfJnezWo,521
38
38
  geospacelab/datahub/sources/esa_eo/swarm/__init__.py,sha256=VCgXC15rp09kebnDY9GW0cy-BXH0RrEo6jscilobv_w,2386
@@ -152,7 +152,7 @@ geospacelab/datahub/sources/madrigal/eiscat/examples/eiscat_hdf5_info.py,sha256=
152
152
  geospacelab/datahub/sources/madrigal/gnss/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
153
153
  geospacelab/datahub/sources/madrigal/gnss/tecmap/__init__.py,sha256=oEoetqS16QE31AY-1TInDBk0FwjaigLiT9DXQmSArmg,5958
154
154
  geospacelab/datahub/sources/madrigal/gnss/tecmap/downloader.py,sha256=9Z4zZm-xNS0jYHaD--Nc-HVnCzcn65NLMb3eZzBHWJk,4286
155
- geospacelab/datahub/sources/madrigal/gnss/tecmap/loader.py,sha256=JytJZfzUp2ijn0w1ADoA5-aRP1c674T4wz0mRSFSvPg,2895
155
+ geospacelab/datahub/sources/madrigal/gnss/tecmap/loader.py,sha256=uAXQFDSnSJIUokpiXPKT5TlAcSbbaPM5pJpEVLA23Y4,2896
156
156
  geospacelab/datahub/sources/madrigal/gnss/tecmap/variable_config.py,sha256=lLeJkcTqO0qJErkYlBq1kt0sDBGxOcNeNHRykq5ajPQ,1568
157
157
  geospacelab/datahub/sources/madrigal/isr/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
158
158
  geospacelab/datahub/sources/madrigal/isr/eiscat/__init__.py,sha256=ObrGv-fsYWbEmXMQ6YftoEnydu6slmOE4uKKbBFn4x4,20416
@@ -344,7 +344,7 @@ geospacelab/visualization/tsviewer.py,sha256=qkPVhLuQYVLQKSvmQJYtYKql8GkcFfDXVlg
344
344
  geospacelab/visualization/map_proj/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
345
345
  geospacelab/visualization/map_proj/geopanel.py,sha256=FLNDyRyyQ2aeGPFxEY3JkKyZcSv6nOeH0AmeUExR_V8,8961
346
346
  geospacelab/visualization/map_proj/geoviewer.py,sha256=tVd9g3bEyZLBTbVYg2lVv4JoEtc1IeeKcZ5k-l5aHl0,1436
347
- geospacelab/visualization/mpl/__base__.py,sha256=fRDOG8n4xOA0UAd-WCiSi5vc5p3jII2J9CB4d3sRcpk,27050
347
+ geospacelab/visualization/mpl/__base__.py,sha256=olAVyAntfL_RADs4rJgMjbzF2HX71PaJWzfuhOEE_ig,27284
348
348
  geospacelab/visualization/mpl/__init__.py,sha256=eNng7abvdzotwUltTYwFtlIeqUtCpI3d5yA4pr9kPKg,825
349
349
  geospacelab/visualization/mpl/_helpers.py,sha256=L-Cf_NXhe7FZE0fUNwQOOIZorLR1qEhj7bRkP4_jSAE,747
350
350
  geospacelab/visualization/mpl/axes.py,sha256=YcFkmOGWXNiOXWsMFxFPhn32UnbxmeSrluTp6OHVTpQ,328
@@ -357,7 +357,7 @@ geospacelab/visualization/mpl/ts_viewer.py,sha256=4sOwXeWkdn5Z0BA6c-zxj4dAYxHP9t
357
357
  geospacelab/visualization/mpl/geomap/__base__.py,sha256=v3lVV5NVQMi0csNxq1ioORyizULqGN92M0DrlGjjBRQ,2940
358
358
  geospacelab/visualization/mpl/geomap/__init__.py,sha256=lsCyNIg5d5ZiMyRvE1zIuCnIhL47x8aYbOKZUX5E8fE,327
359
359
  geospacelab/visualization/mpl/geomap/geodashboards.py,sha256=oCt18JDXor4pg5qotzThu3Myg-uc_Gz6D3TnFwC0Nqs,2847
360
- geospacelab/visualization/mpl/geomap/geopanels.py,sha256=AnmgLgqTi11E1yS6aURtENPDZvaYtjxVpl6iME6kwTM,52709
360
+ geospacelab/visualization/mpl/geomap/geopanels.py,sha256=WGvhDAKCZUkMiZkPKHwTSQ06DdPr5bXCnY38SnSHK0o,52993
361
361
  geospacelab/visualization/mpl_toolbox/__init__.py,sha256=AXKQoIwd3UCOMnmdIBXin2BH5t4UcZhmQRf8Ptr5o14,132
362
362
  geospacelab/visualization/mpl_toolbox/axes.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
363
363
  geospacelab/visualization/mpl_toolbox/axis_ticks.py,sha256=WV7bR_lgaNFvs59WektWVUgVZlVAuvQny6i_LJ39t2Y,11772
@@ -382,7 +382,7 @@ geospacelab/wrapper/geopack/geopack/t89.py,sha256=zDVNPrmtK1NnNHgohQEPqOOJDsm2Z-
382
382
  geospacelab/wrapper/geopack/geopack/t96.py,sha256=ktcoo1R7Z3NtkWHENuseu48ub4-JfQGqFV0ZOtd0zH8,65292
383
383
  geospacelab/wrapper/geopack/geopack/test_geopack1.md,sha256=dMUY0O1BgZsKpmJ6BLSQ80B6p6DZcB7OceFeyPOlFK0,15324
384
384
  geospacelab/wrapper/geopack/geopack/test_geopack1.py,sha256=qjLz6O3BAk3H58IpmxXyftwZTkh3vPGp49C-al4hjf0,6669
385
- geospacelab-0.10.4.dist-info/licenses/LICENSE,sha256=2yRlwLt4o5Z6OZAGcyvBj-zfFX1Uw7E6CzqODg7khqs,1515
385
+ geospacelab-0.11.0.dist-info/licenses/LICENSE,sha256=2yRlwLt4o5Z6OZAGcyvBj-zfFX1Uw7E6CzqODg7khqs,1515
386
386
  test/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
387
387
  test/test_ampere.py,sha256=0-HZURubpv1mBK3bJ_qTqx39L1jezgRoU5neXMPYgZQ,2968
388
388
  test/test_dmsp_s1.py,sha256=5m_7mjdDGja8ovshNPV3LKW_6q6mIwT9XKqoyRiH79A,3588
@@ -392,7 +392,7 @@ test/test_omni.py,sha256=Zk1LZozPiY5V0aSRmK6GTQuB01hHn_j2j3Brm6Ea_po,1632
392
392
  test/test_superdarn.py,sha256=uP55muvXryPzNGHinWkiGv2PxvRs4f9M9h1WIBEBW7k,2846
393
393
  test/test_swarm.py,sha256=PDDE9nUshhQpXZbV_ZwcsjbMhI73fRaojTZv9rtRzZE,15568
394
394
  test/test_swarm_new.py,sha256=mzhMAx-M9W3Ue5noTyfBx4c3Vtc3b_ZUEvGgL9v8UE4,853
395
- geospacelab-0.10.4.dist-info/METADATA,sha256=lyiKbwfrmxHBHeRfYCVJTGmg-9OvyyakMWE4TUGg2Qo,24238
396
- geospacelab-0.10.4.dist-info/WHEEL,sha256=wXxTzcEDnjrTwFYjLPcsW_7_XihufBwmpiBeiXNBGEA,91
397
- geospacelab-0.10.4.dist-info/top_level.txt,sha256=98eDwrSNgyQFAtSA06QMP71gw9BzgIj0uvkTudpGly4,12
398
- geospacelab-0.10.4.dist-info/RECORD,,
395
+ geospacelab-0.11.0.dist-info/METADATA,sha256=IM_FXqyGJexx3lJm9sbC7H_HSJxbkRinuHpiAa6NxBg,24238
396
+ geospacelab-0.11.0.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
397
+ geospacelab-0.11.0.dist-info/top_level.txt,sha256=98eDwrSNgyQFAtSA06QMP71gw9BzgIj0uvkTudpGly4,12
398
+ geospacelab-0.11.0.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (80.1.0)
2
+ Generator: setuptools (80.9.0)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5