孫曉輝+徐紅霞
摘 要:對(duì)垂直于路線中線方向的地面高低所進(jìn)行的測(cè)量工作稱(chēng)為橫斷面測(cè)量。橫斷面圖是確定河道橫向施工范圍、計(jì)算土石方數(shù)量的必要資料,所以橫斷面圖的繪制顯得尤為重要。MATLAB可以提供強(qiáng)大的圖形編輯功能,不僅能繪制幾乎所有的標(biāo)準(zhǔn)圖形,而且其表現(xiàn)形式也是豐富多樣的。文中探討利用MATLAB軟件繪制河道橫斷面的方法,實(shí)踐證明這是一種簡(jiǎn)單易行、易操作的方法。
關(guān)鍵詞:MATLAB;橫斷面圖;繪制
中圖分類(lèi)號(hào):TV222.1 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1006—7973(2018)2-0073-04
1 MATLAB軟件介紹
人們很難從一大堆原始的數(shù)據(jù)中發(fā)現(xiàn)它們的含義,而數(shù)據(jù)圖形恰能使視覺(jué)感官直接感受到數(shù)據(jù)的許多內(nèi)在本質(zhì),發(fā)現(xiàn)數(shù)據(jù)的內(nèi)在聯(lián)系。MATLAB提供強(qiáng)大的圖形編輯功能,既可以繪制多種圖形,還可以對(duì)圖形進(jìn)行修飾。不僅能繪制幾乎所有的標(biāo)準(zhǔn)圖形,而且其表現(xiàn)形式也是豐富多樣的。在面向?qū)ο蟮膱D形設(shè)計(jì)基礎(chǔ)上,使得用戶(hù)可以用來(lái)開(kāi)發(fā)測(cè)繪專(zhuān)業(yè)的專(zhuān)用圖形。
MATLAB有兩類(lèi)繪圖命令,一類(lèi)是直接對(duì)圖形句柄進(jìn)行操作的底層繪圖命令,另一類(lèi)是在底層命令的基礎(chǔ)上建立起來(lái)的高層繪圖命令。高層繪圖命令簡(jiǎn)單明了、方便高效。利用高層命令,用戶(hù)只需給出一些基本參數(shù)就能繪制出所需圖形。本文就是利用高層命令和橫斷面測(cè)量的數(shù)據(jù)進(jìn)行三維橫斷面圖的繪制。
在測(cè)量領(lǐng)域中,人們經(jīng)常面臨一個(gè)解析函數(shù)描述數(shù)據(jù)(通常是測(cè)量值)的任務(wù)。對(duì)于這個(gè)問(wèn)題可以應(yīng)用插值法解決,在插值法里,數(shù)據(jù)假定是正確的,要求以某種方法描述數(shù)據(jù)點(diǎn)之間所發(fā)生的情況。擬合也是數(shù)據(jù)優(yōu)化的一種方法,在測(cè)量中數(shù)據(jù)不夠多時(shí)經(jīng)常用這種方法來(lái)畫(huà)圖。繪制橫斷面圖時(shí)應(yīng)用插值、曲面擬合的方法可以很直觀的顯現(xiàn)出河道,這樣有利于橫斷面的分析。而且在MATLAB中可以很好的利用三維數(shù)據(jù)進(jìn)行曲面的插值、擬合。
2 橫斷面圖的測(cè)量及數(shù)據(jù)的準(zhǔn)備
2.1 工程概況
臨商河為臨邑縣東部主要排澇河道,自南向北流入德惠新河。自臨商河流入臨邑縣境內(nèi)開(kāi)始至王書(shū)干溝以北500m處約1公里河道與邢家渡引黃干渠并行。
本次測(cè)量全程9365m,起點(diǎn)為王書(shū)干溝以南550m處,終點(diǎn)為臨商河流出臨邑縣境處。測(cè)道右岸的支溝只對(duì)其河底高程、底寬和開(kāi)口寬度進(jìn)行了測(cè)量。在文中取前3000m的測(cè)量點(diǎn)繪制橫斷面圖。
2.2 橫斷面測(cè)量過(guò)程
長(zhǎng)期以來(lái),如何快速準(zhǔn)確地進(jìn)行河道橫斷面測(cè)量一直是困擾測(cè)量人員的一個(gè)難題。過(guò)去進(jìn)行橫斷面測(cè)量的方法包括:花桿皮尺法(適用于:山區(qū)低等級(jí)公路,精度低)、經(jīng)緯儀視距法(適用于:地形復(fù)雜地區(qū),精度較高)、水準(zhǔn)儀皮尺法(水準(zhǔn)尺測(cè)高差,皮尺丈量平距,適用于:地形簡(jiǎn)單地區(qū),精度高)等?,F(xiàn)在一般都用全站儀、GPS等先進(jìn)儀器。這次德州市臨商河橫斷面圖的測(cè)量采用GPS和水準(zhǔn)測(cè)量相結(jié)合的方法,這種水準(zhǔn)儀與GPS相結(jié)合的測(cè)量方法速度快、測(cè)量數(shù)據(jù)也符合工程規(guī)范要求。
2.2.1 測(cè)量準(zhǔn)備
橫斷面測(cè)量是一項(xiàng)十分關(guān)鍵的工作,為此成立了專(zhuān)職的測(cè)量小組,由具備測(cè)量專(zhuān)業(yè)執(zhí)業(yè)資格和多年施工工作經(jīng)驗(yàn)的測(cè)量技術(shù)人員負(fù)責(zé),測(cè)量過(guò)程按照規(guī)范要求進(jìn)行并留有記錄。測(cè)量過(guò)程中按前進(jìn)方向分成左右兩側(cè),分側(cè)測(cè)量橫斷面方向上各邊坡點(diǎn)間(或至中樁)的平距及高差,平距及高差的精度要求一般為0.1m。
2.2.2 測(cè)量?jī)x器
測(cè)量中投入使用的測(cè)量?jī)x器如:GPS、水準(zhǔn)儀和塔尺等都符合規(guī)范的測(cè)量精度要求,并經(jīng)過(guò)有關(guān)主管部門(mén)批準(zhǔn)的具有資質(zhì)的檢驗(yàn)單位的檢測(cè),并在檢測(cè)有效期內(nèi)使用。所有測(cè)量?jī)x器使用前都得到了工程師的批準(zhǔn)。
2.2.3 測(cè)量過(guò)程
(1)河道橫斷面中樁的放樣。根據(jù)設(shè)計(jì)的線路坐標(biāo)進(jìn)行GPS中樁放樣。傳統(tǒng)的中樁放樣是采用全站儀(測(cè)距儀配合經(jīng)緯儀)進(jìn)行放樣。本次測(cè)量使用GPS-RTK技術(shù)進(jìn)行中樁放樣,GPS-RTK技術(shù)為橫斷面測(cè)量提供了便利,橫斷面斷面測(cè)量前,在手簿上可采用坐標(biāo)放樣的方法設(shè)定理論中樁的坐標(biāo)。數(shù)據(jù)采集時(shí),放樣點(diǎn)將實(shí)時(shí)顯示在手簿屏幕上,并提示偏離中樁的坐標(biāo)差,以便操作員糾正放樣點(diǎn)位到中樁上。
(2)河道橫斷面點(diǎn)的測(cè)量。橫斷面點(diǎn)的測(cè)量使用水準(zhǔn)儀測(cè)量,在中樁上安置水準(zhǔn)儀,橫斷面點(diǎn)上放置塔尺,讀出上絲、中絲、下絲的讀數(shù),進(jìn)而算出距離中樁的距離差,根據(jù)中樁的高程得到橫斷面點(diǎn)的高程。測(cè)量過(guò)程中在河道兩岸分別有一個(gè)操作員攜帶塔尺進(jìn)行立尺,同時(shí)在數(shù)據(jù)的讀取過(guò)程中要檢查數(shù)據(jù)的正確性,使數(shù)據(jù)符合規(guī)范。如果數(shù)據(jù)不符合規(guī)范要進(jìn)行重測(cè)。
(3)河道橫斷面點(diǎn)水下高程的測(cè)量。在已知水面高程的情況下,利用測(cè)深錘進(jìn)行河道底部的高程的測(cè)量,測(cè)量要進(jìn)行兩次測(cè)量,取兩次測(cè)量結(jié)果的平均值作為河道底部橫斷面點(diǎn)的高程。
2.2.4 資料整理與測(cè)量核實(shí)
測(cè)量成果資料(包括觀測(cè)記錄、放樣記錄)、圖表(包括橫斷面圖、計(jì)算資料)進(jìn)行了統(tǒng)一編號(hào),妥善保管。對(duì)所有觀測(cè)數(shù)據(jù),都是隨測(cè)隨記,沒(méi)有轉(zhuǎn)抄、偽造。橫斷面測(cè)量完畢后進(jìn)行了數(shù)據(jù)的檢驗(yàn),所有數(shù)據(jù)符合規(guī)范,可以用于橫斷面圖的繪制及其面積的計(jì)算。
2.3 橫斷面測(cè)量數(shù)據(jù)的處理
測(cè)量數(shù)據(jù)經(jīng)過(guò)EXCEL的處理,得到了橫斷面點(diǎn)距離中樁的距離及其高程,整理到hdm.xls一個(gè)表格,部分截圖如圖1所示:
3 橫斷面圖的繪制
3.1 基于MATLAB的橫斷面圖的繪制
利用MATLAB編寫(xiě)代碼繪制橫斷面,在繪制的過(guò)程中主要的命令為plot3(x,y,z),這個(gè)命令是根據(jù)點(diǎn)的三維數(shù)據(jù)繪制出立體圖。其主要代碼為:
%提取里程點(diǎn)EXCEL文件,把文件儲(chǔ)存在MATLAB的一個(gè)矩陣中
a=xlsread('C:\Users\laosan\Desktop\hdm','sheet1');endprint
%提取橫斷面的里程
a1=a(:,1);
%提取橫斷面距離中樁的距離
a2=a(:,2);
%提取橫斷面點(diǎn)的高程
a3=a(:,3);
%畫(huà)出橫斷面
plot3(a1,a2,a3,'-.r*');
Title('橫斷面');
xlabel('里程')
ylabel('距離中樁的距離');
zlabel('高程');
% 繪制格網(wǎng)
grid on;
所畫(huà)的圖像為圖2:
利用MATLAB圖形窗口的Rotote 3D命令從各個(gè)角度觀察橫斷面的立體圖:
沿著垂直于橫斷面的中軸方向觀看得到圖3和圖4:
3.2 cass成圖
在cass中選擇“工程應(yīng)用一生成里程文件一由縱斷面線生成一新建”,自動(dòng)彈出“由縱斷面生成里程文件”對(duì)話框,設(shè)置各種參數(shù),生成橫斷面線。還需要對(duì)橫斷面線進(jìn)行編輯,包括橫斷面的序號(hào)、位置、長(zhǎng)度等。
在地形圖上,沿橫斷面線依次確定各個(gè)地物、地貌特征點(diǎn)的坐標(biāo)、高程,選擇“工程應(yīng)用一高程點(diǎn)生成數(shù)據(jù)文件一有編碼高程點(diǎn)”,輸入文件名,生成坐標(biāo)數(shù)據(jù)文件,保存為“xxx.dat”格式。編輯坐標(biāo)數(shù)據(jù)文件。主要修改每條橫斷面在縱斷面上的里程,橫斷面的序號(hào)。
選擇“工程應(yīng)用一繪制斷面圖一根據(jù)里程文件”,輸入里程文件名稱(chēng),根據(jù)實(shí)際需要,設(shè)置各種參數(shù),生成每條橫斷面的斷面圖。
利用cass生成的橫斷面圖截圖為圖5~圖7:
通過(guò)MATLAB與cass繪制的橫斷面圖對(duì)比可以看出,兩者之間形似度非常大,而且MATLAB繪制的橫斷面圖中的高程、里程及其距離都是根據(jù)測(cè)量數(shù)據(jù)得出來(lái)的,所以這種方法可以應(yīng)用在橫斷面圖的繪制。
3.3 三維擬合曲面的繪制
為了更形象地顯示橫斷面,可以利用三維坐標(biāo)以及數(shù)據(jù)插值、曲面擬合的方法擬合出橫斷面的三維彩色圖,其主要的MATLAB代碼為:
function hengduanmianhuatu
clf;
clear;
clc;
%提取里程點(diǎn)EXCEL文件
a=xlsread('C:\Users\laosan\Desktop\0200','sheet1');
%提取橫斷面的里程
x=a(:,1);
%提取橫斷面距離中樁的距離
y=a(:,2);
z=a(:,3);
%散點(diǎn)圖
scatter3(x,y,z);
figure;
%插值
[X,Y,Z]=griddata(x,y,z,linspace(min(x),max(x))',linspace(min(y),max(y)),'v4');
%偽彩色圖
pcolor(X,Z,Y);
shading interp;
title('橫斷面?zhèn)尾噬珗D');
xlabel('里程')
zlabel('距離中樁的距離');
ylabel('高程');
%等高線圖
figure,contourf(X,Z,Y);
title('橫斷面等高線圖');
xlabel('里程')
zlabel('距離中樁的距離');
ylabel('高程'%擬合的三維曲面');
figure,surf(X,Y,Z);
title('橫斷面');
xlabel('里程')
ylabel('距離中樁的距離');
zlabel('高程');
運(yùn)行程序得到的圖像為圖8~圖11:
注釋?zhuān)旱雀呔€圖本來(lái)是一條閉合的曲線,但是由于每一個(gè)中樁有好幾個(gè)碎部點(diǎn),并且在處理和繪制圖像的過(guò)程中進(jìn)行了插值和擬合,所以導(dǎo)致等高線并不是以一條閉合曲線的形式呈現(xiàn)的。圖中峰值和低谷值是每一個(gè)橫斷面中最高的高程和最低的高程值。
4 結(jié)論
本文探討了基于MATLAB的河道橫斷面的繪制,通過(guò)對(duì)比CASS繪制的橫斷面,發(fā)現(xiàn)這是一種可行的方法。并且為了更直觀的顯示河道橫斷面,利用橫斷面點(diǎn)的三維數(shù)據(jù)進(jìn)行了橫斷面的擬合,得出了其三維曲面圖。但是在該文中還有許多缺點(diǎn),由于時(shí)間的關(guān)系,并沒(méi)有利用MATLAB進(jìn)行橫斷面面積的計(jì)算,不能從面積這一方面驗(yàn)證理論的正確性。endprint