This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
"config":"{\n \"version\":\"2.0\",\n \"CHARTS\":[\n { \"type\":101,\"span\":1,\"deep\":5,\"column\":0,\"order\":3,\"symbol\":\"activity_date\",\"datafilter\":\" \",\"name\":\"Date\" },\n { \"type\":102,\"span\":1,\"deep\":5,\"column\":0,\"order\":8,\"symbol\":\"Sport\",\"datafilter\":\" \",\"name\":\"Sport\" },\n { \"type\":102,\"span\":1,\"deep\":5,\"column\":0,\"order\":13,\"symbol\":\"Workout Code\",\"datafilter\":\" \",\"name\":\"Workout Code\" },\n { \"type\":102,\"span\":1,\"deep\":32,\"column\":0,\"order\":35,\"symbol\":\"Notes\",\"datafilter\":\" \",\"name\":\"Notes\" },\n { \"type\":104,\"span\":2,\"deep\":25,\"column\":0,\"order\":68,\"xsymbol\":\"elapsed_time\",\"ysymbol\":\"average_power\",\"zsymbol\":\"workout_time\",\"datafilter\":\" \",\"name\":\"Intervals Average Power\" },\n { \"type\":104,\"span\":2,\"deep\":24,\"column\":0,\"order\":70,\"xsymbol\":\"elapsed_time\",\"ysymbol\":\"power_index\",\"zsymbol\":\"workout_time\",\"datafilter\":\" \",\"name\":\"Intervals Power Index\" },\n { \"type\":112,\"span\":1,\"deep\":12,\"column\":1,\"order\":29,\"program\":\"{\\n\\n# column names, if using metrics then best\\n# to use name() to get correct name for locale\\n# otherwise it won't translate to other languages\\nnames { \\n metricname(Duration,\\n Time_Moving,\\n Distance,\\n Work,\\n W'_Work,\\n Elevation_Gain);\\n}\\n\\n# column units, if using metrics then best\\n# to use unit() function to get correct string\\n# for locale and metric\\\/imperial\\nunits { \\n metricunit(Duration,\\n Time_Moving,\\n Distance,\\n Work,\\n W'_Work,\\n Elevation_Gain);\\n}\\n\\n# values to display as doubles or strings\\n# if using metrics always best to use asstring()\\n# to convert correctly with dp, metric\\\/imperial\\n# or specific formats eg. rowing pace xx\\\/500m\\nvalues { \\n asstring(Duration,\\n Time_Moving,\\n Distance,\\n Work,\\n W'_Work,\\n Elevation_Gain); \\n} \\n\\n}\\n \",\"datafilter\":\" \",\"name\":\"Totals\" },\n { \"type\":112,\"span\":1,\"deep\":12,\"column\":1,\"order\":54,\"program\":\"{\\n\\n# column names, if using metrics then best\\n# to use name() to get correct name for locale\\n# otherwise it won't translate to other languages\\nnames { \\n metricname(Athlete_Weight,\\n Average_Speed,\\n Average_Power,\\n Average_Heart_Rate,\\n Average_Cadence);\\n}\\n\\n# column units, if using metrics then best\\n# to use unit() function to get correct string\\n# for locale and metric\\\/imperial\\nunits { \\n metricunit(Athlete_Weight,\\n Average_Speed,\\n Average_Power,\\n Average_Heart_Rate,\\n Average_Cadence);\\n}\\n\\n# values to display as doubles or strings\\n# if using metrics always best to use asstring()\\n# to convert correctly with dp, metric\\\/imperial\\n# or specific formats eg. rowing pace xx\\\/500m\\nvalues { \\n asstring(Athlete_Weight,\\n Average_Speed,\\n Average_Power,\\n Average_Heart_Rate,\\n Average_Cadence); \\n} \\n\\n}\\n \",\"datafilter\":\" \",\"name\":\"Averages\" },\n { \"type\":112,\"span\":1,\"deep\":11,\"column\":1,\"order\":55,\"program\":\"{\\n\\n# column names, if using metrics then best\\n# to use name() to get correct name for locale\\n# otherwise it won't translate to other languages\\nnames { \\n metricname(Max_Speed,\\n Max_Power,\\n Max_Heartrate,\\n Max_Cadence,\\n Max_W'_Expended);\\n}\\n\\n# column units, if using metrics then best\\n# to use unit() function to get correct string\\n# for locale and metric\\\/imperial\\nunits { \\n metricunit(Max_Speed,\\n Max_Power,\\n Max_Heartrate,\\n Max_Cadence,\\n Max_W'_Expended);\\n}\\n\\n# values to display as doubles or strings\\n# if using metrics always best to use asstring()\\n# to convert correctly with dp, metric\\\/imperial\\n# or specific formats eg. rowing pace xx\\\/500m\\nvalues { \\n asstring(Max_Speed,\\n Max_Power,\\n Max_Heartrate,\\n Max_Cadence,\\n Max_W'_Expended); \\n} \\n\\n}\\n \",\"datafilter\":\" \",\"name\":\"Maximum\" },\n { \"type\":112,\"span\":1,\"deep\":12,\"column\":1,\"order\":125,\"program\":\"{\\n\\n# column names, if using metrics then best\\n# to use name() to get correct name for locale\\n# otherwise it won't translate to other languages\\nnames { \\n metricname(IsoPower,\\n L4_Sustained_Time,\\n SDANN_HRV,\\n SDNNIDX_HRV,\\n SDNN_HRV,\\n VI);\\n}\\n\\n# column units, if using metrics then best\\n# to use unit() function to get correct string\\n# for locale and metric\\\/imperial\\nunits { \\n metricunit(IsoPower,\\n L4_Sustained_Time,\\n SDANN_HRV,\\n SDNNIDX_HRV,\\n SDNN_HRV,\\n VI);\\n}\\n\\n# values to display as doubles or strings\\n# if using metrics always best to use asstring()\\n# to convert correctly with dp, metric\\\/imperial\\n# or specific formats eg. rowing pace xx\\\/500m\\nvalues { \\n asstring(IsoPower,\\n L4_Sustained_Time,\\n SDANN_HRV,\\n SDNNIDX_HRV,\\n SDNN_HRV,\\n VI);\\n} \\n\\n}\\n \",\"datafilter\":\" \",\"name\":\"Metrics\" },\n { \"type\":100,\"span\":1,\"deep\":7,\"column\":2,\"order\":201,\"datafilter\":\" \",\"name\":\"RPE\" },\n { \"type\":113,\"span\":4,\"deep\":17,\"column\":2,\"order\":213,\"settings\":\"{ \\\"title\\\": \\\" \\\",\\n\\\"description\\\": \\\"A description of the chart, mostly useful when the chart is uploaded to the cloud to let others know what this chart is useful for etc. \\\",\\n\\\"type\\\": 1,\\n\\\"animate\\\": false,\\n\\\"legendpos\\\": 2,\\n\\\"stack\\\": false,\\n\\\"orientation\\\": 2,\\n\\\"scale\\\": 2.5,\\n\\\"SERIES\\\": [\\n{ \\\"name\\\": \\\"Power \\\", \\\"group\\\": \\\" \\\", \\\"xname\\\": \\\"Elapsed Time \\\", \\\"yname\\\": \\\"watts \\\", \\\"program\\\": \\\"{:sl:n finalise {:sl:n # we just fetch samples at end:sl:n xx <- samples(SECS);:sl:n yy <- samples(POWER);:sl:n }:sl:n:sl:n x { xx; }:sl:n y { yy; }:sl:n}:sl:n \\\", \\\"line\\\": 1, \\\"symbol\\\": 0, \\\"size\\\": 3, \\\"color\\\": \\\"#010112\\\", \\\"opacity\\\": 100, \\\"legend\\\": true, \\\"opengl\\\": true, \\\"datalabels\\\": false, \\\"aggregate\\\": 0, \\\"fill\\\": true},\\n{ \\\"name\\\": \\\"W'balance \\\", \\\"group\\\": \\\" \\\", \\\"xname\\\": \\\"Elapsed Time \\\", \\\"yname\\\": \\\"kJ \\\", \\\"program\\\": \\\"{:sl:n finalise {:sl:n # we just fetch samples at end:sl:n xx <- samples(SECS);:sl:n yy <- samples(WBAL):sl:\\\/1000;:sl:n:sl:n :sl:n }:sl:n:sl:n x { xx; }:sl:n y { yy; }:sl:n}:sl:n \\\", \\\"line\\\": 1, \\\"symbol\\\": 0, \\\"size\\\": 3, \\\"color\\\": \\\"#010157\\\", \\\"opacity\\\": 75, \\\"legend\\\": true, \\\"opengl\\\": true, \\\"datalabels\\\": false, \\\"aggregate\\\": 0, \\\"fill\\\": false} ]\\n,\\n\\\"AXES\\\": [\\n{ \\\"name\\\": \\\"Elapsed Time \\\", \\\"type\\\": 2, \\\"orientation\\\": 1, \\\"align\\\": 1, \\\"minx\\\": 0, \\\"maxx\\\": 0, \\\"miny\\\": 0, \\\"maxy\\\": 0, \\\"smooth\\\": 7, \\\"groupby\\\": 0, \\\"visible\\\": true, \\\"fixed\\\": false, \\\"log\\\": false, \\\"minorgrid\\\": false, \\\"majorgrid\\\": true, \\\"labelcolor\\\": \\\"#55aaff\\\", \\\"axiscolor\\\": \\\"#55aaff\\\"},\\n{ \\\"name\\\": \\\"watts \\\", \\\"type\\\": 0, \\\"orientation\\\": 2, \\\"align\\\": 1, \\\"minx\\\": 0, \\\"maxx\\\": 0, \\\"miny\\\": 0, \\\"maxy\\\": 1000, \\\"smooth\\\": 0, \\\"groupby\\\": 0, \\\"visible\\\": true, \\\"fixed\\\": false, \\\"log\\\": false, \\\"minorgrid\\\": false, \\\"majorgrid\\\": true, \\\"labelcolor\\\": \\\"#010112\\\", \\\"axiscolor\\\": \\\"#010112\\\"},\\n{ \\\"name\\\": \\\"kJ \\\", \\\"type\\\": 0, \\\"orientation\\\": 2, \\\"align\\\": 1, \\\"minx\\\": 0, \\\"maxx\\\": 0, \\\"miny\\\": 0, \\\"maxy\\\": 18, \\\"smooth\\\": 0, \\\"groupby\\\": 0, \\\"visible\\\": true, \\\"fixed\\\": false, \\\"log\\\": false, \\\"minorgrid\\\": false, \\\"majorgrid\\\": true, \\\"labelcolor\\\": \\\"#010157\\\", \\\"axiscolor\\\": \\\"#010157\\\"} ]\\n} \",\"datafilter\":\" \",\"name\":\"Power and W'balance\" },\n { \"type\":112,\"span\":2,\"deep\":12,\"column\":2,\"order\":214,\"program\":\"{\\n\\n# column names, if using metrics then best\\n# to use metricname() to get correct name for locale\\n# otherwise it won't translate to other languages\\nnames { \\n c(\\\"Name\\\",\\\"Description\\\",\\\"Low\\\",\\\"High\\\",\\\"Time\\\",\\\"%\\\");\\n}\\n\\n# column units, if using metrics then best\\n# to use metricunit() function to get correct string\\n# for locale and metric\\\/imperial\\nunits {\\n\\n c(\\\"\\\",\\n \\\"\\\",\\n zones(power,units),\\n zones(power,units), \\\"\\\", \\\"\\\");\\n}\\n\\n# values to display as doubles or strings\\n# if using metrics always best to use asstring()\\n# to convert correctly with dp, metric\\\/imperial\\n# or specific formats eg. rowing pace xx\\\/500m\\nvalues { \\n\\n c( zones(power,name),\\n zones(power,description),\\n zones(power,low),\\n zones(power,high),\\n zones(power,time),\\n zones(power,percent));\\n} \\n\\n}\\n \",\"datafilter\":\" \",\"name\":\"Power Zones\" },\n { \"type\":103,\"span\":1,\"deep\":11,\"column\":2,\"order\":1720,\"series\":50,\"polarized\":0,\"datafilter\":\" \",\"name\":\"Fatigue Zones\" },\n { \"type\":112,\"span\":4,\"deep\":50,\"column\":2,\"order\":1760,\"program\":\"{\\n\\n# column names, if using metrics then best\\n# to use metricname() to get correct name for locale\\n# otherwise it won't translate to other languages\\nnames { \\n metricname(type, name,\\n Average_Power,\\n Distance,\\n Duration,\\n Fatigue_Index,\\n Power_Index,\\n W'_Work,\\n Work);\\n}\\n\\n# column units, if using metrics then best\\n# to use metricunit() function to get correct string\\n# for locale and metric\\\/imperial\\nunits { \\n metricunit(type, name,\\n Average_Power,\\n Distance,\\n Duration,\\n Fatigue_Index,\\n Power_Index,\\n W'_Work,\\n Work);\\n}\\n\\n# values to display as doubles or strings\\n# if using metrics always best to use asstring()\\n# to convert correctly with dp, metric\\\/imperial\\n# or specific formats eg. rowing pace xx\\\/500m\\nvalues { \\n c(intervalstrings(type),\\n intervalstrings(name),\\n intervalstrings(Average_Power),\\n intervalstrings(Distance),\\n intervalstrings(Duration),\\n intervalstrings(Fatigue_Index),\\n intervalstrings(Power_Index),\\n intervalstrings(W'_Work),\\n intervalstrings(Work));\\n}\\n\\n}\\n \",\"datafilter\":\" \",\"name\":\"Intervals\" },\n { \"type\":107,\"span\":1,\"deep\":7,\"column\":3,\"order\":453,\"program\":\"{ round(config(weight)*10)\\\/10; } \",\"units\":\"kg\",\"istime\":0,\"start\":99.3,\"stop\":85,\"datafilter\":\" \",\"name\":\"Weight\" },\n { \"type\":112,\"span\":2,\"deep\":11,\"column\":3,\"order\":457,\"program\":\"{\\n\\n# column names, if using metrics then best\\n# to use name() to get correct name for locale\\n# otherwise it won't translate to other languages\\nnames { \\n c(\\\"Name\\\",\\\"Description\\\",\\\"Low\\\",\\n \\\"High\\\", \\\"Time\\\", \\\"%\\\");\\n}\\n\\n# column units, if using metrics then best\\n# to use unit() function to get correct string\\n# for locale and metric\\\/imperial\\nunits {\\n\\n c(\\\"\\\",\\n \\\"\\\",\\n zones(fatigue,units),\\n zones(fatigue,units),\\\"\\\", \\\"\\\");\\n}\\n\\n# values to display as doubles or strings\\n# if using metrics always best to use asstring()\\n# to convert correctly with dp, metric\\\/imperial\\n# or specific formats eg. rowing pace xx\\\/500m\\nvalues { \\n\\n c( zones(fatigue,name),\\n zones(fatigue,description),\\n zones(fatigue,low),\\n zones(fatigue,high),\\n zones(fatigue,time),\\n zones(fatigue,percent));\\n} \\n\\n}\\n \",\"datafilter\":\" \",\"name\":\"Fatigue Zones\" },\n { \"type\":107,\"span\":1,\"deep\":7,\"column\":4,\"order\":17,\"program\":\"{ cp<-config(cp);\\n tabove <- count(samples(POWER)[x>cp]);\\n round((tabove \\\/ Duration) * 100.0);\\n} \",\"units\":\"%\",\"istime\":0,\"start\":0,\"stop\":100,\"datafilter\":\" \",\"name\":\"Time above CP\" },\n { \"type\":103,\"span\":1,\"deep\":12,\"column\":4,\"order\":18,\"series\":10,\"polarized\":0,\"datafilter\":\" \",\"name\":\"Power Zones\" },\n { \"type\":107,\"span\":1,\"deep\":7,\"column\":5,\"order\":1487,\"program\":\"{\\n est <- round((estimate(cp3,cp) +\\n estimate(cp2,cp) +\\n estimate(ext,cp))\\\/3);\\n} \",\"units\":\"watts\",\"istime\":0,\"start\":0,\"stop\":360,\"datafilter\":\" \",\"name\":\"CP Estimate\" },\n { \"type\":107,\"span\":1,\"deep\":9,\"column\":5,\"order\":1497,\"program\":\"{\\n est <- round((estimate(cp3,w') +\\n estimate(cp2,w') +\\n estimate(ext,w'))\\\/3000);\\n} \",\"units\":\"kJ\",\"istime\":0,\"start\":5,\"stop\":45,\"datafilter\":\" \",\"name\":\"W' Estimate\" },\n { \"type\":101,\"span\":1,\"deep\":7,\"column\":5,\"order\":1498,\"symbol\":\"coggan_tss\",\"datafilter\":\" \",\"name\":\"TSS\" },\n { \"type\":101,\"span\":1,\"deep\":6,\"column\":5,\"order\":1522,\"symbol\":\"coggan_np\",\"datafilter\":\" \",\"name\":\"NP\" }\n ]\n}\n ",
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters