如何防止数据驱动页面在后续导出中挂起?


9

我正在使用ArcMap 10.3.0,并通过数据驱动页面(DDP)导出。DDP导出第一次按预期方式工作,并立即进行后续导出,但是如果我使用DDP 从同一MXD进行大约一分钟左右(时间不同)后再次导出,则程序挂起,我必须将其关闭通过任务管理器。

单击“导出”后,我可以判断它是否将挂断,因为“导出”窗口不显示“ x的x页”文本。在此处查看屏幕截图:https : //geonet.esri.com/message/536459#536459。即使我让计算机运行一会儿,“ x的x页”文本也不会出现,并且不会发生导出。仅在从MXD超过一分钟后,随后的导出才会发生这种情况。

无论我是第一次导出单个页面还是整个文档,这种情况似乎都会发生。但是,如果我使用新名称重新保存MXD,然后将其导出,则该MXD始终会挂断并要求重新启动ArcMap。无论我是创建新的PDF文件还是覆盖现有的PDF文件,似乎都会出现问题。

其他信息:

  • 我的地图由一个ESRI空中底图(没有其他栅格图层)组成,具有五个10000'x 10000'激光雷达轮廓shapefile和大约10个其他小的矢量shapefile图层。
  • 我的导出设置为:300 dpi分辨率和输出图像质量/重采样比1:2。
  • 我正在这座大楼的数据服务器上工作,但是连接速度却有所不同。
  • 另一位同事在他的计算机上使用相同的MXD遇到相同的问题。

编辑后添加此错误消息:在ArcMap挂起在随后的导出上并在任务管理器中单击“结束任务”后出现。这只是我第二次或第三次收到此错误消息,但我认为这可能是无关紧要的。(此外,我没有错误消息中所示的f:/驱动器。)

在此处输入图片说明

有人在GeoNet上提出了以下问题:https ://geonet.esri.com/thread/161564 她的问题没有解决方案,因此我想在这里再次提出。

有什么方法可以防止ArcMap在随后的DDP导出中挂起?

编辑以添加此代码段,该代码段将产生多个导出而不会挂起:

import_path = r"R:\Projects\Project\GIS\MXDs\Project_property_maps.mxd"   # Path of .mxd
export_path = r"C:\Users\user\Desktop\test\Test"   # Path of output file
field_name = "Project_INDEX.Pg_num" # Name of field used to sort DDP
pg_name = "Project_INDEX.Desc_" # Name of field used in PDF file name

mxd = arcpy.mapping.MapDocument(import_path) 
for i in range(1, mxd.dataDrivenPages.pageCount + 1):
   mxd.dataDrivenPages.currentPageID = i
   row = mxd.dataDrivenPages.pageRow
   print row.getValue(field_name)
   arcpy.mapping.ExportToPDF(mxd, export_path + row.getValue(pg_name) + ".pdf") 
del mxd

您是否从打印功能中看到类似的东西。在10.2上,我遇到一个问题,即打印对话框无法正确激活,然后arcmap会挂起,类似于您所描述的。只是想知道它们是否可能相关。
布拉德·尼索姆

另外,请尝试导出1页,然后再次导出1页。看看是否会改变结果。
Brad Nesom 2015年

我对某些MXD有类似的问题,但不是大多数,而且我还无法弄清楚为什么只有少数MXD做到这一点。就我而言,Arcmap只是崩溃而不是挂起,因此至少我不必等待发现它不起作用。情况是一样的:第一次从DDP导出可以正常工作,第二次则不能。关闭并重新打开MXD将使我可以再次导出。
Dan C

文件名和崩溃对我来说似乎没有任何联系。我现在正在处理一系列数据,大约有20个MXD,它们在MXD文件名和导出的文件名中都具有句点和连字符。他们大多数都能正常工作,但并非全部。
Dan C

可能有某种原因,我只是想通过导出然后立即重新导出来重现该问题,并且效果很好。
Dan C

Answers:


6

基于@Adam的评论,我使用Python脚本导出了数据驱动页面MXD,而随后的导出没有任何问题。使用Python进行导出似乎已经解决了我遇到的问题。

我使用了以下脚本,该脚本是作为脚本添加到ArcMap工具箱中的。(由于包含了参数,该脚本将仅通过Toolbox运行。)

#Set Input Parameters
mxd = arcpy.GetParameterAsText(0) 
PDFpath = arcpy.GetParameterAsText(1) 
PDFname = arcpy.GetParameterAsText(2)

#Create an MXD object
mxd_doc = arcpy.mapping.MapDocument(mxd) 

#Export to DDP 
ddp = mxd_doc.dataDrivenPages 
ddp.exportToPDF(PDFpath + r"\\" + PDFname + ".pdf", "ALL") 
del mxd, mxd_doc, PDFname, PDFpath

我想进一步修改我的脚本,以便能够指定应该导出哪些页面(而不是默认为“ ALL”),但这已经足够满足我现在的需求。


3

到目前为止,由于这仅引起了评论(包括我自己的评论),因此,我将抓住一个机会并弄清楚问题(如果不是Windows OS的一个谜)是由多达四个相互关联的事物引起的。

  1. 您的背景栅格非常高分辨率
  2. 您的出口DPI非常大
  3. 您的输出图像质量/重采样率设置为1:1
  4. 您的数据服务器的位置和/或连接速度正在引起打cup

这些的某种组合使您的DDP导出挂起。通过“某种组合”,可能仅意味着其中之一。

如果我不得不选择一个我会考虑的最后一个,尤其是如果我使用ESRI在线产品或具有网络或远程驱动器上非常大的数据集-甚至是矢量数据,特别是因此,如果我们谈论的Shapefile(只当视图中有500万个顶点时,请尝试使用测量工具:)。

不幸的是,这种挂断似乎也同时破坏了.mxd文件。从根本上讲,这似乎实际上是Bug-in-ArcMap™,但我找不到任何迹象表明ESRI知道或正在为此做任何事情。

剩下的劳动密集型解决方案

  • 准备发布时保存.mxd,
  • 导出一次(无论是单个页面,页面范围还是所有页面),
  • 然后关闭而不保存,
  • 然后再次打开.mxd,为每个后续导出重复第二步和第三步。

>编辑

基于最近链接的问题(我怎么会错过那个问题?)并且ESRI 尚未正式意识到- 请在此处查看此PDF,我想这与Basemap Service与DDP的交互有关(尤其是页面旋转数据时)框架)。这个问题似乎是10.3和10.3.1特有的,如果没有正式的修复,可能无法解决。


1)我使用的是ArcMap空中底图,没有其他栅格图像。2)我的出口DPI是300,我认为不会太大(但也许其他人会这样?),并且3)我的重采样比率是1:2。4)我正在我们大楼中的服务器上工作,但是连接速度有所不同。它还使用了一个锁定文件系统,该文件系统可能在其他地方引起问题。
萨拉·巴恩斯

这是对某些潜在问题的总结,而解决方法基本上是我一直在做的事情。我将通过删除大型数据集进行更多测试,看看是否有帮助。不幸的是,这些将出现在我的地图上,因此,即使它不是永久性的解决方案,至少也可以帮助您理解问题。
萨拉·巴恩斯

您是否尝试过重新安装ArcGIS?
ianbroad

@ian我还没有尝试过重新安装它。有空的时候我可以。另一个同事使用相同的文件存在相同的问题/错误。
萨拉·巴恩斯

1
@SaraBarnes-如果您找到自己的答案,则可以发布并获得好评。否则编辑您的问题。-我不经常使用DDP,但我确实会帮助其他生成项目图集的人,因此,我很高兴听到您的发现。-尽管答案是-“ Install 10.3.2” :)虽然我不会感到惊讶,但是
user23715

3

我今天遇到了同样的问题。我致电ESRI支持并提出了解决方法。问题在于将所有数据驱动页面导出为PDF,地理处理结果和比例相关页面。

解决方法:

我没有通过典型的底图按钮添加图像底图,而是在ArcCatalog中添加了新的ArcGIS Server并连接到 http://services.arcgisonline.com/arcgis/services并将“ World_Imagery”层拖到目录中,然后清除了我的地理处理结果,然后在数据驱动页面中删除了比例尺相关选项。


“数据驱动页面”中的“删除比例相关选项”是什么意思?我没有看到这个选项。我在10.3.0中。谢谢。
萨拉·巴恩斯

在“数据驱动”对话框的“范围”选项卡中,确保将单选按钮设置为“最佳拟合”或“居中并保持当前刻度”,
而不

我很高兴为您服务,但这是我使用的选项,但我仍然收到错误消息。不过,我非常感谢您的发布-这对以后的其他人可能会有所帮助。
萨拉·巴恩斯
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.