999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于VBA實現設計點位編號和坐標提取

2014-06-27 03:28:20馮偉華陳恩科張隨安李懷敏
物探化探計算技術 2014年2期
關鍵詞:程序設計

馮偉華, 陳恩科, 張隨安, 李懷敏

(1.陜西省地質調查中心, 西安 710014;2.陜西省地礦局 區域地質礦產研究院, 咸陽 712000)

0 前言

在1∶50 000、1∶200 000化探采樣中,一般根據設計采樣點位圖人工量取設計點位坐標,再用GPS導航采取樣品。作者詣在探討利用計算機實現設計采樣點位坐標的自動提取和填寫樣品編號,以提高野外生產效率和工作精度。坐標提取用MapGis軟件來實現,樣品編號用VBA語言編程實現,作者重點介紹用VBA編程填寫樣品編號的方法、流程。

1 坐標提取[1]

1.1 改變點屬性結構

圖1為一張經過校正的標準位置的的1∶50 000采樣點位設計圖,采樣點文件為“設計采樣點位.wt”點文件。選擇“設計采樣點位”點文件,為編輯狀態。選擇“點編輯—編輯屬性結構”菜單。選擇插入項,字段名稱輸入X,字段類型長整形,字段長度“8”,小數位數“0”,再插入一項,字段名稱輸入Y,其他同上,完成后點擊“OK”選項,退出Mapgis。

1.2 點位置賦屬性

利用數字填圖軟件打開設計采樣點位圖。選擇“設計采樣點位”點文件,為編輯狀態。選擇PRB數據操作-PRB-R過程計算與點坐標重寫菜單見圖1,點擊點坐標寫入。退出菜單,選擇修改點屬性結構,查看坐標寫入狀況(圖1),查看點屬性,坐標已寫入屬性,x為6位數據、y為7位數據,退出數字填圖。

1.3 導出點屬性

打開MapGIS程序,選擇投影變換窗口。選擇“工具-屬性生成文本文件”菜單,填寫輸出的文本文件的名稱,見圖2設置各項,完成屬性輸出。輸出的文本文件有三項數據,ID號、X、Y。將文本文件轉換為Excel格式,以備后續編寫采樣點編號使用。

2 填寫樣品編號

2.1 樣品編號規則[2]

在1∶50 000化探中,樣品編號分為三步:首先將圖幅范圍以縱橫坐標,整公里方里網為界距劃分為1 km2基本單元格,由左到右,由上到下依次順序編號;再將每個1 km2基本單元格,以x、y500 m間距等分為四個0.25 km2小單元格,順時針編號為a、b、c、d;在每個小單元格內按x坐標由小到大依次編號a1、a2等。因此一個樣品編號(例1031a2)由三部分組成:一級編號(基本單元格號,1031)+二級編號(小單元格編號,a)+三級編號(2)。

圖1 設計采樣點位圖及點位賦屬性窗口Fig.1 Map of design of sampling point and window of point site to attribute

圖2 屬性輸出窗口Fig.2 Output window of attributes

2.2 宏、VBA語言及重點函數介紹

“宏”是一些存儲了一系列命令的程序,用戶通過“宏”功能來創建命令程序,使應用程序自動化。 Visual Basic for Applications(VBA)是Visual Basic的一種宏語言,主要能用來擴展Windows的應用程序(Excel、Word等)功能,使應用程序自動化[3]。VBA語言可直接對Excel數據單元格和行、列進行操作,不必另行轉換數據格式和定義二維數組存儲數據,數據運算簡便,運行速度高。本次編程涉及的VBA語言主要的方法、屬性簡要說明如表1所示。

2.3 數據存儲

原始點位數據以Excel形式存儲(圖3),第一行為標題行,A列、B列為設計點位坐標存儲位置,A列為x值,B列為y值。C列到G列為程序運算過程中數據中間存儲位置,C列為一級編碼、D列為二級編碼、E列為三級編碼、F列、G列為對應的點位坐標。三級編碼完成后,A列、B列為空值,整列刪除,C列到E列合并為一列,為樣品編號列,見圖3右邊為數據處理結束后存儲格式。

2.4 程序流程

將整個采樣點位看做分布于m行n列基本單元格內縱坐標由大到小,橫坐標由小到大有序排列的二維數據陣,用雙重循環控制,循環遍歷全部數據。根據樣點坐標與起始編碼坐標的差值尋依次找第m行n列,第k個單元格內的點位數據;根據x坐標y坐標的后三位值確定二級編碼值;一個單元格內點位數據提取完后,再次遍歷該單元格內點位數據,確定三級編碼值;一個單元格內數據完成編碼后,將該單元格內的點位數據復制到其他列并從原數據中刪除,以提高程序后續運行速度,程序流程見圖4。

2.5 主要程序編碼及說明

Sub 編碼()

Dim ZRow As Long

′總行數

Dim STx, Endx As Long

′定義起始、結束

單元格x、y

Dim STy, Endy As Long

Dim Zh, Zl As Integer

′定義基本單元格的

總行,總列

Dim rng1 As Range

Fricode = 1

′一級編碼賦初始值“1 ”

Set rng1 = ActiveCell.CurrentRegion

ZRow = rng1.Rows.Count

′獲取Excel數

據的總行數

For n = 0 To Zh

′一重循環控制行

For m = 0 To Zl

′二重循環控制列

表1 主要的方法、屬性簡要說明[4]

圖3 數據存儲格式說明Fig.3 Shows the data storage format

Num = 0

′Num,記錄該基本單元格內

設計樣點數

Fricode = Fricode + p

′Fricode,記錄

一級編碼值,順序編碼

p = 0

For i = 2 To ZRow

′順序遍歷Excel數據

Dqx = Cells(i, 2).Value

′獲取x坐標

Dqy = Cells(i, 3).Value

′獲取y坐標

If (Dqx - STx) 1000 = m And (STy - Dqy) 1000 = n Then

′數據滿足該單元格的條件

p = 1

′一級編碼加1

AA(Num) = i

′AA( )數組記錄滿足條件的數據行號,以備后續刪除該行數據

Num = Num + 1

。。。。。。。。

′判斷二級編碼值

Cells(j, 5).Value = Fricode

′將該單元格內點位數據復制到第j行8、9列;5,6列賦一、二級編碼值。

Cells(j, 6).Value = Secode

Cells(j, 8).Value = Dqx

Cells(j, 9).Value = Dqy

Next i

For b = 1 To Num

′用雙重循環確定該

單元格內Num個樣點的三級編碼值

。。。。。。。。

Next b

ZRow = ZRow - Num

For e = Num - 1 To 0 Step -1

′在原Excel數據中由后

向前刪除已編碼的Num個數據。

Range("A" & AA(e) & ":C" & AA(e)).Delete shift:=xlUp

Next e

Next m

′該單元格數據操作完成,開始提取該行下一個單元格的數據

Next n

′開始提取下一行,第一個單元格的數據

Range("A:B").Delete shift:=xlLe

′全部編碼完成后,刪除1-2列空白列。

End Sub

圖4 程序流程圖Fig.4 Flow chart of the program

3 程序運行

以四幅1∶50 000設計采樣點位圖為例,共設計采樣點位11 721個,提取的點位坐標如圖5所示。打開工具菜單,執行宏命令(圖5),彈出程序界面, 輸入工作區范圍、基本單元格間距,開始執行程序。完成全部編號需15 min左右。

圖5 程序運行界面Fig.5 Interface of program running

4 說明

(1)在提取設計點位坐標時,所使用的設計采樣點位圖必須是經校正標準位置的圖幅,提取的坐標x為6位、y為7位。

(2)程序中輸入的起始、結束X、 Y為整公里值,基本單元間距單位為公里。

5 結論

(1)VBA語言針對Excel宏編程,語法簡單,運算簡便,運行效率高。

(2)程序的通用性較強,適用于 1∶50 000、 1∶200 000 等不同比例尺化探。

(3)該方法應用于實際生產,可有效地改善野外生產的精度,提高工作效率。

參考文獻:

[1] 中國地質調查局發展研究中心,數字填圖用戶操作指南[M].北京:中國地質調查發展中心,2000.

[2] DZ/TO 167-2006區域地球化學勘查規范[S].北京:中國標準出版社,2006.

[3] Excel VBA 基礎教程[EB/OL]互聯網百度文庫.

[4] Excel VBA語法辭典[M].北京:機械工業出版社,2010.

猜你喜歡
程序設計
何為設計的守護之道?
現代裝飾(2020年7期)2020-07-27 01:27:42
《豐收的喜悅展示設計》
流行色(2020年1期)2020-04-28 11:16:38
試論我國未決羈押程序的立法完善
人大建設(2019年12期)2019-05-21 02:55:44
瞞天過海——仿生設計萌到家
藝術啟蒙(2018年7期)2018-08-23 09:14:18
失能的信仰——走向衰亡的民事訴訟程序
“程序猿”的生活什么樣
設計秀
海峽姐妹(2017年7期)2017-07-31 19:08:17
有種設計叫而專
Coco薇(2017年5期)2017-06-05 08:53:16
英國與歐盟正式啟動“離婚”程序程序
環球時報(2017-03-30)2017-03-30 06:44:45
創衛暗訪程序有待改進
中國衛生(2015年3期)2015-11-19 02:53:32
主站蜘蛛池模板: 91高清在线视频| 91网站国产| 国产精品尤物在线| 国产成人高清精品免费软件 | 国产精品xxx| 国产精品2| 在线看片中文字幕| 幺女国产一级毛片| 一级一级一片免费| 欧美激情福利| 亚洲黄色视频在线观看一区| 久久精品电影| 成人一级免费视频| 国产日韩丝袜一二三区| 一级爆乳无码av| 国产精品免费p区| 亚洲无码日韩一区| 永久免费无码成人网站| 国产呦精品一区二区三区下载| 思思99热精品在线| 毛片免费高清免费| 午夜视频免费一区二区在线看| 国产69囗曝护士吞精在线视频| 中文字幕调教一区二区视频| 青青草原国产| 乱系列中文字幕在线视频| 国产成人亚洲综合a∨婷婷| 91精品国产一区| 欧美日韩国产精品综合| 国产特级毛片aaaaaaa高清| 夜夜高潮夜夜爽国产伦精品| 91系列在线观看| 亚洲第一成年网| 97青草最新免费精品视频| 无码乱人伦一区二区亚洲一| 久久婷婷六月| 国产精品主播| 免费又爽又刺激高潮网址| 久久频这里精品99香蕉久网址| 精品黑人一区二区三区| 国产99视频在线| 亚洲视频无码| 国产成人无码播放| 老司机精品一区在线视频| 色哟哟国产精品一区二区| 日韩欧美中文在线| 亚洲无码日韩一区| 五月天丁香婷婷综合久久| 香蕉99国内自产自拍视频| 免费jizz在线播放| 永久免费无码成人网站| 色综合久久无码网| 国产精品九九视频| 国产在线精品人成导航| 日韩精品毛片人妻AV不卡| 天天操天天噜| 精品国产网| 久久99久久无码毛片一区二区| 国产高清无码麻豆精品| 国产伦片中文免费观看| 国产亚洲精久久久久久久91| 亚洲天堂精品在线| 亚洲视频四区| 欧美国产日韩在线观看| 中国一级毛片免费观看| 国产自在线拍| 欧美国产日韩在线观看| 欧美亚洲日韩中文| 国产高潮流白浆视频| 大香伊人久久| 无码精品福利一区二区三区| 青草精品视频| 亚洲欧美一级一级a| 99精品伊人久久久大香线蕉| 亚洲国内精品自在自线官| 午夜性刺激在线观看免费| 国产91小视频在线观看| 亚洲成人高清无码| 成人国产小视频| 国产亚洲精| 色综合久久综合网| 国产成人毛片|