import arcpy # 输入数据路径和名称 input_fc = arcpy.GetParameterAsText(0) # 设置删除的面积阈值 threshold_str = arcpy.GetParameterAsText(1) threshold = float(threshold_str) # 输出数据路径和名称 output_fc = arcpy.GetParameterAsText(2) # 创建一个新的要素类,作为输出 arcpy.CreateFeatureclass_management( out_path=os.path.dirname(output_fc), out_name=os.path.basename(output_fc), geometry_type="POLYGON", spatial_reference=input_fc ) # 打开输入要素类的游标 with arcpy.da.SearchCursor(input_fc, ["SHAPE@", "SHAPE_Area"]) as cursor: # 打开输出要素类的游标 with arcpy.da.InsertCursor(output_fc, ["SHAPE@"]) as icursor: # 遍历每一个要素 for row in cursor: # 如果面积小于阈值,则跳过 if row[1] < threshold: continue # 否则将要素插入到输出要素类中 icursor.insertRow([row[0]])运行错误:IndentationError: unexpected indent (批量删除小面积.py, line 11) 执行(删除小面)失败。请改正代码
时间: 2023-12-24 13:01:57 浏览: 175
使用arcpy获取简单的矢量数据信息.zip_arcPy 查询_arcpy 数据读入_arcpy 读取数据_arcpy矢量拼接
该代码的问题在于第11行的缩进有误,应该把该行缩进调整到与前面的代码对齐。正确的代码如下:
```python
import arcpy
# 输入数据路径和名称
input_fc = arcpy.GetParameterAsText(0)
# 设置删除的面积阈值
threshold_str = arcpy.GetParameterAsText(1)
threshold = float(threshold_str)
# 输出数据路径和名称
output_fc = arcpy.GetParameterAsText(2)
# 创建一个新的要素类,作为输出
arcpy.CreateFeatureclass_management(
out_path=os.path.dirname(output_fc),
out_name=os.path.basename(output_fc),
geometry_type="POLYGON",
spatial_reference=input_fc
)
# 打开输入要素类的游标
with arcpy.da.SearchCursor(input_fc, ["SHAPE@", "SHAPE_Area"]) as cursor:
# 打开输出要素类的游标
with arcpy.da.InsertCursor(output_fc, ["SHAPE@"]) as icursor:
# 遍历每一个要素
for row in cursor:
# 如果面积小于阈值,则跳过
if row[1] < threshold:
continue
# 否则将要素插入到输出要素类中
icursor.insertRow([row[0]])
```
请注意,在Python中,缩进是非常重要的,因为它决定了代码的执行顺序。因此,必须谨慎地检查代码中的缩进是否正确。
阅读全文