%matplotlib inline
import mpld3
mpld3.enable_notebook()
import matplotlib.pyplot as plt
import ifg.shis.rdr.valid as val
from pyfbf import Workspace
import numpy as np
W = Workspace('scatter_test/rdr20170323T170847end20170323T233859sdr20170324T194155')
debug = {}
ok, seg = val.segments(W, debug=debug)
fig = plt.figure(figsize=(15,10))
ax = fig.add_subplot(111, axisbg='#EEEEEE')
ax.grid(color='white', linestyle='solid')
ax.plot(seg)
ax.set_title('segmentize unit test for sh170323')
pitch,roll,segments,smp,sequences = W['Pitch'][:], W['Roll'][:], W['segments'][:], W['sceneMirrorPosition'][:], W['intactMirrorSequences'][:]
old_segments = segments
config = val.DEFAULT_SEGMENT_LIMITS
config = config._replace(min_turn_segment_width=58, min_segment_width=58)
masks = val.segments_and_sequences(W, seg_limits=config)
segments = masks.segments.astype(np.int32)
gudrex = np.argwhere(smp==ord('E'))
fig = plt.figure(figsize=(15,10))
ax = fig.add_subplot(111, axisbg='#EEEEEE')
ax.grid(color='white', linestyle='solid')
ax.plot(gudrex, segments[gudrex], alpha=0.7, color='blue')
ax.plot(gudrex, old_segments[gudrex], alpha=0.7, color='green')
ax.legend(['test segmentize', 'original segments'])
ax.set_title('segments.int4 test for E views sh170323')
' '.join(str(x) for x in sorted(set(seg))), ' '.join(str(x) for x in sorted(set(segments)))
fig = plt.figure(figsize=(15,10))
ax = fig.add_subplot(111, axisbg='#EEEEEE')
ax.grid(color='white', linestyle='solid')
ax.plot(roll, alpha=0.7, color='blue', linewidth=0.5)
ax.plot(pitch, alpha=0.7, color='green', linewidth=0.5)
ax.legend(['Roll', 'Pitch'])
# ax.set_title()
s,e = 10000,25000
fig = plt.figure(figsize=(15,10))
ax = fig.add_subplot(111, axisbg='#EEEEEE')
ax.grid(color='white', linestyle='solid')
ax.plot(roll[s:e], alpha=0.7, linewidth=0.5, color='blue')
ax.plot(roll[s:e], alpha=0.7, linewidth=0.5, color='green')
ax.plot(np.sign(seg[s:e]) * 20, linewidth=0.5, color='red')
# plot(np.require(ok[s:e], dtype=np.int32) * 25)
ax.legend(['Roll', 'Pitch', 'segments sign'])
ax.set_title('Attitude excerpt sh170323')
ax.set_xlabel('record offset')
ax.set_ylabel('degrees')
unroll, turnroll, flatroll, calroll = np.array(roll), np.array(roll), np.array(roll), np.array(roll)
eview = smp==ord('E')
unroll[(segments!=0) | ~eview] = np.NAN
turnroll[(segments>=0) | ~eview] = np.NAN
flatroll[(segments<=0) | ~eview] = np.NAN
calroll[eview] = np.NAN
fig = plt.figure(figsize=(15,15))
ax = fig.add_subplot(111, axisbg='#EEEEEE')
ax.grid(color='white', linestyle='solid')
ax.plot(calroll, alpha=0.7, linewidth=0.5, color='purple')
ax.plot(unroll, alpha=0.9, linewidth=0.5, color='red')
ax.plot(flatroll, alpha=0.9, linewidth=0.5, color='blue')
ax.plot(turnroll, alpha=0.9, linewidth=0.5, color='green')
ax.set_title('Roll for Segment-Categorized Views')
ax.legend(['not earth', 'segments==0', 'segments>0', 'segments<0'])
unpitch, turnpitch, flatpitch, calpitch = np.array(pitch), np.array(pitch), np.array(pitch), np.array(pitch)
eview = smp==ord('E')
unpitch[(segments!=0) | ~eview] = np.NAN
turnpitch[(segments>=0) | ~eview] = np.NAN
flatpitch[(segments<=0) | ~eview] = np.NAN
calpitch[eview] = np.NAN
fig = plt.figure(figsize=(15,15))
ax = fig.add_subplot(111, axisbg='#EEEEEE')
ax.grid(color='white', linestyle='solid')
ax.plot(calpitch, alpha=0.6, linewidth=0.5, color='purple')
ax.plot(unpitch, alpha=0.9, linewidth=0.5, color='red')
ax.plot(flatpitch, alpha=0.9, linewidth=0.5, color='blue')
ax.plot(turnpitch, alpha=0.9, linewidth=0.5, color='green')
ax.set_title('pitch for Segment-Categorized Views')
ax.legend(['not earth', 'segments==0', 'segments>0', 'segments<0'])
lat, lon = W['instrumentLatitude'][:], W['instrumentLongitude'][:]
unlat, turnlat, flatlat, callat = np.array(lat), np.array(lat), np.array(lat), np.array(lat)
eview = smp==ord('E')
unlat[(segments!=0) | (lat==0) | ~eview] = np.NAN
turnlat[(segments>=0) | (lat==0) | ~eview] = np.NAN
flatlat[(segments<=0) | (lat==0) | ~eview] = np.NAN
callat[eview | (lon==0)] = np.NAN
unlon, turnlon, flatlon, callon = np.array(lon), np.array(lon), np.array(lon), np.array(lon)
eview = smp==ord('E')
unlon[(segments!=0) | (lon==0) | ~eview] = np.NAN
turnlon[(segments>=0) | (lon==0) | ~eview] = np.NAN
flatlon[(segments<=0) | (lon==0) | ~eview] = np.NAN
callon[eview | (lon==0)] = np.NAN
fig = plt.figure(figsize=(15,15))
ax = fig.add_subplot(111, axisbg='#EEEEEE')
ax.grid(color='white', linestyle='solid')
ax.plot(callon, callat, alpha=0.6, linewidth=0.5, color='purple')
ax.plot(unlon, unlat, alpha=0.9, linewidth=0.5, color='red')
ax.plot(flatlon, flatlat, alpha=0.9, linewidth=0.5, color='blue')
ax.plot(turnlon, turnlat, alpha=0.9, linewidth=0.5, color='green')
ax.set_title('flight track for Segment-Categorized Views')
ax.legend(['not earth', 'segments==0', 'segments>0', 'segments<0'])
s,e = 11000, 23000
fig = plt.figure(figsize=(15,15))
ax = fig.add_subplot(111, axisbg='#EEEEEE')
ax.grid(color='white', linestyle='solid')
ax.plot(callon[s:e], callat[s:e], alpha=0.4, linewidth=10, color='purple')
ax.plot(unlon[s:e], unlat[s:e], alpha=0.6, linewidth=10, color='red')
ax.plot(flatlon[s:e], flatlat[s:e], alpha=0.6, linewidth=10, color='blue')
ax.plot(turnlon[s:e], turnlat[s:e], alpha=0.6, linewidth=10, color='green')
fovlat, fovlon = W['Latitude'][:], W['Longitude'][:]
funlat, fturnlat, fflatlat, fcallat = np.array(fovlat), np.array(fovlat), np.array(fovlat), np.array(fovlat)
eview = smp==ord('E')
funlat[(segments!=0) | (lat==0) | ~eview] = np.NAN
fturnlat[(segments>=0) | (lat==0) | ~eview] = np.NAN
fflatlat[(segments<=0) | (lat==0) | ~eview] = np.NAN
fcallat[eview | (lon==0)] = np.NAN
funlon, fturnlon, fflatlon, fcallon = np.array(fovlon), np.array(fovlon), np.array(fovlon), np.array(fovlon)
eview = smp==ord('E')
funlon[(segments!=0) | (lon==0) | ~eview] = np.NAN
fturnlon[(segments>=0) | (lon==0) | ~eview] = np.NAN
fflatlon[(segments<=0) | (lon==0) | ~eview] = np.NAN
fcallon[eview | (lon==0)] = np.NAN
# ax.plot(callon[s:e], callat[s:e], alpha=0.6, linewidth=0.5, color='purple')
ax.plot(funlon[s:e], funlat[s:e], '.', alpha=0.9, linewidth=0.5, color='red')
ax.plot(fflatlon[s:e], fflatlat[s:e], '.', alpha=0.9, linewidth=0.5, color='blue')
ax.plot(fturnlon[s:e], fturnlat[s:e], '.', alpha=0.9, linewidth=0.5, color='green')
ax.set_title('FOV track for Segment-Categorized Views')
ax.legend(['not earth', 'segments==0', 'segments>0', 'segments<0'])