-
Notifications
You must be signed in to change notification settings - Fork 4
/
statsfaq.php
164 lines (137 loc) · 6.08 KB
/
statsfaq.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
<?php
//connect to database
include 'dbconnect.php';
//check that user has a valid cookie, redirect if no valid cookie
include 'php_common/cookiecheck.php';
?>
<!DOCTYPE HTML>
<html>
<head>
<title>Gym Climbing Tracker</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1">
<!-- Latest compiled and minified CSS -->
<link rel="icon" href="images/favicon.ico" type="image/x-icon">
<link rel="stylesheet" type="text/css" href="css/bootstrap.css">
<link rel="stylesheet" type="text/css" href="style.php/mycss.scss">
<script src="http://ajax.googleapis.com/ajax/libs/jquery/2.0.3/jquery.min.js"></script>
<script src="js/bootstrap.js"></script>
<script src="js/uservoice.js"></script>
<script src="js/BoulderRouteGradingSystems.js"></script>
<link rel="stylesheet" type="text/css" href="style.php/mycss.scss">
</head>
<body>
<div id="wrap">
<div id="main">
<?php include_once("php_common/analyticstracking.php") ?>
<?php require("navigation.php"); ?>
<div class="container">
<div class="page-header">
<h1>Statistics FAQ</h1>
</div>
<ul>
<li id="grading-system-conversion">
<h3 class="text-left">What is the conversion between different grading systems?</h3>
<p>All grades in each grading system are converted between each other using the following tables.<br><br>
Because grading systems have different number of grades to represent the same range of difficulty, a grade in one system may represent multiple grades in another system. For example, in Fontainebleau, a 4-, 4 and 4+ all map to a V0 in the Hueco system.<br><br>
Each grade is recorded using its absolute grade index. The bolded/shaded entries in the tables indicate which absolute grade index is used when that particular grading system is used to record a climb. For example, if you are using the Hueco system, a V3 will be recorded as an absolute grade index of 5. However, if you recorded a 6A+ in Fontainebleau (absolute grade index = 6) and switched your grading system to Hueco, it would translate to a V3 but not change the absolute grade index.</p><br>
<h4 class="text-left">Boulder Grading Systems</h4>
<table class="table table-bordered" id="boulder-grading-table">
</table>
<h4 class="text-left">Route Grading Systems</h4>
<table class="table table-bordered" id="route-grading-table">
</table>
</li><br>
<li id="points-calculation">
<h3 class="text-left">How are points calculated?</h3>
<p>Points are meant to roughly represent the amount of effort exerted in a climbing workout. For each climb, points are calculated using the following formula:</p>
<p class="equation-block">
Points [for a specific grade/climb type/ascent type] = CTF * (AGI + 0.5) * GNF * AF * N * 100<br><br>
Total Points = Σ(Points)
</p>
<p>
where
</p>
<div class="equation-block">
<ul>
<li><b>CTF</b> = climbing type factor, accounts for differences between climbing types<br>
<table class="table table-bordered equation-table">
<tr>
<th></th>
<th>Boulder</th>
<th>Top-Rope</th>
<th>Lead</th>
</tr>
<tr>
<td>CTF</td>
<td>1.0</td>
<td>1.5</td>
<td>2.0</td>
</tr>
</table>
</li>
<li><b>AGI</b> = absolute grade index, corresponding to the table shown above<br>
<b>0 - 22</b> for bouldering, <b>0 - 30</b> for roped climbing</li>
<li><b>GNF</b> = grade normalization factor, accounts for the difference in absolute grade ranges between bouldering and roped climbing.<br>
Equals <b>1.0</b> for bouldering and <b>22/30 = 0.733</b> for roped climbing.</li>
<li><b>AF</b> = ascent factor, accounts for differences between different ascent types<br>
<table class="table table-bordered equation-table">
<tr>
<th></th>
<th>Attempt</th>
<th>Redpoint</th>
<th>Flash</th>
<th>Onsight</th>
</tr>
<tr>
<td>AF</td>
<td>0.5</td>
<td>1.0</td>
<td>1.15</td>
<td>1.2</td>
</tr>
</table>
</li>
<li><b>N</b> = number of repetitions of this specific grade/climb type/ascent type</li>
</ul>
</div>
</li>
</ul>
</div>
</div>
</div>
<p id = "scroll-padding"></p>
<?php require("php_common/footer.php"); ?>
</body>
<script>
function getGradingSystemHtml(gradingSystemNames, gradingConversionTable, gradeMapAbsGradeInd) {
var gradingTableHtml = '';
gradingTableHtml += "<tr><th>Absolute Grade Index</th>";
for (var key in gradingSystemNames) {
gradingTableHtml += "<th>" + gradingSystemNames[key] + "</th>";
}
gradingTableHtml += "</tr>";
for (var i = 0; i < gradingConversionTable[0].length; i++) {
gradingTableHtml += "<tr>";
// absolute grade
gradingTableHtml += "<td>" + i + "</td>";
for (var sysKey in gradingConversionTable) {
var gradeText = gradingConversionTable[sysKey][i],
actualGradeMarkup = '';
if (gradeMapAbsGradeInd[sysKey][gradeText] === i) {
actualGradeMarkup = '<td class="shaded-cell"><b>' + gradeText + '</b></td>';
} else {
actualGradeMarkup = '<td>' + gradeText + '</td>';
}
gradingTableHtml += actualGradeMarkup;
}
gradingTableHtml += "</tr>";
}
return gradingTableHtml;
}
var boulderTableHtml = getGradingSystemHtml(boulderGradingSystems, boulderConversionTable, boulderGradeMapAbsGradeInd),
routeTableHtml = getGradingSystemHtml(routeGradingSystems, routeConversionTable, routeGradeMapAbsGradeInd);
document.getElementById('boulder-grading-table').innerHTML = boulderTableHtml;
document.getElementById('route-grading-table').innerHTML = routeTableHtml;
</script>
</html>