Rundungsspalte in Attributtabelle mit ArcGIS Field Calculator?


17

Ich möchte den Feldrechner in ArcMap verwenden, um eine vorhandene Spalte auf zwei Dezimalstellen zu runden. Derzeit habe ich eine Spalte mit 6 Dezimalstellen und möchte sie einfach auf 2 Dezimalstellen abrunden.

Ich hatte geplant, den Field Calculator (möglicherweise mit Python) zu verwenden, aber vielleicht gibt es einen einfacheren Weg?


Die akzeptierte Antwort ist wahrscheinlich die einfachste Möglichkeit, ein einzelnes Feld zu ändern. Hier erfahren Sie jedoch, wie Sie dies mit dem Feldrechner für Python und VB tun.

VB:

round([column], 2)

Python:

round(!column!, 2)

2
Ein geeigneter Feldrechner-Ausdruck kann die Daten so ändern, dass sie sich einem Vielfachen von 0,01 annähern. Wie nah es ist, hängt davon ab, wie das Feld gespeichert ist. Es wird zwischen Gleitkomma-, Doppel- und Dezimalcodierung unterschieden. (In den ersten beiden Formaten können bestimmte Werte nicht genau gespeichert werden, z. B. 0.03 = 1.1000001111010111000010100011110 ... B, ein sich wiederholender unendlicher Binärausdruck.) Möchten Sie das Feld selbst möglicherweise so ändern, dass nur Dezimalzahlen mit zwei Dezimalstellen genau gespeichert werden setzt?
whuber

Antworten:


12

Wenn Sie das Feld anzeigen, berechnen oder beschriften, das Sie gerade verwenden konnten,
runden Sie ([my_field], 2)
, um auch das Feldverhalten in arcmap zu ändern ...
Rundungsbeispiel


kreuz und quer mit deinem edit. oops
Brad Nesom

Es ist in Ordnung, mochte das Feldverhalten ein bisschen Wissen. Für das, was ich tue, würde das ausreichen.
Jsmith

13

Haben Sie etwas ausprobiert, was unten im Feldrechner steht?

round(!FieldName!, 2)

Stellen Sie sicher, dass Sie den Parser im Feldrechner auf Python einstellen.


1
Ja, das ist der Python-Weg! Anscheinend ist es genau dasselbe wie der VB-Weg (wenn Sie auf das Feld doppelklicken, um es hinzuzufügen). Der einzige Unterschied ist! vs [].
Jsmith

5

Klingt so, als würde eine einfache Formatierung der Zeichenfolge den Trick für Sie tun:

>>> "%.2f" % 3.99999
'4.00'
>>>

oder mit der in einer Variablen gespeicherten Nummer:

>>> j = 3.999999
>>> "%.2f" % j
'4.00'
>>>

Dies könnte leicht in eine Feldrechnerfunktion eingebunden werden.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.