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慎用你的語言
主站蜘蛛池模板: 97se亚洲综合在线韩国专区福利| 国产精品xxx| 亚洲欧美成人综合| 亚洲美女久久| 91娇喘视频| 欧美高清国产| 欧美日韩在线亚洲国产人| 国产精品真实对白精彩久久| 免费国产高清精品一区在线| 欧美成人看片一区二区三区| 亚洲欧美国产高清va在线播放| 高清色本在线www| 精品国产Av电影无码久久久| 四虎永久在线精品国产免费| 在线观看精品自拍视频| 久久综合一个色综合网| 自拍偷拍欧美日韩| 亚洲欧洲日韩久久狠狠爱| 久久综合色视频| 国产精女同一区二区三区久| 欧美亚洲综合免费精品高清在线观看| 呦女精品网站| 午夜一级做a爰片久久毛片| 亚洲一级毛片| 亚洲全网成人资源在线观看| 自拍偷拍一区| 亚洲国产精品美女| 深爱婷婷激情网| 免费aa毛片| 69国产精品视频免费| 99视频在线免费观看| 国产成人区在线观看视频| 国产熟女一级毛片| 97青草最新免费精品视频| 日韩一区精品视频一区二区| 国产欧美日韩综合在线第一| 91九色视频网| 2020最新国产精品视频| 国产成人久视频免费| 亚洲欧洲日产国码无码av喷潮| 激情综合图区| 最近最新中文字幕免费的一页| 亚洲三级影院| 精品亚洲麻豆1区2区3区| 蜜臀AV在线播放| 亚洲精品免费网站| 波多野结衣无码视频在线观看| 蜜桃视频一区| 欧美一级大片在线观看| 亚洲最大情网站在线观看| 毛片基地美国正在播放亚洲| 亚洲天堂视频网站| 美女无遮挡拍拍拍免费视频| 亚洲人成网站在线播放2019| 国产亚洲欧美日本一二三本道| 亚洲一区网站| 老汉色老汉首页a亚洲| 黄色一及毛片| 亚洲va欧美ⅴa国产va影院| 亚洲一区二区约美女探花| 日本伊人色综合网| 精品久久久久久成人AV| 亚洲人人视频| 又粗又硬又大又爽免费视频播放| 国产一区二区三区在线观看免费| 精品少妇人妻无码久久| 99久久精品视香蕉蕉| 精品色综合| 日韩欧美国产精品| 精品国产中文一级毛片在线看| 亚洲精品国产成人7777| 国产精品jizz在线观看软件| 日韩精品无码不卡无码| 国内精自线i品一区202| 亚洲欧美在线综合一区二区三区| 亚洲第七页| 成人a免费α片在线视频网站| 91青草视频| 国产女人综合久久精品视| 亚洲午夜天堂| 青青国产视频| 少妇精品网站|