Skip to content

Instantly share code, notes, and snippets.

@jeremycflin
Created December 19, 2017 16:38
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save jeremycflin/deabaec9c8170eaaafd1217187f59895 to your computer and use it in GitHub Desktop.
Save jeremycflin/deabaec9c8170eaaafd1217187f59895 to your computer and use it in GitHub Desktop.
A year of weekly running mileage
license: mit

Note: still a work in progress

In his heat-histogram, Adam Pierce shows how using masks lets you draw an area with multiple colors using just one path.

Here this method is applied to explore the weekly mileage I ran in 2014. Instead of updating the mask itself like in Adam's bl.ocks, the underlying masked paths are redrawn depending on the threshold values from the inputs, so the path can be selectively colored.

The bars are the distance (yellow) and elevation (blue) of the individual runs, hover on them to get more details.

forked from gcalmettes's block: A year of weekly running mileage

<!DOCTYPE html>
<meta charset="utf-8">
<style>
div.tooltip {
color: black;
position: absolute;
text-align: left;
width: auto;
height: auto;
padding: 5px;
font-family: Futura;
font: 12px sans-serif ;
background: #589772;
border: 0px;
border-radius: 8px;
pointer-events: none;
}
.movingSum {
stroke: black;
stroke-width: 2px;
fill: none;
}
.lowArc {
fill: #fee0d2;
}
.middleArc {
fill: #fc9272;
}
.highArc {
fill: #de2d26;
}
.axisCircle{
fill: none;
stroke: lightgray;
stroke-width: 1;
}
.axisLabel{
font-family: sans-serif;
font-size: 0.75em;
fill: lightgray;
}
.monthLine{
stroke: lightgray;
}
.monthLabel{
font-family: sans-serif;
font-size: 1em;
fill: lightgray;
}
.yearLabel{
font-family: sans-serif;
font-size: 2.5em;
fill: black;
}
.summaryNumber{
font-family: sans-serif;
font-size: 1em;
}
.distance{
fill: #fc9272;
}
.distanceLine{
stroke-width: 1.5px;
stroke: yellow;
}
.elevation{
fill: #51aae8;
}
.elevationLine{
stroke-width: 1.5px;
stroke: #51aae8;
}
.selected{
stroke-width: 5px;
stroke: #624D9A;
}
</style>
<body>
<div>
<div>
<span>
<svg width=35 height=12>
<rect x=0 y=0 width=12 height=12 class="lowArc" />
<line x1=14 y1=12 x2=16 y2=0 style="stroke: black; stroke-width: 1" />
<rect x=18 y=0 width=12 height=12 class="middleArc" />
</svg>
transition
</span>
<input type="range" min="0" max="95" value="40" step="1" id="lowTransition"/>
<div id="lowTransition-value" style="display: inline-block; width: 25px">40</div>
miles/week
</div>
<div>
<span>
<svg width=35 height=12>
<rect x=0 y=0 width=12 height=12 class="middleArc" />
<line x1=14 y1=12 x2=16 y2=0 style="stroke: black; stroke-width: 1"/>
<rect x=18 y=0 width=12 height=12 class="highArc" />
</svg>
transition
</span>
<input type="range" min="40" max=200 value="95" step="1" id="highTransition"/>
<div id="highTransition-value" style="display: inline-block; width: 25px">95</div>
miles/week
</div>
</div>
<script src="https://d3js.org/d3.v4.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.18.1/moment.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment-range/3.0.3/moment-range.min.js"></script>
<script>
//extend moment.js with moment-range.js
window['moment-range'].extendMoment(moment);
//weekly volume thresholds (for colors)
let lowDist = 0,
middleDist = 40,
highDist = 95,
movingSumArray,
arczone,
currentYear
d3.json("runs2014.json", data => {
activities = data.allActivities
activities.forEach(d => {
d.date = moment(d.date),
d.id = +d.id,
d.distanceMi = d.distanceKm * 0.621371, //km/miles conversion
d.elevationUpFt = d.elevationUpM * 3.28084, //m/ft conversion
d.elevationDownFt = d.elevationDownM * 3.28084//m/ft conversion
})
radialPlot(activities, 2014)
})
//low transition input
d3.select("#lowTransition")
.on("input", function () {
//update displayed value
d3.select("#lowTransition-value").text(+this.value);
//adjust min of highTransition
d3.select("#highTransition")
.attr("min", +this.value)
middleDist = +this.value,
updateZonesIndicesLimits(movingSumArray, lowDist, middleDist, highDist)
});
//high transition input
d3.select("#highTransition")
.on("input", function () {
//update displayed value
d3.select("#highTransition-value").text(+this.value);
//adjust max of lowTransition
d3.select("#lowTransition")
.attr("max", +this.value)
highDist = +this.value,
updateZonesIndicesLimits(movingSumArray, lowDist, middleDist, highDist)
});
function radialPlot(data, year){
currentYear = year//in global scope
/////////////////////////
//data munging
const yearTimeRange = moment.range(new Date(year, 0, 1), new Date(year, 11, 31))
data = data.filter(d => d.date.year() == year)
//mileage by 7-days window
movingSumArray = Array.from(yearTimeRange.by("day")).map(d => {
return {date: d,
distanceMi: getMovingSum(d, data, undefined, undefined,"distanceMi"),
elevationUpFt: getMovingSum(d, data, undefined, undefined, "elevationUpFt")
}
})
/////////////////////////
//D3 computation-related stuffs
const margin = {top: 50, right: 50, bottom: 50, left: 50},
width = 600 - margin.left - margin.right,
height = 600 - margin.top - margin.bottom
const angleScale = d3.scaleTime()
.domain([moment(new Date(year, 0, 1)), moment(new Date(year, 11, 31))])
.range([0, 1.9*Math.PI])
const radiusScale = d3.scaleLinear()
.domain([0, 180])
.range([140, height/2])
//radial projection, with starting position at Pi/2
xScale = (day, distance) => Math.cos(angleScale(day)-Math.PI/2)*radiusScale(distance)
yScale = (day, distance) => Math.sin(angleScale(day)-Math.PI/2)*radiusScale(distance)
const lineDistance = d3.line()
.x(d => xScale(d.date, d.distanceMi))
.y(d => yScale(d.date, d.distanceMi))
arcZone = d3.arc()
.innerRadius(radiusScale(0))
.outerRadius(radiusScale(radiusScale.domain()[1]))
.startAngle(d => angleScale(movingSumArray[d.startIndice].date))
.endAngle(d => angleScale(movingSumArray[d.endIndice].date));
/////////////////////////
//D3 DOM-related stuffs
const svg = d3.select("body")
.append("svg")
.attr("id", "mainSVG")
.attr("width", width + margin.left + margin.right)
.attr("height", height + margin.top + margin.bottom)
.append("g")
.attr("transform", `translate(${margin.left}, ${margin.top})`)
//add mask of weekly volume path that will be used to mask drawn arcs
//see https://bl.ocks.org/1wheel/76a07ca0d23f616d29349f7dd7857ca5
const defs = svg.append('defs');
defs.append('mask')
.attr('id', `movingSumMask-${year}`)
.append('path')
.datum(movingSumArray)
.attr('d', lineDistance.curve(d3.curveCatmullRom))
.attr("fill", "#fff");
gMovingSum = svg.append("g")
.attr("transform", `translate(${width/2}, ${height/2})`)
.attr("class", "gMovingSum")
//black stroke
gMovingSum.append("path")
.datum(movingSumArray)
.attr("d", lineDistance.curve(d3.curveCatmullRom))
.attr("class", "movingSum")
//tooltip
const tooltip = d3.select("body")
.append("div")
.attr("class", "tooltip")
.style("opacity", 0);
//draw arcs colored depending on weekly mileage and masked
//using above mask
gMovingSum.selectAll(".arcZone")
.data(getZonesIndicesLimits(movingSumArray, lowDist, middleDist, highDist))
.enter()
.append("path")
.attr("class", d => `arcZone ${d.zone}Arc`)
.attr("d", arcZone)
.attr("mask", `url(#movingSumMask-${year})`)
//individual runs distance
svg.append("g")
.attr("transform", `translate(${width/2}, ${height/2})`)
.attr("class", "gElevation")
.selectAll(".distanceLine")
.data(data)
.enter()
.append("line")
.attr("class", "distanceLine")
.attr("x1", d => xScale(d.date, 0))
.attr("x2", d => xScale(d.date, d.distanceMi))
.attr("y1", d => yScale(d.date, 0))
.attr("y2", d => yScale(d.date, d.distanceMi))
.on("mouseover", tooltipOn)
.on("mouseout", tooltipOff)
//individual runs elevation
svg.append("g")
.attr("transform", `translate(${width/2}, ${height/2})`)
.attr("class", "gElevation")
.selectAll(".elevationLine")
.data(data)
.enter()
.append("line")
.attr("class", "elevationLine")
.attr("x1", d => xScale(d.date, 0))
.attr("x2", d => xScale(d.date, -d.elevationUpFt/250))
.attr("y1", d => yScale(d.date, 0))
.attr("y2", d => yScale(d.date, -d.elevationUpFt/250))
.on("mouseover", tooltipOn)
.on("mouseout", tooltipOff)
//axes
gAxis = svg.append("g")
.attr("transform", `translate(${width/2}, ${height/2})`)
gAxis.selectAll(".monthLine")
.data(Array.from(yearTimeRange.by("month")))
.enter()
.append("line")
.attr("class", "monthLine")
.attr("x1", d => xScale(d, -120))
.attr("x2", d => xScale(d, radiusScale.domain()[1] + 20))
.attr("y1", d => yScale(d, -120))
.attr("y2", d => yScale(d, radiusScale.domain()[1]+ 20))
gAxis.selectAll(".monthLabel")
.data(Array.from(yearTimeRange.by("month")), d => d.add(15, "days"))
.enter()
.append("text")
.attr("class", "monthLabel")
.attr("x", d => xScale(d, radiusScale.domain()[1]+20))
.attr("y", d => yScale(d, radiusScale.domain()[1]+20))
.attr("text-anchor", "middle")
.html(d => d.format("MMM"))
//axis mileage circles
let circleAxis = [30, 60, 90, 120, 150]
let pathAxis = circleAxis.map(d => {
return Array.from(yearTimeRange.by("days"))
.map(day => {return {date: day, distanceMi: d} })
})
gAxis.selectAll(".axisCircle")
.data(pathAxis)
.enter()
.append("path")
.attr('d', lineDistance)
.attr('class', 'axisCircle')
//axis mileage labels
gAxis.selectAll('.axisLabel')
.data(circleAxis)
.enter()
.append('text')
.attr('class', 'axisLabel')
.attr("text-anchor", "start")
.attr("transform", d => `rotate(-10, ${xScale(moment("2014-12-31"), d) + 7}, ${yScale(moment("2014-12-31"), d)})`)
.attr('x', d => xScale(moment("2014-12-31"), d) + 7)
.attr('y', d => yScale(moment("2014-12-31"), d))
.text(d => `${d}mi`);
gAxis.append("text")
.attr("class", "yearLabel")
.attr("y", -10)
.attr("text-anchor", "middle")
.text(year)
let totalDistance = Math.floor(d3.sum(data, d => d.distanceMi))
let totalElevation = Math.floor(d3.sum(data, d => d.elevationUpFt))
gAxis.append("text")
.attr("class", "summaryNumber distance")
.attr("y", 10)
.attr("text-anchor", "middle")
.text(`${totalDistance} miles`)
gAxis.append("text")
.attr("class", "summaryNumber elevation")
.attr("y", 30)
.attr("text-anchor", "middle")
.text(`${totalElevation} ft`)
}
//calculate moving sum distance array
function getTimeRange(day, n, type="days"){
//moment .subtract mutates original moment so need to clone
let startInterval = day.clone().subtract(n, type)
return moment.range(startInterval, day)
}
function getTimeRangeActivities(data, range){
return data.filter(d => range.contains(d.date))
}
function getMovingSum(day, data, n=6, type="days", variable="distanceMi"){
let timeRange = this.getTimeRange(day, n, type)
let timeRangeActivities = this.getTimeRangeActivities(data, timeRange)
return d3.sum(timeRangeActivities, d => d[variable])
}
function getZonesIndicesLimits(movingSumArray, lowThreshold, middleThreshold, highThreshold){
//detect zones of weekly distance
let zonesIndices = {low: [],
middle: [],
high: []
}
//populate zoneIndices array
movingSumArray.forEach((d,i) => {
if (d.distanceMi >= highThreshold) zonesIndices.high.push(i)
if (d.distanceMi < highThreshold && d.distanceMi >= middleThreshold) zonesIndices.middle.push(i)
else zonesIndices.low.push(i)
})
//gather consecutive indices
for (let i=0; i<Object.keys(zonesIndices).length; i++) {
let array = zonesIndices[Object.keys(zonesIndices)[i]]
let result = [], temp = [], difference;
for (let i = 0; i < array.length; i += 1) {
if (difference !== (array[i] - i)) {
if (difference !== undefined) {
result.push(temp);
temp = [];
}
difference = array[i] - i;
}
temp.push(array[i]);
}
if (temp.length) {
result.push(temp);
}
zonesIndices[Object.keys(zonesIndices)[i]] = result
}
//extract first/last indices for each consecutive series
let zonesLimits = [];
Object.keys(zonesIndices).map(zoneName => {
zonesIndices[zoneName].map((indicesArray,i) => {
let limits = [indicesArray[0], indicesArray[indicesArray.length-1]]
if (limits[0]!==0) limits[0]=limits[0]-1
zonesLimits.push(
{zone: zoneName,
startIndice: limits[0],
endIndice: limits[1]})
})
})
return zonesLimits
}
function updateZonesIndicesLimits(movingSumArray, lowThreshold, middleThreshold, highThreshold) {
let newZonesIndicesLimits = getZonesIndicesLimits(movingSumArray, lowDist, middleDist, highDist)
zones = gMovingSum.selectAll(".arcZone")
.data(newZonesIndicesLimits)
zones.exit().remove()
zones.enter()
.append("path")
.attr("class", d => `arcZone ${d.zone}Arc`)
.attr("d", arcZone)
.attr("mask", `url(#movingSumMask-${currentYear})`)
.merge(zones)
.attr("class", d => `arcZone ${d.zone}Arc`)
.attr("d", arcZone)
}
function tooltipOn(d) {
const tooltip = d3.select(".tooltip")
const width = +d3.select("#mainSVG").attr("width"),
height = +d3.select("#mainSVG").attr("height")
d3.select(this)
.classed("selected", true)
tooltip.transition()
.duration(200)
.style("opacity", .9);
const xPos = this.getAttribute("class").includes("elevationLine")? `${+d3.select(this).attr("x2") - 100 + height/2}px` : `${+d3.select(this).attr("x2")+ 20 + height/2}px`
const yPos = this.getAttribute("class").includes("elevationLine")? `${+d3.select(this).attr("y2")+ 80 + height/2}px` : `${+d3.select(this).attr("y2")+ - 10 + height/2}px`
tooltip
.html(`${d.date.format("ddd DD MMM YYYY")}
<br/>${d.name}
<br/>${Math.floor(d.distanceMi*10)/10} miles / ${Math.floor(d.elevationUpFt)} ft`)
.style("left", xPos)
.style("top", yPos);
}//tooltipOn
function tooltipOff(d) {
const tooltip = d3.select(".tooltip")
d3.select(this)
.classed("selected", false);
tooltip.transition()
.duration(500)
.style("opacity", 0);
}//tooltipOff
</script>
</body>
{"allActivities": [{"date": "2014-02-18T20:10:31", "id": "201031", "activityType": "Run", "name": "Tempo w/ some \"Hyde street hill repeats\" in between", "durationMin": 82.86666666666666, "distanceKm": 17.59744235810779, "elevationUpM": 321.20000000000243, "elevationDownM": -315.60000000000286}, {"date": "2014-05-11T18:34:16", "id": "183416", "activityType": "Run", "name": "AC100 training. Eagle's Roost to Chilao w/ Dom", "durationMin": 231.03333333333333, "distanceKm": 37.65649097748049, "elevationUpM": 1852.2000000000012, "elevationDownM": -2289.9000000000015}, {"date": "2014-03-24T00:40:07", "id": "004007", "activityType": "Run", "name": "3 flat + 1 douchegrade + 1 flat-ish", "durationMin": 121.91666666666667, "distanceKm": 26.14795126376439, "elevationUpM": 197.79999999999956, "elevationDownM": -197.89999999999858}, {"date": "2014-03-08T15:35:56", "id": "153556", "activityType": "Run", "name": "Playing around Mt Wilson and the AC100 course w/ Dom. Great day!", "durationMin": 520.55, "distanceKm": 58.02908749153957, "elevationUpM": 4457.6000000000195, "elevationDownM": -4505.800000000001}, {"date": "2014-06-20T16:47:25", "id": "164725", "activityType": "Run", "name": "Easy run before the big wk", "durationMin": 67.76666666666667, "distanceKm": 12.905842367491797, "elevationUpM": 118.0, "elevationDownM": -123.0}, {"date": "2014-06-19T17:31:31", "id": "173131", "activityType": "Run", "name": "Run commute", "durationMin": 31.683333333333334, "distanceKm": 5.783851110381431, "elevationUpM": 105.19999999999999, "elevationDownM": -59.19999999999999}, {"date": "2014-04-26T15:08:24", "id": "150824", "activityType": "Run", "name": "Playing on the Bulldog loop", "durationMin": 282.7, "distanceKm": 48.33415489430246, "elevationUpM": 2420.3999999999933, "elevationDownM": -2420.4999999999914}, {"date": "2014-01-13T17:37:08", "id": "173708", "activityType": "Run", "name": "Easy lollipop", "durationMin": 31.85, "distanceKm": 6.767980002752103, "elevationUpM": 78.29999999999998, "elevationDownM": -78.69999999999996}, {"date": "2014-08-06T02:04:44", "id": "020444", "activityType": "Run", "name": "Recovery run", "durationMin": 67.15, "distanceKm": 5.844353621457249, "elevationUpM": 59.0, "elevationDownM": -65.0}, {"date": "2014-02-16T17:17:13", "id": "171713", "activityType": "Run", "name": "SF boardwalk and Golden Gate bridge", "durationMin": 204.95, "distanceKm": 35.487747365108284, "elevationUpM": 367.40000000000407, "elevationDownM": -366.4000000000041}, {"date": "2014-11-06T03:25:16", "id": "032516", "activityType": "Run", "name": "Pyramidal Fartlek 1-2-3-2-1", "durationMin": 28.35, "distanceKm": 6.788906252438546, "elevationUpM": 63.0, "elevationDownM": -65.0}, {"date": "2014-11-12T16:01:09", "id": "160109", "activityType": "Run", "name": "Coffee shop run", "durationMin": 18.483333333333334, "distanceKm": 2.939873105707785, "elevationUpM": 39.400000000000006, "elevationDownM": -12.400000000000006}, {"date": "2014-11-06T14:23:43", "id": "142343", "activityType": "Run", "name": "Running West of the Ridge", "durationMin": 74.83333333333333, "distanceKm": 11.376507068041207, "elevationUpM": 460.0, "elevationDownM": -450.0}, {"date": "2014-04-29T01:48:50", "id": "014850", "activityType": "Run", "name": "Westridge w/ Pauline", "durationMin": 95.68333333333334, "distanceKm": 11.691678912300837, "elevationUpM": 471.40000000000015, "elevationDownM": -466.8000000000001}, {"date": "2014-01-30T14:29:34", "id": "142934", "activityType": "Run", "name": "Coyotes run - Easy", "durationMin": 79.63333333333334, "distanceKm": 14.867528897282288, "elevationUpM": 570.0999999999992, "elevationDownM": -559.6999999999994}, {"date": "2014-01-16T00:49:03", "id": "004903", "activityType": "Run", "name": "UCLA perimeter w/ Pauline", "durationMin": 44.65, "distanceKm": 6.855190925588795, "elevationUpM": 119.6, "elevationDownM": -121.6}, {"date": "2014-03-18T12:53:53", "id": "125353", "activityType": "Run", "name": "Panda Bday Sunrise run", "durationMin": 93.83333333333333, "distanceKm": 10.692595058418767, "elevationUpM": 771.4999999999991, "elevationDownM": -771.0999999999997}, {"date": "2014-11-01T16:09:33", "id": "160933", "activityType": "Run", "name": "Square", "durationMin": 50.88333333333333, "distanceKm": 11.276096395263535, "elevationUpM": 188.5, "elevationDownM": -183.5}, {"date": "2014-11-13T02:44:58", "id": "024458", "activityType": "Run", "name": "Warm up", "durationMin": 12.716666666666667, "distanceKm": 2.1433721572766458, "elevationUpM": 20.0, "elevationDownM": -21.0}, {"date": "2014-01-05T22:52:00", "id": "225200", "activityType": "Run", "name": "Sunny sunday", "durationMin": 126.51666666666667, "distanceKm": 25.17788098120397, "elevationUpM": 194.59999999999854, "elevationDownM": -194.4999999999985}, {"date": "2014-01-04T22:40:15", "id": "224015", "activityType": "Run", "name": "Baby steps", "durationMin": 101.11666666666666, "distanceKm": 19.361092551859315, "elevationUpM": 506.20000000000016, "elevationDownM": -506.10000000000053}, {"date": "2014-07-07T17:23:22", "id": "172322", "activityType": "Run", "name": "Easy monday #1", "durationMin": 60.38333333333333, "distanceKm": 12.068570387752532, "elevationUpM": 137.8, "elevationDownM": -137.8}, {"date": "2014-07-01T01:14:40", "id": "011440", "activityType": "Run", "name": "UCLA fun", "durationMin": 75.53333333333333, "distanceKm": 16.121277440402125, "elevationUpM": 309.9, "elevationDownM": -313.9}, {"date": "2014-03-22T02:36:19", "id": "023619", "activityType": "Run", "name": "Caught up by work", "durationMin": 59.68333333333333, "distanceKm": 13.231901499802337, "elevationUpM": 234.10000000000008, "elevationDownM": -234.50000000000006}, {"date": "2014-03-29T15:56:30", "id": "155630", "activityType": "Run", "name": "Crewing at Gorge 50k", "durationMin": 19.916666666666668, "distanceKm": 0.988012786418839, "elevationUpM": 29.1, "elevationDownM": -29.800000000000004}, {"date": "2014-12-18T04:02:05", "id": "040205", "activityType": "Run", "name": "Q's run", "durationMin": 9.683333333333334, "distanceKm": 1.3884165600188167, "elevationUpM": 14.0, "elevationDownM": -18.0}, {"date": "2014-11-04T14:06:54", "id": "140654", "activityType": "Run", "name": "Tea-Meh-Scale", "durationMin": 76.48333333333333, "distanceKm": 12.227002931966263, "elevationUpM": 777.5999999999991, "elevationDownM": -774.3000000000004}, {"date": "2014-01-12T18:19:45", "id": "181945", "activityType": "Run", "name": "SM & Venice boardwalk", "durationMin": 118.05, "distanceKm": 26.360734119143466, "elevationUpM": 233.49999999999974, "elevationDownM": -233.59999999999872}, {"date": "2014-12-27T00:40:34", "id": "004034", "activityType": "Run", "name": "Alone in the dark", "durationMin": 152.06666666666666, "distanceKm": 23.79876109686629, "elevationUpM": 1006.8, "elevationDownM": -1011.8}, {"date": "2014-10-22T16:27:24", "id": "162724", "activityType": "Run", "name": "First run back on the trails. Westridge I know you missed me.", "durationMin": 55.516666666666666, "distanceKm": 11.674523075518403, "elevationUpM": 332.5999999999999, "elevationDownM": -326.5999999999999}, {"date": "2014-02-14T17:59:25", "id": "175925", "activityType": "Run", "name": "Jog", "durationMin": 84.13333333333334, "distanceKm": 18.179815201107008, "elevationUpM": 215.1000000000002, "elevationDownM": -215.29999999999944}, {"date": "2014-07-18T18:10:38", "id": "181038", "activityType": "Run", "name": "Leg shakeout", "durationMin": 33.13333333333333, "distanceKm": 6.8054193616935645, "elevationUpM": 95.0, "elevationDownM": -91.0}, {"date": "2014-06-13T02:27:52", "id": "022752", "activityType": "Run", "name": "A little bit longer, a little bit bitter", "durationMin": 57.733333333333334, "distanceKm": 13.332780457063455, "elevationUpM": 268.5, "elevationDownM": -269.5}, {"date": "2014-10-31T16:52:32", "id": "165232", "activityType": "Run", "name": "Easy Golf course", "durationMin": 50.05, "distanceKm": 10.303230007367413, "elevationUpM": 113.0, "elevationDownM": -111.0}, {"date": "2014-01-27T00:30:07", "id": "003007", "activityType": "Run", "name": "10k w/ Pauline to finish off the day", "durationMin": 69.58333333333333, "distanceKm": 10.217887483008749, "elevationUpM": 98.99999999999999, "elevationDownM": -98.89999999999984}, {"date": "2014-04-25T13:16:56", "id": "131656", "activityType": "Run", "name": "Westridge sightseeing w/ Mr Andy", "durationMin": 107.23333333333333, "distanceKm": 18.5572069952341, "elevationUpM": 1021.1999999999999, "elevationDownM": -1019.899999999999}, {"date": "2014-02-23T18:52:19", "id": "185219", "activityType": "Run", "name": "Double Temescal", "durationMin": 160.68333333333334, "distanceKm": 23.426481906880426, "elevationUpM": 1476.1000000000001, "elevationDownM": -1468.8}, {"date": "2014-12-13T16:22:40", "id": "162240", "activityType": "Run", "name": "Aerobic run", "durationMin": 113.58333333333333, "distanceKm": 23.56922832360798, "elevationUpM": 264.09999999999997, "elevationDownM": -271.29999999999995}, {"date": "2014-03-16T15:24:20", "id": "152420", "activityType": "Run", "name": "Relaxing sunny sunday", "durationMin": 171.9, "distanceKm": 32.52254469428677, "elevationUpM": 400.1000000000008, "elevationDownM": -399.89999999999986}, {"date": "2014-05-04T16:13:03", "id": "161303", "activityType": "Run", "name": "Rivas Sulli Loop", "durationMin": 127.8, "distanceKm": 19.486744893941598, "elevationUpM": 1037.1999999999987, "elevationDownM": -1038.400000000001}, {"date": "2014-04-05T12:39:14", "id": "123914", "activityType": "Run", "name": "Run commuting to the starting line", "durationMin": 9.783333333333333, "distanceKm": 1.4147758590795876, "elevationUpM": 13.300000000000011, "elevationDownM": -9.100000000000009}, {"date": "2014-02-17T19:47:22", "id": "194722", "activityType": "Run", "name": "SI 6x[0.6mi (85%) / 45sec] + strides", "durationMin": 66.03333333333333, "distanceKm": 13.450384503033964, "elevationUpM": 71.20000000000019, "elevationDownM": -65.40000000000018}, {"date": "2014-07-03T12:57:35", "id": "125735", "activityType": "Run", "name": "No food + fat burning pace", "durationMin": 210.68333333333334, "distanceKm": 32.219588953694725, "elevationUpM": 706.8, "elevationDownM": -697.8}, {"date": "2014-10-18T17:37:31", "id": "173731", "activityType": "Run", "name": "Easy stuff on the beach boardwalk", "durationMin": 80.25, "distanceKm": 13.110574256884718, "elevationUpM": 77.2, "elevationDownM": -140.2}, {"date": "2014-02-05T18:29:16", "id": "182916", "activityType": "Run", "name": "SI 7x0.6mi/45s + strides", "durationMin": 43.05, "distanceKm": 10.501707674686653, "elevationUpM": 113.40000000000006, "elevationDownM": -113.40000000000003}, {"date": "2014-05-14T16:39:52", "id": "163952", "activityType": "Run", "name": "Easy miles repeats", "durationMin": 66.55, "distanceKm": 14.564677002161318, "elevationUpM": 153.0999999999998, "elevationDownM": -153.10000000000005}, {"date": "2014-02-22T17:15:05", "id": "171505", "activityType": "Run", "name": "First 30mi of AC100 w/ Dom, Jorge and Balmore - Fun fun fun!", "durationMin": 430.76666666666665, "distanceKm": 46.982141291271176, "elevationUpM": 3414.000000000002, "elevationDownM": -3186.4000000000024}, {"date": "2014-05-17T15:43:37", "id": "154337", "activityType": "Run", "name": "Heat training, fat burning pace, steady", "durationMin": 427.26666666666665, "distanceKm": 63.06773959327079, "elevationUpM": 2752.6999999999857, "elevationDownM": -2752.9999999999864}, {"date": "2014-12-20T15:52:50", "id": "155250", "activityType": "Run", "name": "Steady does it", "durationMin": 137.5, "distanceKm": 30.563286225145188, "elevationUpM": 280.0, "elevationDownM": -286.0}, {"date": "2014-08-24T10:40:34", "id": "104034", "activityType": "Run", "name": "Roucari\u00e9 Lake Loop", "durationMin": 54.6, "distanceKm": 11.267698589598188, "elevationUpM": 192.0, "elevationDownM": -194.0}, {"date": "2014-02-19T16:01:56", "id": "160156", "activityType": "Run", "name": "Recovery run", "durationMin": 71.91666666666667, "distanceKm": 12.991473810501908, "elevationUpM": 75.90000000000026, "elevationDownM": -73.30000000000015}, {"date": "2014-08-22T16:45:52", "id": "164552", "activityType": "Run", "name": "SI 6x(1km/45s)", "durationMin": 52.15, "distanceKm": 11.548494371079249, "elevationUpM": 74.10000000000011, "elevationDownM": -72.10000000000011}, {"date": "2014-07-10T12:05:21", "id": "120521", "activityType": "Run", "name": "Coyotes Marathon", "durationMin": 209.4, "distanceKm": 42.30637610078677, "elevationUpM": 859.9999999999998, "elevationDownM": -854.0}, {"date": "2014-05-15T17:03:01", "id": "170301", "activityType": "Run", "name": "Free falling into the furnace", "durationMin": 130.0, "distanceKm": 26.076893252439206, "elevationUpM": 724.7000000000004, "elevationDownM": -724.7000000000006}, {"date": "2014-07-13T15:17:30", "id": "151730", "activityType": "Run", "name": "First 37 of AC100. Great heat training too.", "durationMin": 459.01666666666665, "distanceKm": 60.43313946895901, "elevationUpM": 3025.999999999998, "elevationDownM": -2717.999999999998}, {"date": "2014-12-16T18:14:53", "id": "181453", "activityType": "Run", "name": "12/16/2014 Los Angeles, California", "durationMin": 69.91666666666667, "distanceKm": 12.283212174629666, "elevationUpM": 604.4000000000003, "elevationDownM": -607.7}, {"date": "2014-06-18T17:43:16", "id": "174316", "activityType": "Run", "name": "Ez #1", "durationMin": 39.9, "distanceKm": 6.767928840352662, "elevationUpM": 85.0, "elevationDownM": -86.0}, {"date": "2014-03-15T18:10:40", "id": "181040", "activityType": "Run", "name": "Santa Monica Mountains ClimbFest", "durationMin": 440.15, "distanceKm": 65.2990949303389, "elevationUpM": 2717.8999999999996, "elevationDownM": -2719.9000000000015}, {"date": "2014-03-11T12:47:01", "id": "124701", "activityType": "Run", "name": "Pitch black temescal", "durationMin": 162.21666666666667, "distanceKm": 17.23543654453577, "elevationUpM": 961.7000000000002, "elevationDownM": -960.2}, {"date": "2014-04-07T16:45:47", "id": "164547", "activityType": "Run", "name": "Recovery Brentwood lollipop run", "durationMin": 36.35, "distanceKm": 6.762947122258413, "elevationUpM": 76.50000000000003, "elevationDownM": -76.80000000000001}, {"date": "2014-05-05T16:44:21", "id": "164421", "activityType": "Run", "name": "Easy road", "durationMin": 85.83333333333333, "distanceKm": 17.749887232193252, "elevationUpM": 174.50000000000009, "elevationDownM": -175.19999999999914}, {"date": "2014-01-08T17:40:05", "id": "174005", "activityType": "Run", "name": "Brentwood lollipop jog", "durationMin": 30.916666666666668, "distanceKm": 6.780058338723228, "elevationUpM": 78.1, "elevationDownM": -78.39999999999998}, {"date": "2014-08-10T23:30:58", "id": "233058", "activityType": "Run", "name": "Beach Run w/ Pauline", "durationMin": 72.96666666666667, "distanceKm": 10.054555666410327, "elevationUpM": 102.0, "elevationDownM": -101.0}, {"date": "2014-06-05T12:43:25", "id": "124325", "activityType": "Run", "name": "Westridge-yotes", "durationMin": 158.43333333333334, "distanceKm": 30.622920487382636, "elevationUpM": 806.7000000000003, "elevationDownM": -801.7000000000003}, {"date": "2014-07-04T12:43:35", "id": "124335", "activityType": "Run", "name": "Temescal fun + pacing Lola at Palissade 5k", "durationMin": 210.58333333333334, "distanceKm": 30.930974658380908, "elevationUpM": 840.4000000000001, "elevationDownM": -817.3999999999999}, {"date": "2014-03-04T16:45:54", "id": "164554", "activityType": "Run", "name": "No car = no BOC", "durationMin": 104.73333333333333, "distanceKm": 22.528112791228235, "elevationUpM": 626.6000000000018, "elevationDownM": -626.8000000000022}, {"date": "2014-03-27T00:18:18", "id": "001818", "activityType": "Run", "name": "UCLA run w/ the French Princess", "durationMin": 82.38333333333334, "distanceKm": 13.278463780801692, "elevationUpM": 234.99999999999994, "elevationDownM": -234.09999999999982}, {"date": "2014-01-23T14:23:40", "id": "142340", "activityType": "Run", "name": "Morning ridge", "durationMin": 67.1, "distanceKm": 10.936230827673896, "elevationUpM": 640.3000000000003, "elevationDownM": -638.4000000000001}, {"date": "2014-05-26T15:21:48", "id": "152148", "activityType": "Run", "name": "Chilao to finish (AC100 training, 3/3)", "durationMin": 616.5833333333334, "distanceKm": 74.57435662145913, "elevationUpM": 4952.499999999986, "elevationDownM": -6172.400000000002}, {"date": "2014-08-16T18:21:38", "id": "182138", "activityType": "Run", "name": "Recovery run with the Fam #GoMom #GoDad #GoDavid", "durationMin": 88.2, "distanceKm": 16.092829102872063, "elevationUpM": 284.9, "elevationDownM": -282.9}, {"date": "2014-05-09T02:03:18", "id": "020318", "activityType": "Run", "name": "Relaxed", "durationMin": 72.5, "distanceKm": 13.364908688492655, "elevationUpM": 239.6999999999999, "elevationDownM": -239.19999999999985}, {"date": "2014-11-13T03:02:42", "id": "030242", "activityType": "Run", "name": "Aerobic golf", "durationMin": 32.666666666666664, "distanceKm": 6.838890120204867, "elevationUpM": 99.0, "elevationDownM": -101.0}, {"date": "2014-05-02T14:48:26", "id": "144826", "activityType": "Run", "name": "Run commute to school w/ Aidan", "durationMin": 29.25, "distanceKm": 5.087074935940869, "elevationUpM": 112.80000000000004, "elevationDownM": -109.99999999999997}, {"date": "2014-04-30T16:06:59", "id": "160659", "activityType": "Run", "name": "SI 10x(1k/45sec) + strides", "durationMin": 60.766666666666666, "distanceKm": 14.636173356668344, "elevationUpM": 154.59999999999997, "elevationDownM": -155.0000000000001}, {"date": "2014-03-02T19:11:29", "id": "191129", "activityType": "Run", "name": "20mi tempo", "durationMin": 142.13333333333333, "distanceKm": 32.493558139418006, "elevationUpM": 256.7999999999986, "elevationDownM": -257.0999999999981}, {"date": "2014-08-19T15:01:14", "id": "150114", "activityType": "Ride", "name": "Hills repeat on the bike", "durationMin": 74.63333333333334, "distanceKm": 27.362539718897764, "elevationUpM": 482.79999999999995, "elevationDownM": -482.80000000000007}, {"date": "2014-03-25T16:34:19", "id": "163419", "activityType": "Run", "name": "Easy run", "durationMin": 72.8, "distanceKm": 13.834877584292583, "elevationUpM": 174.1000000000001, "elevationDownM": -174.29999999999984}, {"date": "2014-06-12T16:47:48", "id": "164748", "activityType": "Run", "name": "Short and sweet tempo run", "durationMin": 26.55, "distanceKm": 6.801284548987127, "elevationUpM": 86.0, "elevationDownM": -86.0}, {"date": "2014-03-27T16:20:49", "id": "162049", "activityType": "Run", "name": "Easy 10", "durationMin": 87.26666666666667, "distanceKm": 16.900173726002784, "elevationUpM": 486.99999999999955, "elevationDownM": -486.7}, {"date": "2014-02-06T01:31:28", "id": "013128", "activityType": "Run", "name": "UCLA perimeter (x2) after work", "durationMin": 57.516666666666666, "distanceKm": 13.33346517009371, "elevationUpM": 239.70000000000013, "elevationDownM": -238.50000000000003}, {"date": "2014-04-21T17:01:11", "id": "170111", "activityType": "Run", "name": "Boston Marathon 2014", "durationMin": 164.66666666666666, "distanceKm": 42.51035881408335, "elevationUpM": 362.70000000000056, "elevationDownM": -498.7000000000031}, {"date": "2014-01-11T15:12:54", "id": "151254", "activityType": "Run", "name": "Sullivan + exploring the 8413 w/ Christophe", "durationMin": 154.53333333333333, "distanceKm": 23.291622816117677, "elevationUpM": 972.5999999999998, "elevationDownM": -973.800000000001}, {"date": "2014-04-04T15:18:13", "id": "151813", "activityType": "Run", "name": "Easy morning run", "durationMin": 64.35, "distanceKm": 13.290624223423697, "elevationUpM": 142.19999999999982, "elevationDownM": -142.29999999999984}, {"date": "2014-06-21T13:44:32", "id": "134432", "activityType": "Run", "name": "Last 40 of AC100, very easy", "durationMin": 530.75, "distanceKm": 64.50198028777051, "elevationUpM": 2454.3999999999996, "elevationDownM": -3509.3999999999996}, {"date": "2014-10-28T01:28:53", "id": "012853", "activityType": "Run", "name": "Easy UCLA loop", "durationMin": 34.916666666666664, "distanceKm": 7.114291041743492, "elevationUpM": 138.1, "elevationDownM": -139.1}, {"date": "2014-08-27T13:19:41", "id": "131941", "activityType": "Run", "name": "Up to Planpraz via the Chamonix VK race route", "durationMin": 122.26666666666667, "distanceKm": 4.069133055471093, "elevationUpM": 1000.3, "elevationDownM": -37.299999999999955}, {"date": "2014-07-05T21:57:04", "id": "215704", "activityType": "Run", "name": "Vincent Gap to Islip Saddle and back", "durationMin": 306.7, "distanceKm": 37.12810107048559, "elevationUpM": 2043.9, "elevationDownM": -2005.9}, {"date": "2014-09-17T01:57:29", "id": "015729", "activityType": "Run", "name": "Stride-osphere", "durationMin": 50.38333333333333, "distanceKm": 6.271189213325667, "elevationUpM": 63.0, "elevationDownM": -65.0}, {"date": "2014-02-21T17:23:03", "id": "172303", "activityType": "Run", "name": "Easy 4", "durationMin": 34.0, "distanceKm": 6.481625586465653, "elevationUpM": 75.49999999999996, "elevationDownM": -75.49999999999999}, {"date": "2014-11-20T14:22:55", "id": "142255", "activityType": "Run", "name": "Chasing the sunrise on Sullivan Ridge/Canyon loop", "durationMin": 66.28333333333333, "distanceKm": 13.811982154543454, "elevationUpM": 414.0, "elevationDownM": -424.79999999999995}, {"date": "2014-06-15T18:49:32", "id": "184932", "activityType": "Run", "name": "Easy run, #1", "durationMin": 93.93333333333334, "distanceKm": 20.13332194734648, "elevationUpM": 196.89999999999998, "elevationDownM": -197.9}, {"date": "2014-10-30T01:46:15", "id": "014615", "activityType": "Run", "name": "Fartlek 60s, controlled pace", "durationMin": 87.76666666666667, "distanceKm": 7.285069066317057, "elevationUpM": 65.0, "elevationDownM": -80.0}, {"date": "2014-07-15T13:11:48", "id": "131148", "activityType": "Run", "name": "Temescal recovery", "durationMin": 86.31666666666666, "distanceKm": 12.89167922300746, "elevationUpM": 650.9000000000001, "elevationDownM": -647.9}, {"date": "2014-07-19T02:01:31", "id": "020131", "activityType": "Run", "name": "Hike/Run by night, giving Christophe a preview of what he signed for ;)", "durationMin": 357.26666666666665, "distanceKm": 32.83516507148273, "elevationUpM": 2484.5999999999985, "elevationDownM": -2739.900000000004}, {"date": "2014-04-05T13:13:07", "id": "131307", "activityType": "Run", "name": "Hollywood 10k w/ Pauline", "durationMin": 53.2, "distanceKm": 9.982703480506421, "elevationUpM": 100.10000000000005, "elevationDownM": -103.70000000000005}, {"date": "2014-06-26T13:22:30", "id": "132230", "activityType": "Run", "name": "Pacer taper", "durationMin": 147.88333333333333, "distanceKm": 21.3253060368262, "elevationUpM": 841.2999999999998, "elevationDownM": -838.3000000000001}, {"date": "2014-09-26T17:53:05", "id": "175305", "activityType": "Run", "name": "Easy + 1mi + easy", "durationMin": 57.75, "distanceKm": 12.456116729303398, "elevationUpM": 112.3, "elevationDownM": -110.3}, {"date": "2014-11-11T23:43:11", "id": "234311", "activityType": "Run", "name": "Sunset cruise", "durationMin": 125.15, "distanceKm": 25.091699551036925, "elevationUpM": 202.4, "elevationDownM": -205.4}, {"date": "2014-07-24T01:01:49", "id": "010149", "activityType": "Run", "name": "Acclimatation run - Grand Canyon - 110 degres", "durationMin": 114.28333333333333, "distanceKm": 15.348299937947388, "elevationUpM": 502.9000000000001, "elevationDownM": -539.9000000000001}, {"date": "2014-09-12T17:50:45", "id": "175045", "activityType": "Run", "name": "Stroll around the park", "durationMin": 30.016666666666666, "distanceKm": 6.778647687352803, "elevationUpM": 81.4, "elevationDownM": -76.4}, {"date": "2014-07-04T16:47:29", "id": "164729", "activityType": "Run", "name": "Party-bound w/ Christophe", "durationMin": 16.0, "distanceKm": 2.8259146733184504, "elevationUpM": 54.0, "elevationDownM": -35.0}, {"date": "2014-09-09T16:29:27", "id": "162927", "activityType": "Run", "name": "Easy bolly billy bally", "durationMin": 32.65, "distanceKm": 6.697661339546564, "elevationUpM": 85.0, "elevationDownM": -81.0}, {"date": "2014-11-25T14:27:18", "id": "142718", "activityType": "Run", "name": "Easy PMR run, Simba run (see the joke here?)", "durationMin": 64.03333333333333, "distanceKm": 12.024689528848757, "elevationUpM": 541.0, "elevationDownM": -545.0}, {"date": "2014-01-23T02:20:26", "id": "022026", "activityType": "Run", "name": "UCLA perimeter (x2) - tempo", "durationMin": 56.766666666666666, "distanceKm": 13.285475532608192, "elevationUpM": 237.5, "elevationDownM": -237.19999999999996}, {"date": "2014-05-24T16:21:06", "id": "162106", "activityType": "Run", "name": "Wrigthwood to Islip (AC100 training, 1/3)", "durationMin": 359.1166666666667, "distanceKm": 41.87332813849687, "elevationUpM": 2919.1999999999953, "elevationDownM": -2703.699999999998}, {"date": "2014-05-08T16:05:34", "id": "160534", "activityType": "Run", "name": "Morning hill", "durationMin": 115.76666666666667, "distanceKm": 23.57350901267215, "elevationUpM": 662.2000000000016, "elevationDownM": -662.5000000000014}, {"date": "2014-07-22T13:10:10", "id": "131010", "activityType": "Run", "name": "Running with 2 mustaches, a kid, a panda and a tall guy", "durationMin": 89.41666666666667, "distanceKm": 12.902495791716195, "elevationUpM": 698.9, "elevationDownM": -668.9}, {"date": "2014-02-27T02:36:32", "id": "023632", "activityType": "Run", "name": "Waiting for an experiment to finish", "durationMin": 38.983333333333334, "distanceKm": 7.048360149087498, "elevationUpM": 120.89999999999995, "elevationDownM": -120.09999999999995}, {"date": "2014-12-24T14:30:16", "id": "143016", "activityType": "Run", "name": "Golden sunrise", "durationMin": 106.18333333333334, "distanceKm": 11.758531886527813, "elevationUpM": 592.5, "elevationDownM": -586.5}, {"date": "2014-05-01T12:00:41", "id": "120041", "activityType": "Run", "name": "Morning hilly marathon before work", "durationMin": 218.61666666666667, "distanceKm": 42.4183869007151, "elevationUpM": 1261.2999999999984, "elevationDownM": -1261.4999999999982}, {"date": "2014-05-19T15:58:19", "id": "155819", "activityType": "Run", "name": "Morning hill to loosen up the legs", "durationMin": 96.86666666666666, "distanceKm": 20.335170908148324, "elevationUpM": 506.30000000000075, "elevationDownM": -506.40000000000066}, {"date": "2014-03-14T00:10:51", "id": "001051", "activityType": "Run", "name": "Easy double UCLA", "durationMin": 67.81666666666666, "distanceKm": 13.330141349318119, "elevationUpM": 236.7, "elevationDownM": -236.00000000000014}, {"date": "2014-07-29T16:10:42", "id": "161042", "activityType": "Run", "name": "Weasyridge", "durationMin": 46.18333333333333, "distanceKm": 8.371820652031642, "elevationUpM": 229.49999999999994, "elevationDownM": -225.49999999999994}, {"date": "2014-05-25T15:39:39", "id": "153939", "activityType": "Run", "name": "Islip to Chilao (AC100 training, 2/3)", "durationMin": 317.6333333333333, "distanceKm": 44.31557942381973, "elevationUpM": 2393.3000000000065, "elevationDownM": -2821.699999999998}, {"date": "2014-04-01T16:50:11", "id": "165011", "activityType": "Run", "name": "Recovery run", "durationMin": 36.06666666666667, "distanceKm": 6.771541515916664, "elevationUpM": 77.60000000000007, "elevationDownM": -78.00000000000006}, {"date": "2014-01-19T18:38:50", "id": "183850", "activityType": "Run", "name": "Heat training, felt awful", "durationMin": 229.6, "distanceKm": 31.78136947635396, "elevationUpM": 1940.599999999995, "elevationDownM": -1941.1}, {"date": "2014-07-20T00:13:33", "id": "001333", "activityType": "Run", "name": "Crew chief training", "durationMin": 114.96666666666667, "distanceKm": 14.998519762924424, "elevationUpM": 477.20000000000005, "elevationDownM": -482.20000000000005}, {"date": "2014-10-16T02:10:11", "id": "021011", "activityType": "Run", "name": "Night easy run with Christophe and his 300 lumens", "durationMin": 45.21666666666667, "distanceKm": 7.748410443725486, "elevationUpM": 195.7, "elevationDownM": -193.7}, {"date": "2014-11-30T16:02:32", "id": "160232", "activityType": "Run", "name": "Easy Rosy Bowly", "durationMin": 92.16666666666667, "distanceKm": 18.46051562826196, "elevationUpM": 216.29999999999998, "elevationDownM": -214.29999999999998}, {"date": "2014-01-07T14:08:12", "id": "140812", "activityType": "Run", "name": "Los Liones!", "durationMin": 77.78333333333333, "distanceKm": 12.04936838682441, "elevationUpM": 741.9000000000003, "elevationDownM": -740.4999999999997}, {"date": "2014-06-27T23:50:34", "id": "235034", "activityType": "Run", "name": "Pre WS100 pacing shakeout on the TRT", "durationMin": 76.73333333333333, "distanceKm": 11.281427905444954, "elevationUpM": 312.5, "elevationDownM": -318.5}, {"date": "2014-10-14T17:32:48", "id": "173248", "activityType": "Run", "name": "Easy test run. Guillaume 1-0 Achilles ;)", "durationMin": 43.81666666666667, "distanceKm": 9.31613084795722, "elevationUpM": 95.9, "elevationDownM": -98.0}, {"date": "2014-03-13T01:56:36", "id": "015636", "activityType": "Run", "name": "WU - 10 x 0.6mi/45s + 2mi tempo + long strides", "durationMin": 70.71666666666667, "distanceKm": 17.854548695162233, "elevationUpM": 187.5999999999998, "elevationDownM": -187.4000000000001}, {"date": "2014-03-06T14:24:09", "id": "142409", "activityType": "Run", "name": "Chasing the boys on Sullivan Ridge", "durationMin": 69.33333333333333, "distanceKm": 13.699338798498678, "elevationUpM": 569.9000000000003, "elevationDownM": -570.0000000000008}, {"date": "2014-05-20T15:07:43", "id": "150743", "activityType": "Run", "name": "Late wake up, missed the BOC ... Westridge-Canyonback loop", "durationMin": 160.13333333333333, "distanceKm": 33.00656993579159, "elevationUpM": 865.1000000000022, "elevationDownM": -864.9000000000018}, {"date": "2014-06-01T12:47:49", "id": "124749", "activityType": "Run", "name": "Run commute", "durationMin": 35.266666666666666, "distanceKm": 5.95275873388795, "elevationUpM": 88.59999999999998, "elevationDownM": -48.09999999999998}, {"date": "2014-04-20T16:03:38", "id": "160338", "activityType": "Run", "name": "Shakeout pre-marathon w/ Pauline and Mam + 3mi @MP", "durationMin": 76.91666666666667, "distanceKm": 13.352159330662117, "elevationUpM": 52.30000000000015, "elevationDownM": -52.10000000000017}, {"date": "2014-01-04T02:27:35", "id": "022735", "activityType": "Run", "name": "UCLA perimeter for fun. First pain-free run in a long time!", "durationMin": 32.45, "distanceKm": 7.091103444055792, "elevationUpM": 123.59999999999998, "elevationDownM": -122.69999999999999}, {"date": "2014-04-13T21:22:24", "id": "212224", "activityType": "Run", "name": "Easy day", "durationMin": 258.18333333333334, "distanceKm": 29.948986547390664, "elevationUpM": 1459.0999999999985, "elevationDownM": -1458.7000000000012}, {"date": "2014-06-30T17:46:26", "id": "174626", "activityType": "Run", "name": "Brentwood lollipop", "durationMin": 28.766666666666666, "distanceKm": 6.827376070142735, "elevationUpM": 84.0, "elevationDownM": -83.0}, {"date": "2014-10-28T16:22:26", "id": "162226", "activityType": "Run", "name": "Z1", "durationMin": 68.9, "distanceKm": 12.355519021091636, "elevationUpM": 104.0, "elevationDownM": -105.0}, {"date": "2014-08-12T01:22:48", "id": "012248", "activityType": "Run", "name": "Easy Nike run", "durationMin": 50.083333333333336, "distanceKm": 6.261967743546731, "elevationUpM": 336.79999999999995, "elevationDownM": -356.79999999999984}, {"date": "2014-08-23T11:13:57", "id": "111357", "activityType": "Run", "name": "Easy leg shakeout", "durationMin": 41.13333333333333, "distanceKm": 8.072115405925615, "elevationUpM": 58.0, "elevationDownM": -59.0}, {"date": "2014-06-08T14:36:16", "id": "143616", "activityType": "Run", "name": "Wilson double on tired legs. It was HOT!", "durationMin": 431.25, "distanceKm": 47.04892022801098, "elevationUpM": 3095.199999999999, "elevationDownM": -3042.2}, {"date": "2014-05-09T16:17:08", "id": "161708", "activityType": "Run", "name": "Cushioned run", "durationMin": 88.25, "distanceKm": 16.446277670721518, "elevationUpM": 470.1, "elevationDownM": -470.10000000000065}, {"date": "2014-12-06T15:30:44", "id": "153044", "activityType": "Run", "name": "Tempo 10k run w/ a GoPro", "durationMin": 37.38333333333333, "distanceKm": 9.950379142258948, "elevationUpM": 63.39999999999999, "elevationDownM": -62.39999999999999}, {"date": "2014-05-07T15:41:12", "id": "154112", "activityType": "Run", "name": "SI 6x(1mi/1min) @MP + strides", "durationMin": 60.35, "distanceKm": 14.651347372650855, "elevationUpM": 154.09999999999997, "elevationDownM": -154.40000000000003}, {"date": "2014-11-21T18:19:56", "id": "181956", "activityType": "Run", "name": "5mi", "durationMin": 42.03333333333333, "distanceKm": 8.139562299684366, "elevationUpM": 98.0, "elevationDownM": -109.0}, {"date": "2014-09-27T21:59:26", "id": "215926", "activityType": "Run", "name": "Achilles' shit show. It's bad, pretty bad.", "durationMin": 318.48333333333335, "distanceKm": 37.461743450870536, "elevationUpM": 1476.3999999999996, "elevationDownM": -1469.4}, {"date": "2014-07-06T13:44:31", "id": "134431", "activityType": "Run", "name": "Blue Ridge to Cloudburst Summit. Heat training in Copper Canyon.", "durationMin": 404.3, "distanceKm": 49.124918158437026, "elevationUpM": 2238.6000000000013, "elevationDownM": -2512.6000000000013}, {"date": "2014-02-24T18:00:47", "id": "180047", "activityType": "Run", "name": "Morning recovery run", "durationMin": 34.4, "distanceKm": 6.838820396733852, "elevationUpM": 77.60000000000005, "elevationDownM": -77.00000000000004}, {"date": "2014-05-16T15:29:02", "id": "152902", "activityType": "Run", "name": "Recovery run before work", "durationMin": 131.1, "distanceKm": 25.243282858464056, "elevationUpM": 186.89999999999978, "elevationDownM": -187.19999999999868}, {"date": "2014-10-24T17:32:46", "id": "173246", "activityType": "Run", "name": "Easy flaty", "durationMin": 60.983333333333334, "distanceKm": 12.374809473279033, "elevationUpM": 112.0, "elevationDownM": -120.0}, {"date": "2014-03-22T22:03:18", "id": "220318", "activityType": "Run", "name": "Bluejay/Trabuco/Holy Jim/Main Divide lollipop post Old Goat volunteering", "durationMin": 231.33333333333334, "distanceKm": 35.970070707609416, "elevationUpM": 2200.199999999998, "elevationDownM": -2198.9999999999977}, {"date": "2014-12-29T22:31:15", "id": "223115", "activityType": "Run", "name": "12/29/2014 Moab, Utah", "durationMin": 22.583333333333332, "distanceKm": 1.8669824345386579, "elevationUpM": 51.799999999999955, "elevationDownM": -53.0}, {"date": "2014-06-24T18:32:22", "id": "183222", "activityType": "Run", "name": "Quick jog", "durationMin": 30.033333333333335, "distanceKm": 6.790125985895875, "elevationUpM": 87.0, "elevationDownM": -87.0}, {"date": "2014-04-15T02:40:18", "id": "024018", "activityType": "Run", "name": "Evening jog", "durationMin": 38.38333333333333, "distanceKm": 6.44062929332906, "elevationUpM": 60.8, "elevationDownM": -61.0}, {"date": "2014-11-06T02:49:32", "id": "024932", "activityType": "Run", "name": "Warm up", "durationMin": 12.433333333333334, "distanceKm": 2.130776970979866, "elevationUpM": 17.0, "elevationDownM": -18.0}, {"date": "2014-02-15T14:07:41", "id": "140741", "activityType": "Run", "name": "Pre-flight morning run", "durationMin": 152.55, "distanceKm": 32.245021092851886, "elevationUpM": 255.4999999999979, "elevationDownM": -255.89999999999785}, {"date": "2014-04-27T15:17:24", "id": "151724", "activityType": "Run", "name": "Easy run on the AC100 course. Chilao to Chantry", "durationMin": 225.01666666666668, "distanceKm": 33.88347436560743, "elevationUpM": 2027.9999999999984, "elevationDownM": -2968.099999999996}, {"date": "2014-04-11T16:52:09", "id": "165209", "activityType": "Run", "name": "Mellow miles to test the heel. Not quite there yet.", "durationMin": 45.18333333333333, "distanceKm": 10.457356480386302, "elevationUpM": 114.70000000000003, "elevationDownM": -115.2}, {"date": "2014-12-17T14:06:16", "id": "140616", "activityType": "Run", "name": "PMR 911", "durationMin": 106.41666666666667, "distanceKm": 14.79471570931431, "elevationUpM": 784.5999999999998, "elevationDownM": -790.5999999999999}, {"date": "2014-08-15T19:12:47", "id": "191247", "activityType": "Run", "name": "Lakes, steep slopes and shenanigans", "durationMin": 412.71666666666664, "distanceKm": 30.763441792900522, "elevationUpM": 2030.1000000000001, "elevationDownM": -2039.1000000000001}, {"date": "2014-07-12T19:08:08", "id": "190808", "activityType": "Run", "name": "Double Wilson. Heat training + ankle sprain", "durationMin": 413.9, "distanceKm": 43.440681473004155, "elevationUpM": 2974.8999999999996, "elevationDownM": -2938.9000000000015}, {"date": "2014-04-01T02:36:35", "id": "023635", "activityType": "Run", "name": "Delayed Onset Muscle Soreness is real", "durationMin": 25.1, "distanceKm": 4.180410482387708, "elevationUpM": 45.5, "elevationDownM": -45.7}, {"date": "2014-09-20T18:41:23", "id": "184123", "activityType": "Run", "name": "Tentative long run", "durationMin": 208.53333333333333, "distanceKm": 34.272617671153164, "elevationUpM": 925.0999999999998, "elevationDownM": -919.0999999999999}, {"date": "2014-09-08T15:56:23", "id": "155623", "activityType": "Run", "name": "Back to the basics ", "durationMin": 65.35, "distanceKm": 13.202018826772093, "elevationUpM": 138.8, "elevationDownM": -132.8}, {"date": "2014-12-28T23:02:11", "id": "230211", "activityType": "Run", "name": "12/28/2014 Utah", "durationMin": 81.63333333333334, "distanceKm": 5.203678451055113, "elevationUpM": 266.60000000000014, "elevationDownM": -266.60000000000014}, {"date": "2014-07-09T16:45:07", "id": "164507", "activityType": "Run", "name": "2 x 2mi + strides", "durationMin": 44.1, "distanceKm": 10.487951827154047, "elevationUpM": 127.1, "elevationDownM": -130.1}, {"date": "2014-07-28T15:19:05", "id": "151905", "activityType": "Run", "name": "Morning shakeout", "durationMin": 29.883333333333333, "distanceKm": 6.818106249058538, "elevationUpM": 88.0, "elevationDownM": -86.0}, {"date": "2014-04-23T00:21:45", "id": "002145", "activityType": "Run", "name": "Easy 10k, recovery", "durationMin": 56.666666666666664, "distanceKm": 10.05454801749715, "elevationUpM": 184.79999999999998, "elevationDownM": -184.19999999999993}, {"date": "2014-11-08T16:55:23", "id": "165523", "activityType": "Run", "name": "Pac Man Run", "durationMin": 57.61666666666667, "distanceKm": 11.441491816461117, "elevationUpM": 177.0, "elevationDownM": -170.0}, {"date": "2014-12-26T00:55:33", "id": "005533", "activityType": "Run", "name": "Night run", "durationMin": 97.56666666666666, "distanceKm": 19.819560093847805, "elevationUpM": 398.4000000000001, "elevationDownM": -401.4}, {"date": "2014-01-15T17:42:41", "id": "174241", "activityType": "Run", "name": "WU - 5 x 0.5mi/45s - strides", "durationMin": 37.35, "distanceKm": 8.590005647044688, "elevationUpM": 92.60000000000004, "elevationDownM": -92.40000000000003}, {"date": "2014-02-26T18:32:04", "id": "183204", "activityType": "Run", "name": "SI 6x(0.6mi/45sec) + 2mi 80% + strides", "durationMin": 52.35, "distanceKm": 12.897583427792764, "elevationUpM": 122.49999999999996, "elevationDownM": -143.49999999999994}, {"date": "2014-07-03T00:41:47", "id": "004147", "activityType": "Run", "name": "Easy w/ Pauline", "durationMin": 46.916666666666664, "distanceKm": 7.247905558800103, "elevationUpM": 129.99999999999997, "elevationDownM": -153.99999999999997}, {"date": "2014-12-28T05:06:54", "id": "050654", "activityType": "Run", "name": "12/27/2014 Saint George, Utah", "durationMin": 54.21666666666667, "distanceKm": 11.354236195945733, "elevationUpM": 123.0, "elevationDownM": -121.0}, {"date": "2014-03-06T02:45:32", "id": "024532", "activityType": "Run", "name": "Easy UCLA", "durationMin": 68.51666666666667, "distanceKm": 13.313129204563104, "elevationUpM": 237.79999999999993, "elevationDownM": -236.9999999999999}, {"date": "2014-07-08T00:57:17", "id": "005717", "activityType": "Run", "name": "Easy monday #2", "durationMin": 78.8, "distanceKm": 13.683679328271541, "elevationUpM": 280.20000000000005, "elevationDownM": -274.19999999999993}, {"date": "2014-12-22T00:16:57", "id": "001657", "activityType": "Run", "name": "Gingermas recovery run/hike", "durationMin": 198.58333333333334, "distanceKm": 17.75923634180234, "elevationUpM": 272.90000000000003, "elevationDownM": -274.9}, {"date": "2014-02-03T03:30:59", "id": "033059", "activityType": "Run", "name": "Post-superbowl shakeout", "durationMin": 45.61666666666667, "distanceKm": 10.315961288017034, "elevationUpM": 124.70000000000006, "elevationDownM": -165.29999999999995}, {"date": "2014-12-29T00:41:58", "id": "004158", "activityType": "Run", "name": "12/28/2014 Utah", "durationMin": 56.7, "distanceKm": 7.483198053029516, "elevationUpM": 246.0, "elevationDownM": -245.0}, {"date": "2014-03-26T16:06:09", "id": "160609", "activityType": "Run", "name": "WU - 6 x 1k (80%)/45s - strides", "durationMin": 44.7, "distanceKm": 10.463587075580966, "elevationUpM": 115.00000000000007, "elevationDownM": -114.60000000000008}, {"date": "2014-01-17T02:37:14", "id": "023714", "activityType": "Run", "name": "Double perimeter after work", "durationMin": 67.53333333333333, "distanceKm": 13.175636286131438, "elevationUpM": 236.5, "elevationDownM": -238.00000000000006}, {"date": "2014-11-15T15:45:19", "id": "154519", "activityType": "Run", "name": "Bumpy 5k - 2nd place", "durationMin": 18.016666666666666, "distanceKm": 4.994293290849714, "elevationUpM": 89.0, "elevationDownM": -93.0}, {"date": "2014-05-27T15:23:02", "id": "152302", "activityType": "Run", "name": "Easy recovery run w/ Christophe", "durationMin": 80.6, "distanceKm": 13.26267964674389, "elevationUpM": 461.9, "elevationDownM": -455.90000000000015}, {"date": "2014-05-10T17:17:53", "id": "171753", "activityType": "Run", "name": "AC100 training. Wrigthwood to Eagle's Roost w/ Dom", "durationMin": 350.1666666666667, "distanceKm": 46.909847889267446, "elevationUpM": 3358.200000000004, "elevationDownM": -3130.0000000000045}, {"date": "2014-06-16T00:09:47", "id": "000947", "activityType": "Run", "name": "Easy run #2. Enjoying the trails with Pauline, Christophe and Christelle.", "durationMin": 171.05, "distanceKm": 27.357072407090726, "elevationUpM": 561.0, "elevationDownM": -563.0}, {"date": "2014-08-14T01:30:32", "id": "013032", "activityType": "Run", "name": "Jetlag running medicine", "durationMin": 53.916666666666664, "distanceKm": 11.28481588424128, "elevationUpM": 239.0, "elevationDownM": -241.0}, {"date": "2014-05-02T13:07:09", "id": "130709", "activityType": "Run", "name": "Easy morning run", "durationMin": 94.7, "distanceKm": 18.014838357799828, "elevationUpM": 719.4999999999987, "elevationDownM": -719.3000000000003}, {"date": "2014-05-28T18:19:46", "id": "181946", "activityType": "Run", "name": "2 x 2mi + strides", "durationMin": 44.38333333333333, "distanceKm": 10.50388776765957, "elevationUpM": 115.90000000000005, "elevationDownM": -116.00000000000006}, {"date": "2014-05-30T17:16:39", "id": "171639", "activityType": "Run", "name": "Morning westridge canyon road", "durationMin": 95.93333333333334, "distanceKm": 17.788875983437322, "elevationUpM": 510.3000000000003, "elevationDownM": -510.60000000000093}, {"date": "2014-04-18T13:34:02", "id": "133402", "activityType": "Run", "name": "Zero dropping the east ridge of Westridge", "durationMin": 70.4, "distanceKm": 12.262962982931676, "elevationUpM": 625.0000000000007, "elevationDownM": -619.9000000000009}, {"date": "2014-08-14T10:24:14", "id": "102414", "activityType": "Run", "name": "French countryside grinding", "durationMin": 79.35, "distanceKm": 16.582962990225823, "elevationUpM": 366.0, "elevationDownM": -367.0}, {"date": "2014-05-21T14:57:08", "id": "145708", "activityType": "Run", "name": "SI 6x(1mi/1min) @MP + strides", "durationMin": 61.11666666666667, "distanceKm": 14.542105239622572, "elevationUpM": 155.99999999999994, "elevationDownM": -155.90000000000026}, {"date": "2014-07-25T19:52:22", "id": "195222", "activityType": "Run", "name": "Ribbon Falls to Phantom Ranch - 120 degres", "durationMin": 52.983333333333334, "distanceKm": 11.020762405591212, "elevationUpM": 49.0, "elevationDownM": -349.0}, {"date": "2014-05-23T00:38:24", "id": "003824", "activityType": "Run", "name": "Singletrack-ing Westridge", "durationMin": 149.65, "distanceKm": 25.89925491335272, "elevationUpM": 1400.1000000000013, "elevationDownM": -1399.9}, {"date": "2014-06-17T12:17:27", "id": "121727", "activityType": "Run", "name": "WS100 downhill preview ...", "durationMin": 237.55, "distanceKm": 43.45585891997814, "elevationUpM": 1184.0000000000002, "elevationDownM": -1184.9999999999998}, {"date": "2014-05-31T18:38:36", "id": "183836", "activityType": "Run", "name": "French Princess run", "durationMin": 92.23333333333333, "distanceKm": 12.392822201997163, "elevationUpM": 114.39999999999961, "elevationDownM": -114.39999999999993}, {"date": "2014-06-07T16:13:12", "id": "161312", "activityType": "Run", "name": "Back home on the Backbone", "durationMin": 566.6166666666667, "distanceKm": 80.44838160401318, "elevationUpM": 2981.9000000000005, "elevationDownM": -2966.8999999999996}, {"date": "2014-07-02T18:08:18", "id": "180818", "activityType": "Run", "name": "SI 8x(1mi/1min) tempo + strides", "durationMin": 77.26666666666667, "distanceKm": 17.696573174191037, "elevationUpM": 185.8, "elevationDownM": -192.8}, {"date": "2014-06-10T18:40:27", "id": "184027", "activityType": "Run", "name": "Easy run", "durationMin": 107.78333333333333, "distanceKm": 19.30524058283422, "elevationUpM": 199.10000000000002, "elevationDownM": -199.1}, {"date": "2014-08-27T07:05:39", "id": "070539", "activityType": "Run", "name": "Easy run w/ Seb Chaigneau and Fernanda Maciel", "durationMin": 64.43333333333334, "distanceKm": 6.081007925717047, "elevationUpM": 67.0, "elevationDownM": -69.0}, {"date": "2014-09-17T16:31:03", "id": "163103", "activityType": "Run", "name": "Snailing a double digits", "durationMin": 107.31666666666666, "distanceKm": 18.500155971239447, "elevationUpM": 354.20000000000005, "elevationDownM": -351.20000000000005}, {"date": "2014-03-18T02:31:34", "id": "023134", "activityType": "Run", "name": "Recovery run", "durationMin": 53.016666666666666, "distanceKm": 9.30856389780764, "elevationUpM": 90.39999999999996, "elevationDownM": -90.19999999999997}, {"date": "2014-09-23T01:42:00", "id": "014200", "activityType": "Run", "name": "Cool down of the day", "durationMin": 41.1, "distanceKm": 7.340819390029263, "elevationUpM": 134.0, "elevationDownM": -136.0}, {"date": "2014-10-20T00:38:00", "id": "003800", "activityType": "Run", "name": "Sunday warm up", "durationMin": 54.2, "distanceKm": 12.397505208749921, "elevationUpM": 123.0, "elevationDownM": -119.0}, {"date": "2014-11-12T17:12:33", "id": "171233", "activityType": "Run", "name": "Back from Peets", "durationMin": 9.4, "distanceKm": 1.6568230226726464, "elevationUpM": 1.0, "elevationDownM": -28.0}, {"date": "2014-11-03T16:28:39", "id": "162839", "activityType": "Run", "name": "Easy monday", "durationMin": 35.31666666666667, "distanceKm": 6.723431302088821, "elevationUpM": 75.70000000000003, "elevationDownM": -75.90000000000003}, {"date": "2014-11-02T17:21:41", "id": "172141", "activityType": "Run", "name": "Westridge lollipop", "durationMin": 87.85, "distanceKm": 17.659549503743772, "elevationUpM": 559.0, "elevationDownM": -560.0}, {"date": "2014-07-08T15:52:29", "id": "155229", "activityType": "Run", "name": "Westridge road", "durationMin": 105.68333333333334, "distanceKm": 21.30247319742493, "elevationUpM": 382.80000000000007, "elevationDownM": -386.80000000000007}, {"date": "2014-05-25T01:14:53", "id": "011453", "activityType": "Run", "name": "Blue Ridge recovery", "durationMin": 80.75, "distanceKm": 9.860410680755251, "elevationUpM": 575.3000000000029, "elevationDownM": -573.1000000000026}, {"date": "2014-02-06T14:27:37", "id": "142737", "activityType": "Run", "name": "Morning 10miler", "durationMin": 102.25, "distanceKm": 16.563873923466662, "elevationUpM": 1102.8000000000004, "elevationDownM": -1103.0000000000002}, {"date": "2014-03-01T16:22:06", "id": "162206", "activityType": "Run", "name": "Chromeo playlist", "durationMin": 235.51666666666668, "distanceKm": 40.54494678287043, "elevationUpM": 1693.799999999994, "elevationDownM": -1684.0000000000014}, {"date": "2014-06-19T12:26:24", "id": "122624", "activityType": "Run", "name": "Thursday Coyotes run", "durationMin": 242.78333333333333, "distanceKm": 41.368593142059574, "elevationUpM": 959.7, "elevationDownM": -965.6999999999999}, {"date": "2014-05-31T23:08:09", "id": "230809", "activityType": "Run", "name": "Easy Westridge cruising w/ Andy", "durationMin": 203.41666666666666, "distanceKm": 35.73176921319585, "elevationUpM": 1286.7000000000003, "elevationDownM": -1286.8999999999955}, {"date": "2014-05-13T00:59:45", "id": "005945", "activityType": "Run", "name": "Recovery run w/ Geoffrey", "durationMin": 73.68333333333334, "distanceKm": 13.358249263452334, "elevationUpM": 239.50000000000009, "elevationDownM": -238.39999999999995}, {"date": "2014-05-03T12:57:30", "id": "125730", "activityType": "Run", "name": "Cruising in the SM mountains w/ Andy", "durationMin": 224.16666666666666, "distanceKm": 34.97738086139829, "elevationUpM": 2011.3000000000002, "elevationDownM": -2011.399999999998}, {"date": "2014-06-04T16:51:56", "id": "165156", "activityType": "Run", "name": "SI 8x(1mi/1min) @ controlled tempo + strides", "durationMin": 76.3, "distanceKm": 17.870029312613497, "elevationUpM": 203.0, "elevationDownM": -204.0}, {"date": "2014-12-29T23:55:53", "id": "235553", "activityType": "Run", "name": "12/29/2014 Moab, Utah", "durationMin": 71.56666666666666, "distanceKm": 4.453947990689722, "elevationUpM": 299.29999999999995, "elevationDownM": -302.29999999999995}, {"date": "2014-08-02T11:59:24", "id": "115924", "activityType": "Run", "name": "Angeles Crest 100 2014", "durationMin": 1367.9833333333333, "distanceKm": 156.08942080978775, "elevationUpM": 11555.499999999985, "elevationDownM": -12966.799999999974}, {"date": "2014-01-28T14:18:42", "id": "141842", "activityType": "Run", "name": "Chasing the Liones", "durationMin": 77.1, "distanceKm": 12.357924004261823, "elevationUpM": 762.9000000000012, "elevationDownM": -755.7000000000006}, {"date": "2014-03-30T11:01:51", "id": "110151", "activityType": "Run", "name": "Gorge Waterfall 100k - 1st place", "durationMin": 592.7333333333333, "distanceKm": 96.4878420612135, "elevationUpM": 6391.799999999997, "elevationDownM": -6392.099999999983}, {"date": "2014-05-23T16:43:02", "id": "164302", "activityType": "Run", "name": "Costal recovery run before the week-end mileage storm", "durationMin": 102.28333333333333, "distanceKm": 18.667227071559505, "elevationUpM": 178.29999999999993, "elevationDownM": -178.39999999999927}, {"date": "2014-12-20T15:02:58", "id": "150258", "activityType": "Run", "name": "Run commute", "durationMin": 5.5, "distanceKm": 1.2198642955362453, "elevationUpM": 12.0, "elevationDownM": -5.0}, {"date": "2014-06-13T16:09:50", "id": "160950", "activityType": "Run", "name": "Westridge/Sullivan loop", "durationMin": 161.46666666666667, "distanceKm": 32.943936281781596, "elevationUpM": 779.3000000000001, "elevationDownM": -779.2999999999998}, {"date": "2014-04-12T21:47:57", "id": "214757", "activityType": "Run", "name": "Bonky run", "durationMin": 148.05, "distanceKm": 32.57254973651968, "elevationUpM": 246.99999999999844, "elevationDownM": -246.9999999999978}, {"date": "2014-07-12T00:42:17", "id": "004217", "activityType": "Run", "name": "UCLA hamster wheel", "durationMin": 95.63333333333334, "distanceKm": 19.470683636187307, "elevationUpM": 408.20000000000005, "elevationDownM": -400.19999999999993}, {"date": "2014-04-03T13:24:04", "id": "132404", "activityType": "Run", "name": "RodgerYotes", "durationMin": 63.833333333333336, "distanceKm": 10.509262650306365, "elevationUpM": 648.9999999999999, "elevationDownM": -652.6000000000005}, {"date": "2014-09-13T17:03:29", "id": "170329", "activityType": "Run", "name": "Coastal run w/ Miss Beautiful", "durationMin": 45.983333333333334, "distanceKm": 6.95862141025332, "elevationUpM": 91.0, "elevationDownM": -91.0}, {"date": "2014-06-14T21:42:08", "id": "214208", "activityType": "Run", "name": "LSD running", "durationMin": 246.16666666666666, "distanceKm": 43.449242314569716, "elevationUpM": 1007.2, "elevationDownM": -1006.2}, {"date": "2014-01-09T14:22:13", "id": "142213", "activityType": "Run", "name": "Easy Westridge w/ the Coyotes", "durationMin": 75.18333333333334, "distanceKm": 11.321718624509483, "elevationUpM": 463.7, "elevationDownM": -468.9}, {"date": "2014-08-17T18:22:07", "id": "182207", "activityType": "Run", "name": "Easy loop", "durationMin": 152.25, "distanceKm": 26.159423660461933, "elevationUpM": 459.79999999999995, "elevationDownM": -455.79999999999995}, {"date": "2014-02-28T16:56:26", "id": "165626", "activityType": "Run", "name": "Getting wet", "durationMin": 66.48333333333333, "distanceKm": 14.487048662136758, "elevationUpM": 151.99999999999983, "elevationDownM": -152.60000000000005}, {"date": "2014-01-02T00:34:23", "id": "003423", "activityType": "Run", "name": "01/01/2014 Santa Monica, CA", "durationMin": 82.25, "distanceKm": 13.36878355230637, "elevationUpM": 145.5999999999999, "elevationDownM": -145.69999999999962}, {"date": "2014-12-30T18:02:32", "id": "180232", "activityType": "Run", "name": "12/30/2014 Utah", "durationMin": 161.08333333333334, "distanceKm": 9.52836260176033, "elevationUpM": 538.9000000000003, "elevationDownM": -544.9000000000003}, {"date": "2014-04-06T16:38:30", "id": "163830", "activityType": "Run", "name": "Last 26 of AC100. Great first 15mi, then bruised heel so easy for the last 11mi. Overall a very good day w/ Dom ;)", "durationMin": 324.85, "distanceKm": 43.64019400222931, "elevationUpM": 3100.2999999999947, "elevationDownM": -3275.799999999997}, {"date": "2014-06-22T12:58:49", "id": "125849", "activityType": "Run", "name": "Washing machine run on the Bulldog loop", "durationMin": 317.6333333333333, "distanceKm": 48.34045240322081, "elevationUpM": 1892.8000000000004, "elevationDownM": -1891.7999999999997}, {"date": "2014-03-06T15:34:18", "id": "153418", "activityType": "Run", "name": "Cool down w/ Dom", "durationMin": 9.95, "distanceKm": 1.6245880787265718, "elevationUpM": 101.20000000000002, "elevationDownM": -101.9}, {"date": "2014-04-29T13:14:09", "id": "131409", "activityType": "Run", "name": "Easy Temescal", "durationMin": 91.91666666666667, "distanceKm": 12.89422358245109, "elevationUpM": 806.5000000000001, "elevationDownM": -805.8999999999999}, {"date": "2014-02-20T18:10:53", "id": "181053", "activityType": "Run", "name": "(too) late morning run", "durationMin": 92.05, "distanceKm": 19.389795486488357, "elevationUpM": 502.9000000000009, "elevationDownM": -502.40000000000157}, {"date": "2014-02-26T18:22:23", "id": "182223", "activityType": "Run", "name": "WU - 5 x 0.5mi/45s - strides", "durationMin": 8.366666666666667, "distanceKm": 1.6219467322566072, "elevationUpM": 31.099999999999994, "elevationDownM": -12.199999999999989}, {"date": "2014-04-15T13:10:53", "id": "131053", "activityType": "Run", "name": "Temescal w/ friends", "durationMin": 90.21666666666667, "distanceKm": 12.889391936706426, "elevationUpM": 802.8000000000004, "elevationDownM": -801.8000000000011}, {"date": "2014-02-07T16:45:10", "id": "164510", "activityType": "Run", "name": "Easy, recovery run", "durationMin": 70.48333333333333, "distanceKm": 13.134581799463573, "elevationUpM": 118.19999999999999, "elevationDownM": -118.49999999999989}, {"date": "2014-06-28T22:25:11", "id": "222511", "activityType": "Run", "name": "Pacing the Unicorn at WS100. \"Back from the dead\" time.", "durationMin": 237.5, "distanceKm": 32.76978651764746, "elevationUpM": 817.5, "elevationDownM": -1376.4999999999998}, {"date": "2014-06-03T13:44:08", "id": "134408", "activityType": "Run", "name": "Double Temescal. Easy on #1, tempo on #2 (new PR)", "durationMin": 170.81666666666666, "distanceKm": 25.906566522646493, "elevationUpM": 1307.8999999999996, "elevationDownM": -1308.8999999999999}, {"date": "2014-03-19T01:44:35", "id": "014435", "activityType": "Run", "name": "2mi +1mi fast", "durationMin": 92.13333333333334, "distanceKm": 14.580248837972684, "elevationUpM": 124.20000000000002, "elevationDownM": -126.30000000000001}, {"date": "2014-08-21T17:41:37", "id": "174137", "activityType": "Run", "name": "Easy hike/run w/ Dav", "durationMin": 117.08333333333333, "distanceKm": 12.695038464519145, "elevationUpM": 856.1999999999999, "elevationDownM": -849.5999999999999}, {"date": "2014-03-09T14:44:25", "id": "144425", "activityType": "Run", "name": "Easy sunday run before cheering on the LA marathon runners", "durationMin": 105.96666666666667, "distanceKm": 18.065018883008793, "elevationUpM": 480.8000000000007, "elevationDownM": -480.6000000000005}, {"date": "2014-01-28T03:32:17", "id": "033217", "activityType": "Run", "name": "Shakeout Panda/Unicorn run", "durationMin": 49.6, "distanceKm": 7.449701059016336, "elevationUpM": 67.00000000000007, "elevationDownM": -66.50000000000007}, {"date": "2014-05-18T17:28:23", "id": "172823", "activityType": "Run", "name": "Vincent Gap to Islip and Back", "durationMin": 331.43333333333334, "distanceKm": 37.627394688129144, "elevationUpM": 2708.600000000001, "elevationDownM": -2713.300000000001}, {"date": "2014-02-04T14:15:54", "id": "141554", "activityType": "Run", "name": "Temescal sunrise", "durationMin": 82.15, "distanceKm": 12.145979752127555, "elevationUpM": 763.3999999999999, "elevationDownM": -769.8000000000004}, {"date": "2014-11-18T14:12:22", "id": "141222", "activityType": "Run", "name": "PMR workout 3 x [5 x (1'/1')]", "durationMin": 74.03333333333333, "distanceKm": 11.269013110096076, "elevationUpM": 451.4, "elevationDownM": -453.4}, {"date": "2014-02-27T14:26:14", "id": "142614", "activityType": "Run", "name": "Easy westridge", "durationMin": 103.78333333333333, "distanceKm": 18.709251475064416, "elevationUpM": 731.9999999999986, "elevationDownM": -726.2999999999998}, {"date": "2014-06-06T16:17:06", "id": "161706", "activityType": "Run", "name": "Easy Sullivan, up the ridge, down the canyon", "durationMin": 77.31666666666666, "distanceKm": 14.651759540582393, "elevationUpM": 447.9000000000001, "elevationDownM": -439.9000000000001}, {"date": "2014-04-28T16:04:14", "id": "160414", "activityType": "Run", "name": "Morning run", "durationMin": 68.11666666666666, "distanceKm": 13.283761594752962, "elevationUpM": 142.39999999999995, "elevationDownM": -142.59999999999977}, {"date": "2014-06-10T00:36:04", "id": "003604", "activityType": "Run", "name": "Recovery run with the french princess", "durationMin": 45.333333333333336, "distanceKm": 7.2406448424018395, "elevationUpM": 136.0, "elevationDownM": -136.0}, {"date": "2014-09-11T00:51:00", "id": "005100", "activityType": "Run", "name": "Around the clock", "durationMin": 60.11666666666667, "distanceKm": 13.404077110639175, "elevationUpM": 254.0, "elevationDownM": -246.0}, {"date": "2014-07-21T00:01:59", "id": "000159", "activityType": "Run", "name": "Easy run", "durationMin": 104.26666666666667, "distanceKm": 21.765563738305115, "elevationUpM": 413.8, "elevationDownM": -407.8}, {"date": "2014-03-21T01:42:22", "id": "014222", "activityType": "Run", "name": "Recovery around UCLA", "durationMin": 40.266666666666666, "distanceKm": 7.32565176298122, "elevationUpM": 123.0, "elevationDownM": -123.5}, {"date": "2014-02-08T18:18:46", "id": "181846", "activityType": "Run", "name": "Octopus for lunch", "durationMin": 254.13333333333333, "distanceKm": 35.8854621373517, "elevationUpM": 2553.2000000000025, "elevationDownM": -2553.4999999999986}, {"date": "2014-09-16T13:08:03", "id": "130803", "activityType": "Run", "name": "Tortoisemescal w/ Bobby El Gato", "durationMin": 84.83333333333333, "distanceKm": 12.166384307438907, "elevationUpM": 614.8999999999999, "elevationDownM": -597.8999999999999}, {"date": "2014-02-09T23:22:30", "id": "232230", "activityType": "Run", "name": "Easy 16", "durationMin": 134.86666666666667, "distanceKm": 26.03993711727457, "elevationUpM": 205.6999999999994, "elevationDownM": -205.89999999999833}, {"date": "2014-12-03T14:33:51", "id": "143351", "activityType": "Run", "name": "Guitophe fun morning run", "durationMin": 95.05, "distanceKm": 14.856672628019464, "elevationUpM": 461.79999999999995, "elevationDownM": -460.79999999999995}, {"date": "2014-01-26T18:31:34", "id": "183134", "activityType": "Run", "name": "B2B long runs", "durationMin": 167.31666666666666, "distanceKm": 35.64216509970171, "elevationUpM": 239.49999999999852, "elevationDownM": -239.59999999999795}, {"date": "2014-11-26T14:14:52", "id": "141452", "activityType": "Run", "name": "Having fun with a lot of ironmaniacs", "durationMin": 89.16666666666667, "distanceKm": 11.638922790118313, "elevationUpM": 506.20000000000005, "elevationDownM": -512.1999999999999}, {"date": "2014-01-29T17:17:57", "id": "171757", "activityType": "Run", "name": "SI 6x(0.6mi/45s) + strides", "durationMin": 44.2, "distanceKm": 10.464549368795582, "elevationUpM": 114.40000000000002, "elevationDownM": -114.90000000000003}, {"date": "2014-09-23T16:47:09", "id": "164709", "activityType": "Run", "name": "Roady peak", "durationMin": 106.18333333333334, "distanceKm": 19.941677282629232, "elevationUpM": 365.79999999999995, "elevationDownM": -355.79999999999995}, {"date": "2014-05-13T13:09:00", "id": "130900", "activityType": "Run", "name": "Slow, hot and dry", "durationMin": 194.16666666666666, "distanceKm": 28.176345589997496, "elevationUpM": 1653.900000000001, "elevationDownM": -1652.699999999999}, {"date": "2014-11-27T15:33:08", "id": "153308", "activityType": "Run", "name": "SulliRidgegiving", "durationMin": 129.46666666666667, "distanceKm": 14.75041900375126, "elevationUpM": 522.6, "elevationDownM": -517.4}, {"date": "2014-11-22T15:21:41", "id": "152141", "activityType": "Run", "name": "Brentwood", "durationMin": 147.56666666666666, "distanceKm": 18.014862913183492, "elevationUpM": 164.3, "elevationDownM": -164.3}, {"date": "2014-01-18T23:11:43", "id": "231143", "activityType": "Run", "name": "Will Rogers - Rivas - Temescal loop", "durationMin": 144.25, "distanceKm": 24.251109683622612, "elevationUpM": 1328.2999999999988, "elevationDownM": -1326.3999999999996}, {"date": "2014-03-20T02:35:49", "id": "023549", "activityType": "Run", "name": "3 easy + 3 progressive miles on SV douchegrade (6'45 - 6'30 - 6'00) + CD", "durationMin": 61.06666666666667, "distanceKm": 12.338131951363962, "elevationUpM": 103.49999999999997, "elevationDownM": -103.49999999999997}, {"date": "2014-03-29T18:55:14", "id": "185514", "activityType": "Run", "name": "Crewing at Gorge 50k", "durationMin": 25.066666666666666, "distanceKm": 2.152790549402193, "elevationUpM": 223.89999999999995, "elevationDownM": -223.99999999999997}, {"date": "2014-03-11T03:44:47", "id": "034447", "activityType": "Run", "name": "Recovery run", "durationMin": 46.9, "distanceKm": 8.098139166320712, "elevationUpM": 70.80000000000001, "elevationDownM": -70.9}, {"date": "2014-06-19T02:37:46", "id": "023746", "activityType": "Run", "name": "Ez #2", "durationMin": 35.53333333333333, "distanceKm": 7.300171214689385, "elevationUpM": 139.8, "elevationDownM": -136.8}, {"date": "2014-01-25T22:55:29", "id": "225529", "activityType": "Run", "name": "Easy long run", "durationMin": 212.08333333333334, "distanceKm": 32.978943143038926, "elevationUpM": 1568.599999999996, "elevationDownM": -1568.0999999999983}, {"date": "2014-05-29T13:25:59", "id": "132559", "activityType": "Run", "name": "Stairway to hell", "durationMin": 80.46666666666667, "distanceKm": 11.334170728892857, "elevationUpM": 737.9999999999998, "elevationDownM": -737.4999999999995}, {"date": "2014-01-20T22:31:01", "id": "223101", "activityType": "Run", "name": "Beach run w/ Pauline", "durationMin": 90.86666666666666, "distanceKm": 8.436547757262728, "elevationUpM": 27.400000000000045, "elevationDownM": -27.000000000000064}, {"date": "2014-09-24T17:08:39", "id": "170839", "activityType": "Run", "name": "Progressive miles (8'/mi -> 6'/mi, 30sec steps) + strides", "durationMin": 46.36666666666667, "distanceKm": 10.50471498691656, "elevationUpM": 136.0, "elevationDownM": -141.0}, {"date": "2014-05-22T02:13:15", "id": "021315", "activityType": "Run", "name": "Farts and other shenanigans", "durationMin": 107.83333333333333, "distanceKm": 17.295341219963447, "elevationUpM": 878.8000000000005, "elevationDownM": -877.799999999999}, {"date": "2014-12-21T15:18:41", "id": "151841", "activityType": "Run", "name": "PMR \"Don't hate me 50k\"", "durationMin": 376.98333333333335, "distanceKm": 48.52726147990331, "elevationUpM": 2549.0, "elevationDownM": -2541.000000000001}, {"date": "2014-10-16T23:33:35", "id": "233335", "activityType": "Run", "name": "Progress", "durationMin": 31.95, "distanceKm": 6.812087082801155, "elevationUpM": 91.0, "elevationDownM": -91.0}, {"date": "2014-02-25T14:11:44", "id": "141144", "activityType": "Run", "name": "Temescal w/ the crew", "durationMin": 127.03333333333333, "distanceKm": 18.535490405740084, "elevationUpM": 1196.4999999999982, "elevationDownM": -1195.5999999999995}, {"date": "2014-12-01T15:59:42", "id": "155942", "activityType": "Run", "name": "Brentwood Golf course lollipop", "durationMin": 34.38333333333333, "distanceKm": 6.724947955626526, "elevationUpM": 83.0, "elevationDownM": -85.0}, {"date": "2014-03-05T16:46:07", "id": "164607", "activityType": "Run", "name": "10x(0.6mi/45sec) + strides", "durationMin": 59.63333333333333, "distanceKm": 14.510814767167778, "elevationUpM": 152.4999999999999, "elevationDownM": -153.30000000000013}, {"date": "2014-09-02T19:09:56", "id": "190956", "activityType": "Run", "name": "Easy run to test out the legs post UTMB. Feeling good!", "durationMin": 30.633333333333333, "distanceKm": 6.2082690820637865, "elevationUpM": 62.0, "elevationDownM": -63.0}, {"date": "2014-01-14T14:15:55", "id": "141555", "activityType": "Run", "name": "Ridgefest", "durationMin": 105.55, "distanceKm": 13.983775608994904, "elevationUpM": 932.4999999999998, "elevationDownM": -930.1000000000003}, {"date": "2014-04-24T13:17:03", "id": "131703", "activityType": "Run", "name": "Sullivan", "durationMin": 63.38333333333333, "distanceKm": 12.975826136166026, "elevationUpM": 407.5, "elevationDownM": -421.30000000000035}, {"date": "2014-12-21T15:12:47", "id": "151247", "activityType": "Run", "name": "12/21/2014 Altadena, California", "durationMin": 2.216666666666667, "distanceKm": 0.15521766690660768, "elevationUpM": 5.0, "elevationDownM": 0.0}, {"date": "2014-12-02T17:09:07", "id": "170907", "activityType": "Run", "name": "Rainy day", "durationMin": 58.333333333333336, "distanceKm": 12.363279213476535, "elevationUpM": 152.39999999999998, "elevationDownM": -152.40000000000003}, {"date": "2014-01-10T17:41:46", "id": "174146", "activityType": "Run", "name": "Hello Mister Pacific!", "durationMin": 53.65, "distanceKm": 12.086306779133459, "elevationUpM": 102.7, "elevationDownM": -102.5}, {"date": "2014-06-26T01:22:32", "id": "012232", "activityType": "Run", "name": "Double UCLA", "durationMin": 63.53333333333333, "distanceKm": 13.20060088052346, "elevationUpM": 230.0, "elevationDownM": -230.29999999999995}, {"date": "2014-11-20T02:46:20", "id": "024620", "activityType": "Run", "name": "Bumps repeats", "durationMin": 77.7, "distanceKm": 13.695900284173424, "elevationUpM": 270.7, "elevationDownM": -292.7}, {"date": "2014-07-01T13:10:47", "id": "131047", "activityType": "Run", "name": "Temscal - Will Rodger loop w/ Andy and Elan", "durationMin": 139.4, "distanceKm": 25.094774728954153, "elevationUpM": 940.8, "elevationDownM": -944.8}, {"date": "2014-12-18T02:44:53", "id": "024453", "activityType": "Run", "name": "Christmas light hunt run", "durationMin": 74.88333333333334, "distanceKm": 8.072825906326349, "elevationUpM": 116.0, "elevationDownM": -97.0}, {"date": "2014-11-29T14:59:13", "id": "145913", "activityType": "Run", "name": "\"Le Chien-Taureau\" loop with the Champ", "durationMin": 185.78333333333333, "distanceKm": 24.948041922964592, "elevationUpM": 997.4999999999998, "elevationDownM": -996.5}, {"date": "2014-02-01T22:57:17", "id": "225717", "activityType": "Run", "name": "Easy Backbone commute - So much fun", "durationMin": 309.53333333333336, "distanceKm": 42.929128096210775, "elevationUpM": 2503.699999999989, "elevationDownM": -2556.3999999999955}, {"date": "2014-12-15T17:12:33", "id": "171233", "activityType": "Run", "name": "12/15/2014 Santa Monica, CA", "durationMin": 35.61666666666667, "distanceKm": 7.6212358004489476, "elevationUpM": 92.0, "elevationDownM": -98.0}, {"date": "2014-03-03T17:12:08", "id": "171208", "activityType": "Run", "name": "Monday recovery", "durationMin": 34.8, "distanceKm": 6.767125651150752, "elevationUpM": 78.60000000000001, "elevationDownM": -78.79999999999998}, {"date": "2014-08-20T16:47:30", "id": "164730", "activityType": "Ride", "name": "Riding around", "durationMin": 66.26666666666667, "distanceKm": 29.746525422645853, "elevationUpM": 501.0, "elevationDownM": -497.9999999999999}, {"date": "2014-09-18T16:36:21", "id": "163621", "activityType": "Run", "name": "There was a hidden hole in the ground ...", "durationMin": 53.18333333333333, "distanceKm": 9.167783474588795, "elevationUpM": 111.0, "elevationDownM": -109.0}, {"date": "2014-07-30T15:54:24", "id": "155424", "activityType": "Run", "name": "Chillin around", "durationMin": 35.85, "distanceKm": 6.731509791652959, "elevationUpM": 88.1, "elevationDownM": -87.1}, {"date": "2014-07-17T15:56:02", "id": "155602", "activityType": "Run", "name": "Grant writing break", "durationMin": 150.61666666666667, "distanceKm": 26.349658953756858, "elevationUpM": 1032.0000000000005, "elevationDownM": -1020.0000000000005}, {"date": "2014-10-25T17:04:20", "id": "170420", "activityType": "Run", "name": "Progressive run", "durationMin": 38.06666666666667, "distanceKm": 6.629956361224239, "elevationUpM": 121.0, "elevationDownM": -123.0}, {"date": "2014-03-07T17:12:22", "id": "171222", "activityType": "Run", "name": "Easy run", "durationMin": 72.03333333333333, "distanceKm": 14.550124152127992, "elevationUpM": 152.6999999999998, "elevationDownM": -152.99999999999994}, {"date": "2014-02-11T14:11:29", "id": "141129", "activityType": "Run", "name": "Rivas Rodger loop", "durationMin": 102.0, "distanceKm": 14.556881003563198, "elevationUpM": 1007.7000000000005, "elevationDownM": -1007.0000000000003}, {"date": "2014-08-27T13:19:42", "id": "131942", "activityType": "Run", "name": "Planpraz-Chamonix w/ Mom and Dad", "durationMin": 69.06666666666666, "distanceKm": 5.847244420324266, "elevationUpM": 48.0, "elevationDownM": -996.0}, {"date": "2014-01-31T17:16:06", "id": "171606", "activityType": "Run", "name": "Mandeville Canyon Road out-and-back", "durationMin": 87.88333333333334, "distanceKm": 19.34613163811589, "elevationUpM": 493.3999999999999, "elevationDownM": -493.50000000000097}, {"date": "2014-05-06T13:07:39", "id": "130739", "activityType": "Run", "name": "Double Temescal", "durationMin": 172.5, "distanceKm": 25.224715192367835, "elevationUpM": 1608.5999999999985, "elevationDownM": -1605.6999999999978}, {"date": "2014-04-16T16:52:19", "id": "165219", "activityType": "Run", "name": "SI 6x(0.6mi/45sec) @MP + strides", "durationMin": 44.766666666666666, "distanceKm": 10.534387407203981, "elevationUpM": 114.5, "elevationDownM": -114.39999999999998}, {"date": "2014-07-25T16:25:44", "id": "162544", "activityType": "Run", "name": "Phantom ranch to Cottowood Campgrnd to Ribbon Falls - 120 degres", "durationMin": 110.05, "distanceKm": 14.500193290899245, "elevationUpM": 629.8999999999996, "elevationDownM": -277.89999999999964}, {"date": "2014-08-30T00:31:41", "id": "003141", "activityType": "Run", "name": "UTMB 2014", "durationMin": 1770.3, "distanceKm": 171.0326556406682, "elevationUpM": 10100.000000000002, "elevationDownM": -10100.0}, {"date": "2014-03-13T13:23:13", "id": "132313", "activityType": "Run", "name": "Temescal coyotes fun", "durationMin": 85.51666666666667, "distanceKm": 13.703834686142125, "elevationUpM": 857.1999999999992, "elevationDownM": -863.2999999999995}]}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment