Tengo características de punto que son seleccionadas por una característica de polígono y copiadas a su propio shapefile. También tengo ciertos valores de la característica de polígono que se aplican al archivo de puntos recién creado. El archivo de puntos ya tiene los campos requeridos que necesitan ser rellenados. Los campos enteros/flotantes se copian correctamente, pero el único valor del campo de cadena (SfcType)/fila[4] no se aplica. Me doy cuenta de que esto tiene que ver con el hecho de que es una cadena, pero no puedo encontrar la sintaxis correcta.
¿Alguien puede señalar mi (obvio) error?
from arcpy import * import os
arcpy.env.overwriteOutput = True
#Make feature layer of feature classes to allow selection
MakeFeatureLayer_management (inPolyfc, "Polylyr")
MakeFeatureLayer_management (inPointfc, "Pointlyr")
#Get name of OID field for sql expression
polyOIDfld = Describe ("Polylyr").OIDFieldName
#iterate through polygons with cursor
cursor = da.SearchCursor ("Polylyr", ["OID@", PolyIDfld, "Slope", "endelev", "SfcType", "NearID"])
for row in cursor:
#sql to select individual polygon
sql = '"{0}" = {1}'.format (polyOIDfld, str(row[0]))
#select individual polygon
SelectLayerByAttribute_management ("Polylyr", "", sql)
#select intersecting points
SelectLayerByLocation_management ("Pointlyr", "", "Polylyr")
#Check to make sure points are selected, ie at least one point actually intersects polygon
if Describe ("pointlyr").FIDSet:
FeatureClassToFeatureClass_conversion ("Pointlyr", outPath, str(row[1]))
print "Created Shapefile Named: " + str(row[1])
Fc = outPath + "/"+ str(row[1]) + ".shp"
arcpy.CalculateField_management (Fc, "Slope", str(row[2]))
print "Added SLope to " + Fc
Fc = outPath+ "/" + str(row[1]) + ".shp"
arcpy.CalculateField_management (Fc, "endelev", str(row[3]))
print "Added Rwy End Elev to " + Fc
Fc = outPath+ "/" + str(row[1]) + ".shp"
arcpy.CalculateField_management (Fc, "SfcType", str(row[4]))
print "Added Sfc Type to " + Fc
Fc = outPath+ "/" + str(row[1]) + ".shp"
arcpy.CalculateField_management (Fc, "NearID", str(row[5]))
print "Added NearID to " + Fc
#Create empty feature class if no points intersect
else:
print "No points were under the " + str(row[1]) + " surface"