使用ArcPy在ArcGIS Desktop中批量剪切?


12

对于较旧版本的ArcGIS,我遇到了一些类似的问题,但是找不到适用于ArcGIS 10的合适答案。

我有两个覆盖整个区域(例如整个州/省)的多边形shapefile。第一个shapefile代表整个州的土地覆盖,第二个shapefile代表50个单独的分水岭。我想根据每个分水岭(每个字段在字段中存储一个唯一的名称)来裁剪土地覆盖图形文件。然后,我想使用分水岭名称保存输出的裁剪文件(50个分水岭中的每一个)。

假设要执行50个剪辑,此过程非常适合批处理。


1
对于较旧版本的ArcGIS,您发现了什么,又使它们不适合与ArcGIS 10一起使用?
nmpeterson

2
@Radar看看这个问题:gis.stackexchange.com/q/8104/1297它涵盖了您要寻找的内容。如果您需要任何修改帮助,请告诉我。我已将其标记为可能重复。
SaultDon 2012年

@SaultDon:你是说在溶液(S)gis.stackexchange.com/q/8104/1297绝对会还ArcGIS 10中的工作?
whuber

@SaultDon-对ArcGIS 10中的光标进行了一些更改,使该特定答案过时。我希望找到适用于Arc10的最佳解决方案,而不仅仅是9.3脚本的黑手版本。
雷达2012年

@whuber并非如此,需要的更改可能并不明显。雷达-您说对了,他们更简单=)
SaultDon'2

Answers:


17

以下脚本将多边形分水岭剪辑到多边形县边界,为每个输出要素类命名,例如HspWBD_HU12_county名称。经过测试,可以正常工作。确保您在NAME字段中的值没有特殊字符或空格(简单的Python字符串方法可以为您清除这些字符)。

import arcpy

arcpy.env.workspace = r'D:\Projects\GDBs\slowbutter.gdb\IPAS'
rows = arcpy.SearchCursor('HspAOI')
for row in rows:
    feat = row.Shape
    arcpy.Clip_analysis('HspWBD_HU12', feat, 'HspWBD_HU12_' + str(row.getValue('NAME')), '')

虽然经典型游标绝对完美!
SIslam


2

这听起来与“分析”工具箱中的“ 拆分”工具完全一样。

但是,它需要ArcInfo许可证才能运行,因此大多数ArcGIS Desktop用户无法使用该许可证,因此我喜欢Chad的答案,该答案也适用于具有ArcView和ArcEditor级别许可证的ArcGIS 10 Desktop用户。


-1

如果首先以批处理模式运行另一个工具,则可以按照所需的方式执行此操作:转换工具>到地理数据库>要素类到要素类。这样一来,您就可以使用表达式来获取分水岭图层,并以单个方式拉出每个分水岭并将其保存为自己的要素类,然后您将拥有50个单独的图层,可以在批处理模式下使用“裁剪”工具。


2
我很感谢您的回答,但这似乎不是一个非常有效的解决方案。我宁愿不要创建50个单独的分水岭文件,然后再创建50个其他裁剪文件。
雷达

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.