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

        ?

        ARCGIS中應用Python腳本進行空間數(shù)據(jù)批量處理的研究與實現(xiàn)

        2012-08-15 00:48:29河南省基礎地理信息中心
        河南科技 2012年21期
        關鍵詞:腳本語言批處理批量

        河南省基礎地理信息中心 石 晶

        河南省遙感測繪院 郭子珍

        河南省基礎地理信息中心 李小勇

        ARCGIS 是美國環(huán)境系統(tǒng)研究所ESRI(Environment system Research Institute)推出的一套完整的軟件產(chǎn)品,旨在構建完善的GIS(Geographic Information System)系統(tǒng)。

        利用ARCGIS進行空間數(shù)據(jù)執(zhí)行空間分析、建模、數(shù)據(jù)處理任務過程中,幾乎所有操作都會涉及重復的工作,例如數(shù)據(jù)格式轉(zhuǎn)換,裁切拼接,投影變換等。如果采用人工處理,效率低并且容易出錯,為了保證數(shù)據(jù)質(zhì)量,減少重復勞動,需要創(chuàng)建可自動執(zhí)行批量處理的方法。

        空間數(shù)據(jù)的地理處理是以數(shù)據(jù)變換的框架為基礎。典型的地理處理工具會在ArcGIS 數(shù)據(jù)集(如要素類、柵格或表)中執(zhí)行操作,并最終生成一個新數(shù)據(jù)集。每個地理處理工具都用于對地理數(shù)據(jù)執(zhí)行一種非常重要的小操作,例如將數(shù)據(jù)集從一個地圖投影中投影到另一個地圖投影中、向表中添加字段或在要素周圍創(chuàng)建緩沖區(qū)。在ArcGIS 中包含了數(shù)百個此類地理處理工具。

        在軟件編程領域中,語言可基本分為兩類:系統(tǒng)語言和腳本語言。系統(tǒng)語言是諸如C++和.NET,用于通過計算機的低級圖元和原始資源從底層開發(fā)應用程序。腳本語言(例如Python和Perl)用于將多個應用程序組合到一起,該語言使用計算機內(nèi)置的高級功能,回避了系統(tǒng)語言編程程序必須處理的具體細節(jié)。與系統(tǒng)語言相比,腳本語言更加易學易用,對編程有基本的了解便足以很好地使用它們。

        一、空間數(shù)據(jù)

        與空間位置有關的地理數(shù)據(jù),按組織形式分為矢量數(shù)據(jù)和柵格數(shù)據(jù)兩大類。在ARCGIS中,常用的矢量數(shù)據(jù)有:Coverage,Shapefile 和Geodatabase,這幾種都是ARCGIS 的原生數(shù)據(jù)格式,在ARCGIS中使用最多。

        二、Python簡介

        Python是一種不受局限、跨平臺的開源編程語言,它功能強大且簡單易學。因而得到了廣泛應用和支持。ArcGIS 從9.0 開始中引入了Python。此后,Python被視為可供地理處理用戶選擇的腳本語言并得以不斷發(fā)展。Python的部分優(yōu)勢為:易于學習,非常適合初學者,也特別適合專家使用;可伸縮程度高,適于大型項目或小型的一次性程序(稱為腳本);可移植,跨平臺;可嵌入(使ArcGIS可腳本化);穩(wěn)定成熟;用戶社區(qū)規(guī)模大。

        Python已延伸到ArcGIS中,成為了一種用于進行數(shù)據(jù)分析、數(shù)據(jù)轉(zhuǎn)換、數(shù)據(jù)管理和地圖自動化的語言,有助于提高工作效率。

        三、空間數(shù)據(jù)批處理

        在ARCGIS的地理處理框架中,腳本與模型都可用來創(chuàng)建新工具。模型是使用可視化編程語言(模型構建器)創(chuàng)建的;而腳本是使用基于文本的語言和文本編輯器創(chuàng)建的。和模型一樣,使用分布向?qū)韺⒛_本引入至自定義工具箱中,然后該腳本就會成為您可在模型或其他腳本中使用的另一個工具。系統(tǒng)工具中有多個都是腳本。從技術角度而言,編寫一個腳本但不將其引入工具箱,此時,該腳本便不屬于工具,而僅是磁盤上的一個獨立腳本,在PythonWin下可以運行。

        ARCTOOLBOX的“BATCH”可以進行批處理,但是如果源數(shù)據(jù)本身不在同一個文件夾下,仍然需要手動一條一條選擇,很不方便。使用PYTHON 編寫腳本進行批處理是行之有效的方法。日常中需要處理的數(shù)據(jù)目錄格式一般為:D:項目圖幅名層名。批處理時一般需要把項目名稱文件夾下所有圖幅運行一遍。

        對于批處理非常重要的一點是遍歷目錄下所有待處理數(shù)據(jù)有兩種基本的方法。

        1.利用Python現(xiàn)成的函數(shù),os模塊中walk()可以獲得一個文件夾下的所有目錄名,子目錄名,以及所有文件名。語法如下:

        for pathroot,dirnames,filename in os.walk(“D:\workspace”)

        其中pathroot 返回所有目錄的路徑名,dirnames 返回所有的子目錄名,filenames返回所有文件名。

        2.另外利用Geoprocessor Programming Model 中的Lists,語法如下:

        Import arcgisscripting

        gp=arcgisscripting.create()

        workspaces = gp.listworkspaces(“*”,“Folder”)#獲得項目名稱下的所有圖幅目錄。

        fcs=gp.ListFeatureClasses()#獲得圖幅目錄下所有要素類。

        例子1:批量裁切矢量數(shù)據(jù)。

        import arcgisscripting,sys,os

        gp =arcgisscripting.create()

        gp.workspace = sys.argv[1]#工作目錄

        clipFeatures = sys.argv[2]#用來裁切的矢量數(shù)據(jù)集

        outWorkspace = sys.argv[3]#輸出目錄

        clusterTolerance = float(sys.argv[4])#容限值

        try:

        #獲得目錄下所有數(shù)據(jù)集

        fcs = gp.ListFeatureClasses()

        #循環(huán)所有數(shù)據(jù)集

        fcs.Reset()

        fc = fcs.Next()

        while fc:

        try:

        outFeatureClass = outWorkspace+"/"+fc

        gp.Clip_analysis(fc,clipFeatures,outFeatureClass,clusterTolerance)

        fc = fcs.Next()

        except:

        fc = fcs.Next()

        except:

        gp.AddMessage(gp.GetMessages(2))

        print gp.GetMessages(2)

        例子2:多幅圖多圖層批量拼接shape數(shù)據(jù)。

        import arcgisscripting,sys,os

        gp = arcgisscripting.create(9.3)

        gp.workspace = gp.GetParameterAsText(0)

        try:

        ws = gp.workspace

        workslist = gp.listworkspaces("*","Folder")

        print workslist

        for layer in ["resa","cpta","boua","brga","hfca","hyda","lfca","lrda","rfca","tera","vega"]:

        i=0

        while i<len(workslist):

        works = workslist[i]

        out_feat_class = layer+".shp"

        if gp.exists(works+"\"+layer+".shp"):

        if not gp.exists(out_feat_class):

        gp.CreateFeatureclass(ws,layer,"POLYGON",works+"\"+layer+".

        print works+"\"+layer+".shp"

        print out_feat_class

        try:

        gp.Append_management(works+"\"+layer+".shp",out_feat_class,"NO_TEST")

        i=i+1

        except:

        i=i+1

        continue

        else:

        i=i+1

        except:

        gp.AddMessage(gp.GetMessages(2))

        print gp.GetMessages(2)

        如果用戶常用ARCTOOLBOX進行數(shù)據(jù)處理,可以將以上代碼獲得參數(shù)的語句改為gp.workspace=gp.GetParameterAsText(0),注意從“0”開始,這樣在ArcToolbox 中添加新Toolbox,在Toolbox下添加Script,指向已經(jīng)寫好的腳本文件。上述例子就可以在ARCGIS的Arctoolbox中使用。

        以上例子均在ARCGIS9.3、Python2.5 中調(diào)試通過。另外筆者還編寫了批量變換投影信息,批量按圖號分帶,批量轉(zhuǎn)換數(shù)據(jù)格式等多個腳本程序。

        綜上,Python 編寫地理批量處理工具簡捷、實用,方便解決工作中的實際問題。掌握Python對日常數(shù)據(jù)處理工作有很大幫助。

        猜你喜歡
        腳本語言批處理批量
        批量提交在配置分發(fā)中的應用
        科學家(2021年24期)2021-04-25 12:55:27
        一種面向SSC的電信增值業(yè)務的生成方法及實現(xiàn)
        基于Unity3D的坦克大戰(zhàn)游戲設計與實現(xiàn)
        淺析計算機技術在flash動畫中的應用
        淺議高校網(wǎng)銀批量代發(fā)
        基于SiPESC平臺的Python擴展模塊開發(fā)
        基于PSD-BPA的暫態(tài)穩(wěn)定控制批處理計算方法的實現(xiàn)
        基于AUTOIT3和VBA的POWERPOINT操作題自動批量批改
        考慮價差和再制造率的制造/再制造混合系統(tǒng)生產(chǎn)批量研究
        批處理天地.文件分類超輕松
        激情在线视频一区二区三区| 在线观看一级黄片天堂| 日本熟女精品一区二区三区| 免费国产在线精品一区二区三区免| 少妇高潮在线精品观看| 日韩乱码人妻无码系列中文字幕| 国产目拍亚洲精品区一区| 亚洲精品一区二区在线播放| 91精品国产综合久久久蜜臀九色| 成人黄色片久久久大全| 亚洲毛片免费观看视频| 插入日本少妇一区二区三区| 97丨九色丨国产人妻熟女| 欧美成人精品a∨在线观看| 亚洲国产精品久久人人爱| 公粗挺进了我的密道在线播放贝壳| 亚洲国产人在线播放首页| 亚洲中文字幕在线一区二区三区| 亚洲中文字幕巨乳人妻| h动漫尤物视频| 最新国产成人自拍视频| 日本岛国一区二区三区四区| 日韩亚洲无吗av一区二区| 一边摸一边抽搐一进一出口述| 18禁黄污吃奶免费看网站| 2021久久精品国产99国产精品| 亚洲国产综合精品 在线 一区| 久久精品国产热| 激情一区二区三区视频| 91乱码亚洲精品中文字幕| 19款日产奇骏车怎么样| 国产亚州精品女人久久久久久| 成年女人黄小视频| 女同久久精品国产99国产精品| 精品国产亚洲一区二区三区演员表 | 伊人青青草综合在线视频免费播放| 精品国产午夜肉伦伦影院| 国产精品99无码一区二区| 欧美怡红院免费全部视频| 欧美大香线蕉线伊人久久| 青草蜜桃视频在线观看|