从哪里开始?使用ArcMap和arcpy(从基本地图导出子集映射)

时间:2017-04-11 16:09:19

标签: cursor mapping gis arcpy

这只是我在这里的第二篇帖子,所以如果我错过了什么,我会道歉。我已经四处寻找我的答案,但即使从哪里开始我也有点不知所措。我正在进行Python和GIS入门课程,并且在学期结束时我们有一个最终项目。我们花了11周的前9周学习Python基础知识,但只花了2周时间来覆盖任何与ArcGIS(arcpy)相关的内容。

我的任务是:

我有一个覆盖有高分辨率栅格的县的基本地图,分为区域。每个地区都有一个城市作为其中的一个重点。共有8个城市。我的项目是创建一个Python脚本,可以将我的地图导出为mdx和/或pdf文档,然后平移/放大地图上的每个城市点,并创建和导出每个城市的子地图。规模更大(放大)。每个地图都应该重新标记一个标题等,但在大多数情况下,我的主要目标只是放大一个点并导出一个新的地图文档。

我花了一周时间研究游标和arcpy的基础知识,但据我所知,这是我的知识。从阅读起,听起来我将不得不使用arcpy和arcpy.mapping。有人告诉我,我可以创建一个带有字段的表格并使用游标来实现我的目标。

任何人都可以帮我指出在哪里/如何开始编写此脚本,在哪里阅读,或者基础脚本或想法?

我可以通过电子邮件向任何人发送我的地图,但数据会更难,为310mb。

1 个答案:

答案 0 :(得分:2)

由于它是家庭作业,我只是将您指向项目的相关帮助页面,让您尝试填写空白。我在工作中做了很多次,许多其他GIS专业人员也这样做 - 自动映射是将ArcMap与Python脚本结合起来的最有用的方法之一。但学习如何做到这一点也很重要;)

旁注:“这里是脚本工作流程”和“这里是一个脚本”之间会有一些绊脚石(好的,你正在向他们学习) - 我建议您在GIS.SE而不是StackOverflow上发布,以获得更快的GIS特定答案。

  • ArcPy是Python模块,可让您在Python脚本中使用ArcMap函数。所以是的,你需要ArcPy。 (幸运的是,它会自动安装在任何安装了ArcGIS Desktop的计算机上。)有几十个tutorials and ways to learn ArcPy,但通常只是尝试使用Python命令复制常规桌面工作流程同样有效。

  • 有两种方法可以使用与地图文档(例如此项目)相关的Python脚本:作为独立(例如mapmaker.py Python脚本),或在ArcMap Python window内。有些事情在窗口内更容易,但是有一个独立的脚本可以很好地保存你的工作(或将其转入) - 提前计划你将使用它。通常脚本工作流程是相同的,但变量会有所不同;在询问GIS.SE问题时,请具体说明您的脚本是否是独立的。

  • 从Python创建地图分为两个部分。

    首先,您必须设计一个包含所需信息的地图布局 - 北向箭头,标题,数据框等。这是Python脚本可以导出的内容的基础。您的制图也是如此,并保存该MXD文件。如果没有要引用的MXD,则无法构建脚本。

    其次,您的脚本需要使用该MXD来生成一堆PDF。这是通过arcpy.mapping库完成的。有一个不错的tutorial(来自Esri)引导您完成典型的步骤。

  • 要一次浏览一个城市,您可能希望SearchCursorSelect Layer By Attribute结合使用。对于每个城市名称(或其他唯一标识符),您需要创建新选择,缩放到所选点,然后export a pdf。伪代码:

    with arcpy.da.SearchCursor(city_layer, ["CITY_NAME"]) as cursor:
        for row in cursor:
            # select city_layer based on row[0]
            # zoom to that city (ref. arcpy.mapping commands)
            # export a map (ref. arcpy.mapping commands)