Skip to content

Commit 17b3458

Browse files
committed
Add centerline fields and mph_to_kph function
1 parent 141623b commit 17b3458

1 file changed

Lines changed: 16 additions & 1 deletion

File tree

openaddr/conform.py

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ def gdal_error_handler(err_class, err_num, err_msg):
4949
ADDRESSES_SCHEMA = [ 'hash', 'number', 'street', 'unit', 'city', 'district', 'region', 'postcode', 'id', 'accuracy' ]
5050
BUILDINGS_SCHEMA = [ 'hash', 'height', 'levels']
5151
PARCELS_SCHEMA = [ 'hash', 'pid' ]
52-
CENTERLINES_SCHEMA = [ 'hash', 'id', 'name' ]
52+
CENTERLINES_SCHEMA = [ 'hash', 'id', 'name', 'oneway', 'speed', 'classification', 'surface', 'addr_from_left', 'addr_to_left', 'addr_from_right', 'addr_to_right', 'zip_left', 'zip_right' ]
5353
RESERVED_SCHEMA = ADDRESSES_SCHEMA + BUILDINGS_SCHEMA + PARCELS_SCHEMA + CENTERLINES_SCHEMA + [
5454
"lat",
5555
"lon"
@@ -880,6 +880,8 @@ def row_function(sc, row, key, fxn):
880880
row = row_fxn_constant(sc, row, key, fxn)
881881
elif function == "map":
882882
row = row_fxn_map(sc, row, key, fxn)
883+
elif function == "mph_to_kph":
884+
row = row_fxn_mph_to_kph(sc, row, key, fxn)
883885

884886
return row
885887

@@ -1077,6 +1079,19 @@ def row_fxn_constant(sc, row, key, fxn):
10771079

10781080
return row
10791081

1082+
def row_fxn_mph_to_kph(sc, row, key, fxn):
1083+
"Convert a miles-per-hour value to kilometers-per-hour"
1084+
field = fxn.get('field', False)
1085+
1086+
if field and field in row:
1087+
try:
1088+
mph = float(row[field])
1089+
row['oa:{}'.format(key)] = str(round(mph * 1.60934))
1090+
except (ValueError, TypeError):
1091+
row['oa:{}'.format(key)] = ''
1092+
1093+
return row
1094+
10801095
def row_fxn_map(sc, row, key, fxn):
10811096
"Map a value from a source column to a new value using a dictionary"
10821097
field = fxn.get('field', False)

0 commit comments

Comments
 (0)