laptop and a wrench

Error

When geometry objects in ArcPy are updated using a cursor, the m-value defaults to 0 instead of null while setting the m-value to null with a cursor causes the edit to be ignored and the value to revert to the original.

Última publicación: December 15, 2022 ArcGIS Pro
Número de ID del error BUG-000151375
EnviadoAugust 5, 2022
Última modificaciónJuly 4, 2026
Relacionado conArcGIS Pro
Versión encontrada2.9
Sistema operativoWindows OS
Versión de sistema operativoN/A
EstadoUnder Consideration

Solución alternativa

Use pt.M = "nan" instead of None and ensure the geometry is M-enabled when recreating it.

def dropMValues(fc):
    spatial_reference = arcpy.Describe(fc).spatialReference

    with arcpy.da.UpdateCursor(fc, "SHAPE@") as rows:
        for row in rows:
            geom = row[0]
            parts = arcpy.Array()
            for part in geom:
                points = arcpy.Array()
                for point in part:
                    point.M = "nan" # math.nan and float("nan") will also work
                    points.append(point)
                parts.append(points)
            row[0] = arcpy.Polyline(parts, spatial_reference, has_m=True)
            rows.updateRow(row)

Pasos para reproducir

ID del error: BUG-000151375

Software:

  • ArcGIS Pro

Recibir notificaciones cuando cambie el estado de un error

Descargar la aplicación de soporte de Esri

Descubrir más sobre este tema

Obtener ayuda de expertos en ArcGIS

Contactar con el soporte técnico

Descargar la aplicación de soporte de Esri

Ir a opciones de descarga