{ "info": { "author": "Jordan Mackie", "author_email": "jmackie@protonmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "Intended Audience :: Science/Research", "License :: OSI Approved :: MIT License", "Programming Language :: Python :: 3.5", "Topic :: Scientific/Engineering :: Physics" ], "description": "# rouleur: Cycling performance modelling\n\nMakes the physical modelling of cycling trivially easy.\n\nFor example, let's try and estimate the power required for Wiggo's current hour record:\n\n```pycon\n>>> from rouleur import CyclingParams, calculate_air_density\n>>>\n>>> record = 54.526 # km/h\n>>> record *= 1000 / 60**2 # m/s\n>>> rho = calculate_air_density(30, 777, 0.6) # about right\n>>> pars = CyclingParams(\n>>> rider_velocity=record,\n>>> air_density=rho,\n>>> CdA=0.19, Crr=0.0025, \n>>> chain_efficiency_factor=0.98,\n>>> road_gradient=0,\n>>> mass_total=82)\n>>> \n>>> pars.solve_for.power_output()\n440.9565671224358\n```\n\nThat's all there is to it. \n\nThe API consists almost exclusively of the `CyclingParams` class, which holds all the parameters required for modelling a cyclist. The class constructor combines a number of sensible defaults with any (keyword) arguments passed. Details of recognised keyword arguments---i.e. model parameters---can be found in the class docstring (`help(CyclingParams)`).\n\nInstances then have a number of solver methods accessible via `parameters.solve_for.*`. \n\n# References\n\nThis package is an implementation of a number of published algorithms. Important references are:\n\n1. [Martin JC, Milliken DL, Cobb JE, McFadden KL, Coggan AR. Validation of a Mathematical Model for Road Cycling Power. Journal of Applied Biomechanics 14: 276--291, 1998.](http://journals.humankinetics.com/doi/10.1123/jab.14.3.276)\n\n2. [Martin JC, Gardner AS, Barras M, Martin DT. Modeling sprint cycling using field-derived parameters and forward integration. Med Sci Sports Exerc 38: 592--597, 2006.](https://www.ncbi.nlm.nih.gov/pubmed/16540850)\n\n3. [Atkinson G, Peacock O, Passfield L. Variable versus constant power strategies during cycling time-trials: Prediction of time savings using an up-to-date mathematical model. Journal of Sports Sciences 25: 1001--1009, 2007.](https://www.ncbi.nlm.nih.gov/pubmed/17497402)\n\n4. [Wells MS, Marwood S. Effects of power variation on cycle performance during simulated hilly time-trials. European Journal of Sport Science 16: 912--918, 2016.](https://www.ncbi.nlm.nih.gov/pubmed/26949050)\n", "description_content_type": null, "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/jmackie4/rouleur", "keywords": "cycling power modelling", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "rouleur", "package_url": "https://pypi.org/project/rouleur/", "platform": "", "project_url": "https://pypi.org/project/rouleur/", "project_urls": { "Homepage": "https://github.com/jmackie4/rouleur" }, "release_url": "https://pypi.org/project/rouleur/0.0.3/", "requires_dist": null, "requires_python": "", "summary": "Cycling performance modelling with Python", "version": "0.0.3" }, "last_serial": 2658484, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "fa6c72f4f0dc8abdee1449ebeeab463c", "sha256": "278fe2d873ecd66e616c9094b1f693af7d317c5dd85de76623f65a90704266e4" }, "downloads": -1, "filename": "rouleur-0.0.1.tar.gz", "has_sig": false, "md5_digest": "fa6c72f4f0dc8abdee1449ebeeab463c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14588, "upload_time": "2016-11-06T15:39:33", "url": "https://files.pythonhosted.org/packages/e4/92/696259d8c8305c4892c9aa20e8c082c13afdf4ca4cae543812d43d3fa8e8/rouleur-0.0.1.tar.gz" } ], "0.0.2": [ { "comment_text": "", "digests": { "md5": "7b0d23ff27dd8003261674e032cfec0b", "sha256": "6cd137855a35f418480cf7dca67232a9856d260abef3944c854a8ad2f29b025d" }, "downloads": -1, "filename": "rouleur-0.0.2.tar.gz", "has_sig": false, "md5_digest": "7b0d23ff27dd8003261674e032cfec0b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14605, "upload_time": "2016-11-06T15:58:19", "url": "https://files.pythonhosted.org/packages/6e/92/53a985ac85873628e889ce556b3c3a2e4e19bf42c5a6a5e594b6d99be7cd/rouleur-0.0.2.tar.gz" } ], "0.0.3": [ { "comment_text": "", "digests": { "md5": "ae0aea2eb3929071ad95d97bb8c54e35", "sha256": "a29877b6836f9c6dcad355f682ea57a02e028b2edaceeb189e508dfb6b920575" }, "downloads": -1, "filename": "rouleur-0.0.3.tar.gz", "has_sig": false, "md5_digest": "ae0aea2eb3929071ad95d97bb8c54e35", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14595, "upload_time": "2017-02-21T18:14:19", "url": "https://files.pythonhosted.org/packages/1b/f5/b91a60a7b98c8ccf49793716837e515d8a4ef5dc4cd5c43fd649b11e4de7/rouleur-0.0.3.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "ae0aea2eb3929071ad95d97bb8c54e35", "sha256": "a29877b6836f9c6dcad355f682ea57a02e028b2edaceeb189e508dfb6b920575" }, "downloads": -1, "filename": "rouleur-0.0.3.tar.gz", "has_sig": false, "md5_digest": "ae0aea2eb3929071ad95d97bb8c54e35", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14595, "upload_time": "2017-02-21T18:14:19", "url": "https://files.pythonhosted.org/packages/1b/f5/b91a60a7b98c8ccf49793716837e515d8a4ef5dc4cd5c43fd649b11e4de7/rouleur-0.0.3.tar.gz" } ] }