Skip to content

Instantly share code, notes, and snippets.

@dbuscombe-usgs
Created September 17, 2015 18:37
Show Gist options
  • Save dbuscombe-usgs/25484dbd5b9e545807df to your computer and use it in GitHub Desktop.
Save dbuscombe-usgs/25484dbd5b9e545807df to your computer and use it in GitHub Desktop.
plot a merged port and sidescan, cropping to a user-specified maximum range
import matplotlib.pyplot as plt
import os
import numpy as np
from scipy.io import loadmat
sonpath = '/home/mydata/sonpath'
humfile = '/home/mydata/humfile.DAT'
# maximum range in m to shwo
maxy = 35
# if son path name supplied has no separator at end, put one on
if sonpath[-1]!=os.sep:
sonpath = sonpath + os.sep
base = humfile.split('.DAT') # get base of file name for output
base = base[0].split(os.sep)[-1]
# remove underscores, negatives and spaces from basename
if base.find('_')>-1:
base = base[:base.find('_')]
if base.find('-')>-1:
base = base[:base.find('-')]
if base.find(' ')>-1:
base = base[:base.find(' ')]
if base.find('.')>-1:
base = base[:base.find('.')]
meta = loadmat(os.path.normpath(os.path.join(sonpath,base+'meta.mat')))
shape_port = np.squeeze(meta['shape_port'])
shape_star = np.squeeze(meta['shape_star'])
with open(os.path.normpath(os.path.join(sonpath,base+'_data_port_lw.dat')), 'r') as ff:
port_fpw = np.memmap(ff, dtype='float32', mode='r', shape=tuple(shape_port))
with open(os.path.normpath(os.path.join(sonpath,base+'_data_star_lw.dat')), 'r') as ff:
star_fpw = np.memmap(ff, dtype='float32', mode='r', shape=tuple(shape_star))
Zdist = meta['dist_m']
extent = shape_port[0]
ft = np.squeeze(1/meta['pix_m'])
fig = plt.figure()
plt.imshow(np.vstack((np.flipud(port_fpw), star_fpw)), cmap='gray', extent=[np.min(Zdist), np.max(Zdist), -extent*(1/ft), extent*(1/ft)])
plt.ylabel('Range (m)'), plt.xlabel('Distance along track (m)')
plt.axis('normal'); plt.axis('tight')
plt.ylim(-maxy, maxy)
plt.savefig(os.path.normpath(os.path.join(sonpath,'merged_cropped')),bbox_inches='tight',dpi=400)
del fig
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment