function mapper = plotter(data) %------------------------------------------------------------------------------------------ %************************** SUBROUTINE DESCRIPTION PLOTTER.m ****************************** % PLOTTER.m is a subroutine of CAVEMAP.m and not designed to stand alone. It plots the % output data from CONVERT.m displaying the survey line through the cave system and % cross-sectional transect lines depicting conduit widths at each survey sataion. %------------------------------------------------------------------------------------------ %****************************** DETERMINING SIZE OF INPUT DATA **************************** [row,col] = size(data); %------------------------------------------------------------------------------------------ %******************************** EXTRACTING NECESSARY DATA ******************************* x = data(:,2); y = data(:,3); xrtw = data(:,8); yrtw = data(:,9); xltw = data(:,10); yltw = data(:,11); count = 1; %------------------------------------------------------------------------------------------ %********************************* SETTING MAX AND MIN VALUES ***************************** xm = 0; ym = 0; for i = 1:row if x(i) ~= -999.9 xm = [xm x(i) xrtw(i) xltw(i)]; ym = [ym y(i) yrtw(i) yltw(i)]; end end if max(xm) > 1000 xmax = (round((max(xm) + 50) / 100)) * 100; xmin = (round((min(xm) - 50) / 100)) * 100; ymax = (round((max(ym) + 50) / 100)) * 100; ymin = (round((min(ym) - 50) / 100)) * 100; num = 100; end if min(xm) < -1000 xmax = (round((max(xm) + 50) / 100)) * 100; xmin = (round((min(xm) - 50) / 100)) * 100; ymax = (round((max(ym) + 50) / 100)) * 100; ymin = (round((min(ym) - 50) / 100)) * 100; num = 100; else xmax = (round((max(xm) + 5) / 10)) * 10; xmin = (round((min(xm) - 5) / 10)) * 10; ymax = (round((max(ym) + 5) / 10)) * 10; ymin = (round((min(ym) - 5) / 10)) * 10; num = 10; end %------------------------------------------------------------------------------------------ %********************************* PLOTTING GRID LINES ************************************ gridchk = input(' Do you want to plot finely spaced grid lines? [Y/N] ','s'); if isempty(gridchk) gridchk = 'Y'; end if gridchk == 'y' gridchk = 'Y'; end if gridchk == 'Y' figure axis([xmin xmax ymin ymax]) zoom on hold on step =0; for i = xmin:num:xmax step = step + num; xinc = xmin + step; xvert = [xinc xinc]; yvert = [ymin ymax]; plot(xvert,yvert,'w') xvert = 0; yvert = 0; end step = 0; for i = ymin:num:ymax step = step + num; yinc = ymin + step; xhorz = [xmin xmax]; yhorz = [yinc yinc]; plot(xhorz,yhorz,'w'); xhorz = 0; yhorz = 0; end else figure axis([xmin xmax ymin ymax]) grid on zoom on hold on end %------------------------------------------------------------------------------------------ %************************************ PLOTTING DATA *************************************** for i = 1:row if x(i) ~= -999.9 xx(count) = x(i); yy(count) = y(i); xwall = [xrtw(i) xltw(i)]; ywall = [yrtw(i) yltw(i)]; plot(xwall,ywall) plot(xrtw,yrtw,'c.') plot(xltw,yltw,'m.') count = count + 1; else plot(xx,yy,'b') xx = 0; yy = 0; count = 1; end end %------------------------------------------------------------------------------------------ %******************************* END SUBROUTINE PLOTTER.m *********************************