Convertir el resultado de ArcPy como un entero en lugar de arcpy.GetCount_management ()?

16

Estoy tratando de obtener un número contando cuántos puntos hay en un shapefile. Y esto funciona (creo), excepto que luego tengo problemas para usar ese número en otro lugar. Eventualmente, usaré ese conteo en algunos cálculos matemáticos (calculadora de campo), pero durante la depuración, me encuentro con un error que terminará causándome problemas más adelante. Este código:

TotalPoints = arcpy.GetCount_management(Path_Pts)
arcpy.AddMessage(">>>> PROCESS: COUNT PATH POINTS {" + TotalPoints + "}")

da este error:

TypeError: cannot concatenate 'str' and 'Result' objects

Intenté lanzarlo como un int, lo que TAMBIÉN no le gusta:

TypeError: int() argument must be a string or a number, not 'Result'

Así que tengo un objeto 'Resultado' y necesito convertirlo en un número. ¿Cómo puedo hacer eso, o es innecesario o demasiado complicado usar la función arcpy aquí? (Estoy aprendiendo arcpy y python a medida que avanzo).

    
pregunta Erica 22.03.2013 - 20:10

2 respuestas

39

Utilice el siguiente método en el objeto Result y Podrás lanzar como int:

.getOutput (0) devolverá el valor en la primera posición de índice de una herramienta.

int(arcpy.GetCount_management(Path_Pts).getOutput(0))

    
respondido por el ccn 22.03.2013 - 20:53
2

GetCount devuelve un objeto Resultado y no un entero o una cadena.

Para obtener una cadena, utilice el método getOuput del objeto de resultado y extraiga su primera parte. Para ver otras partes, intente cambiar el 0 por 1, 2, etc.

Si necesita convertir esa cadena en un entero, use una función int ().

Para obtener más información sobre el objeto Resultado y su método getOutput, Ayuda en línea debe ser consultado.

    
respondido por el PolyGeo 26.06.2016 - 03:25

Lea otras preguntas en las etiquetas