用arcpy将 EX2 的文本文件 parcels.txt 中地块的信息及图斑多边形写入一个 ShapeFile 文件中
时间: 2024-06-12 13:07:16 浏览: 99
以下是使用 arcpy 将 parcels.txt 中地块信息和图斑多边形写入 ShapeFile 文件的代码:
```python
import arcpy
# 设置工作空间和输出 ShapeFile 文件名
arcpy.env.workspace = r"C:\data"
output_shapefile = "parcels.shp"
# 创建一个空的 ShapeFile 文件
arcpy.CreateFeatureclass_management(arcpy.env.workspace, output_shapefile, "POLYGON")
# 添加字段:地块 ID 和地块面积
arcpy.AddField_management(output_shapefile, "parcel_id", "LONG")
arcpy.AddField_management(output_shapefile, "area", "DOUBLE")
# 打开 parcels.txt 文件并遍历每一行
with open("parcels.txt", "r") as f:
# 读取第一行,即表头,跳过
f.readline()
# 遍历每一行
for line in f:
# 分割每一行,并将信息存储到变量中
fields = line.strip().split(",")
parcel_id = int(fields[0])
area = float(fields[1])
# 从第三个元素开始获取所有坐标点
coords = [float(x) for x in fields[2:]]
# 将坐标点转换为 arcpy.Point 对象
points = []
for i in range(0, len(coords), 2):
points.append(arcpy.Point(coords[i], coords[i+1]))
# 创建一个多边形对象,并将其添加到 ShapeFile 文件中
polygon = arcpy.Polygon(arcpy.Array(points))
cursor = arcpy.da.InsertCursor(output_shapefile, ["SHAPE@", "parcel_id", "area"])
cursor.insertRow([polygon, parcel_id, area])
del cursor
```
这个代码将创建一个名为 "parcels.shp" 的 ShapeFile 文件,并从 "parcels.txt" 文件中读取地块信息和多边形坐标点。每个多边形对象都将添加到 ShapeFile 文件中,并与其相应的地块 ID 和面积一起写入。
阅读全文