shipgrav 1.0.7__py2.py3-none-any.whl → 1.0.10__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.
shipgrav/database.toml CHANGED
@@ -1,11 +1,11 @@
1
1
  [bias-values]
2
- Atlantis = {'dgs'=969758.4968, 'bgm'=855580.65}
3
- Thompson = {'dgs'=969527.3497, 'bgm'=855489.8}
2
+ Atlantis = {'dgs'=969751.259, 'bgm'=855580.65} # 2025
3
+ Thompson = {'dgs'=969492.789, 'bgm'=855489.8} # Jan 2026
4
4
  Revelle = {'dgs'=968888.6465, 'bgm'=855240.81987}
5
5
  NBP = {'dgs'=968634.2514, 'bgm'=-999}
6
6
  Ride = {'dgs'=968895.7718, 'bgm'=-999}
7
- Langseth = {'dgs'=-999, 'bgm'=854974.4}
8
- Sikuliaq = {'dgs'=969538.8152, 'bgm'=-999}
7
+ Langseth = {'dgs'=969376.125, 'bgm'=854974.4} # 2025
8
+ Sikuliaq = {'dgs'=969538.8152, 'bgm'=-999} #2025
9
9
 
10
10
  [nav-talkers]
11
11
  Atlantis = 'GPGGA'
shipgrav/io.py CHANGED
@@ -572,6 +572,8 @@ def read_dgs_laptop(fp, ship, ship_function=None, progressbar=True):
572
572
  dat = _dgs_laptop_Thompson(path)
573
573
  elif ship == 'Sikuliaq':
574
574
  dat = _dgs_laptop_Sikuliaq(path)
575
+ elif ship == 'Langseth':
576
+ dat = _dgs_laptop_Langseth(path)
575
577
  else:
576
578
  print('R/V %s not supported for dgs laptop file read' % ship)
577
579
  return -999
@@ -613,6 +615,55 @@ def _dgs_laptop_Thompson(path):
613
615
  dat['date_time'] = pd.to_datetime(dat.pop('date')+' '+dat.pop('time'),utc=True)
614
616
  return dat
615
617
 
618
+ def _dgs_laptop_Langseth(path):
619
+ """Read DGS laptop data from Langseth, which has a prefix of dgsdata yyyy:ddd:hh:mm:ss.ssss
620
+ and some random errors of misaligned columns
621
+ """
622
+ cleaned, skipped = [], 0
623
+
624
+ with open(path, 'r', encoding='utf-8', errors='ignore') as f:
625
+ for ln_no, raw in enumerate(f, 1):
626
+ s = raw.lstrip() # remove leading spaces before 'dgsdata'
627
+ # Remove optional prefix: "dgsdata yyyy:ddd:hh:mm:ss.ssss "
628
+ if s.startswith('dgsdata'):
629
+ parts = s.split(None, 2)
630
+ if len(parts) < 3:
631
+ print(f"SKIP malformed prefix in {path}: line {ln_no}")
632
+ skipped += 1
633
+ continue
634
+ tail = parts[2].rstrip('\n')
635
+ else:
636
+ tail = s.rstrip('\n')
637
+ # Skip lines that are not 26 fields and report where they are
638
+ fields = tail.split(',')
639
+ if len(fields) != 26:
640
+ print(f"SKIP non-26-field line in {path}: line {ln_no} (NF={len(fields)})")
641
+ skipped += 1
642
+ continue
643
+
644
+ cleaned.append(fields)
645
+
646
+ if skipped:
647
+ print(f"INFO: Skipped {skipped} line(s) in {path} (not 26 fields)")
648
+
649
+ if not cleaned:
650
+ # Return empty frame with expected columns if nothing valid
651
+ cols = ['rgrav','long_a','crss_a','status','ve','vcc','al','ax','lat','lon',
652
+ 'year','month','day','hour','minute','second','date_time']
653
+ return pd.DataFrame(columns=cols)
654
+
655
+ dat = pd.DataFrame(np.array(cleaned).T[[1, 2, 3, 6, 10, 11, 12, 13, 14, 15, 19, 20, 21, 22, 23, 24]].T,
656
+ columns=['rgrav', 'long_a', 'crss_a', 'status', 've', 'vcc','al', 'ax',
657
+ 'lat', 'lon', 'year', 'month', 'day','hour', 'minute', 'second'])
658
+
659
+ # Convert to numeric
660
+ for col in dat.columns:
661
+ dat[col] = pd.to_numeric(dat[col], errors='coerce')
662
+
663
+ dat['date_time'] = pd.to_datetime(
664
+ dat[['year', 'month', 'day', 'hour', 'minute', 'second']], utc=True)
665
+ return dat
666
+
616
667
 
617
668
  def read_dgs_raw(fp, ship, scale_ccp=True, progressbar=True):
618
669
  """Read raw (serial) output files from DGS AT1M.
@@ -638,6 +689,8 @@ def read_dgs_raw(fp, ship, scale_ccp=True, progressbar=True):
638
689
  for path in tqdm(fp,desc='reading DGS files',disable=not progressbar):
639
690
  if ship == 'Thompson': # always with the special file formats
640
691
  dat = _dgs_raw_Thompson(path)
692
+ elif ship == 'Sikuliaq':
693
+ dat = _dgs_raw_Sikuliaq(path)
641
694
  else: # there might be exceptions besides Thompson but I don't know about them yet
642
695
  dat = _dgs_raw_general(path)
643
696
 
@@ -704,6 +757,25 @@ def _dgs_raw_Thompson(path):
704
757
 
705
758
  return dat
706
759
 
760
+ def _dgs_raw_Sikuliaq(path):
761
+ """Read raw gravity file for R/V Sikuliaq. Not extensively tested.
762
+ """
763
+ dat = pd.read_csv(path, comment='#', delimiter='\t', names=['logname', 'timestamp', 'raw'])
764
+
765
+ # Extract relevant fields
766
+ parts = dat['raw'].str.extract(
767
+ r'^\$AT1M_[^,]*,([-\d.]+),([-\d.]+),([-\d.]+),[^,]*,[^,]*,[^,]*,[^,]*,([-\d.]+),([-\d.]+),([-\d.]+),([-\d.]+),[^,]*,[^,]*,([-\d.]+),([-\d.]+)'
768
+ )
769
+ parts.columns = ['rgrav', 'long_a', 'crss_a', 'vcc', 've', 'al', 'ax', 'lat', 'lon']
770
+
771
+ # Convert to numeric
772
+ for col in parts.columns:
773
+ parts[col] = pd.to_numeric(parts[col], errors='coerce')
774
+
775
+ dat = pd.concat([dat[['timestamp']], parts], axis=1)
776
+ dat['date_time'] = pd.to_datetime(dat.pop('timestamp'), utc=True)
777
+ return dat
778
+
707
779
  ########################################################################
708
780
  # reading other things (MRU etc)
709
781
  ########################################################################
@@ -0,0 +1,5 @@
1
+ dgsdata 2025:254:00:00:00.9100 9382.775980900780,1483.187129171984, -4.223089483153, -5.347272318276, 0.003149038929, 51.500000000000, 20830, 5546652, 28.281200000000, 52.868836000000, 0.323080000000, 16.646090000000, 0.254130000000, -0.379190000000, 23.067226666667,-112.378688333333, 5.111352558064,144.700000000000, 19.918886685114,2025,09,11,00,00,00.91,297172
2
+ dgsdata 2025:254:00:00:01.9201 9382.768550844663,380.608909648050, -2.882289037977, -3.642013197185, 0.002531534735, 51.500000000000, 20830, 6059436, 28.281640000000, 52.878764000000, 0.415790000000, 21.178990000000, 0.316760000000, -0.183670000000, 23.067188333333,-112.378660000000, 5.069654546462,144.700000000000, 19.835721693473,2025,09,11,00,00,01.91,297173
3
+ dgsdata 2025:254:00:00:02.9270 9382.768166650942,2396.951266607078, -0.499869286998, -0.758080692062, 0.001363283558, 51.500000000000, 20830, 6773987, 28.281750000000, 52.901102000000, 0.493870000000, 26.768760000000, 0.514720000000, 0.152990000000, 23.067148333333,-112.378628333333, 5.132458958999,144.700000000000, 19.755630454797,2025,09,11,00,00,02.91,297174
4
+ dgsdata 2025:254:00:00:03.9120 9382.773314616561,7551.568206079627, 2.084704051579, 2.431311479963, 0.000397688198, 51.500000000000, 20830, 7395594, 28.281640000000, 52.903584000000, 0.554250000000, 30.714220000000, 0.805880000000, 0.642830000000, 23.067111666667,-112.378598333333, 5.210707079537,144.500000000000, 19.678636578924,2025,09,11,00,00,03.91,297175
5
+ dgsdata 2025:254:00:00:04.9238 9382.780964749858,13428.584672971925, 3.915424217632, 4.815386928962, 0.000407224942, 51.500000000000, 20830, 7720796, 28.281750000000, 52.901102000000, 0.570960000000, 31.924110000000, 1.041950000000, 1.100670000000, 23.067073333333,-112.378570000000, 5.212766240604,144.300000000000, 19.604757648864,2025,09,11,00,00,04.91,297176
@@ -0,0 +1,21 @@
1
+ # Platform:
2
+ # Name: R/V Sikuliaq
3
+ # Operator: UAF
4
+ # IMO Number: 9578945
5
+ # ICES Code: 33BI
6
+ # Call Sign: WDN7246
7
+ # MMSI Number: 338417000
8
+ # Cruise ID: SKQ202418S
9
+ #
10
+ # Instrument:
11
+ # Name: Dynamic Gravity Systems Advanced Technology Marine Gravimeter
12
+ # Model: AT1-M
13
+ # Serial Number: 33
14
+ # Location: Aft inboard wall of tech workshop, 1-12-1
15
+ # Installation Date: 28 November 2023
16
+ #
17
+ # Parameters:
18
+ # Log Name Log Time QC_Gravity, Gravity, Long accelerometer, Cross accelerometer, beam, Sensor Temp, STATUS, Checksum, Pressure, Etemp, Ve, Vcc, Al, Ax, Latitude, Longitude, Speed, Course, VMOND, Year, Month, Day Hours, Min, Seconds, NumLine
19
+ #
20
+ grav_dgs_33_proc 2024-12-13T00:00:00.4059Z 9389.827772838045,9288.404692385160, -0.023006441952, -0.112389577912, -0.981155312199, 52.255832250000, 20766, 4039201, 28.944054383333, 51.226372500000, 0.002350000000, 0.436120000000, 0.005350000000, 0.001870000000, 21.315802416667,-157.877074616667, 0.000000000000, 8.140000000000, 0.160753801557,2024,12,12,23,59,55.00,5196653
21
+ grav_dgs_33_proc 2024-12-13T00:00:01.3929Z 9389.825061856613,9323.774367216154, -0.035286907588, -0.139204518700, -0.981177961967, 52.256280125000, 20766, 4036172, 28.944054383333, 51.225338333333, 0.002200000000, 0.404080000000, 0.005640000000, 0.002050000000, 21.315802483333,-157.877074600000, 0.000000000000,318.940000000000, 0.160422031783,2024,12,12,23,59,56.00,5196654
@@ -0,0 +1,21 @@
1
+ # Platform:
2
+ # Name: R/V Sikuliaq
3
+ # Operator: UAF
4
+ # IMO Number: 9578945
5
+ # ICES Code: 33BI
6
+ # Call Sign: WDN7246
7
+ # MMSI Number: 338417000
8
+ # Cruise ID: SKQ202416T
9
+ #
10
+ # Instrument:
11
+ # Name: Dynamic Gravity Systems Advanced Technology Marine Gravimeter
12
+ # Model: AT1-M
13
+ # Serial Number: 33
14
+ # Location: Aft inboard wall of tech workshop, 1-12-1
15
+ # Installation Date: 28 November 2023
16
+ #
17
+ # Parameters:
18
+ # Log Name Log Time $head2, dgravity, dlong, dcross, dbeam, dtemp, dpressure, detemp, rvcc, rve, ral, rax, status, check, latitude, longitude, speed, course, datestamp
19
+ #
20
+ grav_dgs_33_raw 2024-10-18T22:12:35.6591Z $AT1M_3.64_438219,19964,1208,-578,4008935,273,498,202,30569,425,277,-224,266,4061549,0.0000000000,0.0000000000,0.0000,0.0000,438219
21
+ grav_dgs_33_raw 2024-10-18T22:12:36.6591Z $AT1M_3.64_438220,19569,1174,-762,4008937,273,497,203,30566,410,264,-233,266,4060898,0.0000000000,0.0000000000,0.0000,0.0000,438220
@@ -74,7 +74,7 @@ class gravDataTestCase(unittest.TestCase):
74
74
 
75
75
 
76
76
  def suite():
77
- return unittest.makeSuite(gravDataTestCase, 'test')
77
+ return unittest.defaultTestLoader.loadTestsFromTestCase(gravDataTestCase)
78
78
 
79
79
 
80
80
  if __name__ == '__main__':
@@ -58,7 +58,7 @@ class gravNoDataTestCase(unittest.TestCase):
58
58
  self.assertTrue(sdat[0,0] - 130.877533 < 0.001)
59
59
 
60
60
  def suite():
61
- return unittest.makeSuite(gravNoDataTestCase, 'test')
61
+ return unittest.defaultTestLoader.loadTestsFromTestCase(gravNoDataTestCase)
62
62
 
63
63
 
64
64
  if __name__ == '__main__':
shipgrav/tests/test_io.py CHANGED
@@ -94,6 +94,18 @@ class ioTestCase(unittest.TestCase):
94
94
  self.assertEqual(dgs.iloc[0]['ve'], 2e-5)
95
95
  self.assertTrue(dgs.iloc[0]['rgrav'] - 9995.95186 < 0.0001)
96
96
 
97
+ def test_read_dgs_dat_Langseth(self):
98
+ dgs = sgi.read_dgs_laptop(f'{self.ex_files}'+os.sep+'MGL_dgsdata.y2025d254', 'Langseth', progressbar=False)
99
+ self.assertEqual(dgs.iloc[0]['date_time'].timestamp(), 1757548800.91)
100
+ self.assertEqual(dgs.iloc[0]['ve'], 0.32308)
101
+ self.assertTrue(dgs.iloc[0]['rgrav'] - 1483.1871291 < 0.0001)
102
+
103
+ def test_read_dgs_dat_Sikuliaq(self):
104
+ dgs = sgi.read_dgs_laptop(f'{self.ex_files}'+os.sep+'SKQ_dgs_proc.20241213T0000Z', 'Sikuliaq', progressbar=False)
105
+ self.assertEqual(dgs.iloc[0]['date_time'].timestamp(), 1734047995.0)
106
+ self.assertEqual(dgs.iloc[0]['ve'], 0.00235)
107
+ self.assertTrue(dgs.iloc[0]['rgrav'] - 9288.4046923 < 0.0001)
108
+
97
109
  def test_read_dgs_dat_nope(self):
98
110
  dgs = sgi.read_dgs_laptop(f'{self.ex_files}'+os.sep+'DGStest_laptop.dat', 'Katama', progressbar=False)
99
111
  self.assertEqual(dgs, -999)
@@ -112,6 +124,13 @@ class ioTestCase(unittest.TestCase):
112
124
  self.assertEqual(dgs.iloc[0]['Gravity'], -82)
113
125
  self.assertTrue(dgs.iloc[0]['vcc'] - 0.0357100 < 0.0001)
114
126
 
127
+ def test_read_dgs_raw_Sikuliaq(self):
128
+ dgs = sgi.read_dgs_raw(f'{self.ex_files}'+os.sep+'SKQ_dgs_raw.20241018T2212Z', 'Sikuliaq', progressbar=False)
129
+ self.assertEqual(
130
+ dgs.iloc[0]['date_time'].timestamp(), 1729289555.6591)
131
+ self.assertEqual(dgs.iloc[0]['rgrav'], 19964)
132
+ self.assertTrue(dgs.iloc[0]['vcc'] - 0.30569 < 0.001)
133
+
115
134
  def test_read_mru(self):
116
135
  mru, cols = sgi.read_other_stuff(
117
136
  f'{self.ex_files}'+os.sep+'IXBlue.yaml', f'{self.ex_files}'+os.sep+'SR2312_mru.txt', 'PASHR')
@@ -121,7 +140,7 @@ class ioTestCase(unittest.TestCase):
121
140
 
122
141
 
123
142
  def suite():
124
- return unittest.makeSuite(ioTestCase, 'test')
143
+ return unittest.defaultTestLoader.loadTestsFromTestCase(ioTestCase)
125
144
 
126
145
 
127
146
  if __name__ == '__main__':
@@ -35,7 +35,7 @@ class navTestCase(unittest.TestCase):
35
35
 
36
36
 
37
37
  def suite():
38
- return unittest.makeSuite(navTestCase, 'test')
38
+ return unittest.defaultTestLoader.loadTestsFromTestCase(navTestCase)
39
39
 
40
40
 
41
41
  if __name__ == '__main__':
@@ -27,7 +27,7 @@ class utilsTestCase(unittest.TestCase):
27
27
 
28
28
 
29
29
  def suite():
30
- return unittest.makeSuite(utilsTestCase, 'test')
30
+ return unittest.defaultTestLoader.loadTestsFromTestCase(utilsTestCase)
31
31
 
32
32
 
33
33
  if __name__ == '__main__':
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: shipgrav
3
- Version: 1.0.7
3
+ Version: 1.0.10
4
4
  Summary: Functions for marine gravity data processing and reduction
5
5
  Author-email: "Hannah F. Mark" <hmark@whoi.edu>
6
6
  Maintainer-email: "Hannah F. Mark" <hmark@whoi.edu>
@@ -1,16 +1,16 @@
1
1
  shipgrav/__init__.py,sha256=aCI3zS2iUUH_hFhwPgs-VZDSdfsCnJExBjSgCJSVpY8,12151
2
- shipgrav/database.toml,sha256=_uQdFL6XeiYX_YKRB-3lzr7mVY6gcRF5r7CRL_F8Dx0,594
2
+ shipgrav/database.toml,sha256=m8d-YCaReNGNiH1L8wjdJV9ewFb1a26jEpWzcDqgUWg,634
3
3
  shipgrav/grav.py,sha256=09d5LIczUGys9VerTngumOMLeYOqdVJVtAdBGJZw2R8,43196
4
- shipgrav/io.py,sha256=-w-NhsccIkTKqHwyD_rgJ3K1kiFT_fL1Nwcvw41_MsI,31586
4
+ shipgrav/io.py,sha256=E4rXr8BWT2gUaZUf7_mEZrJdpSSyTtYrCgOF8FKBwaY,34581
5
5
  shipgrav/nav.py,sha256=3E2Il-PhTEPVv8_8PrLVe7h6slHq-2HYX_Q8PdpB6X4,2895
6
6
  shipgrav/utils.py,sha256=BJSBrKgCOADzdb6gBO3u9n16l22zzFXTAw42e5_QkBY,9582
7
7
  shipgrav/tests/__init__.py,sha256=i8hMukDivY8kFp7OBdo1byRJWMBvb8nDDWJcAy2cOOI,427
8
8
  shipgrav/tests/__main__.py,sha256=iJ8xSU8ucCmIDcOuv8uasZ9iV5dNR0DDuFRZrG0o2hE,38
9
- shipgrav/tests/test_grav_data.py,sha256=dmD49rb5p4GQumaldU0d6Ara-2L2-TjS4S7fXMXFFwo,3537
10
- shipgrav/tests/test_grav_nodata.py,sha256=skVHlimoyohxlDW7UG-sT_ASKOxs7sWakYm3HfkAoIE,2202
11
- shipgrav/tests/test_io.py,sha256=aiZTB2znmMFYUKgnMBHqjIty2MXlpyo8hqt7gI4_pSA,6141
12
- shipgrav/tests/test_nav.py,sha256=R2Fd_TIp_lOUjNtUcxvhZ5l-Vm1CmZ0-XzTcFiMFBRY,1195
13
- shipgrav/tests/test_utils.py,sha256=dz9T_hDBpPhhLj9Xv9U-QpeMC3MsGS3aGnAWIaUVJAc,970
9
+ shipgrav/tests/test_grav_data.py,sha256=VTKUd9Y2rmH9rKpSSBrdga2LoBKDOGdDVBY-YXeUDkM,3559
10
+ shipgrav/tests/test_grav_nodata.py,sha256=5YcY4uN564Dpl_K9YUogr6v2rKwNZdBJdbSnGsQ7pWo,2224
11
+ shipgrav/tests/test_io.py,sha256=4HUStDkxNrAhMcLCZK6u6m13ZeINRo9XRDLp10Aejf0,7258
12
+ shipgrav/tests/test_nav.py,sha256=pNgf4p-GEFsTZijbEQodn40bMr1POPi-aVj63RNAr9A,1217
13
+ shipgrav/tests/test_utils.py,sha256=enhwMNkvoCYpPwIm0mZm3vOfK6F_CQ4VDEvYqZTJ9xA,992
14
14
  shipgrav/tests/ex_files/AT01_bgm.BGM,sha256=yaiVxd6vFeuoiKsUhMeTh22U2VOPPOR-UApr165Ua_I,184
15
15
  shipgrav/tests/ex_files/AT01_nav.gps,sha256=75q1E_z65N82UW33x1vcaXfIHIwY_7qq1alcD2LbahQ,722
16
16
  shipgrav/tests/ex_files/AT05_01_bgm.RGS,sha256=3MnlHJiIyzYe7KGr-bD8dfQ1nS_-Dt4A4g6TiVuNaBw,515
@@ -18,9 +18,12 @@ shipgrav/tests/ex_files/DGStest_laptop.dat,sha256=kUwAMltUXm32Dv9BnaDakA-KtNAuMx
18
18
  shipgrav/tests/ex_files/IXBlue.yaml,sha256=W-GGSMrSSvIXzX-b4rIU0u6Fv8bgNccZzNjTy-K1dNE,5394
19
19
  shipgrav/tests/ex_files/MGL2003_bgm.y2020d244,sha256=MdF9duKY138vuVcOzZ26XcpKPSrGp20MbWYkCUtXTIk,164
20
20
  shipgrav/tests/ex_files/MGL2003_nav.y2020d244,sha256=HheoWXYaevWkWE5uzNdv1vG5SHzh4AEog7UCu1O6Lw4,866
21
+ shipgrav/tests/ex_files/MGL_dgsdata.y2025d254,sha256=J61CwundT_ihbKw8N_lyEHXGYtN0uYQSyDd6_1EGTGE,1935
21
22
  shipgrav/tests/ex_files/NBP_2301_nav.d013,sha256=Q-68kTPwGvYJ3u-nED3rem9JMSjaFxz75dYaxxrIb7c,1251
22
23
  shipgrav/tests/ex_files/RR2212_bgm.txt,sha256=sB3Si6hhdZevjQrtoEcdztiX7Zf1H6g5GxRpZyXK-po,246
23
24
  shipgrav/tests/ex_files/RR2212_nav.txt,sha256=BzazwIVkgILjHffoaWEKrqxN-4oOv_zGWqRvx3cF6I8,857
25
+ shipgrav/tests/ex_files/SKQ_dgs_proc.20241213T0000Z,sha256=9h8yCmJaKbNS3-kQVPfdt9Wmp0_K4EAewb79begfD-4,1454
26
+ shipgrav/tests/ex_files/SKQ_dgs_raw.20241018T2212Z,sha256=HfP6whrZA-r2py8-Y3YcDrQJdNVXox072VT0TtNQvs4,928
24
27
  shipgrav/tests/ex_files/SR2302_nav.raw,sha256=7LhR1GEG17QDnTIp5NAamqjDteTLD2bTHaNfZrVFFh4,2352
25
28
  shipgrav/tests/ex_files/SR2312_dgs_raw.txt,sha256=rTlIn75MBICBjnkjcn9SPCwpC5J3lMs4aq7-y6-dAmU,368
26
29
  shipgrav/tests/ex_files/SR2312_mru.txt,sha256=YBM4qy4BS_D0U4ngEyoIFZr4QQbMWQgEO681fVEmgYM,1060
@@ -28,7 +31,7 @@ shipgrav/tests/ex_files/TN400_bgm.Raw,sha256=DL7T2aJednjGLMKJo6K8KcUYLMjQCiv6bsU
28
31
  shipgrav/tests/ex_files/TN400_dgs_proc.Raw,sha256=oxTXwDdyoz5yuKe253L1GgOSR5oWGGMuXfSQWrT24Ag,760
29
32
  shipgrav/tests/ex_files/TN400_dgs_raw.Raw,sha256=tb-zerwCH6kkbGDbnnJ6I-sAUdCHOvkKgXXrBb6zTj8,311
30
33
  shipgrav/tests/ex_files/TN400_nav.Raw,sha256=66dgRQTXjf0JItMWE1ZGUO6NptrGqV6JyN2wdYe5bW8,194
31
- shipgrav-1.0.7.dist-info/METADATA,sha256=V2cPOwuPuUfHqExOfpOHfDerjQcAhmsbVHMeKkK_2yo,2877
32
- shipgrav-1.0.7.dist-info/WHEEL,sha256=aha0VrrYvgDJ3Xxl3db_g_MDIW-ZexDdrc_m-Hk8YY4,105
33
- shipgrav-1.0.7.dist-info/licenses/LICENSE,sha256=5X8cMguM-HmKfS_4Om-eBqM6A1hfbgZf6pfx2G24QFI,35150
34
- shipgrav-1.0.7.dist-info/RECORD,,
34
+ shipgrav-1.0.10.dist-info/METADATA,sha256=IC-Ni5ku7QJVi32XxBlcheOhzMgbglXbsVWd8_GIqoA,2878
35
+ shipgrav-1.0.10.dist-info/WHEEL,sha256=aha0VrrYvgDJ3Xxl3db_g_MDIW-ZexDdrc_m-Hk8YY4,105
36
+ shipgrav-1.0.10.dist-info/licenses/LICENSE,sha256=5X8cMguM-HmKfS_4Om-eBqM6A1hfbgZf6pfx2G24QFI,35150
37
+ shipgrav-1.0.10.dist-info/RECORD,,