WWW - Wiki.duke - Edu/display/engineerswithoutborders: Pronounced e-RU-ma, ha-CHU-ma, and oh-BRA-haes
WWW - Wiki.duke - Edu/display/engineerswithoutborders: Pronounced e-RU-ma, ha-CHU-ma, and oh-BRA-haes
WWW - Wiki.duke - Edu/display/engineerswithoutborders: Pronounced e-RU-ma, ha-CHU-ma, and oh-BRA-haes
team from Duke University traveled to rural Bolivia for three weeks in May of 2008 to perform a site assessment for a potential bridge in the region. Data on river crossings, local materials, and demographics were collected. Other analyses and information on this project can be found on the EWB-Duke wiki: www.wiki.duke.edu/display/engineerswithoutborders This report will summarize the surveying data: collection methods and visualization techniques will be reviewed and the output plots for each site are presented. Methodology Five potential crossing points were surveyed in the Iruma, Jachuma, and Obrajes1 valleys. At each location, three lines in the riverbed perpendicular to the waters flow were marked out and surveyed with a theodolite. A cutaway view of the riverbed can be presented by assuming the data lies in a straight line. Data was taken on the riverbeds banks and referenced to a fixed benchmark so a plan view of the site could also be created. Visualization The manually-recorded data was transferred to Excel and then plotted in MATLAB. A sample data set as well as the script used to generate the plots may be viewed in the Appendix. Crosssection data was plotted twice; the fixed plots show a realistic cutaway of the riverbed by fixing the x and y scales to the same increments. The second plot enabled autoscaling to show the irregularities of the river beds floor. The plots of each site are included below. Improvements The MATLAB program does not verify the straightness of the contours; a simple linear interpolation of the x and y contour data and output of the correlation coefficient could verify this. It would be neat to be able to input a given depth at a site and see how the water fills up this cross section.
Iruma
Jachuma
Condor Chinoka
Appendix
Sample Data Set:
Obrajes One, X-Sec 1 Title 2:00pm Time Surveyors Patrick Ye (theo), Thomas Grothe (rod) Point ID BM-1 BM-2 1 2 3 4 5 6 7 8 9 10 11 12 13 Stadia Horizontal Bot Mid Top Deg Min 8.46 9.18 9.89 283 57 9.18 11.54 13.85 115 26 0.16 8.04 7.82 1.70 2.09 6.35 8.31 8.45 12.65 12.71 12.96 9.09 2.95 1.64 9.47 9.24 3.13 3.52 7.76 9.73 9.88 14.06 14.13 14.38 10.52 4.39 3.10 10.96 10.66 4.56 4.96 9.18 11.15 11.29 15.46 15.55 15.81 11.96 5.84 216 217 222 224 226 227 227 229 230 234 238 240 243 20.5 12 43.5 15 8.5 44 54.5 9.5 35 28.5 27 8 15
MATLAB plotting script % River Plotter, v5 % created by Matt Ball (mab43-at-duke-dot-edu), 03.06.08 % Excel version also worked on by Patrick Ye (ppy3) clear; clc; clf loc = input('\nfilename?\n\n'); % input file name with .xls extension and single quotes (ie 'Iruma.xls') for m=1:4 % allows plotting of all three cross sections in a given sheet sheet = input('\nsheet name?\n\n'); % input sheet name with single quotes (ie 'X-Sec 1') data = eval('xlsread(loc, sheet)'); % contour plotting calculations: for k = 1:length(data) data(k,6) = (data(k,3) - data(k,1))*100; % distance based on theodolite operation data(k,7) = (data(3,4) + data(3,5)/60) - (data(k,4) + data(k,5)/60); % relative angle in degrees, referencing the first data point data(k,8) = (data(3,6)^2 + data(k,6)^2 - 2*data(3,6)*data(k,6)*cos(data(k,7)*pi/180))^.5; % point-to-point distance using law of cosines data(k,9) = data(1,2) - data(k,2); % relative depth, referencing the first benchmark end % plan view plotting calculations: for k = 1:length(data) data(k,10) = (data(1,4) + data(1,5)/60) - (data(k,4) + data(k,5)/60); first benchmark data(k,11) = data(k,6)*cos(data(k,10)*pi/180); % x coordinate data(k,12) = data(k,6)*sin(data(k,10)*pi/180); % y coordinate end
% plotting figure(1); plot(data(3:length(data),8), data(3:length(data),9), 'k-') % plots the contour heading1 = [loc ',' ' ' sheet ' ' ',' ' ' 'auto scale']; % combines location and sheet into one string ylabel('relative depth (feet)'); eval('title(heading1)'); figure(2); plot(data(3:length(data),8), data(3:length(data),9), 'k:') heading2 = [loc ',' ' ' sheet ' ' ',' ' ' 'fixed scale']; ylabel('relative depth (feet)'); eval('title(heading2)'); axis equal % sets the tick marks to equal increments if m==1; col='b.'; elseif m==2; col='r.'; elseif m==3; col='g.'; else col='kx'; end; % mildly ridiculous color cycling scheme for the next plot figure(3); eval('plot(data(3:length(data),11), data(3:length(data),12), col)'); hold on heading3 = [loc ',' ' ' 'plan view, all units in feet']; eval('title(heading3)'); axis equal; legend('X-Sec 1', 'X-Sec 2', 'X-Sec 3', 'banks', 0) end