请将上面代码转为arcgis10.2.2工具箱python脚本代码
时间: 2024-03-05 07:54:57 浏览: 146
好的,以下是一个在ArcGIS 10.2.2中运行的工具箱Python脚本代码示例,用于将方位和经纬度信息批量转换为箭头点:
```python
import arcpy
# 获取工具箱参数
input_fc = arcpy.GetParameterAsText(0) # 输入要素类
direction_field = arcpy.GetParameterAsText(1) # 包含方向信息的字段
output_fc = arcpy.GetParameterAsText(2) # 输出要素类
# 定义箭头符号
arrow_symbol = "C:/Program Files (x86)/ArcGIS/Desktop10.2/Styles/Arrows/arrow2.gdb/arrow2"
# 创建输出要素类
arcpy.CreateFeatureclass_management(arcpy.env.scratchGDB, "temp_fc", "POINT")
# 遍历输入要素类中的所有要素
cursor = arcpy.SearchCursor(input_fc)
for row in cursor:
# 获取要素的经纬度信息
lon, lat = row.shape.centroid.X, row.shape.centroid.Y
# 创建新的点要素
new_point = arcpy.Point(lon, lat)
# 在新点要素上添加方向信息
arcpy.AddField_management("temp_fc", "direction", "DOUBLE")
icursor = arcpy.InsertCursor("temp_fc")
new_row = icursor.newRow()
new_row.shape = new_point
new_row.direction = row.getValue(direction_field)
icursor.insertRow(new_row)
del icursor, new_row
# 创建新的箭头要素
arcpy.management.SymbolizeFeatures("temp_fc", arrow_symbol, "direction", output_fc)
# 删除中间结果
arcpy.Delete_management("temp_fc")
# 设置工具箱输出参数
arcpy.SetParameterAsText(2, output_fc)
```
在上面的示例代码中,首先获取工具箱输入的参数,包括输入要素类、包含方向信息的字段和输出要素类。然后定义了一个箭头符号,用于表示箭头的样式。接着创建了一个新的要素类,用于存储中间结果。然后遍历输入要素类中的所有要素,获取每个要素的经纬度信息和方向信息,然后在中间结果上添加方向信息,最后使用箭头符号将中间结果转换为箭头要素,并将其写入到输出要素类中。最后设置工具输出参数为输出要素类。需要注意的是,在ArcGIS 10.2.2中,需要使用旧的SearchCursor和InsertCursor来遍历和编辑要素类。
阅读全文