制图模块 arcpy.mp 是一个 Python 模块,用于处理现有工程文件 (*.aprx) 或图层文件 (*.lyrx) 的内容。 您可以在应用程序中或无需打开应用程序对这些文件的内容进行修改。 该模块随 ArcGIS Pro 一同安装,并对所有许可均可用。
下面是一些可以使用 arcpy.mp 脚本完成的诸多工作流示例:
- 管理工程项目,例如布局、地图、报告、文件夹连接、数据库连接、工具箱和样式。
- 访问和修改工程设置,例如默认数据库、默认地理数据库和抗锯齿模式。
- 生成库存脚本以记录有关工程的信息、正在使用的图层、已损坏数据源、文件夹连接等。
- 在工程、地图或单个图层级别下更新、修复或替换数据源。
- 通过更改内容、添加或移除图层、更改图层符号系统或更改各种地图属性来创建或修改地图。
- 修改诸多图层属性之一,例如定义查询、可见性、时间设置、符号系统等。
- 自动导出布局、地图视图、地图系列和报告。
- 创建或修改布局上的元素,例如更改页面大小或方向、更新图片、插入图例、更改文本字符串等。
- 通过在导出过程包含用于生成页面特定更改的自定义逻辑扩展地图系列的功能。
- 通过附加、插入或删除多页 PDF 中的页面管理 PDF 地图册。
预期受众和目的
arcpy.mp 模块是专为专业的 GIS 分析人员何开发人员打造的。 以前,以上列出的方案必须使用 .NET SDK 来完成,然而事实多次证明,对于普通 GIS 专业人员而言,该编程环境非常难学。 arcpy.mp 模块是一种粗粒度对象模型,这意味着函数的设计原则是单个函数可代替多行更细粒度的 .NET 代码。 下面提供了示例脚本。
以下脚本用于更新工程中所有图层和表的文件地理数据库数据源的完整路径。 在本示例中,对文件夹进行了重命名,将所有矢量数据移动到了新位置并且将更改保存到工程。 脚本可以在应用程序外部运行,因为工程文件是使用完整路径引用的。
import arcpy
aprx = arcpy.mp.ArcGISProject(r'C:\Projects\YosemiteNP\Yosemite.aprx')
aprx.updateConnectionProperties(r'C:\Projects\YosemiteNP\Old_location\Yosemite.gdb',
r'C:\Projects\YosemiteNP\New_location\Yosemite.gdb')
aprx.save()注:
有关如何管理数据源的更多示例,请参阅更新和修复数据源。以下是如何使用 arcpy.mp 仅通过四行代码引用工程中的现有布局并将其导出至 PDF 文档的另一个示例。 该脚本必须在应用程序内部运行,因为正在引用当前工程。
aprx = arcpy.mp.ArcGISProject("CURRENT")
pdf = arcpy.mp.CreateExportFormat("PDF", r"C:\Project\YosemiteNP\Output\Yosemite.pdf")
lyt = aprx.listLayouts("Main Attractions*")[0]
lyt.export(pdf)入门提示
最佳入门方法如下:
- 按照 arcpy.mp 入门教程执行操作。
- 查看 arcpy.mp 指南。
- 如果您在该软件的较早版本中使用了 arcpy.mapping,而现在使用的是 ArcGIS Pro,请查看从 arcpy.mapping 迁移至 ArcGIS Pro。
- 查看按字母顺序排序的 arcpy.mp 函数列表和按字母顺序排序的 arcpy.mp 类列表以熟悉可用功能。 在使用 arcpy.mp 编写脚本时,还可将这些资料打印出来作为参考。
- 所有 arcpy.mp 函数和类的帮助主题都有详细的说明,并提供了可直接复制并粘贴到 Python 窗口、笔记本、脚本工具或 Python IDE 中的代码片段示例。
- 请访问 Python 地图自动化示例脚本页面,可从中下载更高级的解决方案。
拓展知识
现有 arcpy.mp API 可以访问用于自动化的许多常用功能,但是其功能范围没有 .NET SDK 广泛。 如果 API 不含您需要完成的内容,这并不意味着其无法完成。 API 的设计允许访问内部组件,这些组件会保留在工程或图层文件中保存的所有内容。 有关详细信息,请参阅 Python CIM 访问帮助主题,了解对其他功能的更高级访问。