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

        ?

        基于VBA實現(xiàn)設(shè)計點位編號和坐標提取

        2014-06-27 03:28:20馮偉華陳恩科張隨安李懷敏
        物探化探計算技術(shù) 2014年2期
        關(guān)鍵詞:單元格點位菜單

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

        (1.陜西省地質(zhì)調(diào)查中心, 西安 710014;2.陜西省地礦局 區(qū)域地質(zhì)礦產(chǎn)研究院, 咸陽 712000)

        0 前言

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

        1 坐標提取[1]

        1.1 改變點屬性結(jié)構(gòu)

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

        1.2 點位置賦屬性

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

        1.3 導出點屬性

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

        2 填寫樣品編號

        2.1 樣品編號規(guī)則[2]

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

        圖1 設(shè)計采樣點位圖及點位賦屬性窗口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語言及重點函數(shù)介紹

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

        2.3 數(shù)據(jù)存儲

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

        2.4 程序流程

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

        2.5 主要程序編碼及說明

        Sub 編碼()

        Dim ZRow As Long

        ′總行數(shù)

        Dim STx, Endx As Long

        ′定義起始、結(jié)束

        單元格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數(shù)

        據(jù)的總行數(shù)

        For n = 0 To Zh

        ′一重循環(huán)控制行

        For m = 0 To Zl

        ′二重循環(huán)控制列

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

        圖3 數(shù)據(jù)存儲格式說明Fig.3 Shows the data storage format

        Num = 0

        ′Num,記錄該基本單元格內(nèi)

        設(shè)計樣點數(shù)

        Fricode = Fricode + p

        ′Fricode,記錄

        一級編碼值,順序編碼

        p = 0

        For i = 2 To ZRow

        ′順序遍歷Excel數(shù)據(jù)

        Dqx = Cells(i, 2).Value

        ′獲取x坐標

        Dqy = Cells(i, 3).Value

        ′獲取y坐標

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

        ′數(shù)據(jù)滿足該單元格的條件

        p = 1

        ′一級編碼加1

        AA(Num) = i

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

        Num = Num + 1

        。。。。。。。。

        ′判斷二級編碼值

        Cells(j, 5).Value = Fricode

        ′將該單元格內(nèi)點位數(shù)據(jù)復制到第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

        ′用雙重循環(huán)確定該

        單元格內(nèi)Num個樣點的三級編碼值

        。。。。。。。。

        Next b

        ZRow = ZRow - Num

        For e = Num - 1 To 0 Step -1

        ′在原Excel數(shù)據(jù)中由后

        向前刪除已編碼的Num個數(shù)據(jù)。

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

        Next e

        Next m

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

        Next n

        ′開始提取下一行,第一個單元格的數(shù)據(jù)

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

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

        End Sub

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

        3 程序運行

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

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

        4 說明

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

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

        5 結(jié)論

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

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

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

        參考文獻:

        [1] 中國地質(zhì)調(diào)查局發(fā)展研究中心,數(shù)字填圖用戶操作指南[M].北京:中國地質(zhì)調(diào)查發(fā)展中心,2000.

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

        [3] Excel VBA 基礎(chǔ)教程[EB/OL]互聯(lián)網(wǎng)百度文庫.

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

        猜你喜歡
        單元格點位菜單
        1年期國債收益率跌至1%
        銀行家(2025年1期)2025-02-08 00:00:00
        機器人快速示教方法及示教點位姿變換的研究
        玩轉(zhuǎn)方格
        玩轉(zhuǎn)方格
        中國新年菜單
        淺談Excel中常見統(tǒng)計個數(shù)函數(shù)的用法
        西部皮革(2018年6期)2018-05-07 06:41:07
        本月菜單
        美食堂(2017年1期)2017-01-13 01:37:42
        垂直面內(nèi)建立基線的特殊點位高程測量法
        一個“公海龜”的求偶菜單
        鴨綠江(2013年10期)2013-03-11 19:41:55
        2013年全國將建成440余個國家空氣監(jiān)測點位
        久久婷婷五月综合色欧美| 久久久亚洲日本精品一区| 久久一区二区视频在线观看| 久久婷婷五月综合色高清| 国产精品无码av天天爽| 精品无码久久久九九九AV| 国产一级黄片久久免费看| 亚洲天堂一区av在线| 成人三级a视频在线观看| 狼友AV在线| 国产精品成年人毛片毛片| 日韩乱码人妻无码系列中文字幕| 女人被爽到呻吟gif动态图视看| 在线观看无码一区二区台湾| 精品国产夫妻自拍av| 99久久免费视频色老| 亚洲男人的天堂网站| 久久久综合九色合综国产| 国产精品老女人亚洲av无| 大肉大捧一进一出好爽视频动漫| 国产精品无码一区二区三区免费| 国产精品欧美韩国日本久久| 成人影院视频在线播放| 精品人妻大屁股白浆无码| 久久精品久久久久观看99水蜜桃| www久久久888| 自拍视频在线观看首页国产| 国产性生交xxxxx无码| 99精品成人片免费毛片无码| 男女啦啦啦视频在线观看| 欧美v国产v亚洲v日韩九九| 亚洲欧洲无码一区二区三区| 亚洲中出视频| 阴唇两边有点白是怎么回事| 日韩av东京社区男人的天堂| 国产成人77亚洲精品www| 久久精品国产亚洲av试看| 久久久亚洲av波多野结衣| 久草热8精品视频在线观看| 在线观看中文字幕一区二区三区| 亚洲久悠悠色悠在线播放|