pingmapper 4.2.12__tar.gz → 4.2.13__tar.gz

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.
Files changed (28) hide show
  1. {pingmapper-4.2.12 → pingmapper-4.2.13}/PKG-INFO +1 -1
  2. {pingmapper-4.2.12 → pingmapper-4.2.13}/pingmapper/class_rectObj.py +8 -3
  3. {pingmapper-4.2.12 → pingmapper-4.2.13}/pingmapper/class_sonObj.py +16 -2
  4. {pingmapper-4.2.12 → pingmapper-4.2.13}/pingmapper/gui_main.py +1 -0
  5. {pingmapper-4.2.12 → pingmapper-4.2.13}/pingmapper/main_readFiles.py +20 -2
  6. {pingmapper-4.2.12 → pingmapper-4.2.13}/pingmapper/main_rectify.py +5 -5
  7. pingmapper-4.2.13/pingmapper/version.py +1 -0
  8. {pingmapper-4.2.12 → pingmapper-4.2.13}/pingmapper.egg-info/PKG-INFO +1 -1
  9. pingmapper-4.2.12/pingmapper/version.py +0 -1
  10. {pingmapper-4.2.12 → pingmapper-4.2.13}/LICENSE +0 -0
  11. {pingmapper-4.2.12 → pingmapper-4.2.13}/README.md +0 -0
  12. {pingmapper-4.2.12 → pingmapper-4.2.13}/pingmapper/__init__.py +0 -0
  13. {pingmapper-4.2.12 → pingmapper-4.2.13}/pingmapper/__main__.py +0 -0
  14. {pingmapper-4.2.12 → pingmapper-4.2.13}/pingmapper/class_mapSubstrateObj.py +0 -0
  15. {pingmapper-4.2.12 → pingmapper-4.2.13}/pingmapper/class_portstarObj.py +0 -0
  16. {pingmapper-4.2.12 → pingmapper-4.2.13}/pingmapper/default_params.json +0 -0
  17. {pingmapper-4.2.12 → pingmapper-4.2.13}/pingmapper/funcs_common.py +0 -0
  18. {pingmapper-4.2.12 → pingmapper-4.2.13}/pingmapper/funcs_model.py +0 -0
  19. {pingmapper-4.2.12 → pingmapper-4.2.13}/pingmapper/funcs_rectify.py +0 -0
  20. {pingmapper-4.2.12 → pingmapper-4.2.13}/pingmapper/main_mapSubstrate.py +0 -0
  21. {pingmapper-4.2.12 → pingmapper-4.2.13}/pingmapper/test_PINGMapper.py +0 -0
  22. {pingmapper-4.2.12 → pingmapper-4.2.13}/pingmapper/test_time.py +0 -0
  23. {pingmapper-4.2.12 → pingmapper-4.2.13}/pingmapper.egg-info/SOURCES.txt +0 -0
  24. {pingmapper-4.2.12 → pingmapper-4.2.13}/pingmapper.egg-info/dependency_links.txt +0 -0
  25. {pingmapper-4.2.12 → pingmapper-4.2.13}/pingmapper.egg-info/requires.txt +0 -0
  26. {pingmapper-4.2.12 → pingmapper-4.2.13}/pingmapper.egg-info/top_level.txt +0 -0
  27. {pingmapper-4.2.12 → pingmapper-4.2.13}/setup.cfg +0 -0
  28. {pingmapper-4.2.12 → pingmapper-4.2.13}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pingmapper
3
- Version: 4.2.12
3
+ Version: 4.2.13
4
4
  Summary: Open-source interface for processing recreation-grade side scan sonar datasets and reproducibly mapping benthic habitat
5
5
  Author: Cameron Bodine
6
6
  Author-email: bodine.cs@gmail.email
@@ -36,8 +36,13 @@ SCRIPT_DIR = os.path.dirname(os.path.abspath(__file__))
36
36
  PACKAGE_DIR = os.path.dirname(SCRIPT_DIR)
37
37
  sys.path.append(PACKAGE_DIR)
38
38
 
39
+ # # For depug
40
+ # from funcs_common import *
41
+ # from class_sonObj import sonObj
42
+
39
43
  from pingmapper.funcs_common import *
40
44
  from pingmapper.class_sonObj import sonObj
45
+
41
46
  from osgeo import gdal, ogr, osr
42
47
  from osgeo_utils.gdal_sieve import gdal_sieve
43
48
  from scipy.interpolate import splprep, splev
@@ -1366,11 +1371,11 @@ class rectObj(sonObj):
1366
1371
 
1367
1372
  pix_m = self.pixM # Get pixel size
1368
1373
 
1369
- xPixMax, yPixMax = df[xPix].max().astype(int), df[yPix].max().astype(int)
1374
+ xPixMax, yPixMax = int(df[xPix].max()), int(df[yPix].max())
1370
1375
 
1371
1376
  # Get extent of chunk
1372
- xMin, xMax = df[xCoord].min().astype(int), df[xCoord].max().astype(int)
1373
- yMin, yMax = df[yCoord].min().astype(int), df[yCoord].max().astype(int)
1377
+ xMin, xMax = int(df[xCoord].min()), int(df[xCoord].max())
1378
+ yMin, yMax = int(df[yCoord].min()), int(df[yCoord].max())
1374
1379
 
1375
1380
  # Setup outupt array
1376
1381
  # Determine output shape dimensions
@@ -741,6 +741,14 @@ class sonObj(object):
741
741
  for i in range(len(self.headIdx)):
742
742
  if ~np.isnan(self.headIdx[i]):
743
743
  ping_len = min(self.pingCnt[i].astype(int), self.pingMax)
744
+
745
+
746
+ # #### Do not commit!!!!
747
+ # # if self.beamName == 'ss_star' or self.beamName == 'ss_port':
748
+ # # ping_len *= 2
749
+ if not self.son8bit:
750
+ ping_len *= 2
751
+
744
752
  headIDX = self.headIdx[i].astype(int)
745
753
  son_offset = self.son_offset[i].astype(int)
746
754
  # pingIdx = headIDX + self.headBytes # Determine byte offset to sonar returns
@@ -755,7 +763,13 @@ class sonObj(object):
755
763
  buffer = buffer[::-1]
756
764
 
757
765
  # Read the data
758
- dat = np.frombuffer(buffer, dtype='>u1')
766
+ if self.son8bit:# and self.beamName != 'ss_star' and self.beamName != 'ss_port':
767
+ dat = np.frombuffer(buffer, dtype='>u1')
768
+ else:
769
+ try:
770
+ dat = np.frombuffer(buffer, dtype='>u2')
771
+ except:
772
+ dat = np.frombuffer(buffer[:-1], dtype='>u2')
759
773
 
760
774
  try:
761
775
  sonDat[:ping_len, i] = dat
@@ -764,7 +778,7 @@ class sonObj(object):
764
778
  sonDat[:ping_len, i] = dat
765
779
 
766
780
  file.close()
767
- self.sonDat = sonDat
781
+ self.sonDat = sonDat.astype(np.uint8)
768
782
  return
769
783
 
770
784
  # ======================================================================
@@ -80,6 +80,7 @@ def gui(batch: bool):
80
80
  text_input = sg.Text('Recording to Process')
81
81
  # in_input = sg.In(key='inFile', size=(80,1))
82
82
  in_input = sg.In(key='inFile', size=(80,1), default_text=default_params['inFile'])
83
+ # browse_input = sg.FileBrowse(file_types=(("Sonar File", "*.DAT *.sl2 *.sl3 *.RSD *.svlog") ), initial_folder=os.path.dirname(default_params['inFile']))
83
84
  browse_input = sg.FileBrowse(file_types=(("Sonar File", "*.DAT *.sl2 *.sl3 *.svlog") ), initial_folder=os.path.dirname(default_params['inFile']))
84
85
 
85
86
  # Add to layout
@@ -50,9 +50,9 @@ from doodleverse_utils.imports import *
50
50
 
51
51
  from scipy.signal import savgol_filter
52
52
 
53
- # sys.path.insert(0, r'C:\Users\cbodine\PythonRepos\PINGVerter')
53
+ # sys.path.insert(0, r'Z:\UDEL\PythonRepos\PINGVerter')
54
54
 
55
- from pingverter import hum2pingmapper, low2pingmapper, cerul2pingmapper
55
+ from pingverter import hum2pingmapper, low2pingmapper, cerul2pingmapper#, gar2pingmapper
56
56
 
57
57
  import cv2
58
58
 
@@ -326,15 +326,26 @@ def read_master_func(logfilename='',
326
326
  elif file_type == '.sl2' or file_type == '.sl3':
327
327
  sonar_obj = low2pingmapper(inFile, projDir, nchunk, tempC, exportUnknown)
328
328
 
329
+ # # Prepare Garmin file for PINGMapper
330
+ # elif file_type == '.RSD':
331
+ # sonar_obj = gar2pingmapper(inFile, projDir, nchunk, tempC, exportUnknown)
332
+
329
333
  # Prepare Cerulean file for PINGMapper
330
334
  elif file_type == '.svlog':
331
335
  sonar_obj = cerul2pingmapper(inFile, projDir, nchunk, tempC, exportUnknown)
332
336
  detectDep = 1 # No depth in cerulean files, so set to Zheng et al. 2021
333
337
 
338
+ # Unknown
339
+ else:
340
+ print('\n\nERROR!\n\nFile type {} not supported at this time.'.format(file_type))
341
+ sys.exit()
342
+
334
343
  ####################
335
344
  # Create son objects
336
345
  ####################
337
346
 
347
+ # print(sonar_obj)
348
+
338
349
  # Get available beams and metadata
339
350
  beamMeta = sonar_obj.beamMeta
340
351
 
@@ -360,6 +371,13 @@ def read_master_func(logfilename='',
360
371
  son.isOnix = sonar_obj.isOnix
361
372
  son.trans = sonar_obj.trans
362
373
  son.humDat = sonar_obj.humDat
374
+ # if son.beamName == 'ss_port' or son.beamName == 'ss_star':
375
+ # son.son8bit = sonar_obj.son8bit
376
+ # else:
377
+ son.son8bit = sonar_obj.son8bit
378
+
379
+ # print(son.beamName, son.son8bit)
380
+
363
381
 
364
382
  if pix_res_son == 0:
365
383
  son.pix_res_son = 0
@@ -44,10 +44,10 @@ sys.path.append(PACKAGE_DIR)
44
44
  # from class_portstarObj import portstarObj
45
45
  # from funcs_rectify import smoothTrackline
46
46
 
47
- # from pingmapper.funcs_common import *
48
- # from pingmapper.class_rectObj import rectObj
49
- # from pingmapper.class_portstarObj import portstarObj
50
- # from pingmapper.funcs_rectify import smoothTrackline
47
+ from pingmapper.funcs_common import *
48
+ from pingmapper.class_rectObj import rectObj
49
+ from pingmapper.class_portstarObj import portstarObj
50
+ from pingmapper.funcs_rectify import smoothTrackline
51
51
 
52
52
  import inspect
53
53
 
@@ -418,7 +418,7 @@ def rectify_master_func(logfilename='',
418
418
  print('\n\tExporting', len(chunks), 'GeoTiffs for', son.beamName)
419
419
  # for i in chunks:
420
420
  # son._rectSonRubber(i, filter, cog, wgs=False)
421
- # sys.exit()
421
+ # # sys.exit()
422
422
  Parallel(n_jobs= np.min([len(chunks), threadCnt]))(delayed(son._rectSonRubber)(i, filter, cog, wgs=False) for i in tqdm(range(len(chunks))))
423
423
  son._cleanup()
424
424
  gc.collect()
@@ -0,0 +1 @@
1
+ __version__ = '4.2.13'
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pingmapper
3
- Version: 4.2.12
3
+ Version: 4.2.13
4
4
  Summary: Open-source interface for processing recreation-grade side scan sonar datasets and reproducibly mapping benthic habitat
5
5
  Author: Cameron Bodine
6
6
  Author-email: bodine.cs@gmail.email
@@ -1 +0,0 @@
1
- __version__ = '4.2.12'
File without changes
File without changes
File without changes
File without changes