diff --git a/rowers/interactiveplots.py b/rowers/interactiveplots.py index fbbd85fa..6ee68e4b 100644 --- a/rowers/interactiveplots.py +++ b/rowers/interactiveplots.py @@ -802,14 +802,6 @@ def interactive_histoall(theworkouts, histoparam, includereststrokes, rowdata = rowdata.fill_nan(None).drop_nulls() - #rowdata = dataprep.filter_df(rowdata, 'spm', spmmin, largerthan=True) - #rowdata = dataprep.filter_df(rowdata, 'spm', spmmax, largerthan=False) - - #rowdata = dataprep.filter_df( - # rowdata, 'driveenergy', workmin, largerthan=True) - #rowdata = dataprep.filter_df( - # rowdata, 'driveenergy', workmax, largerthan=False) - if rowdata.is_empty(): return "", "No Valid Data Available" @@ -914,7 +906,7 @@ def leaflet_chart_compare(course, workoutids, labeldict={}, startenddict={}): w = Workout.objects.get(id=id) rowdata = rdata(w.csvfilename) time = rowdata.df['TimeStamp (sec)'] - df = pd.DataFrame({ + df = pl.DataFrame({ 'workoutid': id, 'lat': rowdata.df[' latitude'], 'lon': rowdata.df[' longitude'], @@ -924,26 +916,28 @@ def leaflet_chart_compare(course, workoutids, labeldict={}, startenddict={}): except (Workout.DoesNotExist, KeyError): # pragma: no cover pass try: - df = pd.concat(data, axis=0) + df = pl.concat(data, rechunk=True) except ValueError: # pragma: no cover - df = pd.DataFrame() + df = pl.DataFrame() latmean, lonmean, coordinates = course_coord_center(course) course_dict = GeoCourseSerializer(course).data # Throw out 0,0 - df = df.replace(0, np.nan) - df = df.loc[(df != 0).any(axis=1)] - df.fillna(method='bfill', axis=0, inplace=True) - df.fillna(method='ffill', axis=0, inplace=True) + df = df.with_columns( + (pl.col("lat")+pl.col("lon")).alias("latlon") + ) + df =df.filter(pl.col("latlon")!=0,) + df = df.fill_nan(None) + df = df.select(pl.all()).interpolate() try: lat = df['lat'] lon = df['lon'] except KeyError: # pragma: no cover return [0, "invalid coordinate data"] - if lat.empty or lon.empty: # pragma: no cover + if lat.is_empty() or lon.is_empty(): # pragma: no cover return [0, "invalid coordinate data"] colors = itertools.cycle(palette) @@ -955,7 +949,7 @@ def leaflet_chart_compare(course, workoutids, labeldict={}, startenddict={}): trajectories = [] for id, color in items: - group = df[df['workoutid'] == int(id)].copy() + group = df.filter(pl.col("workoutid") == int(id)) try: startsecond, endsecond = startenddict[id] except KeyError: # pragma: no cover @@ -967,17 +961,14 @@ def leaflet_chart_compare(course, workoutids, labeldict={}, startenddict={}): except KeyError: # pragma: no cover label = str(id) - group.sort_values(by='time', ascending=True, inplace=True) - group.dropna(axis=0, how='any', inplace=True) + group = group.sort("time") if endsecond > 0: - group['time'] = group['time'] - startsecond - mask = group['time'] < 0 - group.mask(mask, inplace=True) - mask = group['time'] > (endsecond-startsecond) - group.mask(mask, inplace=True) + group = group.with_columns((pl.col("time")-startsecond)) + group = group.filter(pl.col("time")>0) + group = group.filter(pl.col("time")