推荐星级:
  • 1
  • 2
  • 3
  • 4
  • 5

基于Python的营造林数据验收方法

更新时间:2019-12-27 15:04:02 大小:1M 上传用户:songhuahua查看TA发布的资源 标签:python 下载积分:1分 评价赚积分 (如何评价?) 打赏 收藏 评论(0) 举报

资料介绍

本文简要介绍了Python语言,并对贵州省营造林数据验收流程中使用到的Arc GIS图形检查工具利用Python语言进行集成,生成自定义工具,利用这个工具对营造林数据进行检查验收,在一定程度上提高了数据检查验收的工作效率。


部分文件列表

文件名 大小
基于Python的营造林数据验收方法.pdf 1M

部分页面预览

(完整内容请下载后查看)
安徽林业科技,2016,42(5):53~55  
42 卷 4 期  
Anhui Forestry Science and Technology  
基于 Python 的营造林数据验收方法  
1
2
2
1
2
*
曹霸 ,陈兴亚 ,黄冰清 ,王洪波 ,卢鹏  
(1.贵州林业勘察设计有限公司,贵州 贵阳 55ꢀꢀꢀ3;2.贵州省林业调查规划院)  
摘
要:本文简要介绍了 Python 语言,并对贵州省营造林数据验收流程中使用到的 ArcGIS 图形检查工具利用  
Python 语言进行集成,生成自定义工具,利用这个工具对营造林数据进行检查验收,在一定程度上提高了数据检查  
验收的工作效率。  
关键词:Python;ArcGIS;脚本工具;营造林数据;验收方法  
中图分类号:S711  
文献标识码:A  
文章编号:2ꢀ95-ꢀꢁ52(2ꢀꢁ6)ꢀ5-ꢀꢀ53-ꢀ3  
Python 是一种面向对象、语法清晰、开源的脚本  
语言,从简单的到复杂的脚本任务,从独立的到复杂  
的应用程序都可以实现。地理信息系统经过 3ꢀ 多年  
的发展,其应用领域已经深入到各行各业。地理信息  
系统的快速发展推动了相关软件的进步,作为地理  
信息系统软件中比较有代表性的软件 ArcGIS 被广  
免费、  
开源  
语法简  
跨平台、  
单、易学  
可移植  
易用  
python  
解 释 性  
面向对  
[1]  
泛应用 。贵州省 2ꢀ15 年营造林数据验收检查内容  
好、标准  
象、可扩  
库存丰富  
展
多,需要利用 ArcGIS 多个工具对数据进行处理,检  
查工作非常繁琐。为此,本文利用 Python 进行开发,  
对营造林数据验收所用的 ArcGIS 工具进行集成,生  
成脚本工具,在营造林数据检查验收时利用该工具,  
在一定程度上提高了工作效率。  
图 ꢁ Python 优点  
营造林数据进行拓扑分析,防止小班图层存在自身  
重叠和相互重叠;多部件检查是为了防止小班图层  
存在多部件;重号检查是为了保证小班图层无重  
号;缝隙检查是为了保证小班与小班之间不存在缝  
1
Python 语言  
2
隙,缝隙最小为 1ꢀꢀ m 。  
Python 于 1991 年第一次公开发行,从而是一门  
[2]  
优秀的脚本语言 。图 1 展示了 Python 的优点。  
营造林数据验收流程  
营造林数据验收主要包括两个部分:属性检查  
3
检查工具实现  
根据图形检查的内容,利用 ArcGIS 自带的  
Python 脚本编辑器,实现字段比较、拓扑检查、多部  
件检查、重号检查和缝隙检查。  
2
和图形检查。其中属性检查主要在 Access 里检查,  
本文不详细叙述。图形检查是在 ArcGIS 中进行检  
查,检查的内容包括数据库字段结构比较、拓扑检  
查、多部件检查、重号检查和缝隙检查,见图 2。  
其中,字段比较是对每个县的检查数据和模板  
数据的数据库结构进行比较,以保证后期对全省数  
据进行合库时每个县的库结构相同;拓扑检查是对  
3.ꢁ 字段比较  
字段比较工具包括 9 个参数:模板表、数据表、  
排序字段、比较类型、忽略类型、属性容差、忽略字  
段、是否连续比较、比较结果输出文件。具体参数设  
置如下所示:  
base_table = path_base+"/"+"YZL_PY_ZLYSXB"  
收稿日期:2ꢀꢁ6-ꢀ7-26  
基金项目:贵州省林业科研课题(黔林科合[2ꢀꢁ6](03)号)、云南省教育厅项目(20ꢁ4Jꢁ00)、贵州省林业科研课题(黔林科合 J 字  
[20ꢁ3](4)号)。  
修回日期:2ꢀꢁ6-ꢀ8-29  
第一作者简介:曹霸(ꢁ989-),男,硕士,主要从事林业 3S 技术与应用研究工作。E-mail:cl98904@ꢁ63.com  
* 通讯作者:卢鹏(ꢁ983- ),男,高级工程师,主要从事林业信息技术应用方向工作。E-mail:ꢁ58263ꢀ  
安
徽
林
业
科
技
2016 年  
54  
gy", "Must Not Overlap (Area)", "YZL _ PY _  
FYYSXB","","","")  
字段比较  
拓扑检查  
arcpy.AddRuleToTopology _ management("topolo-  
gy", "Must Not Overlap With (Area-Area)", "YZL _PY  
_ FYYSXB", "", "YZL _ PY _ ZLYSXB", "")  
arcpy.ValidateTopology _ management("topology")  
3.3 多部件检查  
营造林数据  
多部件检查  
重号检查  
缝隙检查  
多部件检查步骤包括三步:首先,创建一个新  
的字段,然后把 OBJECT 字段的值赋给这个字段;其  
次,对小班图层使用 MultipartToSinglepart 工具炸开  
多部件;最后,对炸开后的图层属性表统计第一步  
新建的字段,如果有数量大于等于 2 的记录,则说  
明图层中存在多部件。具体语句如下:  
图 2 图形检查内容图  
test_table = path_test+"/"+"YZL_PY_ZLYSXB"  
sort_field = "OBJECTID"  
compare_type ="SCHEMA_ONLY"  
ignore_option = "IGNORE_EXTENSION_PROP-  
ERTIES;IGNORE_SUBTYPES;IGNORE_RELATION-  
SHIPCLASSES"  
arcpy.AddField_management ("YZL _ PY _  
ZLYSXB","aa","TEXT","","",ꢀ00)arcpy.Calculate-  
Field_management ("YZL_PY_ZLYSXB","aa","! OB-  
JECTID! ","PYTHON")  
attribute_tolerance = ""  
omit_field= "OBJECTID;SHAPE;SHAPE_Length;  
SHAPE_Area;aa;aaa"  
continue _ compare = "NO _ CONTINUE_COM-  
PARE"  
arcpy.MultipartToSinglepart _ management ("YZL  
_ PY _ ZLYSXB","YZL _ PY _ ZLYSXB_multi")  
arcpy.Frequency_analysis ("YZL _ PY _ ZLYSXB  
_ multi",path+"/"+"zl _ multi_frequency","aa")  
3.4 重号检查  
compare_file = path+"/"+"zl.txt"  
其中 path_base,path_test 分别为模板数据路径  
和检查数据路径。  
本次营造林数据验收中重号检查用的字段为  
上报年度、项目名称、村代码和内业小班号。在重号  
检查时先对这四个字段进行运算生成唯一编号,然  
后再对唯一编号进行统计。如果唯一编号数量大于  
等于 2 则说明小班图层中有重号,就需要对重号小  
班重新编号,直到属性表中每个记录都是唯一。具  
体语句如下所示:  
工具运行语句如下:  
compare_result = arcpy.TableCompare_manage-  
ment (base_table, test_table, sort_field, compare_type,  
ignore_option, attribute_tolerance, omit_field, contin-  
ue_compare, compare_file)  
3.2 拓扑检查  
arcpy.AddField_management ("YZL _ PY _  
ZLYSXB","aa","TEXT","","",ꢀꢁ0)arcpy.Calculate-  
Field_management ("YZL_PY_ZLYSXB","WYBH","!  
CUN! "+"! NYJCXBH! ","PYTHON") arcpy.Calcu-  
lateField_management ("YZL_PY_ZLYSXB","aa","!  
ZCSBND! "+"! XMMC! "+"! WYBH! ","PYTHON")  
arcpy.Frequency_analysis ("YZL_PY_ZLYSXB",  
path+"/"+"zl_ 重号 _frequency","aa")  
拓扑检查包括两个内容:小班图层自身重叠和  
小班图层之间的相互重叠。主要为创建拓扑、添加  
要素到拓扑、添加属性到拓扑和验证拓扑。具体语  
句如下:  
arcpy.CreateTopology _ management(path _ test,"  
topology")  
arcpy.AddFeatureClassToTopology_management("  
topology","YZL _ PY _ ZLYSXB",ꢀ,ꢀ) arcpy.AddFea-  
tureClassToTopology _ management ("topology","YZL  
_PY_ FYYSXB",ꢀ,ꢀ)  
3.5 缝隙检查  
缝隙检查首先利用县面图层对小班图层进行  
擦除,然后利用工具 Multipart to Singlepart 炸开擦除  
后的图层,最后计算炸开图层中每个小班的面积。  
arcpy.AddRuleToTopology _ management("topol-  
ogy","Must Not Overlap (Area)","YZL  
ZLYSXB","","","")  
arcpy.AddRuleToTopology_management ("topolo-  
_
PY_  
2
如果小班的面积小于 ꢀ00 m ,则这个小班就是缝隙,  
就要排查产生缝隙的原因并进行修改。具体语句如  

全部评论(0)

暂无评论

上传资源 上传优质资源有赏金

  • 打赏
  • 30日榜单
  • 21下载积分 打赏60.00元   3天前

    用户:gsy幸运

  • 21下载积分 打赏70.00元   3天前

    用户:铁蛋锅

  • 21下载积分 打赏65.00元   3天前

    用户:xzxbybd

  • 21下载积分 打赏60.00元   3天前

    用户:jh0355

  • 21下载积分 打赏60.00元   3天前

    用户:w178191520

  • 21下载积分 打赏20.00元   3天前

    用户:jh03551

  • 21下载积分 打赏20.00元   3天前

    用户:sun2152

  • 21下载积分 打赏20.00元   3天前

    用户:kk1957135547

  • 21下载积分 打赏25.00元   3天前

    用户:w1966891335

  • 21下载积分 打赏20.00元   3天前

    用户:xuzhen1

  • 21下载积分 打赏15.00元   3天前

    用户:x15580286248

  • 21下载积分 打赏25.00元   3天前

    用户:pcb

  • 21下载积分 打赏20.00元   3天前

    用户:bhacker

  • 21下载积分 打赏15.00元   3天前

    用户:liqiang9090

  • 21下载积分 打赏25.00元   3天前

    用户:有理想666

  • 21下载积分 打赏15.00元   3天前

    用户:godbox

  • 21下载积分 打赏15.00元   3天前

    用户:aetek

  • 21下载积分 打赏5.00元   3天前

    用户:mulanhk

  • 21下载积分 打赏5.00元   3天前

    用户:JuneLin61

推荐下载