?

基于Python的ArcGIS批量地圖輸出方法

2016-10-21 16:04劉桂英
科技與企業 2016年9期
關鍵詞:批量圖層模塊

劉桂英

【摘要】在ArcGIS地理信息系統開發過程中,經常需要將地圖按照一定的屬性和比例要求導出為相應圖片。一般情況下我們會選擇直接使用ArcGIS工具箱直接導出圖片,但當我們需要導出多張圖片時,就顯得非常麻煩,本文介紹了一種解決反復勞動的簡單方法,使用Python制作批量地圖輸出小工具。

【關鍵詞】Python;arcgis;arcpy;地圖輸出

引言

在基于ArcGIS的地理信息系統的開發中,經常需要將地圖按照一定的屬性和比例要求導出為相應圖片。一般情況下我們會選擇直接使用ArcGIS工具箱直接導出圖片,但當我們需要導出多張圖片時,就顯得非常麻煩。然而ArcGIS提供了多種編程接口和類庫,可以讓我們方便地自己定制各種2次開發地理信息系統和工具。ArcGIS有提供C#,JAVA等傳統語言的AO接口,還有提供VB和Python這類解析性語言的接口。AO接口過于復雜,適用于用來二次開發GIS系統,而用來制作小型輔助工具有點大材小用;VB將近淘汰邊緣,而且新版本ArcGIS默認不支持,需要安裝;所以我們選擇了Python作為小工具制作的輔助語言。

Python是一種不受局限的、跨平臺的開源編程,屬于解析性腳本語言。Python具有腳本語言中最豐富和最強大的類庫,而且能把其他語言制作的各種模塊輕松地聯結在一起。Python非常簡單易學,開發效率極高。

1.arcpy簡介

arcpy是ArcGIS的一個Python包,包含對地圖操作和地圖代數的支持,支持編輯處理和幾何操作。Python已經與ArcGIS高度集成,方便實現GIS的各種處理流程。

2.實現方法

實現將mxd文件批量地圖輸出需要做兩次遍歷才能把所有地圖輸出。如圖1所示,首先遍歷mxd文件目錄中的mxd文件,然后將每個文件中所包含的圖層遍歷出來。獲取每個圖層后,需要先將圖層開啟顯示,然后調用arcpy庫的方法將圖層輸出成JPG文件,完成后關閉該圖層,最后遍歷完畢地圖也輸出完畢。

2.1導入arcpy庫

在Python中操作使用ArcGIS的功能,必須先導入ArcGIS提供的Python類庫arcpy。arcpy庫是ArcGIS產品自帶的,不需要額外安裝。導入方法是:

import arcpy

2.2遍歷子目錄

在Python中,內置了一個非常簡單目錄遍歷方法os.walk()。該函數會返回一個三元tupple(dirpath, dirnames, filenames) ,其中第一個為起始路徑,第二個為起始路徑下的文件夾,第三個是起始路徑下的文件。然后利用for循環進行遍歷。

2.3圖層遍歷

在地圖文檔(.mxd)中一般包含很多圖層,我們需要將每個圖層都輸出成JPG圖片,這樣就需要對圖層的遍歷。arcpy庫提供了一套完整的制圖模塊庫arcpy.mapping,該模塊庫主要是用于操作現有地圖文檔(.mxd)和圖層文件(.lyr)的內容。遍歷圖層需要用到arcpy提供的一個方法arcpy.mapping.ListLayers(arcpy.mapping),該方法返回一個包含所有圖層對象的Python list,然后我們就可以用Python遍歷list的方法遍歷圖層。

2.4輸出JPG格式的地圖

arcpy庫還提供自動執行導出和打印的函數。這里就是使用了一個導出JPG格式的函數ExportToJPEG。

3.結束語

本文介紹了一種利用Python對ArcGIS批量地圖輸出的方法,通過程序可以看到Python程序非常整合和簡潔,合理利用Python和arcpy庫會對GIS開發效率提高極大的幫助。

參考文獻

[1]ArcGIS10.1 help.

[2]朱道強,關海濤.Python在ArcGIS中的應用 [J]. 測繪與空間地理信息, 2013, 36(7): 152-154.

[3]邵保華,田學志.基于Python的Arcgis地理處理應用研究 [J]. 林業勘查設計, 2012, (2).

基金項目

湛江市科技攻關計劃項目

基金編號:2013B01145

猜你喜歡
批量圖層模塊
Module 2 Highlights of My Senior Year
Module 4 Music Born in America
批量提交在配置分發中的應用
為《飛舞的空竹龍》加動感
批量下載自己QQ空間上的相冊
以假亂真窺探濕玻璃后的風景
與眾不同“跳出”畫面更個性
必修模塊相關知識過關訓練
重塑批量集中采購
隨心所欲制作逼真陰影效果
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合