我使用了一个公式来创建一个X和Y坐标,我想创建一个点。它们保存在属性表中,我不知道如何将这些点用于几何。这是代码:
cursor01 = arcpy.da.InsertCursor(OutPutCent,["SHAPE@X", "SHAPE@Y","Xcoord","Ycoord","totpop", "NAME","STATE_NAME","POLY_ID", "OBJECTID", "STATE_FIPS", "CNTY_FIPS", "FIPS", "FIPSnum","FIPS_NUMER" ])
#if row[0] >= 5.2:
cursor01.insertRow([XPoint,YPoint,centroid_X1,centroid_Y1,TotalPop1,thecntyName1,TheStateName1,idpoly1, idobject1, stateFIPS1, countyFIPS1, fips1, fipSnum1, fipsNumer1])
任何建议都会非常感谢我需要尽快解决这个问题! 最好
答案 0 :(得分:0)
这应该是在gis.stackexchange.com。
很难说明你的目标是什么,但我还是猜测了......如果你想根据属性表中更新的坐标重新定位现有点,试试以下之一。
简单的无脚本解决方案就是:
在导入过程中,您可以将几何设置为Xcoord,Ycoord属性字段,以便新数据集具有更新的位置。然后只修剪你不想要的任何记录 - 看起来你在过滤某些价值?按属性选择并删除不符合条件的行。
或者,使用来自attibute表的新坐标更新现有几何图形的结构正确的模板是:
with arcpy.da.UpdateCursor(dataset, ['SHAPE@XY', 'point_unique_id_or_name', 'conditional_field', 'X_coord', 'Y_coord']) as cursor:
update_count = 0
for row in cursor:
if row[conditional_field_index] meets condition:
updated_point = (row[X_coord_index], row[Y_coord_index])
row[SHAPE@XY_index] = updated_point
cursor.updateRow(row)
print "{} location updated".format(row[point_unique_id_or_name_index])
update_count += 1
print "{} point locations updated".format(update_count)
您只需要引用UpdateCursor中的相关字段 - 如果它们未在for循环中被引用,则不要包含它们。
强烈建议您练习原始数据集的副本。