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慎用你的語言
主站蜘蛛池模板: 精品一区二区无码av| 亚洲毛片一级带毛片基地| 日韩成人在线视频| 日韩亚洲综合在线| 国产一区二区影院| 国产精品视频猛进猛出| 午夜啪啪网| 伊人久久大线影院首页| 91色国产在线| 99热在线只有精品| 日韩欧美中文字幕在线精品| 日韩精品高清自在线| 国产视频入口| 18禁黄无遮挡免费动漫网站| 国产麻豆福利av在线播放| 日本一本正道综合久久dvd| 无码免费的亚洲视频| 久久精品嫩草研究院| 亚洲欧美在线看片AI| 精品乱码久久久久久久| 日本午夜网站| 亚洲丝袜第一页| 亚洲国产成熟视频在线多多| 国产精品天干天干在线观看| 国产成人综合在线视频| 欧美日韩第二页| JIZZ亚洲国产| 不卡网亚洲无码| 91免费国产高清观看| 一区二区日韩国产精久久| 伦精品一区二区三区视频| 99久久精品免费视频| 99热这里只有精品国产99| 亚洲黄色高清| 欧美成人一级| 性色生活片在线观看| 亚洲第一在线播放| 中文字幕免费播放| 欧美区一区| 欧美日韩国产在线观看一区二区三区| 欧美午夜网| 欧洲免费精品视频在线| 91探花在线观看国产最新| 婷婷色丁香综合激情| 就去吻亚洲精品国产欧美| 国产精品久久自在自2021| 日韩欧美中文字幕在线精品| 波多野结衣中文字幕一区| 亚洲成人www| 国产一区二区三区免费观看| 日本尹人综合香蕉在线观看 | 国产亚洲精品97AA片在线播放| 99视频精品全国免费品| 国产亚洲欧美另类一区二区| 久久一日本道色综合久久 | 精品人妻无码区在线视频| 亚洲精品卡2卡3卡4卡5卡区| 国产精品99在线观看| 成人亚洲天堂| 日本三区视频| 中文字幕日韩视频欧美一区| 欧美另类图片视频无弹跳第一页| 久久香蕉欧美精品| 日本国产精品| 亚洲中文字幕在线一区播放| 日韩av电影一区二区三区四区| 国产成人91精品免费网址在线| 国产精品欧美日本韩免费一区二区三区不卡| 日韩在线播放欧美字幕| 亚洲 日韩 激情 无码 中出| 国产va欧美va在线观看| 99久久精品免费观看国产| 青青草一区| 久久青草视频| 国产www网站| 色爽网免费视频| 欧洲成人免费视频| 亚洲欧美日韩中文字幕在线| 欧美区一区| 精品伊人久久久久7777人| 香蕉在线视频网站| 99在线观看国产|