这只是我在这里的第二篇帖子,所以如果我错过了什么,我会道歉。我已经四处寻找我的答案,但即使从哪里开始我也有点不知所措。我正在进行Python和GIS入门课程,并且在学期结束时我们有一个最终项目。我们花了11周的前9周学习Python基础知识,但只花了2周时间来覆盖任何与ArcGIS(arcpy)相关的内容。
我的任务是:
我有一个覆盖有高分辨率栅格的县的基本地图,分为区域。每个地区都有一个城市作为其中的一个重点。共有8个城市。我的项目是创建一个Python脚本,可以将我的地图导出为mdx和/或pdf文档,然后平移/放大地图上的每个城市点,并创建和导出每个城市的子地图。规模更大(放大)。每个地图都应该重新标记一个标题等,但在大多数情况下,我的主要目标只是放大一个点并导出一个新的地图文档。
我花了一周时间研究游标和arcpy的基础知识,但据我所知,这是我的知识。从阅读起,听起来我将不得不使用arcpy和arcpy.mapping。有人告诉我,我可以创建一个带有字段的表格并使用游标来实现我的目标。
任何人都可以帮我指出在哪里/如何开始编写此脚本,在哪里阅读,或者基础脚本或想法?
我可以通过电子邮件向任何人发送我的地图,但数据会更难,为310mb。
答案 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)引导您完成典型的步骤。
要一次浏览一个城市,您可能希望SearchCursor与Select 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)