mt-metadata 0.3.7__py2.py3-none-any.whl → 0.3.9__py2.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 mt-metadata might be problematic. Click here for more details.

mt_metadata/__init__.py CHANGED
@@ -39,7 +39,7 @@ you should only have to changes these dictionaries.
39
39
 
40
40
  __author__ = """Jared Peacock"""
41
41
  __email__ = "jpeacock@usgs.gov"
42
- __version__ = "0.3.7"
42
+ __version__ = "0.3.9"
43
43
 
44
44
  # =============================================================================
45
45
  # Imports
@@ -191,20 +191,20 @@
191
191
  4.200000e-04 3.400000e-04
192
192
  >!****IMPEDANCE ROTATION ANGLES****!
193
193
  >ZROT // 80
194
- 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00
195
- 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00
196
- 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00
197
- 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00
198
- 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00
199
- 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00
200
- 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00
201
- 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00
202
- 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00
203
- 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00
204
- 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00
205
- 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00
206
- 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00
207
- 0.000000e+00 0.000000e+00
194
+ 5.000000e+00 5.000000e+00 5.000000e+00 5.000000e+00 5.000000e+00 5.000000e+00
195
+ 5.000000e+00 5.000000e+00 5.000000e+00 5.000000e+00 5.000000e+00 5.000000e+00
196
+ 5.000000e+00 5.000000e+00 5.000000e+00 5.000000e+00 5.000000e+00 5.000000e+00
197
+ 5.000000e+00 5.000000e+00 5.000000e+00 5.000000e+00 5.000000e+00 5.000000e+00
198
+ 5.000000e+00 5.000000e+00 5.000000e+00 5.000000e+00 5.000000e+00 5.000000e+00
199
+ 5.000000e+00 5.000000e+00 5.000000e+00 5.000000e+00 5.000000e+00 5.000000e+00
200
+ 5.000000e+00 5.000000e+00 5.000000e+00 5.000000e+00 5.000000e+00 5.000000e+00
201
+ 5.000000e+00 5.000000e+00 5.000000e+00 5.000000e+00 5.000000e+00 5.000000e+00
202
+ 5.000000e+00 5.000000e+00 5.000000e+00 5.000000e+00 5.000000e+00 5.000000e+00
203
+ 5.000000e+00 5.000000e+00 5.000000e+00 5.000000e+00 5.000000e+00 5.000000e+00
204
+ 5.000000e+00 5.000000e+00 5.000000e+00 5.000000e+00 5.000000e+00 5.000000e+00
205
+ 5.000000e+00 5.000000e+00 5.000000e+00 5.000000e+00 5.000000e+00 5.000000e+00
206
+ 5.000000e+00 5.000000e+00 5.000000e+00 5.000000e+00 5.000000e+00 5.000000e+00
207
+ 5.000000e+00 5.000000e+00
208
208
  >!****IMPEDANCES****!
209
209
  >ZXXR ROT=ZROT // 80
210
210
  -2.476323e-02 -3.056975e-02 -3.186906e-02 -2.062529e-02 -1.577238e-02 -6.750678e-03
@@ -388,20 +388,20 @@
388
388
  3.180702e-03 3.179844e-03
389
389
  >!****TIPPER ROTATION ANGLES****!
390
390
  >TROT // 80
391
- 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00
392
- 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00
393
- 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00
394
- 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00
395
- 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00
396
- 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00
397
- 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00
398
- 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00
399
- 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00
400
- 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00
401
- 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00
402
- 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00
403
- 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00
404
- 0.000000e+00 0.000000e+00
391
+ 5.000000e+00 5.000000e+00 5.000000e+00 5.000000e+00 5.000000e+00 5.000000e+00
392
+ 5.000000e+00 5.000000e+00 5.000000e+00 5.000000e+00 5.000000e+00 5.000000e+00
393
+ 5.000000e+00 5.000000e+00 5.000000e+00 5.000000e+00 5.000000e+00 5.000000e+00
394
+ 5.000000e+00 5.000000e+00 5.000000e+00 5.000000e+00 5.000000e+00 5.000000e+00
395
+ 5.000000e+00 5.000000e+00 5.000000e+00 5.000000e+00 5.000000e+00 5.000000e+00
396
+ 5.000000e+00 5.000000e+00 5.000000e+00 5.000000e+00 5.000000e+00 5.000000e+00
397
+ 5.000000e+00 5.000000e+00 5.000000e+00 5.000000e+00 5.000000e+00 5.000000e+00
398
+ 5.000000e+00 5.000000e+00 5.000000e+00 5.000000e+00 5.000000e+00 5.000000e+00
399
+ 5.000000e+00 5.000000e+00 5.000000e+00 5.000000e+00 5.000000e+00 5.000000e+00
400
+ 5.000000e+00 5.000000e+00 5.000000e+00 5.000000e+00 5.000000e+00 5.000000e+00
401
+ 5.000000e+00 5.000000e+00 5.000000e+00 5.000000e+00 5.000000e+00 5.000000e+00
402
+ 5.000000e+00 5.000000e+00 5.000000e+00 5.000000e+00 5.000000e+00 5.000000e+00
403
+ 5.000000e+00 5.000000e+00 5.000000e+00 5.000000e+00 5.000000e+00 5.000000e+00
404
+ 5.000000e+00 5.000000e+00
405
405
  >!****TIPPER****!
406
406
  >TXR.EXP ROT=TROT // 80
407
407
  -2.867413e+02 -2.586491e+02 -2.495227e+02 -2.326995e+02 -2.074678e+02 -1.833140e+02
@@ -592,6 +592,7 @@ class XMLChannelMTChannel(BaseTranslator):
592
592
  :return:
593
593
  """
594
594
  original_sensor_type = sensor.type
595
+ original_sensor_description = sensor.description
595
596
  # set sensor_type to be a string if it is None
596
597
  if original_sensor_type is None:
597
598
  sensor_type = "" # make a string
@@ -600,16 +601,28 @@ class XMLChannelMTChannel(BaseTranslator):
600
601
  else:
601
602
  sensor_type = copy.deepcopy(original_sensor_type)
602
603
 
604
+ if original_sensor_description is None:
605
+ sensor_description = "" # make a string
606
+ else:
607
+ sensor_description = copy.deepcopy(original_sensor_type)
608
+
609
+
603
610
  if sensor_type.lower() in self.understood_sensor_types:
604
611
  return sensor_type
605
612
  else:
606
613
  self.logger.warning(f" sensor {sensor} type {sensor.type} not in {self.understood_sensor_types}")
607
614
 
608
615
  # Try handling Bartington FGM at Earthscope ... this is a place holder for handling non-standard cases
609
- if sensor.description == "Bartington 3-Axis Fluxgate Sensor":
610
- sensor_type = "magnetometer"
611
- elif sensor_type.lower() == "bartington":
616
+ if sensor_type.lower() == "bartington":
612
617
  sensor_type = "magnetometer"
618
+ if not sensor_type:
619
+ if sensor_description == "Bartington 3-Axis Fluxgate Sensor":
620
+ sensor_type = "magnetometer"
621
+ if sensor_description:
622
+ if ("bf-4" in sensor_description.lower()) & ("schlumberger" in sensor_description.lower()): # BSL-NCEDC
623
+ sensor_type = "magnetometer"
624
+ elif ("electric" in sensor_description.lower()) & ("dipole" in sensor_description.lower()): # BSL-NCEDC
625
+ sensor_type = "dipole"
613
626
 
614
627
 
615
628
  # reset sensor_type to None it it was not handled
@@ -274,7 +274,7 @@ class TF:
274
274
  )
275
275
  self.logger.error(msg)
276
276
  raise TypeError(msg)
277
- return run_metadata.copy()
277
+ return run_metadata
278
278
 
279
279
  def _validate_station_metadata(self, station_metadata):
280
280
  """
@@ -298,7 +298,7 @@ class TF:
298
298
  )
299
299
  self.logger.error(msg)
300
300
  raise TypeError(msg)
301
- return station_metadata.copy()
301
+ return station_metadata
302
302
 
303
303
  def _validate_survey_metadata(self, survey_metadata):
304
304
  """
@@ -328,7 +328,7 @@ class TF:
328
328
  )
329
329
  self.logger.error(msg)
330
330
  raise TypeError(msg)
331
- return survey_metadata.copy()
331
+ return survey_metadata
332
332
 
333
333
  ### Properties ------------------------------------------------------------
334
334
  @property
@@ -375,7 +375,9 @@ class TF:
375
375
  """
376
376
 
377
377
  if station_metadata is not None:
378
- station_metadata = self._validate_station_metadata(station_metadata)
378
+ station_metadata = self._validate_station_metadata(
379
+ station_metadata
380
+ )
379
381
 
380
382
  runs = ListDict()
381
383
  if self.run_metadata.id not in ["0", 0, None]:
@@ -1475,9 +1477,8 @@ class TF:
1475
1477
  """
1476
1478
  self.station_metadata.id = validate_name(station_name)
1477
1479
  if self.station_metadata.runs[0].id is None:
1478
- r = self.station_metadata.runs[0].copy()
1480
+ r = self.station_metadata.runs.pop(None)
1479
1481
  r.id = f"{self.station_metadata.id}a"
1480
- self.station_metadata.runs.remove(None)
1481
1482
  self.station_metadata.runs.append(r)
1482
1483
 
1483
1484
  @property
@@ -1872,9 +1873,13 @@ class TF:
1872
1873
  edi_obj.t = self.tipper.data
1873
1874
  edi_obj.t_err = self.tipper_error.data
1874
1875
  edi_obj.frequency = 1.0 / self.period
1875
- edi_obj.rotation_angle = np.repeat(
1876
- self._rotation_angle, self.period.size
1877
- )
1876
+
1877
+ if isinstance(self._rotation_angle, (int, float)):
1878
+ edi_obj.rotation_angle = np.repeat(
1879
+ self._rotation_angle, self.period.size
1880
+ )
1881
+ else:
1882
+ edi_obj.rotation_angle = self._rotation_angle
1878
1883
 
1879
1884
  # fill from survey metadata
1880
1885
  edi_obj.survey_metadata = self.survey_metadata
@@ -1939,6 +1944,7 @@ class TF:
1939
1944
  "transfer_function_error": "tf_err",
1940
1945
  "survey_metadata": "survey_metadata",
1941
1946
  "station_metadata": "station_metadata",
1947
+ "_rotation_angle": "rotation_angle",
1942
1948
  }
1943
1949
  )
1944
1950
  else:
@@ -1951,6 +1957,7 @@ class TF:
1951
1957
  "tipper_error": "t_err",
1952
1958
  "survey_metadata": "survey_metadata",
1953
1959
  "station_metadata": "station_metadata",
1960
+ "_rotation_angle": "rotation_angle",
1954
1961
  }
1955
1962
  )
1956
1963
  for tf_key, edi_key in k_dict.items():
@@ -2164,9 +2171,9 @@ class TF:
2164
2171
  """
2165
2172
  zmm_kwargs = {}
2166
2173
  zmm_kwargs["channel_nomenclature"] = self.channel_nomenclature
2167
- zmm_kwargs[
2168
- "inverse_channel_nomenclature"
2169
- ] = self.inverse_channel_nomenclature
2174
+ zmm_kwargs["inverse_channel_nomenclature"] = (
2175
+ self.inverse_channel_nomenclature
2176
+ )
2170
2177
  if hasattr(self, "decimation_dict"):
2171
2178
  zmm_kwargs["decimation_dict"] = self.decimation_dict
2172
2179
  zmm_obj = ZMM(**zmm_kwargs)
@@ -252,6 +252,22 @@ class EDI(object):
252
252
  return 1.0 / self.frequency
253
253
  return None
254
254
 
255
+ def _assert_descending_frequency(self):
256
+ """
257
+ Assert that the transfer function is ordered from high frequency to low
258
+ frequency.
259
+
260
+ """
261
+ if self.frequency[0] < self.frequency[1]:
262
+ self.logger.debug(
263
+ "Ordered arrays to be arranged from high to low frequency"
264
+ )
265
+ self.frequency = self.frequency[::-1]
266
+ self.z = self.z[::-1]
267
+ self.z_err = self.z_err[::-1]
268
+ self.t = self.t[::-1]
269
+ self.t_err = self.t_err[::-1]
270
+
255
271
  def read(self, fn=None, get_elevation=False):
256
272
  """
257
273
  Read in an edi file and fill attributes of each section's classes.
@@ -456,13 +472,8 @@ class EDI(object):
456
472
  except KeyError as error:
457
473
  self.logger.debug(error)
458
474
  # check for order of frequency, we want high togit low
459
- if self.frequency[0] < self.frequency[1]:
460
- self.logger.debug(
461
- "Ordered arrays to be arranged from high to low frequency"
462
- )
463
- self.frequency = self.frequency[::-1]
464
- self.z = self.z[::-1]
465
- self.z_err = self.z_err[::-1]
475
+ self._assert_descending_frequency()
476
+
466
477
  try:
467
478
  self.rotation_angle = np.array(data_dict["zrot"])
468
479
  except KeyError:
@@ -31,7 +31,7 @@ attr_dict.add_dict(get_schema("estimator", SCHEMA_FN_PATHS), "estimator")
31
31
  # =============================================================================
32
32
 
33
33
 
34
- def df_from_bands(band_list):
34
+ def df_from_bands(band_list: list) -> pd.DataFrame:
35
35
  """
36
36
  Utility function that transforms a list of bands into a dataframe
37
37
 
@@ -70,13 +70,13 @@ def df_from_bands(band_list):
70
70
  out_df.reset_index(inplace=True, drop=True)
71
71
  return out_df
72
72
 
73
- def get_fft_harmonics(samples_per_window, sample_rate):
73
+ def get_fft_harmonics(samples_per_window: int, sample_rate: float) -> np.ndarray:
74
74
  """
75
75
  Works for odd and even number of points.
76
76
 
77
- Could be midified with kwargs to support one_sided, two_sided, ignore_dc
78
- ignore_nyquist, and etc. Could actally take FrequencyBands as an argument
79
- if we wanted as well.
77
+ Development notes:
78
+ Could be modified with kwargs to support one_sided, two_sided, ignore_dc
79
+ ignore_nyquist, and etc. Consider taking FrequencyBands as an argument.
80
80
 
81
81
  Parameters
82
82
  ----------
@@ -319,6 +319,7 @@ class Decimation(Base):
319
319
  required_channels = decimation_level.reference_channels
320
320
  else:
321
321
  required_channels = decimation_level.local_channels
322
+
322
323
  try:
323
324
  assert set(required_channels).issubset(self.channels_estimated)
324
325
  except AssertionError:
@@ -326,7 +327,7 @@ class Decimation(Base):
326
327
  f"required_channels for processing {required_channels} not available"
327
328
  f"-- fc channels estimated are {self.channels_estimated}"
328
329
  )
329
- self.logger.warning(msg)
330
+ self.logger.info(msg)
330
331
  return False
331
332
 
332
333
  # anti_alias_filter
@@ -356,7 +357,7 @@ class Decimation(Base):
356
357
  f"Sample rates do not agree: fc {self.sample_rate_decimation} differs from "
357
358
  f"processing config {decimation_level.decimation.sample_rate}"
358
359
  )
359
- self.logger.warning(msg)
360
+ self.logger.info(msg)
360
361
  return False
361
362
 
362
363
  # method (fft, wavelet, etc.)
@@ -367,7 +368,7 @@ class Decimation(Base):
367
368
  "Transform methods do not agree "
368
369
  f"{self.method} != {decimation_level.method}"
369
370
  )
370
- self.logger.warning(msg)
371
+ self.logger.info(msg)
371
372
  return False
372
373
 
373
374
  # prewhitening_type
@@ -378,7 +379,7 @@ class Decimation(Base):
378
379
  "prewhitening_type does not agree "
379
380
  f"{self.prewhitening_type} != {decimation_level.prewhitening_type}"
380
381
  )
381
- self.logger.warning(msg)
382
+ self.logger.info(msg)
382
383
  return False
383
384
 
384
385
  # recoloring
@@ -389,7 +390,7 @@ class Decimation(Base):
389
390
  "recoloring does not agree "
390
391
  f"{self.recoloring} != {decimation_level.recoloring}"
391
392
  )
392
- self.logger.warning(msg)
393
+ self.logger.info(msg)
393
394
  return False
394
395
 
395
396
  # pre_fft_detrend_type
@@ -403,7 +404,7 @@ class Decimation(Base):
403
404
  "pre_fft_detrend_type does not agree "
404
405
  f"{self.pre_fft_detrend_type} != {decimation_level.pre_fft_detrend_type}"
405
406
  )
406
- self.logger.warning(msg)
407
+ self.logger.info(msg)
407
408
  return False
408
409
 
409
410
  # min_num_stft_windows
@@ -417,7 +418,7 @@ class Decimation(Base):
417
418
  "min_num_stft_windows do not agree "
418
419
  f"{self.min_num_stft_windows} != {decimation_level.min_num_stft_windows}"
419
420
  )
420
- self.logger.warning(msg)
421
+ self.logger.info(msg)
421
422
  return False
422
423
 
423
424
  # window
@@ -427,7 +428,7 @@ class Decimation(Base):
427
428
  msg = "window does not agree: "
428
429
  msg = f"{msg} FC Group: {self.window} "
429
430
  msg = f"{msg} Processing Config {decimation_level.window}"
430
- self.logger.warning(msg)
431
+ self.logger.info(msg)
431
432
  return False
432
433
 
433
434
  if -1 in self.harmonic_indices:
@@ -444,7 +445,7 @@ class Decimation(Base):
444
445
  f"Processing FC indices {processing_set} is not contained "
445
446
  f"in FC indices {fcdec_group_set}"
446
447
  )
447
- self.logger.warning(msg)
448
+ self.logger.info(msg)
448
449
  return False
449
450
 
450
451
  # No checks were failed the FCDecimation supports the processing config
@@ -23,7 +23,7 @@
23
23
  ],
24
24
  "alias": [],
25
25
  "example": "+",
26
- "default": null
26
+ "default": "+"
27
27
  },
28
28
  "units": {
29
29
  "type": "string",
@@ -44,18 +44,14 @@ class ListDict:
44
44
 
45
45
  def _get_key_from_index(self, index):
46
46
  try:
47
- return next(
48
- key for ii, key in enumerate(self._home) if ii == index
49
- )
47
+ return next(key for ii, key in enumerate(self._home) if ii == index)
50
48
 
51
49
  except StopIteration:
52
50
  raise KeyError(f"Could not find {index}")
53
51
 
54
52
  def _get_index_from_key(self, key):
55
53
  try:
56
- return next(
57
- index for index, k in enumerate(self._home) if k == key
58
- )
54
+ return next(index for index, k in enumerate(self._home) if k == key)
59
55
 
60
56
  except StopIteration:
61
57
  raise KeyError(f"Could not find {key}")
@@ -75,9 +71,7 @@ class ListDict:
75
71
  elif hasattr(obj, "component"):
76
72
  return obj.component
77
73
  else:
78
- raise TypeError(
79
- "could not identify an appropriate key from object"
80
- )
74
+ raise TypeError("could not identify an appropriate key from object")
81
75
 
82
76
  def __deepcopy__(self, memodict={}):
83
77
  """
@@ -230,9 +224,7 @@ class ListDict:
230
224
  raise (KeyError("Could not find None in keys."))
231
225
 
232
226
  else:
233
- raise TypeError(
234
- "could not identify an appropriate key from object"
235
- )
227
+ raise TypeError("could not identify an appropriate key from object")
236
228
 
237
229
  def extend(self, other, skip_keys=[]):
238
230
  """
@@ -282,3 +274,18 @@ class ListDict:
282
274
  )
283
275
 
284
276
  self._home.update(other)
277
+
278
+ def pop(self, key):
279
+ """
280
+ pop item off of dictionary. The key must be verbatim
281
+
282
+ :param key: key of item to be popped off of dictionary
283
+ :type key: string
284
+ :return: item popped
285
+
286
+ """
287
+
288
+ if key in self.keys():
289
+ return dict([self._home.popitem(key)])
290
+ else:
291
+ raise KeyError(f"{key} is not in ListDict keys.")
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: mt-metadata
3
- Version: 0.3.7
3
+ Version: 0.3.9
4
4
  Summary: Metadata for magnetotelluric data
5
5
  Home-page: https://github.com/kujaku11/mt_metadata
6
6
  Author: Jared Peacock
@@ -28,7 +28,7 @@ Requires-Dist: matplotlib
28
28
  Requires-Dist: xarray
29
29
  Requires-Dist: loguru
30
30
 
31
- # mt_metadata version 0.3.7
31
+ # mt_metadata version 0.3.9
32
32
  Standard MT metadata
33
33
 
34
34
  [![PyPi version](https://img.shields.io/pypi/v/mt_metadata.svg)](https://pypi.python.org/pypi/mt-metadata)
@@ -58,7 +58,7 @@ MT Metadata is a project led by [IRIS-PASSCAL MT Software working group](https:/
58
58
 
59
59
  Most people will be using the transfer functions, but a lot of that metadata comes from the time series metadata. This module supports both and has tried to make them more or less seamless to reduce complication.
60
60
 
61
- * **Version**: 0.3.7
61
+ * **Version**: 0.3.9
62
62
  * **Free software**: MIT license
63
63
  * **Documentation**: https://mt-metadata.readthedocs.io.
64
64
  * **Examples**: Click the `Binder` badge above and Jupyter Notebook examples are in **mt_metadata/examples/notebooks** and **docs/source/notebooks**
@@ -426,3 +426,11 @@ History
426
426
  * Patches by @kkappler in https://github.com/kujaku11/mt_metadata/pull/221
427
427
  * Patches by @kkappler in https://github.com/kujaku11/mt_metadata/pull/223
428
428
  * Bump version: 0.3.6 → 0.3.7 by @kujaku11 in https://github.com/kujaku11/mt_metadata/pull/225
429
+
430
+ 0.3.8 (2024-09-30)
431
+ ----------------------
432
+
433
+ * Add pop to ListDict by @kujaku11 in https://github.com/kujaku11/mt_metadata/pull/226
434
+ * Fix EDI Tipper flip by @kujaku11 in https://github.com/kujaku11/mt_metadata/pull/228
435
+ * Patches by @kujaku11 in https://github.com/kujaku11/mt_metadata/pull/227
436
+ * Bump version: 0.3.7 → 0.3.8 by @kujaku11 in https://github.com/kujaku11/mt_metadata/pull/229
@@ -1,4 +1,4 @@
1
- mt_metadata/__init__.py,sha256=Ij-OA6uOFAAYRMgD-lPkuf74v6_J326Orxlg2fKQVbM,5588
1
+ mt_metadata/__init__.py,sha256=rniaK_gb2gC3hJD9xr80nup-of5W9KxDFkcpAqGhJl4,5588
2
2
  mt_metadata/base/__init__.py,sha256=bylCGBoJkeytxeQgMnuqivqFAvbyNE5htvP-3yu1GEY,184
3
3
  mt_metadata/base/helpers.py,sha256=_SbJC8zDFmjQrmGbb6jBkqkWtaItNHyb8PREdPm5nl8,19798
4
4
  mt_metadata/base/metadata.py,sha256=obOFdU6FPf2o-SbdxOxZ60LvzbI6Cp-bbRXw8KdkBao,27145
@@ -20,7 +20,7 @@ mt_metadata/data/transfer_functions/NMX20.xml,sha256=gof0okuJnXl2KFqazR5FcSHq6pM
20
20
  mt_metadata/data/transfer_functions/PHXTest01.edi,sha256=TGLZRiwfO5OPdhzfcI9QCMnOkncBK3Wi_3zQf0KzqlA,61145
21
21
  mt_metadata/data/transfer_functions/__init__.py,sha256=fsW8De_Dhrjp55R12F2RH5M6QHoPO3Qf51yR3AFWztg,26
22
22
  mt_metadata/data/transfer_functions/example.xml,sha256=fZ42a-_H8C9AoZebhtiiFm5sjX625_c_Dn3Q0BWFWb4,31883
23
- mt_metadata/data/transfer_functions/test.edi,sha256=4hlGmqUkgBdikoFFj27AJFPkNHhTf3B8hzg-TPaipJQ,32990
23
+ mt_metadata/data/transfer_functions/test.edi,sha256=WISk9dJ0Ky8y4CutiX3nK6ylxprKWGPzqMD5B6nyBXc,32990
24
24
  mt_metadata/data/transfer_functions/tf_avg.avg,sha256=lHmdFvSKvRdlK95APWt37FCnqIUXeDi2KT_QsK3BJeg,13326
25
25
  mt_metadata/data/transfer_functions/tf_avg_newer.avg,sha256=ntH2offELj0fdiK-pYFU6M89rVw4tWEGnibwdD3TBS8,38811
26
26
  mt_metadata/data/transfer_functions/tf_avg_tipper.avg,sha256=UrvMNQibr_SvXg4kGGTBlPw3nlTd7ybmXaUUC157uOY,39033
@@ -123,7 +123,7 @@ mt_metadata/timeseries/standards/timing_system.json,sha256=ikVKrlfzm6wIPvDcL_Ih6
123
123
  mt_metadata/timeseries/stationxml/__init__.py,sha256=zTL0jn2j7KZTF4i-k40RpXcvW_XzdG1WqieC39284Lc,525
124
124
  mt_metadata/timeseries/stationxml/fdsn_tools.py,sha256=6H1hZCxf5-skNSjPazMS_wKu4oB3LF_jTqq4xRfpRAw,9487
125
125
  mt_metadata/timeseries/stationxml/utils.py,sha256=16617e6snyrsNjletGbw-gLYQ2vt-7VfYPokz6dakts,7257
126
- mt_metadata/timeseries/stationxml/xml_channel_mt_channel.py,sha256=fQw13j8QAyZQoMJX5xX24nDC0Ub4EVfpOORKTnemLA0,22122
126
+ mt_metadata/timeseries/stationxml/xml_channel_mt_channel.py,sha256=aTQ_PRya-un51NHKXuTUfMyR5dShE3_XLfBo__N4-Nw,22781
127
127
  mt_metadata/timeseries/stationxml/xml_equipment_mt_run.py,sha256=yRPk6lhnzkpgARe6lQkU_-vZrTDDmIIeRCTI9Wig9XY,5151
128
128
  mt_metadata/timeseries/stationxml/xml_inventory_mt_experiment.py,sha256=M_k6rENVd9eHv92QNkcd7Yua9bnwYZtjKj9mpjKhkEs,14085
129
129
  mt_metadata/timeseries/stationxml/xml_network_mt_survey.py,sha256=RciEmnFGb8kMf1mA1lLn9d0R7WiOW2BeoV1bDB-eJuU,7124
@@ -131,11 +131,11 @@ mt_metadata/timeseries/stationxml/xml_station_mt_station.py,sha256=pelvkiQios4gz
131
131
  mt_metadata/timeseries/tools/__init__.py,sha256=loPgjYnajbOX2rQTlLBh79cG2eaUNpI3KaCjp7SB4ik,78
132
132
  mt_metadata/timeseries/tools/from_many_mt_files.py,sha256=rtx5NAPBUmOgrMXUT-YJxznqfI1qdRkS4B2SWjrU_1c,14405
133
133
  mt_metadata/transfer_functions/__init__.py,sha256=7F_9sev0KlRfswx_H0j8-1PJs-ZTpD04qwjYh1jst8w,1288
134
- mt_metadata/transfer_functions/core.py,sha256=AmWmH2-k-2W2uGTsaozZkq6p3KURWWgfMHCbEMZiTU8,80641
134
+ mt_metadata/transfer_functions/core.py,sha256=Vd-5oLlxUonW3FRHbYsCydrOT5zAjdsKMdKZnsbUy8Y,80865
135
135
  mt_metadata/transfer_functions/io/__init__.py,sha256=8DKEQZrpF0RK_MTjR0_w0UQfgVf9VwuJrzy7eann1N8,215
136
136
  mt_metadata/transfer_functions/io/tools.py,sha256=xatyc0RN8-KKS1PmpjATDAOHln9HIEP-iNAN0Njjyv4,6024
137
137
  mt_metadata/transfer_functions/io/edi/__init__.py,sha256=5pgyFFwRezvlxxcsSQsvCmeShJe97TdY6F37T7FiNWA,61
138
- mt_metadata/transfer_functions/io/edi/edi.py,sha256=mFUahyjiIZnh45masDsue4pJkU4FifnZOi4I8rlvXh0,53798
138
+ mt_metadata/transfer_functions/io/edi/edi.py,sha256=BQdiZNiXRdQ9-95HhhWDNK4zHyUTSFRcHXSJr4h6Q8I,54099
139
139
  mt_metadata/transfer_functions/io/edi/metadata/__init__.py,sha256=ndXcOh7eN4adnXS7fAtvZg6i4K_gY3VT7zbNzeGjsaM,395
140
140
  mt_metadata/transfer_functions/io/edi/metadata/data_section.py,sha256=RhelbBN83LhRvItlVrBKuQoFLBaPonENp0KyIkW79X0,7751
141
141
  mt_metadata/transfer_functions/io/edi/metadata/define_measurement.py,sha256=AQfJQSTVs-iOuEyiCnBFjMwqgowD0dkL2Bp5mSAhQ8s,16318
@@ -280,7 +280,7 @@ mt_metadata/transfer_functions/processing/aurora/band.py,sha256=mNDkpJQbf7F7aF-F
280
280
  mt_metadata/transfer_functions/processing/aurora/channel.py,sha256=TZHfy-XgrijdNVd4Sjbq3tjORFsJNZIzwa4_J7tDOHM,773
281
281
  mt_metadata/transfer_functions/processing/aurora/channel_nomenclature.py,sha256=Y7rQTH3YsTB8KFIMk6vQZWFrRKQWlnwoQNZOZjZImbk,3038
282
282
  mt_metadata/transfer_functions/processing/aurora/decimation.py,sha256=AF7vdU-Q7W4yfnJoPDbhDqgxJTtHiLCLEUDLBEzfmFM,785
283
- mt_metadata/transfer_functions/processing/aurora/decimation_level.py,sha256=cZhV9BPM7kj3qSDg7HCM2vyV7VW1-jWOTE7ISASKRsA,10657
283
+ mt_metadata/transfer_functions/processing/aurora/decimation_level.py,sha256=-DgKDCypO1qoqYsck-FNGrduF41can3xqRLsKeIVYeA,10700
284
284
  mt_metadata/transfer_functions/processing/aurora/estimator.py,sha256=9I2Rs3guO7sc9HEpLbYI8nYZfQ7IayosKvsrE6etBac,781
285
285
  mt_metadata/transfer_functions/processing/aurora/processing.py,sha256=BCKXGu_iVValVyE0EbsR9_gYkwv0I4GxS61AqXUtc8s,10320
286
286
  mt_metadata/transfer_functions/processing/aurora/regression.py,sha256=NIgivJx11-ZVsVfQgdIODfsPeyMPmhRXA6bSNiarA8c,783
@@ -304,7 +304,7 @@ mt_metadata/transfer_functions/processing/aurora/standards/station.json,sha256=k
304
304
  mt_metadata/transfer_functions/processing/aurora/standards/stations.json,sha256=-ZAipnSnZ3IT4fUgsHt9xUTA_yPA_lN3i9p4nHfZcrs,276
305
305
  mt_metadata/transfer_functions/processing/aurora/standards/window.json,sha256=cZ1qYCcIfWwIqYHgqNIlaNjiYcY7G216tIsyteQXZLM,1892
306
306
  mt_metadata/transfer_functions/processing/fourier_coefficients/__init__.py,sha256=Ay7nGOU1xTeZVTsNWnFoR9085DAcO4NbEf0d8uWgz_0,134
307
- mt_metadata/transfer_functions/processing/fourier_coefficients/decimation.py,sha256=zUhhHWNT-3_GkUC0uI83OcK0nxgaAi-GW4xdYBeF_V8,15679
307
+ mt_metadata/transfer_functions/processing/fourier_coefficients/decimation.py,sha256=Y8jXmHCEVAeXTVUfZji9PMZ_J5DAovaCjuZbjlnZsJs,15654
308
308
  mt_metadata/transfer_functions/processing/fourier_coefficients/fc.py,sha256=bN3S_0uoMqXDcJcw_7oYN3YQqsWITD2UX0aRcgdY7fw,10450
309
309
  mt_metadata/transfer_functions/processing/fourier_coefficients/fc_channel.py,sha256=HFFo2XoqaKJOae3mtRSMZ80_AZ6wDx0KKq3oBfIbJKg,926
310
310
  mt_metadata/transfer_functions/processing/fourier_coefficients/standards/__init__.py,sha256=Y3rdyXKOgxbSh9FQxQCCplsbqxwWmFIGm6yZG1cj0Uw,135
@@ -322,17 +322,17 @@ mt_metadata/transfer_functions/tf/standards/comment.json,sha256=E9_GO681t7OZTOct
322
322
  mt_metadata/transfer_functions/tf/standards/station.json,sha256=KbxDe8QRWEmBxyWJKcFaAjFjdSzzpRQSCniHgLMqy9c,2972
323
323
  mt_metadata/transfer_functions/tf/standards/statistical_estimate.json,sha256=BT_SF6naRCX_LH6uNtGI9tZqxcFir5-0tdf6lp6K3JM,1917
324
324
  mt_metadata/transfer_functions/tf/standards/survey.json,sha256=4AX3-n8j8QwLkXF7G4J3QRKOCHIa4DjdnA-W99c2ck0,3426
325
- mt_metadata/transfer_functions/tf/standards/transfer_function.json,sha256=yTPACcTk9JcxmTwIiRPUdoPf3riRGJZ-XxrNfHU5Otw,3220
325
+ mt_metadata/transfer_functions/tf/standards/transfer_function.json,sha256=QnLg3DfSTVZL8W_2ecpRkPTAvQqVi4KrKr6DUiSE2XM,3219
326
326
  mt_metadata/utils/__init__.py,sha256=5TWhar2ujJY_pYkwDdggX8jU9CFXcxc9jX1yXc8TqJs,35
327
327
  mt_metadata/utils/exceptions.py,sha256=PKWdjKfR95NJ-Rgx3rzu9Qmdj0thVHjcmEvHoC9HuBE,462
328
- mt_metadata/utils/list_dict.py,sha256=BguxnQuNPf8aOMwULaaam22L4RUQ3SNzIkLqVh_gUQs,7668
328
+ mt_metadata/utils/list_dict.py,sha256=sazYtq8spfN9l6iGrqsfKCdUFAMXq6iV8cq3m8UlS-Q,7945
329
329
  mt_metadata/utils/mttime.py,sha256=v71TCPjtoY_0GTsJ39WCD8kwIZDNzE679m96a3QGgPE,18725
330
330
  mt_metadata/utils/summarize.py,sha256=KisJt2PWz1-_FOBH8NQtidgxjdWPAbIDwPzEB197uhs,4109
331
331
  mt_metadata/utils/units.py,sha256=OdALLmytoPvjJ8rYf7QsGq1b8nrNt85A8wUhjqRyTOo,6405
332
332
  mt_metadata/utils/validators.py,sha256=jQf0VBtfT5GMXlEUI5Hg1zILqSir9Ra4Moi4dL54KeM,16380
333
- mt_metadata-0.3.7.dist-info/AUTHORS.rst,sha256=3RKy4std2XZQLNF6xYIiA8S5A0bBPqNO7ypJsuEhiN8,706
334
- mt_metadata-0.3.7.dist-info/LICENSE,sha256=P33RkFPriIBxsgZtVzSn9KxYa2K7Am42OwMV0h_m5e0,1080
335
- mt_metadata-0.3.7.dist-info/METADATA,sha256=dCuqaycFVp396z1u2LdlwnYTOI36qMNpu5i8sfk8_vI,20438
336
- mt_metadata-0.3.7.dist-info/WHEEL,sha256=DZajD4pwLWue70CAfc7YaxT1wLUciNBvN_TTcvXpltE,110
337
- mt_metadata-0.3.7.dist-info/top_level.txt,sha256=fxe_q_GEd9h6iR3050ZnrhSfxUSO5pR8u65souS4RWM,12
338
- mt_metadata-0.3.7.dist-info/RECORD,,
333
+ mt_metadata-0.3.9.dist-info/AUTHORS.rst,sha256=3RKy4std2XZQLNF6xYIiA8S5A0bBPqNO7ypJsuEhiN8,706
334
+ mt_metadata-0.3.9.dist-info/LICENSE,sha256=P33RkFPriIBxsgZtVzSn9KxYa2K7Am42OwMV0h_m5e0,1080
335
+ mt_metadata-0.3.9.dist-info/METADATA,sha256=-ksqp_LJNRIEojqz_X0vZHvqHJnaot3T9mlS_kGQ_zc,20842
336
+ mt_metadata-0.3.9.dist-info/WHEEL,sha256=DZajD4pwLWue70CAfc7YaxT1wLUciNBvN_TTcvXpltE,110
337
+ mt_metadata-0.3.9.dist-info/top_level.txt,sha256=fxe_q_GEd9h6iR3050ZnrhSfxUSO5pR8u65souS4RWM,12
338
+ mt_metadata-0.3.9.dist-info/RECORD,,