亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于Python的ArcGIS林業(yè)專題圖批量生成方法

        2018-04-14 03:20:38楊明星徐天蜀施銳平岳彩榮
        關(guān)鍵詞:格網(wǎng)天然林批量

        楊明星,徐天蜀,施銳平,岳彩榮

        (1.西南林業(yè)大學(xué) 林學(xué)院,昆明650224; 2.屏邊縣林業(yè)局,云南 屏邊661200)

        引言

        在林業(yè)建設(shè)中,經(jīng)常需要批量生成林相圖、森林資源分布圖、林地征占用圖等林業(yè)專題圖,以便直觀的顯示森林面積、林種、齡級(jí)等多項(xiàng)林分因子的空間分布狀況,體現(xiàn)規(guī)劃設(shè)計(jì)的思想,它們是林業(yè)生產(chǎn)、科研和經(jīng)營(yíng)管理不可或缺的基礎(chǔ)資料,也是各類森林資源調(diào)查、林業(yè)規(guī)劃設(shè)計(jì)成果的重要圖面材料[1-2]。ArcGIS提供了豐富的地理處理工具,經(jīng)常用于林業(yè)專題圖的生產(chǎn)制作。有時(shí)由于工作需要,一次要制作成百上千幅的林業(yè)專題圖,如何借助ArcGIS軟件,實(shí)現(xiàn)批量生產(chǎn),對(duì)于從事GIS和林業(yè)工作的相關(guān)工作者而言,具有重要意義。本文以天然林停伐保護(hù)實(shí)施方案專題圖制作為例,介紹基于Python語言來批量生成林地專題圖的方法。

        1 Python和Arcpy簡(jiǎn)介

        1.1 Python

        Python是1989年由荷蘭人Guido van Rossum開發(fā)的,1991年發(fā)布第一版Python,現(xiàn)在已經(jīng)發(fā)展到3.7版本。目前,Python開源社區(qū)具有大量活躍的用戶,一起參與到Python的維護(hù)與發(fā)展之中。Python是一種具有:簡(jiǎn)單易學(xué)、免費(fèi)開源、可移植性,以及跨平臺(tái)、可擴(kuò)展、面向?qū)ο蟮忍攸c(diǎn)的解釋性程序語言,憑借其獨(dú)有特點(diǎn)日漸成為程序設(shè)計(jì)領(lǐng)域時(shí)下最流行的編程語言[3]。據(jù)IEEE Spectrum雜志發(fā)布的2018年年度頂級(jí)編程語言交互排行榜,Python高居首位,連續(xù)兩年位于榜單榜首。隨著人工智能、大數(shù)據(jù)等領(lǐng)域的崛起,Python會(huì)更加的火爆。

        1.2 ArcPy

        Python的諸多特點(diǎn)也促使它被選擇作為ArcGIS主要支持的腳本語言,在ArcGIS地理處理框架中占據(jù)重要地位,與ArcGIS平臺(tái)達(dá)到了完美的融合與集成,用它來編寫腳本程序?qū)⒋蟠筇嵘龜?shù)據(jù)處理效率,更好的解決批量生產(chǎn)、實(shí)現(xiàn)地理處理自動(dòng)化[4]。Python具有豐富的庫和站點(diǎn)包,用于開展不同的工作。ArcGIS自從9.0版本后,集成了基于Python語言的ArcPy模塊包,它提供了大量類和函數(shù),支持柵格數(shù)值計(jì)算和幾何圖形編輯,以簡(jiǎn)潔高效的方式實(shí)現(xiàn)地理數(shù)據(jù)管理、轉(zhuǎn)換、分析和地圖自動(dòng)化創(chuàng)建等地理數(shù)據(jù)處理功能。利用ArcPy可調(diào)用地理處理工具以及其他函數(shù)、類和模塊,從而創(chuàng)建簡(jiǎn)單或復(fù)雜空間數(shù)據(jù)處理工具[5]。

        ArcPy由數(shù)據(jù)訪問模塊(arcpy.da)、制圖模塊(arcpy.mapping)、網(wǎng)絡(luò)分析模塊(arcpy.na)及空間分析模塊(arcpy.sa)等一系列模塊支持,幾乎可以完成ArcGIS工具箱中所有的地理處理(Geoprocessing)工具的功能。制圖模塊主要用于對(duì)地圖文檔(.mxd)和圖層文件(.lyr)進(jìn)行相關(guān)處理。

        2 林地專題圖制作流程與步驟

        2017年,云南省開展天然商品林停伐保護(hù)工作,著手編制縣級(jí)實(shí)施方案。方案中需要制作大量的專題圖件,比例尺要求1:25000。對(duì)于一個(gè)林業(yè)大縣,方案專題圖的數(shù)量可以達(dá)到上百幅,這將帶來巨大的工作量,借助ArcGIS軟件,將其功能靈活的組合應(yīng)用,能夠提高地圖編制的效率,節(jié)省出圖時(shí)間,實(shí)現(xiàn)快速制圖[6]。

        天然林停伐保護(hù)專題圖有4類,即天然林停伐保護(hù)規(guī)劃圖、天然林資源分布圖、天然林管護(hù)責(zé)任區(qū)示意圖和天然林管護(hù)設(shè)計(jì)圖,都需保存工程和導(dǎo)出地圖。每幅圖都應(yīng)有詳細(xì)的地圖要素,如圖名、比例尺、指北針及各項(xiàng)繪圖因子;地圖注記要清晰、整潔,線條粗細(xì)均勻、著墨飽滿、無斷線;整圖設(shè)計(jì)須規(guī)范美觀,內(nèi)容布設(shè)協(xié)調(diào),著色和標(biāo)注要美觀大方實(shí)用,具體要求見操作細(xì)則[7]。

        2.1 數(shù)據(jù)準(zhǔn)備

        數(shù)據(jù)準(zhǔn)備階段包括收集空間數(shù)據(jù)和屬性數(shù)據(jù)。空間數(shù)據(jù)分為柵格數(shù)據(jù)和矢量數(shù)據(jù),柵格數(shù)據(jù)主要收集高清影像圖、地形圖、森林資源專題圖等;矢量數(shù)據(jù)包括點(diǎn)線面三類要素。點(diǎn)要素:省、市、縣、鄉(xiāng)等政府所在地、居民點(diǎn)、以及需用點(diǎn)標(biāo)注的其它地理要素(山峰、高程點(diǎn)、瞭望臺(tái)等);線要素:行政區(qū)界線、鐵路、公路、一般道路以及河流溝渠、防火線等以線為主要特征構(gòu)造的地物;面要素:生態(tài)區(qū)位、公益林劃定區(qū)、林業(yè)產(chǎn)業(yè)規(guī)劃區(qū)、責(zé)任保護(hù)區(qū)、林場(chǎng)、林班、小班等封閉面要素(湖泊、水庫等)。

        收集的空間數(shù)據(jù)要與屬性數(shù)據(jù)進(jìn)行連接,確保一一對(duì)應(yīng),要素之間應(yīng)當(dāng)建立拓?fù)湟?guī)則檢查,保證圖形之間不存在沖突關(guān)系。

        2.2 地圖符號(hào)化

        在ArcGIS軟件中添加縣級(jí)基礎(chǔ)數(shù)據(jù),如停伐小班、地形圖、影像圖等,按編制方案的要求定義各圖層的符號(hào)、樣式,進(jìn)行圖層渲染,包括顏色、線型等。有時(shí)要求使用的符號(hào)在ArcGIS提供的標(biāo)準(zhǔn)符號(hào)庫中沒有現(xiàn)成的,這時(shí)應(yīng)當(dāng)按照符號(hào)要求手動(dòng)編輯配置符號(hào)樣式。

        2.3 標(biāo)注信息

        標(biāo)注信息多包含地類、優(yōu)勢(shì)樹種、面積等屬性信息,規(guī)范的標(biāo)注信息可以使得地圖所表達(dá)的信息一目了然,多會(huì)涉及分子式標(biāo)注方法,具體使用時(shí),按照標(biāo)注要求選擇字段,標(biāo)注表達(dá)式示例如表1。

        2.4 小班注記表

        1)如果安裝了工廠化制圖擴(kuò)展模塊(Esri Production Mapping),可以插入動(dòng)態(tài)表格(Graphic Table Element)進(jìn)行設(shè)置,生成的表格標(biāo)注隨驅(qū)動(dòng)頁面的變化而動(dòng)態(tài)變化。

        2)手動(dòng)插入表格,這需要在保存好MXD工程后依次打開對(duì)應(yīng)貼入。根據(jù)網(wǎng)格索引選擇對(duì)應(yīng)范圍內(nèi)的小班信息,在Excel中設(shè)置適宜的行高、列寬、字體大小等,選中復(fù)制即可在ArcGIS布局視圖下粘貼。

        小班注記表在頁面中放置的位置應(yīng)盡量不覆蓋林地圖斑,可根據(jù)實(shí)際情況進(jìn)行大小、位置的調(diào)整,保持整圖的美觀性。

        表1 標(biāo)注表達(dá)式標(biāo)注類型VBScript標(biāo)注表達(dá)式示例二分式int([小班號(hào)]) & "---" & int([小班面積]) & vbnewline & "----------" & vbnewline & [地類] & "-" & [優(yōu)勢(shì)樹種]32—70純林-云南松三分式[國(guó)有面積] & "畝"& vbnewline & [鄉(xiāng)名] &"-------" & vbnewline & [集體面積] & "畝"XX鄉(xiāng)1313畝35631畝上標(biāo)round ([area],0)& "m"& "" & "2" & ""667 m2下標(biāo)round ([area],0)& "m"& "" & "2" & ""667 m2

        2.5 添加地圖整飾要素

        在布局視圖下進(jìn)行合理圖面配置,插入下列地圖要素:

        1)圖名:,圖名為動(dòng)態(tài)文本,按照索引圖層中選擇的名稱字段動(dòng)態(tài)改變,可在前后自行添加固定文本。

        2)比例尺:1:25000(設(shè)置出圖比例,設(shè)置數(shù)據(jù)框固定比例為1:25000)。

        3)指北針:多放在地圖右上角,設(shè)置背景為白色。

        4)插入圖例應(yīng)大小適宜,布局合理。

        5)圖幅編號(hào):選擇數(shù)據(jù)驅(qū)動(dòng)頁面文本參數(shù),添加動(dòng)態(tài)文本。

        6)制圖單位、制圖日期等信息,可在視圖中添加參考線,插入文本。

        3 專題圖批量生成

        3.1 構(gòu)造出圖模板

        依照不同的行政區(qū)域來進(jìn)行頁面設(shè)置,具體設(shè)計(jì)出圖版面的圖幅大小、方向和布局,達(dá)到數(shù)據(jù)展示清晰、視覺美觀的效果(如圖1),保證同一專題圖具有相同的出圖風(fēng)格。

        圖1 出圖模板

        3.2 制作索引圖層

        點(diǎn)、線、面要素圖層都可以作為索引圖層。通常,索引格網(wǎng)多為矩形,在制作時(shí)可根據(jù)實(shí)際調(diào)整多邊形作為索引要素。在實(shí)際生產(chǎn)中,手動(dòng)創(chuàng)建多邊形格網(wǎng)效率不高,為使得格網(wǎng)一致,多使用地理處理工具自動(dòng)創(chuàng)建格網(wǎng)要素,常用的創(chuàng)建工具有:創(chuàng)建漁網(wǎng)工具和數(shù)據(jù)驅(qū)動(dòng)頁面下的創(chuàng)建格網(wǎng)索引要素工具。

        查看創(chuàng)建好的格網(wǎng)是否符合出圖要求,如是否超出天然林停伐小班范圍(因?yàn)樾姓吔缤ǔJ遣灰?guī)則的,自動(dòng)創(chuàng)建的格網(wǎng)為矩形,特別注意在邊緣處格網(wǎng)會(huì)超出林地邊界),進(jìn)行格網(wǎng)的適當(dāng)編輯修改,在創(chuàng)建好的索引要素的屬性中應(yīng)當(dāng)填入鄉(xiāng)鎮(zhèn)、村委會(huì)、編號(hào)等基本屬性信息,基本信息可以作為出圖圖名,編號(hào)可作為頁碼,常使用字段計(jì)算器建立公式“[ FID ]+1”順序編號(hào),也可以使用Python語句自動(dòng)遞增編號(hào)。自動(dòng)編號(hào)有兩種方法:

        1)按照格網(wǎng)從左往右、自上而下自動(dòng)編號(hào),打開屬性表,添加兩個(gè)浮點(diǎn)型字段:xmin和ymax,在字段計(jì)算器中,解譯程序選擇Python,輸入表達(dá)式xmin=!shape.extent.XMin!和ymax=!shape.extent.YMax!,分別計(jì)算索引格網(wǎng)外包矩形最北最西的坐標(biāo)值,xmin是最小X范圍坐標(biāo)(西坐標(biāo)),ymax是最大Y范圍坐標(biāo)(北坐標(biāo))。然后根據(jù)xmin字段升序排列,ymax字段降序排列,就可以得到索引格網(wǎng)按自上而下、從左至右次序編號(hào)。同理,這種方法也可用于計(jì)算林地斑塊四至。

        2)執(zhí)行Python循環(huán)語句,使用UpdateCursor函數(shù)按照屬性表順序編號(hào)(bh為創(chuàng)建的字段名)。

        cur=arcpy.UpdateCursor("索引格網(wǎng)","","","","分區(qū) A") #按“分區(qū)”字段順序編號(hào),A為升序,D為降序

        i=1

        for row in cur:

        row.bh=i

        i+=1

        cur.updateRow(row)

        del cur,row

        3.3 設(shè)置數(shù)據(jù)驅(qū)動(dòng)頁面參數(shù)

        啟動(dòng)數(shù)據(jù)驅(qū)動(dòng)頁面,索引圖層選擇格網(wǎng)索引圖層,排序字段選擇編號(hào),勾選升序排列,在范圍選項(xiàng)卡中選擇居中并保持當(dāng)前比例,設(shè)置所有導(dǎo)出的圖片都具有相同的比例大小。對(duì)小班面層、管護(hù)區(qū)圖層分別進(jìn)行頁面定義查詢?cè)O(shè)置,使索引格網(wǎng)內(nèi)的天然林停伐圖斑隨著驅(qū)動(dòng)頁面的變化而呈動(dòng)態(tài)顯示,范圍之外的要素圖層則不顯示,使得圖面整潔,重點(diǎn)突出。

        3.4 批量保存工程文檔

        按要求設(shè)置好出圖比例和標(biāo)注填充符號(hào)等制圖要素后,就可以借助Python語言批量保存MXD工程文件了,Python語言一般在安裝ArcGIS時(shí)就已默認(rèn)安裝,不必再另行安裝。

        首先應(yīng)當(dāng)導(dǎo)入ArcPy庫,導(dǎo)入方法是:import arcpy,調(diào)用ArcPy中的函數(shù)和工具包。代碼如下:

        #_*_ coding=utf8_*_

        import arcpy,os,sys,time

        reload(sys)

        sys.setdefaultencoding(|utf-8|)

        importPath = "D:專題圖"

        exportPath = r"D:專題圖工程文檔"

        print |程序開始:|+str(time.ctime())

        mxdPath=str(importPath).strip().decode(|utf-8|)

        shpPath=r"D:專題圖圖層索引格網(wǎng).shp"

        mxd=arcpy.mapping.MapDocument(os.path.join(mxdPath,"出圖模板.mxd"))

        rows=arcpy.SearchCursor(shpPath)

        for i in rows:

        pageID=mxd.dataDrivenPages.getPageIDFromName(i.getValue("分區(qū)"))

        mxd.dataDrivenPages.currentPageID =pageID

        mxd.saveACopy(exportPath+"\"+i.getValue("分區(qū)") + ".mxd")

        del mxd

        print|程序結(jié)束:|+str(time.ctime())

        利用4.1節(jié)中構(gòu)造好的出圖模板,通過索引格網(wǎng)及數(shù)據(jù)驅(qū)動(dòng)頁面設(shè)置,設(shè)定文件路徑,使用getValue函數(shù)獲取格網(wǎng)的屬性字段值,作為工程名。調(diào)用數(shù)據(jù)驅(qū)動(dòng)工具,按照一個(gè)索引格網(wǎng)來保存一個(gè)MXD工程,進(jìn)行循環(huán)保存。

        3.5 批量打印出圖

        導(dǎo)出地圖時(shí),在ArcGIS導(dǎo)出地圖窗口中,選擇PDF格式,可以全部頁碼導(dǎo)出為一個(gè)PDF,或者導(dǎo)出多個(gè)PDF,這種方式只能夠批量導(dǎo)出PDF文件,其他圖片格式不能實(shí)現(xiàn)批量。因此,要批量導(dǎo)出地圖為圖片格式,需要使用ArcPy腳本,可以批量導(dǎo)出JPG、PNG等常見圖片格式。首先設(shè)置MXD文檔的存放路徑,輸出圖片的存放路徑、文件名以及分辨率等。具體代碼如下:

        #_*_ coding=utf8_*_

        import arcpy,os,sys,time

        reload(sys)

        sys.setdefaultencoding(|utf-8|)

        mxdPath=str("D:專題圖工程文檔").strip().decode(|utf-8|)

        picPath=r"D:專題圖圖片"

        res=200

        print|程序開始:|+str(time.ctime())

        for afile in os.listdir(mxdPath):

        if afile[-3:].lower() ==|mxd|:

        filePath=str(os.path.join(mxdPath,afile)).strip().decode(|utf-8|)

        mxd=arcpy.mapping.MapDocument(filePath)

        arcpy.mapping.ExportToJPEG(mxd,picPath+"\"+afile[:-3]+|jpg|,resolution=res)

        del mxd

        print|'程序結(jié)束:|+str(time.ctime())

        通過獲取文件路徑,對(duì)文件夾下的MXD工程文件進(jìn)行遍歷,使用ExportToJPEG函數(shù)導(dǎo)出文件夾內(nèi)每一個(gè)MXD工程中布局視圖界面為一個(gè)JPG圖片,若要更改圖片格式,只需更改ExportToJPEG函數(shù),如替換為ExportToPNG或ExportToBMP,就可批量導(dǎo)出對(duì)應(yīng)的PNG和BMP格式圖片。

        3.6 定制工具箱

        對(duì)于大多數(shù)工作者而言,更傾向于使用ArcToolbox圖形界面工具,而不是直接使用代碼塊??梢越柚鶪etParameterAsText函數(shù)獲取圖層參數(shù),將Python腳本做成工具的形式集成到ArcToolbox中(圖2),方便不同專題圖生產(chǎn)的快速調(diào)用。

        (a)批量保存MXD工程

        (b)批量導(dǎo)出圖片

        4 結(jié)語

        在林業(yè)空間數(shù)據(jù)處理方面,ArcGIS提供了眾多地理處理工具,通過Python這個(gè)粘合劑,可以將多個(gè)工具有機(jī)地組合起來使用,達(dá)到提高效率、保證質(zhì)量的目的,滿足林業(yè)生產(chǎn)實(shí)際需求。本文通過天然林停伐保護(hù)專題圖批量生成的成功實(shí)踐,驗(yàn)證了在ArcGIS平臺(tái)下,使用Python語言在林業(yè)專題圖制圖方面的高效與準(zhǔn)確,為大批量數(shù)據(jù)自動(dòng)化處理提供解決思路。同時(shí),本文提出的批量出圖方法,在其他行業(yè)(如國(guó)土、環(huán)保)也具有重要應(yīng)用價(jià)值。

        Python語言在ArcGIS地理處理架構(gòu)中有著重要的地位,結(jié)合Python語言和ArcGIS平臺(tái),針對(duì)不同的行業(yè)應(yīng)用、依據(jù)特定的業(yè)務(wù)需求,定制適宜的空間數(shù)據(jù)處理解決方案,構(gòu)造實(shí)現(xiàn)繁瑣地理處理過程的批處理工具,簡(jiǎn)單高效地完成空間數(shù)據(jù)批量處理,提高數(shù)據(jù)處理整合速率和正確率,減少數(shù)據(jù)處理加工過程中的重復(fù)性勞動(dòng),減輕工作量,能夠極大地提高空間數(shù)據(jù)生產(chǎn)加工的效率,今后將會(huì)得到越來越多的應(yīng)用和推廣。

        猜你喜歡
        格網(wǎng)天然林批量
        山西省天然林保護(hù)工程二期建設(shè)成效與經(jīng)驗(yàn)探討
        批量提交在配置分發(fā)中的應(yīng)用
        天津:全面停止天然林商業(yè)性采伐
        實(shí)時(shí)電離層格網(wǎng)數(shù)據(jù)精度評(píng)估
        天保工程:把天然林都保護(hù)起來
        天然林保護(hù)任重而道遠(yuǎn)
        基于空間信息格網(wǎng)與BP神經(jīng)網(wǎng)絡(luò)的災(zāi)損快速評(píng)估系統(tǒng)
        淺議高校網(wǎng)銀批量代發(fā)
        基于AUTOIT3和VBA的POWERPOINT操作題自動(dòng)批量批改
        考慮價(jià)差和再制造率的制造/再制造混合系統(tǒng)生產(chǎn)批量研究
        蜜桃视频一区二区在线观看| 国产午夜激无码AV毛片不卡| 久久精品熟女亚洲av艳妇| 白色白在线观看免费2| 国产色视频一区二区三区不卡| 青青草原亚洲| 青青草原综合久久大伊人| 中文字幕亚洲精品第1页| 日本久久精品国产精品| 国产亚洲精品在线视频| 亚洲日韩精品无码专区网址| 曰批免费视频播放免费直播| 国产精品国产三级国产专区5o| 久久精品一区二区三区不卡牛牛| 国产精品亚洲精品国产| 欧美成人看片一区二区三区尤物 | 亚洲三区av在线播放| 国产精品一区二区三区专区| 草草浮力影院| 美女胸又www又黄的网站| 啪啪视频免费看一区二区| 偷拍综合在线视频二区日韩| 国产日韩精品欧美一区喷水| 亚洲欧洲无码一区二区三区| 538亚洲欧美国产日韩在线精品 | 亚洲国产av导航第一福利网| 午夜福利视频男同女同| 精品亚洲国产亚洲国产| 久久综合99re88久久爱| 欧美精品一区二区蜜臀亚洲| 无码Av在线一区二区三区| 国产一区二区三区免费在线播放| 中文字幕成人乱码熟女精品国50| 美女av一区二区三区| 樱花AV在线无码| 一区两区三区视频在线观看| 日韩精品第一区二区三区| 国产亚洲2021成人乱码| 中文字幕Aⅴ人妻一区二区苍井空| 精品在线视频免费在线观看视频 | 国产精品三级在线观看无码|