help & physics
This commit is contained in:
@@ -6,6 +6,7 @@
|
|||||||
<h1>Welcome to Rowsandall.com</h1>
|
<h1>Welcome to Rowsandall.com</h1>
|
||||||
<ul class="main-content">
|
<ul class="main-content">
|
||||||
<li class="grid_2">
|
<li class="grid_2">
|
||||||
|
<h2>What is it?</h2>
|
||||||
<p>
|
<p>
|
||||||
Rowsandall.com is an online tool for rowers to analyze data from On The Water
|
Rowsandall.com is an online tool for rowers to analyze data from On The Water
|
||||||
(OTW) and On The Erg (OTE) workouts. It accepts workout data from a
|
(OTW) and On The Erg (OTE) workouts. It accepts workout data from a
|
||||||
|
|||||||
@@ -76,28 +76,28 @@
|
|||||||
<label for="group-chart">Static Charts</label>
|
<label for="group-chart">Static Charts</label>
|
||||||
<ul>
|
<ul>
|
||||||
<li id="chart-time">
|
<li id="chart-time">
|
||||||
<a href="/rowers/workout/{{ workout.id }}/addtimeplot">
|
<a href="/rowers/workout/{{ workout.id }}/addstatic/1">
|
||||||
<i class="fas fa-stopwatch fa-fw"></i> Time
|
<i class="fas fa-stopwatch fa-fw"></i> Time
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
<li id="chart-distance">
|
<li id="chart-distance">
|
||||||
<a href="/rowers/workout/{{ workout.id }}/adddistanceplot">
|
<a href="/rowers/workout/{{ workout.id }}/addstatic/2">
|
||||||
<i class="fas fa-ruler fa-fw"></i> Distance
|
<i class="fas fa-ruler fa-fw"></i> Distance
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
<li id="chart-powerpie">
|
<li id="chart-powerpie">
|
||||||
<a href="/rowers/workout/{{ workout.id }}/addpowerpiechart">
|
<a href="/rowers/workout/{{ workout.id }}/addstatic/13">
|
||||||
<i class="far fa-chart-pie fa-fw"></i> Power (Pie)
|
<i class="far fa-chart-pie fa-fw"></i> Power (Pie)
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
<li id="chart-hrpie">
|
<li id="chart-hrpie">
|
||||||
<a href="/rowers/workout/{{ workout.id }}/addpiechart">
|
<a href="/rowers/workout/{{ workout.id }}/addstatic/3">
|
||||||
<i class="fas fa-heartbeat fa-fw"></i> Heart Rate (Pie)
|
<i class="fas fa-heartbeat fa-fw"></i> Heart Rate (Pie)
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
{% if workout|water %}
|
{% if workout|water %}
|
||||||
<li id="chart-otwpower">
|
<li id="chart-otwpower">
|
||||||
<a href="/rowers/workout/{{ workout.id }}/addotwpowerplot">
|
<a href="/rowers/workout/{{ workout.id }}/addstatic/9">
|
||||||
<i class="fas fa-chart-area fa-fw"></i> OTW Power
|
<i class="fas fa-chart-area fa-fw"></i> OTW Power
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
|
|||||||
@@ -1,10 +1,11 @@
|
|||||||
|
{% extends "newbase.html" %}
|
||||||
{% extends "base.html" %}
|
|
||||||
{% block title %}About us{% endblock title %}
|
{% block title %}About us{% endblock title %}
|
||||||
{% block content %}
|
{% block main %}
|
||||||
|
|
||||||
<div class="grid_6 alpha">
|
<h1>How we calculate things</h1>
|
||||||
<h3>How we calculate things</h3>
|
|
||||||
|
<ul class="main-content">
|
||||||
|
<li class="grid_2">
|
||||||
<p>You are reading this because you want to understand how the wind/stream conversion and the conversion from OTW pace to OTE pace works.</p>
|
<p>You are reading this because you want to understand how the wind/stream conversion and the conversion from OTW pace to OTE pace works.</p>
|
||||||
|
|
||||||
<p>The conversions are done using a one-dimensional mechanical model that is
|
<p>The conversions are done using a one-dimensional mechanical model that is
|
||||||
@@ -89,10 +90,9 @@ contact me if there are any inconsistencies, suspicions, questions or simply
|
|||||||
if you want to chat about Rowing Physics.
|
if you want to chat about Rowing Physics.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
|
</li>
|
||||||
</div>
|
<li class="grid_2">
|
||||||
<div class="grid_6 omega">
|
<h2>Manual</h2>
|
||||||
<h3>Manual</h3>
|
|
||||||
|
|
||||||
<p>Here's the best way - in my mind - to use the Rowing Physics
|
<p>Here's the best way - in my mind - to use the Rowing Physics
|
||||||
functionality. I am assuming you have successfully uploaded or imported
|
functionality. I am assuming you have successfully uploaded or imported
|
||||||
@@ -106,14 +106,10 @@ GPS. For now, export the data to Strava and then import them here.
|
|||||||
<p>Recipe for success:
|
<p>Recipe for success:
|
||||||
<ol>
|
<ol>
|
||||||
<li>Click on the workout. This will bring you to the workout Edit view</li>
|
<li>Click on the workout. This will bring you to the workout Edit view</li>
|
||||||
<li>Click on the "Advanced" button</li>
|
<li>Look for three menu items labelled "Edit Wind Data", "Edit Stream
|
||||||
<li>Click on "Geeky Stuff"</li>
|
|
||||||
<li>Look for three buttons labelled "Edit Wind Data", "Edit Stream
|
|
||||||
Data" and "OTW Power"</li>
|
Data" and "OTW Power"</li>
|
||||||
<li>If you have wind or stream data, click on the appropriate
|
<li>If you have wind or stream data, click on the appropriate
|
||||||
button and enter your data.</li>
|
menu item and enter your data.</li>
|
||||||
<li>If you have both wind and stream, click the shortcut button
|
|
||||||
on the respective page to take you to the other parameter</li>
|
|
||||||
<li>Click on OTW Power</li>
|
<li>Click on OTW Power</li>
|
||||||
<li>Select the boat type and enter the average weight
|
<li>Select the boat type and enter the average weight
|
||||||
per crew member.
|
per crew member.
|
||||||
@@ -125,9 +121,6 @@ hour long row, but there may be other people's calculations in the queue, so
|
|||||||
<li>Progress can be monitored by clicking on "here" in the message
|
<li>Progress can be monitored by clicking on "here" in the message
|
||||||
at the top of the page advising that the calculation has
|
at the top of the page advising that the calculation has
|
||||||
begun.</li>
|
begun.</li>
|
||||||
<li>
|
|
||||||
When the calculation is complete, go back to the "Geeky Stuff" page
|
|
||||||
and click on "Corrected Pace Plot" to see the result. From here, you can re-run the calculation with different parameters.</li>
|
|
||||||
</ol>
|
</ol>
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
@@ -138,7 +131,7 @@ export the data to Strava or SportTracks now, those sites will have the
|
|||||||
Power data.
|
Power data.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<h3>Why does the calculation take so much time?</h3>
|
<h2>Why does the calculation take so much time?</h2>
|
||||||
|
|
||||||
<p>I am running the calculations from a first principles base, so for
|
<p>I am running the calculations from a first principles base, so for
|
||||||
each data point that I am calculating, I am finding the stroke average
|
each data point that I am calculating, I am finding the stroke average
|
||||||
@@ -161,6 +154,11 @@ well validated. For that, I need to collect data, so keep the workouts coming!
|
|||||||
|
|
||||||
<img src="/static/img/validation.png" width="450">
|
<img src="/static/img/validation.png" width="450">
|
||||||
|
|
||||||
</div>
|
</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
{% endblock content %}
|
{% endblock %}
|
||||||
|
|
||||||
|
{% block sidebar %}
|
||||||
|
{% include 'menu_help.html' %}
|
||||||
|
{% endblock %}
|
||||||
|
|||||||
@@ -270,7 +270,6 @@ urlpatterns = [
|
|||||||
),
|
),
|
||||||
url(r'^physics$',TemplateView.as_view(template_name='physics.html'),name='physics'),
|
url(r'^physics$',TemplateView.as_view(template_name='physics.html'),name='physics'),
|
||||||
url(r'^partners$',TemplateView.as_view(template_name='partners.html'),name='partners'),
|
url(r'^partners$',TemplateView.as_view(template_name='partners.html'),name='partners'),
|
||||||
url(r'^workout/(?P<id>\d+)/$',views.workout_view),
|
|
||||||
# keeping the old URLs for retrofit
|
# keeping the old URLs for retrofit
|
||||||
url(r'^workout/(?P<id>\d+)/addtimeplot$',
|
url(r'^workout/(?P<id>\d+)/addtimeplot$',
|
||||||
views.workout_add_chart_view,
|
views.workout_add_chart_view,
|
||||||
|
|||||||
@@ -6717,6 +6717,7 @@ def workout_undo_smoothenpace_view(
|
|||||||
request,id=0,message="",successmessage=""
|
request,id=0,message="",successmessage=""
|
||||||
):
|
):
|
||||||
row = get_workout(id)
|
row = get_workout(id)
|
||||||
|
r = getrower(request.user)
|
||||||
|
|
||||||
if (checkworkoutuser(request.user,row)==False):
|
if (checkworkoutuser(request.user,row)==False):
|
||||||
message = "You are not allowed to edit this workout"
|
message = "You are not allowed to edit this workout"
|
||||||
@@ -6737,7 +6738,12 @@ def workout_undo_smoothenpace_view(
|
|||||||
row.write_csv(filename,gzip=True)
|
row.write_csv(filename,gzip=True)
|
||||||
dataprep.update_strokedata(id,row.df)
|
dataprep.update_strokedata(id,row.df)
|
||||||
|
|
||||||
url = "/rowers/workout/"+str(id)+"/advanced"
|
url = reverse(r.defaultlandingpage,
|
||||||
|
kwargs = {
|
||||||
|
'id':id,
|
||||||
|
}
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
return HttpResponseRedirect(url)
|
return HttpResponseRedirect(url)
|
||||||
|
|
||||||
@@ -6747,6 +6753,8 @@ def workout_undo_smoothenpace_view(
|
|||||||
def workout_smoothenpace_view(request,id=0,message="",successmessage=""):
|
def workout_smoothenpace_view(request,id=0,message="",successmessage=""):
|
||||||
row = get_workout(id)
|
row = get_workout(id)
|
||||||
|
|
||||||
|
r = getrower(request.user)
|
||||||
|
|
||||||
if (checkworkoutuser(request.user,row)==False):
|
if (checkworkoutuser(request.user,row)==False):
|
||||||
message = "You are not allowed to edit this workout"
|
message = "You are not allowed to edit this workout"
|
||||||
messages.error(request,message)
|
messages.error(request,message)
|
||||||
@@ -6776,7 +6784,11 @@ def workout_smoothenpace_view(request,id=0,message="",successmessage=""):
|
|||||||
row.write_csv(filename,gzip=True)
|
row.write_csv(filename,gzip=True)
|
||||||
dataprep.update_strokedata(id,row.df)
|
dataprep.update_strokedata(id,row.df)
|
||||||
|
|
||||||
url = "/rowers/workout/"+str(id)+"/advanced"
|
url = reverse(r.defaultlandingpage,
|
||||||
|
kwargs = {
|
||||||
|
'id':id,
|
||||||
|
}
|
||||||
|
)
|
||||||
|
|
||||||
return HttpResponseRedirect(url)
|
return HttpResponseRedirect(url)
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user