Field Calculations#

[11]:
import footbridge as ft
[12]:
# large dataset of US National Highway System roads
# https://hepgis-usdot.hub.arcgis.com/datasets/dce9f09392eb474c8ad8e6a78416279b_0
gdb_file = "NHS.gdb"
[13]:
gdb = ft.GeoDatabase(gdb_file)
[14]:
fc = gdb[0]
[15]:
fc.list_fields()
[15]:
['ObjectID',
 'VERSION',
 'YEAR',
 'STFIPS',
 'CTFIPS',
 'ROUTEID',
 'BEGINPOINT',
 'ENDPOINT',
 'SIGN1',
 'SIGNT1',
 'SIGNN1',
 'LNAME',
 'NHS',
 'STATUS',
 'FACID',
 'CONNID',
 'CONNDES',
 'CONNMILES',
 'ACLASS',
 'FCLASS',
 'FACILITYT',
 'THROUGH_LA',
 'SPEED_LIMI',
 'OWNERSHIP',
 'URBANCODE',
 'AADT',
 'AADT_COM',
 'AADT_SINGL',
 'FUT_AADT',
 'FUT_YEAR',
 'MILES',
 'UPDATE_DAT',
 'NHS_ACTION',
 'FILE_NAME',
 'SHAPE_Length',
 'geometry']
[16]:
fc.select_columns("VERSION", geometry=False).head(silent=True)
[16]:
VERSION
ObjectID
0 2025.08.08
1 2025.08.08
2 2025.08.08
3 2025.08.08
4 2025.08.08
5 2025.08.08
6 2025.08.08
7 2025.08.08
8 2025.08.08
9 2025.08.08
[17]:
# change all the rows in the "VERSION" column to "2025"
fc.calculate("VERSION", "2025")
[18]:
fc.select_columns("VERSION", geometry=False).head(silent=True)
[18]:
VERSION
ObjectID
0 2025
1 2025
2 2025
3 2025
4 2025
5 2025
6 2025
7 2025
8 2025
9 2025
[19]:
fc.calculate("km", "float($MILES$) * 1.609344")
fc.select_columns(("MILES", "km"), geometry=False).head(silent=True)
[19]:
MILES km
ObjectID
0 17.912424 28.827252
1 0.949648 1.528310
2 1.429447 2.300472
3 2.889823 4.650719
4 0.249906 0.402185
5 0.368853 0.593611
6 12.455991 20.045974
7 7.699296 12.390816
8 3.027736 4.872669
9 0.160367 0.258086