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 |