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

        ?

        基于Python的營造林?jǐn)?shù)據(jù)驗(yàn)收方法

        2016-11-21 07:51:38曹霸陳興亞黃冰清王洪波盧鵬
        安徽林業(yè)科技 2016年5期
        關(guān)鍵詞:字段圖層縫隙

        曹霸,陳興亞,黃冰清,王洪波,盧鵬*

        (1.貴州林業(yè)勘察設(shè)計(jì)有限公司,貴州 貴陽 550003;2.貴州省林業(yè)調(diào)查規(guī)劃院)

        基于Python的營造林?jǐn)?shù)據(jù)驗(yàn)收方法

        曹霸1,陳興亞2,黃冰清2,王洪波1,盧鵬2*

        (1.貴州林業(yè)勘察設(shè)計(jì)有限公司,貴州貴陽550003;2.貴州省林業(yè)調(diào)查規(guī)劃院)

        本文簡(jiǎn)要介紹了Python語言,并對(duì)貴州省營造林?jǐn)?shù)據(jù)驗(yàn)收流程中使用到的ArcGIS圖形檢查工具利用Python語言進(jìn)行集成,生成自定義工具,利用這個(gè)工具對(duì)營造林?jǐn)?shù)據(jù)進(jìn)行檢查驗(yàn)收,在一定程度上提高了數(shù)據(jù)檢查驗(yàn)收的工作效率。

        Python;ArcGIS;腳本工具;營造林?jǐn)?shù)據(jù);驗(yàn)收方法

        Python是一種面向?qū)ο?、語法清晰、開源的腳本語言,從簡(jiǎn)單的到復(fù)雜的腳本任務(wù),從獨(dú)立的到復(fù)雜的應(yīng)用程序都可以實(shí)現(xiàn)。地理信息系統(tǒng)經(jīng)過30多年的發(fā)展,其應(yīng)用領(lǐng)域已經(jīng)深入到各行各業(yè)。地理信息系統(tǒng)的快速發(fā)展推動(dòng)了相關(guān)軟件的進(jìn)步,作為地理信息系統(tǒng)軟件中比較有代表性的軟件ArcGIS被廣泛應(yīng)用[1]。貴州省2015年?duì)I造林?jǐn)?shù)據(jù)驗(yàn)收檢查內(nèi)容多,需要利用ArcGIS多個(gè)工具對(duì)數(shù)據(jù)進(jìn)行處理,檢查工作非常繁瑣。為此,本文利用Python進(jìn)行開發(fā),對(duì)營造林?jǐn)?shù)據(jù)驗(yàn)收所用的ArcGIS工具進(jìn)行集成,生成腳本工具,在營造林?jǐn)?shù)據(jù)檢查驗(yàn)收時(shí)利用該工具,在一定程度上提高了工作效率。

        1 Python語言

        Python于1991年第一次公開發(fā)行,從而是一門優(yōu)秀的腳本語言[2]。圖1展示了Python的優(yōu)點(diǎn)。

        2 營造林?jǐn)?shù)據(jù)驗(yàn)收流程

        營造林?jǐn)?shù)據(jù)驗(yàn)收主要包括兩個(gè)部分:屬性檢查和圖形檢查。其中屬性檢查主要在Access里檢查,本文不詳細(xì)敘述。圖形檢查是在ArcGIS中進(jìn)行檢查,檢查的內(nèi)容包括數(shù)據(jù)庫字段結(jié)構(gòu)比較、拓?fù)錂z查、多部件檢查、重號(hào)檢查和縫隙檢查,見圖2。

        圖1 Python優(yōu)點(diǎn)

        其中,字段比較是對(duì)每個(gè)縣的檢查數(shù)據(jù)和模板數(shù)據(jù)的數(shù)據(jù)庫結(jié)構(gòu)進(jìn)行比較,以保證后期對(duì)全省數(shù)據(jù)進(jìn)行合庫時(shí)每個(gè)縣的庫結(jié)構(gòu)相同;拓?fù)錂z查是對(duì)營造林?jǐn)?shù)據(jù)進(jìn)行拓?fù)浞治?,防止小班圖層存在自身重疊和相互重疊;多部件檢查是為了防止小班圖層存在多部件;重號(hào)檢查是為了保證小班圖層無重號(hào);縫隙檢查是為了保證小班與小班之間不存在縫隙,縫隙最小為100m2。

        3 檢查工具實(shí)現(xiàn)

        根據(jù)圖形檢查的內(nèi)容,利用ArcGIS自帶的Python腳本編輯器,實(shí)現(xiàn)字段比較、拓?fù)錂z查、多部件檢查、重號(hào)檢查和縫隙檢查。

        3.1字段比較

        字段比較工具包括9個(gè)參數(shù):模板表、數(shù)據(jù)表、排序字段、比較類型、忽略類型、屬性容差、忽略字段、是否連續(xù)比較、比較結(jié)果輸出文件。具體參數(shù)設(shè)置如下所示:

        base_table=path_base+"/"+"YZL_PY_ZLYSXB"

        圖2 圖形檢查內(nèi)容圖

        test_table=path_test+"/"+"YZL_PY_ZLYSXB"

        sort_field="OBJECTID"

        compare_type="SCHEMA_ONLY"

        ignore_option="IGNORE_EXTENSION_PROPERTIES;IGNORE_SUBTYPES;IGNORE_RELATIONSHIPCLASSES"

        attribute_tolerance=""

        omit_field="OBJECTID;SHAPE;SHAPE_Length;SHAPE_Area;aa;aaa"

        continue_compare="NO_CONTINUE_COMPARE"

        compare_file=path+"/"+"zl.txt"

        其中path_base,path_test分別為模板數(shù)據(jù)路徑和檢查數(shù)據(jù)路徑。

        工具運(yùn)行語句如下:

        compare_result=arcpy.TableCompare_management(base_table,test_table,sort_field,compare_type,ignore_option,attribute_tolerance,omit_field,continue_compare,compare_file)

        3.2拓?fù)錂z查

        拓?fù)錂z查包括兩個(gè)內(nèi)容:小班圖層自身重疊和小班圖層之間的相互重疊。主要為創(chuàng)建拓?fù)洹⑻砑右氐酵負(fù)?、添加屬性到拓?fù)浜万?yàn)證拓?fù)?。具體語句如下:

        arcpy.CreateTopology_management(path_test," topology")

        arcpy.AddFeatureClassToTopology_management(" topology","YZL_PY_ZLYSXB",1,1)arcpy.AddFeatureClassToTopology_management("topology","YZL _PY_FYYSXB",1,1)

        arcpy.AddRuleToTopology_management("topology","Must Not Overlap(Area)","YZL_PY_ ZLYSXB","","","")

        arcpy.AddRuleToTopology_management("topology","Must Not Overlap(Area)","YZL_PY_ FYYSXB","","","")

        arcpy.AddRuleToTopology_management("topology","Must NotOverlap With(Area-Area)","YZL_PY _FYYSXB","","YZL_PY_ZLYSXB","")

        arcpy.ValidateTopology_management("topology")

        3.3多部件檢查

        多部件檢查步驟包括三步:首先,創(chuàng)建一個(gè)新的字段,然后把OBJECT字段的值賦給這個(gè)字段;其次,對(duì)小班圖層使用MultipartToSinglepart工具炸開多部件;最后,對(duì)炸開后的圖層屬性表統(tǒng)計(jì)第一步新建的字段,如果有數(shù)量大于等于2的記錄,則說明圖層中存在多部件。具體語句如下:

        arcpy.AddField_management("YZL_PY_ ZLYSXB","aa","TEXT","","",100)arcpy.Calculate-

        Field_management("YZL_PY_ZLYSXB","aa","!OBJECTID!","PYTHON")

        arcpy.MultipartToSinglepart_management("YZL _PY_ZLYSXB","YZL_PY_ZLYSXB_multi")

        arcpy.Frequency_analysis("YZL_PY_ZLYSXB _multi",path+"/"+"zl_multi_frequency","aa")

        3.4重號(hào)檢查

        本次營造林?jǐn)?shù)據(jù)驗(yàn)收中重號(hào)檢查用的字段為上報(bào)年度、項(xiàng)目名稱、村代碼和內(nèi)業(yè)小班號(hào)。在重號(hào)檢查時(shí)先對(duì)這四個(gè)字段進(jìn)行運(yùn)算生成唯一編號(hào),然后再對(duì)唯一編號(hào)進(jìn)行統(tǒng)計(jì)。如果唯一編號(hào)數(shù)量大于等于2則說明小班圖層中有重號(hào),就需要對(duì)重號(hào)小班重新編號(hào),直到屬性表中每個(gè)記錄都是唯一。具體語句如下所示:

        arcpy.AddField_management("YZL_PY_ ZLYSXB","aa","TEXT","","",100)arcpy.Calculate-Field_management("YZL_PY_ZLYSXB","WYBH","!CUN!"+"!NYJCXBH!","PYTHON")arcpy.CalculateField_management("YZL_PY_ZLYSXB","aa","!ZCSBND!"+"!XMMC!"+"!WYBH!","PYTHON")

        arcpy.Frequency_analysis("YZL_PY_ZLYSXB",path+"/"+"zl_重號(hào)_frequency","aa")

        3.5縫隙檢查

        縫隙檢查首先利用縣面圖層對(duì)小班圖層進(jìn)行擦除,然后利用工具M(jìn)ultipart to Singlepart炸開擦除后的圖層,最后計(jì)算炸開圖層中每個(gè)小班的面積。如果小班的面積小于100m2,則這個(gè)小班就是縫隙,就要排查產(chǎn)生縫隙的原因并進(jìn)行修改。具體語句如下所示:

        arcpy.Erase_analysis("縣面","YZL_PY_ ZLYSXB","YZL_PY_ZLYSXB_Era","")

        arcpy.MultipartToSinglepart_management("YZL_ PY_ZLYSXB_Era","YZL_PY_ZLYSXB_Era_Mul")arcpy.CalculateAreas_stats(path_dir+"/"+" YZL_PY_ZLYSXB_Era_Mul_reproject",path_dir+"/" +"YZL_PY_ZLYSXB_Era_Mul_reproject_mj")

        完成了字段比較、拓?fù)洳樵儭⒍嗖考z查、重號(hào)查詢和縫隙查詢功能后,進(jìn)一步把這些功能集成為一個(gè)工具。

        4 Python腳本工具應(yīng)用

        在ArcGIS的腳本編輯器完成代碼編寫后,在ArcGIS中進(jìn)一步把代碼集成為一個(gè)工具,方便檢查人員的使用。具體流程如下:

        (1)在Catalog中,選擇Toolboxes,新建一個(gè)Toolbox。

        (2)選擇Toolbox,單擊右鍵,選擇add→script,設(shè)置合適的工具名字和標(biāo)準(zhǔn),點(diǎn)擊下一步,選擇script file,即上面編寫的Python腳本,點(diǎn)擊下一步,輸入display name和data type,這里選擇數(shù)據(jù)驗(yàn)收數(shù)據(jù)庫和模板數(shù)據(jù)庫,data type為 workspace or Feature,點(diǎn)擊Finish即可生成新的工具。

        (3)雙擊生成的工具,如圖3所示,選擇驗(yàn)收數(shù)據(jù)庫和模板數(shù)據(jù)庫,點(diǎn)擊OK。

        運(yùn)行過程如圖4所示,運(yùn)行時(shí)間為70 s左右。如果直接利用ArcGIS,涉及到多個(gè)工具,輸入?yún)?shù)多,根據(jù)實(shí)際情況,檢查一個(gè)縣的營造林?jǐn)?shù)據(jù)需要40min左右;通過應(yīng)用腳本工具,僅需要15min左右,這樣就在一定程度上提高了工作效率。

        生成的結(jié)果如圖5所示,具體結(jié)果包括字段比較結(jié)果、拓?fù)錂z查結(jié)果、多部件檢查結(jié)果、重號(hào)檢查結(jié)果、縫隙檢查結(jié)果以及每項(xiàng)檢查的中間結(jié)果,通過分析即可得到數(shù)據(jù)檢查驗(yàn)收的結(jié)果,判斷數(shù)據(jù)是否合格。

        5 結(jié)語

        本文根據(jù)貴州省營造林?jǐn)?shù)據(jù)驗(yàn)收遇到的問題,結(jié)合Python和ArcGIS進(jìn)行腳本語言的編寫,自定義了圖形數(shù)據(jù)檢查工具,在一定程度上降低了工作量,提高了檢查效率。但是也存在不足之處,后續(xù)可以在本文的基礎(chǔ)上繼續(xù)改進(jìn),使它對(duì)于復(fù)雜的數(shù)據(jù)結(jié)構(gòu)也可以進(jìn)行檢查驗(yàn)收。

        圖3 數(shù)據(jù)驗(yàn)收工具

        圖4 腳本工具運(yùn)行過程圖

        圖5 Python運(yùn)行生成的結(jié)果

        [1]潘雪婷.基于Python的控件分析模型的實(shí)現(xiàn)[D].北京:中國地質(zhì)大學(xué),2010.

        [2]Wesley J.Chun著,宋吉廣譯.Python核心編程 (第二版)[M].北京:人民郵電出版社,2008.

        (責(zé)任編輯:楊婷婷)

        S711

        A

        2095-0152(2016)05-0053-03

        2016-07-26

        2016-08-29

        貴州省林業(yè)科研課題(黔林科合[2016](03)號(hào))、云南省教育廳項(xiàng)目(2014J100)、貴州省林業(yè)科研課題(黔林科合J字[2013](4)號(hào))。

        曹霸(1989-),男,碩士,主要從事林業(yè)3S技術(shù)與應(yīng)用研究工作。E-mail:cl98904@163.com

        盧鵬(1983-),男,高級(jí)工程師,主要從事林業(yè)信息技術(shù)應(yīng)用方向工作。E-mail:158263077@qq.com

        猜你喜歡
        字段圖層縫隙
        圖書館中文圖書編目外包數(shù)據(jù)質(zhì)量控制分析
        雨的縫隙
        巧用混合圖層 制作抽象動(dòng)感森林
        一種帶寬展寬的毫米波波導(dǎo)縫隙陣列單脈沖天線
        圖層法在地理區(qū)域圖讀圖中的應(yīng)用
        CNMARC304字段和314字段責(zé)任附注方式解析
        無正題名文獻(xiàn)著錄方法評(píng)述
        淺析“遞層優(yōu)化法”在礦井制圖中的應(yīng)用
        河南科技(2014年6期)2014-04-04 08:00:42
        關(guān)于CNMARC的3--字段改革的必要性與可行性研究
        Photoshop圖層的解讀
        亚洲精品成人专区在线观看| 九九综合va免费看| 欧美精品亚洲精品日韩专区 | 日本丰满熟妇videossex8k| 欧美成人三级一区二区在线观看 | 精品一区二区三区芒果| 欧美性巨大╳╳╳╳╳高跟鞋| 国产高清无码在线| 亚洲av一二三又爽又爽又色| 国产高清在线一区二区不卡| 精品丰满人妻无套内射| 欧美国产小视频| 久久99精品免费国产| 亚洲精品视频在线一区二区| 高潮迭起av乳颜射后入| 日韩欧美在线播放视频| 国产精品自拍视频免费看| 亚洲成av人综合在线观看| 使劲快高潮了国语对白在线| 欧美久久中文字幕| 激情五月开心五月啪啪| 国产动作大片中文字幕| 久久99国产亚洲高清观看韩国| 日本一级淫片免费啪啪| 一本一道久久精品综合| 精品不卡视频在线网址| 少妇久久久久久被弄高潮| 亚洲精品人成无码中文毛片| 欧洲AV秘 无码一区二区三| 国产三级精品av在线| 一本久久伊人热热精品中文字幕| 亚洲免费不卡| 日韩精品极品免费在线视频| 国产国语亲子伦亲子| 最新亚洲av日韩av二区| 免费国产99久久久香蕉| 久久精品国产亚洲av热九| 国产不卡精品一区二区三区| 国产熟女露脸大叫高潮| 欧美日韩一区二区三区视频在线观看| 韩国一区二区三区黄色录像|