import arcpy# 设置工作空间及输入数据路径arcpy.env.workspace = r"C:\data"input_fc1 = "roads.shp"input_fc2 = "rivers.shp"# 创建输出数据路径及名称output_fc = r"C:\data\intersect.shp"# 执行 intersect 分析arcpy.Intersect_analysis([input_fc1, input_fc2], output_fc)。无法设置参数cluter-tolerance正确代码实现
时间: 2023-11-04 21:04:24 浏览: 37
`arcpy.Intersect_analysis()` 函数的第三个参数是 `cluster_tolerance`,用于设置集群容差。如果没有指定,则使用默认值 0。
下面是设置 `cluster_tolerance` 的示例代码:
```python
import arcpy
# 设置工作空间及输入数据路径
arcpy.env.workspace = r"C:\data"
input_fc1 = "roads.shp"
input_fc2 = "rivers.shp"
# 创建输出数据路径及名称
output_fc = r"C:\data\intersect.shp"
# 设置集群容差
cluster_tolerance = "0.001 meters"
# 执行 intersect 分析
arcpy.Intersect_analysis([input_fc1, input_fc2], output_fc, cluster_tolerance)
```
在上面的代码中,`cluster_tolerance` 被设置为 `"0.001 meters"`。您可以根据需要进行调整。注意,集群容差的单位必须与数据的坐标系统一致。
相关问题
>>> import sys ... ... reload(sys) ... ... sys.setdefaultencoding('utf-8') ... ... import arcpy ... ... import string ... ... try: ... ... workspace = 'C:\Users\Administrator\Desktop\\qwe' ... ... outdb = 'C:\Users\Administrator\Desktop\\lutian.mdb' ... ... arcpy.env.workspace = workspace ... ... files = arcpy.ListFiles('*.*db') ... ... arcpy.env.workspace = outdb ... ... fcs = arcpy.ListFeatureClasses() ... ... fcs = fcs + arcpy.ListTables() ... ... dss = arcpy.ListDatasets() ... ... for File in files: ... ... for fc in fcs: ... ... arcpy.Append_management(workspace + '\\' + File + '\\' + fc, outdb + '\\' + fc) ... ... for ds in dss: ... ... fcs1 = arcpy.ListFeatureClasses(feature_dataset = ds) ... ... for fc1 in fcs1: ... ... arcpy.Append_management(workspace + '\\' + File + '\\' + ds + '\\' + fc1, outdb + '\\' + ds + '\\' + fc1) ... ... except arcpy.ExecuteError: ... ... print arcpy.GetMessages() ... Parsing error IndentationError: expected an indented block (line 13),展示修改后的代码
这里是修改后的代码,你可以尝试运行看看。
```python
import sys
import arcpy
import string
reload(sys)
sys.setdefaultencoding('utf-8')
try:
workspace = 'C:\Users\Administrator\Desktop\\qwe'
outdb = 'C:\Users\Administrator\Desktop\\lutian.mdb'
arcpy.env.workspace = workspace
files = arcpy.ListFiles('*.*db')
arcpy.env.workspace = outdb
fcs = arcpy.ListFeatureClasses()
fcs = fcs + arcpy.ListTables()
dss = arcpy.ListDatasets()
for File in files:
for fc in fcs:
arcpy.Append_management(workspace + '\\' + File + '\\' + fc, outdb + '\\' + fc)
for ds in dss:
fcs1 = arcpy.ListFeatureClasses(feature_dataset = ds)
for fc1 in fcs1:
arcpy.Append_management(workspace + '\\' + File + '\\' + ds + '\\' + fc1, outdb + '\\' + ds + '\\' + fc1)
except arcpy.ExecuteError:
print arcpy.GetMessages()
```
修改后的代码中,缩进问题已经被修复,每个代码块都正确缩进。另外,由于你使用了Python 2.x版本,所以在代码中加入了`reload(sys)`和`sys.setdefaultencoding('utf-8')`,以确保正确处理中文字符集。
import arcpy # 设置工作空间 arcpy.env.workspace = r"D:\多对一空间连接\多对一空间连接.gdb" # 输入要素类 input_fc = arcpy.GetParameterAsText(0) # 自定义字段名 field_name = arcpy.GetParameterAsText(1) # 自定义字段值 field_value = arcpy.GetParameterAsText(2) # 输出要素类路径 output_fc = arcpy.GetParameterAsText(3) # 构建查询语句 query = "{} = '{}'".format(field_name, field_value) # 选择要素 arcpy.Select_analysis(input_fc, output_fc, query)运行错误:Traceback (most recent call last): File "D:\多对一空间连接\批量导出数据.py", line 16, in <module> NameError: name 'field_value' is not defined 执行(批量导数据)失败。请改正代码
这个错误提示是因为在第12行中,`field_value`没有被定义,可能是因为在输入参数时没有传入第三个参数,请检查一下参数设置。你可以在代码的开头添加一些调试代码,如下所示:
```python
import arcpy
# 设置工作空间
arcpy.env.workspace = r"D:\多对一空间连接\多对一空间连接.gdb"
# 输入要素类
input_fc = arcpy.GetParameterAsText(0)
print("input_fc:", input_fc)
# 自定义字段名
field_name = arcpy.GetParameterAsText(1)
print("field_name:", field_name)
# 自定义字段值
field_value = arcpy.GetParameterAsText(2)
print("field_value:", field_value)
# 输出要素类路径
output_fc = arcpy.GetParameterAsText(3)
print("output_fc:", output_fc)
# 构建查询语句
query = "{} = '{}'".format(field_name, field_value)
# 选择要素
arcpy.Select_analysis(input_fc, output_fc, query)
```
这样可以帮助你找到问题所在。