Notebook errors
I tried running various notebooks (in the order below) but most all of them return errors. Here are my steps:
$ cd /path/to/paper_row
$ conda env create -f env-dev.yml
$ conda activate row-filter-dev
(row-filter-dev)$ python setup.py develop
(row-filter-dev)$ cd notebooks
(row-filter-dev)$ wget http://drive.google.com/path/to/row_data.zip
(row-filter-dev)$ unzip row_data.zip
(row-filter-dev)$ ls
accuracy_precision_of_time_series.ipynb current_drift.ipynb Normalize_Stroke_speed.ipynb peak_detection_archive.ipynb single_pass_plots.ipynb thomas_stroke_detect.ipynb
compare_cutoff_freqs.ipynb diffGPS_accuracy.ipynb notebooks_single_pass_plots.ipynb Q_testing.ipynb stationarydGPS.ipynb Untitled.ipynb
create_norm_dataframe.ipynb mesh3d.ipynb optimize_cutoff_freq_ext_pos.ipynb row_data stroke_detect-paper.ipynb
create_stroke_dataframe.ipynb Normalize_Stroke_accel.ipynb optimize_cutoff_freq_ext_vel.ipynb single_pass_plots_archive.ipynb stroke_metrics.ipynb
(row-filter-dev)$ jupyter notebook
Now starting with the first notebook. I open it with the Jupyter interface and the select "Kernel>Restart & Run all":
accuracy_precision_of_time_series.ipynb
Runs fine.
compare_cutoff_freqs.ipynb
df_cutoff_freq_pos = pd.read_csv("~/Desktop/Homework/senior_design/cutoff_freq_pos.csv")
df_cutoff_freq_vel = pd.read_csv("~/Desktop/Homework/senior_design/cutoff_freq_vel.csv")
gives:
---------------------------------------------------------------------------
FileNotFoundError Traceback (most recent call last)
<ipython-input-4-0d0338241e93> in <module>
----> 1 df_cutoff_freq_pos = pd.read_csv("~/Desktop/Homework/senior_design/cutoff_freq_pos.csv")
2 df_cutoff_freq_vel = pd.read_csv("~/Desktop/Homework/senior_design/cutoff_freq_vel.csv")
~/miniconda3/envs/row-filter-dev/lib/python3.6/site-packages/pandas/io/parsers.py in parser_f(filepath_or_buffer, sep, delimiter, header, names, index_col, usecols, squeeze, prefix, mangle_dupe_cols, dtype, engine, converters, true_values, false_values, skipinitialspace, skiprows, nrows, na_values, keep_default_na, na_filter, verbose, skip_blank_lines, parse_dates, infer_datetime_format, keep_date_col, date_parser, dayfirst, iterator, chunksize, compression, thousands, decimal, lineterminator, quotechar, quoting, escapechar, comment, encoding, dialect, tupleize_cols, error_bad_lines, warn_bad_lines, skipfooter, doublequote, delim_whitespace, low_memory, memory_map, float_precision)
676 skip_blank_lines=skip_blank_lines)
677
--> 678 return _read(filepath_or_buffer, kwds)
679
680 parser_f.__name__ = name
~/miniconda3/envs/row-filter-dev/lib/python3.6/site-packages/pandas/io/parsers.py in _read(filepath_or_buffer, kwds)
438
439 # Create the parser.
--> 440 parser = TextFileReader(filepath_or_buffer, **kwds)
441
442 if chunksize or iterator:
~/miniconda3/envs/row-filter-dev/lib/python3.6/site-packages/pandas/io/parsers.py in __init__(self, f, engine, **kwds)
785 self.options['has_index_names'] = kwds['has_index_names']
786
--> 787 self._make_engine(self.engine)
788
789 def close(self):
~/miniconda3/envs/row-filter-dev/lib/python3.6/site-packages/pandas/io/parsers.py in _make_engine(self, engine)
1012 def _make_engine(self, engine='c'):
1013 if engine == 'c':
-> 1014 self._engine = CParserWrapper(self.f, **self.options)
1015 else:
1016 if engine == 'python':
~/miniconda3/envs/row-filter-dev/lib/python3.6/site-packages/pandas/io/parsers.py in __init__(self, src, **kwds)
1706 kwds['usecols'] = self.usecols
1707
-> 1708 self._reader = parsers.TextReader(src, **kwds)
1709
1710 passed_names = self.names is None
pandas/_libs/parsers.pyx in pandas._libs.parsers.TextReader.__cinit__()
pandas/_libs/parsers.pyx in pandas._libs.parsers.TextReader._setup_parser_source()
FileNotFoundError: File b'/home/moorepants/Desktop/Homework/senior_design/cutoff_freq_pos.csv' does not exist
create_norm_dataframe.ipynb
df_norm = pd.read_csv(filepath, index_col = 0)
stamps = df_norm.diffGPS_stamp.unique()
---------------------------------------------------------------------------
FileNotFoundError Traceback (most recent call last)
<ipython-input-3-6eb175b2f28d> in <module>
----> 1 df_norm = pd.read_csv(filepath, index_col = 0)
2 stamps = df_norm.diffGPS_stamp.unique()
~/miniconda3/envs/row-filter-dev/lib/python3.6/site-packages/pandas/io/parsers.py in parser_f(filepath_or_buffer, sep, delimiter, header, names, index_col, usecols, squeeze, prefix, mangle_dupe_cols, dtype, engine, converters, true_values, false_values, skipinitialspace, skiprows, nrows, na_values, keep_default_na, na_filter, verbose, skip_blank_lines, parse_dates, infer_datetime_format, keep_date_col, date_parser, dayfirst, iterator, chunksize, compression, thousands, decimal, lineterminator, quotechar, quoting, escapechar, comment, encoding, dialect, tupleize_cols, error_bad_lines, warn_bad_lines, skipfooter, doublequote, delim_whitespace, low_memory, memory_map, float_precision)
676 skip_blank_lines=skip_blank_lines)
677
--> 678 return _read(filepath_or_buffer, kwds)
679
680 parser_f.__name__ = name
~/miniconda3/envs/row-filter-dev/lib/python3.6/site-packages/pandas/io/parsers.py in _read(filepath_or_buffer, kwds)
438
439 # Create the parser.
--> 440 parser = TextFileReader(filepath_or_buffer, **kwds)
441
442 if chunksize or iterator:
~/miniconda3/envs/row-filter-dev/lib/python3.6/site-packages/pandas/io/parsers.py in __init__(self, f, engine, **kwds)
785 self.options['has_index_names'] = kwds['has_index_names']
786
--> 787 self._make_engine(self.engine)
788
789 def close(self):
~/miniconda3/envs/row-filter-dev/lib/python3.6/site-packages/pandas/io/parsers.py in _make_engine(self, engine)
1012 def _make_engine(self, engine='c'):
1013 if engine == 'c':
-> 1014 self._engine = CParserWrapper(self.f, **self.options)
1015 else:
1016 if engine == 'python':
~/miniconda3/envs/row-filter-dev/lib/python3.6/site-packages/pandas/io/parsers.py in __init__(self, src, **kwds)
1706 kwds['usecols'] = self.usecols
1707
-> 1708 self._reader = parsers.TextReader(src, **kwds)
1709
1710 passed_names = self.names is None
pandas/_libs/parsers.pyx in pandas._libs.parsers.TextReader.__cinit__()
pandas/_libs/parsers.pyx in pandas._libs.parsers.TextReader._setup_parser_source()
FileNotFoundError: File b'row_data/norm_stroke_speed.csv' does not exist
create_stroke_dataframe.ipynb
df_dgps = pd.DataFrame()
df_dgps['stroke_label'] = df_stroke.stroke_label
df_dgps['stroke_duration'] = df_stroke.stroke_duration
df_dgps['stroke_distance'] = df_stroke.dgps_dist
df_dgps['stroke_speed'] = df_stroke.dgps_avg_vel
df_dgps['SR_desired'] = df_stroke.SR_desired
df_dgps['direction'] = df_stroke.direction
df_dgps['rower'] = df_stroke.rower
df_dgps['diffGPS_stamp'] = df_stroke.diffGPS_stamp
---------------------------------------------------------------------------
AttributeError Traceback (most recent call last)
<ipython-input-44-d12fc1cffdb4> in <module>
3 df_dgps['stroke_duration'] = df_stroke.stroke_duration
4 df_dgps['stroke_distance'] = df_stroke.dgps_dist
----> 5 df_dgps['stroke_speed'] = df_stroke.dgps_avg_vel
6 df_dgps['SR_desired'] = df_stroke.SR_desired
7 df_dgps['direction'] = df_stroke.direction
~/miniconda3/envs/row-filter-dev/lib/python3.6/site-packages/pandas/core/generic.py in __getattr__(self, name)
4374 if self._info_axis._can_hold_identifiers_and_holds_name(name):
4375 return self[name]
-> 4376 return object.__getattribute__(self, name)
4377
4378 def __setattr__(self, name, value):
AttributeError: 'DataFrame' object has no attribute 'dgps_avg_vel'
current_drift.ipynb
Runs to the end!
diffGPS_accuracy.ipynb
df_dgps = pd.read_csv("row_data/amateur/diffGPS/log14_baseline_log_20180420-094512.csv")
df_phone = pd.read_csv("~/Downloads/my_iOS_device_2018-10-25_12-29-55_-0700.csv")
---------------------------------------------------------------------------
FileNotFoundError Traceback (most recent call last)
<ipython-input-4-c3e10c549ec9> in <module>
1 df_dgps = pd.read_csv("row_data/amateur/diffGPS/log14_baseline_log_20180420-094512.csv")
----> 2 df_phone = pd.read_csv("~/Downloads/my_iOS_device_2018-10-25_12-29-55_-0700.csv")
~/miniconda3/envs/row-filter-dev/lib/python3.6/site-packages/pandas/io/parsers.py in parser_f(filepath_or_buffer, sep, delimiter, header, names, index_col, usecols, squeeze, prefix, mangle_dupe_cols, dtype, engine, converters, true_values, false_values, skipinitialspace, skiprows, nrows, na_values, keep_default_na, na_filter, verbose, skip_blank_lines, parse_dates, infer_datetime_format, keep_date_col, date_parser, dayfirst, iterator, chunksize, compression, thousands, decimal, lineterminator, quotechar, quoting, escapechar, comment, encoding, dialect, tupleize_cols, error_bad_lines, warn_bad_lines, skipfooter, doublequote, delim_whitespace, low_memory, memory_map, float_precision)
676 skip_blank_lines=skip_blank_lines)
677
--> 678 return _read(filepath_or_buffer, kwds)
679
680 parser_f.__name__ = name
~/miniconda3/envs/row-filter-dev/lib/python3.6/site-packages/pandas/io/parsers.py in _read(filepath_or_buffer, kwds)
438
439 # Create the parser.
--> 440 parser = TextFileReader(filepath_or_buffer, **kwds)
441
442 if chunksize or iterator:
~/miniconda3/envs/row-filter-dev/lib/python3.6/site-packages/pandas/io/parsers.py in __init__(self, f, engine, **kwds)
785 self.options['has_index_names'] = kwds['has_index_names']
786
--> 787 self._make_engine(self.engine)
788
789 def close(self):
~/miniconda3/envs/row-filter-dev/lib/python3.6/site-packages/pandas/io/parsers.py in _make_engine(self, engine)
1012 def _make_engine(self, engine='c'):
1013 if engine == 'c':
-> 1014 self._engine = CParserWrapper(self.f, **self.options)
1015 else:
1016 if engine == 'python':
~/miniconda3/envs/row-filter-dev/lib/python3.6/site-packages/pandas/io/parsers.py in __init__(self, src, **kwds)
1706 kwds['usecols'] = self.usecols
1707
-> 1708 self._reader = parsers.TextReader(src, **kwds)
1709
1710 passed_names = self.names is None
pandas/_libs/parsers.pyx in pandas._libs.parsers.TextReader.__cinit__()
pandas/_libs/parsers.pyx in pandas._libs.parsers.TextReader._setup_parser_source()
FileNotFoundError: File b'/home/moorepants/Downloads/my_iOS_device_2018-10-25_12-29-55_-0700.csv' does not exist
mesh3d.ipynb
df_dgps = pd.read_csv("~/Desktop/row_data/elite/diffGPS/baseline_log_20180422-105906.csv") #20N
df_phone = pd.read_csv("~/Desktop/row_data/elite/iPhone/Boat-20180422T103229_1641_rpc364_data_1CLX_1_B_2CDF0487-83FC-45CC-B590-FF42D74E0D6D.csv")
---------------------------------------------------------------------------
FileNotFoundError Traceback (most recent call last)
<ipython-input-3-6b70ad267ab4> in <module>
----> 1 df_dgps = pd.read_csv("~/Desktop/row_data/elite/diffGPS/baseline_log_20180422-105906.csv") #20N
2 df_phone = pd.read_csv("~/Desktop/row_data/elite/iPhone/Boat-20180422T103229_1641_rpc364_data_1CLX_1_B_2CDF0487-83FC-45CC-B590-FF42D74E0D6D.csv")
~/miniconda3/envs/row-filter-dev/lib/python3.6/site-packages/pandas/io/parsers.py in parser_f(filepath_or_buffer, sep, delimiter, header, names, index_col, usecols, squeeze, prefix, mangle_dupe_cols, dtype, engine, converters, true_values, false_values, skipinitialspace, skiprows, nrows, na_values, keep_default_na, na_filter, verbose, skip_blank_lines, parse_dates, infer_datetime_format, keep_date_col, date_parser, dayfirst, iterator, chunksize, compression, thousands, decimal, lineterminator, quotechar, quoting, escapechar, comment, encoding, dialect, tupleize_cols, error_bad_lines, warn_bad_lines, skipfooter, doublequote, delim_whitespace, low_memory, memory_map, float_precision)
676 skip_blank_lines=skip_blank_lines)
677
--> 678 return _read(filepath_or_buffer, kwds)
679
680 parser_f.__name__ = name
~/miniconda3/envs/row-filter-dev/lib/python3.6/site-packages/pandas/io/parsers.py in _read(filepath_or_buffer, kwds)
438
439 # Create the parser.
--> 440 parser = TextFileReader(filepath_or_buffer, **kwds)
441
442 if chunksize or iterator:
~/miniconda3/envs/row-filter-dev/lib/python3.6/site-packages/pandas/io/parsers.py in __init__(self, f, engine, **kwds)
785 self.options['has_index_names'] = kwds['has_index_names']
786
--> 787 self._make_engine(self.engine)
788
789 def close(self):
~/miniconda3/envs/row-filter-dev/lib/python3.6/site-packages/pandas/io/parsers.py in _make_engine(self, engine)
1012 def _make_engine(self, engine='c'):
1013 if engine == 'c':
-> 1014 self._engine = CParserWrapper(self.f, **self.options)
1015 else:
1016 if engine == 'python':
~/miniconda3/envs/row-filter-dev/lib/python3.6/site-packages/pandas/io/parsers.py in __init__(self, src, **kwds)
1706 kwds['usecols'] = self.usecols
1707
-> 1708 self._reader = parsers.TextReader(src, **kwds)
1709
1710 passed_names = self.names is None
pandas/_libs/parsers.pyx in pandas._libs.parsers.TextReader.__cinit__()
pandas/_libs/parsers.pyx in pandas._libs.parsers.TextReader._setup_parser_source()
FileNotFoundError: File b'/home/moorepants/Desktop/row_data/elite/diffGPS/baseline_log_20180422-105906.csv' does not exist
Normalize_Stroke_accel.ipynb
#Single
df_stroke1 = cdn.clean_data(df_phone, df_dgps1, '20180422-104956') #16N
df_stroke2 = cdn.clean_data(df_phone, df_dgps2, '20180422-104427') #16S
df_stroke3 = cdn.clean_data(df_phone, df_dgps3, '20180422-105906') #20N
df_stroke4 = cdn.clean_data(df_phone, df_dgps4, '20180422-105358') #20S
df_stroke5 = cdn.clean_data(df_phone, df_dgps5, '20180422-110625') #24N
df_stroke6 = cdn.clean_data(df_phone, df_dgps6, '20180422-110303') #24S
df_stroke7 = cdn.clean_data(df_phone, df_dgps7, '20180422-111307') #28N
#df_stroke8 = cdn.clean_data(df_phone, df_dgps8, '20180422-110951') #28S
df_stroke9 = cdn.clean_data(df_phone, df_dgps9, '20180422-111703') #34S
gives
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-4-7d095e04bf01> in <module>
1 #Single
----> 2 df_stroke1 = cdn.clean_data(df_phone, df_dgps1, '20180422-104956') #16N
3 df_stroke2 = cdn.clean_data(df_phone, df_dgps2, '20180422-104427') #16S
4 df_stroke3 = cdn.clean_data(df_phone, df_dgps3, '20180422-105906') #20N
5 df_stroke4 = cdn.clean_data(df_phone, df_dgps4, '20180422-105358') #20S
~/Research/rowing/paper_row/row_filter/clean_data_norm.py in clean_data(df_phone, df_dgps, df_dgps_stamp)
130 df_phone, df_acc, df_dgps = cd.clean_data(df_phone, df_dgps)
131 df_kalman = kf.compute(df_phone,df_acc)
--> 132 df_comp = cf.ton_ext(df_phone, cutoff_freq_pos = [5.62, 5.088], cutoff_freq_vel = [0.0243, 0.0257])
133 df_stroke = cds.stroke_distance(df_phone, df_kalman, df_comp, df_dgps, df_dgps_stamp)
134 df_norm = norm(df_acc, df_stroke)
TypeError: ton_ext() got an unexpected keyword argument 'cutoff_freq_pos'
Normalize_Stroke_speed.ipynb
#Single
df_stroke1 = cdn.clean_data_speed(df_phone, df_dgps1, '20180422-104956') #16N
df_stroke2 = cdn.clean_data_speed(df_phone, df_dgps2, '20180422-104427') #16S
df_stroke3 = cdn.clean_data_speed(df_phone, df_dgps3, '20180422-105906') #20N
df_stroke4 = cdn.clean_data_speed(df_phone, df_dgps4, '20180422-105358') #20S
df_stroke5 = cdn.clean_data_speed(df_phone, df_dgps5, '20180422-110625') #24N
df_stroke6 = cdn.clean_data_speed(df_phone, df_dgps6, '20180422-110303') #24S
df_stroke7 = cdn.clean_data_speed(df_phone, df_dgps7, '20180422-111307') #28N
#df_stroke8 = cdn.clean_data_speed(df_phone, df_dgps8, '20180422-110951') #28S
df_stroke9 = cdn.clean_data_speed(df_phone, df_dgps9, '20180422-111703') #34S
gives
---------------------------------------------------------------------------
AttributeError Traceback (most recent call last)
<ipython-input-4-5e7dadef66fd> in <module>
1 #Single
----> 2 df_stroke1 = cdn.clean_data_speed(df_phone, df_dgps1, '20180422-104956') #16N
3 df_stroke2 = cdn.clean_data_speed(df_phone, df_dgps2, '20180422-104427') #16S
4 df_stroke3 = cdn.clean_data_speed(df_phone, df_dgps3, '20180422-105906') #20N
5 df_stroke4 = cdn.clean_data_speed(df_phone, df_dgps4, '20180422-105358') #20S
~/Research/rowing/paper_row/row_filter/clean_data_norm.py in clean_data_speed(df_phone, df_dgps, df_dgps_stamp)
140 df_kalman = kf.compute(df_phone,df_acc)
141 df_comp = cf.ton_ext(df_phone)
--> 142 df_stroke = cds.stroke_distance(df_phone, df_kalman, df_comp, df_dgps, df_dgps_stamp)
143 df_norm = norm_speed(df_dgps, df_phone, df_stroke)
144 df_norm['diffGPS_stamp'] = df_dgps_stamp
AttributeError: module 'row_filter.clean_data_stroke_accz' has no attribute 'stroke_distance'
notebooks_single_pass_plots.ipynb
#Plot
df_phone = pd.read_csv("row_data/elite/iPhone/Boat-20180422T103229_1641_rpc364_data_1CLX_1_B_2CDF0487-83FC-45CC-B590-FF42D74E0D6D.csv")
df_phone, df_acc, df_dgps = cd.clean_data(df_phone, df_dgps2)
df_kalman = kf.compute(df_phone,df_acc)
df_comp = cf.ton_ext(df_phone, cutoff_freq_pos = [5.62, 5.088], cutoff_freq_vel = [0.0243, 0.0257])
df_kalman['filter_type'] = 'KF'
df_comp['filter_type'] = 'CF'
#DiffGPS Dataframe
df_diffgps = pd.DataFrame()
poly_interp_pos = PchipInterpolator(df_dgps.unix_time, df_dgps.pos)
dgps_pos_interp = poly_interp_pos(df_phone.log_time)
poly_interp_vel = PchipInterpolator(df_dgps.unix_time, df_dgps.speed)
dgps_v_interp = poly_interp_vel(df_phone.log_time)
df_diffgps['log_time'] = df_phone.log_time
df_diffgps['position'] = dgps_pos_interp - dgps_pos_interp[0]
df_diffgps['velocity'] = dgps_v_interp
df_diffgps['filter_type'] = 'DGPS'
df_diffgps['rel_pos'] = 0
#Phone Dataframe
df_phone1 = pd.DataFrame()
df_phone1['log_time'] = df_phone.log_time
df_phone1['position'] = df_phone.y_boat - df_phone.y_boat[0]
df_phone1['velocity'] = df_phone.location_speed
df_phone1['filter_type'] = 'Smartphone'
df_phone1['rel_pos'] = (df_phone1.position - df_diffgps.position)
#CF Dataframe
df_comp['rel_pos'] = (df_comp.position - df_diffgps.position)
#KF Dataframe
df_kalman['rel_pos'] = (df_kalman.position - df_diffgps.position)
gives
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-3-5e4d48354ef4> in <module>
3 df_phone, df_acc, df_dgps = cd.clean_data(df_phone, df_dgps2)
4 df_kalman = kf.compute(df_phone,df_acc)
----> 5 df_comp = cf.ton_ext(df_phone, cutoff_freq_pos = [5.62, 5.088], cutoff_freq_vel = [0.0243, 0.0257])
6 df_kalman['filter_type'] = 'KF'
7 df_comp['filter_type'] = 'CF'
TypeError: ton_ext() got an unexpected keyword argument 'cutoff_freq_pos'
optimize_cutoff_freq_ext_pos.ipynb
for i in range(0,9):
df = locals()['df_dgps{}'.format(i+1)]
df_phone_new, df_acc, df_dgps = cd.clean_data(df_phone, df)
df_cutoff_freq_pos.loc[i] = ocf.optimize_cutoff_freq_pos_ext(df_phone_new, df_dgps, i)
df_ton = cf.ton_ext(df_phone_new, [df_cutoff_freq_pos['low'][i],df_cutoff_freq_pos['high'][i]], cutoff_freq_vel)
rmse = rmse_pos(df_ton, df_dgps, df_phone_new)
df_cutoff_freq_pos['rmse'][i] = rmse
print(df_cutoff_freq_pos.loc[i])
dgps_pos = df_dgps.pos - df_dgps.pos[0] + df_phone_new.y_boat[0] # start dgps and phone at same location
layout = go.Layout(
title = 'Position:' + format(i),
xaxis = dict(
title='Time (s)'
),
yaxis = dict(
title = 'Position (m)'
)
)
trace1 = go.Scatter(
x = df_ton.log_time,
y = df_ton.position,
name = 'Complementary'
)
trace2 = go.Scatter(
x = df_dgps.unix_time,
y = dgps_pos,
name = 'Differential GPS'
)
trace3 = go.Scatter(
x = df_phone_new.log_time,
y = df_ton.extrapolated_pos,
name = 'Phone GPS'
)
fig = go.Figure(data=[trace1,trace2,trace3], layout=layout)
py.offline.iplot(fig)
gives
---------------------------------------------------------------------------
NameError Traceback (most recent call last)
<ipython-input-7-81bd4b831cd0> in <module>
2 df = locals()['df_dgps{}'.format(i+1)]
3 df_phone_new, df_acc, df_dgps = cd.clean_data(df_phone, df)
----> 4 df_cutoff_freq_pos.loc[i] = ocf.optimize_cutoff_freq_pos_ext(df_phone_new, df_dgps, i)
5
6 df_ton = cf.ton_ext(df_phone_new, [df_cutoff_freq_pos['low'][i],df_cutoff_freq_pos['high'][i]], cutoff_freq_vel)
NameError: name 'ocf' is not defined
optimize_cutoff_freq_ext_vel.ipynb
for i in range(0,9):
df = locals()['df_dgps{}'.format(i+1)]
df_phone_new, df_acc, df_dgps = cd.clean_data(df_phone, df)
df_cutoff_freq_vel.loc[i] = ocf.optimize_cutoff_freq_vel_ext(df_phone_new, df_dgps, i)
df_ton = cf.ton_ext(df_phone_new, cutoff_freq_pos, [df_cutoff_freq_vel['low'][i],df_cutoff_freq_vel['high'][i]])
rmse = rmse_vel(df_ton, df_dgps)
df_cutoff_freq_vel['rmse'][i] = rmse
print(df_cutoff_freq_vel.loc[i])
layout = go.Layout(
title = 'Velocity:' + format(i),
xaxis = dict(
title='Time (s)'
),
yaxis = dict(
title = 'Velocity (m/s)'
)
)
trace1 = go.Scatter(
x = df_ton.log_time,
y = df_ton.velocity,
name = 'Complementary'
)
trace2 = go.Scatter(
x = df_dgps.unix_time,
y = df_dgps.speed,
name = 'Differential GPS'
)
trace3 = go.Scatter(
x = df_phone_new.log_time,
y = df_phone_new.location_speed,
name = 'Phone GPS'
)
fig = go.Figure(data=[trace1,trace2,trace3], layout=layout)
py.offline.iplot(fig)
gives
---------------------------------------------------------------------------
NameError Traceback (most recent call last)
<ipython-input-7-adf612b5d67e> in <module>
2 df = locals()['df_dgps{}'.format(i+1)]
3 df_phone_new, df_acc, df_dgps = cd.clean_data(df_phone, df)
----> 4 df_cutoff_freq_vel.loc[i] = ocf.optimize_cutoff_freq_vel_ext(df_phone_new, df_dgps, i)
5
6 df_ton = cf.ton_ext(df_phone_new, cutoff_freq_pos, [df_cutoff_freq_vel['low'][i],df_cutoff_freq_vel['high'][i]])
NameError: name 'ocf' is not defined
peak_detection_archive.ipynb
Runs!
Q_testing.ipynb
Runs!
single_pass_plots.ipynb
#Plot
df_phone = pd.read_csv("row_data/elite/iPhone/Boat-20180422T103229_1641_rpc364_data_1CLX_1_B_2CDF0487-83FC-45CC-B590-FF42D74E0D6D.csv")
df_phone, df_acc, df_dgps = cd.clean_data(df_phone, df_dgps2)
df_kalman = kf.compute(df_phone,df_acc)
df_comp = cf.ton(df_phone, cutoff_freq_pos = [1.278, 1.0446], cutoff_freq_vel = [0.0263, 0.0214])
df_kalman['filter_type'] = 'KF'
df_comp['filter_type'] = 'CF'
df_diffgps = pd.DataFrame()
df_diffgps['log_time'] = df_dgps.unix_time
df_diffgps['position'] = df_dgps.pos
df_diffgps['velocity'] = df_dgps.speed
df_diffgps['filter_type'] = 'DGPS'
df_phone1 = pd.DataFrame()
df_phone1['log_time'] = df_phone.log_time
df_phone1['position'] = df_phone.y_boat
df_phone1['velocity'] = df_phone.location_speed
df_phone1['filter_type'] = 'Smartphone'
gives
---------------------------------------------------------------------------
AttributeError Traceback (most recent call last)
<ipython-input-3-06205e2d8ef6> in <module>
3 df_phone, df_acc, df_dgps = cd.clean_data(df_phone, df_dgps2)
4 df_kalman = kf.compute(df_phone,df_acc)
----> 5 df_comp = cf.ton(df_phone, cutoff_freq_pos = [1.278, 1.0446], cutoff_freq_vel = [0.0263, 0.0214])
6 df_kalman['filter_type'] = 'KF'
7 df_comp['filter_type'] = 'CF'
AttributeError: module 'row_filter.complementary' has no attribute 'ton'
single_pass_plots_archive.ipynb
df_kalman['filter'] = 'KF'
df_comp['filter'] = 'CF'
df_diffgps = pd.DataFrame()
df_diffgps['log_time'] = df_dgps.unix_time
df_diffgps['position'] = df_dgps.pos
df_diffgps['velocity'] = df_dgps.speed
df_diffgps['filter'] = 'DGPS'
df_phone1 = pd.DataFrame()
df_phone1['log_time'] = df_phone.log_time
df_phone1['position'] = df_phone.y_boat
df_phone1['velocity'] = df_phone.location_speed
df_phone1['filter'] = 'Phone'
gives
---------------------------------------------------------------------------
NameError Traceback (most recent call last)
<ipython-input-3-d31ebe66b058> in <module>
----> 1 df_kalman['filter'] = 'KF'
2 df_comp['filter'] = 'CF'
3 df_diffgps = pd.DataFrame()
4 df_diffgps['log_time'] = df_dgps.unix_time
5 df_diffgps['position'] = df_dgps.pos
NameError: name 'df_kalman' is not defined
stationarydGPS.ipynb
df_dgps = cd.get_dgps_pos(df1)
gives
---------------------------------------------------------------------------
AttributeError Traceback (most recent call last)
<ipython-input-3-580f5b2445c7> in <module>
----> 1 df_dgps = cd.get_dgps_pos(df1)
AttributeError: module 'row_filter.clean_data' has no attribute 'get_dgps_pos'
stroke_detect-paper.ipynb
Runs!
stroke_metrics.ipynb
Runs!
thomas_stroke_detect.ipynb
df_kalman = kf.compute(df_phone,df_acc)
df_comp = cf.ton_ext(df_phone, cutoff_freq_pos = [5.62, 5.088], cutoff_freq_vel = [0.0243, 0.0257])
gives
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-6-55ecf08aff53> in <module>
1 df_kalman = kf.compute(df_phone,df_acc)
----> 2 df_comp = cf.ton_ext(df_phone, cutoff_freq_pos = [5.62, 5.088], cutoff_freq_vel = [0.0243, 0.0257])
TypeError: ton_ext() got an unexpected keyword argument 'cutoff_freq_pos'
Edited by Jason Moore