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

ARCGIS中應用Python腳本進行空間數據批量處理的研究與實現

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

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

河南省遙感測繪院 郭子珍

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

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

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

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

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

一、空間數據

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

二、Python簡介

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

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

三、空間數據批處理

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

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

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

1.利用Python現成的函數,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:批量裁切矢量數據。

import arcgisscripting,sys,os

gp =arcgisscripting.create()

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

clipFeatures = sys.argv[2]#用來裁切的矢量數據集

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

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

try:

#獲得目錄下所有數據集

fcs = gp.ListFeatureClasses()

#循環所有數據集

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數據。

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進行數據處理,可以將以上代碼獲得參數的語句改為gp.workspace=gp.GetParameterAsText(0),注意從“0”開始,這樣在ArcToolbox 中添加新Toolbox,在Toolbox下添加Script,指向已經寫好的腳本文件。上述例子就可以在ARCGIS的Arctoolbox中使用。

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

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

猜你喜歡
語言
詩之新,以語言創造為基
中華詩詞(2023年8期)2023-02-06 08:51:28
語言是刀
文苑(2020年4期)2020-05-30 12:35:30
讓語言描寫搖曳多姿
多向度交往對語言磨蝕的補正之道
累積動態分析下的同聲傳譯語言壓縮
日常語言與播音語言
新聞傳播(2016年10期)2016-09-26 12:15:04
語言技能退化與語言瀕危
我有我語言
論語言的“得體”
語文知識(2014年10期)2014-02-28 22:00:56
Only Words慎用你的語言
主站蜘蛛池模板: 亚洲a免费| 色亚洲成人| 亚洲第一视频区| 欧美一区二区精品久久久| 1769国产精品视频免费观看| 美女被操黄色视频网站| 伊人成人在线| 好紧太爽了视频免费无码| 亚洲精品不卡午夜精品| 中文字幕中文字字幕码一二区| 中文字幕在线欧美| 欧美另类一区| 日本国产精品| 国产情侣一区| 亚洲一道AV无码午夜福利| 国产精品福利社| 中文字幕无码av专区久久| 欧美特级AAAAAA视频免费观看| 97综合久久| 中文字幕资源站| 午夜丁香婷婷| 成年午夜精品久久精品| 国产精品视频导航| 亚洲乱码精品久久久久..| 亚洲福利一区二区三区| 一级一毛片a级毛片| 国内精品久久九九国产精品| 国产va欧美va在线观看| 国产欧美精品一区二区| 亚洲免费三区| 久久香蕉国产线| 丝袜国产一区| 国内精品久久人妻无码大片高| 四虎在线高清无码| 久久精品人人做人人| 狠狠做深爱婷婷综合一区| 亚洲天堂视频网| 五月婷婷激情四射| 免费aa毛片| 成年片色大黄全免费网站久久| 老司国产精品视频91| 亚洲中文字幕97久久精品少妇| 国产乱人视频免费观看| 91av成人日本不卡三区| 制服丝袜在线视频香蕉| 亚洲欧洲日韩综合色天使| 欧美亚洲激情| 欧美精品v| 国产精品永久在线| 超清无码一区二区三区| 真人高潮娇喘嗯啊在线观看| 国产成人盗摄精品| 乱人伦视频中文字幕在线| 毛片视频网| 波多野吉衣一区二区三区av| 久久频这里精品99香蕉久网址| a毛片免费在线观看| 午夜天堂视频| 91口爆吞精国产对白第三集| 欧美日本在线一区二区三区| 欧美三级视频在线播放| 91黄视频在线观看| 99精品福利视频| 亚洲人成在线精品| 4虎影视国产在线观看精品| 国产成人91精品免费网址在线| 精品免费在线视频| 国产69精品久久久久孕妇大杂乱 | 国产成人av一区二区三区| 久久精品女人天堂aaa| 久久精品国产国语对白| lhav亚洲精品| 国产真实乱子伦视频播放| 国产精品极品美女自在线| 精品国产一区91在线| 2020久久国产综合精品swag| 88国产经典欧美一区二区三区| 欧美翘臀一区二区三区| 国产制服丝袜91在线| 制服丝袜在线视频香蕉| 国产精品永久在线| 亚洲人成网站日本片|