pingmapper 5.5.0__tar.gz → 5.5.1__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 (60) hide show
  1. {pingmapper-5.5.0 → pingmapper-5.5.1}/PKG-INFO +1 -1
  2. {pingmapper-5.5.0 → pingmapper-5.5.1}/pingmapper/class_mapSubstrateObj.py +1 -1
  3. {pingmapper-5.5.0 → pingmapper-5.5.1}/pingmapper/class_portstarObj.py +9 -3
  4. {pingmapper-5.5.0 → pingmapper-5.5.1}/pingmapper/class_rectObj.py +5 -5
  5. {pingmapper-5.5.0 → pingmapper-5.5.1}/pingmapper/class_sonObj.py +1 -1
  6. {pingmapper-5.5.0 → pingmapper-5.5.1}/pingmapper/class_sonObj_nadirgaptest.py +1 -1
  7. pingmapper-5.5.1/pingmapper/version.py +1 -0
  8. {pingmapper-5.5.0 → pingmapper-5.5.1}/pingmapper.egg-info/PKG-INFO +1 -1
  9. pingmapper-5.5.0/pingmapper/version.py +0 -1
  10. {pingmapper-5.5.0 → pingmapper-5.5.1}/LICENSE +0 -0
  11. {pingmapper-5.5.0 → pingmapper-5.5.1}/README.md +0 -0
  12. {pingmapper-5.5.0 → pingmapper-5.5.1}/pingmapper/__init__.py +0 -0
  13. {pingmapper-5.5.0 → pingmapper-5.5.1}/pingmapper/__main__.py +0 -0
  14. {pingmapper-5.5.0 → pingmapper-5.5.1}/pingmapper/default_params.json +0 -0
  15. {pingmapper-5.5.0 → pingmapper-5.5.1}/pingmapper/doWork.py +0 -0
  16. {pingmapper-5.5.0 → pingmapper-5.5.1}/pingmapper/funcs_common.py +0 -0
  17. {pingmapper-5.5.0 → pingmapper-5.5.1}/pingmapper/funcs_model.py +0 -0
  18. {pingmapper-5.5.0 → pingmapper-5.5.1}/pingmapper/funcs_rectify.py +0 -0
  19. {pingmapper-5.5.0 → pingmapper-5.5.1}/pingmapper/gui_main.py +0 -0
  20. {pingmapper-5.5.0 → pingmapper-5.5.1}/pingmapper/main_mapSubstrate.py +0 -0
  21. {pingmapper-5.5.0 → pingmapper-5.5.1}/pingmapper/main_readFiles.py +0 -0
  22. {pingmapper-5.5.0 → pingmapper-5.5.1}/pingmapper/main_rectify.py +0 -0
  23. {pingmapper-5.5.0 → pingmapper-5.5.1}/pingmapper/nonGUI_batch_main.py +0 -0
  24. {pingmapper-5.5.0 → pingmapper-5.5.1}/pingmapper/nonGui_main.py +0 -0
  25. {pingmapper-5.5.0 → pingmapper-5.5.1}/pingmapper/processing_scripts/main_batchDirectory_2024-01-18_0926.py +0 -0
  26. {pingmapper-5.5.0 → pingmapper-5.5.1}/pingmapper/processing_scripts/main_batchDirectory_2024-01-18_0929.py +0 -0
  27. {pingmapper-5.5.0 → pingmapper-5.5.1}/pingmapper/scratch/funcs_pyhum_correct.py +0 -0
  28. {pingmapper-5.5.0 → pingmapper-5.5.1}/pingmapper/scratch/main.py +0 -0
  29. {pingmapper-5.5.0 → pingmapper-5.5.1}/pingmapper/scratch/main_batchDirectory.py +0 -0
  30. {pingmapper-5.5.0 → pingmapper-5.5.1}/pingmapper/self_check.py +0 -0
  31. {pingmapper-5.5.0 → pingmapper-5.5.1}/pingmapper/test_PINGMapper.py +0 -0
  32. {pingmapper-5.5.0 → pingmapper-5.5.1}/pingmapper/test_cli_self_check.py +0 -0
  33. {pingmapper-5.5.0 → pingmapper-5.5.1}/pingmapper/test_dq_filter.py +0 -0
  34. {pingmapper-5.5.0 → pingmapper-5.5.1}/pingmapper/test_time.py +0 -0
  35. {pingmapper-5.5.0 → pingmapper-5.5.1}/pingmapper/utils/DRAFT_Workflows/avg_predictions_Mussel_WBL.py +0 -0
  36. {pingmapper-5.5.0 → pingmapper-5.5.1}/pingmapper/utils/DRAFT_Workflows/gen_centerline.py +0 -0
  37. {pingmapper-5.5.0 → pingmapper-5.5.1}/pingmapper/utils/DRAFT_Workflows/gen_centerline_from_bankline.py +0 -0
  38. {pingmapper-5.5.0 → pingmapper-5.5.1}/pingmapper/utils/DRAFT_Workflows/gen_centerline_trkpnts_fitspline_DRAFT.py +0 -0
  39. {pingmapper-5.5.0 → pingmapper-5.5.1}/pingmapper/utils/DRAFT_Workflows/testEXAMPLE_mosaic_logit.py +0 -0
  40. {pingmapper-5.5.0 → pingmapper-5.5.1}/pingmapper/utils/RawEGN_avg_predictions.py +0 -0
  41. {pingmapper-5.5.0 → pingmapper-5.5.1}/pingmapper/utils/Substrate_Summaries/00_substrate_logits_mosaic_transects.py +0 -0
  42. {pingmapper-5.5.0 → pingmapper-5.5.1}/pingmapper/utils/Substrate_Summaries/00_substrate_shps_mosaic_transects.py +0 -0
  43. {pingmapper-5.5.0 → pingmapper-5.5.1}/pingmapper/utils/Substrate_Summaries/01_gen_centerline_from_coverage.py +0 -0
  44. {pingmapper-5.5.0 → pingmapper-5.5.1}/pingmapper/utils/Substrate_Summaries/02_gen_summary_stamp_shps.py +0 -0
  45. {pingmapper-5.5.0 → pingmapper-5.5.1}/pingmapper/utils/Substrate_Summaries/03_gen_summary_shp.py +0 -0
  46. {pingmapper-5.5.0 → pingmapper-5.5.1}/pingmapper/utils/Substrate_Summaries/04_combine_summary_shp_csv.py +0 -0
  47. {pingmapper-5.5.0 → pingmapper-5.5.1}/pingmapper/utils/Substrate_Summaries/05_gen_summary_shp_plots.py +0 -0
  48. {pingmapper-5.5.0 → pingmapper-5.5.1}/pingmapper/utils/Substrate_Summaries/06_compare_raw-egn_volume.py +0 -0
  49. {pingmapper-5.5.0 → pingmapper-5.5.1}/pingmapper/utils/Substrate_Summaries/08_raw-egn_hardReacheFreq_hist.py +0 -0
  50. {pingmapper-5.5.0 → pingmapper-5.5.1}/pingmapper/utils/Substrate_Summaries/09_raw-egn_PatchSize_density.py +0 -0
  51. {pingmapper-5.5.0 → pingmapper-5.5.1}/pingmapper/utils/Substrate_Summaries/summarize_project_substrate.py +0 -0
  52. {pingmapper-5.5.0 → pingmapper-5.5.1}/pingmapper/utils/export_coverage.py +0 -0
  53. {pingmapper-5.5.0 → pingmapper-5.5.1}/pingmapper/utils/main_mosaic_transects.py +0 -0
  54. {pingmapper-5.5.0 → pingmapper-5.5.1}/pingmapper.egg-info/SOURCES.txt +0 -0
  55. {pingmapper-5.5.0 → pingmapper-5.5.1}/pingmapper.egg-info/dependency_links.txt +0 -0
  56. {pingmapper-5.5.0 → pingmapper-5.5.1}/pingmapper.egg-info/requires.txt +0 -0
  57. {pingmapper-5.5.0 → pingmapper-5.5.1}/pingmapper.egg-info/top_level.txt +0 -0
  58. {pingmapper-5.5.0 → pingmapper-5.5.1}/pyproject.toml +0 -0
  59. {pingmapper-5.5.0 → pingmapper-5.5.1}/setup.cfg +0 -0
  60. {pingmapper-5.5.0 → pingmapper-5.5.1}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pingmapper
3
- Version: 5.5.0
3
+ Version: 5.5.1
4
4
  Summary: Open-source interface for processing recreation-grade side scan sonar datasets and reproducibly mapping benthic habitat
5
5
  Author: Cameron Bodine, Daniel Buscombe, Iury T Simoes-Sousa
6
6
  Author-email: bodine.cs@gmail.email
@@ -880,7 +880,7 @@ class mapSubObj(rectObj):
880
880
  ax.imshow(son, cmap='gray')
881
881
 
882
882
  # Prepare color map
883
- color_map = plt.cm.get_cmap('viridis')
883
+ color_map = plt.get_cmap('viridis')
884
884
 
885
885
  im = ax.imshow(c, cmap=color_map, alpha=0.5, vmin=minSoft, vmax=maxSoft)
886
886
  ax.axis('off')
@@ -3185,7 +3185,11 @@ class portstarObj(object):
3185
3185
 
3186
3186
  for feature in dst_layer:
3187
3187
  subID = str(int(feature.GetField('Substrate')))
3188
- subName = MY_CLASS_NAMES[subID]
3188
+ subName = MY_CLASS_NAMES.get(subID)
3189
+ if subName is None:
3190
+ print("\n\tWARNING: Unexpected substrate value '{}' found in raster. "
3191
+ "This value is not in the model config and will be removed from output.".format(subID))
3192
+ subName = 'Unknown'
3189
3193
  feature.SetField('Name', subName)
3190
3194
  dst_layer.SetFeature(feature)
3191
3195
 
@@ -3204,10 +3208,12 @@ class portstarObj(object):
3204
3208
  feature.SetField("Area_m", area)
3205
3209
  dst_layer.SetFeature(feature)
3206
3210
 
3207
- # Delete NoData Polygon
3211
+ # Delete NoData and any unexpected-value polygons
3208
3212
  # https://gis.stackexchange.com/questions/254444/deleting-selected-features-from-vector-ogr-in-gdal-python
3213
+ valid_sub_ids = [int(k) for k in MY_CLASS_NAMES.keys() if int(k) != 0]
3214
+ invalid_filter = "Substrate NOT IN ({})".format(','.join(str(v) for v in valid_sub_ids))
3209
3215
  layer = dst_ds.GetLayer()
3210
- layer.SetAttributeFilter("Substrate = 0")
3216
+ layer.SetAttributeFilter(invalid_filter)
3211
3217
 
3212
3218
  for feat in layer:
3213
3219
  layer.DeleteFeature(feat.GetFID())
@@ -1968,7 +1968,7 @@ class rectObj(sonObj):
1968
1968
  use_uint8_rgb = self._export_colormap_as_uint8()
1969
1969
  if source_scale_bounds is not None:
1970
1970
  norm_data = self._normalize_with_bounds(sonRect_raw16, source_scale_bounds[0], source_scale_bounds[1])
1971
- cmap = plt.cm.get_cmap(self.son_colorMap_name)(norm_data)
1971
+ cmap = plt.get_cmap(self.son_colorMap_name)(norm_data)
1972
1972
  if use_uint8_rgb:
1973
1973
  sonRect_out = np.clip(cmap[:, :, :3] * 255.0, 0, 255).astype(np.uint8)
1974
1974
  else:
@@ -2769,9 +2769,9 @@ class rectObj(sonObj):
2769
2769
  if source_scale_bounds is not None:
2770
2770
  norm_data = self._normalize_with_bounds(out16_raw, source_scale_bounds[0], source_scale_bounds[1])
2771
2771
  if use_uint8_rgb:
2772
- out16 = np.clip(plt.cm.get_cmap(self.son_colorMap_name)(norm_data)[:, :, :3] * 255.0, 0, 255).astype(np.uint8)
2772
+ out16 = np.clip(plt.get_cmap(self.son_colorMap_name)(norm_data)[:, :, :3] * 255.0, 0, 255).astype(np.uint8)
2773
2773
  else:
2774
- out16 = np.clip(plt.cm.get_cmap(self.son_colorMap_name)(norm_data)[:, :, :3] * 65535.0, 0, 65535).astype(np.uint16)
2774
+ out16 = np.clip(plt.get_cmap(self.son_colorMap_name)(norm_data)[:, :, :3] * 65535.0, 0, 65535).astype(np.uint16)
2775
2775
  valid_mask = out16_raw > 0
2776
2776
  out16[valid_mask] = np.maximum(out16[valid_mask], 1)
2777
2777
  else:
@@ -2914,9 +2914,9 @@ class rectObj(sonObj):
2914
2914
  if source_scale_bounds is not None:
2915
2915
  norm_data = self._normalize_with_bounds(out16_raw, source_scale_bounds[0], source_scale_bounds[1])
2916
2916
  if use_uint8_rgb:
2917
- out16 = np.clip(plt.cm.get_cmap(self.son_colorMap_name)(norm_data)[:, :, :3] * 255.0, 0, 255).astype(np.uint8)
2917
+ out16 = np.clip(plt.get_cmap(self.son_colorMap_name)(norm_data)[:, :, :3] * 255.0, 0, 255).astype(np.uint8)
2918
2918
  else:
2919
- out16 = np.clip(plt.cm.get_cmap(self.son_colorMap_name)(norm_data)[:, :, :3] * 65535.0, 0, 65535).astype(np.uint16)
2919
+ out16 = np.clip(plt.get_cmap(self.son_colorMap_name)(norm_data)[:, :, :3] * 65535.0, 0, 65535).astype(np.uint16)
2920
2920
  valid_mask = out16_raw > 0
2921
2921
  out16[valid_mask] = np.maximum(out16[valid_mask], 1)
2922
2922
  else:
@@ -1872,7 +1872,7 @@ class sonObj(object):
1872
1872
  return out
1873
1873
 
1874
1874
  def _colorize_array_batched(self, norm_data, valid_mask, cmap_name, scale_max, out_dtype):
1875
- cmap = plt.cm.get_cmap(cmap_name)
1875
+ cmap = plt.get_cmap(cmap_name)
1876
1876
  height, width = norm_data.shape
1877
1877
  out = np.zeros((height, width, 3), dtype=out_dtype)
1878
1878
 
@@ -1500,7 +1500,7 @@ class sonObj(object):
1500
1500
  # plt.savefig(outfile)
1501
1501
 
1502
1502
  norm_data = data / 255.0
1503
- colored_data = plt.cm.get_cmap(self.sonogram_colorMap)(norm_data)
1503
+ colored_data = plt.get_cmap(self.sonogram_colorMap)(norm_data)
1504
1504
  colored_data = (colored_data[:, :, :3] * 255).astype('uint8')
1505
1505
  data = colored_data
1506
1506
 
@@ -0,0 +1 @@
1
+ __version__ = '5.5.1'
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pingmapper
3
- Version: 5.5.0
3
+ Version: 5.5.1
4
4
  Summary: Open-source interface for processing recreation-grade side scan sonar datasets and reproducibly mapping benthic habitat
5
5
  Author: Cameron Bodine, Daniel Buscombe, Iury T Simoes-Sousa
6
6
  Author-email: bodine.cs@gmail.email
@@ -1 +0,0 @@
1
- __version__ = '5.5.0'
File without changes
File without changes
File without changes
File without changes
File without changes