Skip to content

Instantly share code, notes, and snippets.

@lmeulen
Created April 3, 2021 11:52
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save lmeulen/001cad358cbc2a3eaca5807d2db5b3a2 to your computer and use it in GitHub Desktop.
Save lmeulen/001cad358cbc2a3eaca5807d2db5b3a2 to your computer and use it in GitHub Desktop.
crowdedness_interpol_func
def interpolate_lat_lon(tripshape, dist):
ps = tripshape[tripshape['shape_dist_traveled'].le(dist)].index[-1]
ns = tripshape[tripshape['shape_dist_traveled'].ge(dist)].index[0]
lat1 = tripshape[tripshape.index == ps].iloc[0]['shape_pt_lat']
lon1 = tripshape[tripshape.index == ps].iloc[0]['shape_pt_lon']
lat2 = tripshape[tripshape.index == ns].iloc[0]['shape_pt_lat']
lon2 = tripshape[tripshape.index == ns].iloc[0]['shape_pt_lon']
dst1 = tripshape[tripshape.index == ps].iloc[0]['shape_dist_traveled']
dst2 = tripshape[tripshape.index == ns].iloc[0]['shape_dist_traveled']
prc = ((dist - dst1) / (dst2 - dst1)) if dst2 != dst1 else 1
lat = lat1 + prc * (lat2 - lat1)
lon = lon1 + prc * (lon2 - lon1)
return lat, lon
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment