【发布时间】:2021-03-23 00:53:07
【问题描述】:
我正在编写一个 ArcGIS Pro 加载项,并希望以编程方式查看地理处理历史中的项目。这样做的目的是获取使用的参数和工具的列表,以便以后能够更好地理解和重新创建工作流,也许在另一个项目中我们无法直接访问 ArcGIS Pro 中的历史记录。
在对我的代码中的文档、在线帖子和调试断点进行大量搜索之后,我发现其中一些数据确实存在于 HistoryProjectItem 类中,但由于这是一个私有类成员,在一个密封的类似乎我无法访问这些数据。我看到此数据的另一个地方不太理想,用户可以选择将地理处理历史写入位于/AppData/Roaming/ESRI/ArcGISPro/ArcToolbox/History 中的 XML 日志文件。我们的团队被告知这个文件可能是一个问题,因为某些递归操作可能会导致文件膨胀失控,并且在网上阅读后,似乎大多数人都希望禁用此设置以避免大型日志文件占用他们的空间机器。总的来说,日志文件似乎不是一个很好的选择,因为我们担心它会在用户工作时让程序写入大型日志文件,从而降低用户的速度。
我想知道这些数据是否存储在我错过的某个可以从加载项以编程方式访问的地方。在我看来,无论用户设置如何,Project.Items 中的数据总是被存储,但由于类成员可见性,这种方式似乎无法访问。我不熟悉地理数据库和 ArcGIS 文件格式,不知道项目是否总是有一个 .gdb,也许我们可以从那里读取历史记录。
任何关于如何以对用户的干扰最小的方式更好地阅读地理处理历史的见解都是理想的。这些数据在其他地方可用吗?
【问题讨论】: