亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于Auto CAD VBA獲取河長的研究

        2014-12-25 02:06:30成麗婷
        山西水利科技 2014年2期
        關(guān)鍵詞:河長水文分段

        成麗婷

        (山西省水利水電勘測(cè)設(shè)計(jì)研究院 山西太原030024)

        1 問題提出

        水文流域參數(shù)是進(jìn)行各項(xiàng)水文分析計(jì)算的基礎(chǔ)數(shù)據(jù),這些參數(shù)的快速準(zhǔn)確的獲取直接影響到水文分析計(jì)算的效率與精度。研究簡單易行的水文流域參數(shù)的獲取方法,不僅可以保證參數(shù)的準(zhǔn)確性,為后續(xù)的水文分析計(jì)算工作提供可靠的數(shù)據(jù),而且大大縮短了基礎(chǔ)性工作的耗時(shí),為后續(xù)的核心工作預(yù)留出寶貴的時(shí)間。尤其是在一些大型水利工程的前期工作中,往往涉及到成百上千個(gè)區(qū)域的水文參數(shù)的獲取,若依靠現(xiàn)在的一些技術(shù)和方法,效率和精度上很難兼顧。

        河長比降J是基本的水文流域參數(shù),河流縱比降[1]的計(jì)算還需要獲取分段河長,計(jì)算公式如下:

        式中,L為自流域出口斷面起沿主河道至分水嶺的最長距離,包括主河道以上溝形不明顯部分坡面流程的長度,當(dāng)河道上有瀑布、跌坎、陡坡時(shí),應(yīng)當(dāng)把突然變動(dòng)比降段兩端的特征點(diǎn),都作為計(jì)算加權(quán)平均比降時(shí)的分段點(diǎn),以使計(jì)算的比降反映沿程實(shí)際的水力條件,km;Z0、Z1…Zn為自流域出口斷面起沿流程比降突變特征點(diǎn)的地面高程,m;L1、L2…Ln為兩個(gè)特征值點(diǎn)之間的距離,km;L 為 L1、L2…Ln之和,見圖1。

        圖1 河流縱比降計(jì)算示意圖

        基于1:10000或1:50000地形圖計(jì)算比降,Z0、Z1…Zn需要人工讀取,L1、L2…Ln數(shù)值通過Auto CAD獲取。隨著計(jì)算機(jī)技術(shù)的發(fā)展和繪圖軟件Auto CAD[2]在水文技術(shù)行業(yè)的廣泛應(yīng)用,水文流域參數(shù)的獲取變得簡單易行,而且相比之前具有以下優(yōu)勢(shì):第一,再現(xiàn)性好,拼接完畢的圖紙,勾勒的分水嶺,繪制的河流等等數(shù)據(jù)都可以保存下來,可以隨時(shí)查閱和校核;第二,消除了讀數(shù)誤差;第三,操作方便等等。即便如此,筆者在工作中量取河長計(jì)算比降的過程中發(fā)現(xiàn)傳統(tǒng)的Auto CAD功能依然存在不足,尤其數(shù)據(jù)量大時(shí),河長的獲取相當(dāng)繁瑣耗時(shí)。但VBA[3](Visual Basic for Applications)應(yīng)用軟件集成于Auto CAD以后,上述問題迎刃而解。本研究以Windows XP,Auto CAD和VBA為開發(fā)環(huán)境,研制了獲取河長參數(shù)軟件,并進(jìn)行了實(shí)例應(yīng)用,以期為水文分析的參數(shù)獲取提供可靠簡便的操作方法,更是希望拋磚引玉,充分應(yīng)用Auto CAD和VBA開發(fā)平臺(tái)解決水文工作中的問題。

        2 VBA的應(yīng)用

        VBA(Visual Basic for Application)是一種完全面向?qū)ο篌w系結(jié)構(gòu)的編程語言,提供了一個(gè)基于對(duì)象的編程環(huán)境,具有豐富的開發(fā)功能,能直接在Auto CAD內(nèi)部執(zhí)行,開發(fā)者能夠方便地替換和添加Auto CAD系統(tǒng)內(nèi)部的模塊。在VBA中,Auto CAD中的實(shí)體作為對(duì)象而存在,對(duì)這些實(shí)體的操作作為方法,編制處理過程或宏命令,從而實(shí)現(xiàn)了開發(fā)者進(jìn)入到Auto CAD內(nèi)部進(jìn)行用戶化處理[4]。由于VBA依附于主應(yīng)用程序,因此它與主應(yīng)用程序之間的通信簡單而富有效率,其代碼完全是在進(jìn)程內(nèi)部執(zhí)行的。

        應(yīng)用VBA獲取河長的步驟:

        (1)建立選擇集作為放置圖形元素的容器;

        (2)運(yùn)用Select方法[5]選取圖形對(duì)象,select方法具有5種選擇方式,可以選擇全部對(duì)象、上次創(chuàng)建的對(duì)象、上次選擇的對(duì)象、矩形窗口內(nèi)對(duì)象、矩形窗口內(nèi)以及與邊界相交的對(duì)象;

        (3)運(yùn)用Selectonscreen方法讓用戶手動(dòng)選擇對(duì)象,如同在Auto CAD中選取對(duì)象一樣,可以逐一選取,也可以用窗口選取。如果需要有條件地選擇對(duì)象,比如選擇所有的多段線等,需要為Selectonscreen方法增加過濾器參數(shù),通過過濾器可以從所選取的圖形對(duì)象中篩選出某一類特定的圖形對(duì)象;

        (4)選擇集過濾后所得到的圖形對(duì)象屬性數(shù)據(jù)的輸出。

        3 實(shí)例應(yīng)用

        Auto CAD批量獲取各相鄰高程點(diǎn)之間的距離,即分段河長,有3種方法,本文以一簡單例子對(duì)上述三種方法進(jìn)行對(duì)比。例子中提到的長度是指Auto CAD中量取的圖上距離未利用比例尺轉(zhuǎn)化為實(shí)際距離。

        (1)方法一,借助多段線直接繪制自流域出口斷面起沿主河道至分水嶺的最長河長L,由于河道是曲折蜿蜒的,所以在點(diǎn)繪兩相鄰高程點(diǎn)之間河長時(shí)需要放置多個(gè)點(diǎn),繪制河長L共放置49個(gè)點(diǎn),見圖2。利用“工具”—“查詢”—“列表顯示”,顯示結(jié)果中包含了河長L中所有點(diǎn)的X、Y坐標(biāo)值,表1中僅列出部分?jǐn)?shù)據(jù)。首先利用勾股定理分別計(jì)算相鄰兩點(diǎn)之間長度,然后分組計(jì)算各相鄰高程點(diǎn)之間的河長。高程點(diǎn)Z0與Z1區(qū)間,即相對(duì)應(yīng)于河長L1,共包含8個(gè)點(diǎn),1-8點(diǎn)區(qū)間距離之和11.7mm即河長L1;高程點(diǎn)Z1與Z2區(qū)間,即相對(duì)應(yīng)于河長L2,共包含5個(gè)點(diǎn),9-13點(diǎn)區(qū)間距離之和8.03mm即河長L2。以此類推可獲取各相鄰高程點(diǎn)之間的河長。這種方法只繪制一條多段線,為順應(yīng)河道走勢(shì)需布設(shè)多個(gè)點(diǎn),為獲取分段河長需在各高程點(diǎn)處布設(shè)點(diǎn),而且需在布設(shè)點(diǎn)的同時(shí)記錄好每個(gè)點(diǎn)屬于哪個(gè)分段河長區(qū)間,然后將點(diǎn)進(jìn)行分組,分別獲取各組多段線長度之和,才能與各個(gè)高程區(qū)間的河長一一對(duì)應(yīng)。

        (2)方法二,逐一繪制相鄰高程點(diǎn)之間河長 L1、L2…Ln,共繪制8條多段線,見圖3。然后選中全部多段線,利用“工具”—“查詢”—“列表顯示”,顯示結(jié)果中分塊顯示不同河長的諸多屬性特征,見圖4。除了長度特征外,還包含了圖層、線型、面積等特征,獲取長度信息只能通過人工篩選并手工錄入到EXCEL中。這種方法繪制n條多段線,CAD命令輸出的是每條多段線的諸多信息,只能通過人工篩選長度信息并手工錄入EXCEL中,n越大,人工篩選和手工錄入的工作量就越大,不僅如此,在手工錄入大量數(shù)據(jù)時(shí)為避免錄入數(shù)據(jù)錯(cuò)誤還需進(jìn)行多次數(shù)據(jù)復(fù)核。

        (3)方法三,逐一繪制相鄰高程點(diǎn)之間河長 L1、L2…Ln,共繪制8條多段線,見圖2。應(yīng)用VBA,編制宏,實(shí)現(xiàn)2個(gè)功能,其一建立選擇集作為一容器,經(jīng)這個(gè)容器過濾后選擇集中只保留多段線對(duì)象;其二,輸出上述選擇集中多段線的長度信息。然后只需運(yùn)行宏,選中全部多段線,即可將各個(gè)高程區(qū)間的河長數(shù)據(jù)直接輸出到EXCEL中。

        圖2 方法一示意圖

        圖3 方法二、三示意圖

        圖4 方法二結(jié)果示意圖

        以上可看出,方法一直接點(diǎn)繪整段河長L,獲得49個(gè)點(diǎn)的X、Y坐標(biāo),計(jì)算出各相鄰兩點(diǎn)之間的距離,對(duì)49個(gè)點(diǎn)進(jìn)行分組與高程區(qū)間一一對(duì)應(yīng),即得出分段河長值;方法二、方法三分段繪制河長L1、L2…L8,分別通過人工錄入、VBA輸出數(shù)據(jù)到EXCEL中。方法一和方法三都避免了人工錄入數(shù)據(jù),但方法一需要人工對(duì)數(shù)據(jù)進(jìn)行分組;方法二與方法三思路基本一致,但在數(shù)據(jù)整理輸出時(shí),方法二通過人工篩選錄入數(shù)據(jù)方式,而方法三簡單易行,實(shí)現(xiàn)了將Auto CAD圖形相對(duì)應(yīng)的屬性數(shù)據(jù)直接輸出到EXCEL中。從表1可以看出三種方法所獲取的結(jié)果完全一致,但方法三大大提高了工作效率,尤其是在數(shù)據(jù)量大時(shí)優(yōu)勢(shì)更為突出。

        表1 三種方法獲取分段河長結(jié)果表

        4 結(jié)論

        VBA(Visual Basic for Application),具有豐富的開發(fā)功能,能直接在Auto CAD內(nèi)部執(zhí)行,從而實(shí)現(xiàn)了開發(fā)者進(jìn)入到Auto CAD內(nèi)部進(jìn)行用戶化處理。本文基于VBA研制出在Auto CAD中獲取河長軟件,克服了傳統(tǒng)方法依賴人工、不能實(shí)現(xiàn)Auto CAD與EXCEL數(shù)據(jù)的快捷與直接傳遞的缺陷,應(yīng)用實(shí)例對(duì)此方法與傳統(tǒng)方法進(jìn)行比較,通過比較得出,VBA實(shí)現(xiàn)了批量將河長數(shù)據(jù)快速直接地導(dǎo)入EXCEL,提高了工作效率。

        [1]山西省水利廳.山西省水文計(jì)算手冊(cè) [M].鄭州:黃河水利出版社.2011.3

        [2]李善鋒主編.Auto CAD2012中文版基礎(chǔ)教程[M].北京:人民郵電出版社.2012.9

        [3]張帆主編.Auto CAD VBA二次開發(fā)教程[M].北京:清華大學(xué)出版社.2006.1

        [4]陳 亮.基于VBA的堤防CAD系統(tǒng)研究與開發(fā)[D].華南理工大學(xué)碩士學(xué)位論文.2004:6-7

        [5]喬平安主編.Visual Basic6.0程序設(shè)計(jì)[M].北京:人民郵電出版社.2013.2

        猜你喜歡
        河長水文分段
        2022年《中國水文年報(bào)》發(fā)布
        一類連續(xù)和不連續(xù)分段線性系統(tǒng)的周期解研究
        水文
        水文水資源管理
        河長制推行中法律問題探討
        山西省省內(nèi)主要河流河長調(diào)整公示
        山西水利(2019年4期)2019-02-14 14:27:22
        分段計(jì)算時(shí)間
        從法律視角看“河長制”對(duì)水污染防治的作用
        水文
        圖說河長制
        河北水利(2016年12期)2017-01-04 01:11:37
        色婷婷久久精品一区二区| 国产精品网站夜色| 国产三级黄色的在线观看| 亚洲av高清不卡免费在线| 日韩av午夜在线观看| 99热久久这里只精品国产www| 色系免费一区二区三区| 中文字幕视频一区懂色| 中文在线中文a| 吃奶摸下的激烈视频| 亚洲国产成人精品激情| 男人天堂插插综合搜索| 国产激情一区二区三区| 处破痛哭a√18成年片免费| 91精品国产高清久久久久| 伊人久久大香线蕉av不变影院| 亚洲中文字幕久久精品无码a | 自拍视频在线观看成人| 加勒比东京热中文字幕| 亚洲av成人无码精品电影在线| 日韩在线观看你懂的| 玖玖资源网站最新网站| 久久无码高潮喷水抽搐| 中文字幕你懂的一区二区| 亚洲人不卡另类日韩精品| 51国偷自产一区二区三区| 91性视频| 看国产亚洲美女黄色一级片| 免费观看交性大片| 国产亚洲精久久久久久无码77777 丝袜足控一区二区三区 | 久久亚洲私人国产精品va| 国产一区二区激情对白在线| 亚洲国产天堂av成人在线播放 | 老鲁夜夜老鲁| 欧美天欧美天堂aⅴ在线| 人妻无码人妻有码不卡| 中文字幕亚洲一二三区| 久久久亚洲精品无码| 人妻丰满熟妇av无码区hd| 亚洲国产精品av麻豆一区| 国产欧美一区二区精品久久久 |