xcasn_assignssment3v2
DESCRIPTION
sssTRANSCRIPT
JEE309: SUBSEA ENGINEERING
ASSIGNMENT 3
DATA PROCESSING
Stewart Allen
15 October, 2015
JEE309: Subsea Engineering – Assignment 3
Page 2 of 14
TABLE OF CONTENTS
1 SCENARIO 1: SURVEY PLAN ............................................................................................. 3
1.1 Scope ......................................................................................................................... 3
1.2 Flight Path Plans ........................................................................................................ 4
1.3 Speed and Resolution Requirements ......................................................................... 5
1.4 Mission Plan Summary ............................................................................................. 6
2 SCENARIO 3: CHLOROPHYLL-A SURVEY .................................................................... 7
2.1 Scope ......................................................................................................................... 7
2.2 AUV Survey Route ................................................................................................... 7
2.3 Chlorophyll-a Results ................................................................................................ 7
2.4 Survey Conclusions ................................................................................................... 8
3 REFERENCES ......................................................................................................................... 8
APPENDIX A: MATLAB CODES (SCENARIO 1).................................................................. 9
APPENDIX B: MATLAB CODES (SCENARIO 3) ................................................................ 13
JEE309: Subsea Engineering – Assignment 3
Page 3 of 14
1 SCENARIO 1: SURVEY PLAN
1.1 SCOPE
The client, NCS Survey of Aberdeen Scotland, has requested a bathymetry survey of a
harbour area in Baku, Azerbaijan (49.663°E, 40.253°N). The 600m square area will be
surveyed to ensure it is suitable to allow through an oversized jacket structure.
Additionally the client requires a benthic imagery sub-survey of a smaller 100m square
area to examine submerged obstacles. There must be 40% overlap between the images to
allow the development of photo panoramas.
Mission Capabilities and Limitations
An Autonomous Underwater Vehicle (AUV) will be used to conduct the survey. The
vehicle can obtain 60m side-to-side swaths at a 6m altitude. For the sub-survey, however,
the AUV is required to run at 2.5m altitude to achieve the required camera visibility.
Key vehicle capabilities;
Camera field of view: 22.5° (half angle);
Endurance: 3 hours; and
Sonar sampling rate; 16Hz.
Assumptions
The following assumptions are made throughout the proposal;
The given coordinates are for the centre of the 600m square;
The survey area is square with the shoreline; and
The 100m square is in the centre of the 600m square, and is also square with the
shoreline.
This assumed geometry is illustrated in Figure 1-1.
Figure 1-1: 600m and 100m square survey area boundaries
JEE309: Subsea Engineering – Assignment 3
Page 4 of 14
1.2 FLIGHT PATH PLANS
Hydrographic Survey
The hydrographic survey consists of 11 path-lines spaced 54.5m apart, and two tie-lines,
each crossing all 11 lines. It is assumed that the AUV can achieve a 15m turning radius, as
is achieved by Kongsberg’s HUGIN AUV range (Kongsberg, 2015). This allows for an up-
and-back, ‘lawnmower’ type mission path, resulting in a total distance of about 8.7km.
This path is shown in the MATLAB plot and Google Earth image in Figure 1-2.
Figure 1-2: MATLAB (left) and Google Earth (right) diagrams of the hydrographic survey plan
The hydrographic survey will be undertaken at 6m altitude, giving 60m swaths. Therefore
100% coverage will be obtained, even if the AUV deviates up to ±2.7m from the
programmed path. The survey lines run parallel to the shore, beginning with the path-line
closest to the shore. This is to minimise the time that the AUV spends close to the shore
which is considered the most hazardous area.
Benthic Image Survey
The benthic image survey begins immediately after the hydrographic survey. During an
intermediate path-line the AUV will descend from 6m to 2.5m altitude. This allows the
camera to capture 2.07m wide images, as derived using the diagram in Figure 1-3.
Figure 1-3: Diagram of benthic image camera field of view
JEE309: Subsea Engineering – Assignment 3
Page 5 of 14
The survey is conducted with 50 lines spaced 2m apart to cover the 100m square area.
However, for the benthic survey, the AUV does not follow the up-and-back ‘lawnmower’
type path. Instead the AUV will perform loops as shown in Figure 1-4. The red line
highlights the first loop performed by the AUV. This method is more efficient in
accommodating the necessary 15m turn radius. Figure 1-4 also shows the benthic image
survey plan plotted in Google Earth.
Figure 1-4: MATLAB (left) and Google Earth (right) diagrams of the benthic image survey plan
The total distance for the benthic imagery survey is 8.0km. In this case only ±0.035m from
AUV deviation is allowable; however, this is adequate as 100% coverage is not required
for the benthic survey. It is for this reason also that the benthic image survey is conducted
after the hydrographic survey. If the AUV battery were to run out earlier than expected
only the benthic imaging coverage should be affected.
1.3 SPEED AND RESOLUTION REQUIREMENTS
The total distance covered, including the hydrographic and benthic surveys, is 17.0km.
Over 3 hours, this requires an average speed of 1.6m/s to obtain 100% coverage. It is
assumed that the AUV can comfortably achieve at least 1.6m/s, again by comparison to the
HUGIN AUV (Kongsberg, 2015), including through a 15m turn radius. Thus the
hydrographic survey will be completed at this speed, in about 90 minutes. The sonar used
for the hydrographic survey samples at 16Hz, therefore, at this speed, the spatial resolution
will be 0.1m. However, at the minimum acceptable resolution of 10 samples per bin, the
resolution is 1.0m.
The benthic survey is can be 100% completed in the remaining 90 minutes if the average
speed of 1.6m/s is maintained. However, this part of the survey requires a 40% frame-by-
frame overlap to allow photo panoramas. To achieve this, a further reduction of the AUV
speed may be needed. This is dependent on the rate at which the camera shoots. Given the
2.07m wide camera shot (assuming a square image frame) the AUV can only move
forward 1.65m between images. By knowing the camera rate, the allowable AUV speed
can be determined. For example, the MBARI IAUV’s benthic imaging camera fires every
1.8s (MBARI, 2010). If the same camera was used for this survey the AUV would have to
slow to 0.92m/s to obtain the 40% overlap, thus only achieving approximately 62%
coverage. To achieve 100% coverage at 1.6m/s, the camera must sample at about 1 shot
per second (1Hz) or greater.
JEE309: Subsea Engineering – Assignment 3
Page 6 of 14
1.4 MISSION PLAN SUMMARY
The mission plan is summarised in Table 1-1. The survey link details the path required to
turn and travel from the end of the hydrographic survey to the assumed location of the
benthic survey. Note the survey leaves 2.85 minutes to surface the AUV to a desired
location. MATLAB plots and Google Earth images of the AUV flight path for the
complete survey are provided in Figure 1-5 and Figure 1-6 respectively.
Table 1-1: Mission plan summary
Path-lines Spacing
[m] Tie-lines
Distance
[m]
Av. Speed
[m/s]
Time
[min]
Hydrographic Survey 11 54.5 2 8704 1.60 90.67
Benthic Survey
(for 100% coverage) 50 2 0 8011 1.60 83.44
Survey Link 1 - - 292 1.60 3.04
Total 17007 177.15
Figure 1-5: MATLAB plots of the complete survey plan
Figure 1-6 Google Earth images of the complete survey plan
JEE309: Subsea Engineering – Assignment 3
Page 7 of 14
2 SCENARIO 3: CHLOROPHYLL-A SURVEY
2.1 SCOPE
The Tahoe Regional Planning Agency has contracted a water column survey in Lake
Tahoe 119.955°W, 39.029°N). The survey, conducted with an AUV, aims to investigate
the spreading of a phytoplankton bloom by measuring levels of chlorophyll-a. The task
requires filtering the USBL positional data to determine the actual survey path. The
chlorophyll-a data collected along the path must then be mapped and analysed.
2.2 AUV SURVEY ROUTE
Figure 2-1 shows a MATLAB plot and a Google Earth image of the planned survey, as
well as the unfiltered USBL data and the data processed with a 10-point moving average
filter. As the images show, there was significant deviation between the planned survey
route, and the actual route undertaken. The final displacement of the AUV is north east of
the intended position. This indicates a north easterly current within this region of the lake.
Figure 2-1: AUV planned and actual survey routes presented in MATLAB (left) and Google Earth (right)
2.3 CHLOROPHYLL-A RESULTS
Figure 2-2 shows contour plots of the concentration of chlorophyll-a throughout the
surveyed region. This concentration correlates to the phytoplankton levels, which may
present a hazard to local drinking water. The plot shows maximum chlorophyll-a
concentrations of up to 0.035mg/l in the central eastern regions of the survey space. In this
particular area there is a large bloom of high concentration, trailing off to the north-
northeast. Meanwhile, concentrations to the south and west are minimised. This further
indicates the presence of currents flowing in a north-north easterly direction in this section
of Lake Tahoe.
The chlorophyll-a contour plots in Figure 2-2 are notably more refined along the survey
path. The resolution becomes poorer as the distance from the survey path increases. This is
due to the interpolation required used to resolve these regions of the plot. This is difficult
to improve without obtaining further data in these areas.
JEE309: Subsea Engineering – Assignment 3
Page 8 of 14
Figure 2-2: Concentration of chlorophyll-a presented in MATLAB (left) and Google Earth (right)
2.4 SURVEY CONCLUSIONS
This AUV survey has provided evidence of a phytoplankton bloom in Lake Tahoe using
chlorophyll-a measurements. The survey shows high levels of chlorophyll-a up to 0.35mg/l
along the eastern side of the survey area, particularly around the central to northern
regions. To better resolve the extend of the bloom, further survey is recommended to the
north and east of the original survey.
The survey also provides evidence of a north-north easterly flowing current within the
lake. This information could potentially be used to estimate the future location of the
bloom, as well as its origin.
3 REFERENCES
In text
Kongsberg. (2015). Autonomous Underwater Vehicle - HUGIN. Retrieved from Kongsberg:
http://www.km.kongsberg.com/ks/web/nokbg0240.nsf/AllWeb/B3F87A63D8E419E5C1
256A68004E946C?OpenDocument
MBARI. (2010). Benthic Imaging. Retrieved from Monterey Bay Aquarium Research Institute:
http://www.mbari.org/auv/IAUV.htm
MATLAB toolboxes and functions
Scott Lee Davis. (2012). Google Earth Toolbox. Retrieved from MATLAB Central:
http://www.mathworks.com/matlabcentral/fileexchange/12954-google-earth-toolbox
Rafael Fernandes de Oliveira. (2013). KML Toolbox v2.7. Retrieved from MATLAB Central:
http://www.mathworks.com/matlabcentral/fileexchange/34694-kml-toolbox-v2-7
Rafael Palacios. (2006). deg2utm (MATLAB function). Retrieved from MATLAB Central:
http://www.mathworks.com/matlabcentral/fileexchange/10915-deg2utm
Rafael Palacios. (2006). utm2deg (MATLAB function). Retrieved from MATLAB Central:
http://www.mathworks.com/matlabcentral/fileexchange/10914-utm2deg
Alex Forrest. (2015). binavgf (MATLAB function)
JEE309: Subsea Engineering – Assignment 3
Page 9 of 14
APPENDIX A: MATLAB CODES (SCENARIO 1)
% ========================================================================= % % JEE309: Subsea Engineering % Assignment 3 % Scenario 1 % % Stewart Allen % October 2015 % % =========================================================================
clear all close all clc addpath('googleearth','kmltoolbox v2.71','deg2utm','utm2deg')
% ------------------------------------------------------------------------- %% Setting area coordinates % -------------------------------------------------------------------------
% given location: Long = 49.663; % °E Lat = 40.253; % °N
% converting to utm: [x,y,utmz] = deg2utm(Lat,Long);
% rotation matrix: theta=-60; rot = [cosd(theta) -sind(theta); sind(theta) cosd(theta)];
% setting origin to bottom left hand corner of square % and given location to square centre point: origin = [-300; -300]; origin_rot = rot*origin;
% ------------------------------------------------------------------------- %% Boundaries % -------------------------------------------------------------------------
% setting large boundary: boundX = [0; 0; 600; 600; 0;]; boundY = [0; 600; 600; 0; 0;]; bound = [boundX'; boundY'];
bound_rot = rot*bound;
boundX_rot = x+origin_rot(1,:) + bound_rot(1,:)'; boundY_rot = y+origin_rot(2,:) + bound_rot(2,:)'; utmz_b = [utmz; utmz; utmz; utmz; utmz]; % converting back to lon/lat [lat_b,lon_b] = utm2deg(boundX_rot,boundY_rot,utmz_b);
JEE309: Subsea Engineering – Assignment 3
Page 10 of 14
% setting smaller boundary: boundX2 = [250; 250; 350; 350; 250;]; boundY2 = [250; 350; 350; 250; 250;]; bound2 = [boundX2'; boundY2'];
bound_rot2 = rot*bound2;
boundX_rot2 = x+origin_rot(1,:) + bound_rot2(1,:)'; boundY_rot2 = y+origin_rot(2,:) + bound_rot2(2,:)'; utmz_b2 = [utmz; utmz; utmz; utmz; utmz]; % converting back to lon/lat [lat_b2,lon_b2] = utm2deg(boundX_rot2,boundY_rot2,utmz_b2);
% ------------------------------------------------------------------------- %% mission path: % -------------------------------------------------------------------------
WP1 = load('waypointsV2.txt'); % waypoint matrix wpX = WP1(:,1); wpY = WP1(:,2); WP = WP1';
% rotating path: WP_rot = rot*WP;
wpX_rot = x+origin_rot(1,:) + WP_rot(1,:)'; wpY_rot = y+origin_rot(2,:) + WP_rot(2,:)';
% must have same number of points in utmzone field: n = length(wpX); for i=1:n utmzone(i,1:4)=utmz(1:4); end
% converting back to lon/lat [lat,lon] = utm2deg(wpX_rot,wpY_rot,utmzone);
% ------------------------------------------------------------------------- %% Distance and speed calculations % -------------------------------------------------------------------------
% calculating total distance: m = length(wpX); for i=1:m-1; wpDi = WP1(i:i+1,1:2); wpD(i) = pdist(wpDi,'euclidean'); end d_tot = sum(wpD) clear wpD wpDi
JEE309: Subsea Engineering – Assignment 3
Page 11 of 14
% calculating hydrographic distance: m = 52; for i=1:m-1; wpDi = WP1(i:i+1,1:2); wpD(i) = pdist(wpDi,'euclidean'); end d_hyd = sum(wpD) clear wpD wpDi
% calculating benthic distance: m = length(wpX); for i=56:m-1; wpDi = WP1(i:i+1,1:2); wpD(i-24) = pdist(wpDi,'euclidean'); end d_ben = sum(wpD)
% ------------------------------------------------------------------------- %% matlab plots % -------------------------------------------------------------------------
clf figure(1) % plotting path design plot(boundX,boundY,'k-.') hold on plot(boundX2,boundY2,'k-.') plot(wpX,wpY,'.-') axis([-25 625 -25 625]) xlabel('Displacent in x direction [m]','FontSize',12,'FontWeight','bold') ylabel('Displacent in y direction [m]','FontSize',12,'FontWeight','bold') axis equal
figure(2) % plotting rotated path in long/lat plot(lon_b,lat_b,'k-.') hold on plot(lon_b2,lat_b2,'k-.') plot(lon,lat,'.-') xlabel('Longitude [°E]','FontSize',12,'FontWeight','bold') ylabel('Latitude [°N]','FontSize',12,'FontWeight','bold') % axis equal
n = length(wpX); hydX = wpX(1:52); hydY = wpY(1:52); benX = wpX(56:n); benY = wpY(56:n); linkX = wpX(52:56); linkY = wpY(52:56);
lon_hyd = lon(1:52); lat_hyd = lat(1:52); lon_ben = lon(56:n); lat_ben = lat(56:n); lon_link = lon(52:56); lat_link = lat(52:56);
JEE309: Subsea Engineering – Assignment 3
Page 12 of 14
figure(3) % large area only plot(boundX,boundY,'k-.') hold on plot(hydX,hydY,'.-') axis([-25 625 -25 625]) set(gca,'box','on') xlabel('Displacent in x direction [m]','FontSize',12,'FontWeight','bold') ylabel('Displacent in y direction [m]','FontSize',12,'FontWeight','bold') axis equal
figure(4) % small area only plot(boundX2,boundY2,'k-.') hold on plot(benX,benY,'.-') plot(benX(1:10),benY(1:10),'r.-') axis([245 355 245 355]) set(gca,'box','on') xlabel('Displacent in x direction [m]','FontSize',12,'FontWeight','bold') ylabel('Displacent in y direction [m]','FontSize',12,'FontWeight','bold') axis equal
% ------------------------------------------------------------------------- %% .kml ge outputs % -------------------------------------------------------------------------
Large = ge_plot(lon_b,lat_b,'lineColor','60FFFFFF','lineWidth',2); Small = ge_plot(lon_b2,lat_b2,'lineColor','60FFFFFF','lineWidth',2); Hydro = ge_plot(lon_hyd,lat_hyd,'lineColor','80000080','lineWidth',2); Benthic = ge_plot(lon_ben,lat_ben,'lineColor','80000080','lineWidth',2); Link = ge_plot(lon_link,lat_link,'lineColor','80000080','lineWidth',2); a = [lon(1),lon(1)]; b = [lat(1),lat(1)]; Start = ge_plot(a,b,'description','Start Point'); a = [lon(n),lon(n)]; b = [lat(n),lat(n)]; End = ge_plot(a,b,'description','End Point'); ge_output('Scenario_1.kml',[Hydro, Benthic, Link, Start, End, Large, Small]);
JEE309: Subsea Engineering – Assignment 3
Page 13 of 14
APPENDIX B: MATLAB CODES (SCENARIO 3)
% ========================================================================= % % JEE309: Subsea Engineering % Assignment 3 % Scenario 3 % % Stewart Allen % October 2015 % % =========================================================================
clear all close all clc
addpath('googleearth','kmltoolbox v2.71','deg2utm','utm2deg')
% ------------------------------------------------------------------------- %% Loading and filtering data % -------------------------------------------------------------------------
load('A3dataset.mat');
% planned survey: LonP = A3dataset.lon_plan; LatP = A3dataset.lat_plan;
% actual survey: LonA = A3dataset.lon_usbl; LatA = A3dataset.lat_usbl;
% 10 point moving average filter: n = length(LonA); Lon = zeros(n-9,1); Lat = zeros(n-9,1); for i = 1:n-9 Lon(i,1) = sum(LonA(i:i+9))/10; Lat(i,1) = sum(LatA(i:i+9))/10; end
% ------------------------------------------------------------------------- %% Planned route vs actual route % -------------------------------------------------------------------------
clf figure(1) plot(LonP,LatP,'b','LineWidth',2) xlabel('Longitude [°W]','FontSize',12,'FontWeight','bold') ylabel('Latitude [°N]','FontSize',12,'FontWeight','bold') % axis equal hold on plot(LonA,LatA,'k') plot(Lon,Lat,'r','LineWidth',2)
JEE309: Subsea Engineering – Assignment 3
Page 14 of 14
legend('Planned survey','Actual survey','Actual survey
(filtered)','Location','NorthWest')
Planned = ge_plot(LonP,LatP,'lineColor','400000FF','lineWidth',5); Actual = ge_plot(LonA,LatA,'lineColor','60FFFFFF','lineWidth',2); Filtered = ge_plot(Lon,Lat,'lineColor','80FF0000','lineWidth',5); ge_output('Scenario_3.kml',[Planned, Actual, Filtered]);
% ------------------------------------------------------------------------- %% Chlorophyl-a data analysis % -------------------------------------------------------------------------
% bin chlorophyll data using binavgf.m function: x = A3dataset.conc_chla; d = A3dataset.timestamp_chla; binsize = 30/60/60/24; dist = A3dataset.timestamp_chla; [meanx,meand,bins] = binavgf(x,d,binsize,dist); chla = meanx;
% Contour plots nch = length(chla); chla(nch-7:nch) = []; s = Lon(2)-Lon(1); xmesh = min(Lon):s:max(Lon); ymesh = min(Lat):s:max(Lat); [X,Y] = meshgrid(xmesh,ymesh); M = TriScatteredInterp(Lon,Lat,chla); Z = M(X,Y);
figure(2); pcolor(xmesh,ymesh,Z); shading interp; hold on
plot(Lon, Lat,'k--','LineWidth',1.5); xlabel('Longitude [°W]','FontSize',12,'FontWeight','bold') ylabel('Latitude [°N]','FontSize',12,'FontWeight','bold') colormap(jet);colorbar; hcolor = colorbar; ylabel(hcolor,'Chlorophyll-a Concentration
[mg/l]','FontSize',12,'FontWeight','bold') axis equal
dz = griddata(Lon,Lat,chla,X,Y,'linear');
% ------------------------------------------------------------------------- %% Google maps outputs % -------------------------------------------------------------------------
k = kml('Scenario_3_Chloro'); k.contourf(X,Y,dz,'numberOfLevels',100); % Save the kml and open it in Google Earth k.save;