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慎用你的語言
主站蜘蛛池模板: 亚洲人成影视在线观看| 暴力调教一区二区三区| 亚洲国产精品无码久久一线| 免费无码网站| 人人91人人澡人人妻人人爽 | 亚洲欧美日韩另类在线一| 美女扒开下面流白浆在线试听 | 国产精品毛片一区视频播| 欧美色图久久| 亚洲性日韩精品一区二区| 亚洲精品国偷自产在线91正片| 老熟妇喷水一区二区三区| 亚洲成人网在线观看| 色男人的天堂久久综合| 国模在线视频一区二区三区| 97在线公开视频| 国产丝袜第一页| 成人精品免费视频| 中文字幕欧美日韩高清| 久草视频精品| 99久久精品国产麻豆婷婷| 97色伦色在线综合视频| 欧美黑人欧美精品刺激| 四虎永久在线| 国产国产人免费视频成18| 青青极品在线| 最新国产高清在线| 亚洲日韩Av中文字幕无码| 欧美日本在线| 一级毛片免费观看不卡视频| 黑人巨大精品欧美一区二区区| 久久婷婷人人澡人人爱91| 国产精品人成在线播放| 国产精品手机在线播放| 亚洲欧洲日韩综合色天使| 久久久成年黄色视频| 婷婷色一二三区波多野衣| 99re经典视频在线| 九九热精品免费视频| 亚洲第一网站男人都懂| 乱人伦中文视频在线观看免费| 男女精品视频| 91九色视频网| 亚洲精品国产成人7777| 亚洲性日韩精品一区二区| 精品国产Av电影无码久久久| 国产高清精品在线91| 在线中文字幕网| 日韩精品无码不卡无码| 色婷婷亚洲综合五月| 国产小视频a在线观看| 国产第一福利影院| 久久精品人人做人人综合试看| 无码一区二区三区视频在线播放| 色爽网免费视频| 91在线国内在线播放老师| 天天摸天天操免费播放小视频| 国产欧美视频在线观看| 国产精品久久久久久搜索| 丁香五月婷婷激情基地| 免费高清a毛片| 伦伦影院精品一区| 日韩黄色在线| аv天堂最新中文在线| 国产成人精品在线| 男女男精品视频| 亚洲av综合网| 亚洲精品欧美重口| 欧美午夜小视频| 久久综合国产乱子免费| 91无码视频在线观看| 亚洲AV一二三区无码AV蜜桃| 精品无码国产一区二区三区AV| 国产精品极品美女自在线看免费一区二区| 亚洲成a人片77777在线播放| 国产成人1024精品下载| 色成人综合| 亚洲系列中文字幕一区二区| 高潮毛片免费观看| 亚洲视频欧美不卡| 日韩成人免费网站| 亚洲色欲色欲www网|