2024-0205 Bulldog Dataset

Processes points generated by GlobalMapper “profile tool”.

Functions

General Imports

import numpy as   np
import math as    m
import pandas as  pd
# import scipy.special

from bokeh.layouts import gridplot
from bokeh.palettes import HighContrast3
from bokeh.plotting import figure, show
from bokeh.io import output_notebook

Constants

ms2knots   = 1.94384
m2ft       = 3.28084
ft2m       = 1/m2ft
np.deg2rad = np.pi/180.0
np.rad2deg = 180.0/np.pi

Init code.

output_notebook()           # Enable notebook for Bokeh output.
Loading BokehJS ...

Main Code

PRF                           = 20000          # laser pulse rate
scan_rate_hz                  = 25             # Scanner spin rate
Flight_Altitude_m             = 3048          # 10,000ft is 3048m Flight Altitude in meters
swath_width_m                 = 890            # swath width in meters
survey_ground_speed_m_s       = 70            # ground speed in m/s
scan_angle_full_d                  = np.arctan( swath_width_m * 0.5 / Flight_Altitude_m ) * np.rad2deg * 2.0
deep_rate                     = PRF
shallow_rate                  = PRF * 2
area_covered_s                = swath_width_m * survey_ground_speed_m_s
deep_rate_per_m2              = deep_rate     / area_covered_s
shallow_rate_per_m2           = shallow_rate  / area_covered_s
deep_and_shallow_rate_per_m2  = deep_rate_per_m2 + shallow_rate_per_m2

print('Bulldog specs extracted from 2024-0205 dataset')
print(f'PRF..........................: {PRF:,} Hz')
print(f'Scan rate....................: {scan_rate_hz:,} Hz')
print(f'Swath width..................: {swath_width_m} m')
print(f'Scan Angle (Full)............: {scan_angle_full_d:4.2f} deg')
print(f'Flight Altitude..............: {Flight_Altitude_m} m      ( {int(Flight_Altitude_m * m2ft):,} ft agl )')
print(f'Ground speed.................: {survey_ground_speed_m_s} m/s      ( {survey_ground_speed_m_s*ms2knots:0.0f} knots )')
print(f'Area coverage rate...........: {area_covered_s:,} m/s  ( {area_covered_s/1e6*3600:1.1f} km2/hour )')
print(f'Deep sample rate.............: {deep_rate:,} Hz')
print(f'Shallow sample rate..........: {shallow_rate:,} Hz')
print(f'Deep coverage rate...........: {deep_rate_per_m2:0.2f} Points/m2')
print(f'Shallow coverage rate........: {shallow_rate_per_m2:0.2f} Points/m2')
print(f'Deep+shallow coverage rate...: {deep_and_shallow_rate_per_m2:0.2f} Points/m2')
Bulldog specs extracted from 2024-0205 dataset
PRF..........................: 20,000 Hz
Scan rate....................: 25 Hz
Swath width..................: 890 m
Scan Angle (Full)............: 16.61 deg
Flight Altitude..............: 3048 m      ( 10,000 ft agl )
Ground speed.................: 70 m/s      ( 136 knots )
Area coverage rate...........: 62,300 m/s  ( 224.3 km2/hour )
Deep sample rate.............: 20,000 Hz
Shallow sample rate..........: 40,000 Hz
Deep coverage rate...........: 0.32 Points/m2
Shallow coverage rate........: 0.64 Points/m2
Deep+shallow coverage rate...: 0.96 Points/m2

Area A 10m

ta_a = TEST_AREA()
ta_a.area_name              = "Area A"
ta_a.title                  = f"{ta_a.area_name} ~10 meter depth. 1cm bins."
ta_a.area_width             = 3
ta_a.area_length            = 70
ta_a.area                   = ta_a.area_width * ta_a.area_length

ta_a.czmil                  = DATA()
ta_a.bulldog_shallow        = DATA()
ta_a.bulldog_deep           = DATA()

ta_a.czmil.fn               = '/content/drive/MyDrive/Projects/2024-0209-NOAA-RSD-Bulldog/A-10m-czmil.txt'
ta_a.bulldog_deep.fn        = '/content/drive/MyDrive/Projects/2024-0209-NOAA-RSD-Bulldog/A-10m-bulldog-deep.txt'
ta_a.bulldog_shallow.fn     = '/content/drive/MyDrive/Projects/2024-0209-NOAA-RSD-Bulldog/A-10m-bulldog-shallow.txt'

data( ta_a, ta_a.czmil )
data( ta_a, ta_a.bulldog_deep )
data( ta_a, ta_a.bulldog_shallow )

gen_plot( ta_a )
ta_a.p.line(ta_a.bins[0:-1],  ta_a.bulldog_deep.hist, legend_label="BullDog Deep",  line_width=2, color='red')
ta_a.p.line( ta_a.bins[0:-1], ta_a.czmil.hist,        legend_label="CZMIL",         line_width=5, color="blue")

show(ta_a.p)
gen_all_stats( ta_a )

Area B 10m

ta_b = TEST_AREA();
ta_b.area_name              = "Area B"
ta_b.title                  = f"{ta_b.area_name} ~10 meter depth. 1cm bins."
ta_b.area_width         = 3
ta_b.area_length        = 38.5
ta_b.area               = ta_b.area_width  * ta_b.area_length

ta_b.czmil              = DATA()
ta_b.bulldog_deep       = DATA()
ta_b.bulldog_shallow    = DATA()

ta_b.czmil.fn           = '/content/drive/MyDrive/Projects/2024-0209-NOAA-RSD-Bulldog/B-10m-czmil.txt'
ta_b.bulldog_deep.fn    = '/content/drive/MyDrive/Projects/2024-0209-NOAA-RSD-Bulldog/B-10m-bulldog-deep.txt'
ta_b.bulldog_shallow.fn = '/content/drive/MyDrive/Projects/2024-0209-NOAA-RSD-Bulldog/B-10m-bulldog-shallow.txt'


data( ta_b, ta_b.czmil )
data( ta_b, ta_b.bulldog_deep )
data( ta_b, ta_b.bulldog_shallow )


gen_plot( ta_b )
ta_b.p.line( ta_b.bins[0:-1], ta_b.czmil.hist,                                  legend_label="CZMIL",           line_width=5, color="blue")
ta_b.p.line(ta_b.bins[0:-1],  ta_b.bulldog_deep.hist+ta_b.bulldog_shallow.hist, legend_label="BullDog Deep+Shallow",    line_width=2, color='red')
#ta_b.p.line(ta_a.bins[0:-1],  ta_b.bulldog_shallow_hist,                        legend_label="BullDog Shallow", line_width=2, color='magenta')
#ta_b.p.line(ta_a.bins[0:-1],  ta_b.bulldog.hist,                                legend_label="BullDog",         line_width=2, color='green')
show(ta_b.p)
gen_all_stats( ta_b )

Area C 22m

ta_c = TEST_AREA();
ta_c.area_name              = "Area C"
ta_c.title                  = f"{ta_c.area_name} ~22 meter depth. 1cm bins."
ta_c.area_width             = 3
ta_c.area_length            = 41.1
ta_c.area                   = ta_c.area_width  * ta_c.area_length
ta_c.bins                   = np.linspace(-22.5, -21.5, 100)

ta_c.czmil                  = DATA()
ta_c.bulldog_all            = DATA()

ta_c.czmil.fn               = '/content/drive/MyDrive/Projects/2024-0209-NOAA-RSD-Bulldog/C-22m-czmil.txt'
ta_c.bulldog_all.fn         = '/content/drive/MyDrive/Projects/2024-0209-NOAA-RSD-Bulldog/C-22m-bulldog-deep.txt'

data( ta_c, ta_c.czmil )
data( ta_c, ta_c.bulldog_all )

#ta_c.bulldog = DATA()
#data( ta_c, ta_c.bulldog, ta_c.bulldog.fn )

gen_plot( ta_c )
ta_c.p.line( ta_c.bins[0:-1], ta_c.czmil.hist,                                   legend_label="CZMIL",           line_width=5, color="blue")
ta_c.p.line(ta_c.bins[0:-1],  ta_c.bulldog_all.hist, legend_label="BullDog Deep",line_width=5, color='red')
#ta_b.p.line(ta_a.bins[0:-1],  ta_b.bulldog_shallow_hist,                        legend_label="BullDog Shallow", line_width=2, color='magenta')
#ta_b.p.line(ta_a.bins[0:-1],  ta_b.bulldog.hist,                                legend_label="BullDog",         line_width=2, color='green')
show(ta_c.p)
gen_all_stats( ta_c )

Area D 30m

ta_d = TEST_AREA()
ta_d.area_name              = "Area D"
ta_d.title                  = f"{ta_d.area_name} ~30 meter depth. 1cm bins."
ta_d.area_width             = 3
ta_d.area_length            = 71
ta_d.area                   = ta_d.area_width  * ta_d.area_length
ta_d.bins                   = np.linspace(-30.7, -29.7, 100)

ta_d.czmil                  = DATA()
ta_d.bulldog_all            = DATA()

ta_d.czmil.fn               = '/content/drive/MyDrive/Projects/2024-0209-NOAA-RSD-Bulldog/D-30m-czmil.txt'
ta_d.bulldog_all.fn         = '/content/drive/MyDrive/Projects/2024-0209-NOAA-RSD-Bulldog/D-30m-bulldog-deep.txt'

data( ta_d, ta_d.czmil )
data( ta_d, ta_d.bulldog_all )

gen_plot( ta_d )
ta_d.p.line( ta_d.bins[0:-1], ta_d.czmil.hist,                                   legend_label="CZMIL",           line_width=5, color="blue")
ta_d.p.line(ta_d.bins[0:-1],  ta_d.bulldog_all.hist, legend_label="BullDog Deep",line_width=3, color='red')
#ta_b.p.line(ta_a.bins[0:-1],  ta_b.bulldog_shallow_hist,                        legend_label="BullDog Shallow", line_width=2, color='magenta')
#ta_b.p.line(ta_a.bins[0:-1],  ta_b.bulldog.hist,                                legend_label="BullDog",         line_width=2, color='green')
show(ta_d.p)
gen_all_stats( ta_d )