geospacelab 0.11.0__py3-none-any.whl → 0.11.2__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.11.0"
9
+ __version__ = "0.11.2"
10
10
  __maintainer__ = "Lei Cai"
11
11
  __email__ = "lei.cai@oulu.fi"
12
12
  __status__ = "Developing"
@@ -215,13 +215,14 @@ class SpaceCartesianCS(SpaceCSBase):
215
215
 
216
216
  # phi: longitude, theta: co-latitude, r: radial distance
217
217
  r = np.sqrt(self.coords.x ** 2 + self.coords.y ** 2 + self.coords.z ** 2)
218
+ r_unit = self.coords.x_unit
218
219
  theta = np.arccos(self.coords.z / r)
219
220
  phi = npmath.trig_arctan_to_sph_lon(self.coords.x, self.coords.y)
220
221
  vector = None
221
222
  if self.vector is not None:
222
223
  mylog.StreamLogger.warning("The tranformation for vectors have not been implemented!")
223
224
 
224
- coords = {'theta': theta, 'phi': phi, 'r': r}
225
+ coords = {'theta': theta, 'phi': phi, 'r': r, 'r_unit': r_unit}
225
226
  cs_new = set_cs(name=self.name, coords=coords, vector=vector, kind='sph', ut=self.ut, **kwargs)
226
227
 
227
228
  return cs_new
@@ -159,47 +159,51 @@ class Dataset(datahub.DatasetSourced):
159
159
 
160
160
  def fix_geo_lon(self):
161
161
  from geospacelab.observatory.orbit.sc_orbit import OrbitPosition_SSCWS
162
- from scipy.interpolate import interp1d
162
+ from scipy.interpolate import CubicSpline
163
+
164
+ dts_1 = self['SC_DATETIME'].value.flatten()
165
+ dt0 = dttool.get_start_of_the_day(self.dt_fr)
166
+ sectime_1 = [(dt - dt0).total_seconds() for dt in dts_1]
167
+ glat_1 = self['SC_GEO_LAT'].flatten()
168
+ glon_1 = self['SC_GEO_LON'].flatten()
169
+ alt_1 = self['SC_GEO_ALT'].flatten()
170
+
163
171
  # check outliers
164
172
  orbit_obj = OrbitPosition_SSCWS(
165
173
  dt_fr=self.dt_fr - datetime.timedelta(minutes=30),
166
174
  dt_to=self.dt_to + datetime.timedelta(minutes=30),
167
175
  sat_id='dmsp' + self.sat_id.lower()
168
176
  )
169
-
170
- glat_1 = self['SC_GEO_LAT'].value.flatten()
171
- glon_1 = self['SC_GEO_LON'].value.flatten()
172
- if glat_1.size < 2:
173
- return
174
-
175
- dts_1 = self['SC_DATETIME'].value.flatten()
176
- dt0 = dttool.get_start_of_the_day(self.dt_fr)
177
- sectime_1 = [(dt - dt0).total_seconds() for dt in dts_1]
178
-
179
- glat_2 = orbit_obj['SC_GEO_LAT'].value.flatten()
180
- glon_2 = orbit_obj['SC_GEO_LON'].value.flatten()
181
- dts_2 = orbit_obj['SC_DATETIME'].value.flatten()
182
- sectime_2 = [(dt - dt0).total_seconds() for dt in dts_2]
183
-
184
- factor = np.pi / 180.
185
- sin_glon_1 = np.sin(glon_1 * factor)
186
- sin_glon_2 = np.sin(glon_2 * factor)
187
- cos_glon_2 = np.cos(glon_2 * factor)
188
- itpf_sin = interp1d(sectime_2, sin_glon_2, kind='cubic', bounds_error=False, fill_value='extrapolate')
189
- itpf_cos = interp1d(sectime_2, cos_glon_2, kind='cubic', bounds_error=False, fill_value='extrapolate')
190
- sin_glon_2_i = itpf_sin(sectime_1)
191
- cos_glon_2_i = itpf_cos(sectime_1)
192
- rad = np.sign(sin_glon_2_i) * (np.pi / 2 - np.arcsin(cos_glon_2_i))
193
- glon_new = rad / factor
194
- # rad = np.where((rad >= 0), rad, rad + 2 * numpy.pi)
195
-
196
- ind_outliers = np.where(np.abs(sin_glon_1 - sin_glon_2_i) > 0.03)[0]
197
-
177
+ dts = orbit_obj['SC_DATETIME'].flatten()
178
+ sectimes, _ = dttool.convert_datetime_to_sectime(dts, dt0=dt0)
179
+ x = orbit_obj['SC_GEO_X'].flatten()
180
+ y = orbit_obj['SC_GEO_Y'].flatten()
181
+ z = orbit_obj['SC_GEO_Z'].flatten()
182
+ f_x = CubicSpline(sectimes, x)
183
+ x_i = f_x(sectime_1)
184
+ f_y = CubicSpline(sectimes, y)
185
+ y_i = f_y(sectime_1)
186
+ f_z = CubicSpline(sectimes, z)
187
+ z_i = f_z(sectime_1)
188
+
189
+
190
+ cs = geo_cs.GEOCCartesian(
191
+ coords={'x': x_i, 'y': y_i, 'z': z_i, 'x_unit': 'km', 'y_unit': 'km', 'z_unit': 'km'}
192
+ )
193
+ cs_new = cs.to_spherical()
194
+
195
+ # glat_2 = cs_new['lat']
196
+ glon_2 = cs_new['lon']
197
+ # alt_2 = cs_new['height']
198
+
199
+ delta = np.sin(glon_2 * np.pi / 180.) - np.sin(glon_2 * np.pi / 180.)
200
+
198
201
  if self.replace_orbit:
199
- glon_1 = glon_new
202
+ glon_1 = glon_2
200
203
  else:
201
- glon_1[ind_outliers] = glon_new[ind_outliers]
202
- self['SC_GEO_LON'].value = glon_1.reshape((glon_1.size, 1))
204
+ glon_1[np.abs(delta)>0.05] = glon_2[np.abs(delta)>0.05]
205
+
206
+ self['SC_GEO_LON'].value = glon_1[:, np.newaxis]
203
207
 
204
208
  def search_data_files(self, **kwargs):
205
209
 
@@ -19,6 +19,7 @@ from geospacelab.config import prf
19
19
  import geospacelab.toolbox.utilities.pybasic as basic
20
20
  import geospacelab.toolbox.utilities.pylogging as mylog
21
21
  import geospacelab.toolbox.utilities.pydatetime as dttool
22
+ import geospacelab.cs as geo_cs
22
23
  from geospacelab.datahub.sources.madrigal.satellites.dmsp.s1.loader import Loader as default_Loader
23
24
  from geospacelab.datahub.sources.madrigal.satellites.dmsp.downloader import Downloader as default_Downloader
24
25
  import geospacelab.datahub.sources.madrigal.satellites.dmsp.s1.variable_config as var_config
@@ -179,53 +180,51 @@ class Dataset(datahub.DatasetSourced):
179
180
 
180
181
  def fix_geo_lon(self):
181
182
  from geospacelab.observatory.orbit.sc_orbit import OrbitPosition_SSCWS
182
- from scipy.interpolate import interp1d
183
+ from scipy.interpolate import CubicSpline
184
+
185
+ dts_1 = self['SC_DATETIME'].value.flatten()
186
+ dt0 = dttool.get_start_of_the_day(self.dt_fr)
187
+ sectime_1 = [(dt - dt0).total_seconds() for dt in dts_1]
188
+ glat_1 = self['SC_GEO_LAT'].flatten()
189
+ glon_1 = self['SC_GEO_LON'].flatten()
190
+ alt_1 = self['SC_GEO_ALT'].flatten()
191
+
183
192
  # check outliers
184
193
  orbit_obj = OrbitPosition_SSCWS(
185
194
  dt_fr=self.dt_fr - datetime.timedelta(minutes=30),
186
195
  dt_to=self.dt_to + datetime.timedelta(minutes=30),
187
196
  sat_id='dmsp' + self.sat_id.lower()
188
197
  )
189
-
190
- glat_1 = self['SC_GEO_LAT'].value.flatten()
191
- glon_1 = self['SC_GEO_LON'].value.flatten()
192
- if glat_1.size < 2:
193
- return
194
-
195
- dts_1 = self['SC_DATETIME'].value.flatten()
196
- dt0 = dttool.get_start_of_the_day(self.dt_fr)
197
- sectime_1 = [(dt - dt0).total_seconds() for dt in dts_1]
198
-
199
- glat_2 = orbit_obj['SC_GEO_LAT'].value.flatten()
200
- glon_2 = orbit_obj['SC_GEO_LON'].value.flatten()
201
- dts_2 = orbit_obj['SC_DATETIME'].value.flatten()
202
- sectime_2 = [(dt - dt0).total_seconds() for dt in dts_2]
203
-
204
- factor = np.pi / 180.
205
- sin_glon_1 = np.sin(glon_1 * factor)
206
- sin_glon_2 = np.sin(glon_2 * factor)
207
- cos_glon_2 = np.cos(glon_2 * factor)
208
- itpf_sin = interp1d(sectime_2, sin_glon_2, kind='linear', bounds_error=False, fill_value='extrapolate')
209
- itpf_cos = interp1d(sectime_2, cos_glon_2, kind='linear', bounds_error=False, fill_value='extrapolate')
210
- sin_glon_2_i = itpf_sin(sectime_1)
211
- sin_glon_2_i = np.where(sin_glon_2_i > 1., 1., sin_glon_2_i)
212
- sin_glon_2_i = np.where(sin_glon_2_i < -1., -1., sin_glon_2_i)
198
+ dts = orbit_obj['SC_DATETIME'].flatten()
199
+ sectimes, _ = dttool.convert_datetime_to_sectime(dts, dt0=dt0)
200
+ x = orbit_obj['SC_GEO_X'].flatten()
201
+ y = orbit_obj['SC_GEO_Y'].flatten()
202
+ z = orbit_obj['SC_GEO_Z'].flatten()
203
+ f_x = CubicSpline(sectimes, x)
204
+ x_i = f_x(sectime_1)
205
+ f_y = CubicSpline(sectimes, y)
206
+ y_i = f_y(sectime_1)
207
+ f_z = CubicSpline(sectimes, z)
208
+ z_i = f_z(sectime_1)
213
209
 
214
- cos_glon_2_i = itpf_cos(sectime_1)
215
- cos_glon_2_i = np.where(cos_glon_2_i > 1., 1., cos_glon_2_i)
216
- cos_glon_2_i = np.where(cos_glon_2_i < -1., -1., cos_glon_2_i)
217
210
 
218
- rad = np.sign(sin_glon_2_i) * (np.pi / 2 - np.arcsin(cos_glon_2_i))
219
- glon_new = rad / factor
220
- # rad = np.where((rad >= 0), rad, rad + 2 * numpy.pi)
221
-
222
- ind_outliers = np.where(np.abs(sin_glon_1 - sin_glon_2_i) > 0.03)[0]
223
-
211
+ cs = geo_cs.GEOCCartesian(
212
+ coords={'x': x_i, 'y': y_i, 'z': z_i, 'x_unit': 'km', 'y_unit': 'km', 'z_unit': 'km'}
213
+ )
214
+ cs_new = cs.to_spherical()
215
+
216
+ # glat_2 = cs_new['lat']
217
+ glon_2 = cs_new['lon']
218
+ # alt_2 = cs_new['height']
219
+
220
+ delta = np.sin(glon_2 * np.pi / 180.) - np.sin(glon_2 * np.pi / 180.)
221
+
224
222
  if self.replace_orbit:
225
- glon_1 = glon_new
223
+ glon_1 = glon_2
226
224
  else:
227
- glon_1[ind_outliers] = glon_new[ind_outliers]
228
- self['SC_GEO_LON'].value = glon_1.reshape((glon_1.size, 1))
225
+ glon_1[np.abs(delta)>0.05] = glon_2[np.abs(delta)>0.05]
226
+
227
+ self['SC_GEO_LON'].value = glon_1[:, np.newaxis]
229
228
 
230
229
  def search_data_files(self, **kwargs):
231
230
 
@@ -151,47 +151,94 @@ class Dataset(datahub.DatasetSourced):
151
151
 
152
152
  def fix_geo_lon(self):
153
153
  from geospacelab.observatory.orbit.sc_orbit import OrbitPosition_SSCWS
154
- from scipy.interpolate import interp1d
154
+ from scipy.interpolate import CubicSpline
155
+
156
+ dts_1 = self['SC_DATETIME'].value.flatten()
157
+ dt0 = dttool.get_start_of_the_day(self.dt_fr)
158
+ sectime_1 = [(dt - dt0).total_seconds() for dt in dts_1]
159
+ glat_1 = self['SC_GEO_LAT'].flatten()
160
+ glon_1 = self['SC_GEO_LON'].flatten()
161
+ alt_1 = self['SC_GEO_ALT'].flatten()
162
+
155
163
  # check outliers
156
164
  orbit_obj = OrbitPosition_SSCWS(
157
165
  dt_fr=self.dt_fr - datetime.timedelta(minutes=30),
158
166
  dt_to=self.dt_to + datetime.timedelta(minutes=30),
159
167
  sat_id='dmsp' + self.sat_id.lower()
160
168
  )
161
-
162
- glat_1 = self['SC_GEO_LAT'].value.flatten()
163
- glon_1 = self['SC_GEO_LON'].value.flatten()
164
- if glat_1.size < 2:
165
- return
166
-
167
- dts_1 = self['SC_DATETIME'].value.flatten()
168
- dt0 = dttool.get_start_of_the_day(self.dt_fr)
169
- sectime_1 = [(dt - dt0).total_seconds() for dt in dts_1]
170
-
171
- glat_2 = orbit_obj['SC_GEO_LAT'].value.flatten()
172
- glon_2 = orbit_obj['SC_GEO_LON'].value.flatten()
173
- dts_2 = orbit_obj['SC_DATETIME'].value.flatten()
174
- sectime_2 = [(dt - dt0).total_seconds() for dt in dts_2]
175
-
176
- factor = np.pi / 180.
177
- sin_glon_1 = np.sin(glon_1 * factor)
178
- sin_glon_2 = np.sin(glon_2 * factor)
179
- cos_glon_2 = np.cos(glon_2 * factor)
180
- itpf_sin = interp1d(sectime_2, sin_glon_2, kind='linear', bounds_error=False, fill_value='extrapolate')
181
- itpf_cos = interp1d(sectime_2, cos_glon_2, kind='linear', bounds_error=False, fill_value='extrapolate')
182
- sin_glon_2_i = itpf_sin(sectime_1)
183
- cos_glon_2_i = itpf_cos(sectime_1)
184
- rad = np.sign(sin_glon_2_i) * (np.pi / 2 - np.arcsin(cos_glon_2_i))
185
- glon_new = rad / factor
186
- # rad = np.where((rad >= 0), rad, rad + 2 * numpy.pi)
187
-
188
- ind_outliers = np.where(np.abs(sin_glon_1 - sin_glon_2_i) > 0.03)[0]
189
-
169
+ dts = orbit_obj['SC_DATETIME'].flatten()
170
+ sectimes, _ = dttool.convert_datetime_to_sectime(dts, dt0=dt0)
171
+ x = orbit_obj['SC_GEO_X'].flatten()
172
+ y = orbit_obj['SC_GEO_Y'].flatten()
173
+ z = orbit_obj['SC_GEO_Z'].flatten()
174
+ f_x = CubicSpline(sectimes, x)
175
+ x_i = f_x(sectime_1)
176
+ f_y = CubicSpline(sectimes, y)
177
+ y_i = f_y(sectime_1)
178
+ f_z = CubicSpline(sectimes, z)
179
+ z_i = f_z(sectime_1)
180
+
181
+
182
+ cs = geo_cs.GEOCCartesian(
183
+ coords={'x': x_i, 'y': y_i, 'z': z_i, 'x_unit': 'km', 'y_unit': 'km', 'z_unit': 'km'}
184
+ )
185
+ cs_new = cs.to_spherical()
186
+
187
+ # glat_2 = cs_new['lat']
188
+ glon_2 = cs_new['lon']
189
+ # alt_2 = cs_new['height']
190
+
191
+ delta = np.sin(glon_2 * np.pi / 180.) - np.sin(glon_2 * np.pi / 180.)
192
+
190
193
  if self.replace_orbit:
191
- glon_1 = glon_new
194
+ glon_1 = glon_2
192
195
  else:
193
- glon_1[ind_outliers] = glon_new[ind_outliers]
194
- self['SC_GEO_LON'].value = glon_1.reshape((glon_1.size, 1))
196
+ glon_1[np.abs(delta)>0.05] = glon_2[np.abs(delta)>0.05]
197
+
198
+ self['SC_GEO_LON'].value = glon_1[:, np.newaxis]
199
+
200
+ # from geospacelab.observatory.orbit.sc_orbit import OrbitPosition_SSCWS
201
+ # from scipy.interpolate import interp1d
202
+ # # check outliers
203
+ # orbit_obj = OrbitPosition_SSCWS(
204
+ # dt_fr=self.dt_fr - datetime.timedelta(minutes=30),
205
+ # dt_to=self.dt_to + datetime.timedelta(minutes=30),
206
+ # sat_id='dmsp' + self.sat_id.lower()
207
+ # )
208
+
209
+ # glat_1 = self['SC_GEO_LAT'].value.flatten()
210
+ # glon_1 = self['SC_GEO_LON'].value.flatten()
211
+ # if glat_1.size < 2:
212
+ # return
213
+
214
+ # dts_1 = self['SC_DATETIME'].value.flatten()
215
+ # dt0 = dttool.get_start_of_the_day(self.dt_fr)
216
+ # sectime_1 = [(dt - dt0).total_seconds() for dt in dts_1]
217
+
218
+ # glat_2 = orbit_obj['SC_GEO_LAT'].value.flatten()
219
+ # glon_2 = orbit_obj['SC_GEO_LON'].value.flatten()
220
+ # dts_2 = orbit_obj['SC_DATETIME'].value.flatten()
221
+ # sectime_2 = [(dt - dt0).total_seconds() for dt in dts_2]
222
+
223
+ # factor = np.pi / 180.
224
+ # sin_glon_1 = np.sin(glon_1 * factor)
225
+ # sin_glon_2 = np.sin(glon_2 * factor)
226
+ # cos_glon_2 = np.cos(glon_2 * factor)
227
+ # itpf_sin = interp1d(sectime_2, sin_glon_2, kind='linear', bounds_error=False, fill_value='extrapolate')
228
+ # itpf_cos = interp1d(sectime_2, cos_glon_2, kind='linear', bounds_error=False, fill_value='extrapolate')
229
+ # sin_glon_2_i = itpf_sin(sectime_1)
230
+ # cos_glon_2_i = itpf_cos(sectime_1)
231
+ # rad = np.sign(sin_glon_2_i) * (np.pi / 2 - np.arcsin(cos_glon_2_i))
232
+ # glon_new = rad / factor
233
+ # # rad = np.where((rad >= 0), rad, rad + 2 * numpy.pi)
234
+
235
+ # ind_outliers = np.where(np.abs(sin_glon_1 - sin_glon_2_i) > 0.03)[0]
236
+
237
+ # if self.replace_orbit:
238
+ # glon_1 = glon_new
239
+ # else:
240
+ # glon_1[ind_outliers] = glon_new[ind_outliers]
241
+ # self['SC_GEO_LON'].value = glon_1.reshape((glon_1.size, 1))
195
242
 
196
243
  def search_data_files(self, **kwargs):
197
244
 
@@ -270,6 +270,8 @@ def data_resample(
270
270
  # grid_z_1[i, :] = z_i
271
271
 
272
272
 
273
+
274
+
273
275
  def regridding_2d_xgaps(
274
276
  x, y, z,
275
277
  xtype=None, xres=None):
@@ -281,13 +283,28 @@ def regridding_2d_xgaps(
281
283
  x1 = sectime
282
284
 
283
285
  diff_x = numpy.diff(x1)
286
+ x_res_md = numpy.median(diff_x)
284
287
  if xres is None:
285
- xres = numpy.median(diff_x)
288
+ xres = x_res_md
286
289
 
287
290
  if xtype == 'datetime' and basic.isnumeric(xres):
288
291
  xres = datetime.timedelta(seconds=xres)
292
+ x_res_md = datetime.timedelta(seconds=x_res_md)
293
+
294
+ xx_1 = np.empty_like(x)
295
+ xx_2 = np.empty_like(x)
296
+ for i, xxx in enumerate(x):
297
+ if i == 0:
298
+ xx_1[0] = xxx - np.min([datetime.timedelta(diff_x[0]), xres, x_res_md]) / 2
299
+ else:
300
+ xx_1[i] = xx_2[i-1] if xres > datetime.timedelta(seconds=diff_x[i-1]) else xxx - xres / 2
289
301
 
290
- xx = numpy.hstack(((x.flatten() - xres / 2)[:, numpy.newaxis], (x.flatten() + xres / 2)[:, numpy.newaxis]))
302
+ if i == len(x) - 1:
303
+ xx_2[i] = xxx + np.min([datetime.timedelta(diff_x[i-1]), xres, x_res_md]) / 2
304
+ else:
305
+ xx_2[i] = xxx + np.min([datetime.timedelta(diff_x[i]), xres, x_res_md]) / 2
306
+
307
+ xx = numpy.hstack((xx_1[:, numpy.newaxis], xx_2[:, numpy.newaxis]))
291
308
  xnew = xx.flatten()
292
309
 
293
310
  if len(y.shape) == 1 or 1 in y.shape:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: geospacelab
3
- Version: 0.11.0
3
+ Version: 0.11.2
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=o9UGHuHohTJI5hQ6S62CZ35dSnAnkD-M5-ayloaqsLU,801
1
+ geospacelab/__init__.py,sha256=z281cx-p62AcwL0TBdP-2pheA_u9DVw85sGurChtXrc,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
@@ -7,7 +7,7 @@ geospacelab/coords/geo_utilities.py,sha256=7_C98Cd29tzNl86kdWYmVC8UBS8E07oJIR6Ma
7
7
  geospacelab/cs/__init__.py,sha256=lzPhfypd0EfsOJnKsrrK2dQo3sxj8lpblYEhpz2i9xA,1282
8
8
  geospacelab/cs/_aacgm.py,sha256=6NmY_CVnECs-xZo1y2q3eglBc-ZrK-0SWtj6247Xq1E,723
9
9
  geospacelab/cs/_apex.py,sha256=9S-I0MMV5aU_MBO6Pi0AnFCGumfwIravW_VnGONvGYE,756
10
- geospacelab/cs/_cs_base.py,sha256=iZSlChh_tn6bw2k71c_LFs3jIvWy91ClxpOUO9MYYfg,17124
10
+ geospacelab/cs/_cs_base.py,sha256=bERqTF1uNLUFA3F1ySccyJt-t1Dhu1_B1E7-prrgV5o,17178
11
11
  geospacelab/cs/_geo.py,sha256=cLrb2r-xD5aVwKENUzaFVV71tPpOC21zCmUIQmf67eg,18242
12
12
  geospacelab/cs/geo_utilities.py,sha256=RWsioSB6_n3bT502ONho8eyJaFfFVmNBv1T0RwOPD64,604
13
13
  geospacelab/datahub/__dataset_base__.py,sha256=XPcwlfIXNFeoqQoe_PNNNfKW8pPI7rEz3bdrVqLPSCQ,20616
@@ -196,13 +196,13 @@ geospacelab/datahub/sources/madrigal/isr/risr_n/vi/variable_config.py,sha256=dE-
196
196
  geospacelab/datahub/sources/madrigal/satellites/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
197
197
  geospacelab/datahub/sources/madrigal/satellites/dmsp/__init__.py,sha256=YnuaB5J_ER8LrLUFghlty0YHYnmd9_2IHNW9TBQLaSI,487
198
198
  geospacelab/datahub/sources/madrigal/satellites/dmsp/downloader.py,sha256=jnA8XpiD-bhi5lM1p1er93D-kS7aE8XgYZVVGcE0Aho,4886
199
- geospacelab/datahub/sources/madrigal/satellites/dmsp/e/__init__.py,sha256=2LmuPOzOH9lhMqXkrb4gj9Wxsmdq2mXSA0phTlrK0eU,10309
199
+ geospacelab/datahub/sources/madrigal/satellites/dmsp/e/__init__.py,sha256=Csf-c864DxJXDjq9TL5YDF-8A97zVIdT8K8jerU45I4,10212
200
200
  geospacelab/datahub/sources/madrigal/satellites/dmsp/e/loader.py,sha256=kZ9AeI0LsNWS26Kwfp6azvDl2IutcWKBPDd6o0tKASc,4902
201
201
  geospacelab/datahub/sources/madrigal/satellites/dmsp/e/variable_config.py,sha256=exp1bYVmDBVlIbraeNgAuVEnjxg5IC2ED1cZIEiPj1U,10280
202
- geospacelab/datahub/sources/madrigal/satellites/dmsp/s1/__init__.py,sha256=u7Z0SFUaLNzPV7aIqcaEUTyIIYPHHJF3rXMWCDYbSUY,11536
202
+ geospacelab/datahub/sources/madrigal/satellites/dmsp/s1/__init__.py,sha256=iPtRE0QJ-Fq6Bit5xRRDXYigQr_DKl6DA7F_GRFofuU,11171
203
203
  geospacelab/datahub/sources/madrigal/satellites/dmsp/s1/loader.py,sha256=o5zEkosq7LyNlBIjlefKUpYpePCDbyL_yd3HrrUrk5Q,3360
204
204
  geospacelab/datahub/sources/madrigal/satellites/dmsp/s1/variable_config.py,sha256=Amp90wHogRQOESLH2b4D0jfeBozIKvvOnwx-_waU0us,6745
205
- geospacelab/datahub/sources/madrigal/satellites/dmsp/s4/__init__.py,sha256=0Qkn18pmVBmc0y0Kk6TRJBynoU_ysYMsXLzAAXB37M8,10198
205
+ geospacelab/datahub/sources/madrigal/satellites/dmsp/s4/__init__.py,sha256=85NIwKVTIB8nCmwzV_qk6dKeC4glIddjha6KQZXba64,12043
206
206
  geospacelab/datahub/sources/madrigal/satellites/dmsp/s4/loader.py,sha256=LL8IAMwmgQX06lgVECh6Rx6TGXEoHmAkFDmouJ6kQOo,3229
207
207
  geospacelab/datahub/sources/madrigal/satellites/dmsp/s4/variable_config.py,sha256=4DhvQxFonoYiU_3f9ObE2OkJOXDkHfw0RUMHa3FLTv4,4054
208
208
  geospacelab/datahub/sources/ncei/__init__.py,sha256=MHpNJ-PJBjywheG5CZDgj89fsxVG5qSxi_vkTsxibd8,658
@@ -331,7 +331,7 @@ geospacelab/toolbox/io/__init__.py,sha256=YcFkmOGWXNiOXWsMFxFPhn32UnbxmeSrluTp6O
331
331
  geospacelab/toolbox/io/dialog.py,sha256=y87PKCXQS5_axbrNuVrcYN2uIfr-ZHICr7yMQ0yH1M4,1067
332
332
  geospacelab/toolbox/unit/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
333
333
  geospacelab/toolbox/utilities/__init__.py,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
334
- geospacelab/toolbox/utilities/numpyarray.py,sha256=olclT06DRPFSYaEdiD1uqwHvM0vHNDFjkLstck6_clE,11862
334
+ geospacelab/toolbox/utilities/numpyarray.py,sha256=Sr7j5Kfe_vtc185GUX99olkML1Ld81jN6YmrNPX1wcM,12448
335
335
  geospacelab/toolbox/utilities/numpymath.py,sha256=xr-u9vsN5UMZ6pjomJ2O3A1n00Eg3yH5fN4lcY7rR_Q,3810
336
336
  geospacelab/toolbox/utilities/pybasic.py,sha256=-wLWoQMTroJ49nn8H_-hsFxDSiHXMiea86U6u0W8_cM,3310
337
337
  geospacelab/toolbox/utilities/pyclass.py,sha256=DnnzLH1ovlxArtqCpywZUfDoNzYi7HmMW2s17Xd30LI,2813
@@ -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.11.0.dist-info/licenses/LICENSE,sha256=2yRlwLt4o5Z6OZAGcyvBj-zfFX1Uw7E6CzqODg7khqs,1515
385
+ geospacelab-0.11.2.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.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,,
395
+ geospacelab-0.11.2.dist-info/METADATA,sha256=nnc9SDt62JaF_T7Aq4gqQrFiXIhdB4_zy-tEw-DAexU,24238
396
+ geospacelab-0.11.2.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
397
+ geospacelab-0.11.2.dist-info/top_level.txt,sha256=98eDwrSNgyQFAtSA06QMP71gw9BzgIj0uvkTudpGly4,12
398
+ geospacelab-0.11.2.dist-info/RECORD,,