Estoy trabajando en la agrupación personalizada en ArcMap. Para ello he creado una caja de herramientas en python, donde hago el procesamiento. Sin embargo, como resultado obtengo puntos ligeramente desplazados (6-20 metros), mientras que deben permanecer igual y sólo ser agrupados:
point = arcpy.Point()
# Spatial reference definition
desc = arcpy.Describe(nodes)
spatial_ref = desc.spatialReference
for key in clustering.keys():
cluster = 'CMPMT_Cluster_' + str(key)
out_cluster = os.path.join(output_dir, 'DataTest.gdb', cluster)
if len(clustering[key].keys()) > 1:
point_list = []
for k in clustering[key].keys():
if k != 'tot_cost':
point.X = clustering[key][k]['XY'][0]
point.Y = clustering[key][k]['XY'][1]
point_geometry = arcpy.PointGeometry(point)
point_list.append(point_geometry)
arcpy.CopyFeatures_management(point_list, out_cluster)
arcpy.DefineProjection_management(out_cluster, spatial_ref)
He comprobado las coordenadas que se pasan y están bien, también guardo otro archivo de puntos con la misma referencia espacial y está bien. ¿Cuál puede ser el problema?
UPD: como sugirió Vince en los comentarios, he examinado cómo paso la referencia espacial al objeto de geometría. Con el código actual actualizado funciona como es necesario:
point_geometry = arcpy.PointGeometry(point, spatial_ref)
point_list.append(point_geometry)
arcpy.CopyFeatures_management(point_list, out_cluster)