如何使用arcpy计算TEXT字段?

有一个DEM影像,先创建了不同网眼数目的渔网,之后想要将每张渔网的各个孔提出来成为单独的shp,这个操作需要渔网有TEXT的字段,所以想要添加一个TEXT字段,之后将其赋值上FID的字符串。 运行报错说不是PYTHON的语句,请问应该怎么写呢?
# -*- coding: cp936 -*-
import arcpy
import os
from arcpy import env
env.workspace = "D:\\dasanshang\\Scrip"
# Set coordinate system of the output fishnet
env.outputCoordinateSystem = arcpy.SpatialReference("WGS 1984 UTM Zone 46N")
originCoordinate = '305165.223137 3208374.91521'
yAxisCoordinate = '305165.223137 3208375.91521'
#创建渔网
for i in range(10,100,10):
outFeatureClass = "fishnet"+str(i)+".shp"
# Set the origin of the fishnet
cellSizeWidth = 0
cellSizeHeight = 0
numRows = str(i)
numColumns = str(i)
oppositeCoorner = '403565.223137 3320484.91521'
NoLables = 'NO_LABLES'
templateExtent = '#'
geometryType = 'POLYGON'
arcpy.CreateFishnet_management(outFeatureClass, originCoordinate, yAxisCoordinate, cellSizeWidth, cellSizeHeight,numRows, numColumns, oppositeCoorner, "NO_LABELS", "#", geometryType)

#Spilt成不同的shp 用于分割栅格
for i in range(10,100,10):
in_features = "fishnet" + str(i) + ".shp"
split_features = "fishnet" + str(i) + ".shp"

out_workspace = str(env.workspace) + "\\temp\\fishnet"+ str(i)
os.mkdir(os.path.join(str(env.workspace)+"\\temp" , "fishnet"+str(i)))
#给每个渔网新建字段
fieldname = "ID" + str(i)
arcpy.AddField_management (in_features, fieldname, "TEXT")
expression = 'str(!FID!)'
#给新建字段赋值
arcpy.CalculateField_management (in_features, fieldname,expression,"PYTHON3")

split_field = fieldname
arcpy.Split_analysis(in_features, split_features,split_field, out_workspace, "#")
已邀请:

zsf - SGG

赞同来自:

不晓得是否为PYTHON3表达式的问题,PYTHON3似乎已经不用str类型了。
表达式类型试试"PYTHON_9.3"
另外,用VB的话,表达式可以直接写"FID",VB会自动处理类型

要回复问题请先登录注册