pingmapper 5.0.5__py3-none-any.whl → 5.0.7__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.
- pingmapper/__main__.py +1 -1
- pingmapper/class_sonObj_nadirgaptest.py +2335 -0
- pingmapper/funcs_common.py +124 -75
- pingmapper/version.py +1 -1
- {pingmapper-5.0.5.dist-info → pingmapper-5.0.7.dist-info}/METADATA +2 -2
- {pingmapper-5.0.5.dist-info → pingmapper-5.0.7.dist-info}/RECORD +10 -9
- {pingmapper-5.0.5.data → pingmapper-5.0.7.data}/data/pingmapper_config/default_params.json +0 -0
- {pingmapper-5.0.5.dist-info → pingmapper-5.0.7.dist-info}/WHEEL +0 -0
- {pingmapper-5.0.5.dist-info → pingmapper-5.0.7.dist-info}/licenses/LICENSE +0 -0
- {pingmapper-5.0.5.dist-info → pingmapper-5.0.7.dist-info}/top_level.txt +0 -0
pingmapper/funcs_common.py
CHANGED
|
@@ -244,82 +244,122 @@ def downloadSegmentationModelsv1_0(modelDir):
|
|
|
244
244
|
return
|
|
245
245
|
|
|
246
246
|
|
|
247
|
-
# =========================================================
|
|
248
|
-
def saveDefaultParams(values):
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
247
|
+
# # =========================================================
|
|
248
|
+
# def saveDefaultParams(values):
|
|
249
|
+
|
|
250
|
+
# try:
|
|
251
|
+
# projDir = os.path.join(values['proj'], values['projName'])
|
|
252
|
+
# except:
|
|
253
|
+
# projDir = os.path.join(values['proj'], values['prefix'])
|
|
254
|
+
|
|
255
|
+
# try:
|
|
256
|
+
# inDir = values['inDir']
|
|
257
|
+
# except:
|
|
258
|
+
# inDir = ''
|
|
259
|
+
|
|
260
|
+
# try:
|
|
261
|
+
# inFile = values['inFile']
|
|
262
|
+
# except:
|
|
263
|
+
# inFile = ''
|
|
264
|
+
|
|
265
|
+
# params = {
|
|
266
|
+
# 'inDir':inDir,
|
|
267
|
+
# 'inFile':inFile,
|
|
268
|
+
# 'projDir':projDir,
|
|
269
|
+
# 'project_mode':int(values['project_mode']),
|
|
270
|
+
# 'tempC':float(values['tempC']),
|
|
271
|
+
# 'nchunk':int(values['nchunk']),
|
|
272
|
+
# 'cropRange':float(values['cropRange']),
|
|
273
|
+
# 'exportUnknown':values['exportUnknown'],
|
|
274
|
+
# 'fixNoDat':values['fixNoDat'],
|
|
275
|
+
# 'threadCnt':float(values['threadCnt']),
|
|
276
|
+
# 'max_heading_deviation':float(values['max_heading_deviation']),
|
|
277
|
+
# 'max_heading_distance':float(values['max_heading_distance']),
|
|
278
|
+
# 'min_speed':float(values['min_speed']),
|
|
279
|
+
# 'max_speed':float(values['max_speed']),
|
|
280
|
+
# 'filter_table':bool(values['filter_table']),
|
|
281
|
+
# 'aoi':values['aoi'],
|
|
282
|
+
# 'pix_res_son':float(values['pix_res_son']),
|
|
283
|
+
# 'pix_res_map':float(values['pix_res_map']),
|
|
284
|
+
# 'x_offset':float(values['x_offset']),
|
|
285
|
+
# 'y_offset':float(values['y_offset']),
|
|
286
|
+
# 'egn':values['egn'],
|
|
287
|
+
# 'egn_stretch':values['egn_stretch'],
|
|
288
|
+
# 'egn_stretch_factor':float(values['egn_stretch_factor']),
|
|
289
|
+
# 'wcp':values['wcp'],
|
|
290
|
+
# 'wcr':values['wcr'],
|
|
291
|
+
# 'wco':values['wco'],
|
|
292
|
+
# 'wcm':values['wcm'],
|
|
293
|
+
# 'sonogram_colorMap':values['sonogram_colorMap'],
|
|
294
|
+
# 'tileFile':values['tileFile'],
|
|
295
|
+
# 'spdCor':bool(values['spdCor']),
|
|
296
|
+
# 'maxCrop':values['maxCrop'],
|
|
297
|
+
# 'mask_shdw':bool(values['mask_shdw']),
|
|
298
|
+
# 'remShadow':values['remShadow'],
|
|
299
|
+
# 'detectDep':values['detectDep'],
|
|
300
|
+
# 'smthDep':values['smthDep'],
|
|
301
|
+
# 'adjDep':float(values['adjDep']),
|
|
302
|
+
# 'pltBedPick':values['pltBedPick'],
|
|
303
|
+
# 'rect_wcp':values['rect_wcp'],
|
|
304
|
+
# 'rect_wcr':values['rect_wcr'],
|
|
305
|
+
# 'rubberSheeting':values['rubberSheeting'],
|
|
306
|
+
# 'rectMethod':values['rectMethod'],
|
|
307
|
+
# 'rectInterpDist':int(values['rectInterpDist']),
|
|
308
|
+
# 'son_colorMap':values['son_colorMap'],
|
|
309
|
+
# 'pltSubClass':values['pltSubClass'],
|
|
310
|
+
# 'map_sub':values['map_sub'],
|
|
311
|
+
# 'export_poly':values['export_poly'],
|
|
312
|
+
# 'mosaic':values['mosaic'],
|
|
313
|
+
# 'map_mosaic':values['map_mosaic'],
|
|
314
|
+
# 'banklines':values['banklines'],
|
|
315
|
+
# 'coverage':values['coverage'],
|
|
316
|
+
# }
|
|
317
|
+
|
|
318
|
+
# json_object = json.dumps(params, indent=4)
|
|
319
|
+
|
|
320
|
+
# user_params = os.path.join(SCRIPT_DIR, 'user_params.json')
|
|
321
|
+
# with open(user_params, "w") as f:
|
|
322
|
+
# f.write(json_object)
|
|
323
|
+
|
|
324
|
+
def saveDefaultParams(values, user_params=None):
|
|
325
|
+
"""
|
|
326
|
+
Save provided values to user_params.json.
|
|
327
|
+
Merge with any existing file and convert common numpy types to plain Python.
|
|
328
|
+
"""
|
|
329
|
+
if user_params is None:
|
|
330
|
+
user_params = os.path.join(SCRIPT_DIR, 'user_params.json')
|
|
259
331
|
|
|
332
|
+
# load existing params if present
|
|
260
333
|
try:
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
'wcr':values['wcr'],
|
|
291
|
-
'wco':values['wco'],
|
|
292
|
-
'wcm':values['wcm'],
|
|
293
|
-
'sonogram_colorMap':values['sonogram_colorMap'],
|
|
294
|
-
'tileFile':values['tileFile'],
|
|
295
|
-
'spdCor':bool(values['spdCor']),
|
|
296
|
-
'maxCrop':values['maxCrop'],
|
|
297
|
-
'mask_shdw':bool(values['mask_shdw']),
|
|
298
|
-
'remShadow':values['remShadow'],
|
|
299
|
-
'detectDep':values['detectDep'],
|
|
300
|
-
'smthDep':values['smthDep'],
|
|
301
|
-
'adjDep':float(values['adjDep']),
|
|
302
|
-
'pltBedPick':values['pltBedPick'],
|
|
303
|
-
'rect_wcp':values['rect_wcp'],
|
|
304
|
-
'rect_wcr':values['rect_wcr'],
|
|
305
|
-
'rubberSheeting':values['rubberSheeting'],
|
|
306
|
-
'rectMethod':values['rectMethod'],
|
|
307
|
-
'rectInterpDist':int(values['rectInterpDist']),
|
|
308
|
-
'son_colorMap':values['son_colorMap'],
|
|
309
|
-
'pltSubClass':values['pltSubClass'],
|
|
310
|
-
'map_sub':values['map_sub'],
|
|
311
|
-
'export_poly':values['export_poly'],
|
|
312
|
-
'mosaic':values['mosaic'],
|
|
313
|
-
'map_mosaic':values['map_mosaic'],
|
|
314
|
-
'banklines':values['banklines'],
|
|
315
|
-
'coverage':values['coverage'],
|
|
316
|
-
}
|
|
317
|
-
|
|
318
|
-
json_object = json.dumps(params, indent=4)
|
|
319
|
-
|
|
320
|
-
user_params = os.path.join(SCRIPT_DIR, 'user_params.json')
|
|
321
|
-
with open(user_params, "w") as f:
|
|
322
|
-
f.write(json_object)
|
|
334
|
+
if os.path.exists(user_params):
|
|
335
|
+
with open(user_params, 'r', encoding='utf8') as f:
|
|
336
|
+
existing = json.load(f)
|
|
337
|
+
else:
|
|
338
|
+
existing = {}
|
|
339
|
+
except Exception:
|
|
340
|
+
existing = {}
|
|
341
|
+
|
|
342
|
+
def _sanitize(v):
|
|
343
|
+
if isinstance(v, dict):
|
|
344
|
+
return {k: _sanitize(val) for k, val in v.items()}
|
|
345
|
+
if isinstance(v, (np.integer, np.int_, np.int64)):
|
|
346
|
+
return int(v)
|
|
347
|
+
if isinstance(v, (np.floating, np.float64, np.float64)):
|
|
348
|
+
return float(v)
|
|
349
|
+
if isinstance(v, (np.ndarray, list, tuple)):
|
|
350
|
+
return [_sanitize(x) for x in v]
|
|
351
|
+
try:
|
|
352
|
+
json.dumps(v)
|
|
353
|
+
return v
|
|
354
|
+
except Exception:
|
|
355
|
+
return str(v)
|
|
356
|
+
|
|
357
|
+
sanitized = _sanitize(values)
|
|
358
|
+
merged = existing.copy()
|
|
359
|
+
merged.update(sanitized)
|
|
360
|
+
|
|
361
|
+
with open(user_params, 'w', encoding='utf8') as f:
|
|
362
|
+
json.dump(merged, f, indent=4, ensure_ascii=False)
|
|
323
363
|
|
|
324
364
|
def clip_table(csv):
|
|
325
365
|
|
|
@@ -332,7 +372,16 @@ def clip_table(csv):
|
|
|
332
372
|
elif sys.platform == "darwin":
|
|
333
373
|
subprocess.run(['open', "{}".format(csv)], check=True)
|
|
334
374
|
else:
|
|
335
|
-
|
|
375
|
+
try:
|
|
376
|
+
subprocess.run(['xdg-open', "{}".format(csv)], check=True)
|
|
377
|
+
except:
|
|
378
|
+
"WSL"
|
|
379
|
+
# Convert the WSL path to a Windows-style path
|
|
380
|
+
# Use -a for absolute path or -w for Windows path (can handle network shares)
|
|
381
|
+
windows_path = subprocess.check_output(["wslpath", "-w", csv]).decode().strip()
|
|
382
|
+
|
|
383
|
+
# Launch the file using the default Windows application
|
|
384
|
+
subprocess.run(["explorer.exe", windows_path])
|
|
336
385
|
|
|
337
386
|
df = pd.read_csv(csv)
|
|
338
387
|
|
pingmapper/version.py
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
__version__ = '5.0.
|
|
1
|
+
__version__ = '5.0.7'
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: pingmapper
|
|
3
|
-
Version: 5.0.
|
|
3
|
+
Version: 5.0.7
|
|
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
|
|
6
6
|
Author-email: bodine.cs@gmail.email
|
|
@@ -17,7 +17,7 @@ Classifier: Topic :: Scientific/Engineering :: Visualization
|
|
|
17
17
|
Classifier: Topic :: Scientific/Engineering :: Oceanography
|
|
18
18
|
Classifier: Topic :: Scientific/Engineering :: GIS
|
|
19
19
|
Classifier: Topic :: Scientific/Engineering :: Hydrology
|
|
20
|
-
Requires-Python:
|
|
20
|
+
Requires-Python: >=3.6
|
|
21
21
|
Description-Content-Type: text/markdown
|
|
22
22
|
License-File: LICENSE
|
|
23
23
|
Requires-Dist: pinginstaller
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
pingmapper/__init__.py,sha256=8zLGg-DfQhnDl2Ky0n-zXpN-8e-g7iR0AcaI4l4Vvpk,32
|
|
2
|
-
pingmapper/__main__.py,sha256=
|
|
2
|
+
pingmapper/__main__.py,sha256=AFopb_XqSU4ZWnmmNICLmtEP7XI_7D-9ng5mnvWNePc,1431
|
|
3
3
|
pingmapper/class_mapSubstrateObj.py,sha256=txB9YqXfVgDFi628jo2F1RtEw1lCNR8wYpkhy94bn0U,37036
|
|
4
4
|
pingmapper/class_portstarObj.py,sha256=eufSlCsjBLyMr_2_a_B0_OzG2O6qyMX4o_pfSGwH04Y,106729
|
|
5
5
|
pingmapper/class_rectObj.py,sha256=aJbM-q3UNBhvWutOJwnweGkWTrx6avslX2DCWdofW4Q,96182
|
|
6
6
|
pingmapper/class_sonObj.py,sha256=7HVeCTDSUTwerkdB-hrRTITvh9q7kCfbL98QCTFp85Q,75683
|
|
7
|
-
pingmapper/
|
|
7
|
+
pingmapper/class_sonObj_nadirgaptest.py,sha256=DSFgjEgpwPgDZslw0vXGGBNFYlcoUa2Ufbr8i_Uqdhc,76915
|
|
8
|
+
pingmapper/funcs_common.py,sha256=0uZErbrWZ_jhOLOc-CT--8OX4eHF9qE_E5Wwy60aSvQ,15300
|
|
8
9
|
pingmapper/funcs_model.py,sha256=dO9J4-0s1COggHkSUqHFC1qKTs20A6PSvkDqXWMUT6A,7916
|
|
9
10
|
pingmapper/funcs_rectify.py,sha256=bAFWbNr4dyOuQzF1j4Je-K4zxfJZUjISc0nYrOot8Ng,12418
|
|
10
11
|
pingmapper/gui_main.py,sha256=5JsOYqRu146T1xhRgYC9ag3vnpRWqa2PDuJky595YA0,34780
|
|
@@ -13,10 +14,10 @@ pingmapper/main_readFiles.py,sha256=lhL41W4UisY8ZgdRBgk5G47SeaLHMmB0Myk47Fhxtrc,
|
|
|
13
14
|
pingmapper/main_rectify.py,sha256=uOKHHYrjVa3PVtU26G_fL9hTV7sZkvIzEgk3VJd3tVA,20217
|
|
14
15
|
pingmapper/test_PINGMapper.py,sha256=-SYMsdK-tTodXp5dCFSWPn-KRN7-OjX6OwjQ2-8hQg0,14176
|
|
15
16
|
pingmapper/test_time.py,sha256=uHT0mtLDP1J6w-snoELyk4UzZ2LrDeF6jGgJJVloalg,750
|
|
16
|
-
pingmapper/version.py,sha256=
|
|
17
|
-
pingmapper-5.0.
|
|
18
|
-
pingmapper-5.0.
|
|
19
|
-
pingmapper-5.0.
|
|
20
|
-
pingmapper-5.0.
|
|
21
|
-
pingmapper-5.0.
|
|
22
|
-
pingmapper-5.0.
|
|
17
|
+
pingmapper/version.py,sha256=oWnQcEE23SEA_ioIuiT7OYVZH5tddP4EGG6dO2yVfuU,21
|
|
18
|
+
pingmapper-5.0.7.data/data/pingmapper_config/default_params.json,sha256=YA9Rx1PSdUy4cTq-vtKORo3nNLisCYNOeUBxClldmHs,1285
|
|
19
|
+
pingmapper-5.0.7.dist-info/licenses/LICENSE,sha256=lowDp_th1CGR0Z224a-jYRi-oNFe_0fdldL3USXhX-k,1095
|
|
20
|
+
pingmapper-5.0.7.dist-info/METADATA,sha256=n4Ar8EKcgz0VgHI0bIV6Sz_qrWK1KE0ijtRcgXCMOTM,9202
|
|
21
|
+
pingmapper-5.0.7.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
22
|
+
pingmapper-5.0.7.dist-info/top_level.txt,sha256=RlV4sDoE3uIIDzNMOjN2t012Ia_jsblNVojJvg4q84w,11
|
|
23
|
+
pingmapper-5.0.7.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|