Insert/TrackPatchYoyo.tl
¶
Aggregate ID: TrackPatchYoyo
Aggregate Path: Insert/TrackPatchYoyo.tl
Vehicle yo-yos with patch detect enabled for oil concentration.
NOTE: oil concentrations may vary strongly with depth!
Suggested settings for simulation:
Config/sim/[username]/Simulator.cfg:
oceanModelData = "Resources/BurgerOilfieldSpill.nc:mass_concentration_of_petroleum_hydrocarbons_in_sea_water:kg/m3";
eastCurrent = 0.05 m/s; // vel y wrto LV
northCurrent = 0.005 m/s; // vel x wrto LV
Config/sim/[username]/workSite.cfg:
initLat = 71.2225805280196 arcdeg; // Initial latitude
initLon = -163.5093252100575 arcdeg; // Initial longitude
Config/sim/[username]/sim.cfg:
WetLabsBB2FL.loadAtStartup = 0 bool;
WetLabsSeaOWL_UV_A.loadAtStartup = 1 bool;
WetLabsSeaOWL_UV_A.simulateSensors = 1 bool;
WetLabsSeaOWL_UV_A.serial = "SEAOWLA2K-019";
WetLabsSeaOWL_UV_A.scaleFactor700 = 3.204e-7 1/m/sr/count;
WetLabsSeaOWL_UV_A.darkCounts700 = 48 count;
WetLabsSeaOWL_UV_A.scaleFactorFDOM = 8.096e-3 ppb/count;
WetLabsSeaOWL_UV_A.darkCountsFDOM = 50 count;
WetLabsSeaOWL_UV_A.fdomAccuracy = 8.19 ppb;
WetLabsSeaOWL_UV_A.scaleFactorChl = 2.170e-3 ug/l/count;
WetLabsSeaOWL_UV_A.darkCountsChl = 50 count;
WetLabsSeaOWL_UV_A.chlAccuracy = 1.475 ug/l;
WetLabsSeaOWL_UV_A.scaleFactorOil = 2.8 ppb/count;
WetLabsSeaOWL_UV_A.darkCountsOil = 50 count;
WetLabsSeaOWL_UV_A.oilAccuracy = 3.6 ppb;
NavChartDb.charts = "US1AK90M,US2AK92M,US5AK9NM,US5AK9OM,US5AK9PM,US5AK9QM,US5AK9RM,US5AK9SM,US5AK9TM,US5AK9UM";
Inserted by:
Arguments¶
Speed¶
Speed = 1 meter_per_second
Vehicle speed.
PeakDetectChl¶
PeakDetectChl = true
Chlorophyll patch tracking.
PeakDetectSalinity¶
PeakDetectSalinity = false
Salinity patch tracking.
PeakDetectOil¶
PeakDetectOil = false
Oil patch tracking.
PeakDetectPlanktivoreLMavgROI¶
PeakDetectPlanktivoreLMavgROI = false
Planktivore LMavgROI patch tracking.
PeakShallowBnd¶
PeakShallowBnd = 4.5 meter
Shallow depth bound for chl-peak detection.
PeakDeepBnd¶
PeakDeepBnd = 17 meter
Deep depth bound for chl-peak detection.
DepChangeThresholdAttitudeFlip¶
DepChangeThresholdAttitudeFlip = 2.0 meter
Depth change threshold for determining vehicle attitude flip.
MinOffshore¶
MinOffshore = 2000 meter
Minimum offshore distance for the entire mission.
MarginMinOffshore¶
MarginMinOffshore = 100 meter
If closer than MinOffshore+MarginMinOffshore, turn back from shore.
MinDistFromPolygonSides¶
MinDistFromPolygonSides = 200 meter
If a operational safety polygon is specified and the vehicle is closer than this minimum distance to the polygon sides, turn back.
NeedCommsTimePatchTracking¶
NeedCommsTimePatchTracking = 300 minute
Maximum time between surfacings for communications during patch tracking. This is checked only at the end of a CrossLeg (i.e., back to patch center).
WaitAfterBouncing¶
WaitAfterBouncing = 5 minute
After the vehicle bounces off the boundary (defined by minimum distance to shore or polygon sides), wait this long before re-checking the distance.
CntRoundsCrossLegSurfacing¶
CntRoundsCrossLegSurfacing = 5 count
One round = one count of outleg. When CntRounds (initialized to 1) counts to 5 and the ensuing CrossLeg is finished, the vehicle has completed 2 full 4-direction sweeps and is back to the patch center. When CntRounds counts to CountRoundsCrossLegSurfacing and the ensuing CrossLeg is finished (back to the patch center), the vehicle surfaces.
WpMaxDist¶
WpMaxDist = 1000 meter
Maximum length of each tracking leg
WpTimeout¶
WpTimeout = 4000 second
Maximum duration of each tracking leg
DetectionTimeout¶
DetectionTimeout = 30 minute
Look for signal for this long. If none found within this timeout, switch to the next leg.
PatchTrackingYoYoMinDepth¶
PatchTrackingYoYoMinDepth = 2 meter
Minimum depth while performing the YoYo behavior during patch tracking.
PatchTrackingYoYoMaxDepth¶
PatchTrackingYoYoMaxDepth = 25 meter
Maximum depth while performing the YoYo behavior during patch tracking.
YoYoMinAltitude¶
YoYoMinAltitude = 9 meter
Minimum altitude while performing the YoYo behavior (for bottom-terminated YoYos).
YoYoUpPitch¶
YoYoUpPitch = 20 degree
Vehicle up pitch while performing the YoYo behavior.
YoYoDownPitch¶
YoYoDownPitch = -20 degree
Vehicle down pitch while performing the YoYo behavior.
BeginThreshChl¶
BeginThreshChl = 1.0 microgram_per_liter
If non-NaN, sets chlorophyll threshold for starting horizontal patch detection
BeginThreshSalt¶
BeginThreshSalt = 33.0 psu
If non-NaN, sets salinity threshold for starting horizontal patch detection
BeginThreshOil¶
BeginThreshOil = 0.2 kilogram_per_cubic_meter
If non-NaN, sets oil threshold for starting horizontal patch detection
BeginThreshPlanktivoreLMavgROI¶
BeginThreshPlanktivoreLMavgROI = 50 count_per_second
If non-NaN, sets Planktivore LMavgROI threshold for starting horizontal patch detection
WpBearing¶
WpBearing = 90 degree
Bearing being followed in the current leg. Set this to initialize start direction of patch tracking.
OffPeakFraction¶
OffPeakFraction = 90 percent
When filtered horizontal value is this fraction of the peak, consider it outside the patch.
LengthLPWindow¶
LengthLPWindow = 20 count
Low-pass window length (based on depth sensor sampling interval 0.4 second) for low-pass filtering.
LengthMedianFilter¶
LengthMedianFilter = 5 count
Median filter length (only for chlorophyll fluorescence which tends to have spikes). The median-filtered signal enters the succeeding low-pass filter. If set to 1, then no median filtering, i.e., the raw fluorescence signal directly enters the low-pass filter.
NumOfProfilesSlidingwindow¶
NumOfProfilesSlidingwindow = 50 count
Length of horizontal sliding window. The highest per-yoyo peak (after low-pass filtering by a filter of length FilterWidthHorizontal) is picked out within this window.
FilterWidthHorizontal¶
FilterWidthHorizontal = 4 count
Width of boxcar filter used in horizontal patch detection
WaterFrame¶
WaterFrame = true
Set WaterFrame true to drive towards waypoints in the water frame of reference
PatchMode¶
PatchMode = false
If true, use center of "in peak" range as the turn-around point. If false use maximum horizontal peak location as the turn-around point.
Turn¶
Turn = 90 degree
Amount to turn at each leg
BuoyancyNeutral¶
BuoyancyNeutral = NaN cc
Output¶
Reverse¶
Reverse = 180 degree
Change in bearing which reverses vehicle direction
TwoPi¶
TwoPi = 360 degree
Applied to stop run-up of angles
CntRounds¶
CntRounds = 1 count
one round = one count of outleg. Initilized to 1.
PatchDetectOn¶
PatchDetectOn = false
Mission sets this to true when the patch has been crossed. Initialized to False.
WpDone¶
WpDone = true
Mission sets this to true when the cross-patch waypoint has been reached. Initialized to True.
CrossLegToPatchCenterCompleted¶
CrossLegToPatchCenterCompleted = false
Initialized to False.
CrossLegSearchForPeakStarted¶
CrossLegSearchForPeakStarted = false
Initialized to False.
Terminate¶
Terminate = false
FlagTurnBack¶
FlagTurnBack = false
Flag of turning back from shore. Initialized to False.
PeakChl¶
PeakChl = NaN microgram_per_liter
PeakChlDepth¶
PeakChlDepth = NaN meter
PeakChlLatitude¶
PeakChlLatitude = NaN degree
PeakChlLongitude¶
PeakChlLongitude = NaN degree
PatchPeakChl¶
PatchPeakChl = NaN microgram_per_liter
PeakSalt¶
PeakSalt = NaN psu
PeakSaltDepth¶
PeakSaltDepth = NaN meter
PeakSaltLatitude¶
PeakSaltLatitude = NaN degree
PeakSaltLongitude¶
PeakSaltLongitude = NaN degree
PatchPeakSalinity¶
PatchPeakSalinity = NaN psu
PeakOil¶
PeakOil = NaN kilogram_per_cubic_meter
PeakOilDepth¶
PeakOilDepth = NaN meter
PeakOilLatitude¶
PeakOilLatitude = NaN degree
PeakOilLongitude¶
PeakOilLongitude = NaN degree
PatchPeakOil¶
PatchPeakOil = NaN kilogram_per_cubic_meter
PeakPlanktivoreLMavgROI¶
PeakPlanktivoreLMavgROI = NaN count_per_second
PeakPlanktivoreLMavgROIDepth¶
PeakPlanktivoreLMavgROIDepth = NaN meter
PeakPlanktivoreLMavgROILatitude¶
PeakPlanktivoreLMavgROILatitude = NaN degree
PeakPlanktivoreLMavgROILongitude¶
PeakPlanktivoreLMavgROILongitude = NaN degree
PatchPeakPlanktivoreLMavgROI¶
PatchPeakPlanktivoreLMavgROI = NaN count_per_second
PatchPeakDepth¶
PatchPeakDepth = NaN meter
PatchPeakLatitude¶
PatchPeakLatitude = NaN degree
PatchPeakLongitude¶
PatchPeakLongitude = NaN degree
PatchPeakDistance¶
PatchPeakDistance = 0 meter
StoppedForNaNPatchPeak¶
StoppedForNaNPatchPeak = false
Mission stopped because patch peak value is NaN. Initialized to False.
StoppedForBeingOutsideOfPolygon¶
StoppedForBeingOutsideOfPolygon = false
Mission stopped because the vehicle is outside of the polygon. Initialized to False.
ElapsedSinceStartOrLastDistCheck¶
ElapsedSinceStartOrLastDistCheck = 0 hour
The mission sets this variable to reset the timer for checking distance to shore and polygon sides.
Inserts¶
Insert/Science.tl
¶
redefineArg PeakDetectChlActive = true
redefineArg LowPassWindowLength = LengthLPWindow
redefineArg MedianFilterLen = LengthMedianFilter
redefineArg PeakShallowBound = PeakShallowBnd
redefineArg PeakDeepBound = PeakDeepBnd
redefineArg DepChangeThreshForAttitudeFlip = DepChangeThresholdAttitudeFlip