{"id":16929374,"url":"https://github.com/moorepants/dissertation","last_synced_at":"2025-04-11T18:07:51.780Z","repository":{"id":66791450,"uuid":"2479487","full_name":"moorepants/dissertation","owner":"moorepants","description":"Source for my 2012 UCD dissertation \"Human Control of a Bicycle\"","archived":false,"fork":false,"pushed_at":"2020-05-08T21:38:46.000Z","size":48717,"stargazers_count":19,"open_issues_count":7,"forks_count":6,"subscribers_count":8,"default_branch":"master","last_synced_at":"2025-03-25T14:02:41.087Z","etag":null,"topics":["bicycle","control","dynamics","engineering","system-identification"],"latest_commit_sha":null,"homepage":"http://moorepants.github.io/dissertation/","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/moorepants.png","metadata":{"files":{"readme":"README.rst","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2011-09-29T02:44:43.000Z","updated_at":"2022-08-08T18:19:04.000Z","dependencies_parsed_at":"2023-04-30T02:16:59.206Z","dependency_job_id":null,"html_url":"https://github.com/moorepants/dissertation","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/moorepants%2Fdissertation","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/moorepants%2Fdissertation/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/moorepants%2Fdissertation/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/moorepants%2Fdissertation/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/moorepants","download_url":"https://codeload.github.com/moorepants/dissertation/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248456370,"owners_count":21106603,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bicycle","control","dynamics","engineering","system-identification"],"created_at":"2024-10-13T20:39:11.378Z","updated_at":"2025-04-11T18:07:51.771Z","avatar_url":"https://github.com/moorepants.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"This is a dissertation.\n\nThe output can be found here: http://moorepants.github.com/dissertation\n\nCopyright (c) Jason K. Moore 2012\n\nThe text and figures are licensed under the Creative Commons Attribution 3.0\nUnported License and the source code is licensed under the BSD license (see\nLICENSE.txt).\n\nBuilding the Document\n=====================\n\nFirst clone the dissertation repository::\n\n   $ git clone git://github.com/moorepants/dissertation.git\n\nInstall the Sphinx 1.1.3::\n\n   $ pip install sphinx==1.1.3\n\nInstall the latest pybtex development version and merge in two branches::\n\n   $ bzr branch lp:pybtex\n   $ cd pybtex\n   $ bzr merge lp:~matthias-troffaes/pybtex/label-alpha\n   $ bzr commit -m \"Merged label-alpha.\"\n   $ bzr merge lp:~matthias-troffaes/pybtex/sorting-bugfix\n   $ bzr commit -m \"Merged sorting-bugfix.\"\n   $ python setup.py install\n   $ cd ..\n\nInstall the development version of Matthias Troffaes's bibtex Sphinx\nextension::\n\n   $ git clone git://github.com/mcmtroffaes/sphinxcontrib-bibtex.git\n   $ cd sphinxcontrib-bibtex\n   $ python setup.py install\n   $ cd ..\n\nThe easy method to obtain *all* of the figures and tables is to download the\ndata file with the pre-generated figures and tables (see below for instructions\non generating the figures and tables from source). This should be extracted\ninto the ``dissertation`` directory.::\n\n   $ cd dissertation\n   $ wget http://mae.ucdavis.edu/~biosport/jkm/dissertation/dissertation-data.tar.bz2 # 73 mb\n   $ tar -xjf dissertation-data.tar.bz2\n\nNow build the website::\n\n   $ make html\n\nAnd the pdf documents::\n\n   $ make webpdf # colored hyperlinks\n\nor::\n\n   $ make printpdf # this one gives black text and inline urls\n\nOpen the website in your browser and the pdf in your pdf viewer::\n\n   $ firefox _build/html/index.html\n   $ evince _build/latex/HumanControlofaBicycle.pdf\n\nBuild Dependencies\n------------------\n\n- Sphinx 1.1.3\n  [`web \u003chttp://sphinx.pocoo.org\u003e`_]\n  [`src \u003chttps://bitbucket.org/birkenfeld/sphinx\u003e`_]\n  [`docs \u003chttp://sphinx.pocoo.org/contents.html\u003e`_]\n- sphinxcontrib.bibtex dev\n  [`web \u003chttps://github.com/mcmtroffaes/sphinxcontrib-bibtex\u003e`_]\n  [`src \u003chttps://github.com/mcmtroffaes/sphinxcontrib-bibtex\u003e`_]\n  [`docs \u003chttp://sphinxcontrib-bibtex.readthedocs.org/en/latest/index.html\u003e`_]\n- pybtex dev\n  [`web \u003chttp://pybtex.sourceforge.net\u003e`_]\n  [`src \u003chttps://code.launchpad.net/pybtex\u003e`_]\n  [`docs \u003chttp://pybtex.sourceforge.net/manual.html\u003e`_]\n\nGenerating Figures and Tables From Source\n=========================================\n\nI've attempted to generate all of the figures and tables\\ [#all]_ in the\ndissertation from raw data and scripts. They can be generated by running all of\nthe scripts in the ``src`` directory. These scripts require several Python,\nMatlab, and R based software.\n\nMain Python Dependencies\n------------------------\n\n- Python 2.7.3\n  [`web \u003chttp://www.python.org\u003e`_]\n  [`src \u003chttp://hg.python.org/cpython\u003e`_]\n  [`docs \u003chttp://www.python.org/doc\u003e`_]\n- setuptools\n- NumPy 1.6.2\n  [`web \u003chttp://www.numpy.org\u003e`_]\n  [`src \u003chttps://github.com/numpy/numpy\u003e`_]\n  [`docs \u003chttp://docs.scipy.org/doc/\u003e`_]\n- SciPy 0.10.1\n  [`web \u003chttp://www.scipy.org\u003e`_]\n  [`src \u003chttps://github.com/scipy/scipy\u003e`_]\n  [`docs \u003chttp://docs.scipy.org/doc/\u003e`_]\n- PyTables 2.4.0\n  [`web \u003chttp://www.pytables.org\u003e`_]\n  [`src \u003chttps://github.com/PyTables/PyTables\u003e`_]\n  [`docs \u003chttp://pytables.github.com/\u003e`_]\n- Matplotlib 1.1.1\n  [`web \u003chttp://matplotlib.sourceforge.net\u003e`_]\n  [`src \u003chttps://github.com/matplotlib/matplotlib\u003e`_]\n  [`docs \u003chttp://matplotlib.sourceforge.net\u003e`_]\n- IPython 0.13\n  [`web \u003chttp://ipython.org\u003e`_]\n  [`src \u003chttps://github.com/ipython/ipython\u003e`_]\n  [`docs \u003chttp://ipython.org/documentation.html\u003e`_]\n- Pandas 0.8.1\n  [`web \u003chttp://pandas.pydata.org\u003e`_]\n  [`src \u003chttps://github.com/pydata/pandas\u003e`_]\n  [`docs \u003chttp://pandas.pydata.org/pandas-docs/stable\u003e`_]\n- uncertainties 1.8\n  [`web \u003chttp://packages.python.org/uncertainties/\u003e`_]\n  [`src \u003chttps://github.com/lebigot/uncertainties\u003e`_]\n  [`docs \u003chttp://packages.python.org/uncertainties/\u003e`_]\n- SymPy 0.7.1\n  [`web \u003chttp://www.sympy.org\u003e`_]\n  [`src \u003chttps://github.com/sympy/sympy\u003e`_]\n  [`docs \u003chttp://docs.sympy.org\u003e`_]\n\nMain Matlab Dependencies\n------------------------\n\n- Matlab 7.10.0.499 (R2010a)\n- Matlab Simulink 7.5\n- Matlab Control System Toolbox 8.5\n- Matlab System Identification Toolbox 7.4\n\n.. note:: Older and newer versions of Matlab and the toolboxes may work, I've\n   only tested the code with these versions.\n\nMain R Dependencies\n-------------------\n\n- R 2.14.1\n\nPython Development Dependencies\n-------------------------------\n\nThese are all of the Python packages we've developed for the analysis in the\ndissertation. They are required to run many of the Python scripts in the\n``src`` directory.\n\n- AutolevToolKit\n  [`src \u003chttps://github.com/moorepants/AutolevToolKit\u003e`_]\n- DynamicistToolKit\n  [`src \u003chttps://github.com/moorepants/DynamicistToolKit\u003e`_]\n- BicycleParameters\n  [`src \u003chttps://github.com/moorepants/BicycleParameters\u003e`_]\n- BicycleDataProcessor\n  [`src \u003chttps://github.com/moorepants/BicycleDataProcessor\u003e`_]\n- CanonicalID\n  [`src \u003chttps://github.com/moorepants/CanonicalID\u003e`_]\n- BicycleID\n  [`src \u003chttps://github.com/moorepants/BicycleID\u003e`_]\n- Yeadon\n  [`src \u003chttps://github.com/fitze/yeadon\u003e`_]\n\nMatlab Development Dependencies\n-------------------------------\n\nThese are the Matlab packages we've developed. They are required to run many of\nthe m-files in the ``src`` directory.\n\n- HumanControl\n  [`src \u003chttps://github.com/moorepants/HumanControl\u003e`_]\n- BicycleSystemID\n  [`src \u003chttps://github.com/moorepants/BicycleSystemID\u003e`_]\n\nOptional Dependencies\n---------------------\n\nMy workflow also includes these helpful tools but they are not necessary to\nbuild the dissertation.\n\n- git (http://git-scm.com/)\n- pip (http://pypi.python.org/pypi/pip): Useful for pulling releases from PyPi.\n- virtualenv (http://pypi.python.org/pypi/virtualenv)\n- Autolev 4.1 (http://www.autolev.com/): This software is no longer available,\n  but can be used to process the ``.al`` scripts.\n\nInstallation\n------------\n\nInstall main Python dependencies to the system. It is easiest to simply use\nyour system's package manager (e.g. apt-get) to install all of the\ndependencies. For example::\n\n   apt-get install git python-setuptools python-virtualenv python-numpy python-scipy ipython python-matplotlib python-pandas python-sphinx python-tables python-uncertainties\n\n.. warning:: The package manager may not have the latest software versions, so\n   you may have to build from source or locate the correct binaries.\n\nTo install packages from source use ``pip`` or ``easy_install`` or  download\nthe source and use ``python setup.py install``.\n\nNow create a directory to house all of the development software.\n\n::\n\n   $ mkdir bicycle-dissertation\n\nClone all of the python packages developed by us (if you use Github, you should\nfork the code in the web interface and then clone from your fork, for easy pull\nrequests).\n\n::\n\n   $ cd bicycle-dissertation\n   $ git clone git://github.com/moorepants/AutolevToolKit.git\n   $ git clone git://github.com/moorepants/DynamicistToolKit.git\n   $ git clone git://github.com/moorepants/BicycleParameters.git\n   $ git clone git://github.com/moorepants/BicycleDataProcessor.git\n   $ git clone git://github.com/moorepants/CanonicalID.git\n   $ git clone git://github.com/moorepants/BicycleID.git\n   $ git clone git://github.com/fitze/yeadon.git\n\nI typically set up a virtual environment for the Python development workflow.\nI usually install the main Python dependencies to the system files as they are\ntypically used by other virtual environments and outside virtual environments,\nbut it is also possible to install them in the virtual environment which is a\ngood idea if you need to pin the versions. The virtual environment is not\nrequired but is recommended if you are hacking on the development dependencies.\n\n::\n\n   $ # --system-site-packages allows use of packages installed to the system\n   $ # (i.e. access to NumPy, SciPy, IPython, etc\n   $ virtualenv --system-site-packages bicycle\n\nActivate the virtual environment.\n\n::\n\n   $ source bicycle/bin/activate\n\nCheckout the dissertation tag in each of the repositories. The dissertation tag\npins the software used when version 1.0 of the dissertation was built, but\nfuture versions of each software package may work too (as long as I keep things\nbackward compatible).\n\nFor example::\n\n   $ cd AutolevToolKit\n   $ git checkout dissertation\n\nThen install::\n\n   python setup.py install\n\nor::\n\n   python setup.py develop # do this if hacking on the code\n\n::\n\n   $ cd ..\n\nRepeat for all six Python repositories.\n\nMatlab Install\n--------------\n\nClone the two repositories into the ``bicycle-dissertation`` directory.\n\n::\n\n   $ git clone git://github.com/moorepants/HumanControl.git\n   $ git clone git://github.com/moorepants/BicycleSystemID.git\n\nData\n----\n\nThe scripts access several sets of data:\n\n- Physical Parameters: The ``data`` directory in the ``BicycleParameters``\n  repository has the necessary data to load in the bicycles and riders.\n- The Davis bicycle run database can be downloaded here\n  http://mae.ucdavis.edu/~biosport/InstrumentedBicycleData/InstrumentedBicycleData.h5.bz2\n  [310mb].  To build from raw data files see the ``BicycleDataProcessor``\n  README.\n\n.. warning:: The scripts in the ``src`` directory do not create all of the\n   figures in the dissertation. Some figures were generated during older\n   studies before I had strict coding practices and reproducibility on my mind.\n   But all of these figures can be produced from other source code. They just\n   aren't that user friendly. Contact me if you want to build those figures.\n\nPaths\n-----\n\nThis is an absolute mess so far. A lot of the scripts have explicit paths to\nthe data files which are referenced to my file system. They will have to be\nmanually changed to reflect the locations on the system you install to.\n\nGenerate Figures and Tables\n---------------------------\n\nAt this point the figures and tables can be generated by running all of the\nscripts in the ``src`` directory. The figures and tables are all stored in the\n``figures`` and ``tables`` directory and most are auto-generated with the\nsource code in the ``src`` directory and data stored in the ``data`` directory.\n\n.. rubric:: Footnotes\n\n.. [#all] Most of the figures are generated by the source but some are not. The\n   others are either svg figures or created from other source code that hasn't\n   been consolidated into the dissertation files.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmoorepants%2Fdissertation","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmoorepants%2Fdissertation","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmoorepants%2Fdissertation/lists"}