Wird das ArcPy-Ergebnisobjekt stattdessen aus arcpy.GetCount_management () als Ganzzahl umgewandelt?

18

Ich versuche, eine Zahl zu erhalten, indem ich zähle, wie viele Punkte sich in einem Shapefile befinden. Und das funktioniert, außer dass ich Probleme habe, wenn ich diese Nummer woanders benutze. Irgendwann werde ich diese Zählung in etwas Mathematik (Feldrechner) verwenden, aber während des Debuggens stoße ich auf einen Fehler, der mir später Probleme bereiten wird.

Dieser Code:

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

gibt diesen Fehler aus:

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

Ich habe versucht, es als int zu gießen, was es AUCH nicht mag:

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

Ich habe also ein 'Result'-Objekt und muss es in eine Zahl umwandeln.

Wie kann ich das tun - oder ist die Verwendung der ArcPy-Funktion hier unnötig oder zu kompliziert?

Erica
quelle

Antworten:

45

Verwenden Sie die folgende Methode für das Result- Objekt, und Sie können es als int umwandeln:

.getOutput (0) gibt den Wert an der ersten Indexposition eines Werkzeugs zurück.

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

ccn
quelle
3

GetCount gibt ein Result-Objekt und keine Ganzzahl oder Zeichenfolge zurück.

Um eine Zeichenfolge abzurufen, verwenden Sie die Methode getOuput des Ergebnisobjekts und ziehen den ersten Teil. Um andere Teile zu sehen, versuchen Sie, die 0 für 1, 2 usw. zu ändern.

Wenn Sie diese Zeichenfolge in eine Ganzzahl umwandeln müssen, verwenden Sie eine int () - Funktion.

Weitere Informationen zum Result-Objekt und seiner getOutput-Methode finden Sie in der Online-Hilfe .

PolyGeo
quelle