@@ -49,7 +49,7 @@ def gdal_error_handler(err_class, err_num, err_msg):
4949ADDRESSES_SCHEMA = [ 'hash' , 'number' , 'street' , 'unit' , 'city' , 'district' , 'region' , 'postcode' , 'id' , 'accuracy' ]
5050BUILDINGS_SCHEMA = [ 'hash' , 'height' , 'levels' ]
5151PARCELS_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' ]
5353RESERVED_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+
10801095def 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