ESRI作为GIS行业中的龙头,代表产品ArcGIS也在不断地优化和升级,从10.0开始已发布了8个版本,其工具箱(ToolBox)是它一个特色,每个版本的工具箱数量是不相同的,为源地理来教您如何统计工具箱和工具个数和名称。

工具介绍

使用统计工具数量工具,可统计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.2.2 > 10.8 > 10.1

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

最新文章

  1. Heap堆的理解以及在IAR中如何设置堆的大小
  2. 简单工厂模式(Simple Factory)
  3. android.support.v4.app.Fragment和android.app.Fragment区别
  4. (hdu)5423 Rikka with Tree (dfs)
  5. 利用StringBuffer向字符串特定的重复子字符串插入数据
  6. Android AudioPolicyService服务启动过程
  7. 基于ATmgea8单片机设计的加热控制系统(转)
  8. C语言基础 - 实现动态数组并增加内存管理
  9. Angular 新手容易碰到的坑
  10. Beta 第六天
  11. GIT入门笔记(8)-- 查看历史提交记录/根据版本号回到过去或未来
  12. Warning: Using a password on the command line interface can be insecure.
  13. 网球pt站 T3nnis 情况说明
  14. python_flask 基础巩固(自定义URL转换器)
  15. [luogu P2294] [HNOI2005]狡猾的商人
  16. (17)什么是jQuery(jq的流程和基本操作)
  17. WIN7怎么把暴风影视库去除?
  18. 【redis】常用命令
  19. Windows UWP开发系列 – 控件默认样式
  20. beego 自定义模板函数

热门文章

  1. Invalid bound statement (not found): com.zheng.mapper.UserMapper.login
  2. Java中math类的常用函数
  3. SLAM中的内外点
  4. Java注解与原理分析
  5. 区分mbr与gpt分区
  6. 安装kali linux(干货)
  7. 图文详解在VMware Workstation 16 PRO虚拟机上安装Ubuntu 22.04.5 linux系统
  8. Linux中如何开启一个定时任务
  9. 6个tips缓解第三方访问风险
  10. Cesium-03:洪水淹没