ArcGIS工具 - 统计工具数量

科技资讯 投稿 5200 0 评论

ArcGIS工具 - 统计工具数量

工具介绍

使用统计工具数量工具,可统计ArcMap中默认的工具箱和工具个数。工具界面如下:

程序源码

# -- coding:cp936 --
# ---------------------------------------------------------------------------
# 名称:PrintToolCount
# 功能:统计ArcMap中默认的工具箱和工具个数。
# 作者:为源地理
# 日期:2023.1.5
# 支持:wygis2022 1811335143
# 说明:同一软件版本,如果安装了其他扩展模块,统计的结果可能不同。
# ---------------------------------------------------------------------------

from imp import reload
import sys
reload(sys
sys.setdefaultencoding( "utf-8" 
import codecs
import csv
import arcpy

try:
    # 参数1:输出CSV文件
    csv_file = arcpy.GetParameterAsText(0

    f = None
    if len(csv_file != 0:
        f = codecs.open(csv_file, 'w','utf_8_sig'
        csv_writer=csv.writer(f
        
        # 写入标题行
        title=['工具箱名称','工具箱简称','工具名称']
        csv_writer.writerow(title
    
    # 获取当前版本
    version= u"当前版本"
    infos = arcpy.GetInstallInfo(
    for key,value in infos.items(:
        if key=="Version":
           version=  u"ArcMap{}".format(value

    # 工具箱和工具数量统计
    toolboxes = arcpy.ListToolboxes(
    tools = arcpy.ListTools(
    arcpy.AddMessage(u"========================="
    arcpy.AddMessage(u"{}共有{}个工具箱、{}工具。".format(version,len(toolboxes,len(tools
    arcpy.AddMessage(u"========================="

    # 工具箱数量统计
    toolbox_dic={}
    arcpy.AddMessage(u"工具箱:"
    for toolbox in toolboxes:
        first=toolbox.index("(" 
        last = toolbox.index(""
        toolboxName=toolbox[0:first]
        toolboxAlias=toolbox[first+1:last]
        toolbox_dic[toolboxAlias] =toolboxName 
        arcpy.AddMessage(u"工具箱:{0},别名:{1}".format(toolboxName,toolboxAlias
    
    # 工具数量统计
    arcpy.AddMessage(u"工具:"
    for tool in tools:
        first=tool.index("_"
        toolName=tool[0:first]
        toolAlias=tool[first+1:]
        if toolAlias in toolbox_dic:
            arcpy.AddMessage(u"{}:{}".format(toolbox_dic[toolAlias],toolName
            if len(csv_file != 0:
                result=[toolbox_dic[toolAlias],toolAlias,toolName]
                csv_writer.writerow(result
        else:
            arcpy.AddMessage(u"未知工具箱:{}".format(toolName
            if len(csv_file != 0:
                result=[u"未知工具箱","",toolName]
                csv_writer.writerow(result
except arcpy.ExecuteError: 
    arcpy.AddError(arcpy.GetMessages(2    
except: 
    e = sys.exc_info([1]
    arcpy.AddError(e.args[0]  

版本选择

不同的人对版本需求和认识不同,下面仅代表我个人的观点:

    9.3:非常稳定,经典,英文版,有中文补丁,但淘汰;
  • 10.0:第一个中文版,最不稳定;
  • 10.2.2:功能全面,性能稳定,比较普遍之一;
  • 10.4:不太稳定。
  • 10.8:最后一个版本,不再有ArcMap10.9,解决了高分辨率屏显示、标注窗口卡顿问题;
  • Pro:全新的64位架构,话说会取代Desktop,但这个时间可能会有点久。就像CAD都出2023了,还是有人在使用CAD 2007.

如果学生使用推荐:10.8 、 Pro

编程笔记 » ArcGIS工具 - 统计工具数量

赞同 (22) or 分享 (0)
游客 发表我的评论   换个身份
取消评论

表情
(0)个小伙伴在吐槽