试图从X,Y,坐标

时间:2016-06-06 03:24:59

标签: math cursor arcpy

我使用了一个公式来创建一个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])

任何建议都会非常感谢我需要尽快解决这个问题! 最好

1 个答案:

答案 0 :(得分:0)

这应该是在gis.stackexchange.com。

很难说明你的目标是什么,但我还是猜测了......如果你想根据属性表中更新的坐标重新定位现有点,试试以下之一。

简单的无脚本解决方案就是:

  • 将您的属性表导出到csv
  • 使用添加XY数据将csv导入为新图层

在导入过程中,您可以将几何设置为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循环中被引用,则不要包含它们。

强烈建议您练习原始数据集的副本。