From 34ccc51c37808a469902960925afd439f6f7cea4 Mon Sep 17 00:00:00 2001 From: Sander Roosendaal Date: Mon, 14 May 2018 21:14:09 +0200 Subject: [PATCH] some improvements --- rowers/courses.py | 23 +++++++++++++---------- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/rowers/courses.py b/rowers/courses.py index 3f2b84e2..a1532e98 100644 --- a/rowers/courses.py +++ b/rowers/courses.py @@ -45,19 +45,20 @@ def get_dir_vector(polygon1,polygon2): lat1,lon1 = polygon_coord_center(polygon1) lat2,lon2 = polygon_coord_center(polygon2) - return [[lat1,lon1],[lat2,lon2]] + return [lat2-lat1,lon2-lon1] def get_delta(vector,polygon): x = pd.Series(range(10000))/9999. - lat1 = vector[0][0] - lon1 = vector[0][1] - lat2 = vector[1][0] - lon2 = vector[1][0] + vlat = vector[0] + vlon = vector[1] - lat = x.apply(lambda x:lat1+x*(lat2-lat1)) - lon = x.apply(lambda x:lon1+x*(lon2-lon1)) + lat1,lon1 = polygon_coord_center(polygon) + + lat = x.apply(lambda x:lat1+x*vlat) + lon = x.apply(lambda x:lon1+x*vlon) - totdist,bearing = geo_distance(lat1,lon1,lat2,lon2) + totdist,bearing = geo_distance(lat1,lon1,lat1+vlat,lon1+vlat) + print totdist dist = x*totdist @@ -73,10 +74,12 @@ def get_delta(vector,polygon): df['inpolygon'] = df.apply(f,axis=1) - b = (~df['inpolygon']).shift(1)+df['inpolygon'] + + b = (~df['inpolygon']).shift(-1)+df['inpolygon'] + if len(df[b==2]): - return df[b==2]['dist'].min() + return 1.0e3*df[b==2]['dist'].min() else: return 0